Skip to content

Commit e964ebd

Browse files
authored
Add compiler option for AVX512-capable Ryzen(4)
1 parent 8e8651f commit e964ebd

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

cmake/cc.cmake

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,20 @@ if (${CORE} STREQUAL SAPPHIRERAPIDS)
144144
endif ()
145145
endif ()
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+
147161
if (${CORE} STREQUAL A64FX)
148162
if (NOT DYNAMIC_ARCH)
149163
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)

cmake/system.cmake

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff 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)

0 commit comments

Comments
 (0)