diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-03-14 23:19:32 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-03-14 23:19:32 +0100 |
commit | 79b57d18c65e5b182055e8475aab98296dafc5c6 (patch) | |
tree | 64d8494726d66090c71e80c4e8420bdc06887ae6 /gcc | |
parent | 51d4212ae9d460c41f5dfe2d47e4350a980c49c7 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lra-constraints.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr70219.c | 18 |
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]; +} |