As reported by Sunil's tester, -march=cascadelake triggers some SUBREG
non-determinacy in the generated assembler for my new tests.  Fixed
by updating the regular expressions to match either the zero or sign
extended forms.  I'm testing a backend patch that may help with the
underlying cause of these differences.

Tested on x86_64-pc-linux-gnu (with and without -march=cascadelake).


2021-10-08  Roger Sayle  <ro...@nextmovesoftware.com>

gcc/testsuite/ChangeLog
        * gcc.target/i386/sse2-mmx-paddsb-2.c: Test for -128 or 128.
        * gcc.target/i386/sse2-mmx-paddusb-2.c: Test for -1 or 255.
        * gcc.target/i386/sse2-mmx-psubsb-2.c: Test for -128 or 128.

Roger
--

diff --git a/gcc/testsuite/gcc.target/i386/sse2-mmx-paddsb-2.c 
b/gcc/testsuite/gcc.target/i386/sse2-mmx-paddsb-2.c
index c677884..ad4726b 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-mmx-paddsb-2.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-mmx-paddsb-2.c
@@ -29,5 +29,5 @@ char baz()
 
 /* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$3," 1 } } */
 /* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$127," 1 } } */
-/* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$-128," 1 } } */
+/* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$-?128," 1 } } */
 /* { dg-final { scan-assembler-not "paddsb\[ \\t\]+%xmm\[0-9\]+" } } */
diff --git a/gcc/testsuite/gcc.target/i386/sse2-mmx-paddusb-2.c 
b/gcc/testsuite/gcc.target/i386/sse2-mmx-paddusb-2.c
index b20891c..1d3bc8b 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-mmx-paddusb-2.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-mmx-paddusb-2.c
@@ -20,6 +20,6 @@ char bar()
 }
 
 /* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$3," 1 } } */
-/* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$-1," 1 } } */
+/* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$(?:255|-1)," 1 } } */
 /* { dg-final { scan-assembler-not "paddusb\[ \\t\]+%xmm\[0-9\]+" } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/sse2-mmx-psubsb-2.c 
b/gcc/testsuite/gcc.target/i386/sse2-mmx-psubsb-2.c
index 4fc2920..68b57f2 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-mmx-psubsb-2.c
+++ b/gcc/testsuite/gcc.target/i386/sse2-mmx-psubsb-2.c
@@ -28,6 +28,6 @@ char baz()
 }
 
 /* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$3," 1 } } */
-/* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$-128," 1 } } */
+/* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$-?128," 1 } } */
 /* { dg-final { scan-assembler-times "movl\[ \\t\]+\\\$127," 1 } } */
 /* { dg-final { scan-assembler-not "paddsb\[ \\t\]+%xmm\[0-9\]+" } } */

Reply via email to