以下代码的功能是实现 s16 类型的 8x8 系数矩阵的转置。在NEON汇编优化视频软解的过程中,该过程能很方便地将数据处理成适合NEON优化的排列方式:
/* step 0 : load data
/* Q4 - Q11 */
vld1.16 {q4,q5}, [r1]!
vld1.16 {q6,q7}, [r1]!
vld1.16 {q8,q9}, [r1]!
vld1.16 {q10,q11}, [r1]!
/* step 1 : transpoese 8X8 matrix */
VTRN.16 q8, q9
VTRN.16 q10, q11
VTRN.16 q4, q5
VTRN.16 q6, q7
VTRN.32 q8, q10
VTRN.32 q9, q11
VTRN.32 q4, q6
VTRN.32 q5, q7
VSWP d9, d16
VSWP d11, d18
VSWP d13, d20
VSWP d15, d22