fixed AVX compile error

Some older compilers do not allow to pass a `const int` as an immediate. Use an unnamed enum instead.
This commit is contained in:
Sergiu Deitsch 2021-10-18 14:56:15 +02:00
parent e6c68eed51
commit f8f9f3c438

View File

@ -2379,7 +2379,7 @@ inline void v_load_deinterleave( const unsigned* ptr, v_uint32x8& a, v_uint32x8&
__m256i ab0 = _mm256_loadu_si256((const __m256i*)ptr); __m256i ab0 = _mm256_loadu_si256((const __m256i*)ptr);
__m256i ab1 = _mm256_loadu_si256((const __m256i*)(ptr + 8)); __m256i ab1 = _mm256_loadu_si256((const __m256i*)(ptr + 8));
const int sh = 0+2*4+1*16+3*64; enum { sh = 0+2*4+1*16+3*64 };
__m256i p0 = _mm256_shuffle_epi32(ab0, sh); __m256i p0 = _mm256_shuffle_epi32(ab0, sh);
__m256i p1 = _mm256_shuffle_epi32(ab1, sh); __m256i p1 = _mm256_shuffle_epi32(ab1, sh);
__m256i pl = _mm256_permute2x128_si256(p0, p1, 0 + 2*16); __m256i pl = _mm256_permute2x128_si256(p0, p1, 0 + 2*16);