| |||
| Home > NEON and VFP Programming > NEON general data processing instructions > VUZP, VZIP | |||
VZIP (Vector Zip) interleaves the elements of
two vectors.
VUZP (Vector Unzip) de-interleaves the elements
of two vectors.
De-interleaving is the inverse process of interleaving.
Table 20. Operation of doubleword VZIP.8
| Register state before operation | Register state after operation | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dd | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | B3 | A3 | B2 | A2 | B1 | A1 | B0 | A0 |
| Dm | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | B7 | A7 | B6 | A6 | B5 | A5 | B4 | A4 |
Table 21. Operation of quadword VZIP.32
| Register state before operation | Register state after operation | |||||||
|---|---|---|---|---|---|---|---|---|
| Qd | A3 | A2 | A1 | A0 | B1 | A1 | B0 | A0 |
| Qm | B3 | B2 | B1 | B0 | B3 | A3 | B2 | A2 |
Table 22. Operation of doubleword VUZP.8
| Register state before operation | Register state after operation | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dd | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | B6 | B4 | B2 | B0 | A6 | A4 | A2 | A0 |
| Dm | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | B7 | B5 | B3 | B1 | A7 | A5 | A3 | A1 |
Table 23. Operation of quadword VUZP.32
| Register state before operation | Register state after operation | |||||||
|---|---|---|---|---|---|---|---|---|
| Qd | A3 | A2 | A1 | A0 | B2 | B0 | A2 | A0 |
| Qm | B3 | B2 | B1 | B0 | B3 | B1 | A3 | A1 |
Vop{cond}.sizeQd,Qm
Vop{cond}.sizeDd,Dm
where:
opmust be either UZP or ZIP.
condis an optional condition code.
sizemust be one of 8, 16,
or 32.
Qd, Qmspecifies the vectors, for a quadword operation.
Dd, Dmspecifies the vectors, for a doubleword operation.
The following are all the same instruction:
VZIP.32 Dd, Dm
VUZP.32 Dd, Dm
VTRN.32 Dd, Dm
The instruction is disassembled as VTRN.32 .Dd, Dm