首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVX2中的位不/补

AVX2中的位不/补
EN

Stack Overflow用户
提问于 2017-09-18 05:44:56
回答 1查看 2.8K关注 0票数 3

在AVX2中,按位的NOT/补码似乎没有内在的特性。我错过了吗,还是我们应该做一些像_mm256_xor_si256(a, _mm256_set1_epi64x(-1LL))这样的事情?如果是后者,这是否最优?装配中也没有矢量没有指令吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-18 05:53:48

是的,在MMX,SSE*和AVX1 1/2中,唯一的SIMD位非按位方式是PXOR/XORPS (所有的)。

AVX512F可以避免使用vpternlogd same,same,same使用单独的向量常量,并使用直接0x55。(有关它与vpxordIs NOT missing from SSE, AVX?之争的更多细节,请参见我对副本的回答)

理想情况下,您可以安排您的算法,以避免实际需要的东西。例如,使用PANDN而不是PAND。或者后来倒转作为其他东西的一部分。但如果你最终需要倒转,那就是为什么。

使用vpcmpeqd same,same,same可以生成所有1的常量.对于本质,让编译器为您编写_mm256_set1_epi32(-1)。(元素大小显然与set1(-1)无关,请使用任何有语义意义的算法。)

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

https://stackoverflow.com/questions/46272313

复制
相关文章

相似问题

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