SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonfloat32x4x2_tvzipq_f32(float32x4_t a, float32x4_t b)Vector manipulation / Zip elements
Description
Interleave two vectors. This intrinsic reads corresponding elements from the two source vectors as pairs, interleaves the pairs, and returns the resulting interleaved vector.
Results
Vd1.4S result.val[0]Vd2.4S result.val[1]
This intrinsic compiles to the following instructions:

ZIP1 Vd1.4S,Vn.4S,Vm.4S

ZIP2 Vd2.4S,Vn.4S,Vm.4S

Argument Preparation
a register: Vn.4Sb register: Vm.4S
Architectures
v7, A32, A64

Operation

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

integer base = part * pairs;

for p = 0 to pairs-1
    Elem[result, 2*p+0, esize] = Elem[operand1, base+p, esize];
    Elem[result, 2*p+1, esize] = Elem[operand2, base+p, esize];

V[d] = result;