diff -up ./cmake/pcl_find_sse.cmake.sse2 ./cmake/pcl_find_sse.cmake --- ./cmake/pcl_find_sse.cmake.sse2 2020-05-11 04:59:26.000000000 -0400 +++ ./cmake/pcl_find_sse.cmake 2020-05-29 17:53:00.504657076 -0400 @@ -4,20 +4,6 @@ macro(PCL_CHECK_FOR_SSE) set(SSE_FLAGS) set(SSE_DEFINITIONS) - if(NOT CMAKE_CROSSCOMPILING) - # Test GCC/G++ and CLANG - if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) - include(CheckCXXCompilerFlag) - check_cxx_compiler_flag("-march=native" HAVE_MARCH) - if(HAVE_MARCH) - list(APPEND SSE_FLAGS "-march=native") - else() - list(APPEND SSE_FLAGS "-mtune=native") - endif() - message(STATUS "Using CPU native flags for SSE optimization: ${SSE_FLAGS}") - endif() - endif() - # Unfortunately we need to check for SSE to enable "-mfpmath=sse" alongside # "-march=native". The reason for this is that by default, 32bit architectures # tend to use the x87 FPU (which has 80 bit internal precision), thus leading @@ -170,18 +156,9 @@ macro(PCL_CHECK_FOR_SSE) set(CMAKE_REQUIRED_FLAGS) if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) - if(HAVE_SSE4_2_EXTENSIONS) - list(APPEND SSE_FLAGS "-msse4.2" "-mfpmath=sse") - elseif(HAVE_SSE4_1_EXTENSIONS) - list(APPEND SSE_FLAGS "-msse4.1" "-mfpmath=sse") - elseif(HAVE_SSSE3_EXTENSIONS) - list(APPEND SSE_FLAGS "-mssse3" "-mfpmath=sse") - elseif(HAVE_SSE3_EXTENSIONS) - list(APPEND SSE_FLAGS "-msse3" "-mfpmath=sse") - elseif(HAVE_SSE2_EXTENSIONS) + if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") + MESSAGE(STATUS "Enabling SSE Support (${CMAKE_SYSTEM_PROCESSOR}, ${CMAKE_SIZEOF_VOID_P})") list(APPEND SSE_FLAGS "-msse2" "-mfpmath=sse") - elseif(HAVE_SSE_EXTENSIONS) - list(APPEND SSE_FLAGS "-msse" "-mfpmath=sse") else() # Setting -ffloat-store to alleviate 32bit vs 64bit discrepancies on non-SSE # platforms.