Page 349 - ARM 64 Bit Assembly Language
P. 349

Advanced SIMD instructions 339








                                             Figure 10.5: Transpose of a 3 × 3 matrix.



                    6     trn1      v8.8h,v10.8h,v11.8h
                    7     trn2      v9.8h,v10.8h,v11.8h

                     Fig. 10.5 shows how the trn instruction can be used to transpose a 3 × 3matrix.



                     10.3.5 Vector permute

                     These instructions are used to interleave or deinterleave the data from two vectors, or to ex-
                     tract bits from a vector:
                     zip        Zip Vectors,
                     uzp        Unzip Vectors, and
                     ext        Byte Extract.

                     Fig. 10.6 gives an example of the zip instruction. The uzp instruction performs the inverse
                     operation.

                     10.3.5.1 Syntax

                          zip(1|2)     Vd.T, Vn.T, Vm.T
                          uzp(1|2)     Vd.T, Vn.T, Vm.T
                          ext          Vd.Ta, Vn.Ta, Vm.Ta, #index
















                      Figure 10.6: Example of zip1 v1.8h,v5.8h,v6.8h. The zip2 instruction does the same thing,
                            but uses the odd elements of the source registers, rather than the even elements.
   344   345   346   347   348   349   350   351   352   353   354