From 7cd9b191831a1040943dfa51db82b080519640a4 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Wed, 18 Oct 2023 13:49:19 -0700 Subject: [PATCH] Disable prefetch on clang-cl WIN32 --- src/avx512-common-qsort.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/avx512-common-qsort.h b/src/avx512-common-qsort.h index 1fdf3627..9e6b6752 100644 --- a/src/avx512-common-qsort.h +++ b/src/avx512-common-qsort.h @@ -451,18 +451,28 @@ X86_SIMD_SORT_INLINE arrsize_t partition_avx512_unrolled(type_t *arr, X86_SIMD_SORT_UNROLL_LOOP(8) for (int ii = 0; ii < num_unroll; ++ii) { curr_vec[ii] = vtype::loadu(arr + right + ii * vtype::numlanes); + /* + * error: '_mm_prefetch' needs target feature mmx on clang-cl + */ +#if !(defined(_MSC_VER) && defined(__clang__)) _mm_prefetch((char *)(arr + right + ii * vtype::numlanes - num_unroll * vtype::numlanes), _MM_HINT_T0); +#endif } } else { X86_SIMD_SORT_UNROLL_LOOP(8) for (int ii = 0; ii < num_unroll; ++ii) { curr_vec[ii] = vtype::loadu(arr + left + ii * vtype::numlanes); + /* + * error: '_mm_prefetch' needs target feature mmx on clang-cl + */ +#if !(defined(_MSC_VER) && defined(__clang__)) _mm_prefetch((char *)(arr + left + ii * vtype::numlanes + num_unroll * vtype::numlanes), _MM_HINT_T0); +#endif } left += num_unroll * vtype::numlanes; }