File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -130,6 +130,28 @@ endif
130130endif
131131endif
132132
133+ ifeq ($(CORE), ZEN)
134+ ifdef HAVE_AVX512VL
135+ ifndef NO_AVX512
136+ CCOMMON_OPT += -march=skylake-avx512
137+ ifneq ($(F_COMPILER), NAG)
138+ FCOMMON_OPT += -march=skylake-avx512
139+ endif
140+ ifeq ($(OSNAME), CYGWIN_NT)
141+ CCOMMON_OPT += -fno-asynchronous-unwind-tables
142+ FCOMMON_OPT += -fno-asynchronous-unwind-tables
143+ endif
144+ ifeq ($(OSNAME), WINNT)
145+ ifeq ($(C_COMPILER), GCC)
146+ CCOMMON_OPT += -fno-asynchronous-unwind-tables
147+ FCOMMON_OPT += -fno-asynchronous-unwind-tables
148+ endif
149+ endif
150+ endif
151+ endif
152+ endif
153+
154+
133155ifdef HAVE_AVX2
134156ifndef NO_AVX2
135157ifeq ($(C_COMPILER), GCC)
Original file line number Diff line number Diff line change @@ -144,6 +144,21 @@ if (${CORE} STREQUAL SAPPHIRERAPIDS)
144144 endif ()
145145endif ()
146146
147+ if (${CORE} STREQUAL ZEN)
148+ if (HAVE_AVX512VL)
149+ if (NOT DYNAMIC_ARCH)
150+ if (NOT NO_AVX512)
151+ execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION )
152+ if (${GCC_VERSION} VERSION_GREATER 13.0 OR ${GCC_VERSION} VERSION_EQUAL 13.0)
153+ set (CCOMMON_OPT "${CCOMMON_OPT} -march=znver4" )
154+ else ()
155+ set (CCOMMON_OPT "${CCOMMON_OPT} -march=skylake-avx512" )
156+ endif ()
157+ endif ()
158+ endif ()
159+ endif ()
160+ endif ()
161+
147162if (${CORE} STREQUAL A64FX)
148163 if (NOT DYNAMIC_ARCH)
149164 execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION )
Original file line number Diff line number Diff line change @@ -195,9 +195,27 @@ if (DEFINED TARGET)
195195 endif ()
196196 endif ()
197197 if (${TARGET} STREQUAL SKYLAKEX AND NOT NO_AVX512)
198- set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512" )
198+ set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512" )
199199 endif ()
200- if ((${TARGET} STREQUAL HASWELL OR ${TARGET} STREQUAL ZEN) AND NOT NO_AVX2)
200+
201+ if (((${TARGET} STREQUAL ZEN) AND HAVE_AVX512VL) AND NOT NO_AVX512)
202+ if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" )
203+ execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION )
204+ if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 12.99)
205+ set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=znver4" )
206+ else ()
207+ set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512" )
208+ endif ()
209+ elseif (${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang" )
210+ if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 15.99)
211+ set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=znver4" )
212+ else ()
213+ set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512" )
214+ endif ()
215+ endif ()
216+ endif ()
217+
218+ if ((${TARGET} STREQUAL HASWELL OR (${TARGET} STREQUAL ZEN AND NOT HAVE_AVX512VL)) AND NOT NO_AVX2)
201219 if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" )
202220 execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION )
203221 if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
You can’t perform that action at this time.
0 commit comments