assembly neon 灯4x4转置

8ehkhllq  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(80)

AARCH32 neon 程序员指南做出以下声明:
使用多个VTRN指令转置较大的矩阵。例如,可以使用三个VTRN指令来转置由16位元素组成的4x4矩阵。
对于我的生活,我不知道如何做到这一点与三个VTRN指令。即使我假设其他指令是允许的(在合理范围内),我也看不到解决方案。有人知道NPG在说什么吗?这是一个错误,还是一些令人难以置信的棘手的序列,我只是没有看到?谢啦,谢啦

ntjbwcob

ntjbwcob1#

正如评论中推测的那样:

//       d0      d1
// q0 = |0 1 2 3|4 5 6 7|
//       d2      d3
// q1 = |8 9 a b|c d e f|
//
trn.16  d0, d1
//      |0 4 2 6|1 5 3 7|
trn.16  d2, d3
//      |8 c a e|9 d b f|
trn.32  q0, q1
//      |0 4 8 c|1 5 9 d| q0
//      |2 6 a e|3 7 b f| q1

字符串
在ARM32(v7)中,一条指令可以修改两个操作数(如swp,与arm64相反,arm64只有一个目标寄存器)。

相关问题