Commit 66885312 by Iain Sandoe

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  <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
parent 4ef1d2e2
/* { dg-do compile } */
/* { dg-options "-O2 -mpconfig" } */
/* { dg-final { scan-assembler-times "pconfig" 5 } } */
/* { dg-final { scan-assembler-times {\tpconfig} 2 } } */
#include <x86intrin.h>
......
......@@ -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 } } */
......@@ -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 } } } } */
/* { 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);
......
/* { 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>
......
......@@ -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 } } */
/* { 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>
......
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-final { scan-assembler-times "wbinvd" 2 } } */
/* { dg-final { scan-assembler-times {\twbinvd} 1 } } */
#include "immintrin.h"
......
/* { dg-do compile } */
/* { dg-options "-O2 -mwbnoinvd" } */
/* { dg-final { scan-assembler-times "wbnoinvd" 2 } } */
/* { dg-final { scan-assembler-times {\twbnoinvd} 1 } } */
#include "x86intrin.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment