Commit 7b1b0cc1 by Richard Biener Committed by Richard Biener

re PR tree-optimization/78997 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_gimple failed)

2017-01-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/78997
	* tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
	name condition properly.

	* gcc.dg/torture/pr78997.c: New testcase.

From-SVN: r244218
parent 813b9c0d
2017-01-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/78997
* tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
name condition properly.
2017-01-09 Richard Biener <rguenther@suse.de>
PR debug/79000
* dwarf2out.c (is_cxx): New overload with context.
(is_naming_typedef_decl): Use it.
......
2017-01-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/78997
* gcc.dg/torture/pr78997.c: New testcase.
2017-01-09 Richard Biener <rguenther@suse.de>
PR debug/79000
* g++.dg/lto/pr79000_0.C: New testcase.
* g++.dg/lto/pr79000_1.c: Likewise.
......
/* { dg-do compile } */
int printf (const char *, ...);
static short f, p, q, s, u, aa, ab, ac;
static int b, c, d, e, h, k, l, m, n, o, r, t, v, w, x, y, z, ad, ae, af, ag, ah, ai, aj, ak, al, am, an;
int a, ao, ap, aq, ar, g, as, at, au, av, aw, ax, ay;
void foo ()
{
int ba[2], i, j, bb;
while (b)
{
b++;
while (b)
{
for (; aw; aw++)
for (; q; q++)
{
short bc[20];
if (k)
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
if (p)
bc[i * 4 + j] = 8;
for (; ad; ad--)
t = bc[1];
}
for (bb = 0; bb < 5; bb++)
if (m && v)
{
printf ("%d", n);
v = g && v;
n = 0;
}
ab &= ba[0];
aw = l;
aa++;
x++;
while (1)
{
int bd[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1};
ap = a ? ba[1] : 0;
if (ba[0] && o < ax)
{
int be[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1};
for (; ae; ae++)
{
e ^= ba[b] ^ aa;
f = r;
for (; y; y++)
aj &= u | ag;
int e[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1};
if (a)
{
r = c;
aj &= ag |= aq;
}
av = ai * u;
af = c;
}
au = d;
p++;
u = aj;
a = ba[1];
at = ar = af != ai && l;
as = ax = f;
ao = ak ? 0 : ah;
aw = ao;
}
ay = c;
int bf[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1};
if (w < f)
{
int bg[] = {0};
if (aw)
break;
}
else
aw = aa | (h &= ag) >> d, c = b = z && am;
for (; w; w--)
l = ac ^= al |= b;
for (; k; k = 0)
{
int bh = m | s && n;
m = bh;
for (; t; t--)
f = q ^= (c < (e < ah));
}
d = an |= b;
if (v)
{
int bi[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1};
if (aw)
break;
}
}
}
}
}
int main ()
{
foo ();
return 0;
}
......@@ -2897,9 +2897,8 @@ vect_mask_constant_operand_p (gimple *stmt, int opnum)
tree cond = gimple_assign_rhs1 (stmt);
if (TREE_CODE (cond) == SSA_NAME)
return false;
if (opnum)
op = cond;
else if (opnum)
op = TREE_OPERAND (cond, 1);
else
op = TREE_OPERAND (cond, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment