SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint32x2_tvdot_u32(uint32x2_t r, uint8x8_t a, uint8x8_t b)Vector arithmetic / Dot product
Description
Dot Product unsigned arithmetic (vector). This instruction performs the dot product of the four unsigned 8-bit elements in each 32-bit element of the first source register with the four unsigned 8-bit elements of the corresponding 32-bit element in the second source register, accumulating the result into the corresponding 32-bit element of the destination register.
Results
Vd.2S result
This intrinsic compiles to the following instructions:

UDOT Vd.2S,Vn.8B,Vm.8B

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

Operation

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

result = V[d];
for e = 0 to elements-1 
    integer res = 0;
    integer element1, element2;
    for i = 0 to 3 
        if signed then
            element1 = SInt(Elem[operand1, 4 * e + i, esize DIV 4]); 
            element2 = SInt(Elem[operand2, 4 * e + i, esize DIV 4]);
        else 
            element1 = UInt(Elem[operand1, 4 * e + i, esize DIV 4]); 
            element2 = UInt(Elem[operand2, 4 * e + i, esize DIV 4]);
        res = res + element1 * element2; 
    Elem[result, e, esize] = Elem[result, e, esize] + res;
V[d] = result;