小编Sat*_*nan的帖子

如何执行_mm256_movemask_epi8(VPMOVMSKB)的反转?

内在的:

int mask = _mm256_movemask_epi8(__m256i s1)
Run Code Online (Sandbox Code Playgroud)

创建一个掩码,其32位对应于每个字节的最高位s1.在使用位操作(BMI2例如)操作掩码之后,我想执行反转_mm256_movemask_epi8,即创建一个__m256i向量,每个字节的最高有效位包含相应的位uint32_t mask.

做这个的最好方式是什么?

编辑:我需要执行逆操作,因为内在函数_mm256_blendv_epi8只接受__m256i类型掩码而不是uint32_t.因此,在结果__m256i掩码中,我可以忽略除每个字节的MSB之外的位.

c x86 simd avx avx2

21
推荐指数
2
解决办法
4378
查看次数

标签 统计

avx ×1

avx2 ×1

c ×1

simd ×1

x86 ×1