mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
b94078834d
commit
11b6a02e91
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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};
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue