blob: 8ece5ac09840d0a4bf1777f4d6e707aedc66722a [file] [log] [blame]
Dan Gohmanfce288f2009-09-09 00:09:15 +00001; 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
Anton Korobeynikovecf22d52009-07-16 13:53:15 +00007
8
9target 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"
10target triple = "s390x-unknown-linux-gnu"
11
12define void @foo(i32 %a, i32 %b) nounwind {
13entry:
14 %cmp = icmp ult i32 %a, %b ; <i1> [#uses=1]
15 br i1 %cmp, label %if.then, label %if.end
16
17if.then: ; preds = %entry
18 tail call void @bar() nounwind
19 ret void
20
21if.end: ; preds = %entry
22 ret void
23}
24
25declare void @bar()
26
27define void @foo1(i32 %a, i32 %b) nounwind {
28entry:
29 %cmp = icmp ugt i32 %a, %b ; <i1> [#uses=1]
30 br i1 %cmp, label %if.then, label %if.end
31
32if.then: ; preds = %entry
33 tail call void @bar() nounwind
34 ret void
35
36if.end: ; preds = %entry
37 ret void
38}
39
40define void @foo2(i32 %a, i32 %b) nounwind {
41entry:
42 %cmp = icmp ugt i32 %a, %b ; <i1> [#uses=1]
43 br i1 %cmp, label %if.end, label %if.then
44
45if.then: ; preds = %entry
46 tail call void @bar() nounwind
47 ret void
48
49if.end: ; preds = %entry
50 ret void
51}
52
53define void @foo3(i32 %a, i32 %b) nounwind {
54entry:
55 %cmp = icmp ult i32 %a, %b ; <i1> [#uses=1]
56 br i1 %cmp, label %if.end, label %if.then
57
58if.then: ; preds = %entry
59 tail call void @bar() nounwind
60 ret void
61
62if.end: ; preds = %entry
63 ret void
64}
65
66define void @foo4(i32 %a, i32 %b) nounwind {
67entry:
68 %cmp = icmp eq i32 %a, %b ; <i1> [#uses=1]
69 br i1 %cmp, label %if.then, label %if.end
70
71if.then: ; preds = %entry
72 tail call void @bar() nounwind
73 ret void
74
75if.end: ; preds = %entry
76 ret void
77}
78
79define void @foo5(i32 %a, i32 %b) nounwind {
80entry:
81 %cmp = icmp eq i32 %a, %b ; <i1> [#uses=1]
82 br i1 %cmp, label %if.end, label %if.then
83
84if.then: ; preds = %entry
85 tail call void @bar() nounwind
86 ret void
87
88if.end: ; preds = %entry
89 ret void
90}
91
92define void @foo6(i32 %a, i32 %b) nounwind {
93entry:
94 %cmp = icmp slt i32 %a, %b ; <i1> [#uses=1]
95 br i1 %cmp, label %if.then, label %if.end
96
97if.then: ; preds = %entry
98 tail call void @bar() nounwind
99 ret void
100
101if.end: ; preds = %entry
102 ret void
103}
104
105define void @foo7(i32 %a, i32 %b) nounwind {
106entry:
107 %cmp = icmp sgt i32 %a, %b ; <i1> [#uses=1]
108 br i1 %cmp, label %if.then, label %if.end
109
110if.then: ; preds = %entry
111 tail call void @bar() nounwind
112 ret void
113
114if.end: ; preds = %entry
115 ret void
116}
117
118define void @foo8(i32 %a, i32 %b) nounwind {
119entry:
120 %cmp = icmp sgt i32 %a, %b ; <i1> [#uses=1]
121 br i1 %cmp, label %if.end, label %if.then
122
123if.then: ; preds = %entry
124 tail call void @bar() nounwind
125 ret void
126
127if.end: ; preds = %entry
128 ret void
129}
130
131define void @foo9(i32 %a, i32 %b) nounwind {
132entry:
133 %cmp = icmp slt i32 %a, %b ; <i1> [#uses=1]
134 br i1 %cmp, label %if.end, label %if.then
135
136if.then: ; preds = %entry
137 tail call void @bar() nounwind
138 ret void
139
140if.end: ; preds = %entry
141 ret void
142}