|
|
@@ -44,74 +44,9 @@ if (DEFINED BINARY AND DEFINED TARGET AND BINARY EQUAL 32) |
|
|
|
endif () |
|
|
|
endif () |
|
|
|
|
|
|
|
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 (${GCC_VERSION} VERSION_GREATER 10.1 OR ${GCC_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() |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "SKYLAKEX" AND NOT NO_AVX512) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "HASWELL" AND NOT NO_AVX2) |
|
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU") |
|
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3 -mavx2") |
|
|
|
endif() |
|
|
|
elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse -msse3 -mavx2") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "HASWELL" AND NOT NO_AVX2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3 -mavx2") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "ZEN" AND NOT NO_AVX2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3 -mavx2") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "SANDYBRIDGE" AND NOT NO_AVX) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3 -mavx") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "BARCELONA" OR ${TARGET} STREQUAL "STEAMROLLER" OR ${TARGET} STREQUAL "BULLDOZER" OR ${TARGET} STREQUAL "EXCAVATOR") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "PILEDRIVER" OR ${TARGET} STREQUAL "BOBCAT" OR ${TARGET} STREQUAL "OPTERON_SSE3") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "PRESCOTT" OR ${TARGET} STREQUAL "NANO") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "NEHALEM" OR ${TARGET} STREQUAL "ATOM") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL "CORE2" OR ${TARGET} STREQUAL "PENRYN" OR ${TARGET} STREQUAL "DUNNINGTON") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse2") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE3) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSSE3) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mssse3") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE4_1) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse4.1") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
if (DEFINED TARGET) |
|
|
|
message(STATUS "-- -- -- -- -- -- -- -- -- -- -- -- --") |
|
|
|
message(STATUS "Targeting the ${TARGET} architecture.") |
|
|
|
set(GETARCH_FLAGS "-DFORCE_${TARGET}") |
|
|
|
endif () |
|
|
@@ -211,6 +146,63 @@ else() |
|
|
|
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") |
|
|
|
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) |
|
|
|
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() |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL SKYLAKEX AND NOT NO_AVX512) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512") |
|
|
|
endif() |
|
|
|
if (${TARGET} STREQUAL HASWELL AND NOT NO_AVX2) |
|
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU") |
|
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") |
|
|
|
endif() |
|
|
|
elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG") |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_AVX) |
|
|
|
if (NOT NO_AVX) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_AVX2) |
|
|
|
if (NOT NO_AVX2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_FMA3) |
|
|
|
if (NOT NO_AVX2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mfma") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE2) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse2") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE3) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSSE3) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mssse3") |
|
|
|
endif() |
|
|
|
if (DEFINED HAVE_SSE4_1) |
|
|
|
set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse4.1") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
if (DEFINED BINARY) |
|
|
|
message(STATUS "Compiling a ${BINARY}-bit binary.") |
|
|
|
endif () |
|
|
|