From 66885312cbbdbcd923eb06501756747cb4349441 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Fri, 24 May 2019 07:24:26 +0000 Subject: [PATCH] Darwin, x86, testsuite - Make match strings more specific. 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 * 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 | 2 +- gcc/testsuite/gcc.target/i386/pr18041-1.c | 4 ++-- gcc/testsuite/gcc.target/i386/pr18041-2.c | 4 ++-- gcc/testsuite/gcc.target/i386/pr66819-3.c | 2 +- gcc/testsuite/gcc.target/i386/pr66819-4.c | 2 +- gcc/testsuite/gcc.target/i386/pr82662.c | 2 +- gcc/testsuite/gcc.target/i386/ptwrite2.c | 4 ++-- gcc/testsuite/gcc.target/i386/wbinvd-1.c | 2 +- gcc/testsuite/gcc.target/i386/wbnoinvd-1.c | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/gcc/testsuite/gcc.target/i386/pconfig-1.c b/gcc/testsuite/gcc.target/i386/pconfig-1.c index a3fc4f411fe..40b4c0c1272 100644 --- a/gcc/testsuite/gcc.target/i386/pconfig-1.c +++ b/gcc/testsuite/gcc.target/i386/pconfig-1.c @@ -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 diff --git a/gcc/testsuite/gcc.target/i386/pr18041-1.c b/gcc/testsuite/gcc.target/i386/pr18041-1.c index 24da41a02ec..dafe5a82d33 100644 --- a/gcc/testsuite/gcc.target/i386/pr18041-1.c +++ b/gcc/testsuite/gcc.target/i386/pr18041-1.c @@ -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 } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr18041-2.c b/gcc/testsuite/gcc.target/i386/pr18041-2.c index 00ebd2ae36d..1d7748bccc4 100644 --- a/gcc/testsuite/gcc.target/i386/pr18041-2.c +++ b/gcc/testsuite/gcc.target/i386/pr18041-2.c @@ -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 } } } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr66819-3.c b/gcc/testsuite/gcc.target/i386/pr66819-3.c index 3bc5a3471e6..76e3726b38a 100644 --- a/gcc/testsuite/gcc.target/i386/pr66819-3.c +++ b/gcc/testsuite/gcc.target/i386/pr66819-3.c @@ -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); diff --git a/gcc/testsuite/gcc.target/i386/pr66819-4.c b/gcc/testsuite/gcc.target/i386/pr66819-4.c index 18b2ccf8120..143360d0de3 100644 --- a/gcc/testsuite/gcc.target/i386/pr66819-4.c +++ b/gcc/testsuite/gcc.target/i386/pr66819-4.c @@ -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 diff --git a/gcc/testsuite/gcc.target/i386/pr82662.c b/gcc/testsuite/gcc.target/i386/pr82662.c index 8a9332b5c5b..ec08edc9824 100644 --- a/gcc/testsuite/gcc.target/i386/pr82662.c +++ b/gcc/testsuite/gcc.target/i386/pr82662.c @@ -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 } } */ diff --git a/gcc/testsuite/gcc.target/i386/ptwrite2.c b/gcc/testsuite/gcc.target/i386/ptwrite2.c index bd144fc0779..be6b23eb838 100644 --- a/gcc/testsuite/gcc.target/i386/ptwrite2.c +++ b/gcc/testsuite/gcc.target/i386/ptwrite2.c @@ -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 diff --git a/gcc/testsuite/gcc.target/i386/wbinvd-1.c b/gcc/testsuite/gcc.target/i386/wbinvd-1.c index 7854cc22679..9290d9b1945 100644 --- a/gcc/testsuite/gcc.target/i386/wbinvd-1.c +++ b/gcc/testsuite/gcc.target/i386/wbinvd-1.c @@ -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" diff --git a/gcc/testsuite/gcc.target/i386/wbnoinvd-1.c b/gcc/testsuite/gcc.target/i386/wbnoinvd-1.c index bda84cd4c94..697f148b26c 100644 --- a/gcc/testsuite/gcc.target/i386/wbnoinvd-1.c +++ b/gcc/testsuite/gcc.target/i386/wbnoinvd-1.c @@ -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" -- 2.30.2