diff options
| author | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-11 20:29:40 +0000 |
|---|---|---|
| committer | janis <janis@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-11 20:29:40 +0000 |
| commit | 359b445a4337c75810c58c65d73dc825553c5ce0 (patch) | |
| tree | 921eb5ca87c29b685960fc063304f50defe91b99 | |
| parent | 839f4df474a9cfc21db86a3eb1c93bdaf5505605 (diff) | |
| download | ppe42-gcc-359b445a4337c75810c58c65d73dc825553c5ce0.tar.gz ppe42-gcc-359b445a4337c75810c58c65d73dc825553c5ce0.zip | |
PR target/42416
* config/rs6000/rs6000.c (rs6000_override_options): On targets
that support VSX, warn for -mno-altivec if vsx is not disabled,
and disable vsx.
* gcc.target/powerpc/warn-1.c: New test.
* gcc.target/powerpc/warn-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155816 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/config/rs6000/rs6000.c | 13 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.target/powerpc/warn-1.c | 18 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.target/powerpc/warn-2.c | 18 |
5 files changed, 58 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2c1e71525e2..3c59ab1f86b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-01-11 Janis Johnson <janis187@us.ibm.com> + + PR target/42416 + * config/rs6000/rs6000.c (rs6000_override_options): On targets + that support VSX, warn for -mno-altivec if vsx is not disabled, + and disable vsx. + 2010-01-11 Joseph Myers <joseph@codesourcery.com> Shujing Zhao <pearly.zhao@oracle.com> diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 48f43da76fa..906392eebf0 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2407,8 +2407,7 @@ rs6000_override_options (const char *default_cpu) } } - /* Add some warnings for VSX. Enable -maltivec unless the user explicitly - used -mno-altivec */ + /* Add some warnings for VSX. */ if (TARGET_VSX) { const char *msg = NULL; @@ -2429,14 +2428,20 @@ rs6000_override_options (const char *default_cpu) msg = N_("-mvsx used with little endian code"); else if (TARGET_AVOID_XFORM > 0) msg = N_("-mvsx needs indexed addressing"); + else if (!TARGET_ALTIVEC && (target_flags_explicit & MASK_ALTIVEC)) + { + if (target_flags_explicit & MASK_VSX) + msg = N_("-mvsx and -mno-altivec are incompatible"); + else + msg = N_("-mno-altivec disables vsx"); + } if (msg) { warning (0, msg); target_flags &= ~ MASK_VSX; } - else if (TARGET_VSX && !TARGET_ALTIVEC - && (target_flags_explicit & MASK_ALTIVEC) == 0) + else if (TARGET_VSX && !TARGET_ALTIVEC) target_flags |= MASK_ALTIVEC; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a910ad3498d..0093948d36e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-01-11 Janis Johnson <janis187@us.ibm.com> + + PR target/42416 + * gcc.target/powerpc/warn-1.c: New test. + * gcc.target/powerpc/warn-2.c: New test. + 2010-01-11 Uros Bizjak <ubizjak@gmail.com> * gcc.target/x86_64/abi/avx/asm-support.S (snapshot_ret): Preserve diff --git a/gcc/testsuite/gcc.target/powerpc/warn-1.c b/gcc/testsuite/gcc.target/powerpc/warn-1.c new file mode 100644 index 00000000000..c00aff08c6e --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/warn-1.c @@ -0,0 +1,18 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-options "-O -mvsx -mno-altivec" } */ + +/* { dg-warning "-mvsx and -mno-altivec are incompatible" "" { target *-*-* } 1 } */ + +double +foo (double *x, double *y) +{ + double z[2]; + int i; + + for (i = 0; i < 2; i++) + z[i] = x[i] + y[i]; + return z[0] * z[1]; +} + +/* { dg-final { scan-assembler-not "xsadddp" } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/warn-2.c b/gcc/testsuite/gcc.target/powerpc/warn-2.c new file mode 100644 index 00000000000..0a9fa1e3ff3 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/warn-2.c @@ -0,0 +1,18 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-options "-O -mcpu=power7 -mno-altivec" } */ + +/* { dg-warning "-mno-altivec disables vsx" "" { target *-*-* } 1 } */ + +double +foo (double *x, double *y) +{ + double z[2]; + int i; + + for (i = 0; i < 2; i++) + z[i] = x[i] + y[i]; + return z[0] * z[1]; +} + +/* { dg-final { scan-assembler-not "xsadddp" } } */ |

