aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/tree-ssa/pr76174.c
blob: 17a4a0faf24255d896c91db13acf68bf2f30de90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-cddce1" } */

void foo();

void l(unsigned int r) {
  	unsigned int q = 0;
        unsigned int c = r;
        for (unsigned int x = 0; x<r; x++) {
            if (q == c) {
                foo();
                c *= 2;
            }
            q++;
        }
}

/* We should be able to elide the body of the function by means of
   figuring out the equality between the two IVs and then simplifying
   the q == c test.  */
/* { dg-final { scan-tree-dump-not "foo" "cddce1" } } */
/* { dg-final { scan-tree-dump-times "bb" 1 "cddce1" } } */