[NFC][Py Reformat] Reformat python files in llvm
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / llvm-ir / fcmp.ll
blob9d3b7ce079f92f55e58ce864ff3ce845133ffa55
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel \
3 ; RUN:     -verify-machineinstrs %s -o -| FileCheck %s
4 ; RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -global-isel \
5 ; RUN:     -verify-machineinstrs %s -o -| FileCheck %s
7 define i1 @false_s(float %x, float %y) {
8 ; CHECK-LABEL: false_s:
9 ; CHECK:       # %bb.0: # %entry
10 ; CHECK-NEXT:    ori $2, $zero, 0
11 ; CHECK-NEXT:    jr $ra
12 ; CHECK-NEXT:    nop
13 entry:
14   %cmp = fcmp false float %x, %y
15   ret i1 %cmp
17 define i1 @true_s(float %x, float %y) {
18 ; CHECK-LABEL: true_s:
19 ; CHECK:       # %bb.0: # %entry
20 ; CHECK-NEXT:    ori $2, $zero, 1
21 ; CHECK-NEXT:    jr $ra
22 ; CHECK-NEXT:    nop
23 entry:
24   %cmp = fcmp true float %x, %y
25   ret i1 %cmp
29 define i1 @uno_s(float %x, float %y) {
30 ; CHECK-LABEL: uno_s:
31 ; CHECK:       # %bb.0: # %entry
32 ; CHECK-NEXT:    addiu $2, $zero, 1
33 ; CHECK-NEXT:    c.un.s $f12, $f14
34 ; CHECK-NEXT:    movf $2, $zero, $fcc0
35 ; CHECK-NEXT:    jr $ra
36 ; CHECK-NEXT:    nop
37 entry:
38   %cmp = fcmp uno float %x, %y
39   ret i1 %cmp
41 define i1 @ord_s(float %x, float %y) {
42 ; CHECK-LABEL: ord_s:
43 ; CHECK:       # %bb.0: # %entry
44 ; CHECK-NEXT:    addiu $2, $zero, 1
45 ; CHECK-NEXT:    c.un.s $f12, $f14
46 ; CHECK-NEXT:    movt $2, $zero, $fcc0
47 ; CHECK-NEXT:    jr $ra
48 ; CHECK-NEXT:    nop
49 entry:
50   %cmp = fcmp ord float %x, %y
51   ret i1 %cmp
55 define i1 @oeq_s(float %x, float %y) {
56 ; CHECK-LABEL: oeq_s:
57 ; CHECK:       # %bb.0: # %entry
58 ; CHECK-NEXT:    addiu $2, $zero, 1
59 ; CHECK-NEXT:    c.eq.s $f12, $f14
60 ; CHECK-NEXT:    movf $2, $zero, $fcc0
61 ; CHECK-NEXT:    jr $ra
62 ; CHECK-NEXT:    nop
63 entry:
64   %cmp = fcmp oeq float %x, %y
65   ret i1 %cmp
67 define i1 @une_s(float %x, float %y) {
68 ; CHECK-LABEL: une_s:
69 ; CHECK:       # %bb.0: # %entry
70 ; CHECK-NEXT:    addiu $2, $zero, 1
71 ; CHECK-NEXT:    c.eq.s $f12, $f14
72 ; CHECK-NEXT:    movt $2, $zero, $fcc0
73 ; CHECK-NEXT:    jr $ra
74 ; CHECK-NEXT:    nop
75 entry:
76   %cmp = fcmp une float %x, %y
77   ret i1 %cmp
81 define i1 @ueq_s(float %x, float %y) {
82 ; CHECK-LABEL: ueq_s:
83 ; CHECK:       # %bb.0: # %entry
84 ; CHECK-NEXT:    addiu $2, $zero, 1
85 ; CHECK-NEXT:    c.ueq.s $f12, $f14
86 ; CHECK-NEXT:    movf $2, $zero, $fcc0
87 ; CHECK-NEXT:    jr $ra
88 ; CHECK-NEXT:    nop
89 entry:
90   %cmp = fcmp ueq float %x, %y
91   ret i1 %cmp
93 define i1 @one_s(float %x, float %y) {
94 ; CHECK-LABEL: one_s:
95 ; CHECK:       # %bb.0: # %entry
96 ; CHECK-NEXT:    addiu $2, $zero, 1
97 ; CHECK-NEXT:    c.ueq.s $f12, $f14
98 ; CHECK-NEXT:    movt $2, $zero, $fcc0
99 ; CHECK-NEXT:    jr $ra
100 ; CHECK-NEXT:    nop
101 entry:
102   %cmp = fcmp one float %x, %y
103   ret i1 %cmp
107 define i1 @olt_s(float %x, float %y) {
108 ; CHECK-LABEL: olt_s:
109 ; CHECK:       # %bb.0: # %entry
110 ; CHECK-NEXT:    addiu $2, $zero, 1
111 ; CHECK-NEXT:    c.olt.s $f12, $f14
112 ; CHECK-NEXT:    movf $2, $zero, $fcc0
113 ; CHECK-NEXT:    jr $ra
114 ; CHECK-NEXT:    nop
115 entry:
116   %cmp = fcmp olt float %x, %y
117   ret i1 %cmp
119 define i1 @uge_s(float %x, float %y) {
120 ; CHECK-LABEL: uge_s:
121 ; CHECK:       # %bb.0: # %entry
122 ; CHECK-NEXT:    addiu $2, $zero, 1
123 ; CHECK-NEXT:    c.olt.s $f12, $f14
124 ; CHECK-NEXT:    movt $2, $zero, $fcc0
125 ; CHECK-NEXT:    jr $ra
126 ; CHECK-NEXT:    nop
127 entry:
128   %cmp = fcmp uge float %x, %y
129   ret i1 %cmp
133 define i1 @ult_s(float %x, float %y) {
134 ; CHECK-LABEL: ult_s:
135 ; CHECK:       # %bb.0: # %entry
136 ; CHECK-NEXT:    addiu $2, $zero, 1
137 ; CHECK-NEXT:    c.ult.s $f12, $f14
138 ; CHECK-NEXT:    movf $2, $zero, $fcc0
139 ; CHECK-NEXT:    jr $ra
140 ; CHECK-NEXT:    nop
141 entry:
142   %cmp = fcmp ult float %x, %y
143   ret i1 %cmp
145 define i1 @oge_s(float %x, float %y) {
146 ; CHECK-LABEL: oge_s:
147 ; CHECK:       # %bb.0: # %entry
148 ; CHECK-NEXT:    addiu $2, $zero, 1
149 ; CHECK-NEXT:    c.ult.s $f12, $f14
150 ; CHECK-NEXT:    movt $2, $zero, $fcc0
151 ; CHECK-NEXT:    jr $ra
152 ; CHECK-NEXT:    nop
153 entry:
154   %cmp = fcmp oge float %x, %y
155   ret i1 %cmp
159 define i1 @ole_s(float %x, float %y) {
160 ; CHECK-LABEL: ole_s:
161 ; CHECK:       # %bb.0: # %entry
162 ; CHECK-NEXT:    addiu $2, $zero, 1
163 ; CHECK-NEXT:    c.ole.s $f12, $f14
164 ; CHECK-NEXT:    movf $2, $zero, $fcc0
165 ; CHECK-NEXT:    jr $ra
166 ; CHECK-NEXT:    nop
167 entry:
168   %cmp = fcmp ole float %x, %y
169   ret i1 %cmp
171 define i1 @ugt_s(float %x, float %y) {
172 ; CHECK-LABEL: ugt_s:
173 ; CHECK:       # %bb.0: # %entry
174 ; CHECK-NEXT:    addiu $2, $zero, 1
175 ; CHECK-NEXT:    c.ole.s $f12, $f14
176 ; CHECK-NEXT:    movt $2, $zero, $fcc0
177 ; CHECK-NEXT:    jr $ra
178 ; CHECK-NEXT:    nop
179 entry:
180   %cmp = fcmp ugt float %x, %y
181   ret i1 %cmp
185 define i1 @ule_s(float %x, float %y) {
186 ; CHECK-LABEL: ule_s:
187 ; CHECK:       # %bb.0: # %entry
188 ; CHECK-NEXT:    addiu $2, $zero, 1
189 ; CHECK-NEXT:    c.ule.s $f12, $f14
190 ; CHECK-NEXT:    movf $2, $zero, $fcc0
191 ; CHECK-NEXT:    jr $ra
192 ; CHECK-NEXT:    nop
193 entry:
194   %cmp = fcmp ule float %x, %y
195   ret i1 %cmp
197 define i1 @ogt_s(float %x, float %y) {
198 ; CHECK-LABEL: ogt_s:
199 ; CHECK:       # %bb.0: # %entry
200 ; CHECK-NEXT:    addiu $2, $zero, 1
201 ; CHECK-NEXT:    c.ule.s $f12, $f14
202 ; CHECK-NEXT:    movt $2, $zero, $fcc0
203 ; CHECK-NEXT:    jr $ra
204 ; CHECK-NEXT:    nop
205 entry:
206   %cmp = fcmp ogt float %x, %y
207   ret i1 %cmp
211 define i1 @false_d(double %x, double %y) {
212 ; CHECK-LABEL: false_d:
213 ; CHECK:       # %bb.0: # %entry
214 ; CHECK-NEXT:    ori $2, $zero, 0
215 ; CHECK-NEXT:    jr $ra
216 ; CHECK-NEXT:    nop
217 entry:
218   %cmp = fcmp false double %x, %y
219   ret i1 %cmp
221 define i1 @true_d(double %x, double %y) {
222 ; CHECK-LABEL: true_d:
223 ; CHECK:       # %bb.0: # %entry
224 ; CHECK-NEXT:    ori $2, $zero, 1
225 ; CHECK-NEXT:    jr $ra
226 ; CHECK-NEXT:    nop
227 entry:
228   %cmp = fcmp true double %x, %y
229   ret i1 %cmp
233 define i1 @uno_d(double %x, double %y) {
234 ; CHECK-LABEL: uno_d:
235 ; CHECK:       # %bb.0: # %entry
236 ; CHECK-NEXT:    addiu $2, $zero, 1
237 ; CHECK-NEXT:    c.un.d $f12, $f14
238 ; CHECK-NEXT:    movf $2, $zero, $fcc0
239 ; CHECK-NEXT:    jr $ra
240 ; CHECK-NEXT:    nop
241 entry:
242   %cmp = fcmp uno double %x, %y
243   ret i1 %cmp
245 define i1 @ord_d(double %x, double %y) {
246 ; CHECK-LABEL: ord_d:
247 ; CHECK:       # %bb.0: # %entry
248 ; CHECK-NEXT:    addiu $2, $zero, 1
249 ; CHECK-NEXT:    c.un.d $f12, $f14
250 ; CHECK-NEXT:    movt $2, $zero, $fcc0
251 ; CHECK-NEXT:    jr $ra
252 ; CHECK-NEXT:    nop
253 entry:
254   %cmp = fcmp ord double %x, %y
255   ret i1 %cmp
259 define i1 @oeq_d(double %x, double %y) {
260 ; CHECK-LABEL: oeq_d:
261 ; CHECK:       # %bb.0: # %entry
262 ; CHECK-NEXT:    addiu $2, $zero, 1
263 ; CHECK-NEXT:    c.eq.d $f12, $f14
264 ; CHECK-NEXT:    movf $2, $zero, $fcc0
265 ; CHECK-NEXT:    jr $ra
266 ; CHECK-NEXT:    nop
267 entry:
268   %cmp = fcmp oeq double %x, %y
269   ret i1 %cmp
271 define i1 @une_d(double %x, double %y) {
272 ; CHECK-LABEL: une_d:
273 ; CHECK:       # %bb.0: # %entry
274 ; CHECK-NEXT:    addiu $2, $zero, 1
275 ; CHECK-NEXT:    c.eq.d $f12, $f14
276 ; CHECK-NEXT:    movt $2, $zero, $fcc0
277 ; CHECK-NEXT:    jr $ra
278 ; CHECK-NEXT:    nop
279 entry:
280   %cmp = fcmp une double %x, %y
281   ret i1 %cmp
285 define i1 @ueq_d(double %x, double %y) {
286 ; CHECK-LABEL: ueq_d:
287 ; CHECK:       # %bb.0: # %entry
288 ; CHECK-NEXT:    addiu $2, $zero, 1
289 ; CHECK-NEXT:    c.ueq.d $f12, $f14
290 ; CHECK-NEXT:    movf $2, $zero, $fcc0
291 ; CHECK-NEXT:    jr $ra
292 ; CHECK-NEXT:    nop
293 entry:
294   %cmp = fcmp ueq double %x, %y
295   ret i1 %cmp
297 define i1 @one_d(double %x, double %y) {
298 ; CHECK-LABEL: one_d:
299 ; CHECK:       # %bb.0: # %entry
300 ; CHECK-NEXT:    addiu $2, $zero, 1
301 ; CHECK-NEXT:    c.ueq.d $f12, $f14
302 ; CHECK-NEXT:    movt $2, $zero, $fcc0
303 ; CHECK-NEXT:    jr $ra
304 ; CHECK-NEXT:    nop
305 entry:
306   %cmp = fcmp one double %x, %y
307   ret i1 %cmp
311 define i1 @olt_d(double %x, double %y) {
312 ; CHECK-LABEL: olt_d:
313 ; CHECK:       # %bb.0: # %entry
314 ; CHECK-NEXT:    addiu $2, $zero, 1
315 ; CHECK-NEXT:    c.olt.d $f12, $f14
316 ; CHECK-NEXT:    movf $2, $zero, $fcc0
317 ; CHECK-NEXT:    jr $ra
318 ; CHECK-NEXT:    nop
319 entry:
320   %cmp = fcmp olt double %x, %y
321   ret i1 %cmp
323 define i1 @uge_d(double %x, double %y) {
324 ; CHECK-LABEL: uge_d:
325 ; CHECK:       # %bb.0: # %entry
326 ; CHECK-NEXT:    addiu $2, $zero, 1
327 ; CHECK-NEXT:    c.olt.d $f12, $f14
328 ; CHECK-NEXT:    movt $2, $zero, $fcc0
329 ; CHECK-NEXT:    jr $ra
330 ; CHECK-NEXT:    nop
331 entry:
332   %cmp = fcmp uge double %x, %y
333   ret i1 %cmp
337 define i1 @ult_d(double %x, double %y) {
338 ; CHECK-LABEL: ult_d:
339 ; CHECK:       # %bb.0: # %entry
340 ; CHECK-NEXT:    addiu $2, $zero, 1
341 ; CHECK-NEXT:    c.ult.d $f12, $f14
342 ; CHECK-NEXT:    movf $2, $zero, $fcc0
343 ; CHECK-NEXT:    jr $ra
344 ; CHECK-NEXT:    nop
345 entry:
346   %cmp = fcmp ult double %x, %y
347   ret i1 %cmp
349 define i1 @oge_d(double %x, double %y) {
350 ; CHECK-LABEL: oge_d:
351 ; CHECK:       # %bb.0: # %entry
352 ; CHECK-NEXT:    addiu $2, $zero, 1
353 ; CHECK-NEXT:    c.ult.d $f12, $f14
354 ; CHECK-NEXT:    movt $2, $zero, $fcc0
355 ; CHECK-NEXT:    jr $ra
356 ; CHECK-NEXT:    nop
357 entry:
358   %cmp = fcmp oge double %x, %y
359   ret i1 %cmp
363 define i1 @ole_d(double %x, double %y) {
364 ; CHECK-LABEL: ole_d:
365 ; CHECK:       # %bb.0: # %entry
366 ; CHECK-NEXT:    addiu $2, $zero, 1
367 ; CHECK-NEXT:    c.ole.d $f12, $f14
368 ; CHECK-NEXT:    movf $2, $zero, $fcc0
369 ; CHECK-NEXT:    jr $ra
370 ; CHECK-NEXT:    nop
371 entry:
372   %cmp = fcmp ole double %x, %y
373   ret i1 %cmp
375 define i1 @ugt_d(double %x, double %y) {
376 ; CHECK-LABEL: ugt_d:
377 ; CHECK:       # %bb.0: # %entry
378 ; CHECK-NEXT:    addiu $2, $zero, 1
379 ; CHECK-NEXT:    c.ole.d $f12, $f14
380 ; CHECK-NEXT:    movt $2, $zero, $fcc0
381 ; CHECK-NEXT:    jr $ra
382 ; CHECK-NEXT:    nop
383 entry:
384   %cmp = fcmp ugt double %x, %y
385   ret i1 %cmp
389 define i1 @ule_d(double %x, double %y) {
390 ; CHECK-LABEL: ule_d:
391 ; CHECK:       # %bb.0: # %entry
392 ; CHECK-NEXT:    addiu $2, $zero, 1
393 ; CHECK-NEXT:    c.ule.d $f12, $f14
394 ; CHECK-NEXT:    movf $2, $zero, $fcc0
395 ; CHECK-NEXT:    jr $ra
396 ; CHECK-NEXT:    nop
397 entry:
398   %cmp = fcmp ule double %x, %y
399   ret i1 %cmp
401 define i1 @ogt_d(double %x, double %y) {
402 ; CHECK-LABEL: ogt_d:
403 ; CHECK:       # %bb.0: # %entry
404 ; CHECK-NEXT:    addiu $2, $zero, 1
405 ; CHECK-NEXT:    c.ule.d $f12, $f14
406 ; CHECK-NEXT:    movt $2, $zero, $fcc0
407 ; CHECK-NEXT:    jr $ra
408 ; CHECK-NEXT:    nop
409 entry:
410   %cmp = fcmp ogt double %x, %y
411   ret i1 %cmp