blob: e98d13fe85bbbfc9b2ff45f23d775f1e8f5265f1 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-sink1-details -fdump-tree-cddce2-details" } */
static int b=4;
int c;
int
main()
{
int e[5] = {1,1,1,1,1};
for (; b >= 0; b--) {
c = e[b];
}
return 0;
}
/* We should sink e[b] out of the loop which is possible after
applying store motion to c and b. */
/* { dg-final { scan-tree-dump "Sinking # VUSE" "sink1" } } */
/* And remove the loop after final value replacement. */
/* { dg-final { scan-tree-dump "fix_loop_structure: removing loop" "cddce2" } } */