diff --git a/cmake/archdetect.cmake b/cmake/archdetect.cmake index 9529d682..015140fe 100644 --- a/cmake/archdetect.cmake +++ b/cmake/archdetect.cmake @@ -47,7 +47,15 @@ if (USE_CPU_NATIVE) set(GNUCC_ARCH x86_64_v2) set(TUNE_FLAG generic) elseif(ARCH_AARCH64) - set(GNUCC_ARCH armv8) + if (BUILD_SVE2_BITPERM) + set(GNUCC_ARCH ${SVE2_BITPERM_ARCH}) + elseif (BUILD_SVE2) + set(GNUCC_ARCH ${SVE2_ARCH}) + elseif (BUILD_SVE) + set(GNUCC_ARCH ${SVE_ARCH}) + else () + set(GNUCC_ARCH ${ARMV8_ARCH}) + endif() set(TUNE_FLAG generic) elseif(ARCH_ARM32) set(GNUCC_ARCH armv7a) @@ -63,8 +71,16 @@ else() set(GNUCC_ARCH native) set(TUNE_FLAG generic) elseif(ARCH_AARCH64) - set(GNUCC_ARCH armv8-a) - set(TUNE_FLAG generic) + if (BUILD_SVE2_BITPERM) + set(GNUCC_ARCH ${SVE2_BITPERM_ARCH}) + elseif (BUILD_SVE2) + set(GNUCC_ARCH ${SVE2_ARCH}) + elseif (BUILD_SVE) + set(GNUCC_ARCH ${SVE_ARCH}) + else () + set(GNUCC_ARCH ${ARMV8_ARCH}) + endif() + set(TUNE_FLAG generic) elseif(ARCH_ARM32) set(GNUCC_ARCH armv7a) set(TUNE_FLAG generic)