SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonuint8x16x2_tvzipq_u8(uint8x16_t a, uint8x16_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.16B result.val[0]Vd2.16B result.val[1]
This intrinsic compiles to the following instructions:

ZIP1 Vd1.16B,Vn.16B,Vm.16B

ZIP2 Vd2.16B,Vn.16B,Vm.16B

Argument Preparation
a register: Vn.16Bb register: Vm.16B
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;