Initial checkin of 'Other' section
[oota-llvm.git] / test / Other / 2002-01-31-PostDomSet.ll
1 ; Crash in post dominator set construction.
2 ;
3 ; RUN: analyze -postdomset %s
4 ;
5
6 implementation
7
8 int "looptest"(int %i, int %j)
9 begin
10         %whichLoop = setlt int %i, %j
11         br bool %whichLoop, label %Loop1Header, label %Loop2Header
12
13 Loop1Header:
14         %i1 = add int 0, 0             ; %i1 = 0
15         br label %L1Top
16 L1Top:
17         %i2 = phi int [%i1, %Loop1Header], [%i3, %L1Body]
18         %L1Done = seteq int %i2, %j
19         br bool %L1Done, label %L1End, label %L1Body
20 L1Body:
21         %i3 = add int %i2, 2
22         br label %L1Top
23 L1End:
24         %v0 = add int %i2, %j         ; %v0 = 3 * %j
25         br label %Merge
26
27 Loop2Header:
28         %m1 = add int 0, 0
29         %k1 = add int 0, %i
30         br label %L2Top
31 L2Top:
32         %k2 = phi int [%k1, %Loop2Header], [%k3, %L2Body]
33         %m2 = phi int [%m1, %Loop2Header], [%m3, %L2Body]
34         %L2Done = seteq int %k2, 0
35         br bool %L2Done, label %L2End, label %L2Body
36 L2Body:
37         %k3 = sub int %k2, 1
38         %m3 = add int %m2, %j
39         br label %L2Top
40 L2End:
41         %v1 = add int %m2, %k2
42         br label %Merge
43
44 Merge:
45         %v2 = phi int [%v0, %L1End], [%v1, %L2End]
46         ret int %v2
47 end
48
49 int "main"()
50 begin
51         call int %looptest(int 0, int 12)
52         ret int %0
53 end
54