1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; RUN: llc < %s -mtriple=ve | FileCheck %s
4 ; Function Attrs: nounwind
5 define void @br_cc_i1_var(i1 zeroext %0, i1 zeroext %1) {
6 ; CHECK-LABEL: br_cc_i1_var:
8 ; CHECK-NEXT: xor %s0, %s0, %s1
9 ; CHECK-NEXT: brne.w 0, %s0, .LBB0_2
10 ; CHECK-NEXT: # %bb.1:
14 ; CHECK-NEXT: .LBB0_2:
15 ; CHECK-NEXT: b.l.t (, %s10)
17 br i1 %3, label %5, label %4
20 tail call void asm sideeffect "nop", ""()
27 ; Function Attrs: nounwind
28 define void @br_cc_i8_var(i8 signext %0, i8 signext %1) {
29 ; CHECK-LABEL: br_cc_i8_var:
31 ; CHECK-NEXT: brne.w %s0, %s1, .LBB1_2
32 ; CHECK-NEXT: # %bb.1:
36 ; CHECK-NEXT: .LBB1_2:
37 ; CHECK-NEXT: b.l.t (, %s10)
38 %3 = icmp eq i8 %0, %1
39 br i1 %3, label %4, label %5
42 tail call void asm sideeffect "nop", ""()
49 ; Function Attrs: nounwind
50 define void @br_cc_u8_var(i8 zeroext %0, i8 zeroext %1) {
51 ; CHECK-LABEL: br_cc_u8_var:
53 ; CHECK-NEXT: brne.w %s0, %s1, .LBB2_2
54 ; CHECK-NEXT: # %bb.1:
58 ; CHECK-NEXT: .LBB2_2:
59 ; CHECK-NEXT: b.l.t (, %s10)
60 %3 = icmp eq i8 %0, %1
61 br i1 %3, label %4, label %5
64 tail call void asm sideeffect "nop", ""()
71 ; Function Attrs: nounwind
72 define void @br_cc_i16_var(i16 signext %0, i16 signext %1) {
73 ; CHECK-LABEL: br_cc_i16_var:
75 ; CHECK-NEXT: brne.w %s0, %s1, .LBB3_2
76 ; CHECK-NEXT: # %bb.1:
80 ; CHECK-NEXT: .LBB3_2:
81 ; CHECK-NEXT: b.l.t (, %s10)
82 %3 = icmp eq i16 %0, %1
83 br i1 %3, label %4, label %5
86 tail call void asm sideeffect "nop", ""()
93 ; Function Attrs: nounwind
94 define void @br_cc_u16_var(i16 zeroext %0, i16 zeroext %1) {
95 ; CHECK-LABEL: br_cc_u16_var:
97 ; CHECK-NEXT: brne.w %s0, %s1, .LBB4_2
98 ; CHECK-NEXT: # %bb.1:
101 ; CHECK-NEXT: #NO_APP
102 ; CHECK-NEXT: .LBB4_2:
103 ; CHECK-NEXT: b.l.t (, %s10)
104 %3 = icmp eq i16 %0, %1
105 br i1 %3, label %4, label %5
108 tail call void asm sideeffect "nop", ""()
115 ; Function Attrs: nounwind
116 define void @br_cc_i32_var(i32 signext %0, i32 signext %1) {
117 ; CHECK-LABEL: br_cc_i32_var:
119 ; CHECK-NEXT: brne.w %s0, %s1, .LBB5_2
120 ; CHECK-NEXT: # %bb.1:
123 ; CHECK-NEXT: #NO_APP
124 ; CHECK-NEXT: .LBB5_2:
125 ; CHECK-NEXT: b.l.t (, %s10)
126 %3 = icmp eq i32 %0, %1
127 br i1 %3, label %4, label %5
130 tail call void asm sideeffect "nop", ""()
137 ; Function Attrs: nounwind
138 define void @br_cc_u32_var(i32 zeroext %0, i32 zeroext %1) {
139 ; CHECK-LABEL: br_cc_u32_var:
141 ; CHECK-NEXT: brne.w %s0, %s1, .LBB6_2
142 ; CHECK-NEXT: # %bb.1:
145 ; CHECK-NEXT: #NO_APP
146 ; CHECK-NEXT: .LBB6_2:
147 ; CHECK-NEXT: b.l.t (, %s10)
148 %3 = icmp eq i32 %0, %1
149 br i1 %3, label %4, label %5
152 tail call void asm sideeffect "nop", ""()
159 ; Function Attrs: nounwind
160 define void @br_cc_i64_var(i64 %0, i64 %1) {
161 ; CHECK-LABEL: br_cc_i64_var:
163 ; CHECK-NEXT: brne.l %s0, %s1, .LBB7_2
164 ; CHECK-NEXT: # %bb.1:
167 ; CHECK-NEXT: #NO_APP
168 ; CHECK-NEXT: .LBB7_2:
169 ; CHECK-NEXT: b.l.t (, %s10)
170 %3 = icmp eq i64 %0, %1
171 br i1 %3, label %4, label %5
174 tail call void asm sideeffect "nop", ""()
181 ; Function Attrs: nounwind
182 define void @br_cc_u64_var(i64 %0, i64 %1) {
183 ; CHECK-LABEL: br_cc_u64_var:
185 ; CHECK-NEXT: brne.l %s0, %s1, .LBB8_2
186 ; CHECK-NEXT: # %bb.1:
189 ; CHECK-NEXT: #NO_APP
190 ; CHECK-NEXT: .LBB8_2:
191 ; CHECK-NEXT: b.l.t (, %s10)
192 %3 = icmp eq i64 %0, %1
193 br i1 %3, label %4, label %5
196 tail call void asm sideeffect "nop", ""()
203 ; Function Attrs: nounwind
204 define void @br_cc_i128_var(i128 %0, i128 %1) {
205 ; CHECK-LABEL: br_cc_i128_var:
207 ; CHECK-NEXT: xor %s1, %s1, %s3
208 ; CHECK-NEXT: xor %s0, %s0, %s2
209 ; CHECK-NEXT: or %s0, %s0, %s1
210 ; CHECK-NEXT: brne.l 0, %s0, .LBB9_2
211 ; CHECK-NEXT: # %bb.1:
214 ; CHECK-NEXT: #NO_APP
215 ; CHECK-NEXT: .LBB9_2:
216 ; CHECK-NEXT: b.l.t (, %s10)
217 %3 = icmp eq i128 %0, %1
218 br i1 %3, label %4, label %5
221 tail call void asm sideeffect "nop", ""()
228 ; Function Attrs: nounwind
229 define void @br_cc_u128_var(i128 %0, i128 %1) {
230 ; CHECK-LABEL: br_cc_u128_var:
232 ; CHECK-NEXT: xor %s1, %s1, %s3
233 ; CHECK-NEXT: xor %s0, %s0, %s2
234 ; CHECK-NEXT: or %s0, %s0, %s1
235 ; CHECK-NEXT: brne.l 0, %s0, .LBB10_2
236 ; CHECK-NEXT: # %bb.1:
239 ; CHECK-NEXT: #NO_APP
240 ; CHECK-NEXT: .LBB10_2:
241 ; CHECK-NEXT: b.l.t (, %s10)
242 %3 = icmp eq i128 %0, %1
243 br i1 %3, label %4, label %5
246 tail call void asm sideeffect "nop", ""()
253 ; Function Attrs: nounwind
254 define void @br_cc_float_var(float %0, float %1) {
255 ; CHECK-LABEL: br_cc_float_var:
257 ; CHECK-NEXT: brne.s %s0, %s1, .LBB11_2
258 ; CHECK-NEXT: # %bb.1:
261 ; CHECK-NEXT: #NO_APP
262 ; CHECK-NEXT: .LBB11_2:
263 ; CHECK-NEXT: b.l.t (, %s10)
264 %3 = fcmp fast oeq float %0, %1
265 br i1 %3, label %4, label %5
268 tail call void asm sideeffect "nop", ""()
275 ; Function Attrs: nounwind
276 define void @br_cc_double_var(double %0, double %1) {
277 ; CHECK-LABEL: br_cc_double_var:
279 ; CHECK-NEXT: brne.d %s0, %s1, .LBB12_2
280 ; CHECK-NEXT: # %bb.1:
283 ; CHECK-NEXT: #NO_APP
284 ; CHECK-NEXT: .LBB12_2:
285 ; CHECK-NEXT: b.l.t (, %s10)
286 %3 = fcmp fast oeq double %0, %1
287 br i1 %3, label %4, label %5
290 tail call void asm sideeffect "nop", ""()
297 ; Function Attrs: nounwind
298 define void @br_cc_quad_var(fp128 %0, fp128 %1) {
299 ; CHECK-LABEL: br_cc_quad_var:
301 ; CHECK-NEXT: fcmp.q %s0, %s2, %s0
302 ; CHECK-NEXT: brne.d 0, %s0, .LBB13_2
303 ; CHECK-NEXT: # %bb.1:
306 ; CHECK-NEXT: #NO_APP
307 ; CHECK-NEXT: .LBB13_2:
308 ; CHECK-NEXT: b.l.t (, %s10)
309 %3 = fcmp fast oeq fp128 %0, %1
310 br i1 %3, label %4, label %5
313 tail call void asm sideeffect "nop", ""()
320 ; Function Attrs: nounwind
321 define void @br_cc_i1_imm(i1 zeroext %0) {
322 ; CHECK-LABEL: br_cc_i1_imm:
324 ; CHECK-NEXT: brne.w 0, %s0, .LBB14_2
325 ; CHECK-NEXT: # %bb.1:
328 ; CHECK-NEXT: #NO_APP
329 ; CHECK-NEXT: .LBB14_2:
330 ; CHECK-NEXT: b.l.t (, %s10)
331 br i1 %0, label %3, label %2
334 tail call void asm sideeffect "nop", ""()
341 ; Function Attrs: nounwind
342 define void @br_cc_i8_imm(i8 signext %0) {
343 ; CHECK-LABEL: br_cc_i8_imm:
345 ; CHECK-NEXT: brlt.w -10, %s0, .LBB15_2
346 ; CHECK-NEXT: # %bb.1:
349 ; CHECK-NEXT: #NO_APP
350 ; CHECK-NEXT: .LBB15_2:
351 ; CHECK-NEXT: b.l.t (, %s10)
352 %2 = icmp slt i8 %0, -9
353 br i1 %2, label %3, label %4
356 tail call void asm sideeffect "nop", ""()
363 ; Function Attrs: nounwind
364 define void @br_cc_u8_imm(i8 zeroext %0) {
365 ; CHECK-LABEL: br_cc_u8_imm:
367 ; CHECK-NEXT: cmpu.w %s0, 8, %s0
368 ; CHECK-NEXT: brgt.w 0, %s0, .LBB16_2
369 ; CHECK-NEXT: # %bb.1:
372 ; CHECK-NEXT: #NO_APP
373 ; CHECK-NEXT: .LBB16_2:
374 ; CHECK-NEXT: b.l.t (, %s10)
375 %2 = icmp ult i8 %0, 9
376 br i1 %2, label %3, label %4
379 tail call void asm sideeffect "nop", ""()
386 ; Function Attrs: nounwind
387 define void @br_cc_i16_imm(i16 signext %0) {
388 ; CHECK-LABEL: br_cc_i16_imm:
390 ; CHECK-NEXT: brlt.w 62, %s0, .LBB17_2
391 ; CHECK-NEXT: # %bb.1:
394 ; CHECK-NEXT: #NO_APP
395 ; CHECK-NEXT: .LBB17_2:
396 ; CHECK-NEXT: b.l.t (, %s10)
397 %2 = icmp slt i16 %0, 63
398 br i1 %2, label %3, label %4
401 tail call void asm sideeffect "nop", ""()
408 ; Function Attrs: nounwind
409 define void @br_cc_u16_imm(i16 zeroext %0) {
410 ; CHECK-LABEL: br_cc_u16_imm:
412 ; CHECK-NEXT: cmpu.w %s0, 63, %s0
413 ; CHECK-NEXT: brgt.w 0, %s0, .LBB18_2
414 ; CHECK-NEXT: # %bb.1:
417 ; CHECK-NEXT: #NO_APP
418 ; CHECK-NEXT: .LBB18_2:
419 ; CHECK-NEXT: b.l.t (, %s10)
420 %2 = icmp ult i16 %0, 64
421 br i1 %2, label %3, label %4
424 tail call void asm sideeffect "nop", ""()
431 ; Function Attrs: nounwind
432 define void @br_cc_i32_imm(i32 signext %0) {
433 ; CHECK-LABEL: br_cc_i32_imm:
435 ; CHECK-NEXT: brlt.w 63, %s0, .LBB19_2
436 ; CHECK-NEXT: # %bb.1:
439 ; CHECK-NEXT: #NO_APP
440 ; CHECK-NEXT: .LBB19_2:
441 ; CHECK-NEXT: b.l.t (, %s10)
442 %2 = icmp slt i32 %0, 64
443 br i1 %2, label %3, label %4
446 tail call void asm sideeffect "nop", ""()
453 ; Function Attrs: nounwind
454 define void @br_cc_u32_imm(i32 zeroext %0) {
455 ; CHECK-LABEL: br_cc_u32_imm:
457 ; CHECK-NEXT: cmpu.w %s0, 63, %s0
458 ; CHECK-NEXT: brgt.w 0, %s0, .LBB20_2
459 ; CHECK-NEXT: # %bb.1:
462 ; CHECK-NEXT: #NO_APP
463 ; CHECK-NEXT: .LBB20_2:
464 ; CHECK-NEXT: b.l.t (, %s10)
465 %2 = icmp ult i32 %0, 64
466 br i1 %2, label %3, label %4
469 tail call void asm sideeffect "nop", ""()
476 ; Function Attrs: nounwind
477 define void @br_cc_i64_imm(i64 %0) {
478 ; CHECK-LABEL: br_cc_i64_imm:
480 ; CHECK-NEXT: brlt.l 63, %s0, .LBB21_2
481 ; CHECK-NEXT: # %bb.1:
484 ; CHECK-NEXT: #NO_APP
485 ; CHECK-NEXT: .LBB21_2:
486 ; CHECK-NEXT: b.l.t (, %s10)
487 %2 = icmp slt i64 %0, 64
488 br i1 %2, label %3, label %4
491 tail call void asm sideeffect "nop", ""()
498 ; Function Attrs: nounwind
499 define void @br_cc_u64_imm(i64 %0) {
500 ; CHECK-LABEL: br_cc_u64_imm:
502 ; CHECK-NEXT: cmpu.l %s0, 63, %s0
503 ; CHECK-NEXT: brgt.l 0, %s0, .LBB22_2
504 ; CHECK-NEXT: # %bb.1:
507 ; CHECK-NEXT: #NO_APP
508 ; CHECK-NEXT: .LBB22_2:
509 ; CHECK-NEXT: b.l.t (, %s10)
510 %2 = icmp ult i64 %0, 64
511 br i1 %2, label %3, label %4
514 tail call void asm sideeffect "nop", ""()
521 ; Function Attrs: nounwind
522 define void @br_cc_i128_imm(i128 %0) {
523 ; CHECK-LABEL: br_cc_i128_imm:
525 ; CHECK-NEXT: or %s2, 0, (0)1
526 ; CHECK-NEXT: cmps.l %s3, %s1, (0)1
527 ; CHECK-NEXT: or %s4, 0, (0)1
528 ; CHECK-NEXT: cmov.l.gt %s4, (63)0, %s3
529 ; CHECK-NEXT: cmpu.l %s0, %s0, (58)0
530 ; CHECK-NEXT: cmov.l.gt %s2, (63)0, %s0
531 ; CHECK-NEXT: cmov.l.eq %s4, %s2, %s1
532 ; CHECK-NEXT: brne.w 0, %s4, .LBB23_2
533 ; CHECK-NEXT: # %bb.1:
536 ; CHECK-NEXT: #NO_APP
537 ; CHECK-NEXT: .LBB23_2:
538 ; CHECK-NEXT: b.l.t (, %s10)
539 %2 = icmp slt i128 %0, 64
540 br i1 %2, label %3, label %4
543 tail call void asm sideeffect "nop", ""()
550 ; Function Attrs: nounwind
551 define void @br_cc_u128_imm(i128 %0) {
552 ; CHECK-LABEL: br_cc_u128_imm:
554 ; CHECK-NEXT: or %s2, 0, (0)1
555 ; CHECK-NEXT: cmps.l %s3, %s1, (0)1
556 ; CHECK-NEXT: or %s4, 0, (0)1
557 ; CHECK-NEXT: cmov.l.ne %s4, (63)0, %s3
558 ; CHECK-NEXT: cmpu.l %s0, %s0, (58)0
559 ; CHECK-NEXT: cmov.l.gt %s2, (63)0, %s0
560 ; CHECK-NEXT: cmov.l.eq %s4, %s2, %s1
561 ; CHECK-NEXT: brne.w 0, %s4, .LBB24_2
562 ; CHECK-NEXT: # %bb.1:
565 ; CHECK-NEXT: #NO_APP
566 ; CHECK-NEXT: .LBB24_2:
567 ; CHECK-NEXT: b.l.t (, %s10)
568 %2 = icmp ult i128 %0, 64
569 br i1 %2, label %3, label %4
572 tail call void asm sideeffect "nop", ""()
579 ; Function Attrs: nounwind
580 define void @br_cc_float_imm(float %0) {
581 ; CHECK-LABEL: br_cc_float_imm:
583 ; CHECK-NEXT: brle.s 0, %s0, .LBB25_2
584 ; CHECK-NEXT: # %bb.1:
587 ; CHECK-NEXT: #NO_APP
588 ; CHECK-NEXT: .LBB25_2:
589 ; CHECK-NEXT: b.l.t (, %s10)
590 %2 = fcmp fast olt float %0, 0.000000e+00
591 br i1 %2, label %3, label %4
594 tail call void asm sideeffect "nop", ""()
601 ; Function Attrs: nounwind
602 define void @br_cc_double_imm(double %0) {
603 ; CHECK-LABEL: br_cc_double_imm:
605 ; CHECK-NEXT: brle.d 0, %s0, .LBB26_2
606 ; CHECK-NEXT: # %bb.1:
609 ; CHECK-NEXT: #NO_APP
610 ; CHECK-NEXT: .LBB26_2:
611 ; CHECK-NEXT: b.l.t (, %s10)
612 %2 = fcmp fast olt double %0, 0.000000e+00
613 br i1 %2, label %3, label %4
616 tail call void asm sideeffect "nop", ""()
623 ; Function Attrs: nounwind
624 define void @br_cc_quad_imm(fp128 %0) {
625 ; CHECK-LABEL: br_cc_quad_imm:
627 ; CHECK-NEXT: lea %s2, .LCPI27_0@lo
628 ; CHECK-NEXT: and %s2, %s2, (32)0
629 ; CHECK-NEXT: lea.sl %s2, .LCPI27_0@hi(, %s2)
630 ; CHECK-NEXT: ld %s4, 8(, %s2)
631 ; CHECK-NEXT: ld %s5, (, %s2)
632 ; CHECK-NEXT: fcmp.q %s0, %s4, %s0
633 ; CHECK-NEXT: brge.d 0, %s0, .LBB27_2
634 ; CHECK-NEXT: # %bb.1:
637 ; CHECK-NEXT: #NO_APP
638 ; CHECK-NEXT: .LBB27_2:
639 ; CHECK-NEXT: b.l.t (, %s10)
640 %2 = fcmp fast olt fp128 %0, 0xL00000000000000000000000000000000
641 br i1 %2, label %3, label %4
644 tail call void asm sideeffect "nop", ""()
651 ; Function Attrs: nounwind
652 define void @br_cc_imm_i1(i1 zeroext %0) {
653 ; CHECK-LABEL: br_cc_imm_i1:
655 ; CHECK-NEXT: breq.w 0, %s0, .LBB28_2
656 ; CHECK-NEXT: # %bb.1:
659 ; CHECK-NEXT: #NO_APP
660 ; CHECK-NEXT: .LBB28_2:
661 ; CHECK-NEXT: b.l.t (, %s10)
662 br i1 %0, label %2, label %3
665 tail call void asm sideeffect "nop", ""()
672 ; Function Attrs: nounwind
673 define void @br_cc_imm_i8(i8 signext %0) {
674 ; CHECK-LABEL: br_cc_imm_i8:
676 ; CHECK-NEXT: brgt.w -9, %s0, .LBB29_2
677 ; CHECK-NEXT: # %bb.1:
680 ; CHECK-NEXT: #NO_APP
681 ; CHECK-NEXT: .LBB29_2:
682 ; CHECK-NEXT: b.l.t (, %s10)
683 %2 = icmp sgt i8 %0, -10
684 br i1 %2, label %3, label %4
687 tail call void asm sideeffect "nop", ""()
694 ; Function Attrs: nounwind
695 define void @br_cc_imm_u8(i8 zeroext %0) {
696 ; CHECK-LABEL: br_cc_imm_u8:
698 ; CHECK-NEXT: cmpu.w %s0, 9, %s0
699 ; CHECK-NEXT: brlt.w 0, %s0, .LBB30_2
700 ; CHECK-NEXT: # %bb.1:
703 ; CHECK-NEXT: #NO_APP
704 ; CHECK-NEXT: .LBB30_2:
705 ; CHECK-NEXT: b.l.t (, %s10)
706 %2 = icmp ugt i8 %0, 8
707 br i1 %2, label %3, label %4
710 tail call void asm sideeffect "nop", ""()
717 ; Function Attrs: nounwind
718 define void @br_cc_imm_i16(i16 signext %0) {
719 ; CHECK-LABEL: br_cc_imm_i16:
721 ; CHECK-NEXT: brgt.w 63, %s0, .LBB31_2
722 ; CHECK-NEXT: # %bb.1:
725 ; CHECK-NEXT: #NO_APP
726 ; CHECK-NEXT: .LBB31_2:
727 ; CHECK-NEXT: b.l.t (, %s10)
728 %2 = icmp sgt i16 %0, 62
729 br i1 %2, label %3, label %4
732 tail call void asm sideeffect "nop", ""()
739 ; Function Attrs: nounwind
740 define void @br_cc_imm_u16(i16 zeroext %0) {
741 ; CHECK-LABEL: br_cc_imm_u16:
743 ; CHECK-NEXT: lea %s1, 64
744 ; CHECK-NEXT: cmpu.w %s0, %s1, %s0
745 ; CHECK-NEXT: brlt.w 0, %s0, .LBB32_2
746 ; CHECK-NEXT: # %bb.1:
749 ; CHECK-NEXT: #NO_APP
750 ; CHECK-NEXT: .LBB32_2:
751 ; CHECK-NEXT: b.l.t (, %s10)
752 %2 = icmp ugt i16 %0, 63
753 br i1 %2, label %3, label %4
756 tail call void asm sideeffect "nop", ""()
763 ; Function Attrs: nounwind
764 define void @br_cc_imm_i32(i32 signext %0) {
765 ; CHECK-LABEL: br_cc_imm_i32:
767 ; CHECK-NEXT: brgt.w -64, %s0, .LBB33_2
768 ; CHECK-NEXT: # %bb.1:
771 ; CHECK-NEXT: #NO_APP
772 ; CHECK-NEXT: .LBB33_2:
773 ; CHECK-NEXT: b.l.t (, %s10)
774 %2 = icmp sgt i32 %0, -65
775 br i1 %2, label %3, label %4
778 tail call void asm sideeffect "nop", ""()
785 ; Function Attrs: nounwind
786 define void @br_cc_imm_u32(i32 zeroext %0) {
787 ; CHECK-LABEL: br_cc_imm_u32:
789 ; CHECK-NEXT: cmpu.w %s0, -64, %s0
790 ; CHECK-NEXT: brlt.w 0, %s0, .LBB34_2
791 ; CHECK-NEXT: # %bb.1:
794 ; CHECK-NEXT: #NO_APP
795 ; CHECK-NEXT: .LBB34_2:
796 ; CHECK-NEXT: b.l.t (, %s10)
797 %2 = icmp ugt i32 %0, -65
798 br i1 %2, label %3, label %4
801 tail call void asm sideeffect "nop", ""()
808 ; Function Attrs: nounwind
809 define void @br_cc_imm_i64(i64 %0) {
810 ; CHECK-LABEL: br_cc_imm_i64:
812 ; CHECK-NEXT: brgt.l -64, %s0, .LBB35_2
813 ; CHECK-NEXT: # %bb.1:
816 ; CHECK-NEXT: #NO_APP
817 ; CHECK-NEXT: .LBB35_2:
818 ; CHECK-NEXT: b.l.t (, %s10)
819 %2 = icmp sgt i64 %0, -65
820 br i1 %2, label %3, label %4
823 tail call void asm sideeffect "nop", ""()
830 ; Function Attrs: nounwind
831 define void @br_cc_imm_u64(i64 %0) {
832 ; CHECK-LABEL: br_cc_imm_u64:
834 ; CHECK-NEXT: cmpu.l %s0, -64, %s0
835 ; CHECK-NEXT: brlt.l 0, %s0, .LBB36_2
836 ; CHECK-NEXT: # %bb.1:
839 ; CHECK-NEXT: #NO_APP
840 ; CHECK-NEXT: .LBB36_2:
841 ; CHECK-NEXT: b.l.t (, %s10)
842 %2 = icmp ugt i64 %0, -65
843 br i1 %2, label %3, label %4
846 tail call void asm sideeffect "nop", ""()
853 ; Function Attrs: nounwind
854 define void @br_cc_imm_i128(i128 %0) {
855 ; CHECK-LABEL: br_cc_imm_i128:
857 ; CHECK-NEXT: cmps.l %s2, %s1, (0)0
858 ; CHECK-NEXT: or %s3, 0, (0)1
859 ; CHECK-NEXT: or %s4, 0, (0)1
860 ; CHECK-NEXT: cmov.l.lt %s4, (63)0, %s2
861 ; CHECK-NEXT: cmpu.l %s0, %s0, (58)1
862 ; CHECK-NEXT: cmov.l.lt %s3, (63)0, %s0
863 ; CHECK-NEXT: cmpu.l %s0, %s1, (0)0
864 ; CHECK-NEXT: cmov.l.eq %s4, %s3, %s0
865 ; CHECK-NEXT: brne.w 0, %s4, .LBB37_2
866 ; CHECK-NEXT: # %bb.1:
869 ; CHECK-NEXT: #NO_APP
870 ; CHECK-NEXT: .LBB37_2:
871 ; CHECK-NEXT: b.l.t (, %s10)
872 %2 = icmp sgt i128 %0, -65
873 br i1 %2, label %3, label %4
876 tail call void asm sideeffect "nop", ""()
883 ; Function Attrs: nounwind
884 define void @br_cc_imm_u128(i128 %0) {
885 ; CHECK-LABEL: br_cc_imm_u128:
887 ; CHECK-NEXT: cmps.l %s2, %s1, (0)0
888 ; CHECK-NEXT: or %s3, 0, (0)1
889 ; CHECK-NEXT: or %s4, 0, (0)1
890 ; CHECK-NEXT: cmov.l.ne %s4, (63)0, %s2
891 ; CHECK-NEXT: cmpu.l %s0, %s0, (58)1
892 ; CHECK-NEXT: cmov.l.lt %s3, (63)0, %s0
893 ; CHECK-NEXT: cmpu.l %s0, %s1, (0)0
894 ; CHECK-NEXT: cmov.l.eq %s4, %s3, %s0
895 ; CHECK-NEXT: brne.w 0, %s4, .LBB38_2
896 ; CHECK-NEXT: # %bb.1:
899 ; CHECK-NEXT: #NO_APP
900 ; CHECK-NEXT: .LBB38_2:
901 ; CHECK-NEXT: b.l.t (, %s10)
902 %2 = icmp ugt i128 %0, -65
903 br i1 %2, label %3, label %4
906 tail call void asm sideeffect "nop", ""()
913 ; Function Attrs: nounwind
914 define void @br_cc_imm_float(float %0) {
915 ; CHECK-LABEL: br_cc_imm_float:
917 ; CHECK-NEXT: brgt.s 0, %s0, .LBB39_2
918 ; CHECK-NEXT: # %bb.1:
921 ; CHECK-NEXT: #NO_APP
922 ; CHECK-NEXT: .LBB39_2:
923 ; CHECK-NEXT: b.l.t (, %s10)
924 %2 = fcmp fast ult float %0, 0.000000e+00
925 br i1 %2, label %4, label %3
928 tail call void asm sideeffect "nop", ""()
935 ; Function Attrs: nounwind
936 define void @br_cc_imm_double(double %0) {
937 ; CHECK-LABEL: br_cc_imm_double:
939 ; CHECK-NEXT: brgt.d 0, %s0, .LBB40_2
940 ; CHECK-NEXT: # %bb.1:
943 ; CHECK-NEXT: #NO_APP
944 ; CHECK-NEXT: .LBB40_2:
945 ; CHECK-NEXT: b.l.t (, %s10)
946 %2 = fcmp fast ult double %0, 0.000000e+00
947 br i1 %2, label %4, label %3
950 tail call void asm sideeffect "nop", ""()
957 ; Function Attrs: nounwind
958 define void @br_cc_imm_quad(fp128 %0) {
959 ; CHECK-LABEL: br_cc_imm_quad:
961 ; CHECK-NEXT: lea %s2, .LCPI41_0@lo
962 ; CHECK-NEXT: and %s2, %s2, (32)0
963 ; CHECK-NEXT: lea.sl %s2, .LCPI41_0@hi(, %s2)
964 ; CHECK-NEXT: ld %s4, 8(, %s2)
965 ; CHECK-NEXT: ld %s5, (, %s2)
966 ; CHECK-NEXT: fcmp.q %s0, %s4, %s0
967 ; CHECK-NEXT: brlt.d 0, %s0, .LBB41_2
968 ; CHECK-NEXT: # %bb.1:
971 ; CHECK-NEXT: #NO_APP
972 ; CHECK-NEXT: .LBB41_2:
973 ; CHECK-NEXT: b.l.t (, %s10)
974 %2 = fcmp fast ult fp128 %0, 0xL00000000000000000000000000000000
975 br i1 %2, label %4, label %3
978 tail call void asm sideeffect "nop", ""()