1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc --mtriple=loongarch32 --mattr=+d < %s | FileCheck %s --check-prefix=LA32
3 ; RUN: llc --mtriple=loongarch64 --mattr=+d < %s | FileCheck %s --check-prefix=LA64
7 define void @br_fcmp_oeq_bcnez(double %a, double %b) nounwind {
8 ; LA32-LABEL: br_fcmp_oeq_bcnez:
10 ; LA32-NEXT: fcmp.ceq.d $fcc0, $fa0, $fa1
11 ; LA32-NEXT: bcnez $fcc0, .LBB0_2
12 ; LA32-NEXT: # %bb.1: # %if.else
14 ; LA32-NEXT: .LBB0_2: # %if.then
15 ; LA32-NEXT: addi.w $sp, $sp, -16
16 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
17 ; LA32-NEXT: bl %plt(abort)
19 ; LA64-LABEL: br_fcmp_oeq_bcnez:
21 ; LA64-NEXT: fcmp.ceq.d $fcc0, $fa0, $fa1
22 ; LA64-NEXT: bcnez $fcc0, .LBB0_2
23 ; LA64-NEXT: # %bb.1: # %if.else
25 ; LA64-NEXT: .LBB0_2: # %if.then
26 ; LA64-NEXT: addi.d $sp, $sp, -16
27 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
28 ; LA64-NEXT: bl %plt(abort)
29 %1 = fcmp oeq double %a, %b
30 br i1 %1, label %if.then, label %if.else
34 tail call void @abort()
38 define void @br_fcmp_oeq_bceqz(double %a, double %b) nounwind {
39 ; LA32-LABEL: br_fcmp_oeq_bceqz:
41 ; LA32-NEXT: fcmp.cune.d $fcc0, $fa0, $fa1
42 ; LA32-NEXT: bceqz $fcc0, .LBB1_2
43 ; LA32-NEXT: # %bb.1: # %if.else
45 ; LA32-NEXT: .LBB1_2: # %if.then
46 ; LA32-NEXT: addi.w $sp, $sp, -16
47 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
48 ; LA32-NEXT: bl %plt(abort)
50 ; LA64-LABEL: br_fcmp_oeq_bceqz:
52 ; LA64-NEXT: fcmp.cune.d $fcc0, $fa0, $fa1
53 ; LA64-NEXT: bceqz $fcc0, .LBB1_2
54 ; LA64-NEXT: # %bb.1: # %if.else
56 ; LA64-NEXT: .LBB1_2: # %if.then
57 ; LA64-NEXT: addi.d $sp, $sp, -16
58 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
59 ; LA64-NEXT: bl %plt(abort)
60 %1 = fcmp oeq double %a, %b
61 br i1 %1, label %if.then, label %if.else
63 tail call void @abort()
69 define void @br_fcmp_ogt_bcnez(double %a, double %b) nounwind {
70 ; LA32-LABEL: br_fcmp_ogt_bcnez:
72 ; LA32-NEXT: fcmp.clt.d $fcc0, $fa1, $fa0
73 ; LA32-NEXT: bcnez $fcc0, .LBB2_2
74 ; LA32-NEXT: # %bb.1: # %if.else
76 ; LA32-NEXT: .LBB2_2: # %if.then
77 ; LA32-NEXT: addi.w $sp, $sp, -16
78 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
79 ; LA32-NEXT: bl %plt(abort)
81 ; LA64-LABEL: br_fcmp_ogt_bcnez:
83 ; LA64-NEXT: fcmp.clt.d $fcc0, $fa1, $fa0
84 ; LA64-NEXT: bcnez $fcc0, .LBB2_2
85 ; LA64-NEXT: # %bb.1: # %if.else
87 ; LA64-NEXT: .LBB2_2: # %if.then
88 ; LA64-NEXT: addi.d $sp, $sp, -16
89 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
90 ; LA64-NEXT: bl %plt(abort)
91 %1 = fcmp ogt double %a, %b
92 br i1 %1, label %if.then, label %if.else
96 tail call void @abort()
100 define void @br_fcmp_ogt_bceqz(double %a, double %b) nounwind {
101 ; LA32-LABEL: br_fcmp_ogt_bceqz:
103 ; LA32-NEXT: fcmp.cule.d $fcc0, $fa0, $fa1
104 ; LA32-NEXT: bceqz $fcc0, .LBB3_2
105 ; LA32-NEXT: # %bb.1: # %if.else
107 ; LA32-NEXT: .LBB3_2: # %if.then
108 ; LA32-NEXT: addi.w $sp, $sp, -16
109 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
110 ; LA32-NEXT: bl %plt(abort)
112 ; LA64-LABEL: br_fcmp_ogt_bceqz:
114 ; LA64-NEXT: fcmp.cule.d $fcc0, $fa0, $fa1
115 ; LA64-NEXT: bceqz $fcc0, .LBB3_2
116 ; LA64-NEXT: # %bb.1: # %if.else
118 ; LA64-NEXT: .LBB3_2: # %if.then
119 ; LA64-NEXT: addi.d $sp, $sp, -16
120 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
121 ; LA64-NEXT: bl %plt(abort)
122 %1 = fcmp ogt double %a, %b
123 br i1 %1, label %if.then, label %if.else
125 tail call void @abort()
131 define void @br_fcmp_oge_bcnez(double %a, double %b) nounwind {
132 ; LA32-LABEL: br_fcmp_oge_bcnez:
134 ; LA32-NEXT: fcmp.cle.d $fcc0, $fa1, $fa0
135 ; LA32-NEXT: bcnez $fcc0, .LBB4_2
136 ; LA32-NEXT: # %bb.1: # %if.else
138 ; LA32-NEXT: .LBB4_2: # %if.then
139 ; LA32-NEXT: addi.w $sp, $sp, -16
140 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
141 ; LA32-NEXT: bl %plt(abort)
143 ; LA64-LABEL: br_fcmp_oge_bcnez:
145 ; LA64-NEXT: fcmp.cle.d $fcc0, $fa1, $fa0
146 ; LA64-NEXT: bcnez $fcc0, .LBB4_2
147 ; LA64-NEXT: # %bb.1: # %if.else
149 ; LA64-NEXT: .LBB4_2: # %if.then
150 ; LA64-NEXT: addi.d $sp, $sp, -16
151 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
152 ; LA64-NEXT: bl %plt(abort)
153 %1 = fcmp oge double %a, %b
154 br i1 %1, label %if.then, label %if.else
158 tail call void @abort()
162 define void @br_fcmp_oge_bceqz(double %a, double %b) nounwind {
163 ; LA32-LABEL: br_fcmp_oge_bceqz:
165 ; LA32-NEXT: fcmp.cult.d $fcc0, $fa0, $fa1
166 ; LA32-NEXT: bceqz $fcc0, .LBB5_2
167 ; LA32-NEXT: # %bb.1: # %if.else
169 ; LA32-NEXT: .LBB5_2: # %if.then
170 ; LA32-NEXT: addi.w $sp, $sp, -16
171 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
172 ; LA32-NEXT: bl %plt(abort)
174 ; LA64-LABEL: br_fcmp_oge_bceqz:
176 ; LA64-NEXT: fcmp.cult.d $fcc0, $fa0, $fa1
177 ; LA64-NEXT: bceqz $fcc0, .LBB5_2
178 ; LA64-NEXT: # %bb.1: # %if.else
180 ; LA64-NEXT: .LBB5_2: # %if.then
181 ; LA64-NEXT: addi.d $sp, $sp, -16
182 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
183 ; LA64-NEXT: bl %plt(abort)
184 %1 = fcmp oge double %a, %b
185 br i1 %1, label %if.then, label %if.else
187 tail call void @abort()
193 define void @br_fcmp_olt_bcnez(double %a, double %b) nounwind {
194 ; LA32-LABEL: br_fcmp_olt_bcnez:
196 ; LA32-NEXT: fcmp.clt.d $fcc0, $fa0, $fa1
197 ; LA32-NEXT: bcnez $fcc0, .LBB6_2
198 ; LA32-NEXT: # %bb.1: # %if.else
200 ; LA32-NEXT: .LBB6_2: # %if.then
201 ; LA32-NEXT: addi.w $sp, $sp, -16
202 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
203 ; LA32-NEXT: bl %plt(abort)
205 ; LA64-LABEL: br_fcmp_olt_bcnez:
207 ; LA64-NEXT: fcmp.clt.d $fcc0, $fa0, $fa1
208 ; LA64-NEXT: bcnez $fcc0, .LBB6_2
209 ; LA64-NEXT: # %bb.1: # %if.else
211 ; LA64-NEXT: .LBB6_2: # %if.then
212 ; LA64-NEXT: addi.d $sp, $sp, -16
213 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
214 ; LA64-NEXT: bl %plt(abort)
215 %1 = fcmp olt double %a, %b
216 br i1 %1, label %if.then, label %if.else
220 tail call void @abort()
224 define void @br_fcmp_olt_bceqz(double %a, double %b) nounwind {
225 ; LA32-LABEL: br_fcmp_olt_bceqz:
227 ; LA32-NEXT: fcmp.cule.d $fcc0, $fa1, $fa0
228 ; LA32-NEXT: bceqz $fcc0, .LBB7_2
229 ; LA32-NEXT: # %bb.1: # %if.else
231 ; LA32-NEXT: .LBB7_2: # %if.then
232 ; LA32-NEXT: addi.w $sp, $sp, -16
233 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
234 ; LA32-NEXT: bl %plt(abort)
236 ; LA64-LABEL: br_fcmp_olt_bceqz:
238 ; LA64-NEXT: fcmp.cule.d $fcc0, $fa1, $fa0
239 ; LA64-NEXT: bceqz $fcc0, .LBB7_2
240 ; LA64-NEXT: # %bb.1: # %if.else
242 ; LA64-NEXT: .LBB7_2: # %if.then
243 ; LA64-NEXT: addi.d $sp, $sp, -16
244 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
245 ; LA64-NEXT: bl %plt(abort)
246 %1 = fcmp olt double %a, %b
247 br i1 %1, label %if.then, label %if.else
249 tail call void @abort()
255 define void @br_fcmp_ole_bcnez(double %a, double %b) nounwind {
256 ; LA32-LABEL: br_fcmp_ole_bcnez:
258 ; LA32-NEXT: fcmp.cle.d $fcc0, $fa0, $fa1
259 ; LA32-NEXT: bcnez $fcc0, .LBB8_2
260 ; LA32-NEXT: # %bb.1: # %if.else
262 ; LA32-NEXT: .LBB8_2: # %if.then
263 ; LA32-NEXT: addi.w $sp, $sp, -16
264 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
265 ; LA32-NEXT: bl %plt(abort)
267 ; LA64-LABEL: br_fcmp_ole_bcnez:
269 ; LA64-NEXT: fcmp.cle.d $fcc0, $fa0, $fa1
270 ; LA64-NEXT: bcnez $fcc0, .LBB8_2
271 ; LA64-NEXT: # %bb.1: # %if.else
273 ; LA64-NEXT: .LBB8_2: # %if.then
274 ; LA64-NEXT: addi.d $sp, $sp, -16
275 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
276 ; LA64-NEXT: bl %plt(abort)
277 %1 = fcmp ole double %a, %b
278 br i1 %1, label %if.then, label %if.else
282 tail call void @abort()
286 define void @br_fcmp_ole_bceqz(double %a, double %b) nounwind {
287 ; LA32-LABEL: br_fcmp_ole_bceqz:
289 ; LA32-NEXT: fcmp.cult.d $fcc0, $fa1, $fa0
290 ; LA32-NEXT: bceqz $fcc0, .LBB9_2
291 ; LA32-NEXT: # %bb.1: # %if.else
293 ; LA32-NEXT: .LBB9_2: # %if.then
294 ; LA32-NEXT: addi.w $sp, $sp, -16
295 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
296 ; LA32-NEXT: bl %plt(abort)
298 ; LA64-LABEL: br_fcmp_ole_bceqz:
300 ; LA64-NEXT: fcmp.cult.d $fcc0, $fa1, $fa0
301 ; LA64-NEXT: bceqz $fcc0, .LBB9_2
302 ; LA64-NEXT: # %bb.1: # %if.else
304 ; LA64-NEXT: .LBB9_2: # %if.then
305 ; LA64-NEXT: addi.d $sp, $sp, -16
306 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
307 ; LA64-NEXT: bl %plt(abort)
308 %1 = fcmp ole double %a, %b
309 br i1 %1, label %if.then, label %if.else
311 tail call void @abort()
317 define void @br_fcmp_one_bcnez(double %a, double %b) nounwind {
318 ; LA32-LABEL: br_fcmp_one_bcnez:
320 ; LA32-NEXT: fcmp.cne.d $fcc0, $fa0, $fa1
321 ; LA32-NEXT: bcnez $fcc0, .LBB10_2
322 ; LA32-NEXT: # %bb.1: # %if.else
324 ; LA32-NEXT: .LBB10_2: # %if.then
325 ; LA32-NEXT: addi.w $sp, $sp, -16
326 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
327 ; LA32-NEXT: bl %plt(abort)
329 ; LA64-LABEL: br_fcmp_one_bcnez:
331 ; LA64-NEXT: fcmp.cne.d $fcc0, $fa0, $fa1
332 ; LA64-NEXT: bcnez $fcc0, .LBB10_2
333 ; LA64-NEXT: # %bb.1: # %if.else
335 ; LA64-NEXT: .LBB10_2: # %if.then
336 ; LA64-NEXT: addi.d $sp, $sp, -16
337 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
338 ; LA64-NEXT: bl %plt(abort)
339 %1 = fcmp one double %a, %b
340 br i1 %1, label %if.then, label %if.else
344 tail call void @abort()
348 define void @br_fcmp_one_bceqz(double %a, double %b) nounwind {
349 ; LA32-LABEL: br_fcmp_one_bceqz:
351 ; LA32-NEXT: fcmp.cueq.d $fcc0, $fa0, $fa1
352 ; LA32-NEXT: bceqz $fcc0, .LBB11_2
353 ; LA32-NEXT: # %bb.1: # %if.else
355 ; LA32-NEXT: .LBB11_2: # %if.then
356 ; LA32-NEXT: addi.w $sp, $sp, -16
357 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
358 ; LA32-NEXT: bl %plt(abort)
360 ; LA64-LABEL: br_fcmp_one_bceqz:
362 ; LA64-NEXT: fcmp.cueq.d $fcc0, $fa0, $fa1
363 ; LA64-NEXT: bceqz $fcc0, .LBB11_2
364 ; LA64-NEXT: # %bb.1: # %if.else
366 ; LA64-NEXT: .LBB11_2: # %if.then
367 ; LA64-NEXT: addi.d $sp, $sp, -16
368 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
369 ; LA64-NEXT: bl %plt(abort)
370 %1 = fcmp one double %a, %b
371 br i1 %1, label %if.then, label %if.else
373 tail call void @abort()
379 define void @br_fcmp_ord_bcnez(double %a, double %b) nounwind {
380 ; LA32-LABEL: br_fcmp_ord_bcnez:
382 ; LA32-NEXT: fcmp.cor.d $fcc0, $fa0, $fa1
383 ; LA32-NEXT: bcnez $fcc0, .LBB12_2
384 ; LA32-NEXT: # %bb.1: # %if.else
386 ; LA32-NEXT: .LBB12_2: # %if.then
387 ; LA32-NEXT: addi.w $sp, $sp, -16
388 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
389 ; LA32-NEXT: bl %plt(abort)
391 ; LA64-LABEL: br_fcmp_ord_bcnez:
393 ; LA64-NEXT: fcmp.cor.d $fcc0, $fa0, $fa1
394 ; LA64-NEXT: bcnez $fcc0, .LBB12_2
395 ; LA64-NEXT: # %bb.1: # %if.else
397 ; LA64-NEXT: .LBB12_2: # %if.then
398 ; LA64-NEXT: addi.d $sp, $sp, -16
399 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
400 ; LA64-NEXT: bl %plt(abort)
401 %1 = fcmp ord double %a, %b
402 br i1 %1, label %if.then, label %if.else
406 tail call void @abort()
410 define void @br_fcmp_ord_bceqz(double %a, double %b) nounwind {
411 ; LA32-LABEL: br_fcmp_ord_bceqz:
413 ; LA32-NEXT: fcmp.cun.d $fcc0, $fa0, $fa1
414 ; LA32-NEXT: bceqz $fcc0, .LBB13_2
415 ; LA32-NEXT: # %bb.1: # %if.else
417 ; LA32-NEXT: .LBB13_2: # %if.then
418 ; LA32-NEXT: addi.w $sp, $sp, -16
419 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
420 ; LA32-NEXT: bl %plt(abort)
422 ; LA64-LABEL: br_fcmp_ord_bceqz:
424 ; LA64-NEXT: fcmp.cun.d $fcc0, $fa0, $fa1
425 ; LA64-NEXT: bceqz $fcc0, .LBB13_2
426 ; LA64-NEXT: # %bb.1: # %if.else
428 ; LA64-NEXT: .LBB13_2: # %if.then
429 ; LA64-NEXT: addi.d $sp, $sp, -16
430 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
431 ; LA64-NEXT: bl %plt(abort)
432 %1 = fcmp ord double %a, %b
433 br i1 %1, label %if.then, label %if.else
435 tail call void @abort()
441 define void @br_fcmp_ueq_bcnez(double %a, double %b) nounwind {
442 ; LA32-LABEL: br_fcmp_ueq_bcnez:
444 ; LA32-NEXT: fcmp.cueq.d $fcc0, $fa0, $fa1
445 ; LA32-NEXT: bcnez $fcc0, .LBB14_2
446 ; LA32-NEXT: # %bb.1: # %if.else
448 ; LA32-NEXT: .LBB14_2: # %if.then
449 ; LA32-NEXT: addi.w $sp, $sp, -16
450 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
451 ; LA32-NEXT: bl %plt(abort)
453 ; LA64-LABEL: br_fcmp_ueq_bcnez:
455 ; LA64-NEXT: fcmp.cueq.d $fcc0, $fa0, $fa1
456 ; LA64-NEXT: bcnez $fcc0, .LBB14_2
457 ; LA64-NEXT: # %bb.1: # %if.else
459 ; LA64-NEXT: .LBB14_2: # %if.then
460 ; LA64-NEXT: addi.d $sp, $sp, -16
461 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
462 ; LA64-NEXT: bl %plt(abort)
463 %1 = fcmp ueq double %a, %b
464 br i1 %1, label %if.then, label %if.else
468 tail call void @abort()
472 define void @br_fcmp_ueq_bceqz(double %a, double %b) nounwind {
473 ; LA32-LABEL: br_fcmp_ueq_bceqz:
475 ; LA32-NEXT: fcmp.cne.d $fcc0, $fa0, $fa1
476 ; LA32-NEXT: bceqz $fcc0, .LBB15_2
477 ; LA32-NEXT: # %bb.1: # %if.else
479 ; LA32-NEXT: .LBB15_2: # %if.then
480 ; LA32-NEXT: addi.w $sp, $sp, -16
481 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
482 ; LA32-NEXT: bl %plt(abort)
484 ; LA64-LABEL: br_fcmp_ueq_bceqz:
486 ; LA64-NEXT: fcmp.cne.d $fcc0, $fa0, $fa1
487 ; LA64-NEXT: bceqz $fcc0, .LBB15_2
488 ; LA64-NEXT: # %bb.1: # %if.else
490 ; LA64-NEXT: .LBB15_2: # %if.then
491 ; LA64-NEXT: addi.d $sp, $sp, -16
492 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
493 ; LA64-NEXT: bl %plt(abort)
494 %1 = fcmp ueq double %a, %b
495 br i1 %1, label %if.then, label %if.else
497 tail call void @abort()
503 define void @br_fcmp_ugt_bcnez(double %a, double %b) nounwind {
504 ; LA32-LABEL: br_fcmp_ugt_bcnez:
506 ; LA32-NEXT: fcmp.cult.d $fcc0, $fa1, $fa0
507 ; LA32-NEXT: bcnez $fcc0, .LBB16_2
508 ; LA32-NEXT: # %bb.1: # %if.else
510 ; LA32-NEXT: .LBB16_2: # %if.then
511 ; LA32-NEXT: addi.w $sp, $sp, -16
512 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
513 ; LA32-NEXT: bl %plt(abort)
515 ; LA64-LABEL: br_fcmp_ugt_bcnez:
517 ; LA64-NEXT: fcmp.cult.d $fcc0, $fa1, $fa0
518 ; LA64-NEXT: bcnez $fcc0, .LBB16_2
519 ; LA64-NEXT: # %bb.1: # %if.else
521 ; LA64-NEXT: .LBB16_2: # %if.then
522 ; LA64-NEXT: addi.d $sp, $sp, -16
523 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
524 ; LA64-NEXT: bl %plt(abort)
525 %1 = fcmp ugt double %a, %b
526 br i1 %1, label %if.then, label %if.else
530 tail call void @abort()
534 define void @br_fcmp_ugt_bceqz(double %a, double %b) nounwind {
535 ; LA32-LABEL: br_fcmp_ugt_bceqz:
537 ; LA32-NEXT: fcmp.cle.d $fcc0, $fa0, $fa1
538 ; LA32-NEXT: bceqz $fcc0, .LBB17_2
539 ; LA32-NEXT: # %bb.1: # %if.else
541 ; LA32-NEXT: .LBB17_2: # %if.then
542 ; LA32-NEXT: addi.w $sp, $sp, -16
543 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
544 ; LA32-NEXT: bl %plt(abort)
546 ; LA64-LABEL: br_fcmp_ugt_bceqz:
548 ; LA64-NEXT: fcmp.cle.d $fcc0, $fa0, $fa1
549 ; LA64-NEXT: bceqz $fcc0, .LBB17_2
550 ; LA64-NEXT: # %bb.1: # %if.else
552 ; LA64-NEXT: .LBB17_2: # %if.then
553 ; LA64-NEXT: addi.d $sp, $sp, -16
554 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
555 ; LA64-NEXT: bl %plt(abort)
556 %1 = fcmp ugt double %a, %b
557 br i1 %1, label %if.then, label %if.else
559 tail call void @abort()
565 define void @br_fcmp_uge_bcnez(double %a, double %b) nounwind {
566 ; LA32-LABEL: br_fcmp_uge_bcnez:
568 ; LA32-NEXT: fcmp.cule.d $fcc0, $fa1, $fa0
569 ; LA32-NEXT: bcnez $fcc0, .LBB18_2
570 ; LA32-NEXT: # %bb.1: # %if.else
572 ; LA32-NEXT: .LBB18_2: # %if.then
573 ; LA32-NEXT: addi.w $sp, $sp, -16
574 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
575 ; LA32-NEXT: bl %plt(abort)
577 ; LA64-LABEL: br_fcmp_uge_bcnez:
579 ; LA64-NEXT: fcmp.cule.d $fcc0, $fa1, $fa0
580 ; LA64-NEXT: bcnez $fcc0, .LBB18_2
581 ; LA64-NEXT: # %bb.1: # %if.else
583 ; LA64-NEXT: .LBB18_2: # %if.then
584 ; LA64-NEXT: addi.d $sp, $sp, -16
585 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
586 ; LA64-NEXT: bl %plt(abort)
587 %1 = fcmp uge double %a, %b
588 br i1 %1, label %if.then, label %if.else
592 tail call void @abort()
596 define void @br_fcmp_uge_bceqz(double %a, double %b) nounwind {
597 ; LA32-LABEL: br_fcmp_uge_bceqz:
599 ; LA32-NEXT: fcmp.clt.d $fcc0, $fa0, $fa1
600 ; LA32-NEXT: bceqz $fcc0, .LBB19_2
601 ; LA32-NEXT: # %bb.1: # %if.else
603 ; LA32-NEXT: .LBB19_2: # %if.then
604 ; LA32-NEXT: addi.w $sp, $sp, -16
605 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
606 ; LA32-NEXT: bl %plt(abort)
608 ; LA64-LABEL: br_fcmp_uge_bceqz:
610 ; LA64-NEXT: fcmp.clt.d $fcc0, $fa0, $fa1
611 ; LA64-NEXT: bceqz $fcc0, .LBB19_2
612 ; LA64-NEXT: # %bb.1: # %if.else
614 ; LA64-NEXT: .LBB19_2: # %if.then
615 ; LA64-NEXT: addi.d $sp, $sp, -16
616 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
617 ; LA64-NEXT: bl %plt(abort)
618 %1 = fcmp uge double %a, %b
619 br i1 %1, label %if.then, label %if.else
621 tail call void @abort()
627 define void @br_fcmp_ult_bcnez(double %a, double %b) nounwind {
628 ; LA32-LABEL: br_fcmp_ult_bcnez:
630 ; LA32-NEXT: fcmp.cult.d $fcc0, $fa0, $fa1
631 ; LA32-NEXT: bcnez $fcc0, .LBB20_2
632 ; LA32-NEXT: # %bb.1: # %if.else
634 ; LA32-NEXT: .LBB20_2: # %if.then
635 ; LA32-NEXT: addi.w $sp, $sp, -16
636 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
637 ; LA32-NEXT: bl %plt(abort)
639 ; LA64-LABEL: br_fcmp_ult_bcnez:
641 ; LA64-NEXT: fcmp.cult.d $fcc0, $fa0, $fa1
642 ; LA64-NEXT: bcnez $fcc0, .LBB20_2
643 ; LA64-NEXT: # %bb.1: # %if.else
645 ; LA64-NEXT: .LBB20_2: # %if.then
646 ; LA64-NEXT: addi.d $sp, $sp, -16
647 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
648 ; LA64-NEXT: bl %plt(abort)
649 %1 = fcmp ult double %a, %b
650 br i1 %1, label %if.then, label %if.else
654 tail call void @abort()
658 define void @br_fcmp_ult_bceqz(double %a, double %b) nounwind {
659 ; LA32-LABEL: br_fcmp_ult_bceqz:
661 ; LA32-NEXT: fcmp.cle.d $fcc0, $fa1, $fa0
662 ; LA32-NEXT: bceqz $fcc0, .LBB21_2
663 ; LA32-NEXT: # %bb.1: # %if.else
665 ; LA32-NEXT: .LBB21_2: # %if.then
666 ; LA32-NEXT: addi.w $sp, $sp, -16
667 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
668 ; LA32-NEXT: bl %plt(abort)
670 ; LA64-LABEL: br_fcmp_ult_bceqz:
672 ; LA64-NEXT: fcmp.cle.d $fcc0, $fa1, $fa0
673 ; LA64-NEXT: bceqz $fcc0, .LBB21_2
674 ; LA64-NEXT: # %bb.1: # %if.else
676 ; LA64-NEXT: .LBB21_2: # %if.then
677 ; LA64-NEXT: addi.d $sp, $sp, -16
678 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
679 ; LA64-NEXT: bl %plt(abort)
680 %1 = fcmp ult double %a, %b
681 br i1 %1, label %if.then, label %if.else
683 tail call void @abort()
689 define void @br_fcmp_ule_bcnez(double %a, double %b) nounwind {
690 ; LA32-LABEL: br_fcmp_ule_bcnez:
692 ; LA32-NEXT: fcmp.cule.d $fcc0, $fa0, $fa1
693 ; LA32-NEXT: bcnez $fcc0, .LBB22_2
694 ; LA32-NEXT: # %bb.1: # %if.else
696 ; LA32-NEXT: .LBB22_2: # %if.then
697 ; LA32-NEXT: addi.w $sp, $sp, -16
698 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
699 ; LA32-NEXT: bl %plt(abort)
701 ; LA64-LABEL: br_fcmp_ule_bcnez:
703 ; LA64-NEXT: fcmp.cule.d $fcc0, $fa0, $fa1
704 ; LA64-NEXT: bcnez $fcc0, .LBB22_2
705 ; LA64-NEXT: # %bb.1: # %if.else
707 ; LA64-NEXT: .LBB22_2: # %if.then
708 ; LA64-NEXT: addi.d $sp, $sp, -16
709 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
710 ; LA64-NEXT: bl %plt(abort)
711 %1 = fcmp ule double %a, %b
712 br i1 %1, label %if.then, label %if.else
716 tail call void @abort()
720 define void @br_fcmp_ule_bceqz(double %a, double %b) nounwind {
721 ; LA32-LABEL: br_fcmp_ule_bceqz:
723 ; LA32-NEXT: fcmp.clt.d $fcc0, $fa1, $fa0
724 ; LA32-NEXT: bceqz $fcc0, .LBB23_2
725 ; LA32-NEXT: # %bb.1: # %if.else
727 ; LA32-NEXT: .LBB23_2: # %if.then
728 ; LA32-NEXT: addi.w $sp, $sp, -16
729 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
730 ; LA32-NEXT: bl %plt(abort)
732 ; LA64-LABEL: br_fcmp_ule_bceqz:
734 ; LA64-NEXT: fcmp.clt.d $fcc0, $fa1, $fa0
735 ; LA64-NEXT: bceqz $fcc0, .LBB23_2
736 ; LA64-NEXT: # %bb.1: # %if.else
738 ; LA64-NEXT: .LBB23_2: # %if.then
739 ; LA64-NEXT: addi.d $sp, $sp, -16
740 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
741 ; LA64-NEXT: bl %plt(abort)
742 %1 = fcmp ule double %a, %b
743 br i1 %1, label %if.then, label %if.else
745 tail call void @abort()
751 define void @br_fcmp_une_bcnez(double %a, double %b) nounwind {
752 ; LA32-LABEL: br_fcmp_une_bcnez:
754 ; LA32-NEXT: fcmp.cune.d $fcc0, $fa0, $fa1
755 ; LA32-NEXT: bcnez $fcc0, .LBB24_2
756 ; LA32-NEXT: # %bb.1: # %if.else
758 ; LA32-NEXT: .LBB24_2: # %if.then
759 ; LA32-NEXT: addi.w $sp, $sp, -16
760 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
761 ; LA32-NEXT: bl %plt(abort)
763 ; LA64-LABEL: br_fcmp_une_bcnez:
765 ; LA64-NEXT: fcmp.cune.d $fcc0, $fa0, $fa1
766 ; LA64-NEXT: bcnez $fcc0, .LBB24_2
767 ; LA64-NEXT: # %bb.1: # %if.else
769 ; LA64-NEXT: .LBB24_2: # %if.then
770 ; LA64-NEXT: addi.d $sp, $sp, -16
771 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
772 ; LA64-NEXT: bl %plt(abort)
773 %1 = fcmp une double %a, %b
774 br i1 %1, label %if.then, label %if.else
778 tail call void @abort()
782 define void @br_fcmp_une_bceqz(double %a, double %b) nounwind {
783 ; LA32-LABEL: br_fcmp_une_bceqz:
785 ; LA32-NEXT: fcmp.ceq.d $fcc0, $fa0, $fa1
786 ; LA32-NEXT: bceqz $fcc0, .LBB25_2
787 ; LA32-NEXT: # %bb.1: # %if.else
789 ; LA32-NEXT: .LBB25_2: # %if.then
790 ; LA32-NEXT: addi.w $sp, $sp, -16
791 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
792 ; LA32-NEXT: bl %plt(abort)
794 ; LA64-LABEL: br_fcmp_une_bceqz:
796 ; LA64-NEXT: fcmp.ceq.d $fcc0, $fa0, $fa1
797 ; LA64-NEXT: bceqz $fcc0, .LBB25_2
798 ; LA64-NEXT: # %bb.1: # %if.else
800 ; LA64-NEXT: .LBB25_2: # %if.then
801 ; LA64-NEXT: addi.d $sp, $sp, -16
802 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
803 ; LA64-NEXT: bl %plt(abort)
804 %1 = fcmp une double %a, %b
805 br i1 %1, label %if.then, label %if.else
807 tail call void @abort()
813 define void @br_fcmp_uno_bcnez(double %a, double %b) nounwind {
814 ; LA32-LABEL: br_fcmp_uno_bcnez:
816 ; LA32-NEXT: fcmp.cun.d $fcc0, $fa0, $fa1
817 ; LA32-NEXT: bcnez $fcc0, .LBB26_2
818 ; LA32-NEXT: # %bb.1: # %if.else
820 ; LA32-NEXT: .LBB26_2: # %if.then
821 ; LA32-NEXT: addi.w $sp, $sp, -16
822 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
823 ; LA32-NEXT: bl %plt(abort)
825 ; LA64-LABEL: br_fcmp_uno_bcnez:
827 ; LA64-NEXT: fcmp.cun.d $fcc0, $fa0, $fa1
828 ; LA64-NEXT: bcnez $fcc0, .LBB26_2
829 ; LA64-NEXT: # %bb.1: # %if.else
831 ; LA64-NEXT: .LBB26_2: # %if.then
832 ; LA64-NEXT: addi.d $sp, $sp, -16
833 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
834 ; LA64-NEXT: bl %plt(abort)
835 %1 = fcmp uno double %a, %b
836 br i1 %1, label %if.then, label %if.else
840 tail call void @abort()
844 define void @br_fcmp_uno_bceqz(double %a, double %b) nounwind {
845 ; LA32-LABEL: br_fcmp_uno_bceqz:
847 ; LA32-NEXT: fcmp.cor.d $fcc0, $fa0, $fa1
848 ; LA32-NEXT: bceqz $fcc0, .LBB27_2
849 ; LA32-NEXT: # %bb.1: # %if.else
851 ; LA32-NEXT: .LBB27_2: # %if.then
852 ; LA32-NEXT: addi.w $sp, $sp, -16
853 ; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
854 ; LA32-NEXT: bl %plt(abort)
856 ; LA64-LABEL: br_fcmp_uno_bceqz:
858 ; LA64-NEXT: fcmp.cor.d $fcc0, $fa0, $fa1
859 ; LA64-NEXT: bceqz $fcc0, .LBB27_2
860 ; LA64-NEXT: # %bb.1: # %if.else
862 ; LA64-NEXT: .LBB27_2: # %if.then
863 ; LA64-NEXT: addi.d $sp, $sp, -16
864 ; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
865 ; LA64-NEXT: bl %plt(abort)
866 %1 = fcmp uno double %a, %b
867 br i1 %1, label %if.then, label %if.else
869 tail call void @abort()