]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix fuse-caller-save-xmm.c test-case
authorTom de Vries <tom@codesourcery.com>
Mon, 21 Jul 2014 09:11:04 +0000 (09:11 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Mon, 21 Jul 2014 09:11:04 +0000 (09:11 +0000)
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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c

index 481e394f9affdcaf94d2e45cf9314a35dde750b9..aea21255401f4a4f513afc5fec23d14b482bc3b1 100644 (file)
@@ -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
index ff21f0cdb3a4c1f5c4bb0620354f64768433b9db..c639936a4ca8e6379086994e22c7b0b4cf89a4fb 100644 (file)
@@ -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" } } */