SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint32x4_tvpadalq_u16(uint32x4_t a, uint16x8_t b)Vector arithmetic / Pairwise arithmetic / Pairwise addition and widen
Description
Unsigned Add and Accumulate Long Pairwise. This instruction adds pairs of adjacent unsigned integer values from the vector in the source SIMD&FP register and accumulates the results with the vector elements of the destination SIMD&FP register. The destination vector elements are twice as long as the source vector elements.
Results
Vd.4S result
This intrinsic compiles to the following instructions:

UADALP Vd.4S,Vn.8H

Argument Preparation
a register: Vd.4Sb register: Vn.8H
Architectures
v7, A32, A64

Operation

CheckFPAdvSIMDEnabled64();
bits(datasize) operand = V[n];
bits(datasize) result;

bits(2*esize) sum;
integer op1;
integer op2;

if acc then result = V[d];
for e = 0 to elements-1
    op1 = Int(Elem[operand, 2*e+0, esize], unsigned);
    op2 = Int(Elem[operand, 2*e+1, esize], unsigned);
    sum = (op1 + op2)<2*esize-1:0>;
    if acc then
        Elem[result, e, 2*esize] = Elem[result, e, 2*esize] + sum;
    else
        Elem[result, e, 2*esize] = sum;

V[d] = result;