]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/tree-ssa/vrp25.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / vrp25.c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-tree-fre -fdump-tree-vrp1" } */
3
4 extern void abort ();
5 extern void arf ();
6 int tree_code_length[100];
7
8 void
9 blah (int code1)
10 {
11 unsigned char D18670;
12
13 if (code1 != 53) goto L0; else goto L1;
14
15 L0:
16 abort ();
17
18 L1:
19 D18670 = tree_code_length[53];
20 if (D18670 <= 1) goto L2; else goto L3;
21
22 L2:
23 abort ();
24
25 L3:
26 if (D18670 == 2) goto L4; else goto L5;
27
28 L4:
29 abort ();
30
31 L5:
32 arf ();
33 if (code1 != 53) goto L6; else goto L7;
34
35 L6:
36 abort ();
37
38 L7:
39 if (D18670 <= 2) goto L8; else goto L9;
40
41 L8:
42 abort ();
43
44 L9:
45 return;
46
47 }
48
49 /* The second test of (code1 != 53) and the test (D18670 <= 2) are
50 both totally subsumed by earlier tests and thus should be folded
51 away using VRP. */
52 /* { dg-final { scan-tree-dump-times "if" 3 "vrp1" } } */
53