SIMD ISAReturn TypeNameArgumentsInstruction Group
Heliumint64_t[__arm_]vmlsldavaxq_p[_s16](int64_t a, int16x8_t b, int16x8_t c, mve_pred16_t p)Vector arithmetic / Multiply / Multiply-accumulate
Description
The elements of the vector registers are handled in pairs. In the base variant, corresponding elements from the two source registers are multiplied together, whereas the exchange variant swaps the values in each pair of values read from the first source register, before multiplying them with the values from the second source register. The results of the pairs of multiply operations are combined by subtracting one from the other. At the end of each beat these results are accumulated. The 64 bit result is stored across two registers, the upper-half is stored in an odd-numbered register and the lower half is stored in an even-numbered register. The initial value of the general-purpose destination registers can optionally be added to the result.
Results
[RdaHi,RdaLo] result
This intrinsic compiles to the following instructions:

VMSR P0,Rp

VPST

VMLSLDAVAXT.S16 RdaLo,RdaHi,Qn,Qm

Argument Preparation
a register: [RdaHi,RdaLo]b register: Qnc register: Qmp register: Rp
Architectures
MVE