From 03723c2d3ba05a79448a50fa5fa8a18f70823135 Mon Sep 17 00:00:00 2001 From: lukken Date: Fri, 10 Oct 2025 10:32:22 +0200 Subject: [PATCH] 32: Update flags for Intel compiler --- src/CMakeLists.txt | 20 ++++++++++++++------ src/lookup_avx.cpp | 6 ++++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 41f38db..97ea8e1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,14 +2,22 @@ include(FetchContent) include(FindAVX) add_library(trigdx reference.cpp lookup.cpp) -if(HAVE_AVX) - target_compile_definitions(trigdx PUBLIC HAVE_AVX) - target_compile_options(trigdx PUBLIC -mavx) -endif() - if(HAVE_AVX2) - target_compile_definitions(trigdx PUBLIC HAVE_AVX2) + target_compile_definitions(trigdx PUBLIC HAVE_AVX2) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel" OR CMAKE_CXX_COMPILER_ID STREQUAL + "IntelLLVM") + target_compile_options(trigdx PUBLIC -xCORE-AVX2) + else() target_compile_options(trigdx PUBLIC -mavx2) + endif() +elseif(HAVE_AVX) + target_compile_definitions(trigdx PUBLIC HAVE_AVX) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel" OR CMAKE_CXX_COMPILER_ID STREQUAL + "IntelLLVM") + target_compile_options(trigdx PUBLIC -xAVX) + else() + target_compile_options(trigdx PUBLIC -mavx) + endif() endif() target_include_directories(trigdx PUBLIC ${PROJECT_SOURCE_DIR}/include) diff --git a/src/lookup_avx.cpp b/src/lookup_avx.cpp index 585f73e..03c7814 100644 --- a/src/lookup_avx.cpp +++ b/src/lookup_avx.cpp @@ -7,11 +7,13 @@ #include "trigdx/lookup_avx.hpp" #if defined(HAVE_AVX) && !defined(__AVX__) -static_assert(HAVE_AVX == 0, "__AVX__ should be defined when HAVE_AVX is defined, check compile flags (-mavx)"); +static_assert(HAVE_AVX == 0, "__AVX__ should be defined when HAVE_AVX is " + "defined"); #endif #if defined(HAVE_AVX2) && !defined(__AVX2__) -static_assert(HAVE_AVX2 == 0, "__AVX__2 should be defined when HAVE_AVX2 is defined, check compile flags (-mavx2)"); +static_assert(HAVE_AVX2 == 0, "__AVX__2 should be defined when HAVE_AVX2 is " + "defined"); #endif template struct LookupAVXBackend::Impl {