如何清除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().