304304# be compiled with them, rather that specific objects/libs may use them after checking for runtime
305305# compatibility.
306306AX_CHECK_COMPILE_FLAG ( [ -msse4.2] ,[ [ SSE42_CXXFLAGS="-msse4.2"] ] ,,[ [ $CXXFLAG_WERROR] ] )
307+ AX_CHECK_COMPILE_FLAG ( [ -msse4.1] ,[ [ SSE41_CXXFLAGS="-msse4.1"] ] ,,[ [ $CXXFLAG_WERROR] ] )
307308
308309TEMP_CXXFLAGS="$CXXFLAGS"
309310CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS"
@@ -327,6 +328,25 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
327328)
328329CXXFLAGS="$TEMP_CXXFLAGS"
329330
331+ TEMP_CXXFLAGS="$CXXFLAGS"
332+ CXXFLAGS="$CXXFLAGS $SSE41_CXXFLAGS"
333+ AC_MSG_CHECKING ( for SSE4.1 intrinsics )
334+ AC_COMPILE_IFELSE ( [ AC_LANG_PROGRAM ( [ [
335+ #include <stdint.h>
336+ #if defined(_MSC_VER)
337+ #include <immintrin.h>
338+ #elif defined(__GNUC__)
339+ #include <x86intrin.h>
340+ #endif
341+ ] ] ,[ [
342+ __m128i l = _mm_set1_epi32(0);
343+ return _mm_extract_epi32(l, 3);
344+ ] ] ) ] ,
345+ [ AC_MSG_RESULT ( yes ) ; enable_sse41=yes; AC_DEFINE ( ENABLE_SSE41 , 1 , [ Define this symbol to build code that uses SSE4.1 intrinsics] ) ] ,
346+ [ AC_MSG_RESULT ( no ) ]
347+ )
348+ CXXFLAGS="$TEMP_CXXFLAGS"
349+
330350CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
331351
332352AC_ARG_WITH ( [ utils] ,
@@ -1245,6 +1265,7 @@ AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
12451265AM_CONDITIONAL([ GLIBC_BACK_COMPAT] ,[ test x$use_glibc_compat = xyes] )
12461266AM_CONDITIONAL([ HARDEN] ,[ test x$use_hardening = xyes] )
12471267AM_CONDITIONAL([ ENABLE_HWCRC32] ,[ test x$enable_hwcrc32 = xyes] )
1268+ AM_CONDITIONAL([ ENABLE_SSE41] ,[ test x$enable_sse41 = xyes] )
12481269AM_CONDITIONAL([ USE_ASM] ,[ test x$use_asm = xyes] )
12491270
12501271AC_DEFINE ( CLIENT_VERSION_MAJOR , _CLIENT_VERSION_MAJOR , [ Major version] )
@@ -1283,6 +1304,7 @@ AC_SUBST(PIE_FLAGS)
12831304AC_SUBST ( SANITIZER_CXXFLAGS )
12841305AC_SUBST ( SANITIZER_LDFLAGS )
12851306AC_SUBST ( SSE42_CXXFLAGS )
1307+ AC_SUBST ( SSE41_CXXFLAGS )
12861308AC_SUBST ( LIBTOOL_APP_LDFLAGS )
12871309AC_SUBST ( USE_UPNP )
12881310AC_SUBST ( USE_QRCODE )
0 commit comments