re PR rtl-optimization/70326 (ICE: RTL check: expected elt 3 type 'e' or 'u', have '0' (rtx note) in PATTERN, at rtl.h:1440)

PR middle-end/70326
	* lra.c (restore_scratches): Ignore deleted insns.

	* gcc.dg/pr70326.c: New test.

From-SVN: r234383
This commit is contained in:
Jakub Jelinek 2016-03-21 22:04:32 +01:00 committed by Jakub Jelinek
parent b94078834d
commit 11b6a02e91
4 changed files with 34 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2016-03-21 Jakub Jelinek <jakub@redhat.com>
PR middle-end/70326
* lra.c (restore_scratches): Ignore deleted insns.
2016-03-21 Marc Glisse <marc.glisse@inria.fr> 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
Jakub Jelinek <jakub@redhat.com> Jakub Jelinek <jakub@redhat.com>

View File

@ -1967,6 +1967,10 @@ restore_scratches (void)
for (i = 0; scratches.iterate (i, &loc); i++) for (i = 0; scratches.iterate (i, &loc); i++)
{ {
/* Ignore already deleted insns. */
if (NOTE_P (loc->insn)
&& NOTE_KIND (loc->insn) == NOTE_INSN_DELETED)
continue;
if (last != loc->insn) if (last != loc->insn)
{ {
last = loc->insn; last = loc->insn;

View File

@ -1,3 +1,8 @@
2016-03-21 Jakub Jelinek <jakub@redhat.com>
PR middle-end/70326
* gcc.dg/pr70326.c: New test.
2016-03-21 Marc Glisse <marc.glisse@inria.fr> 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
Jakub Jelinek <jakub@redhat.com> Jakub Jelinek <jakub@redhat.com>

View File

@ -0,0 +1,20 @@
/* PR middle-end/70326 */
/* { dg-do compile { target int128 } } */
/* { dg-options "-Og -fno-dce -fno-guess-branch-probability -fschedule-insns -fno-tree-coalesce-vars -fno-tree-dce -w -Wno-psabi" } */
typedef unsigned int A __attribute__ ((vector_size (32)));
typedef unsigned __int128 B;
typedef unsigned __int128 C __attribute__ ((vector_size (32)));
typedef unsigned __int128 D __attribute__ ((vector_size (32)));
void
foo (B a, D b, A c, A d, C e)
{
b /= (D) {11} | 1;
a ^= a <= 10;
e *= (C) d;
e += (C) ~b;
c[0] ^= c[0] <= 0x1234;
a = (a >> 1) | (a << 127);
b += (D) {45, 123};
}