首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARMv8霓虹向量置换

ARMv8霓虹向量置换
EN

Stack Overflow用户
提问于 2017-08-21 16:09:24
回答 1查看 426关注 0票数 1

考虑这样的内存布局,即8个连续的4字节块读取[abcdefgh]。我将它们加载到两个寄存器v0.4sv1.4s中,因此得到v0.4s = [abcd]v1.4s = [efgh],其中每个字符代表一个32位块。我想对它们重新排序,以便在两个(可能是不同的)寄存器中获得[abef][cdgh]

我目前的方法是首先反转[efgh]的64位部分,以获得[ghef]。然后我可以使用extract来获取[abef][ghcd]。然后,我可以再次反转[ghcd]的64位部分,以获得[cdgh]

有没有人能说出更好的方法?

EN

回答 1

Stack Overflow用户

发布于 2017-10-14 20:12:19

这正是TRN指令的目的:

// v0: efgh // v1: efgh

代码语言:javascript
复制
trn1 v2.2d, v0.2d, v1.2d
trn2 v3.2d, v0.2d, v1.2d

// v2: abef // v3: cdgh

请不要问我为什么是2d而不是4s。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45792141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档