SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonint32x4_tvusdotq_s32(int32x4_t r, uint8x16_t a, int8x16_t b)Vector arithmetic / Dot product
Description
Dot Product vector form with unsigned and signed integers. This instruction performs the dot product of the four unsigned 8-bit integer values in each 32-bit element of the first source register with the four signed 8-bit integer values in the corresponding 32-bit element of the second source register, accumulating the result into the corresponding 32-bit element of the destination register.
Results
Vd.4S result
This intrinsic compiles to the following instructions:

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

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

Operation

CheckFPAdvSIMDEnabled64();
bits(datasize) operand1 = V[n];
bits(datasize) operand2 = V[m];
bits(datasize) operand3 = V[d];
bits(datasize) result;

for e = 0 to elements-1
    bits(32) res = Elem[operand3, e, 32];
    for b = 0 to 3
        integer element1 = UInt(Elem[operand1, 4 * e + b, 8]);
        integer element2 = SInt(Elem[operand2, 4 * e + b, 8]);
        res = res + element1 * element2;
    Elem[result, e, 32] = res;

V[d] = result;