Add support for global variables in an address space for llvm-c and ocaml.
[oota-llvm.git] / test / Transforms / LoopIndexSplit / 2008-02-13-LoopLatch.ll
1 ; RUN: opt < %s -loop-index-split -disable-output
2 ; PR 2011
3         %struct.CLAUSE_HELP = type { i32, i32, i32, i32, i32*, i32, %struct.LIST_NODE*, %struct.LIST_NODE*, i32, i32, %struct.LITERAL_HELP**, i32, i32, i32, i32 }
4         %struct.LIST_NODE = type { %struct.LIST_NODE*, i8* }
5         %struct.LITERAL_HELP = type { i32, i32, i32, %struct.CLAUSE_HELP*, %struct.term* }
6         %struct.anon = type { %struct.LIST_NODE* }
7         %struct.st = type { %struct.subst*, %struct.LIST_NODE*, %struct.LIST_NODE*, i16, i16 }
8         %struct.subst = type { %struct.subst*, i32, %struct.term* }
9         %struct.term = type { i32, %struct.anon, %struct.LIST_NODE*, i32, i32 }
10
11 define fastcc %struct.LIST_NODE* @inf_HyperResolvents(%struct.CLAUSE_HELP* %Clause, %struct.subst* %Subst, %struct.LIST_NODE* %Restlits, i32 %GlobalMaxVar, %struct.LIST_NODE* %FoundMap, i32 %StrictlyMaximal, { %struct.st*, [3001 x %struct.term*], [4000 x %struct.term*], i32 }* %Index, i32* %Flags, i32* %Precedence) nounwind  {
12 entry:
13         br i1 false, label %bb960, label %bb885
14
15 bb885:          ; preds = %entry
16         ret %struct.LIST_NODE* null
17
18 bb960:          ; preds = %entry
19         br i1 false, label %bb1097, label %bb1005.preheader
20
21 bb1005.preheader:               ; preds = %bb960
22         ret %struct.LIST_NODE* null
23
24 bb1097:         ; preds = %bb960
25         br i1 false, label %bb1269.preheader, label %bb1141.preheader
26
27 bb1141.preheader:               ; preds = %bb1097
28         ret %struct.LIST_NODE* null
29
30 bb1269.preheader:               ; preds = %bb1097
31         br i1 false, label %bb1318, label %bb1281
32
33 bb1281:         ; preds = %bb1269.preheader
34         ret %struct.LIST_NODE* null
35
36 bb1318:         ; preds = %bb1269.preheader
37         br i1 false, label %bb1459, label %bb.nph52
38
39 bb.nph52:               ; preds = %bb1318
40         ret %struct.LIST_NODE* null
41
42 bb1459:         ; preds = %bb1318
43         br i1 false, label %bb1553, label %bb.nph62
44
45 bb.nph62:               ; preds = %bb1459
46         ret %struct.LIST_NODE* null
47
48 bb1553:         ; preds = %bb1669, %bb1459
49         %j295.0.reg2mem.0 = phi i32 [ %storemerge110, %bb1669 ], [ 0, %bb1459 ]         ; <i32> [#uses=2]
50         br i1 false, label %bb1588, label %bb1616
51
52 bb1588:         ; preds = %bb1553
53         br label %bb1616
54
55 bb1616:         ; preds = %bb1588, %bb1553
56         %tmp1629 = icmp sgt i32 %j295.0.reg2mem.0, 0            ; <i1> [#uses=1]
57         br i1 %tmp1629, label %bb1649, label %bb1632
58
59 bb1632:         ; preds = %bb1616
60         br label %bb1669
61
62 bb1649:         ; preds = %bb1616
63         br label %bb1669
64
65 bb1669:         ; preds = %bb1649, %bb1632
66         %storemerge110 = add i32 %j295.0.reg2mem.0, 1           ; <i32> [#uses=2]
67         %tmp1672 = icmp sgt i32 %storemerge110, 0               ; <i1> [#uses=1]
68         br i1 %tmp1672, label %bb1678, label %bb1553
69
70 bb1678:         ; preds = %bb1669
71         ret %struct.LIST_NODE* null
72 }