blob: fdb6a3ed349902c3f51a0b91d665f645ccc5b8b6 [file] [log] [blame]
/* { dg-options "-O2 -fdump-tree-pre-stats" } */
void baz();
int tem;
void foo (int a, int b, int c, int d, int e, int x, int y, int z)
{
if (a)
{
if (b)
{
if (c)
{
if (d)
{
if (e)
{
tem = x + y;
}
else
{
if (z) baz ();
tem = x + y;
}
}
else
{
if (z) baz ();
tem = x + y;
}
}
else
{
if (z) baz ();
tem = x + y;
}
}
else
{
if (z) baz ();
tem = x + y;
}
}
else
{
if (z) baz ();
tem = x + y;
}
}
/* Now inserting x + y five times is unnecessary but the cascading
cannot be avoided with the simple-minded dataflow. But make sure
we do not iterate PRE insertion. */
/* { dg-final { scan-tree-dump "insert iterations == 1" "pre" } } */
/* { dg-final { scan-tree-dump "HOIST inserted: 5" "pre" } } */