SIMD ISAReturn TypeNameArgumentsInstruction Group
Heliumuint64_t[__arm_]vrmlaldavhq[_u32](uint32x4_t a, uint32x4_t b)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 adding them together. At the end of each beat these results are accumulated. The upper 64 bits of a 72-bit accumulator value is selected and stored across two registers, the top 32 bits are stored in an even-numbered register and the lower 32 bits are stored in an odd-numbered register. The initial value of the general-purpose destination registers can optionally be shifted up by 8 bits and added to the result. The result is rounded before the top 64 bits are selected.
Results
[RdaHi,RdaLo] result
This intrinsic compiles to the following instructions:

VRMLALDAVH.U32 RdaLo,RdaHi,Qn,Qm

Argument Preparation
a register: Qnb register: Qm
Architectures
MVE