@samitouri / QOSamiQemu / commits / b1215856fb

target/arm: Remove DO_ZPZZ_FP_B16 from translate-sme.c

Expand the macro at each use site. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260826174213.614571-8-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Richard Henderson committed Aug 26, 2026 at 10:41 UTC b1215856fb0d03e9454cfb2f3bbdd9d4bc990e5a
1 file changed +46 -13
target/arm/tcg/translate-sve.c
+46 -13
@@ -4438,14 +4438,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_fpst_arg_zzz,
4438 s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \
4439 name##_zpzz_fns[a->esz], a)
4440
4441 -/* Similar, but for insns where sz == 0 encodes bfloat16 */
4442 -#define DO_ZPZZ_FP_B16(NAME, FEAT, name) \
4443 - static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \
4444 - gen_helper_##name##_b16, gen_helper_##name##_h, \
4445 - gen_helper_##name##_s, gen_helper_##name##_d \
4446 - }; \
4447 - TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz], a)
4448 -
4441 #define DO_ZPZZ_AH_FP_B16(NAME, FEAT, name, ah_name) \
4442 static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] = { \
4443 gen_helper_##name##_b16, gen_helper_##name##_h, \
@@ -4459,13 +4451,54 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_fpst_arg_zzz,
4451 s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \
4452 name##_zpzz_fns[a->esz], a)
4453
4462 -DO_ZPZZ_FP_B16(FADD_zpzz, aa64_sme_or_sve, sve_fadd)
4463 -DO_ZPZZ_FP_B16(FSUB_zpzz, aa64_sme_or_sve, sve_fsub)
4464 -DO_ZPZZ_FP_B16(FMUL_zpzz, aa64_sme_or_sve, sve_fmul)
4454 +static gen_helper_gvec_4_ptr * const sve_fadd_zpzz_fns[4] = {
4455 + gen_helper_sve_fadd_b16,
4456 + gen_helper_sve_fadd_h,
4457 + gen_helper_sve_fadd_s,
4458 + gen_helper_sve_fadd_d
4459 +};
4460 +TRANS_FEAT(FADD_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4461 + sve_fadd_zpzz_fns[a->esz], a)
4462 +
4463 +static gen_helper_gvec_4_ptr * const sve_fsub_zpzz_fns[4] = {
4464 + gen_helper_sve_fsub_b16,
4465 + gen_helper_sve_fsub_h,
4466 + gen_helper_sve_fsub_s,
4467 + gen_helper_sve_fsub_d
4468 +};
4469 +TRANS_FEAT(FSUB_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4470 + sve_fsub_zpzz_fns[a->esz], a)
4471 +
4472 +static gen_helper_gvec_4_ptr * const sve_fmul_zpzz_fns[4] = {
4473 + gen_helper_sve_fmul_b16,
4474 + gen_helper_sve_fmul_h,
4475 + gen_helper_sve_fmul_s,
4476 + gen_helper_sve_fmul_d
4477 +};
4478 +TRANS_FEAT(FMUL_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4479 + sve_fmul_zpzz_fns[a->esz], a)
4480 +
4481 DO_ZPZZ_AH_FP_B16(FMIN_zpzz, aa64_sme_or_sve, sve_fmin, sve_ah_fmin)
4482 DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fmax, sve_ah_fmax)
4467 -DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sme_or_sve, sve_fminnum)
4468 -DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sme_or_sve, sve_fmaxnum)
4483 +
4484 +static gen_helper_gvec_4_ptr * const sve_fmaxnum_fns[4] = {
4485 + gen_helper_sve_fmaxnum_b16,
4486 + gen_helper_sve_fmaxnum_h,
4487 + gen_helper_sve_fmaxnum_s,
4488 + gen_helper_sve_fmaxnum_d
4489 +};
4490 +TRANS_FEAT(FMAXNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4491 + sve_fmaxnum_fns[a->esz], a)
4492 +
4493 +static gen_helper_gvec_4_ptr * const sve_fminnum_fns[4] = {
4494 + gen_helper_sve_fminnum_b16,
4495 + gen_helper_sve_fminnum_h,
4496 + gen_helper_sve_fminnum_s,
4497 + gen_helper_sve_fminnum_d
4498 +};
4499 +TRANS_FEAT(FMINNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz,
4500 + sve_fminnum_fns[a->esz], a)
4501 +
4502 DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd)
4503
4504 static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz_fns[4] = {