Darwin, x86, testsuite - Make match strings more specific.
authorIain Sandoe <iains@gcc.gnu.org>
Fri, 24 May 2019 07:24:26 +0000 (07:24 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Fri, 24 May 2019 07:24:26 +0000 (07:24 +0000)
Some of the i386.exp tests fail on Darwin (and at least one passes
incorrectly on Linux) because their scan-asm match strings are too
general.  In some cases the strings also match instances in the .file
and size directives or in comment output.  This patch makes the match
strings more specific.

2019-05-24  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.target/i386/pconfig-1.c: Scan for the string in the generated
code, not in comments or miscellaneous directives. Adjust expected
count.
* gcc.target/i386/pr18041-1.c: Likewise.
* gcc.target/i386/pr18041-2.c: Likewise.
* gcc.target/i386/wbinvd-1.c: Likewise.
* gcc.target/i386/wbnoinvd-1.c: Likewise.
* gcc.target/i386/pr66819-3.c: Specifically, check that there is no
call to "bar".
* gcc.target/i386/pr66819-4.c: Likewise.
* gcc.target/i386/pr82662.c
* gcc.target/i386/ptwrite2.c: Make the checks look for the specific
destination register, don't try the m32 test on m64 targets.

From-SVN: r271591

gcc/testsuite/gcc.target/i386/pconfig-1.c
gcc/testsuite/gcc.target/i386/pr18041-1.c
gcc/testsuite/gcc.target/i386/pr18041-2.c
gcc/testsuite/gcc.target/i386/pr66819-3.c
gcc/testsuite/gcc.target/i386/pr66819-4.c
gcc/testsuite/gcc.target/i386/pr82662.c
gcc/testsuite/gcc.target/i386/ptwrite2.c
gcc/testsuite/gcc.target/i386/wbinvd-1.c
gcc/testsuite/gcc.target/i386/wbnoinvd-1.c

index a3fc4f411fee4ceaf98812ccece1451004364df8..40b4c0c12720128e971070276e8c30c139a9867a 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mpconfig" } */
-/* { dg-final { scan-assembler-times "pconfig" 5 } } */
+/* { dg-final { scan-assembler-times {\tpconfig} 2 } } */
 
 #include <x86intrin.h>
 
index 24da41a02ec993beb0a901a931f658048718383b..dafe5a82d333b07c6f32aeafa5b99310880e7eab 100644 (file)
@@ -9,5 +9,5 @@ foo (struct B *b)
     b->bit0 = b->bit0 | b->bit1;
 }
 
-/* { dg-final { scan-assembler-times "and" 1 } } */
-/* { dg-final { scan-assembler-times "or" 1 } } */
+/* { dg-final { scan-assembler-times {\tand[l|q]} 1 } } */
+/* { dg-final { scan-assembler-times {\tor[l|q]} 1 } } */
index 00ebd2ae36d5ff9f2c1a2125e3db5a3651354d16..1d7748bccc4ed70b3ddb84edab00654ac4415a5e 100644 (file)
@@ -10,5 +10,5 @@ bar  (struct B *b, int x)
 }
 
 /* This fails to combine in 32bit mode but not for x32.  */
-/* { dg-final { scan-assembler-times "and" 1 { xfail { { ! x32 } && ilp32 } } } } */
-/* { dg-final { scan-assembler-times "or" 1 { xfail { { ! x32 } && ilp32 } } } } */
+/* { dg-final { scan-assembler-times {\tand[lq]} 1 { xfail { { ! x32 } && ilp32 } } } } */
+/* { dg-final { scan-assembler-times {\tor} 1 { xfail { { ! x32 } && ilp32 } } } } */
index 3bc5a3471e61cc23bbecc86c12b7946a5ffdd0c3..76e3726b38ae560906822752bfd497b2d6a536a5 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile { target ia32 } } */
 /* { dg-options "-O2 -mregparm=3" } */
-/* { dg-final { scan-assembler-not "call" } } */
+/* { dg-final { scan-assembler-not {call[ \t]+_?bar} } } */
 
 void (*bar)(int, int);
 
index 18b2ccf8120e625d5aedfd0111877df588ff1678..143360d0de38d3c7d22f5d4d785af96fa5c45704 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile { target ia32 } } */
 /* { dg-options "-O2 -mregparm=3" } */
-/* { dg-final { scan-assembler-not "call" } } */
+/* { dg-final { scan-assembler-not {call[ \t]+_?bar} } } */
 
 #include <stdarg.h>
 
index 8a9332b5c5bfb82a9f4421bab3f8ad602b8b3ad8..ec08edc9824e5b90abf5eea350a2627b465233d5 100644 (file)
@@ -23,4 +23,4 @@ int f9 (S x, S y) { return x >= y; }
 int f10 (S x, S y) { return x < y; }
 int f11 (S x, S y) { return x <= y; }
 
-/* { dg-final { scan-assembler-times {\mset} 12 } } */
+/* { dg-final { scan-assembler-times {\tset} 12 } } */
index bd144fc0779305e9f9720b930569365fdecdf90c..be6b23eb838e7e8de58f5f6b3a8d1b21acee2635 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mptwrite " } */
-/* { dg-final { scan-assembler "ptwrite\[^\n\r\]+r" } } */
-/* { dg-final { scan-assembler "ptwrite\[^\n\r\]+e" } } */
+/* { dg-final { scan-assembler {ptwrite[^\n\r]+%eax} } } */
+/* { dg-final { scan-assembler {ptwrite[^\n\r]+%rax} { target lp64 } } } */
 
 #include <x86intrin.h>
 
index 7854cc2267961edfd0c155ec4b43dbd9929e566f..9290d9b1945c68a07475d405564681ad3c1f6150 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
-/* { dg-final { scan-assembler-times "wbinvd" 2 } } */
+/* { dg-final { scan-assembler-times {\twbinvd} 1 } } */
 
 #include "immintrin.h"
 
index bda84cd4c9437bf29eb19fb11495ab3a685152fa..697f148b26cec577e702e427d06164a08728e1d2 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mwbnoinvd" } */
-/* { dg-final { scan-assembler-times "wbnoinvd" 2 } } */
+/* { dg-final { scan-assembler-times {\twbnoinvd} 1 } } */
 
 #include "x86intrin.h"