fix PR4963: folding insertvalue would sometimes turn a packed struct into
[llvm/avr.git] / test / Transforms / LoopIndexSplit / 2008-02-13-ExitValueNum.ll
blob980a42f20aa91bffd384b7882c2808a1fccb7a65
1 ; RUN: opt < %s -disable-output -loop-index-split
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 }
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
15 bb885:          ; preds = %entry
16         ret %struct.LIST_NODE* null
18 bb960:          ; preds = %entry
19         br i1 false, label %bb1097, label %bb1005.preheader
21 bb1005.preheader:               ; preds = %bb960
22         ret %struct.LIST_NODE* null
24 bb1097:         ; preds = %bb960
25         br i1 false, label %bb1269.preheader, label %bb1141.preheader
27 bb1141.preheader:               ; preds = %bb1097
28         ret %struct.LIST_NODE* null
30 bb1269.preheader:               ; preds = %bb1097
31         br i1 false, label %bb1318, label %bb1281
33 bb1281:         ; preds = %bb1269.preheader
34         ret %struct.LIST_NODE* null
36 bb1318:         ; preds = %bb1269.preheader
37         br i1 false, label %bb1459, label %bb.nph52
39 bb.nph52:               ; preds = %bb1318
40         ret %struct.LIST_NODE* null
42 bb1459:         ; preds = %bb1318
43         br i1 false, label %bb1553, label %bb.nph62
45 bb.nph62:               ; preds = %bb1459
46         ret %struct.LIST_NODE* null
48 bb1553:         ; preds = %bb1669, %bb1459
49         %j295.0.reg2mem.0 = phi i32 [ %storemerge110, %bb1669 ], [ 0, %bb1459 ]         ; <i32> [#uses=2]
50         %tmp1629 = icmp sgt i32 %j295.0.reg2mem.0, 0            ; <i1> [#uses=1]
51         br i1 %tmp1629, label %bb1649, label %bb1632
53 bb1632:         ; preds = %bb1553
54         br label %bb1669
56 bb1649:         ; preds = %bb1553
57         br label %bb1669
59 bb1669:         ; preds = %bb1649, %bb1632
60         %storemerge110 = add i32 %j295.0.reg2mem.0, 1           ; <i32> [#uses=2]
61         %tmp1672 = icmp sgt i32 %storemerge110, 0               ; <i1> [#uses=1]
62         br i1 %tmp1672, label %bb1678, label %bb1553
64 bb1678:         ; preds = %bb1669
65         ret %struct.LIST_NODE* null