Closed Chemple closed 4 months ago
Hello, I encountered one build error while trying to compile the project.
`#if defined(AVX512F) while (a + 64 <= last) { __m512i vxor = _mm512_xor_si512(_mm512_loadu_si512(reinterpret_cast<const m512i *>(a)), _mm512_loadu_si512(reinterpret_cast<const m512i *>(b))); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 0)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 1)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 2)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 3)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 4)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 5)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 6)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 7)); a += 64; b += 64; }
My cpu version is Intel(R) Xeon(R) Gold 5318Y CP, and i had checked the Intel manual and found the _mm512_extract_epi64 is not supprted in my cpu version.
_mm512_extract_epi64
Thx
Hello, I encountered one build error while trying to compile the project.
`#if defined(AVX512F) while (a + 64 <= last) { __m512i vxor = _mm512_xor_si512(_mm512_loadu_si512(reinterpret_cast<const m512i *>(a)), _mm512_loadu_si512(reinterpret_cast<const m512i *>(b))); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 0)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 1)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 2)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 3)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 4)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 5)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 6)); count += _mm_popcnt_u64(_mm512_extract_epi64(vxor, 7)); a += 64; b += 64; }
endif`
My cpu version is Intel(R) Xeon(R) Gold 5318Y CP, and i had checked the Intel manual and found the
_mm512_extract_epi64
is not supprted in my cpu version.