693 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=mips64-mti-linux-gnu %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MIPS643# RUN: llc -mtriple=mips64-mti-linux-gnu %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion -relocation-model=pic | FileCheck %s --check-prefix=PIC4 5# Test the long branch expansion of various branches6 7--- |8 define i64 @expand_BEQ64(i64 %a, i64 %b) {9 %cmp = icmp eq i64 %a, %b10 br i1 %cmp, label %iftrue, label %tail11 12 iftrue:13 call void asm sideeffect ".space 131068", ""()14 ret i64 115 16 tail:17 ret i64 018 }19 20 define i64 @expand_BNE64(i64 %a, i64 %b) {21 %cmp = icmp eq i64 %a, %b22 br i1 %cmp, label %iftrue, label %tail23 24 iftrue:25 call void asm sideeffect ".space 131068", ""()26 ret i64 127 28 tail:29 ret i64 030 }31 32 define i64 @expand_BGEZ64(i64 %a, i64 %b) {33 %cmp = icmp eq i64 %a, %b34 br i1 %cmp, label %iftrue, label %tail35 36 iftrue:37 call void asm sideeffect ".space 131068", ""()38 ret i64 139 40 tail:41 ret i64 042 }43 44 define i64 @expand_BGTZ64(i64 %a, i64 %b) {45 %cmp = icmp eq i64 %a, %b46 br i1 %cmp, label %iftrue, label %tail47 48 iftrue:49 call void asm sideeffect ".space 131068", ""()50 ret i64 151 52 tail:53 ret i64 054 }55 56 define i64 @expand_BLEZ64(i64 %a, i64 %b) {57 %cmp = icmp eq i64 %a, %b58 br i1 %cmp, label %iftrue, label %tail59 60 iftrue:61 call void asm sideeffect ".space 131068", ""()62 ret i64 163 64 tail:65 ret i64 066 }67 68 define i64 @expand_BLTZ64(i64 %a, i64 %b) {69 %cmp = icmp eq i64 %a, %b70 br i1 %cmp, label %iftrue, label %tail71 72 iftrue:73 call void asm sideeffect ".space 131068", ""()74 ret i64 175 76 tail:77 ret i64 078 }79 80...81---82 83name: expand_BEQ6484alignment: 885exposesReturnsTwice: false86legalized: false87regBankSelected: false88selected: false89failedISel: false90tracksRegLiveness: true91registers:92liveins:93 - { reg: '$a0_64', virtual-reg: '' }94frameInfo:95 isFrameAddressTaken: false96 isReturnAddressTaken: false97 hasStackMap: false98 hasPatchPoint: false99 stackSize: 0100 offsetAdjustment: 0101 maxAlignment: 1102 adjustsStack: false103 hasCalls: false104 stackProtector: ''105 maxCallFrameSize: 0106 hasOpaqueSPAdjustment: false107 hasVAStart: false108 hasMustTailInVarArgFunc: false109 localFrameSize: 0110 savePoint: []111 restorePoint: []112fixedStack:113stack:114constants:115body: |116 ; MIPS64-LABEL: name: expand_BEQ64117 ; MIPS64: bb.0 (%ir-block.0):118 ; MIPS64: successors: %bb.2(0x40000000), %bb.1(0x40000000)119 ; MIPS64: BNE64 $a0_64, $zero_64, %bb.2, implicit-def $at {120 ; MIPS64: $zero = SLL $zero, 0121 ; MIPS64: }122 ; MIPS64: bb.1 (%ir-block.0):123 ; MIPS64: successors: %bb.3(0x80000000)124 ; MIPS64: J %bb.3, implicit-def $at {125 ; MIPS64: $zero = SLL $zero, 0126 ; MIPS64: }127 ; MIPS64: bb.2.iftrue:128 ; MIPS64: INLINEASM &".space 131068", 1129 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {130 ; MIPS64: $v0_64 = DADDiu $zero_64, 1131 ; MIPS64: }132 ; MIPS64: bb.3.tail:133 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {134 ; MIPS64: $v0_64 = DADDiu $zero_64, 0135 ; MIPS64: }136 ; PIC-LABEL: name: expand_BEQ64137 ; PIC: bb.0 (%ir-block.0):138 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)139 ; PIC: BNE64 $a0_64, $zero_64, %bb.3, implicit-def $at {140 ; PIC: $zero = SLL $zero, 0141 ; PIC: }142 ; PIC: bb.1 (%ir-block.0):143 ; PIC: successors: %bb.2(0x80000000)144 ; PIC: $sp_64 = DADDiu $sp_64, -16145 ; PIC: SD $ra_64, $sp_64, 0146 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2147 ; PIC: $at_64 = DSLL $at_64, 16148 ; PIC: BAL_BR %bb.2, implicit-def $ra {149 ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2150 ; PIC: }151 ; PIC: bb.2 (%ir-block.0):152 ; PIC: successors: %bb.4(0x80000000)153 ; PIC: $at_64 = DADDu $ra_64, $at_64154 ; PIC: $ra_64 = LD $sp_64, 0155 ; PIC: JR64 $at_64 {156 ; PIC: $sp_64 = DADDiu $sp_64, 16157 ; PIC: }158 ; PIC: bb.3.iftrue:159 ; PIC: INLINEASM &".space 131068", 1160 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {161 ; PIC: $v0_64 = DADDiu $zero_64, 1162 ; PIC: }163 ; PIC: bb.4.tail:164 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {165 ; PIC: $v0_64 = DADDiu $zero_64, 0166 ; PIC: }167 bb.0 (%ir-block.0):168 successors: %bb.1(0x40000000), %bb.2(0x40000000)169 liveins: $a0_64170 171 BEQ64 killed renamable $a0_64, $zero_64, %bb.2, implicit-def $at172 173 bb.1.iftrue:174 INLINEASM &".space 131068", 1175 $v0_64 = DADDiu $zero_64, 1176 PseudoReturn64 undef $ra_64, implicit killed $v0_64177 178 bb.2.tail:179 $v0_64 = DADDiu $zero_64, 0180 PseudoReturn64 undef $ra_64, implicit killed $v0_64181 182...183---184 185name: expand_BNE64186alignment: 8187exposesReturnsTwice: false188legalized: false189regBankSelected: false190selected: false191failedISel: false192tracksRegLiveness: true193registers:194liveins:195 - { reg: '$a0_64', virtual-reg: '' }196frameInfo:197 isFrameAddressTaken: false198 isReturnAddressTaken: false199 hasStackMap: false200 hasPatchPoint: false201 stackSize: 0202 offsetAdjustment: 0203 maxAlignment: 1204 adjustsStack: false205 hasCalls: false206 stackProtector: ''207 maxCallFrameSize: 0208 hasOpaqueSPAdjustment: false209 hasVAStart: false210 hasMustTailInVarArgFunc: false211 localFrameSize: 0212 savePoint: []213 restorePoint: []214fixedStack:215stack:216constants:217body: |218 ; MIPS64-LABEL: name: expand_BNE64219 ; MIPS64: bb.0 (%ir-block.0):220 ; MIPS64: successors: %bb.2(0x40000000), %bb.1(0x40000000)221 ; MIPS64: BEQ64 $a0_64, $zero_64, %bb.2, implicit-def $at {222 ; MIPS64: $zero = SLL $zero, 0223 ; MIPS64: }224 ; MIPS64: bb.1 (%ir-block.0):225 ; MIPS64: successors: %bb.3(0x80000000)226 ; MIPS64: J %bb.3, implicit-def $at {227 ; MIPS64: $zero = SLL $zero, 0228 ; MIPS64: }229 ; MIPS64: bb.2.iftrue:230 ; MIPS64: INLINEASM &".space 131068", 1231 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {232 ; MIPS64: $v0_64 = DADDiu $zero_64, 1233 ; MIPS64: }234 ; MIPS64: bb.3.tail:235 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {236 ; MIPS64: $v0_64 = DADDiu $zero_64, 0237 ; MIPS64: }238 ; PIC-LABEL: name: expand_BNE64239 ; PIC: bb.0 (%ir-block.0):240 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)241 ; PIC: BEQ64 $a0_64, $zero_64, %bb.3, implicit-def $at {242 ; PIC: $zero = SLL $zero, 0243 ; PIC: }244 ; PIC: bb.1 (%ir-block.0):245 ; PIC: successors: %bb.2(0x80000000)246 ; PIC: $sp_64 = DADDiu $sp_64, -16247 ; PIC: SD $ra_64, $sp_64, 0248 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2249 ; PIC: $at_64 = DSLL $at_64, 16250 ; PIC: BAL_BR %bb.2, implicit-def $ra {251 ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2252 ; PIC: }253 ; PIC: bb.2 (%ir-block.0):254 ; PIC: successors: %bb.4(0x80000000)255 ; PIC: $at_64 = DADDu $ra_64, $at_64256 ; PIC: $ra_64 = LD $sp_64, 0257 ; PIC: JR64 $at_64 {258 ; PIC: $sp_64 = DADDiu $sp_64, 16259 ; PIC: }260 ; PIC: bb.3.iftrue:261 ; PIC: INLINEASM &".space 131068", 1262 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {263 ; PIC: $v0_64 = DADDiu $zero_64, 1264 ; PIC: }265 ; PIC: bb.4.tail:266 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {267 ; PIC: $v0_64 = DADDiu $zero_64, 0268 ; PIC: }269 bb.0 (%ir-block.0):270 successors: %bb.1(0x40000000), %bb.2(0x40000000)271 liveins: $a0_64272 273 BNE64 killed renamable $a0_64, $zero_64, %bb.2, implicit-def $at274 275 bb.1.iftrue:276 INLINEASM &".space 131068", 1277 $v0_64 = DADDiu $zero_64, 1278 PseudoReturn64 undef $ra_64, implicit killed $v0_64279 280 bb.2.tail:281 $v0_64 = DADDiu $zero_64, 0282 PseudoReturn64 undef $ra_64, implicit killed $v0_64283 284...285---286 287name: expand_BGEZ64288alignment: 8289exposesReturnsTwice: false290legalized: false291regBankSelected: false292selected: false293failedISel: false294tracksRegLiveness: true295registers:296liveins:297 - { reg: '$a0_64', virtual-reg: '' }298frameInfo:299 isFrameAddressTaken: false300 isReturnAddressTaken: false301 hasStackMap: false302 hasPatchPoint: false303 stackSize: 0304 offsetAdjustment: 0305 maxAlignment: 1306 adjustsStack: false307 hasCalls: false308 stackProtector: ''309 maxCallFrameSize: 0310 hasOpaqueSPAdjustment: false311 hasVAStart: false312 hasMustTailInVarArgFunc: false313 localFrameSize: 0314 savePoint: []315 restorePoint: []316fixedStack:317stack:318constants:319body: |320 ; MIPS64-LABEL: name: expand_BGEZ64321 ; MIPS64: bb.0 (%ir-block.0):322 ; MIPS64: successors: %bb.2(0x40000000), %bb.1(0x40000000)323 ; MIPS64: BLTZ64 $a0_64, %bb.2, implicit-def $at {324 ; MIPS64: $zero = SLL $zero, 0325 ; MIPS64: }326 ; MIPS64: bb.1 (%ir-block.0):327 ; MIPS64: successors: %bb.3(0x80000000)328 ; MIPS64: J %bb.3, implicit-def $at {329 ; MIPS64: $zero = SLL $zero, 0330 ; MIPS64: }331 ; MIPS64: bb.2.iftrue:332 ; MIPS64: INLINEASM &".space 131068", 1333 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {334 ; MIPS64: $v0_64 = DADDiu $zero_64, 1335 ; MIPS64: }336 ; MIPS64: bb.3.tail:337 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {338 ; MIPS64: $v0_64 = DADDiu $zero_64, 0339 ; MIPS64: }340 ; PIC-LABEL: name: expand_BGEZ64341 ; PIC: bb.0 (%ir-block.0):342 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)343 ; PIC: BLTZ64 $a0_64, %bb.3, implicit-def $at {344 ; PIC: $zero = SLL $zero, 0345 ; PIC: }346 ; PIC: bb.1 (%ir-block.0):347 ; PIC: successors: %bb.2(0x80000000)348 ; PIC: $sp_64 = DADDiu $sp_64, -16349 ; PIC: SD $ra_64, $sp_64, 0350 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2351 ; PIC: $at_64 = DSLL $at_64, 16352 ; PIC: BAL_BR %bb.2, implicit-def $ra {353 ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2354 ; PIC: }355 ; PIC: bb.2 (%ir-block.0):356 ; PIC: successors: %bb.4(0x80000000)357 ; PIC: $at_64 = DADDu $ra_64, $at_64358 ; PIC: $ra_64 = LD $sp_64, 0359 ; PIC: JR64 $at_64 {360 ; PIC: $sp_64 = DADDiu $sp_64, 16361 ; PIC: }362 ; PIC: bb.3.iftrue:363 ; PIC: INLINEASM &".space 131068", 1364 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {365 ; PIC: $v0_64 = DADDiu $zero_64, 1366 ; PIC: }367 ; PIC: bb.4.tail:368 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {369 ; PIC: $v0_64 = DADDiu $zero_64, 0370 ; PIC: }371 bb.0 (%ir-block.0):372 successors: %bb.1(0x40000000), %bb.2(0x40000000)373 liveins: $a0_64374 375 BGEZ64 killed renamable $a0_64, %bb.2, implicit-def $at376 377 bb.1.iftrue:378 INLINEASM &".space 131068", 1379 $v0_64 = DADDiu $zero_64, 1380 PseudoReturn64 undef $ra_64, implicit killed $v0_64381 382 bb.2.tail:383 $v0_64 = DADDiu $zero_64, 0384 PseudoReturn64 undef $ra_64, implicit killed $v0_64385 386...387---388 389name: expand_BGTZ64390alignment: 8391exposesReturnsTwice: false392legalized: false393regBankSelected: false394selected: false395failedISel: false396tracksRegLiveness: true397registers:398liveins:399 - { reg: '$a0_64', virtual-reg: '' }400frameInfo:401 isFrameAddressTaken: false402 isReturnAddressTaken: false403 hasStackMap: false404 hasPatchPoint: false405 stackSize: 0406 offsetAdjustment: 0407 maxAlignment: 1408 adjustsStack: false409 hasCalls: false410 stackProtector: ''411 maxCallFrameSize: 0412 hasOpaqueSPAdjustment: false413 hasVAStart: false414 hasMustTailInVarArgFunc: false415 localFrameSize: 0416 savePoint: []417 restorePoint: []418fixedStack:419stack:420constants:421body: |422 ; MIPS64-LABEL: name: expand_BGTZ64423 ; MIPS64: bb.0 (%ir-block.0):424 ; MIPS64: successors: %bb.2(0x40000000), %bb.1(0x40000000)425 ; MIPS64: BLEZ64 $a0_64, %bb.2, implicit-def $at {426 ; MIPS64: $zero = SLL $zero, 0427 ; MIPS64: }428 ; MIPS64: bb.1 (%ir-block.0):429 ; MIPS64: successors: %bb.3(0x80000000)430 ; MIPS64: J %bb.3, implicit-def $at {431 ; MIPS64: $zero = SLL $zero, 0432 ; MIPS64: }433 ; MIPS64: bb.2.iftrue:434 ; MIPS64: INLINEASM &".space 131068", 1435 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {436 ; MIPS64: $v0_64 = DADDiu $zero_64, 1437 ; MIPS64: }438 ; MIPS64: bb.3.tail:439 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {440 ; MIPS64: $v0_64 = DADDiu $zero_64, 0441 ; MIPS64: }442 ; PIC-LABEL: name: expand_BGTZ64443 ; PIC: bb.0 (%ir-block.0):444 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)445 ; PIC: BLEZ64 $a0_64, %bb.3, implicit-def $at {446 ; PIC: $zero = SLL $zero, 0447 ; PIC: }448 ; PIC: bb.1 (%ir-block.0):449 ; PIC: successors: %bb.2(0x80000000)450 ; PIC: $sp_64 = DADDiu $sp_64, -16451 ; PIC: SD $ra_64, $sp_64, 0452 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2453 ; PIC: $at_64 = DSLL $at_64, 16454 ; PIC: BAL_BR %bb.2, implicit-def $ra {455 ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2456 ; PIC: }457 ; PIC: bb.2 (%ir-block.0):458 ; PIC: successors: %bb.4(0x80000000)459 ; PIC: $at_64 = DADDu $ra_64, $at_64460 ; PIC: $ra_64 = LD $sp_64, 0461 ; PIC: JR64 $at_64 {462 ; PIC: $sp_64 = DADDiu $sp_64, 16463 ; PIC: }464 ; PIC: bb.3.iftrue:465 ; PIC: INLINEASM &".space 131068", 1466 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {467 ; PIC: $v0_64 = DADDiu $zero_64, 1468 ; PIC: }469 ; PIC: bb.4.tail:470 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {471 ; PIC: $v0_64 = DADDiu $zero_64, 0472 ; PIC: }473 bb.0 (%ir-block.0):474 successors: %bb.1(0x40000000), %bb.2(0x40000000)475 liveins: $a0_64476 477 BGTZ64 killed renamable $a0_64, %bb.2, implicit-def $at478 479 bb.1.iftrue:480 INLINEASM &".space 131068", 1481 $v0_64 = DADDiu $zero_64, 1482 PseudoReturn64 undef $ra_64, implicit killed $v0_64483 484 bb.2.tail:485 $v0_64 = DADDiu $zero_64, 0486 PseudoReturn64 undef $ra_64, implicit killed $v0_64487 488...489---490 491name: expand_BLEZ64492alignment: 8493exposesReturnsTwice: false494legalized: false495regBankSelected: false496selected: false497failedISel: false498tracksRegLiveness: true499registers:500liveins:501 - { reg: '$a0_64', virtual-reg: '' }502frameInfo:503 isFrameAddressTaken: false504 isReturnAddressTaken: false505 hasStackMap: false506 hasPatchPoint: false507 stackSize: 0508 offsetAdjustment: 0509 maxAlignment: 1510 adjustsStack: false511 hasCalls: false512 stackProtector: ''513 maxCallFrameSize: 0514 hasOpaqueSPAdjustment: false515 hasVAStart: false516 hasMustTailInVarArgFunc: false517 localFrameSize: 0518 savePoint: []519 restorePoint: []520fixedStack:521stack:522constants:523body: |524 ; MIPS64-LABEL: name: expand_BLEZ64525 ; MIPS64: bb.0 (%ir-block.0):526 ; MIPS64: successors: %bb.2(0x40000000), %bb.1(0x40000000)527 ; MIPS64: BGTZ64 $a0_64, %bb.2, implicit-def $at {528 ; MIPS64: $zero = SLL $zero, 0529 ; MIPS64: }530 ; MIPS64: bb.1 (%ir-block.0):531 ; MIPS64: successors: %bb.3(0x80000000)532 ; MIPS64: J %bb.3, implicit-def $at {533 ; MIPS64: $zero = SLL $zero, 0534 ; MIPS64: }535 ; MIPS64: bb.2.iftrue:536 ; MIPS64: INLINEASM &".space 131068", 1537 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {538 ; MIPS64: $v0_64 = DADDiu $zero_64, 1539 ; MIPS64: }540 ; MIPS64: bb.3.tail:541 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {542 ; MIPS64: $v0_64 = DADDiu $zero_64, 0543 ; MIPS64: }544 ; PIC-LABEL: name: expand_BLEZ64545 ; PIC: bb.0 (%ir-block.0):546 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)547 ; PIC: BGTZ64 $a0_64, %bb.3, implicit-def $at {548 ; PIC: $zero = SLL $zero, 0549 ; PIC: }550 ; PIC: bb.1 (%ir-block.0):551 ; PIC: successors: %bb.2(0x80000000)552 ; PIC: $sp_64 = DADDiu $sp_64, -16553 ; PIC: SD $ra_64, $sp_64, 0554 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2555 ; PIC: $at_64 = DSLL $at_64, 16556 ; PIC: BAL_BR %bb.2, implicit-def $ra {557 ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2558 ; PIC: }559 ; PIC: bb.2 (%ir-block.0):560 ; PIC: successors: %bb.4(0x80000000)561 ; PIC: $at_64 = DADDu $ra_64, $at_64562 ; PIC: $ra_64 = LD $sp_64, 0563 ; PIC: JR64 $at_64 {564 ; PIC: $sp_64 = DADDiu $sp_64, 16565 ; PIC: }566 ; PIC: bb.3.iftrue:567 ; PIC: INLINEASM &".space 131068", 1568 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {569 ; PIC: $v0_64 = DADDiu $zero_64, 1570 ; PIC: }571 ; PIC: bb.4.tail:572 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {573 ; PIC: $v0_64 = DADDiu $zero_64, 0574 ; PIC: }575 bb.0 (%ir-block.0):576 successors: %bb.1(0x40000000), %bb.2(0x40000000)577 liveins: $a0_64578 579 BLEZ64 killed renamable $a0_64, %bb.2, implicit-def $at580 581 bb.1.iftrue:582 INLINEASM &".space 131068", 1583 $v0_64 = DADDiu $zero_64, 1584 PseudoReturn64 undef $ra_64, implicit killed $v0_64585 586 bb.2.tail:587 $v0_64 = DADDiu $zero_64, 0588 PseudoReturn64 undef $ra_64, implicit killed $v0_64589 590...591---592 593name: expand_BLTZ64594alignment: 8595exposesReturnsTwice: false596legalized: false597regBankSelected: false598selected: false599failedISel: false600tracksRegLiveness: true601registers:602liveins:603 - { reg: '$a0_64', virtual-reg: '' }604frameInfo:605 isFrameAddressTaken: false606 isReturnAddressTaken: false607 hasStackMap: false608 hasPatchPoint: false609 stackSize: 0610 offsetAdjustment: 0611 maxAlignment: 1612 adjustsStack: false613 hasCalls: false614 stackProtector: ''615 maxCallFrameSize: 0616 hasOpaqueSPAdjustment: false617 hasVAStart: false618 hasMustTailInVarArgFunc: false619 localFrameSize: 0620 savePoint: []621 restorePoint: []622fixedStack:623stack:624constants:625body: |626 ; MIPS64-LABEL: name: expand_BLTZ64627 ; MIPS64: bb.0 (%ir-block.0):628 ; MIPS64: successors: %bb.2(0x40000000), %bb.1(0x40000000)629 ; MIPS64: BGEZ64 $a0_64, %bb.2, implicit-def $at {630 ; MIPS64: $zero = SLL $zero, 0631 ; MIPS64: }632 ; MIPS64: bb.1 (%ir-block.0):633 ; MIPS64: successors: %bb.3(0x80000000)634 ; MIPS64: J %bb.3, implicit-def $at {635 ; MIPS64: $zero = SLL $zero, 0636 ; MIPS64: }637 ; MIPS64: bb.2.iftrue:638 ; MIPS64: INLINEASM &".space 131068", 1639 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {640 ; MIPS64: $v0_64 = DADDiu $zero_64, 1641 ; MIPS64: }642 ; MIPS64: bb.3.tail:643 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {644 ; MIPS64: $v0_64 = DADDiu $zero_64, 0645 ; MIPS64: }646 ; PIC-LABEL: name: expand_BLTZ64647 ; PIC: bb.0 (%ir-block.0):648 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000)649 ; PIC: BGEZ64 $a0_64, %bb.3, implicit-def $at {650 ; PIC: $zero = SLL $zero, 0651 ; PIC: }652 ; PIC: bb.1 (%ir-block.0):653 ; PIC: successors: %bb.2(0x80000000)654 ; PIC: $sp_64 = DADDiu $sp_64, -16655 ; PIC: SD $ra_64, $sp_64, 0656 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2657 ; PIC: $at_64 = DSLL $at_64, 16658 ; PIC: BAL_BR %bb.2, implicit-def $ra {659 ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2660 ; PIC: }661 ; PIC: bb.2 (%ir-block.0):662 ; PIC: successors: %bb.4(0x80000000)663 ; PIC: $at_64 = DADDu $ra_64, $at_64664 ; PIC: $ra_64 = LD $sp_64, 0665 ; PIC: JR64 $at_64 {666 ; PIC: $sp_64 = DADDiu $sp_64, 16667 ; PIC: }668 ; PIC: bb.3.iftrue:669 ; PIC: INLINEASM &".space 131068", 1670 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {671 ; PIC: $v0_64 = DADDiu $zero_64, 1672 ; PIC: }673 ; PIC: bb.4.tail:674 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 {675 ; PIC: $v0_64 = DADDiu $zero_64, 0676 ; PIC: }677 bb.0 (%ir-block.0):678 successors: %bb.1(0x40000000), %bb.2(0x40000000)679 liveins: $a0_64680 681 BLTZ64 killed renamable $a0_64, %bb.2, implicit-def $at682 683 bb.1.iftrue:684 INLINEASM &".space 131068", 1685 $v0_64 = DADDiu $zero_64, 1686 PseudoReturn64 undef $ra_64, implicit killed $v0_64687 688 bb.2.tail:689 $v0_64 = DADDiu $zero_64, 0690 PseudoReturn64 undef $ra_64, implicit killed $v0_64691 692...693