target/arm: Use expand_pred_b in mve_helper.c
Use the function instead of the array directly. Because the function performs its own masking, via the uint8_t parameter, we need to do nothing extra within the users: the bits above the first 2 (_uh) or 4 (_uw) will be discarded by assignment to the local bmask variables, and of course _uq uses the entire uint64_t result. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220607203306.657998-17-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
820e0bb9ce
commit
05dd14bdfa
@ -726,7 +726,7 @@ static void mergemask_sb(int8_t *d, int8_t r, uint16_t mask)
|
|||||||
|
|
||||||
static void mergemask_uh(uint16_t *d, uint16_t r, uint16_t mask)
|
static void mergemask_uh(uint16_t *d, uint16_t r, uint16_t mask)
|
||||||
{
|
{
|
||||||
uint16_t bmask = expand_pred_b_data[mask & 3];
|
uint16_t bmask = expand_pred_b(mask);
|
||||||
*d = (*d & ~bmask) | (r & bmask);
|
*d = (*d & ~bmask) | (r & bmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -737,7 +737,7 @@ static void mergemask_sh(int16_t *d, int16_t r, uint16_t mask)
|
|||||||
|
|
||||||
static void mergemask_uw(uint32_t *d, uint32_t r, uint16_t mask)
|
static void mergemask_uw(uint32_t *d, uint32_t r, uint16_t mask)
|
||||||
{
|
{
|
||||||
uint32_t bmask = expand_pred_b_data[mask & 0xf];
|
uint32_t bmask = expand_pred_b(mask);
|
||||||
*d = (*d & ~bmask) | (r & bmask);
|
*d = (*d & ~bmask) | (r & bmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -748,7 +748,7 @@ static void mergemask_sw(int32_t *d, int32_t r, uint16_t mask)
|
|||||||
|
|
||||||
static void mergemask_uq(uint64_t *d, uint64_t r, uint16_t mask)
|
static void mergemask_uq(uint64_t *d, uint64_t r, uint16_t mask)
|
||||||
{
|
{
|
||||||
uint64_t bmask = expand_pred_b_data[mask & 0xff];
|
uint64_t bmask = expand_pred_b(mask);
|
||||||
*d = (*d & ~bmask) | (r & bmask);
|
*d = (*d & ~bmask) | (r & bmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user