SIMD ISAReturn TypeNameArgumentsInstruction Group
Neonfloat16x8x2_tvzipq_f16(float16x8_t a, float16x8_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.8H result.val[0]Vd2.8H result.val[1]
This intrinsic compiles to the following instructions:

ZIP1 Vd1.8H,Vn.8H,Vm.8H

ZIP2 Vd2.8H,Vn.8H,Vm.8H

Argument Preparation
a register: Vn.8Hb register: Vm.8H
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;