我有 128 个 32 位值(编号从 0 到 127),并按以下方式排序:
0, 32, 64, 96, 1, 33, 65, 97, ... 31, 63, 95, 127
通过这种排序,我将它们以 4 个为一组加载到 NEON 寄存器中以执行一些计算(这需要这种排序)。因此我有q0 = (0, 32, 64, 96)
......等等。
我想知道是否有一些简单的方法将它们按自然顺序存储回内存(0 1 2 3 ...)
换句话说,是否有一些更简单的方法或技巧可以做到这一点:
vst1.u32 {d0[0]}, [r0]
vst1.u32 {d0[1]}, [r0,#128]
vst1.u32 {d1[0]}, [r0,#256]
vst1.u32 {d1[1]}, [r0,#384]
vst1.u32 {d2[0]}, [r0,#4]
vst1.u32 {d2[1]}, [r0,#132]
...
我不太明白@alignment
后缀 withvstx
和vldx
指令的使用。这不是一个有用的案例吗?