diff options
author | Michael Meissner <meissner@linux.vnet.ibm.com> | 2017-04-14 20:27:18 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2017-04-14 20:27:18 +0000 |
commit | 31a07c8102fa4a7e44118bdacda5f8577ca7218e (patch) | |
tree | 30ec7671b7e19070804b97a0954282e8f46f3c93 /gcc/testsuite | |
parent | 19b250c43ae355e88176310cf2be282bd381d6b3 (diff) | |
download | gcc-31a07c8102fa4a7e44118bdacda5f8577ca7218e.zip gcc-31a07c8102fa4a7e44118bdacda5f8577ca7218e.tar.gz gcc-31a07c8102fa4a7e44118bdacda5f8577ca7218e.tar.bz2 |
re PR target/80098 (ICE in curr_insn_transform, at lra-constraints.c:3816 on ppc64le)
[gcc]
2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/80098
* config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
masks of options that should be turned off if the VSX vector
options are turned off.
(OTHER_P8_VECTOR_MASKS): Likewise.
(OTHER_VSX_VECTOR_MASKS): Likewise.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Call
rs6000_disable_incompatible_switches to validate no type switches
like -mvsx.
(rs6000_incompatible_switch): New function to disallow turning on
other vector options if -mno-vsx, -mno-power8-vector, or
-mno-power9-vector are specified.
[gcc/testsuite]
2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/80098
* gcc.target/powerpc/pr80098-1.c: New test.
* gcc.target/powerpc/pr80098-2.c: Likewise.
* gcc.target/powerpc/pr80098-3.c: Likewise.
* gcc.target/powerpc/pr80098-4.c: Likewise.
From-SVN: r246930
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr80098-1.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr80098-2.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr80098-3.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr80098-4.c | 8 |
5 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 07902c1..a1d74b6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com> + + PR target/80098 + * gcc.target/powerpc/pr80098-1.c: New test. + * gcc.target/powerpc/pr80098-2.c: Likewise. + * gcc.target/powerpc/pr80098-3.c: Likewise. + * gcc.target/powerpc/pr80098-4.c: Likewise. + 2017-04-13 Jakub Jelinek <jakub@redhat.com> PR sanitizer/80403 diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-1.c b/gcc/testsuite/gcc.target/powerpc/pr80098-1.c new file mode 100644 index 0000000..f7c200a --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80098-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target { powerpc64*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ +/* { dg-require-effective-target powerpc_p9vector_ok } */ +/* { dg-options "-mcpu=power9 -mno-power9-vector -mpower9-minmax -mpower9-dform" } */ + +int i; + +/* { dg-error "-mno-power9-vector turns off -mpower9-minmax" "PR80098" { target *-*-* } 0 } */ +/* { dg-error "-mno-power9-vector turns off -mpower9-dform" "PR80098" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-2.c b/gcc/testsuite/gcc.target/powerpc/pr80098-2.c new file mode 100644 index 0000000..d51734f --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80098-2.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target { powerpc64*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-options "-mcpu=power8 -mno-power8-vector -mdirect-move -mcrypto" } */ + +int i; + +/* { dg-error "-mno-power8-vector turns off -mdirect-move" "PR80098" { target *-*-* } 0 } */ +/* { dg-error "-mno-power8-vector turns off -mcrypto" "PR80098" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-3.c b/gcc/testsuite/gcc.target/powerpc/pr80098-3.c new file mode 100644 index 0000000..4c224e9 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80098-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile { target { powerpc64*-*-* } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ +/* { dg-require-effective-target powerpc_vsx_ok } */ +/* { dg-options "-mcpu=power7 -mno-vsx -mdirect-move -mcrypto" } */ + +int i; + +/* { dg-error "-mno-vsx turns off -mdirect-move" "PR80098" { target *-*-* } 0 } */ +/* { dg-error "-mno-vsx turns off -mcrypto" "PR80098" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/powerpc/pr80098-4.c b/gcc/testsuite/gcc.target/powerpc/pr80098-4.c new file mode 100644 index 0000000..28eb5e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr80098-4.c @@ -0,0 +1,8 @@ +/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ +/* { dg-require-effective-target powerpc_vsx_ok } */ +/* { dg-options "-mcpu=power7 -mno-vsx -mvsx-timode" } */ + +int i; + +/* { dg-error "-mno-vsx turns off -mvsx-timode" "PR80098" { target *-*-* } 0 } */ |