以下代码是否会产生 AVX 到 SSE 的转换惩罚?如果是这样,我怎样才能存储 __m256 向量的总和而不会产生这种惩罚?
__mm256 x_swap = _mm_permute2f128_ps(x,x,1)
x = _mm256_add_ps(x, x_swap);
x = _mm256_hadd_ps(x,x);
x = _mm256_hadd_ps(x,x); // now all fields of x contain the sum
float sum;
_mm_store_ss(&sum, _mm256_castps256_ps128(x));
谢谢你。