On 7/13/21 6:37 AM, Peter Maydell wrote:
Implement the MVE VMLAS insn, which multiplies a vector by a vector
and adds a scalar.
Signed-off-by: Peter Maydell<peter.mayd...@linaro.org>
---
target/arm/helper-mve.h | 8 ++++++++
target/arm/mve.decode | 3 +++
target/arm/mve_helper.c | 31 +++++++++++++++++++++++++++++++
target/arm/translate-mve.c | 2 ++
4 files changed, 44 insertions(+)
...
+/* Vector by vector plus scalar */
+#define DO_VMLAS(D, N, M) ((N) * (D) + (M))
+
+DO_2OP_ACC_SCALAR_S(vmlass, DO_VMLAS)
+DO_2OP_ACC_SCALAR_U(vmlasu, DO_VMLAS)
This is confusing. The ARM says
# Operations that do not perform
# widening are always unsigned (encoded with U=1),
This instruction does not perform widening, but it then codes on to enumerate the
signed/unsigned encodings.
I suppose you're matching what's written, so
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
r~