mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-09-29 19:24:25 +03:00
add BUILD_AVX2 definition, enable non-AVX2 building selectively
This commit is contained in:
committed by
Konstantinos Margaritis
parent
c078d355b6
commit
814045201f
@@ -28,6 +28,9 @@ if (BUILD_AVX512VBMI)
|
||||
endif ()
|
||||
|
||||
if (FAT_RUNTIME)
|
||||
if (NOT DEFINED(BUILD_AVX2))
|
||||
set(BUILD_AVX2 TRUE)
|
||||
endif ()
|
||||
# test the highest level microarch to make sure everything works
|
||||
if (BUILD_AVX512)
|
||||
if (BUILD_AVX512VBMI)
|
||||
@@ -35,8 +38,10 @@ if (FAT_RUNTIME)
|
||||
else ()
|
||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${SKYLAKE_FLAG}")
|
||||
endif (BUILD_AVX512VBMI)
|
||||
else ()
|
||||
elseif (BUILD_AVX2)
|
||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} -march=core-avx2")
|
||||
elseif ()
|
||||
set (CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} -march=core-i7")
|
||||
endif ()
|
||||
else (NOT FAT_RUNTIME)
|
||||
# if not fat runtime, then test given cflags
|
||||
@@ -99,23 +104,23 @@ if (FAT_RUNTIME)
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_SSSE3)
|
||||
message(FATAL_ERROR "SSSE3 support required to build fat runtime")
|
||||
endif ()
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX2)
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND BUILD_AVX2 AND NOT HAVE_AVX2)
|
||||
message(FATAL_ERROR "AVX2 support required to build fat runtime")
|
||||
endif ()
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND BUILD_AVX512 AND NOT HAVE_AVX512)
|
||||
message(FATAL_ERROR "AVX512 support requested but not supported")
|
||||
endif ()
|
||||
if (BUILD_AVX512VBMI AND NOT HAVE_AVX512VBMI)
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND BUILD_AVX512VBMI AND NOT HAVE_AVX512VBMI)
|
||||
message(FATAL_ERROR "AVX512VBMI support requested but not supported")
|
||||
endif ()
|
||||
else (NOT FAT_RUNTIME)
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX2)
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT BUILD_AVX2)
|
||||
message(STATUS "Building without AVX2 support")
|
||||
endif ()
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX512)
|
||||
message(STATUS "Building without AVX512 support")
|
||||
endif ()
|
||||
if (ARCH_IA32 OR ARCH_X86_64 AND NOT HAVE_AVX512VBMI)
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_AVX512VBMI)
|
||||
message(STATUS "Building without AVX512VBMI support")
|
||||
endif ()
|
||||
if ((ARCH_IA32 OR ARCH_X86_64) AND NOT HAVE_SSSE3)
|
||||
|
@@ -27,6 +27,9 @@
|
||||
/* Define if building "fat" runtime. */
|
||||
#cmakedefine FAT_RUNTIME
|
||||
|
||||
/* Define if building AVX2 in the fat runtime. */
|
||||
#cmakedefine BUILD_AVX2
|
||||
|
||||
/* Define if building AVX-512 in the fat runtime. */
|
||||
#cmakedefine BUILD_AVX512
|
||||
|
||||
|
Reference in New Issue
Block a user