Teach InlineFunction how to differentiate between multiple-value
[oota-llvm.git] / test / Transforms / PredicateSimplifier / 2006-11-12-MergeNodes.ll
1 ; RUN: llvm-as < %s | opt -predsimplify -disable-output
2 ; END.
3 target datalayout = "e-p:32:32"
4 target triple = "i686-pc-linux-gnu"
5 deplibs = [ "c", "crtend" ]
6         %struct.VDIR_ST = type { i32, i32, i32, %struct.acl*, %struct.pfile*, %struct.vlink*, %struct.vlink*, %struct.vlink*, %struct.VDIR_ST*, %struct.VDIR_ST* }
7         %struct.acl = type { i32, i8*, i8*, i8*, %struct.restrict*, %struct.acl*, %struct.acl* }
8         %struct.avalue = type { i8* }
9         %struct.pattrib = type { i8, i8*, i8*, %struct.avalue, %struct.pattrib*, %struct.pattrib* }
10         %struct.pfile = type { i32, i32, i32, i32, i32, %struct.vlink*, %struct.vlink*, %struct.pattrib*, %struct.pfile*, %struct.pfile* }
11         %struct.restrict = type { %struct.acl*, %struct.acl* }
12         %struct.vlink = type { i32, i8*, i8, i32, i8*, %struct.vlink*, %struct.vlink*, i8*, i8*, i8*, i8*, i32, i32, %struct.acl*, i32, i32, i8*, %struct.pattrib*, %struct.pfile*, %struct.vlink*, %struct.vlink* }
13
14 define void @vl_insert(%struct.vlink* %vl) {
15 entry:
16         %tmp91 = call i32 @vl_comp( )           ; <i32> [#uses=2]
17         %tmp93 = icmp sgt i32 %tmp91, 0         ; <i1> [#uses=1]
18         br i1 %tmp93, label %cond_next84, label %bb94
19 cond_next84:            ; preds = %entry
20         ret void
21 bb94:           ; preds = %entry
22         %tmp96 = icmp eq i32 %tmp91, 0          ; <i1> [#uses=1]
23         br i1 %tmp96, label %cond_true97, label %cond_next203
24 cond_true97:            ; preds = %bb94
25         br i1 false, label %cond_next105, label %cond_true102
26 cond_true102:           ; preds = %cond_true97
27         ret void
28 cond_next105:           ; preds = %cond_true97
29         %tmp110 = getelementptr %struct.vlink* %vl, i32 0, i32 12               ; <i32*> [#uses=1]
30         %tmp111 = load i32* %tmp110             ; <i32> [#uses=1]
31         %tmp129 = icmp eq i32 %tmp111, 0                ; <i1> [#uses=1]
32         br i1 %tmp129, label %cond_true130, label %cond_next133
33 cond_true130:           ; preds = %cond_next105
34         ret void
35 cond_next133:           ; preds = %cond_next105
36         ret void
37 cond_next203:           ; preds = %bb94
38         ret void
39 }
40
41 declare i32 @vl_comp()