OSDN Git Service

859971713aa35c846951d5e759f068e995c58fa1
[android-x86/external-llvm.git] / test / CodeGen / SystemZ / 07-BrCond.ll
1 ; RUN: llc < %s | grep je  | count 1
2 ; RUN: llc < %s | grep jne | count 1
3 ; RUN: llc < %s | grep jhe | count 2
4 ; RUN: llc < %s | grep jle | count 2
5 ; RUN: llc < %s | grep jh  | count 4
6 ; RUN: llc < %s | grep jl  | count 4
7
8 target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
9 target triple = "s390x-unknown-linux-gnu"
10
11 define void @foo(i64 %a, i64 %b) nounwind {
12 entry:
13         %cmp = icmp ult i64 %a, %b              ; <i1> [#uses=1]
14         br i1 %cmp, label %if.then, label %if.end
15
16 if.then:                ; preds = %entry
17         tail call void @bar() nounwind
18         ret void
19
20 if.end:         ; preds = %entry
21         ret void
22 }
23
24 declare void @bar()
25
26 define void @foo1(i64 %a, i64 %b) nounwind {
27 entry:
28         %cmp = icmp ugt i64 %a, %b              ; <i1> [#uses=1]
29         br i1 %cmp, label %if.then, label %if.end
30
31 if.then:                ; preds = %entry
32         tail call void @bar() nounwind
33         ret void
34
35 if.end:         ; preds = %entry
36         ret void
37 }
38
39 define void @foo2(i64 %a, i64 %b) nounwind {
40 entry:
41         %cmp = icmp ugt i64 %a, %b              ; <i1> [#uses=1]
42         br i1 %cmp, label %if.end, label %if.then
43
44 if.then:                ; preds = %entry
45         tail call void @bar() nounwind
46         ret void
47
48 if.end:         ; preds = %entry
49         ret void
50 }
51
52 define void @foo3(i64 %a, i64 %b) nounwind {
53 entry:
54         %cmp = icmp ult i64 %a, %b              ; <i1> [#uses=1]
55         br i1 %cmp, label %if.end, label %if.then
56
57 if.then:                ; preds = %entry
58         tail call void @bar() nounwind
59         ret void
60
61 if.end:         ; preds = %entry
62         ret void
63 }
64
65 define void @foo4(i64 %a, i64 %b) nounwind {
66 entry:
67         %cmp = icmp eq i64 %a, %b               ; <i1> [#uses=1]
68         br i1 %cmp, label %if.then, label %if.end
69
70 if.then:                ; preds = %entry
71         tail call void @bar() nounwind
72         ret void
73
74 if.end:         ; preds = %entry
75         ret void
76 }
77
78 define void @foo5(i64 %a, i64 %b) nounwind {
79 entry:
80         %cmp = icmp eq i64 %a, %b               ; <i1> [#uses=1]
81         br i1 %cmp, label %if.end, label %if.then
82
83 if.then:                ; preds = %entry
84         tail call void @bar() nounwind
85         ret void
86
87 if.end:         ; preds = %entry
88         ret void
89 }
90
91 define void @foo6(i64 %a, i64 %b) nounwind {
92 entry:
93         %cmp = icmp slt i64 %a, %b              ; <i1> [#uses=1]
94         br i1 %cmp, label %if.then, label %if.end
95
96 if.then:                ; preds = %entry
97         tail call void @bar() nounwind
98         ret void
99
100 if.end:         ; preds = %entry
101         ret void
102 }
103
104 define void @foo7(i64 %a, i64 %b) nounwind {
105 entry:
106         %cmp = icmp sgt i64 %a, %b              ; <i1> [#uses=1]
107         br i1 %cmp, label %if.then, label %if.end
108
109 if.then:                ; preds = %entry
110         tail call void @bar() nounwind
111         ret void
112
113 if.end:         ; preds = %entry
114         ret void
115 }
116
117 define void @foo8(i64 %a, i64 %b) nounwind {
118 entry:
119         %cmp = icmp sgt i64 %a, %b              ; <i1> [#uses=1]
120         br i1 %cmp, label %if.end, label %if.then
121
122 if.then:                ; preds = %entry
123         tail call void @bar() nounwind
124         ret void
125
126 if.end:         ; preds = %entry
127         ret void
128 }
129
130 define void @foo9(i64 %a, i64 %b) nounwind {
131 entry:
132         %cmp = icmp slt i64 %a, %b              ; <i1> [#uses=1]
133         br i1 %cmp, label %if.end, label %if.then
134
135 if.then:                ; preds = %entry
136         tail call void @bar() nounwind
137         ret void
138
139 if.end:         ; preds = %entry
140         ret void
141 }