diff options
author | Tom de Vries <tom@codesourcery.com> | 2014-07-21 09:11:04 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2014-07-21 09:11:04 +0000 |
commit | 72c47e0d34d5af5ab7bb4b28e83ccceaed1c0c83 (patch) | |
tree | 843f7874e1a0bc36d5aa42cca0e7f685b91eba73 /gcc | |
parent | 87adf25ab975947dc35d9cfd8d311e8d732dfbeb (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c | 29 |
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" } } */ |