On Fri, 16 Jul 2021 at 23:12, Richard Henderson <richard.hender...@linaro.org> wrote: > > 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),
I have noticed that that text often appears for insns where it doesn't really apply. I mostly ignore the text in favour of looking at the pseudocode for working out what is supposed to be done. -- PMM