Correctly test for SSE switches

This commit is contained in:
Chris Robinson
2020-04-19 02:47:11 -07:00
parent 0a0478f670
commit 1ca7f22145
+33 -25
View File
@@ -309,33 +309,41 @@ ELSE()
SET(CMAKE_REQUIRED_FLAGS "${OLD_REQUIRED_FLAGS}")
ENDIF()
SET(SSE2_SWITCH "")
SET(SSE3_SWITCH "")
SET(SSE4_1_SWITCH "")
SET(FPU_NEON_SWITCH "")
CHECK_C_COMPILER_FLAG(-msse2 HAVE_MSSE2_SWITCH)
IF(HAVE_MSSE2_SWITCH)
SET(SSE2_SWITCH "-msse2")
ENDIF()
CHECK_C_COMPILER_FLAG(-msse3 HAVE_MSSE3_SWITCH)
IF(HAVE_MSSE3_SWITCH)
SET(SSE3_SWITCH "-msse3")
ENDIF()
CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_MSSE4_1_SWITCH)
IF(HAVE_MSSE4_1_SWITCH)
SET(SSE4_1_SWITCH "-msse4.1")
ENDIF()
CHECK_C_COMPILER_FLAG(-mfpu=neon HAVE_MFPU_NEON_SWITCH)
IF(HAVE_MFPU_NEON_SWITCH)
SET(FPU_NEON_SWITCH "-mfpu=neon")
ENDIF()
set(SSE2_SWITCH "")
set(SSE3_SWITCH "")
set(SSE4_1_SWITCH "")
set(FPU_NEON_SWITCH "")
CHECK_INCLUDE_FILE(xmmintrin.h HAVE_XMMINTRIN_H "${SSE2_SWITCH}")
CHECK_INCLUDE_FILE(emmintrin.h HAVE_EMMINTRIN_H "${SSE2_SWITCH}")
CHECK_INCLUDE_FILE(pmmintrin.h HAVE_PMMINTRIN_H "${SSE3_SWITCH}")
CHECK_INCLUDE_FILE(smmintrin.h HAVE_SMMINTRIN_H "${SSE4_1_SWITCH}")
CHECK_INCLUDE_FILE(arm_neon.h HAVE_ARM_NEON_H "${FPU_NEON_SWITCH}")
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
if(NOT MSVC)
# Yes GCC, really don't accept command line options you don't support
set(CMAKE_REQUIRED_FLAGS "${OLD_REQUIRED_FLAGS} -Werror")
endif()
check_c_compiler_flag(-msse2 HAVE_MSSE2_SWITCH)
if(HAVE_MSSE2_SWITCH)
set(SSE2_SWITCH "-msse2")
check_c_compiler_flag(-msse3 HAVE_MSSE3_SWITCH)
if(HAVE_MSSE3_SWITCH)
set(SSE3_SWITCH "-msse3")
check_c_compiler_flag(-msse4.1 HAVE_MSSE4_1_SWITCH)
if(HAVE_MSSE4_1_SWITCH)
set(SSE4_1_SWITCH "-msse4.1")
endif()
endif()
endif()
check_c_compiler_flag(-mfpu=neon HAVE_MFPU_NEON_SWITCH)
if(HAVE_MFPU_NEON_SWITCH)
set(FPU_NEON_SWITCH "-mfpu=neon")
endif()
set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
unset(OLD_REQUIRED_FLAGS)
check_include_file(xmmintrin.h HAVE_XMMINTRIN_H ${SSE2_SWITCH})
check_include_file(emmintrin.h HAVE_EMMINTRIN_H ${SSE2_SWITCH})
check_include_file(pmmintrin.h HAVE_PMMINTRIN_H ${SSE3_SWITCH})
check_include_file(smmintrin.h HAVE_SMMINTRIN_H ${SSE4_1_SWITCH})
check_include_file(arm_neon.h HAVE_ARM_NEON_H ${FPU_NEON_SWITCH})
set(SSE_FLAGS )
set(FPMATH_SET "0")