re PR tree-optimization/33291 (a+=2; a+=2 not simplified to a+=4; with -O3 ...
[gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / vrp23.c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-vrp1-details" } */
3
4 blah (int code1, int code2)
5 {
6 int i;
7 int n_sets;
8
9 n_sets = (int) (code1 == 32);
10 if (code2 == 64) goto L2; else goto L3;
11
12 L2:
13 aa ();
14
15 L3:
16 if (n_sets > 1) goto L4; else goto L10;
17
18 L4:
19 aos ();
20 i = 0;
21 goto L24;
22
23 L10:
24 if (n_sets > 0) goto L25; else goto L8;
25
26 L25:
27 i = 0;
28
29 L24:
30 aob ();
31 i = i + 1;
32 if (i < n_sets) goto L24; else goto L8;
33
34 L8:
35 return;
36 }
37
38
39
40 /* The n_sets > 0 test can be simplified into n_sets == 1 since the
41 only way to reach the test is when n_sets <= 1, and the only value
42 which satisfies both conditions is n_sets == 1. */
43 /* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp1" } } */
44 /* { dg-final { cleanup-tree-dump "vrp1" } } */
45