考虑内存布局,以便读取八个连续的 4 字节块[abcdefgh]
。我将它们加载到两个寄存器v0.4s
中v1.4s
,所以我得到了v0.4s = [abcd]
和v1.4s = [efgh]
,其中每个字符代表一个 32 位块。我想对它们重新排序以获得[abef]
两个[cdgh]
(可能不同的)寄存器。
我目前的方法是首先反转 64 位的一半[efgh]
以获得[ghef]
. 然后我可以使用 extract 来获取[abef]
and [ghcd]
。然后,我终于可以再次反转 64 位的一半[ghcd]
来获得[cdgh]
.
谁能告诉一个更好的方法?