aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPat Haugen <pthaugen@us.ibm.com>2017-03-10 14:32:42 +0000
committerPat Haugen <pthaugen@gcc.gnu.org>2017-03-10 14:32:42 +0000
commitfc8f6304a9ce1869fd60db6b1863938d85e017d3 (patch)
treeeac3379adb3dff38c660ead8c6c74a16b7115cf3 /gcc
parent8823ce3f54a875c2523264ddf3342bc54cdf10eb (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/powerpc/pr79907.c15
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;
+}