Page 348 - ARM 64 Bit Assembly Language
P. 348
338 Chapter 10
Figure 10.4: Examples of the trn instruction.
• T must be 8b, 16b, 4h, 8h, 2s, 4s,or 2d.
• Larger matrices can be transposed using a divide-and-conquer approach.
10.3.4.2 Operation
Name Effect Description
trn1 n ← # of elements Copy even elements of Vn and Vm into
for 0 ≤ i< n do Vd, interleaved.
if even(i) then
Vd[i]← Vn[i]
else
Vd[i]← Vm[i − 1]
end if
end for
trn2 n ← # of elements Copy odd elements of Vn and Vm into
for 0 ≤ i< n do Vd, interleaved.
if even(i) then
Vd[i]← Vn[i + 1]
else
Vd[i]← Vm[i]
end if
end for
10.3.4.3 Examples
1 // Transpose a 2x2 matrix of 32-bit elements in v3:v4, store
2 // transposed matrix in v0:v1
3 trn1 v0.2s,v3.2s,v4.2s
4 trn2 v1.2s,v3.2s,v4.2s
5 // Transpose eight 2x2 matrices of 16-bit elements

