SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonint32x2_tvdot_lane_s32(int32x2_t r, int8x8_t a, int8x8_t b, const int lane)Vector arithmetic / Dot product
Description
Dot Product signed arithmetic (vector, by element). This instruction performs the dot product of the four 8-bit elements in each 32-bit element of the first source register with the four 8-bit elements of an indexed 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:

SDOT Vd.2S,Vn.8B,Vm.4B[lane]

Argument Preparation
r register: Vd.2Sa register: Vn.8Bb register: Vm.4Blane minimum: 0; maximum: 1
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;