aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2015-03-16 10:11:11 +0000
committerTom de Vries <vries@gcc.gnu.org>2015-03-16 10:11:11 +0000
commit2aab918dacb5a7dc51a4a33db785f2840a093d9d (patch)
treec660bf8ba93ece6f1669ea686ed3e5896ac00858
parent61e0b23353f25d12fd1925ccd2aaaf19f56ddbcb (diff)
downloadgcc-2aab918dacb5a7dc51a4a33db785f2840a093d9d.zip
gcc-2aab918dacb5a7dc51a4a33db785f2840a093d9d.tar.gz
gcc-2aab918dacb5a7dc51a4a33db785f2840a093d9d.tar.bz2
Add PR64895 xfails in i386/fuse-caller-save*.c
2015-03-16 Tom de Vries <tom@codesourcery.com> * gcc.target/i386/fuse-caller-save-rec.c: Add PR64895 xfail on scans. * gcc.target/i386/fuse-caller-save-xmm.c: Same. * gcc.target/i386/fuse-caller-save.c: Same. From-SVN: r221452
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c6
-rw-r--r--gcc/testsuite/gcc.target/i386/fuse-caller-save.c8
4 files changed, 20 insertions, 8 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d68e7a0..96f81d1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2015-03-16 Tom de Vries <tom@codesourcery.com>
+
+ * gcc.target/i386/fuse-caller-save-rec.c: Add PR64895 xfail on scans.
+ * gcc.target/i386/fuse-caller-save-xmm.c: Same.
+ * gcc.target/i386/fuse-caller-save.c: Same.
+
2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/loop_optimization18.ad[sb]: New test.
diff --git a/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c b/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c
index c660e01..7abcf91 100644
--- a/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c
+++ b/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c
@@ -18,12 +18,14 @@ foo (int y)
return y + bar (y);
}
+/* For !nonpic && ia32 xfails, see PR64895. */
+
/* Check that no registers are saved/restored. */
-/* { dg-final { scan-assembler-not "push" } } */
-/* { dg-final { scan-assembler-not "pop" } } */
+/* { dg-final { scan-assembler-not "push" { xfail { { ! nonpic } && ia32 } } } } */
+/* { dg-final { scan-assembler-not "pop" { xfail { { ! nonpic } && ia32 } } } } */
/* Check that addition uses dx. */
-/* { dg-final { scan-assembler-times "addl\t%\[re\]?dx, %\[re\]?ax" 1 } } */
+/* { dg-final { scan-assembler-times "addl\t%\[re\]?dx, %\[re\]?ax" 1 { xfail { { ! nonpic } && ia32 } } } } */
/* Verify that bar is self-recursive. */
/* { dg-final { scan-assembler-times "call\t_?bar" 2 } } */
diff --git a/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c b/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
index 1d02844..c2d0544 100644
--- a/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
+++ b/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
@@ -15,11 +15,13 @@ foo (v2df y)
return y + bar (y);
}
+/* For !nonpic && ia32 xfails, see PR64895. */
+
/* Check presence of all insns on xmm registers. These checks are expected to
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 } } */
-/* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 } } */
+/* { dg-final { scan-assembler-times "addpd\t%xmm1, %xmm0" 1 { xfail { { ! nonpic } && ia32 } } } } */
+/* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 { xfail { { ! nonpic } && ia32 } } } } */
/* Check absence of save/restore of xmm1 register. */
/* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */
diff --git a/gcc/testsuite/gcc.target/i386/fuse-caller-save.c b/gcc/testsuite/gcc.target/i386/fuse-caller-save.c
index 7cfd22a..4b8e68d 100644
--- a/gcc/testsuite/gcc.target/i386/fuse-caller-save.c
+++ b/gcc/testsuite/gcc.target/i386/fuse-caller-save.c
@@ -16,9 +16,11 @@ foo (int y)
return y + bar (y);
}
+/* For !nonpic && ia32 xfails, see PR64895. */
+
/* Check that no registers are saved/restored. */
-/* { dg-final { scan-assembler-not "push" } } */
-/* { dg-final { scan-assembler-not "pop" } } */
+/* { dg-final { scan-assembler-not "push" { xfail { { ! nonpic } && ia32 } } } } */
+/* { dg-final { scan-assembler-not "pop" { xfail { { ! nonpic } && ia32 } } } } */
/* 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
@@ -29,4 +31,4 @@ foo (int y)
/* { dg-final { scan-assembler-not "movl" { target { ! ia32 } } } } */
/* 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 } } */
+/* { dg-final { scan-assembler-times "addl\t%\[re\]?d\[ix\], %\[re\]?ax" 1 { xfail { { ! nonpic } && ia32 } } } } */