target/arm: Add missing clear_tail calls

Fortunately, the functions affected are so far only called from SVE,
so there is no tail to be cleared. But as we convert more of AdvSIMD
to gvec, this will matter.

Backports commit d8efe78e8039511b95c23d75bb48eca6873fbb0f from qemu
This commit is contained in:
Richard Henderson 2019-02-15 18:15:17 -05:00 committed by Lioncash
parent f3cb92c86c
commit 5c34cab41c
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -639,6 +639,7 @@ void HELPER(NAME)(void *vd, void *vn, void *stat, uint32_t desc) \
for (i = 0; i < oprsz / sizeof(TYPE); i++) { \ for (i = 0; i < oprsz / sizeof(TYPE); i++) { \
d[i] = FUNC(n[i], stat); \ d[i] = FUNC(n[i], stat); \
} \ } \
clear_tail(d, oprsz, simd_maxsz(desc)); \
} }
DO_2OP(gvec_frecpe_h, helper_recpe_f16, float16) DO_2OP(gvec_frecpe_h, helper_recpe_f16, float16)
@ -689,6 +690,7 @@ void HELPER(NAME)(void *vd, void *vn, void *vm, void *stat, uint32_t desc) \
for (i = 0; i < oprsz / sizeof(TYPE); i++) { \ for (i = 0; i < oprsz / sizeof(TYPE); i++) { \
d[i] = FUNC(n[i], m[i], stat); \ d[i] = FUNC(n[i], m[i], stat); \
} \ } \
clear_tail(d, oprsz, simd_maxsz(desc)); \
} }
DO_3OP(gvec_fadd_h, float16_add, float16) DO_3OP(gvec_fadd_h, float16_add, float16)