more editing sao_edge_ddistortion_avx2
@@ -160,8 +160,9 @@ static int sao_edge_ddistortion_avx2(const kvz_pixel *orig_data,
tmp_sum_epi32 = _mm256_hadd_epi32(tmp_sum_epi32, tmp_sum_epi32);
tmp_sum_epi32 = _mm256_hadd_epi32(tmp_sum_epi32, tmp_sum_epi32);
- sum += _mm256_extract_epi32(tmp_sum_epi32, 0);
- sum += _mm256_extract_epi32(tmp_sum_epi32, 4);
+ tmp_sum_epi32 = _mm256_add_epi32(tmp_sum_epi32, _mm256_shuffle_epi32(tmp_sum_epi32, _MM_SHUFFLE(0, 1, 0, 1)));
+
+ sum += _mm_cvtsi128_si32(_mm256_castsi256_si128(tmp_sum_epi32));
break;
default:
