aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-03-14 23:19:32 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-03-14 23:19:32 +0100
commit79b57d18c65e5b182055e8475aab98296dafc5c6 (patch)
tree64d8494726d66090c71e80c4e8420bdc06887ae6 /gcc
parent51d4212ae9d460c41f5dfe2d47e4350a980c49c7 (diff)
downloadgcc-79b57d18c65e5b182055e8475aab98296dafc5c6.zip
gcc-79b57d18c65e5b182055e8475aab98296dafc5c6.tar.gz
gcc-79b57d18c65e5b182055e8475aab98296dafc5c6.tar.bz2
re PR middle-end/70219 (ICE: in delete_move_and_clobber, at lra-constraints.c:5864 with -O2)
PR middle-end/70219 * lra-constraints.c (delete_move_and_clobber): Change assertion to also allow dregno == 0. * gcc.dg/pr70219.c: New test. From-SVN: r234201
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lra-constraints.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr70219.c18
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b9fba23..a5ada00 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/70219
+ * lra-constraints.c (delete_move_and_clobber): Change assertion
+ to also allow dregno == 0.
+
2016-03-14 Richard Henderson <rth@redhat.com>
PR tree-opt/68714
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 171ed65..ced9e12 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -5868,7 +5868,7 @@ delete_move_and_clobber (rtx_insn *insn, int dregno)
rtx_insn *prev_insn = PREV_INSN (insn);
lra_set_insn_deleted (insn);
- lra_assert (dregno > 0);
+ lra_assert (dregno >= 0);
if (prev_insn != NULL && NONDEBUG_INSN_P (prev_insn)
&& GET_CODE (PATTERN (prev_insn)) == CLOBBER
&& dregno == get_regno (XEXP (PATTERN (prev_insn), 0)))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b2fdd0b..f5af12b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/70219
+ * gcc.dg/pr70219.c: New test.
+
2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
PR target/70083
diff --git a/gcc/testsuite/gcc.dg/pr70219.c b/gcc/testsuite/gcc.dg/pr70219.c
new file mode 100644
index 0000000..bbdbe67
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr70219.c
@@ -0,0 +1,18 @@
+/* PR middle-end/70219 */
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-O1 -w -Wno-psabi" } */
+
+typedef int B __attribute__ ((vector_size (32)));
+typedef int D __attribute__ ((vector_size (32)));
+typedef long E __attribute__ ((vector_size (32)));
+typedef __int128 F;
+typedef __int128 G __attribute__ ((vector_size (32)));
+
+F
+foo (int a, unsigned b, F c, B d, G e, B f, D g, E h, G i)
+{
+ b /= c;
+ e /= (G) ~d;
+ h -= (E){ g[4], e[1], 64, ~f[1] };
+ return b + e[1] + h[0] + h[1] + i[1];
+}