On Fri, 30 Apr 2021 at 22:24, Richard Henderson <richard.hender...@linaro.org> wrote: > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/arm/helper-sve.h | 5 +++++ > target/arm/sve.decode | 12 ++++++++++++ > target/arm/sve_helper.c | 20 ++++++++++++++++++++ > target/arm/translate-sve.c | 19 +++++++++++++++---- > 4 files changed, 52 insertions(+), 4 deletions(-) >
> +#define DO_ZZX(NAME, TYPEW, TYPEN, HW, HN, OP) \ > +void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc) \ > +{ \ > + intptr_t i, j, oprsz = simd_oprsz(desc); \ > + intptr_t sel = extract32(desc, SIMD_DATA_SHIFT, 1) * sizeof(TYPEN); \ > + intptr_t idx = extract32(desc, SIMD_DATA_SHIFT + 1, 3) * sizeof(TYPEN); \ > + for (i = 0; i < oprsz; i += 16) { \ > + TYPEW mm = *(TYPEN *)(vm + i + idx); \ Again, not sure why we don't need an H macro here. > + for (j = 0; j < 16; j += sizeof(TYPEW)) { \ > + TYPEW nn = *(TYPEN *)(vn + HN(i + j + sel)); \ > + *(TYPEW *)(vd + HW(i + j)) = OP(nn, mm); \ > + } \ > + } \ > +} Otherwise Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM