summaryrefslogtreecommitdiff
path: root/cmake/FindSSE.cmake
blob: d0a57ccbb28921621874b3388d384f16d8937a64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Autodetect if SSE4.1 can be used. If so, the assumption is, so can the other
# SSE version (SSE 2.0, SSSE 3.0).

include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_FLAGS "")

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
    set(CMAKE_REQUIRED_FLAGS "-msse4.1")
endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")

check_cxx_source_compiles("
    #include <xmmintrin.h>
    #include <smmintrin.h>
    #include <tmmintrin.h>
    int main() { return 0; }"
    SSE_FOUND
)