]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
set -msse4.2 only on Intel
authorKonstantinos Margaritis <konstantinos@vectorcamp.gr>
Wed, 1 Dec 2021 21:45:31 +0000 (21:45 +0000)
committerKonstantinos Margaritis <konstantinos@vectorcamp.gr>
Wed, 1 Dec 2021 21:45:31 +0000 (21:45 +0000)
CMakeLists.txt

index 9039532955ea7382b1bf2c960591cf296d8050cb..d61b4a4a58988fedb79f2adaf748b737970d928b 100644 (file)
@@ -182,21 +182,30 @@ if (CMAKE_COMPILER_IS_GNUCC AND NOT CROSS_COMPILE)
     endif()
     message(STATUS "gcc will tune for ${GNUCC_ARCH}")
 elseif (CMAKE_COMPILER_IS_CLANG AND NOT CROSS_COMPILE)
-    set(GNUCC_ARCH native)
-    set(TUNE_FLAG generic)
     message(STATUS "clang will tune for ${TUNE_FLAG}")
-    if (BUILD_AVX512)
-        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SKYLAKE_FLAG}")
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SKYLAKE_FLAG}")
-    elseif (BUILD_AVX2)
-        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2")
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
+    if (ARCH_IA32 OR ARCH_X86_64)
+        set(GNUCC_ARCH native)
+        set(TUNE_FLAG generic)
+        if (BUILD_AVX512)
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SKYLAKE_FLAG}")
+            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SKYLAKE_FLAG}")
+        elseif (BUILD_AVX2)
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx2")
+            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
+        else()
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
+            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
+        endif()
+    elseif(ARCH_AARCH64)
+       set(GNUCC_ARCH armv8)
+       set(TUNE_FLAG generic)
+    elseif(ARCH_ARM32)
+       set(GNUCC_ARCH armv7a)
+       set(TUNE_FLAG generic)
     else()
-        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
+       set(GNUCC_ARCH native)
+       set(TUNE_FLAG generic)
     endif()
-    message(STATUS "${CMAKE_C_FLAGS}")
-    message(STATUS "${CMAKE_CXX_FLAGS}")
 elseif (CROSS_COMPILE)
     set(GNUCC_ARCH generic)
     set(TUNE_FLAG generic)
@@ -214,10 +223,9 @@ endif(ARCH_AARCH64)
 
 if (ARCH_IA32 OR ARCH_X86_64 OR ARCH_ARM32 OR ARCH_AARCH64)
     if (NOT CMAKE_C_FLAGS MATCHES .*march.* AND NOT CMAKE_C_FLAGS MATCHES .*mtune.*)
-            set(ARCH_C_FLAGS "-march=${GNUCC_ARCH} -mtune=${TUNE_FLAG}")
+        set(ARCH_C_FLAGS "-march=${GNUCC_ARCH} -mtune=${TUNE_FLAG}")
     endif()
-        
-         if (NOT CMAKE_CXX_FLAGS MATCHES .*march.* AND NOT CMAKE_CXX_FLAGS MATCHES .*mtune.*)
+    if (NOT CMAKE_CXX_FLAGS MATCHES .*march.* AND NOT CMAKE_CXX_FLAGS MATCHES .*mtune.*)
         set(ARCH_CXX_FLAGS "-march=${GNUCC_ARCH} -mtune=${TUNE_FLAG}")
     endif()
 endif()