在AVX2中的钻头不/补充

Bitwise NOT/complement in AVX2

本文关键字:补充 AVX2      更新时间:2023-10-16

似乎在Avx2中没有固有的固有性。我是否想念它,还是应该做类似_mm256_xor_si256(a, _mm256_set1_epi64x(-1LL))之类的事情?如果后者,它是最佳的吗?汇编中是否也没有矢量说明?

是的,唯一的simd bitwise不是pxor/xorps,in mmx,sse*和avx1/2。

avx512f可以避免使用vpternlogd same,same,same的单独的向量常数,并立即使用0x55。(有关它的更多详细信息与vpxord:AVX中没有缺少我的副本的答案?)


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

的方式。

可以使用vpcmpeqd same,same,same生成全部常数。使用固有的内容,让编译器通过编写_mm256_set1_epi32(-1)为您做到这一点。(元素大小显然与set1(-1)无关,使用任何对您的算法具有语义意义的方法。)