1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=mips-img-linux-gnu -mcpu=mips32r6 -o - %s -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=R6
3 # RUN: llc -mtriple=mips-img-linux-gnu -mcpu=mips32r6 -o - %s -start-before mips-delay-slot-filler -stop-after mips-branch-expansion -relocation-model=pic | FileCheck %s --check-prefix=PIC
5 # Test the long branch expansion of various branches
8 define void @expand_BEQC(i1 %a) {
9 br i1 %a, label %iftrue, label %tail
12 call void asm sideeffect ".space 131068", ""()
19 define void @expand_BNEC(i1 %a) {
20 br i1 %a, label %iftrue, label %tail
23 call void asm sideeffect ".space 131068", ""()
30 define void @expand_BGEC(i1 %a) {
31 br i1 %a, label %iftrue, label %tail
34 call void asm sideeffect ".space 131068", ""()
41 define void @expand_BGEUC(i1 %a) {
42 br i1 %a, label %iftrue, label %tail
45 call void asm sideeffect ".space 131068", ""()
52 define void @expand_BGEZC(i1 %a) {
53 br i1 %a, label %iftrue, label %tail
56 call void asm sideeffect ".space 131068", ""()
63 define void @expand_BGTZC(i1 %a) {
64 br i1 %a, label %iftrue, label %tail
67 call void asm sideeffect ".space 131068", ""()
74 define void @expand_BLEZC(i1 %a) {
75 br i1 %a, label %iftrue, label %tail
78 call void asm sideeffect ".space 131068", ""()
85 define void @expand_BLTC(i1 %a) {
86 br i1 %a, label %iftrue, label %tail
89 call void asm sideeffect ".space 131068", ""()
96 define void @expand_BLTUC(i1 %a) {
97 br i1 %a, label %iftrue, label %tail
100 call void asm sideeffect ".space 131068", ""()
107 define void @expand_BLTZC(i1 %a) {
108 br i1 %a, label %iftrue, label %tail
111 call void asm sideeffect ".space 131068", ""()
118 define void @expand_BEQZC(i1 %a) {
119 br i1 %a, label %iftrue, label %tail
122 call void asm sideeffect ".space 8388608", ""()
129 define void @expand_BNEZC(i1 %a) {
130 br i1 %a, label %iftrue, label %tail
133 call void asm sideeffect ".space 8388608", ""()
145 exposesReturnsTwice: false
147 regBankSelected: false
150 tracksRegLiveness: true
153 - { reg: '$a0', virtual-reg: '' }
155 isFrameAddressTaken: false
156 isReturnAddressTaken: false
166 hasOpaqueSPAdjustment: false
168 hasMustTailInVarArgFunc: false
176 ; R6-LABEL: name: expand_BEQC
177 ; R6: bb.0 (%ir-block.0):
178 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
179 ; R6: renamable $at = ANDi killed renamable $a0, 1
180 ; R6: BNEC $at, $zero, %bb.2, implicit-def $at
181 ; R6: bb.1 (%ir-block.0):
182 ; R6: successors: %bb.3(0x80000000)
185 ; R6: successors: %bb.3(0x80000000)
186 ; R6: INLINEASM &".space 131068", 1
188 ; R6: JIC undef $ra, 0, implicit-def $at
189 ; PIC-LABEL: name: expand_BEQC
190 ; PIC: bb.0 (%ir-block.0):
191 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
192 ; PIC: renamable $at = ANDi killed renamable $a0, 1
193 ; PIC: BNEC $at, $zero, %bb.3, implicit-def $at
194 ; PIC: bb.1 (%ir-block.0):
195 ; PIC: successors: %bb.2(0x80000000)
196 ; PIC: $sp = ADDiu $sp, -8
197 ; PIC: SW $ra, $sp, 0
198 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
199 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
200 ; PIC: BALC %bb.2, implicit-def $ra
201 ; PIC: bb.2 (%ir-block.0):
202 ; PIC: successors: %bb.4(0x80000000)
203 ; PIC: $at = ADDu $ra, $at
204 ; PIC: $ra = LW $sp, 0
205 ; PIC: $sp = ADDiu $sp, 8
206 ; PIC: JIC $at, 0, implicit-def $at
208 ; PIC: successors: %bb.4(0x80000000)
209 ; PIC: INLINEASM &".space 131068", 1
211 ; PIC: JIC undef $ra, 0, implicit-def $at
213 successors: %bb.1(0x40000000), %bb.2(0x40000000)
216 renamable $at = ANDi killed renamable $a0, 1
217 BEQC killed renamable $at, $zero, %bb.2, implicit-def $at
220 successors: %bb.2(0x80000000)
222 INLINEASM &".space 131068", 1
225 PseudoReturn undef $ra
232 exposesReturnsTwice: false
234 regBankSelected: false
237 tracksRegLiveness: true
240 - { reg: '$a0', virtual-reg: '' }
242 isFrameAddressTaken: false
243 isReturnAddressTaken: false
253 hasOpaqueSPAdjustment: false
255 hasMustTailInVarArgFunc: false
263 ; R6-LABEL: name: expand_BNEC
264 ; R6: bb.0 (%ir-block.0):
265 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
266 ; R6: renamable $at = ANDi killed renamable $a0, 1
267 ; R6: BEQC $at, $zero, %bb.2, implicit-def $at
268 ; R6: bb.1 (%ir-block.0):
269 ; R6: successors: %bb.3(0x80000000)
272 ; R6: successors: %bb.3(0x80000000)
273 ; R6: INLINEASM &".space 131068", 1
275 ; R6: JIC undef $ra, 0, implicit-def $at
276 ; PIC-LABEL: name: expand_BNEC
277 ; PIC: bb.0 (%ir-block.0):
278 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
279 ; PIC: renamable $at = ANDi killed renamable $a0, 1
280 ; PIC: BEQC $at, $zero, %bb.3, implicit-def $at
281 ; PIC: bb.1 (%ir-block.0):
282 ; PIC: successors: %bb.2(0x80000000)
283 ; PIC: $sp = ADDiu $sp, -8
284 ; PIC: SW $ra, $sp, 0
285 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
286 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
287 ; PIC: BALC %bb.2, implicit-def $ra
288 ; PIC: bb.2 (%ir-block.0):
289 ; PIC: successors: %bb.4(0x80000000)
290 ; PIC: $at = ADDu $ra, $at
291 ; PIC: $ra = LW $sp, 0
292 ; PIC: $sp = ADDiu $sp, 8
293 ; PIC: JIC $at, 0, implicit-def $at
295 ; PIC: successors: %bb.4(0x80000000)
296 ; PIC: INLINEASM &".space 131068", 1
298 ; PIC: JIC undef $ra, 0, implicit-def $at
300 successors: %bb.1(0x40000000), %bb.2(0x40000000)
303 renamable $at = ANDi killed renamable $a0, 1
304 BNEC killed renamable $at, $zero, %bb.2, implicit-def $at
307 successors: %bb.2(0x80000000)
309 INLINEASM &".space 131068", 1
312 PseudoReturn undef $ra
319 exposesReturnsTwice: false
321 regBankSelected: false
324 tracksRegLiveness: true
327 - { reg: '$a0', virtual-reg: '' }
329 isFrameAddressTaken: false
330 isReturnAddressTaken: false
340 hasOpaqueSPAdjustment: false
342 hasMustTailInVarArgFunc: false
350 ; R6-LABEL: name: expand_BGEC
351 ; R6: bb.0 (%ir-block.0):
352 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
353 ; R6: renamable $at = ANDi killed renamable $a0, 1
354 ; R6: BLTC $at, $zero, %bb.2, implicit-def $at
355 ; R6: bb.1 (%ir-block.0):
356 ; R6: successors: %bb.3(0x80000000)
359 ; R6: successors: %bb.3(0x80000000)
360 ; R6: INLINEASM &".space 131068", 1
362 ; R6: JIC undef $ra, 0, implicit-def $at
363 ; PIC-LABEL: name: expand_BGEC
364 ; PIC: bb.0 (%ir-block.0):
365 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
366 ; PIC: renamable $at = ANDi killed renamable $a0, 1
367 ; PIC: BLTC $at, $zero, %bb.3, implicit-def $at
368 ; PIC: bb.1 (%ir-block.0):
369 ; PIC: successors: %bb.2(0x80000000)
370 ; PIC: $sp = ADDiu $sp, -8
371 ; PIC: SW $ra, $sp, 0
372 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
373 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
374 ; PIC: BALC %bb.2, implicit-def $ra
375 ; PIC: bb.2 (%ir-block.0):
376 ; PIC: successors: %bb.4(0x80000000)
377 ; PIC: $at = ADDu $ra, $at
378 ; PIC: $ra = LW $sp, 0
379 ; PIC: $sp = ADDiu $sp, 8
380 ; PIC: JIC $at, 0, implicit-def $at
382 ; PIC: successors: %bb.4(0x80000000)
383 ; PIC: INLINEASM &".space 131068", 1
385 ; PIC: JIC undef $ra, 0, implicit-def $at
387 successors: %bb.1(0x40000000), %bb.2(0x40000000)
390 renamable $at = ANDi killed renamable $a0, 1
391 BGEC killed renamable $at, $zero, %bb.2, implicit-def $at
394 successors: %bb.2(0x80000000)
396 INLINEASM &".space 131068", 1
399 PseudoReturn undef $ra
406 exposesReturnsTwice: false
408 regBankSelected: false
411 tracksRegLiveness: true
414 - { reg: '$a0', virtual-reg: '' }
416 isFrameAddressTaken: false
417 isReturnAddressTaken: false
427 hasOpaqueSPAdjustment: false
429 hasMustTailInVarArgFunc: false
437 ; R6-LABEL: name: expand_BGEUC
438 ; R6: bb.0 (%ir-block.0):
439 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
440 ; R6: renamable $at = ANDi killed renamable $a0, 1
441 ; R6: BLTUC $at, $zero, %bb.2, implicit-def $at
442 ; R6: bb.1 (%ir-block.0):
443 ; R6: successors: %bb.3(0x80000000)
446 ; R6: successors: %bb.3(0x80000000)
447 ; R6: INLINEASM &".space 131068", 1
449 ; R6: JIC undef $ra, 0, implicit-def $at
450 ; PIC-LABEL: name: expand_BGEUC
451 ; PIC: bb.0 (%ir-block.0):
452 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
453 ; PIC: renamable $at = ANDi killed renamable $a0, 1
454 ; PIC: BLTUC $at, $zero, %bb.3, implicit-def $at
455 ; PIC: bb.1 (%ir-block.0):
456 ; PIC: successors: %bb.2(0x80000000)
457 ; PIC: $sp = ADDiu $sp, -8
458 ; PIC: SW $ra, $sp, 0
459 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
460 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
461 ; PIC: BALC %bb.2, implicit-def $ra
462 ; PIC: bb.2 (%ir-block.0):
463 ; PIC: successors: %bb.4(0x80000000)
464 ; PIC: $at = ADDu $ra, $at
465 ; PIC: $ra = LW $sp, 0
466 ; PIC: $sp = ADDiu $sp, 8
467 ; PIC: JIC $at, 0, implicit-def $at
469 ; PIC: successors: %bb.4(0x80000000)
470 ; PIC: INLINEASM &".space 131068", 1
472 ; PIC: JIC undef $ra, 0, implicit-def $at
474 successors: %bb.1(0x40000000), %bb.2(0x40000000)
477 renamable $at = ANDi killed renamable $a0, 1
478 BGEUC killed renamable $at, $zero, %bb.2, implicit-def $at
481 successors: %bb.2(0x80000000)
483 INLINEASM &".space 131068", 1
486 PseudoReturn undef $ra
493 exposesReturnsTwice: false
495 regBankSelected: false
498 tracksRegLiveness: true
501 - { reg: '$a0', virtual-reg: '' }
503 isFrameAddressTaken: false
504 isReturnAddressTaken: false
514 hasOpaqueSPAdjustment: false
516 hasMustTailInVarArgFunc: false
524 ; R6-LABEL: name: expand_BGEZC
525 ; R6: bb.0 (%ir-block.0):
526 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
527 ; R6: renamable $at = ANDi killed renamable $a0, 1
528 ; R6: BLTZC $at, %bb.2, implicit-def $at
529 ; R6: bb.1 (%ir-block.0):
530 ; R6: successors: %bb.3(0x80000000)
533 ; R6: successors: %bb.3(0x80000000)
534 ; R6: INLINEASM &".space 131068", 1
536 ; R6: JIC undef $ra, 0, implicit-def $at
537 ; PIC-LABEL: name: expand_BGEZC
538 ; PIC: bb.0 (%ir-block.0):
539 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
540 ; PIC: renamable $at = ANDi killed renamable $a0, 1
541 ; PIC: BLTZC $at, %bb.3, implicit-def $at
542 ; PIC: bb.1 (%ir-block.0):
543 ; PIC: successors: %bb.2(0x80000000)
544 ; PIC: $sp = ADDiu $sp, -8
545 ; PIC: SW $ra, $sp, 0
546 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
547 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
548 ; PIC: BALC %bb.2, implicit-def $ra
549 ; PIC: bb.2 (%ir-block.0):
550 ; PIC: successors: %bb.4(0x80000000)
551 ; PIC: $at = ADDu $ra, $at
552 ; PIC: $ra = LW $sp, 0
553 ; PIC: $sp = ADDiu $sp, 8
554 ; PIC: JIC $at, 0, implicit-def $at
556 ; PIC: successors: %bb.4(0x80000000)
557 ; PIC: INLINEASM &".space 131068", 1
559 ; PIC: JIC undef $ra, 0, implicit-def $at
561 successors: %bb.1(0x40000000), %bb.2(0x40000000)
564 renamable $at = ANDi killed renamable $a0, 1
565 BGEZC killed renamable $at, %bb.2, implicit-def $at
568 successors: %bb.2(0x80000000)
570 INLINEASM &".space 131068", 1
573 PseudoReturn undef $ra
580 exposesReturnsTwice: false
582 regBankSelected: false
585 tracksRegLiveness: true
588 - { reg: '$a0', virtual-reg: '' }
590 isFrameAddressTaken: false
591 isReturnAddressTaken: false
601 hasOpaqueSPAdjustment: false
603 hasMustTailInVarArgFunc: false
611 ; R6-LABEL: name: expand_BGTZC
612 ; R6: bb.0 (%ir-block.0):
613 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
614 ; R6: renamable $at = ANDi killed renamable $a0, 1
615 ; R6: BLEZC $at, %bb.2, implicit-def $at
616 ; R6: bb.1 (%ir-block.0):
617 ; R6: successors: %bb.3(0x80000000)
620 ; R6: successors: %bb.3(0x80000000)
621 ; R6: INLINEASM &".space 131068", 1
623 ; R6: JIC undef $ra, 0, implicit-def $at
624 ; PIC-LABEL: name: expand_BGTZC
625 ; PIC: bb.0 (%ir-block.0):
626 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
627 ; PIC: renamable $at = ANDi killed renamable $a0, 1
628 ; PIC: BLEZC $at, %bb.3, implicit-def $at
629 ; PIC: bb.1 (%ir-block.0):
630 ; PIC: successors: %bb.2(0x80000000)
631 ; PIC: $sp = ADDiu $sp, -8
632 ; PIC: SW $ra, $sp, 0
633 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
634 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
635 ; PIC: BALC %bb.2, implicit-def $ra
636 ; PIC: bb.2 (%ir-block.0):
637 ; PIC: successors: %bb.4(0x80000000)
638 ; PIC: $at = ADDu $ra, $at
639 ; PIC: $ra = LW $sp, 0
640 ; PIC: $sp = ADDiu $sp, 8
641 ; PIC: JIC $at, 0, implicit-def $at
643 ; PIC: successors: %bb.4(0x80000000)
644 ; PIC: INLINEASM &".space 131068", 1
646 ; PIC: JIC undef $ra, 0, implicit-def $at
648 successors: %bb.1(0x40000000), %bb.2(0x40000000)
651 renamable $at = ANDi killed renamable $a0, 1
652 BGTZC killed renamable $at, %bb.2, implicit-def $at
655 successors: %bb.2(0x80000000)
657 INLINEASM &".space 131068", 1
660 PseudoReturn undef $ra
667 exposesReturnsTwice: false
669 regBankSelected: false
672 tracksRegLiveness: true
675 - { reg: '$a0', virtual-reg: '' }
677 isFrameAddressTaken: false
678 isReturnAddressTaken: false
688 hasOpaqueSPAdjustment: false
690 hasMustTailInVarArgFunc: false
698 ; R6-LABEL: name: expand_BLEZC
699 ; R6: bb.0 (%ir-block.0):
700 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
701 ; R6: renamable $at = ANDi killed renamable $a0, 1
702 ; R6: BGTZC $at, %bb.2, implicit-def $at
703 ; R6: bb.1 (%ir-block.0):
704 ; R6: successors: %bb.3(0x80000000)
707 ; R6: successors: %bb.3(0x80000000)
708 ; R6: INLINEASM &".space 131068", 1
710 ; R6: JIC undef $ra, 0, implicit-def $at
711 ; PIC-LABEL: name: expand_BLEZC
712 ; PIC: bb.0 (%ir-block.0):
713 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
714 ; PIC: renamable $at = ANDi killed renamable $a0, 1
715 ; PIC: BGTZC $at, %bb.3, implicit-def $at
716 ; PIC: bb.1 (%ir-block.0):
717 ; PIC: successors: %bb.2(0x80000000)
718 ; PIC: $sp = ADDiu $sp, -8
719 ; PIC: SW $ra, $sp, 0
720 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
721 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
722 ; PIC: BALC %bb.2, implicit-def $ra
723 ; PIC: bb.2 (%ir-block.0):
724 ; PIC: successors: %bb.4(0x80000000)
725 ; PIC: $at = ADDu $ra, $at
726 ; PIC: $ra = LW $sp, 0
727 ; PIC: $sp = ADDiu $sp, 8
728 ; PIC: JIC $at, 0, implicit-def $at
730 ; PIC: successors: %bb.4(0x80000000)
731 ; PIC: INLINEASM &".space 131068", 1
733 ; PIC: JIC undef $ra, 0, implicit-def $at
735 successors: %bb.1(0x40000000), %bb.2(0x40000000)
738 renamable $at = ANDi killed renamable $a0, 1
739 BLEZC killed renamable $at, %bb.2, implicit-def $at
742 successors: %bb.2(0x80000000)
744 INLINEASM &".space 131068", 1
747 PseudoReturn undef $ra
754 exposesReturnsTwice: false
756 regBankSelected: false
759 tracksRegLiveness: true
762 - { reg: '$a0', virtual-reg: '' }
764 isFrameAddressTaken: false
765 isReturnAddressTaken: false
775 hasOpaqueSPAdjustment: false
777 hasMustTailInVarArgFunc: false
785 ; R6-LABEL: name: expand_BLTC
786 ; R6: bb.0 (%ir-block.0):
787 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
788 ; R6: renamable $at = ANDi killed renamable $a0, 1
789 ; R6: BGEC $at, $zero, %bb.2, implicit-def $at
790 ; R6: bb.1 (%ir-block.0):
791 ; R6: successors: %bb.3(0x80000000)
794 ; R6: successors: %bb.3(0x80000000)
795 ; R6: INLINEASM &".space 131068", 1
797 ; R6: JIC undef $ra, 0, implicit-def $at
798 ; PIC-LABEL: name: expand_BLTC
799 ; PIC: bb.0 (%ir-block.0):
800 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
801 ; PIC: renamable $at = ANDi killed renamable $a0, 1
802 ; PIC: BGEC $at, $zero, %bb.3, implicit-def $at
803 ; PIC: bb.1 (%ir-block.0):
804 ; PIC: successors: %bb.2(0x80000000)
805 ; PIC: $sp = ADDiu $sp, -8
806 ; PIC: SW $ra, $sp, 0
807 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
808 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
809 ; PIC: BALC %bb.2, implicit-def $ra
810 ; PIC: bb.2 (%ir-block.0):
811 ; PIC: successors: %bb.4(0x80000000)
812 ; PIC: $at = ADDu $ra, $at
813 ; PIC: $ra = LW $sp, 0
814 ; PIC: $sp = ADDiu $sp, 8
815 ; PIC: JIC $at, 0, implicit-def $at
817 ; PIC: successors: %bb.4(0x80000000)
818 ; PIC: INLINEASM &".space 131068", 1
820 ; PIC: JIC undef $ra, 0, implicit-def $at
822 successors: %bb.1(0x40000000), %bb.2(0x40000000)
825 renamable $at = ANDi killed renamable $a0, 1
826 BLTC killed renamable $at, $zero, %bb.2, implicit-def $at
829 successors: %bb.2(0x80000000)
831 INLINEASM &".space 131068", 1
834 PseudoReturn undef $ra
841 exposesReturnsTwice: false
843 regBankSelected: false
846 tracksRegLiveness: true
849 - { reg: '$a0', virtual-reg: '' }
851 isFrameAddressTaken: false
852 isReturnAddressTaken: false
862 hasOpaqueSPAdjustment: false
864 hasMustTailInVarArgFunc: false
872 ; R6-LABEL: name: expand_BLTUC
873 ; R6: bb.0 (%ir-block.0):
874 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
875 ; R6: renamable $at = ANDi killed renamable $a0, 1
876 ; R6: BGEUC $at, $zero, %bb.2, implicit-def $at
877 ; R6: bb.1 (%ir-block.0):
878 ; R6: successors: %bb.3(0x80000000)
881 ; R6: successors: %bb.3(0x80000000)
882 ; R6: INLINEASM &".space 131068", 1
884 ; R6: JIC undef $ra, 0, implicit-def $at
885 ; PIC-LABEL: name: expand_BLTUC
886 ; PIC: bb.0 (%ir-block.0):
887 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
888 ; PIC: renamable $at = ANDi killed renamable $a0, 1
889 ; PIC: BGEUC $at, $zero, %bb.3, implicit-def $at
890 ; PIC: bb.1 (%ir-block.0):
891 ; PIC: successors: %bb.2(0x80000000)
892 ; PIC: $sp = ADDiu $sp, -8
893 ; PIC: SW $ra, $sp, 0
894 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
895 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
896 ; PIC: BALC %bb.2, implicit-def $ra
897 ; PIC: bb.2 (%ir-block.0):
898 ; PIC: successors: %bb.4(0x80000000)
899 ; PIC: $at = ADDu $ra, $at
900 ; PIC: $ra = LW $sp, 0
901 ; PIC: $sp = ADDiu $sp, 8
902 ; PIC: JIC $at, 0, implicit-def $at
904 ; PIC: successors: %bb.4(0x80000000)
905 ; PIC: INLINEASM &".space 131068", 1
907 ; PIC: JIC undef $ra, 0, implicit-def $at
909 successors: %bb.1(0x40000000), %bb.2(0x40000000)
912 renamable $at = ANDi killed renamable $a0, 1
913 BLTUC killed renamable $at, $zero, %bb.2, implicit-def $at
916 successors: %bb.2(0x80000000)
918 INLINEASM &".space 131068", 1
921 PseudoReturn undef $ra
928 exposesReturnsTwice: false
930 regBankSelected: false
933 tracksRegLiveness: true
936 - { reg: '$a0', virtual-reg: '' }
938 isFrameAddressTaken: false
939 isReturnAddressTaken: false
949 hasOpaqueSPAdjustment: false
951 hasMustTailInVarArgFunc: false
959 ; R6-LABEL: name: expand_BLTZC
960 ; R6: bb.0 (%ir-block.0):
961 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
962 ; R6: renamable $at = ANDi killed renamable $a0, 1
963 ; R6: BGEZC $at, %bb.2, implicit-def $at
964 ; R6: bb.1 (%ir-block.0):
965 ; R6: successors: %bb.3(0x80000000)
968 ; R6: successors: %bb.3(0x80000000)
969 ; R6: INLINEASM &".space 131068", 1
971 ; R6: JIC undef $ra, 0, implicit-def $at
972 ; PIC-LABEL: name: expand_BLTZC
973 ; PIC: bb.0 (%ir-block.0):
974 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
975 ; PIC: renamable $at = ANDi killed renamable $a0, 1
976 ; PIC: BGEZC $at, %bb.3, implicit-def $at
977 ; PIC: bb.1 (%ir-block.0):
978 ; PIC: successors: %bb.2(0x80000000)
979 ; PIC: $sp = ADDiu $sp, -8
980 ; PIC: SW $ra, $sp, 0
981 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
982 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
983 ; PIC: BALC %bb.2, implicit-def $ra
984 ; PIC: bb.2 (%ir-block.0):
985 ; PIC: successors: %bb.4(0x80000000)
986 ; PIC: $at = ADDu $ra, $at
987 ; PIC: $ra = LW $sp, 0
988 ; PIC: $sp = ADDiu $sp, 8
989 ; PIC: JIC $at, 0, implicit-def $at
991 ; PIC: successors: %bb.4(0x80000000)
992 ; PIC: INLINEASM &".space 131068", 1
994 ; PIC: JIC undef $ra, 0, implicit-def $at
996 successors: %bb.1(0x40000000), %bb.2(0x40000000)
999 renamable $at = ANDi killed renamable $a0, 1
1000 BLTZC killed renamable $at, %bb.2, implicit-def $at
1003 successors: %bb.2(0x80000000)
1005 INLINEASM &".space 131068", 1
1008 PseudoReturn undef $ra
1015 exposesReturnsTwice: false
1017 regBankSelected: false
1020 tracksRegLiveness: true
1023 - { reg: '$a0', virtual-reg: '' }
1025 isFrameAddressTaken: false
1026 isReturnAddressTaken: false
1028 hasPatchPoint: false
1036 hasOpaqueSPAdjustment: false
1038 hasMustTailInVarArgFunc: false
1046 ; R6-LABEL: name: expand_BEQZC
1047 ; R6: bb.0 (%ir-block.0):
1048 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
1049 ; R6: renamable $at = ANDi killed renamable $a0, 1
1050 ; R6: BNEZC $at, %bb.2, implicit-def $at
1051 ; R6: bb.1 (%ir-block.0):
1052 ; R6: successors: %bb.3(0x80000000)
1055 ; R6: successors: %bb.3(0x80000000)
1056 ; R6: INLINEASM &".space 8388608", 1
1058 ; R6: JIC undef $ra, 0, implicit-def $at
1059 ; PIC-LABEL: name: expand_BEQZC
1060 ; PIC: bb.0 (%ir-block.0):
1061 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
1062 ; PIC: renamable $at = ANDi killed renamable $a0, 1
1063 ; PIC: BNEZC $at, %bb.3, implicit-def $at
1064 ; PIC: bb.1 (%ir-block.0):
1065 ; PIC: successors: %bb.2(0x80000000)
1066 ; PIC: $sp = ADDiu $sp, -8
1067 ; PIC: SW $ra, $sp, 0
1068 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
1069 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
1070 ; PIC: BALC %bb.2, implicit-def $ra
1071 ; PIC: bb.2 (%ir-block.0):
1072 ; PIC: successors: %bb.4(0x80000000)
1073 ; PIC: $at = ADDu $ra, $at
1074 ; PIC: $ra = LW $sp, 0
1075 ; PIC: $sp = ADDiu $sp, 8
1076 ; PIC: JIC $at, 0, implicit-def $at
1078 ; PIC: successors: %bb.4(0x80000000)
1079 ; PIC: INLINEASM &".space 8388608", 1
1081 ; PIC: JIC undef $ra, 0, implicit-def $at
1083 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1086 renamable $at = ANDi killed renamable $a0, 1
1087 BEQZC killed renamable $at, %bb.2, implicit-def $at
1090 successors: %bb.2(0x80000000)
1092 INLINEASM &".space 8388608", 1
1095 PseudoReturn undef $ra
1102 exposesReturnsTwice: false
1104 regBankSelected: false
1107 tracksRegLiveness: true
1110 - { reg: '$a0', virtual-reg: '' }
1112 isFrameAddressTaken: false
1113 isReturnAddressTaken: false
1115 hasPatchPoint: false
1123 hasOpaqueSPAdjustment: false
1125 hasMustTailInVarArgFunc: false
1133 ; R6-LABEL: name: expand_BNEZC
1134 ; R6: bb.0 (%ir-block.0):
1135 ; R6: successors: %bb.2(0x40000000), %bb.1(0x40000000)
1136 ; R6: renamable $at = ANDi killed renamable $a0, 1
1137 ; R6: BEQZC $at, %bb.2, implicit-def $at
1138 ; R6: bb.1 (%ir-block.0):
1139 ; R6: successors: %bb.3(0x80000000)
1142 ; R6: successors: %bb.3(0x80000000)
1143 ; R6: INLINEASM &".space 8388608", 1
1145 ; R6: JIC undef $ra, 0, implicit-def $at
1146 ; PIC-LABEL: name: expand_BNEZC
1147 ; PIC: bb.0 (%ir-block.0):
1148 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)
1149 ; PIC: renamable $at = ANDi killed renamable $a0, 1
1150 ; PIC: BEQZC $at, %bb.3, implicit-def $at
1151 ; PIC: bb.1 (%ir-block.0):
1152 ; PIC: successors: %bb.2(0x80000000)
1153 ; PIC: $sp = ADDiu $sp, -8
1154 ; PIC: SW $ra, $sp, 0
1155 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
1156 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
1157 ; PIC: BALC %bb.2, implicit-def $ra
1158 ; PIC: bb.2 (%ir-block.0):
1159 ; PIC: successors: %bb.4(0x80000000)
1160 ; PIC: $at = ADDu $ra, $at
1161 ; PIC: $ra = LW $sp, 0
1162 ; PIC: $sp = ADDiu $sp, 8
1163 ; PIC: JIC $at, 0, implicit-def $at
1165 ; PIC: successors: %bb.4(0x80000000)
1166 ; PIC: INLINEASM &".space 8388608", 1
1168 ; PIC: JIC undef $ra, 0, implicit-def $at
1170 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1173 renamable $at = ANDi killed renamable $a0, 1
1174 BNEZC killed renamable $at, %bb.2, implicit-def $at
1177 successors: %bb.2(0x80000000)
1179 INLINEASM &".space 8388608", 1
1182 PseudoReturn undef $ra