pitrou commented on code in PR #14674:
URL: https://github.com/apache/arrow/pull/14674#discussion_r1060821594
##########
cpp/cmake_modules/SetupCxxFlags.cmake:
##########
@@ -82,22 +90,45 @@ if(ARROW_CPU_FLAG STREQUAL "x86")
return 0;
}"
CXX_SUPPORTS_AVX512)
+
+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQURED_FLAGS})
+
+ set(OLD_CMAKE_REQURED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}
${ARROW_AVX512_ICX_FLAG}")
+ check_cxx_source_compiles("
+ #ifdef _MSC_VER
+ #include <intrin.h>
+ #else
+ #include <immintrin.h>
+ #endif
+
+ int main() {
+ __m512i data = _mm512_set1_epi32(0x1);
+ _mm512_maskz_expand_epi16(0x1f1f1f1f, data);
+ return 0;
+ }"
+ CXX_SUPPORTS_AVX512_ICX)
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQURED_FLAGS})
endif()
# Runtime SIMD level it can get from compiler and ARROW_RUNTIME_SIMD_LEVEL
if(CXX_SUPPORTS_SSE4_2 AND ARROW_RUNTIME_SIMD_LEVEL MATCHES
- "^(SSE4_2|AVX2|AVX512|MAX)$")
+ "^(SSE4_2|AVX2|AVX512|AVX512_ICX|MAX)$")
set(ARROW_HAVE_RUNTIME_SSE4_2 ON)
add_definitions(-DARROW_HAVE_RUNTIME_SSE4_2)
endif()
- if(CXX_SUPPORTS_AVX2 AND ARROW_RUNTIME_SIMD_LEVEL MATCHES
"^(AVX2|AVX512|MAX)$")
+ if(CXX_SUPPORTS_AVX2 AND ARROW_RUNTIME_SIMD_LEVEL MATCHES
+ "^(AVX2|AVX512|AVX512_ICX|MAX)$")
set(ARROW_HAVE_RUNTIME_AVX2 ON)
add_definitions(-DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_BMI2)
endif()
- if(CXX_SUPPORTS_AVX512 AND ARROW_RUNTIME_SIMD_LEVEL MATCHES "^(AVX512|MAX)$")
+ if(CXX_SUPPORTS_AVX512 AND ARROW_RUNTIME_SIMD_LEVEL MATCHES
"^(AVX512|AVX512_ICX|MAX)$")
set(ARROW_HAVE_RUNTIME_AVX512 ON)
add_definitions(-DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2)
endif()
+ if(CXX_SUPPORTS_AVX512_ICX AND ARROW_RUNTIME_SIMD_LEVEL MATCHES
"^(AVX512_ICX|MAX)$")
+ set(ARROW_HAVE_RUNTIME_AVX512_ICX ON)
+ add_definitions(-DARROW_HAVE_RUNTIME_AVX512_ICX -DARROW_HAVE_RUNTIME_BMI2)
Review Comment:
It seems `-DARROW_HAVE_RUNTIME_BMI2` will be added several times (first for
AVX2, then for AVX512, then for AVX512_ICX...).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]