@samitouri / QOSamiQemu / commits / f6a2d780f1

target/arm: Implement FTMOPA (widening, 2-way, FP16 to FP32)

Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20260713230244.70174-6-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Richard Henderson committed Aug 11, 2026 at 20:14 UTC f6a2d780f1489de6f3453e0c0ef70ae9813a412c
4 files changed +10
target/arm/tcg/helper-sme-defs.h
+1
@@ -410,3 +410,4 @@ DEF_HELPER_FLAGS_6(sme_ftmopa_hh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, fps
410 DEF_HELPER_FLAGS_6(sme_ftmopa_ss, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, fpst, i32)
411
412 DEF_HELPER_FLAGS_6(sme_bftmopa_sh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
413 +DEF_HELPER_FLAGS_6(sme_ftmopa_sh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, env, i32)
target/arm/tcg/sme.decode
+1
@@ -1147,3 +1147,4 @@ FTMOPA_hh 1000 0001 010 ..... 000 ... .... .. 100 . @tmop_o1
1147 FTMOPA_ss 1000 0000 010 ..... 000 ... .... .. 00 .. @tmop_o2
1148
1149 BFTMOPA_sh 1000 0001 010 ..... 000 ... .... .. 00 .. @tmop_o2
1150 +FTMOPA_sh 1000 0001 011 ..... 000 ... .... .. 00 .. @tmop_o2
target/arm/tcg/sme_helper.c
+6
@@ -3020,6 +3020,12 @@ void HELPER(sme_fmop4a_sh)(void *vza, void *vzn, void *vzm,
3020 sme_mop4(vza, vzn, vzm, env, desc, sizeof(float32), inner_fmop4a_sh);
3021 }
3022
3023 +void HELPER(sme_ftmopa_sh)(void *vza, void *vzn, void *vzm, void *vzk,
3024 + CPUArchState *env, uint32_t desc)
3025 +{
3026 + sme_tmop_2way_sh(vza, vzn, vzm, vzk, env, desc, inner_fmop4a_sh);
3027 +}
3028 +
3029 static void inner_fmop4s_sh(void *vd, void *vn, void *vm, void *vinfo)
3030 {
3031 float32 *d = vd;
target/arm/tcg/translate-sme.c
+2
@@ -2165,3 +2165,5 @@ TRANS_FEAT(FTMOPA_ss, aa64_sme_tmop, do_tmop_fp,
2165
2166 TRANS_FEAT(BFTMOPA_sh, aa64_sme_tmop, do_tmop_fp,
2167 a, MO_32, FPST_ENV, gen_helper_sme_bftmopa_sh)
2168 +TRANS_FEAT(FTMOPA_sh, aa64_sme_tmop, do_tmop_fp,
2169 + a, MO_32, FPST_ENV, gen_helper_sme_ftmopa_sh)