From eb1d2344f7809c63a9cb5ae4ce05e255b15ec2c7 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 1 Feb 2021 19:45:25 +0100 Subject: [PATCH 1/4] Fix compiler version check for Intel Cooperlake support (clang-cl does not accept -dumpversion) --- cmake/system.cmake | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cmake/system.cmake b/cmake/system.cmake index 66e95c6d3..1d4e62463 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -148,16 +148,20 @@ endif () include("${PROJECT_SOURCE_DIR}/cmake/prebuild.cmake") if (DEFINED TARGET) if (${TARGET} STREQUAL COOPERLAKE AND NOT NO_AVX512) -# 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) - if (${GCC_VERSION} VERSION_GREATER 10.1 OR ${GCC_VERSION} VERSION_EQUAL 10.1) + if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 10.1 OR ${CMAKE_C_COMPILER_VERSION} VERSION_EQUAL 10.1) set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake") else() set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") endif() -# elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG") -# set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") -# endif() + elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG") + if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 8.99) + set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake") + else() + set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") + endif() + endif() endif() if (${TARGET} STREQUAL SKYLAKEX AND NOT NO_AVX512) set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") From 774b9f86534c74403cfb417cde906dd034cd707e Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 1 Feb 2021 20:18:53 +0100 Subject: [PATCH 2/4] handle AppleClang in Cooperlake support condition --- cmake/system.cmake | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cmake/system.cmake b/cmake/system.cmake index 1d4e62463..1336e19a2 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -4,6 +4,13 @@ ## set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib") +1 + +## + +2 + +## Author: Hank Anderson # System detection, via CMake. include("${PROJECT_SOURCE_DIR}/cmake/system_check.cmake") @@ -150,12 +157,12 @@ if (DEFINED TARGET) if (${TARGET} STREQUAL COOPERLAKE 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 10.1 OR ${CMAKE_C_COMPILER_VERSION} VERSION_EQUAL 10.1) + if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 10.09) set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake") else() set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") endif() - elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG") + elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang") if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 8.99) set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake") else() From 99ac042702da18bcf7627c410c4d7eb36213bd6f Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 1 Feb 2021 21:02:53 +0100 Subject: [PATCH 3/4] remove spurious lines (probably editor malfunction) --- cmake/system.cmake | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cmake/system.cmake b/cmake/system.cmake index 1336e19a2..a5996b9be 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -4,13 +4,6 @@ ## set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib") -1 - -## - -2 - -## Author: Hank Anderson # System detection, via CMake. include("${PROJECT_SOURCE_DIR}/cmake/system_check.cmake") From 95e19e2e231b01f104e0acc68bfd7589c39c4213 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Tue, 2 Feb 2021 10:53:46 +0100 Subject: [PATCH 4/4] fix case in compiler name check Co-authored-by: xoviat <49173759+xoviat@users.noreply.github.com> --- cmake/system.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/system.cmake b/cmake/system.cmake index a5996b9be..d52af3aa1 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -155,7 +155,7 @@ if (DEFINED TARGET) else() set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") endif() - elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang") + elseif (${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang") if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 8.99) set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake") else()