Upcoming patches first drop Binutils ISA support from SSE4.2 to SSSE3, then bump it to AVX2. Instead of fiddling with detection, just bump our configure check to AVX2 immediately: if by some accident somebody builds GCC without AVX2 support in the assembler, they will get SSE2 vectorized lexer, which is not too slow.
libcpp/ChangeLog: * config.in: Regenerate. * configure: Regenerate. * configure.ac: Check for AVX2 instead of SSE4.2. * lex.cc: Adjust for changed config macro. --- libcpp/config.in | 6 +++--- libcpp/configure | 4 ++-- libcpp/configure.ac | 6 +++--- libcpp/lex.cc | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libcpp/config.in b/libcpp/config.in index 253ef03a3d..a0ca9e4df4 100644 --- a/libcpp/config.in +++ b/libcpp/config.in @@ -35,6 +35,9 @@ */ #undef HAVE_ALLOCA_H +/* Define to 1 if you can assemble AVX2 insns. */ +#undef HAVE_AVX2 + /* Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES @@ -210,9 +213,6 @@ /* Define to 1 if you have the `putc_unlocked' function. */ #undef HAVE_PUTC_UNLOCKED -/* Define to 1 if you can assemble SSE4 insns. */ -#undef HAVE_SSE4 - /* Define to 1 if you have the <stddef.h> header file. */ #undef HAVE_STDDEF_H diff --git a/libcpp/configure b/libcpp/configure index 32d6aaa306..74af097620 100755 --- a/libcpp/configure +++ b/libcpp/configure @@ -9140,14 +9140,14 @@ case $target in int main () { -asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0)) +asm ("vpshufb %ymm0, %ymm1, %ymm2") ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : -$as_echo "#define HAVE_SSE4 1" >>confdefs.h +$as_echo "#define HAVE_AVX2 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext diff --git a/libcpp/configure.ac b/libcpp/configure.ac index b883fec776..cfefb63552 100644 --- a/libcpp/configure.ac +++ b/libcpp/configure.ac @@ -197,9 +197,9 @@ fi case $target in i?86-* | x86_64-*) - AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))], - [AC_DEFINE([HAVE_SSE4], [1], - [Define to 1 if you can assemble SSE4 insns.])]) + AC_TRY_COMPILE([], [asm ("vpshufb %ymm0, %ymm1, %ymm2")], + [AC_DEFINE([HAVE_AVX2], [1], + [Define to 1 if you can assemble AVX2 insns.])]) esac # Enable --enable-host-shared. diff --git a/libcpp/lex.cc b/libcpp/lex.cc index 1591dcdf15..fa9c03614c 100644 --- a/libcpp/lex.cc +++ b/libcpp/lex.cc @@ -344,7 +344,7 @@ search_line_sse2 (const uchar *s, const uchar *end ATTRIBUTE_UNUSED) return (const uchar *)p + found; } -#ifdef HAVE_SSE4 +#ifdef HAVE_AVX2 /* A version of the fast scanner using SSE 4.2 vectorized string insns. */ static const uchar * -- 2.44.0