小编sed*_*eda的帖子

如何清除__m256值的高128位?

如何清除m2的高128位:

__m256i    m2 = _mm256_set1_epi32(2);
__m128i    m1 = _mm_set1_epi32(1);

m2 = _mm256_castsi128_si256(_mm256_castsi256_si128(m2));
m2 = _mm256_castsi128_si256(m1);
Run Code Online (Sandbox Code Playgroud)

不起作用 - 英特尔针对_mm256_castsi128_si256内在函数的文档说"结果向量的高位未定义".同时我可以在装配中轻松完成:

VMOVDQA xmm2, xmm2  //zeros upper ymm2
VMOVDQA xmm2, xmm1
Run Code Online (Sandbox Code Playgroud)

当然我不想用"和"等等_mm256_insertf128_si256().

c x86 simd avx avx2

13
推荐指数
3
解决办法
672
查看次数

标签 统计

avx ×1

avx2 ×1

c ×1

simd ×1

x86 ×1