On Mon, 6 May 2024 at 02:10, Richard Henderson <richard.hender...@linaro.org> wrote: > > These are the last instructions within disas_simd_three_reg_same > and disas_simd_scalar_three_reg_same, so remove them. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/arm/helper.h | 10 ++ > target/arm/tcg/a64.decode | 18 +++ > target/arm/tcg/translate-a64.c | 276 ++++++++++----------------------- > target/arm/tcg/vec_helper.c | 64 ++++++++ > 4 files changed, 172 insertions(+), 196 deletions(-)
> +void HELPER(neon_sqdmulh_idx_s)(void *vd, void *vn, void *vm, > + void *vq, uint32_t desc) > +{ > + intptr_t i, j, opr_sz = simd_oprsz(desc); > + int idx = simd_data(desc); > + int32_t *d = vd, *n = vn, *m = (int32_t *)vm + H4(idx); > + > + for (i = 0; i < opr_sz / 4; i += 16 / 4) { > + int32_t mm = m[i]; > + for (j = 0; j < 16 / 4; ++j) { > + d[i + j] = do_sqrdmlah_s(n[i + j], mm, 0, false, false, vq); > + } > + } > + clear_tail(d, opr_sz, simd_maxsz(desc)); > +} > + > +void HELPER(neon_sqrdmulh_idx_s)(void *vd, void *vn, void *vm, > + void *vq, uint32_t desc) > +{ > + intptr_t i, j, opr_sz = simd_oprsz(desc); > + int idx = simd_data(desc); > + int32_t *d = vd, *n = vn, *m = (int32_t *)vm + H4(idx); > + > + for (i = 0; i < opr_sz / 4; i += 16 / 4) { > + int16_t mm = m[i]; Wrong type -- this is the 's' version so should be int32_t, I think. > + for (j = 0; j < 16 / 4; ++j) { > + d[i + j] = do_sqrdmlah_s(n[i + j], mm, 0, false, true, vq); > + } > + } > + clear_tail(d, opr_sz, simd_maxsz(desc)); > +} > + > void HELPER(sve2_sqrdmlah_s)(void *vd, void *vn, void *vm, > void *va, uint32_t desc) > { -- PMM