考虑内存布局,以便读取八个连续的 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].
谁能告诉一个更好的方法?