Check build system support for AVX512 instructions
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Tue, 5 Jun 2018 21:29:33 +0000 (23:29 +0200)
committerGitHub <noreply@github.com>
Tue, 5 Jun 2018 21:29:33 +0000 (23:29 +0200)
cmake/system_check.cmake

index d47c38c..f054852 100644 (file)
@@ -66,3 +66,12 @@ else()
   set(BINARY32 1)
 endif()
 
+if (X86_64 OR X86)
+  file(WRITE ${PROJECT_BINARY_DIR}/avx512.tmp "void main(void){ __asm__ volatile(\"vaddps %zmm1, %zmm0, %zmm0\"); }")
+execute_process(COMMAND ${CMAKE_C_COMPILER} -v -o ${PROJECT_BINARY_DIR}/avx512.o -x c ${PROJECT_BINARY_DIR}/avx512.tmp RESULT_VARIABLE NO_AVX512)
+if (NO_AVX512 EQUAL 1)
+set (CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX512")
+endif()
+  file(REMOVE "avx512.tmp" "avx512.o")
+endif()
+