Add AVX checks (#20)

Co-authored-by: mancini <mancini@astron.nl>
This commit is contained in:
Bram Veenboer
2025-08-15 10:30:57 +02:00
committed by GitHub
parent e755c1a454
commit 9c17e90c77
6 changed files with 60 additions and 10 deletions

42
cmake/FindAVX.cmake Normal file
View File

@@ -0,0 +1,42 @@
include(CheckCXXSourceRuns)
set(SUPPORTED_COMPILERS Clang;GNU;Intel;IntelLLVM)
if(CMAKE_CXX_COMPILER_ID IN_LIST SUPPORTED_COMPILERS)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(CMAKE_REQUIRED_FLAGS "-xHost") # ICC
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
set(CMAKE_REQUIRED_FLAGS "-march=native") # ICX
else()
set(CMAKE_REQUIRED_FLAGS "-march=native") # GCC/Clang
endif()
else()
message(FATAL_ERROR "Unsupported compiler: ${CMAKE_CXX_COMPILER_ID}.")
endif()
# AVX check
check_cxx_source_runs(
"
#include <immintrin.h>
int main() {
__m256 a = _mm256_setzero_ps(); // AVX
(void) a;
return 0;
}
"
HAVE_AVX)
if(HAVE_AVX)
# AVX2 check
check_cxx_source_runs(
"
#include <immintrin.h>
int main() {
__m256i a = _mm256_set1_epi32(-1);
__m256i b = _mm256_abs_epi32(a); // AVX2
(void) b;
return 0;
}
"
HAVE_AVX2)
endif()