Correctly test for SSE switches
This commit is contained in:
+33
-25
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user