@samitouri / QOSamiQemu / commits / 80f07d89df

target/arm: Implement FDOT (multiple and single vector)

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

Richard Henderson committed Jun 17, 2026 at 21:15 UTC 80f07d89df845f673ba80ecff9f41f0f7a19d61c
2 files changed +11
target/arm/tcg/sme.decode
+3
@@ -449,6 +449,9 @@ FMLALL_n1_b 11000001 001 1 .... 0 .. 001 ..... 000 .. @azz_nx1_o2x4 n=1
449 FMLALL_n1_b 11000001 001 0 .... 0 .. 000 ..... 0001 . @azz_nx1_o1x4 n=2
450 FMLALL_n1_b 11000001 001 1 .... 0 .. 000 ..... 0001 . @azz_nx1_o1x4 n=4
451
452 +FDOT_n1_sb 11000001 001 0 .... 0 .. 100 ..... 11 ... @azz_nx1_o3 n=2
453 +FDOT_n1_sb 11000001 001 1 .... 0 .. 100 ..... 11 ... @azz_nx1_o3 n=4
454 +
455 ### SME2 Multi-vector Multiple Array Vectors
456
457 %zn_ax2 6:4 !function=times_2
target/arm/tcg/translate-sme.c
+8
@@ -1170,6 +1170,14 @@ static bool do_fdot(DisasContext *s, arg_azz_n *a, bool multi)
1170 TRANS_FEAT(FDOT_n1, aa64_sme2, do_fdot, a, false)
1171 TRANS_FEAT(FDOT_nn, aa64_sme2, do_fdot, a, true)
1172
1173 +static bool do_fdot_fp8(DisasContext *s, arg_azz_n *a, bool multi)
1174 +{
1175 + return do_azz_acc_fp8(s, a->n, 1, a->rv, a->off, a->zn, a->zm,
1176 + 0, 0, multi, gen_helper_gvec_fdot_sb);
1177 +}
1178 +
1179 +TRANS_FEAT(FDOT_n1_sb, aa64_sme_f8f32, do_fdot_fp8, a, false)
1180 +
1181 static bool do_fdot_nx(DisasContext *s, arg_azx_n *a)
1182 {
1183 return do_azz_acc_fp(s, a->n, 1, a->rv, a->off, a->zn, a->zm,