Merge pull request #3898 from martin-frbg/zen4fix
Fix compiler option setting for AVX512-capable ZEN targets
This commit is contained in:
commit
fdc1cdb102
|
@ -130,6 +130,28 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CORE), ZEN)
|
||||||
|
ifdef HAVE_AVX512VL
|
||||||
|
ifndef NO_AVX512
|
||||||
|
CCOMMON_OPT += -march=skylake-avx512
|
||||||
|
ifneq ($(F_COMPILER), NAG)
|
||||||
|
FCOMMON_OPT += -march=skylake-avx512
|
||||||
|
endif
|
||||||
|
ifeq ($(OSNAME), CYGWIN_NT)
|
||||||
|
CCOMMON_OPT += -fno-asynchronous-unwind-tables
|
||||||
|
FCOMMON_OPT += -fno-asynchronous-unwind-tables
|
||||||
|
endif
|
||||||
|
ifeq ($(OSNAME), WINNT)
|
||||||
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
CCOMMON_OPT += -fno-asynchronous-unwind-tables
|
||||||
|
FCOMMON_OPT += -fno-asynchronous-unwind-tables
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifdef HAVE_AVX2
|
ifdef HAVE_AVX2
|
||||||
ifndef NO_AVX2
|
ifndef NO_AVX2
|
||||||
ifeq ($(C_COMPILER), GCC)
|
ifeq ($(C_COMPILER), GCC)
|
||||||
|
|
|
@ -144,6 +144,21 @@ if (${CORE} STREQUAL SAPPHIRERAPIDS)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (${CORE} STREQUAL ZEN)
|
||||||
|
if (HAVE_AVX512VL)
|
||||||
|
if (NOT DYNAMIC_ARCH)
|
||||||
|
if (NOT NO_AVX512)
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
if (${GCC_VERSION} VERSION_GREATER 13.0 OR ${GCC_VERSION} VERSION_EQUAL 13.0)
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=znver4")
|
||||||
|
else ()
|
||||||
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=skylake-avx512")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (${CORE} STREQUAL A64FX)
|
if (${CORE} STREQUAL A64FX)
|
||||||
if (NOT DYNAMIC_ARCH)
|
if (NOT DYNAMIC_ARCH)
|
||||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
|
|
@ -197,7 +197,25 @@ if (DEFINED TARGET)
|
||||||
if (${TARGET} STREQUAL SKYLAKEX AND NOT NO_AVX512)
|
if (${TARGET} STREQUAL SKYLAKEX AND NOT NO_AVX512)
|
||||||
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
|
||||||
endif()
|
endif()
|
||||||
if ((${TARGET} STREQUAL HASWELL OR ${TARGET} STREQUAL ZEN) AND NOT NO_AVX2)
|
|
||||||
|
if (((${TARGET} STREQUAL ZEN) AND HAVE_AVX512VL) AND NOT NO_AVX512)
|
||||||
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||||
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 12.99)
|
||||||
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=znver4")
|
||||||
|
else()
|
||||||
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
|
||||||
|
endif()
|
||||||
|
elseif (${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang")
|
||||||
|
if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 15.99)
|
||||||
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=znver4")
|
||||||
|
else()
|
||||||
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if ((${TARGET} STREQUAL HASWELL OR (${TARGET} STREQUAL ZEN AND NOT HAVE_AVX512VL)) AND NOT NO_AVX2)
|
||||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
|
if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
|
||||||
|
|
Loading…
Reference in New Issue