From 027457f560d4a841017c98da09b55a3ef4da4e88 Mon Sep 17 00:00:00 2001 From: lukken Date: Mon, 6 Oct 2025 18:39:35 +0200 Subject: [PATCH] 32: Set mavx and mavx2 based on CMake checks --- src/CMakeLists.txt | 10 ++++++++++ src/lookup_avx.cpp | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 09c01e9..41f38db 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,6 +2,16 @@ 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_options(trigdx PUBLIC -mavx2) +endif() + target_include_directories(trigdx PUBLIC ${PROJECT_SOURCE_DIR}/include) if(HAVE_AVX) diff --git a/src/lookup_avx.cpp b/src/lookup_avx.cpp index 1effba7..585f73e 100644 --- a/src/lookup_avx.cpp +++ b/src/lookup_avx.cpp @@ -6,6 +6,14 @@ #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)"); +#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)"); +#endif + template struct LookupAVXBackend::Impl { std::vector lookup; static constexpr std::size_t MASK = NR_SAMPLES - 1;