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\]+" } } */