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~