SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonint32x4_tvusmmlaq_s32(int32x4_t r, uint8x16_t a, int8x16_t b)Vector arithmetic / Matrix multiply
Description
Unsigned and signed 8-bit integer matrix multiply-accumulate. This instruction multiplies the 2x8 matrix of unsigned 8-bit integer values in the first source vector by the 8x2 matrix of signed 8-bit integer values in the second source vector. The resulting 2x2 32-bit integer matrix product is destructively added to the 32-bit integer matrix accumulator in the destination vector. This is equivalent to performing an 8-way dot product per destination element.
Results
Vd.4S result
This intrinsic compiles to the following instructions:

USMMLA Vd.4S,Vn.16B,Vm.16B

Argument Preparation
r register: Vd.4Sa register: Vn.16Bb register: Vm.16B
Architectures
A32, A64

Operation

CheckFPAdvSIMDEnabled64();
bits(128) operand1 = V[n];
bits(128) operand2 = V[m];
bits(128) addend   = V[d];

V[d] = MatMulAdd(addend, operand1, operand2, op1_unsigned, op2_unsigned);