On 07/06/2019 20:30, Richard Henderson wrote: > The loop is written with scalars, not vectors. > Use the correct type when incrementing. > > Fixes: 5ee5c14cacd > Reported-by: Laurent Vivier <lviv...@redhat.com> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > accel/tcg/tcg-runtime-gvec.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/accel/tcg/tcg-runtime-gvec.c b/accel/tcg/tcg-runtime-gvec.c > index 3b6052fe97..51cb29ca79 100644 > --- a/accel/tcg/tcg-runtime-gvec.c > +++ b/accel/tcg/tcg-runtime-gvec.c > @@ -874,7 +874,7 @@ void HELPER(gvec_sar8v)(void *d, void *a, void *b, > uint32_t desc) > intptr_t oprsz = simd_oprsz(desc); > intptr_t i; > > - for (i = 0; i < oprsz; i += sizeof(vec8)) { > + for (i = 0; i < oprsz; i += sizeof(int8_t)) { > uint8_t sh = *(uint8_t *)(b + i) & 7; > *(int8_t *)(d + i) = *(int8_t *)(a + i) >> sh; > } > @@ -898,7 +898,7 @@ void HELPER(gvec_sar32v)(void *d, void *a, void *b, > uint32_t desc) > intptr_t oprsz = simd_oprsz(desc); > intptr_t i; > > - for (i = 0; i < oprsz; i += sizeof(vec32)) { > + for (i = 0; i < oprsz; i += sizeof(int32_t)) { > uint8_t sh = *(uint32_t *)(b + i) & 31; > *(int32_t *)(d + i) = *(int32_t *)(a + i) >> sh; > } > @@ -910,7 +910,7 @@ void HELPER(gvec_sar64v)(void *d, void *a, void *b, > uint32_t desc) > intptr_t oprsz = simd_oprsz(desc); > intptr_t i; > > - for (i = 0; i < oprsz; i += sizeof(vec64)) { > + for (i = 0; i < oprsz; i += sizeof(int64_t)) { > uint8_t sh = *(uint64_t *)(b + i) & 63; > *(int64_t *)(d + i) = *(int64_t *)(a + i) >> sh; > } >
Tested-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Laurent Vivier <lviv...@redhat.com>