Commit 8f5b46e9 by Iain Sandoe Committed by Iain Sandoe

x86, testsuite - update fuse-caller-save tests.

These tests had started to XPASS on pic targets where
the codegen is now as expected.

gcc/testsuite/

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

	PR rtl-optimisation/64895
	* gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs.
	* gcc.target/i386/fuse-caller-save.c: Likewise.
	* gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for
	PIC cases, remove XFAILs.

From-SVN: r271544
parent 1a9c52d2
2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
PR rtl-optimisation/64895
* gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs.
* gcc.target/i386/fuse-caller-save.c: Likewise.
* gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for
PIC cases, remove XFAILs.
2019-05-23 Thomas Schwinge <thomas@codesourcery.com> 2019-05-23 Thomas Schwinge <thomas@codesourcery.com>
PR middle-end/90510 PR middle-end/90510
......
...@@ -18,14 +18,12 @@ foo (int y) ...@@ -18,14 +18,12 @@ foo (int y)
return y + bar (y); return y + bar (y);
} }
/* For !nonpic && ia32 xfails, see PR64895. */
/* Check that no registers are saved/restored. */ /* Check that no registers are saved/restored. */
/* { dg-final { scan-assembler-not "push" { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-not "push" } } */
/* { dg-final { scan-assembler-not "pop" { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-not "pop" } } */
/* Check that addition uses dx. */ /* Check that addition uses dx. */
/* { dg-final { scan-assembler-times "addl\t%\[re\]?dx, %\[re\]?ax" 1 { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-times "addl\t%\[re\]?dx, %\[re\]?ax" 1 } } */
/* Verify that bar is self-recursive. */ /* Verify that bar is self-recursive. */
/* { dg-final { scan-assembler-times "call\t_?bar" 2 } } */ /* { dg-final { scan-assembler-times "call\t_?bar" 2 } } */
...@@ -15,13 +15,19 @@ foo (v2df y) ...@@ -15,13 +15,19 @@ foo (v2df y)
return y + bar (y); return y + bar (y);
} }
/* For !nonpic && ia32 xfails, see PR64895. */
/* Check presence of all insns on xmm registers. These checks are expected to /* Check presence of all insns on xmm registers. These checks are expected to
pass with both -fipa-ra and -fno-ipa-ra. */ pass with both -fipa-ra and -fno-ipa-ra. */
/* { dg-final { scan-assembler-times "addpd\t\\.?LC0.*, %xmm0" 1 } } */
/* { dg-final { scan-assembler-times "addpd\t%xmm1, %xmm0" 1 { xfail { { ! nonpic } && ia32 } } } } */ /* Darwin local constant symbol is "lC0", ELF targets ".LC0" */
/* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-times {addpd\t\.?[Ll]C0.*, %xmm0} 1 { target { { ! ia32 } || nonpic } } } } */
/* { dg-final { scan-assembler-times {movapd\t\.?[Ll]C0.*, %xmm1} 1 { target { ia32 && { ! nonpic } } } } } */
/* We happen to get this for both cases, but in different positions. */
/* { dg-final { scan-assembler-times "addpd\t%xmm1, %xmm0" 1 } } */
/* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 { target { { ! ia32 } || nonpic } } } } */
/* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm2" 1 { target { ia32 && { ! nonpic } } } } } */
/* { dg-final { scan-assembler-times "addpd\t%xmm2, %xmm0" 1 { target { ia32 && { ! nonpic } } } } } */
/* Check absence of save/restore of xmm1 register. */ /* Check absence of save/restore of xmm1 register. */
/* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */ /* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */
......
...@@ -16,11 +16,9 @@ foo (int y) ...@@ -16,11 +16,9 @@ foo (int y)
return y + bar (y); return y + bar (y);
} }
/* For !nonpic && ia32 xfails, see PR64895. */
/* Check that no registers are saved/restored. */ /* Check that no registers are saved/restored. */
/* { dg-final { scan-assembler-not "push" { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-not "push" } } */
/* { dg-final { scan-assembler-not "pop" { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-not "pop" } } */
/* PR61605. If the first argument register and the return register differ, then /* PR61605. If the first argument register and the return register differ, then
bar leaves the first argument register intact. That means in foo that the bar leaves the first argument register intact. That means in foo that the
...@@ -31,4 +29,4 @@ foo (int y) ...@@ -31,4 +29,4 @@ foo (int y)
/* { dg-final { scan-assembler-not "movl" { target { ! ia32 } } } } */ /* { dg-final { scan-assembler-not "movl" { target { ! ia32 } } } } */
/* Check that addition uses di (in case of no copy) or dx (in case of copy). */ /* Check that addition uses di (in case of no copy) or dx (in case of copy). */
/* { dg-final { scan-assembler-times "addl\t%\[re\]?d\[ix\], %\[re\]?ax" 1 { xfail { { ! nonpic } && ia32 } } } } */ /* { dg-final { scan-assembler-times "addl\t%\[re\]?d\[ix\], %\[re\]?ax" 1 } } */
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