aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2014-07-21 09:11:04 +0000
committerTom de Vries <vries@gcc.gnu.org>2014-07-21 09:11:04 +0000
commit72c47e0d34d5af5ab7bb4b28e83ccceaed1c0c83 (patch)
tree843f7874e1a0bc36d5aa42cca0e7f685b91eba73
parent87adf25ab975947dc35d9cfd8d311e8d732dfbeb (diff)
downloadgcc-72c47e0d34d5af5ab7bb4b28e83ccceaed1c0c83.zip
gcc-72c47e0d34d5af5ab7bb4b28e83ccceaed1c0c83.tar.gz
gcc-72c47e0d34d5af5ab7bb4b28e83ccceaed1c0c83.tar.bz2
Fix fuse-caller-save-xmm.c test-case
2014-07-21 Tom de Vries <tom@codesourcery.com> PR target/61827 * gcc.target/i386/fuse-caller-save-xmm.c: Add -fomit-frame-pointer to dg-options. Add checks for insns with xmm registers. Remove cfi_def_cfa_offset checks. Generalize checks containing %rsp. (main): Remove. From-SVN: r212888
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c29
2 files changed, 17 insertions, 20 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 481e394..aea21255 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2014-07-21 Tom de Vries <tom@codesourcery.com>
+
+ PR target/61827
+ * gcc.target/i386/fuse-caller-save-xmm.c: Add -fomit-frame-pointer to
+ dg-options. Add checks for insns with xmm registers. Remove
+ cfi_def_cfa_offset checks. Generalize checks containing %rsp.
+ (main): Remove.
+
2014-07-21 Uros Bizjak <ubizjak@gmail.com>
PR target/61855
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 ff21f0c..c639936 100644
--- a/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
+++ b/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -msse -fuse-caller-save" } */
+/* { dg-options "-O2 -msse -fuse-caller-save -fomit-frame-pointer" } */
typedef double v2df __attribute__((vector_size (16)));
@@ -15,23 +15,12 @@ foo (v2df y)
return y + bar (y);
}
-int
-main (void)
-{
- int success;
- union {
- v2df v;
- double d[2];
- } u;
-
- u.v = foo ((v2df){ 5.0, 5.0});
- success = (u.d[0] == 13.0
- && u.d[1] == 13.0);
-
- return !success;
-}
+/* Check presence of all insns on xmm registers. These checks are expected to
+ pass with both -fuse-caller-save and -fno-use-caller-save. */
+/* { 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-not "movaps\t%xmm1, \\(%rsp\\)" } } */
-/* { dg-final { scan-assembler-not "movapd\t\\(%rsp\\), %xmm1" } } */
-/* { dg-final { scan-assembler-times ".cfi_def_cfa_offset 16" 1 } } */
-/* { dg-final { scan-assembler-times ".cfi_def_cfa_offset 32" 1 } } */
+/* Check absence of save/restore of xmm1 register. */
+/* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */
+/* { dg-final { scan-assembler-not "movapd\t\\(%\[re\]?sp\\), %xmm1" } } */