diff options
author | Pat Haugen <pthaugen@us.ibm.com> | 2017-03-10 14:32:42 +0000 |
---|---|---|
committer | Pat Haugen <pthaugen@gcc.gnu.org> | 2017-03-10 14:32:42 +0000 |
commit | fc8f6304a9ce1869fd60db6b1863938d85e017d3 (patch) | |
tree | eac3379adb3dff38c660ead8c6c74a16b7115cf3 /gcc | |
parent | 8823ce3f54a875c2523264ddf3342bc54cdf10eb (diff) | |
download | gcc-fc8f6304a9ce1869fd60db6b1863938d85e017d3.zip gcc-fc8f6304a9ce1869fd60db6b1863938d85e017d3.tar.gz gcc-fc8f6304a9ce1869fd60db6b1863938d85e017d3.tar.bz2 |
re PR target/79907 (ICE in extract_constrain_insn, at recog.c:2213 on ppc64le)
PR target/79907
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
* gcc.target/powerpc/pr79907.c: New.
From-SVN: r246029
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/pr79907.c | 15 |
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 306b5f1..34c6f29 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-03-10 Pat Haugen <pthaugen@us.ibm.com> + + PR target/79907 + * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test + TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass. + 2017-03-10 Martin Liska <mliska@suse.cz> PR target/65705 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index e528bdf..c6ba091 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -3182,7 +3182,7 @@ rs6000_init_hard_regno_mode_ok (bool global_init_p) else rs6000_constraints[RS6000_CONSTRAINT_ws] = FLOAT_REGS; - if (TARGET_UPPER_REGS_DF) /* DImode */ + if (TARGET_UPPER_REGS_DI) /* DImode */ rs6000_constraints[RS6000_CONSTRAINT_wi] = VSX_REGS; else rs6000_constraints[RS6000_CONSTRAINT_wi] = FLOAT_REGS; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b17299b..ef5609c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-03-10 Pat Haugen <pthaugen@us.ibm.com> + + PR target/79907 + * gcc.target/powerpc/pr79907.c: New. + 2017-03-10 Olivier Hainque <hainque@adacore.com> * gnat.dg/opt64.adb: New test. diff --git a/gcc/testsuite/gcc.target/powerpc/pr79907.c b/gcc/testsuite/gcc.target/powerpc/pr79907.c new file mode 100644 index 0000000..c0e669b --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr79907.c @@ -0,0 +1,15 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-require-effective-target powerpc_p8vector_ok } */ +/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ +/* { dg-options "-mcpu=power8 -O3 -mno-upper-regs-df" } */ + +int foo (short a[], int x) +{ + unsigned int i; + for (i = 0; i < 1000; i++) + { + x = a[i]; + a[i] = (x <= 0 ? 0 : x); + } + return x; +} |