blob: f060395bb2485f5ecbe2c332176154ad709b1f2c [file] [log] [blame]
Tim Shen5cdf7502016-03-17 22:27:58 +00001; RUN: llc -mtriple powerpc64le-unknown-linux-gnu -fast-isel -O0 < %s | FileCheck %s
2
3define i1 @TestULT(double %t0) {
4; CHECK-LABEL: TestULT:
Ehsan Amiric90b02c2016-10-24 17:31:09 +00005; CHECK: xscmpudp
Tim Shen5cdf7502016-03-17 22:27:58 +00006; CHECK: blr
7entry:
8 %t1 = fcmp ult double %t0, 0.000000e+00
9 br i1 %t1, label %good, label %bad
10
11bad:
12 ret i1 false
13
14good:
15 ret i1 true
16}
17
18define i1 @TestULE(double %t0) {
19; CHECK-LABEL: TestULE:
20; CHECK: fcmpu
21; CHECK-NEXT: ble
22; CHECK: blr
23entry:
24 %t1 = fcmp ule double %t0, 0.000000e+00
25 br i1 %t1, label %good, label %bad
26
27bad:
28 ret i1 false
29
30good:
31 ret i1 true
32}
33
34define i1 @TestUNE(double %t0) {
35; CHECK-LABEL: TestUNE:
36; CHECK: fcmpu
37; CHECK-NEXT: bne
38; CHECK: blr
39entry:
40 %t1 = fcmp une double %t0, 0.000000e+00
41 br i1 %t1, label %good, label %bad
42
43bad:
44 ret i1 false
45
46good:
47 ret i1 true
48}
49
50define i1 @TestUEQ(double %t0) {
51; CHECK-LABEL: TestUEQ:
Ehsan Amiric90b02c2016-10-24 17:31:09 +000052; CHECK: xscmpudp
Tim Shen5cdf7502016-03-17 22:27:58 +000053; CHECK: blr
54entry:
55 %t1 = fcmp ueq double %t0, 0.000000e+00
56 br i1 %t1, label %good, label %bad
57
58bad:
59 ret i1 false
60
61good:
62 ret i1 true
63}
64
65define i1 @TestUGT(double %t0) {
66; CHECK-LABEL: TestUGT:
Ehsan Amiric90b02c2016-10-24 17:31:09 +000067; CHECK: xscmpudp
Tim Shen5cdf7502016-03-17 22:27:58 +000068; CHECK: blr
69entry:
70 %t1 = fcmp ugt double %t0, 0.000000e+00
71 br i1 %t1, label %good, label %bad
72
73bad:
74 ret i1 false
75
76good:
77 ret i1 true
78}
79
80define i1 @TestUGE(double %t0) {
81; CHECK-LABEL: TestUGE:
82; CHECK: fcmpu
83; CHECK-NEXT: bge
84; CHECK: blr
85entry:
86 %t1 = fcmp uge double %t0, 0.000000e+00
87 br i1 %t1, label %good, label %bad
88
89bad:
90 ret i1 false
91
92good:
93 ret i1 true
94}
95
96define i1 @TestOLT(double %t0) {
97; CHECK-LABEL: TestOLT:
98; CHECK: fcmpu
99; CHECK-NEXT: blt
100; CHECK: blr
101entry:
102 %t1 = fcmp olt double %t0, 0.000000e+00
103 br i1 %t1, label %good, label %bad
104
105bad:
106 ret i1 false
107
108good:
109 ret i1 true
110}
111
112define i1 @TestOLE(double %t0) {
113; CHECK-LABEL: TestOLE:
Ehsan Amiric90b02c2016-10-24 17:31:09 +0000114; CHECK: xscmpudp
Tim Shen5cdf7502016-03-17 22:27:58 +0000115; CHECK: blr
116entry:
117 %t1 = fcmp ole double %t0, 0.000000e+00
118 br i1 %t1, label %good, label %bad
119
120bad:
121 ret i1 false
122
123good:
124 ret i1 true
125}
126
127define i1 @TestONE(double %t0) {
128; CHECK-LABEL: TestONE:
Ehsan Amiric90b02c2016-10-24 17:31:09 +0000129; CHECK: xscmpudp
Tim Shen5cdf7502016-03-17 22:27:58 +0000130; CHECK: blr
131entry:
132 %t1 = fcmp one double %t0, 0.000000e+00
133 br i1 %t1, label %good, label %bad
134
135bad:
136 ret i1 false
137
138good:
139 ret i1 true
140}
141
142define i1 @TestOEQ(double %t0) {
143; CHECK-LABEL: TestOEQ:
144; CHECK: fcmpu
145; CHECK-NEXT: beq
146; CHECK: blr
147entry:
148 %t1 = fcmp oeq double %t0, 0.000000e+00
149 br i1 %t1, label %good, label %bad
150
151bad:
152 ret i1 false
153
154good:
155 ret i1 true
156}
157
158define i1 @TestOGT(double %t0) {
159; CHECK-LABEL: TestOGT:
160; CHECK: fcmpu
161; CHECK-NEXT: bgt
162; CHECK: blr
163entry:
164 %t1 = fcmp ogt double %t0, 0.000000e+00
165 br i1 %t1, label %good, label %bad
166
167bad:
168 ret i1 false
169
170good:
171 ret i1 true
172}
173
174define i1 @TestOGE(double %t0) {
175; CHECK-LABEL: TestOGE:
Ehsan Amiric90b02c2016-10-24 17:31:09 +0000176; CHECK: xscmpudp
Tim Shen5cdf7502016-03-17 22:27:58 +0000177; CHECK: blr
178entry:
179 %t1 = fcmp oge double %t0, 0.000000e+00
180 br i1 %t1, label %good, label %bad
181
182bad:
183 ret i1 false
184
185good:
186 ret i1 true
187}