target/arm: Implement FDOT (multiple and indexed vector)
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260618041517.573469-9-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
2bba6b080ec306f86299db1130d3f4054741001c
2 files changed
+7
target/arm/tcg/sme.decode
+3
@@ -781,6 +781,9 @@ FMLALL_nx_b 11000001 0100 .... . .. ... ..... 000 .. @azx_1x1_i4_o2
781
FMLALL_nx_b 11000001 1001 .... 0 .. 0.. ....1 00.. . @azx_2x1_i4_o1
782
FMLALL_nx_b 11000001 0001 .... 1 .. 0.. ...10 00.. . @azx_4x1_i4_o1
783
784
+FDOT_nx_b 11000001 0101 .... 0 .. 0.. ....1 11 ... @azx_2x1_i2_o3
785
+FDOT_nx_b 11000001 0101 .... 1 .. 0.. ...00 01 ... @azx_4x1_i2_o3
786
+
787
### SME2 Add / Sub array accumulators
788
789
ADD_aaz_s 11000001 101 000000 .. 111 ....0 10 ... @az_2x2_o3
target/arm/tcg/translate-sme.c
+4
@@ -1161,6 +1161,10 @@ TRANS_FEAT(FMLALL_nx_b, aa64_sme_f8f32, do_azz_acc_fp8,
1161
a->n, 4, a->rv, a->off, a->zn, a->zm,
1162
a->idx << 2, 0, false, gen_helper_gvec_fmla_idx_sb)
1163
1164
+TRANS_FEAT(FDOT_nx_b, aa64_sme_f8f32, do_azz_acc_fp8,
1165
+ a->n, 1, a->rv, a->off, a->zn, a->zm,
1166
+ a->idx, 0, false, gen_helper_gvec_fdot_idx_sb)
1167
+
1168
static bool do_fdot(DisasContext *s, arg_azz_n *a, bool multi)
1169
{
1170
return do_azz_acc_fp(s, a->n, 1, a->rv, a->off, a->zn, a->zm, 1, 0,