diff options
author | Janis Johnson <janis187@us.ibm.com> | 2010-01-11 20:29:40 +0000 |
---|---|---|
committer | Janis Johnson <janis@gcc.gnu.org> | 2010-01-11 20:29:40 +0000 |
commit | 3767f512426fb5ec2c3459a83e220c3343125fc3 (patch) | |
tree | 921eb5ca87c29b685960fc063304f50defe91b99 /gcc | |
parent | a6ffbb9c263facd86def845b330c33538d7663fa (diff) | |
download | gcc-3767f512426fb5ec2c3459a83e220c3343125fc3.zip gcc-3767f512426fb5ec2c3459a83e220c3343125fc3.tar.gz gcc-3767f512426fb5ec2c3459a83e220c3343125fc3.tar.bz2 |
re PR target/42416 (ICE in rs6000_bulitin_vec_perm for 177.mesa with -mvsx)
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.
From-SVN: r155816
Diffstat (limited to 'gcc')
-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 2c1e715..3c59ab1 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 48f43da..906392e 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 a910ad3..0093948 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 0000000..c00aff0 --- /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 0000000..0a9fa1e --- /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" } } */ |