On 6/24/25 03:02, Peter Maydell wrote:
On Sun, 22 Jun 2025 at 00:58, Richard Henderson
<richard.hender...@linaro.org> wrote:

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  target/arm/tcg/helper.h        |  8 ++++
  target/arm/tcg/translate-sme.c | 85 ++++++++++++++++++++++++++++++++++
  target/arm/tcg/vec_helper.c    | 51 ++++++++++++++++++++
  target/arm/tcg/sme.decode      | 63 ++++++++++++++++++++++++-
  4 files changed, 206 insertions(+), 1 deletion(-)



+static void gen_helper_gvec_sudot_4b(TCGv_ptr d, TCGv_ptr n, TCGv_ptr m,
+                                     TCGv_ptr a, TCGv_i32 desc)
+{
+    gen_helper_gvec_usdot_4b(d, m, n, a, desc);
+}

This one also needs its own helper, rather than a wrapper of usdot.

Why?  There's no index.  Other than sign, the vector shapes are symmetric.

The SUDOT (4-way multiple and single vector) instruction isn't symmetric, but this helper is only handling a single vector. We call it 4 times to implement

    sudot  za.s[w8, 0, vgx4], { z0.b-z3.b }, z4.b


r~

Reply via email to