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