diff options
author | Young Jin Kim <youki@microsoft.com> | 2019-06-19 03:09:14 +0300 |
---|---|---|
committer | Young Jin Kim <youki@microsoft.com> | 2019-06-19 03:09:14 +0300 |
commit | e8ca9a37561efba2c86806518fd52d908e5ff1b7 (patch) | |
tree | e09b1d496b6e5993aec40aea32d4d449012d5d64 /cmake | |
parent | d2d8ec041d443f906809b912a57a3d41b2c3a07c (diff) |
Update some fixed
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/FindSSE.cmake | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/cmake/FindSSE.cmake b/cmake/FindSSE.cmake index c152dd74..e6d3e9ca 100644 --- a/cmake/FindSSE.cmake +++ b/cmake/FindSSE.cmake @@ -56,6 +56,14 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux") ELSE (AVX2_TRUE) set(AVX2_FOUND false CACHE BOOL "AVX2 available on host") ENDIF (AVX2_TRUE) + + STRING(REGEX REPLACE "^.*(avx512).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "avx512" "${SSE_THERE}" AVX512_TRUE) + IF (AVX512_TRUE) + set(AVX512_FOUND true CACHE BOOL "AVX512 available on host") + ELSE (AVX512_TRUE) + set(AVX512_FOUND false CACHE BOOL "AVX512 available on host") + ENDIF (AVX512_TRUE) ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE @@ -108,6 +116,14 @@ ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") ELSE (AVX2_TRUE) set(AVX2_FOUND false CACHE BOOL "AVX2 available on host") ENDIF (AVX2_TRUE) + + STRING(REGEX REPLACE "^.*(avx512).*$" "\\1" SSE_THERE ${CPUINFO}) + STRING(COMPARE EQUAL "avx512" "${SSE_THERE}" AVX512_TRUE) + IF (AVX512_TRUE) + set(AVX512_FOUND true CACHE BOOL "AVX512 available on host") + ELSE (AVX512_TRUE) + set(AVX512_FOUND false CACHE BOOL "AVX512 available on host") + ENDIF (AVX512_TRUE) ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows") # TODO @@ -117,6 +133,7 @@ ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows") set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") set(AVX_FOUND false CACHE BOOL "AVX available on host") set(AVX2_FOUND false CACHE BOOL "AVX2 available on host") + set(AVX512_FOUND false CACHE BOOL "AVX512 available on host") ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux") set(SSE2_FOUND true CACHE BOOL "SSE2 available on host") set(SSE3_FOUND false CACHE BOOL "SSE3 available on host") @@ -124,6 +141,7 @@ ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux") set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host") set(AVX_FOUND false CACHE BOOL "AVX available on host") set(AVX2_FOUND false CACHE BOOL "AVX2 available on host") + set(AVX512_FOUND false CACHE BOOL "AVX512 available on host") ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux") if(NOT SSE2_FOUND) @@ -144,5 +162,8 @@ endif(NOT AVX_FOUND) if(NOT AVX2_FOUND) MESSAGE(STATUS "Could not find hardware support for AVX2 on this machine.") endif(NOT AVX2_FOUND) +if(NOT AVX512_FOUND) + MESSAGE(STATUS "Could not find hardware support for AVX512 on this machine.") +endif(NOT AVX512_FOUND) -mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND, AVX_FOUND, AVX2_FOUND) +mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND, AVX_FOUND, AVX2_FOUND, AVX512_FOUND) |