diff --git a/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake b/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake index fdd477c1155ec..358d07480ab80 100644 --- a/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake +++ b/libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake @@ -6,7 +6,7 @@ set(ALL_CPU_FEATURES "") if(${LIBC_TARGET_ARCHITECTURE_IS_X86}) - set(ALL_CPU_FEATURES SSE2 SSE4_2 AVX2 AVX512F AVX512BW FMA) + set(ALL_CPU_FEATURES SSE2 SSE4_2 AVX2 AVX512F FMA) set(LIBC_COMPILE_OPTIONS_NATIVE -march=native) elseif(${LIBC_TARGET_ARCHITECTURE_IS_AARCH64}) set(LIBC_COMPILE_OPTIONS_NATIVE -mcpu=native) diff --git a/libc/src/string/CMakeLists.txt b/libc/src/string/CMakeLists.txt index 9e8287fe8b938..e300a036655ab 100644 --- a/libc/src/string/CMakeLists.txt +++ b/libc/src/string/CMakeLists.txt @@ -355,7 +355,7 @@ if(${LIBC_TARGET_ARCHITECTURE_IS_X86}) add_bcmp(bcmp_x86_64_opt_sse2 COMPILE_OPTIONS -march=k8 REQUIRE SSE2) add_bcmp(bcmp_x86_64_opt_sse4 COMPILE_OPTIONS -march=nehalem REQUIRE SSE4_2) add_bcmp(bcmp_x86_64_opt_avx2 COMPILE_OPTIONS -march=haswell REQUIRE AVX2) - add_bcmp(bcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512BW) + add_bcmp(bcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512F) add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE}) add_bcmp(bcmp) else() @@ -409,7 +409,7 @@ if(${LIBC_TARGET_ARCHITECTURE_IS_X86}) add_memcmp(memcmp_x86_64_opt_sse2 COMPILE_OPTIONS -march=k8 REQUIRE SSE2) add_memcmp(memcmp_x86_64_opt_sse4 COMPILE_OPTIONS -march=nehalem REQUIRE SSE4_2) add_memcmp(memcmp_x86_64_opt_avx2 COMPILE_OPTIONS -march=haswell REQUIRE AVX2) - add_memcmp(memcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512BW) + add_memcmp(memcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512F) add_memcmp(memcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE}) add_memcmp(memcmp) elseif(${LIBC_TARGET_ARCHITECTURE_IS_AARCH64}) diff --git a/libc/src/string/memory_utils/op_x86.h b/libc/src/string/memory_utils/op_x86.h index a729cf28bbf4b..8e6432233ca31 100644 --- a/libc/src/string/memory_utils/op_x86.h +++ b/libc/src/string/memory_utils/op_x86.h @@ -20,22 +20,15 @@ #include "src/string/memory_utils/op_builtin.h" #include "src/string/memory_utils/op_generic.h" -#if defined(__AVX512BW__) || defined(__AVX512F__) || defined(__AVX2__) || \ - defined(__SSE2__) +#ifdef __SSE2__ #include -#endif - +#else // Define fake functions to prevent the compiler from failing on undefined -// functions in case the CPU extension is not present. -#ifndef __AVX512BW__ +// functions in case SSE2 is not present. #define _mm512_cmpneq_epi8_mask(A, B) 0 -#endif -#ifndef __AVX2__ -#define _mm256_movemask_epi8(A) 0 -#endif -#ifndef __SSE2__ #define _mm_movemask_epi8(A) 0 -#endif +#define _mm256_movemask_epi8(A) 0 +#endif // __SSE2__ namespace __llvm_libc::x86 {