3

现在,我有五个 128 位 SIMD 寄存器:

v0: p0  p1  p2  p3  p4  p5  p6  p7
v1: p8  p9  p10 p11 p12 p13 p14 p15
v2: p16 p17 p18 p19 p20 p21 p22 p23
v3: p24 p25 p26 p27 p28 p29 p30 p31
v4: p32 p33 p34 p35 p36 p37 p38 p39

其中 pn 是像素值。我想将这些数据存储到内存中,存储形式为“ p0 p8 p16 p24 p32 p1 p9 p17 p25 p33 p2 p10 p18 p26 p34 p3 p11 p19 p27 p35 p4 p12 p20 p28 p36 p5 p13 p21 p29 p37 p6 p14 p22 p30 p38 p7 p15 p23 p31 p39”。

此要求类似于st4。但是没有“st5”指令。

我该怎么做?任何人都可以帮助我吗?谢谢你。

4

1 回答 1

0

st4指令可以完成您的用例的工作但由于您有 5 个寄存器,它不适用于您的用例。但是,st4指令将元素一一存储,而不是所有 4 个寄存器的一个通道同时存储。因此,您可以重新排列您选择的要存储的元素,并为您的用例使用strst1变体。

于 2021-08-17T10:46:32.753 回答