Fix PR1692
[oota-llvm.git] / test / Transforms / LoopIndexSplit / 2007-09-21-LoopBound.ll
1 ; PR1692
2 ; RUN: llvm-as < %s | opt -loop-index-split -disable-output 
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 %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) {
12 entry:
13         br i1 false, label %cond_next44, label %bb37
14
15 bb37:           ; preds = %entry
16         ret %struct.LIST_NODE* null
17
18 cond_next44:            ; preds = %entry
19         br i1 false, label %bb29.i, label %bb.i31
20
21 bb.i31:         ; preds = %cond_next44
22         ret %struct.LIST_NODE* null
23
24 bb29.i:         ; preds = %cond_next44
25         br i1 false, label %cond_next89.i, label %bb34.i
26
27 bb34.i:         ; preds = %bb29.i
28         ret %struct.LIST_NODE* null
29
30 cond_next89.i:          ; preds = %bb29.i
31         br i1 false, label %clause_LiteralGetIndex.exit70.i, label %bb.i59.i
32
33 bb.i59.i:               ; preds = %cond_next89.i
34         ret %struct.LIST_NODE* null
35
36 clause_LiteralGetIndex.exit70.i:                ; preds = %cond_next89.i
37         br label %bb3.i.i
38
39 bb3.i.i:                ; preds = %bb3.i.i, %clause_LiteralGetIndex.exit70.i
40         br i1 false, label %bb40.i.i, label %bb3.i.i
41
42 subst_Apply.exit.i.i:           ; preds = %bb40.i.i
43         %tmp21.i.i = icmp sgt i32 %j.0.i.i, 0           ; <i1> [#uses=1]
44         br i1 %tmp21.i.i, label %cond_false.i47.i, label %cond_true24.i.i
45
46 cond_true24.i.i:                ; preds = %subst_Apply.exit.i.i
47         br label %cond_next37.i.i
48
49 cond_false.i47.i:               ; preds = %subst_Apply.exit.i.i
50         br label %cond_next37.i.i
51
52 cond_next37.i.i:                ; preds = %cond_false.i47.i, %cond_true24.i.i
53         %tmp39.i.i = add i32 %j.0.i.i, 1                ; <i32> [#uses=1]
54         br label %bb40.i.i
55
56 bb40.i.i:               ; preds = %cond_next37.i.i, %bb3.i.i
57         %j.0.i.i = phi i32 [ %tmp39.i.i, %cond_next37.i.i ], [ 0, %bb3.i.i ]            ; <i32> [#uses=3]
58         %tmp43.i.i = icmp sgt i32 %j.0.i.i, 0           ; <i1> [#uses=1]
59         br i1 %tmp43.i.i, label %inf_CopyHyperElectron.exit.i, label %subst_Apply.exit.i.i
60
61 inf_CopyHyperElectron.exit.i:           ; preds = %bb40.i.i
62         ret %struct.LIST_NODE* null
63 }