From a9ce50120b68db3669aaadeac348db8926bc15c4 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 19 Nov 2023 11:19:14 +0100 Subject: Improved architecture detection --- configure.sh | 7 ++++++- cube.c | 8 +++----- utils/detect-immintrin.c | 5 ----- 3 files changed, 9 insertions(+), 11 deletions(-) delete mode 100644 utils/detect-immintrin.c diff --git a/configure.sh b/configure.sh index 9a790ca..b9779c2 100755 --- a/configure.sh +++ b/configure.sh @@ -1,8 +1,13 @@ #!/bin/sh -cc -mavx2 utils/detect-immintrin.c && detected="AVX2" && rm a.out +detect() { cc -march=native -dM -E - < /dev/null | grep "$1"; } + +[ -n "$(detect __AVX2__)" ] && detected="AVX2" + TYPE=${TYPE-"$detected"} +echo "Using CUBE_$TYPE" + STD="-std=c99" WFLAGS="-pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-function" [ "$TYPE" = "AVX2" ] && AVX="-mavx2" diff --git a/cube.c b/cube.c index b5a30a6..895c088 100644 --- a/cube.c +++ b/cube.c @@ -2,9 +2,7 @@ #include #include -#ifdef CUBE_AVX2 -#include -#endif +#include "cube.h" #ifdef DEBUG #include @@ -25,8 +23,6 @@ #define DBG_ASSERT(condition, retval, ...) #endif -#include "cube.h" - /****************************************************************************** Section: constants, strings and other stuff ******************************************************************************/ @@ -495,6 +491,8 @@ Note: the #ifdef below is closed in the next section. #ifdef CUBE_AVX2 +#include + typedef __m256i cube_fast_t; #define _co2_avx2 _mm256_set_epi64x(0, 0, 0, 0x6060606060606060) diff --git a/utils/detect-immintrin.c b/utils/detect-immintrin.c deleted file mode 100644 index 20da678..0000000 --- a/utils/detect-immintrin.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int main() { - return 0; -} -- cgit v1.3