* Mainline merge as of 2006-02-16 (@111136).
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / vrp25.c
blobfa8bbfd4c0ec8d3501fc95198986a3ee5ffdf7ac
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-vrp1-details" } */
4 extern void abort ();
5 int tree_code_length[100];
7 blah (int code1)
9 unsigned char D18670;
11 if (code1 != 53) goto L0; else goto L1;
13 L0:
14 abort ();
16 L1:
17 D18670 = tree_code_length[53];
18 if (D18670 <= 1) goto L2; else goto L3;
20 L2:
21 abort ();
23 L3:
24 if (D18670 == 2) goto L4; else goto L5;
26 L4:
27 abort ();
29 L5:
30 arf ();
31 if (code1 != 53) goto L6; else goto L7;
33 L6:
34 abort ();
36 L7:
37 if (D18670 <= 2) goto L8; else goto L9;
39 L8:
40 abort ();
42 L9:
43 return;
47 /* The second test of (code1 != 53) and the test (D18670 <= 2) are
48 both totally subsumed by earlier tests and thus should be folded
49 away using VRP. */
50 /* { dg-final { scan-tree-dump-times "Folding predicate" 2 "vrp1" } } */
51 /* { dg-final { cleanup-tree-dump "vrp1" } } */