首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVX2置换控制位

AVX2置换控制位
EN

Stack Overflow用户
提问于 2018-12-22 10:22:26
回答 1查看 474关注 0票数 1

AVX2指令中的permute命令需要imm8类型的参数。此参数控制如何执行排列。不幸的是,我不明白这个imm8参数是如何“创建”的。我必须设置什么值,或者我如何确定必须为特定的永久设置什么值?

示例:_mm256_permute_pd(vec2,0x5);

在这里,参数0x5置换了vec2中的第一个和第二个double,以及vec2中的第三个和第四个double。但是我怎么知道0x5会这样做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-22 10:29:53

它是4x1位的索引,为每个目标元素从源向量的相应通道中选择两个元素中的一个。阅读文档的操作部分,了解asm指令:http://felixcloutier.com/x86/VPERMILPD.html

或者look it up in Intel's intrinsics guide,它有类似的伪代码,精确地显示了每一位如何选择结果元素的源。

它不是跨车道的vpermpd,所以它不像_MM_SHUFFLE是辅助宏的2位索引,所以它不太像Convert _mm_shuffle_epi32 to C expression for the permutation?

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

https://stackoverflow.com/questions/53892584

复制
相关文章

相似问题

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