1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=mips64-mti-linux-gnu %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MIPS64 3# 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=PIC 4 5# Test the long branch expansion of various branches 6 7--- | 8 define i64 @expand_BEQ64(i64 %a, i64 %b) { 9 %cmp = icmp eq i64 %a, %b 10 br i1 %cmp, label %iftrue, label %tail 11 12 iftrue: 13 call void asm sideeffect ".space 131068", ""() 14 ret i64 1 15 16 tail: 17 ret i64 0 18 } 19 20 define i64 @expand_BNE64(i64 %a, i64 %b) { 21 %cmp = icmp eq i64 %a, %b 22 br i1 %cmp, label %iftrue, label %tail 23 24 iftrue: 25 call void asm sideeffect ".space 131068", ""() 26 ret i64 1 27 28 tail: 29 ret i64 0 30 } 31 32 define i64 @expand_BGEZ64(i64 %a, i64 %b) { 33 %cmp = icmp eq i64 %a, %b 34 br i1 %cmp, label %iftrue, label %tail 35 36 iftrue: 37 call void asm sideeffect ".space 131068", ""() 38 ret i64 1 39 40 tail: 41 ret i64 0 42 } 43 44 define i64 @expand_BGTZ64(i64 %a, i64 %b) { 45 %cmp = icmp eq i64 %a, %b 46 br i1 %cmp, label %iftrue, label %tail 47 48 iftrue: 49 call void asm sideeffect ".space 131068", ""() 50 ret i64 1 51 52 tail: 53 ret i64 0 54 } 55 56 define i64 @expand_BLEZ64(i64 %a, i64 %b) { 57 %cmp = icmp eq i64 %a, %b 58 br i1 %cmp, label %iftrue, label %tail 59 60 iftrue: 61 call void asm sideeffect ".space 131068", ""() 62 ret i64 1 63 64 tail: 65 ret i64 0 66 } 67 68 define i64 @expand_BLTZ64(i64 %a, i64 %b) { 69 %cmp = icmp eq i64 %a, %b 70 br i1 %cmp, label %iftrue, label %tail 71 72 iftrue: 73 call void asm sideeffect ".space 131068", ""() 74 ret i64 1 75 76 tail: 77 ret i64 0 78 } 79 80... 81--- 82 83name: expand_BEQ64 84alignment: 3 85exposesReturnsTwice: false 86legalized: false 87regBankSelected: false 88selected: false 89failedISel: false 90tracksRegLiveness: true 91registers: 92liveins: 93 - { reg: '$a0_64', virtual-reg: '' } 94frameInfo: 95 isFrameAddressTaken: false 96 isReturnAddressTaken: false 97 hasStackMap: false 98 hasPatchPoint: false 99 stackSize: 0 100 offsetAdjustment: 0 101 maxAlignment: 1 102 adjustsStack: false 103 hasCalls: false 104 stackProtector: '' 105 maxCallFrameSize: 0 106 hasOpaqueSPAdjustment: false 107 hasVAStart: false 108 hasMustTailInVarArgFunc: false 109 localFrameSize: 0 110 savePoint: '' 111 restorePoint: '' 112fixedStack: 113stack: 114constants: 115body: | 116 ; MIPS64-LABEL: name: expand_BEQ64 117 ; 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: NOP 121 ; MIPS64: } 122 ; MIPS64: bb.1 (%ir-block.0): 123 ; MIPS64: successors: %bb.3(0x80000000) 124 ; MIPS64: J %bb.3, implicit-def $at { 125 ; MIPS64: NOP 126 ; MIPS64: } 127 ; MIPS64: bb.2.iftrue: 128 ; MIPS64: INLINEASM &".space 131068", 1 129 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 130 ; MIPS64: $v0_64 = DADDiu $zero_64, 1 131 ; MIPS64: } 132 ; MIPS64: bb.3.tail: 133 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 134 ; MIPS64: $v0_64 = DADDiu $zero_64, 0 135 ; MIPS64: } 136 ; PIC-LABEL: name: expand_BEQ64 137 ; 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: NOP 141 ; PIC: } 142 ; PIC: bb.1 (%ir-block.0): 143 ; PIC: successors: %bb.2(0x80000000) 144 ; PIC: $sp_64 = DADDiu $sp_64, -16 145 ; PIC: SD $ra_64, $sp_64, 0 146 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 147 ; PIC: $at_64 = DSLL $at_64, 16 148 ; 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.2 150 ; PIC: } 151 ; PIC: bb.2 (%ir-block.0): 152 ; PIC: successors: %bb.4(0x80000000) 153 ; PIC: $at_64 = DADDu $ra_64, $at_64 154 ; PIC: $ra_64 = LD $sp_64, 0 155 ; PIC: JR64 $at_64 { 156 ; PIC: $sp_64 = DADDiu $sp_64, 16 157 ; PIC: } 158 ; PIC: bb.3.iftrue: 159 ; PIC: INLINEASM &".space 131068", 1 160 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 161 ; PIC: $v0_64 = DADDiu $zero_64, 1 162 ; PIC: } 163 ; PIC: bb.4.tail: 164 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 165 ; PIC: $v0_64 = DADDiu $zero_64, 0 166 ; PIC: } 167 bb.0 (%ir-block.0): 168 successors: %bb.1(0x40000000), %bb.2(0x40000000) 169 liveins: $a0_64 170 171 BEQ64 killed renamable $a0_64, $zero_64, %bb.2, implicit-def $at 172 173 bb.1.iftrue: 174 INLINEASM &".space 131068", 1 175 $v0_64 = DADDiu $zero_64, 1 176 PseudoReturn64 undef $ra_64, implicit killed $v0_64 177 178 bb.2.tail: 179 $v0_64 = DADDiu $zero_64, 0 180 PseudoReturn64 undef $ra_64, implicit killed $v0_64 181 182... 183--- 184 185name: expand_BNE64 186alignment: 3 187exposesReturnsTwice: false 188legalized: false 189regBankSelected: false 190selected: false 191failedISel: false 192tracksRegLiveness: true 193registers: 194liveins: 195 - { reg: '$a0_64', virtual-reg: '' } 196frameInfo: 197 isFrameAddressTaken: false 198 isReturnAddressTaken: false 199 hasStackMap: false 200 hasPatchPoint: false 201 stackSize: 0 202 offsetAdjustment: 0 203 maxAlignment: 1 204 adjustsStack: false 205 hasCalls: false 206 stackProtector: '' 207 maxCallFrameSize: 0 208 hasOpaqueSPAdjustment: false 209 hasVAStart: false 210 hasMustTailInVarArgFunc: false 211 localFrameSize: 0 212 savePoint: '' 213 restorePoint: '' 214fixedStack: 215stack: 216constants: 217body: | 218 ; MIPS64-LABEL: name: expand_BNE64 219 ; 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: NOP 223 ; MIPS64: } 224 ; MIPS64: bb.1 (%ir-block.0): 225 ; MIPS64: successors: %bb.3(0x80000000) 226 ; MIPS64: J %bb.3, implicit-def $at { 227 ; MIPS64: NOP 228 ; MIPS64: } 229 ; MIPS64: bb.2.iftrue: 230 ; MIPS64: INLINEASM &".space 131068", 1 231 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 232 ; MIPS64: $v0_64 = DADDiu $zero_64, 1 233 ; MIPS64: } 234 ; MIPS64: bb.3.tail: 235 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 236 ; MIPS64: $v0_64 = DADDiu $zero_64, 0 237 ; MIPS64: } 238 ; PIC-LABEL: name: expand_BNE64 239 ; 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: NOP 243 ; PIC: } 244 ; PIC: bb.1 (%ir-block.0): 245 ; PIC: successors: %bb.2(0x80000000) 246 ; PIC: $sp_64 = DADDiu $sp_64, -16 247 ; PIC: SD $ra_64, $sp_64, 0 248 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 249 ; PIC: $at_64 = DSLL $at_64, 16 250 ; 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.2 252 ; PIC: } 253 ; PIC: bb.2 (%ir-block.0): 254 ; PIC: successors: %bb.4(0x80000000) 255 ; PIC: $at_64 = DADDu $ra_64, $at_64 256 ; PIC: $ra_64 = LD $sp_64, 0 257 ; PIC: JR64 $at_64 { 258 ; PIC: $sp_64 = DADDiu $sp_64, 16 259 ; PIC: } 260 ; PIC: bb.3.iftrue: 261 ; PIC: INLINEASM &".space 131068", 1 262 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 263 ; PIC: $v0_64 = DADDiu $zero_64, 1 264 ; PIC: } 265 ; PIC: bb.4.tail: 266 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 267 ; PIC: $v0_64 = DADDiu $zero_64, 0 268 ; PIC: } 269 bb.0 (%ir-block.0): 270 successors: %bb.1(0x40000000), %bb.2(0x40000000) 271 liveins: $a0_64 272 273 BNE64 killed renamable $a0_64, $zero_64, %bb.2, implicit-def $at 274 275 bb.1.iftrue: 276 INLINEASM &".space 131068", 1 277 $v0_64 = DADDiu $zero_64, 1 278 PseudoReturn64 undef $ra_64, implicit killed $v0_64 279 280 bb.2.tail: 281 $v0_64 = DADDiu $zero_64, 0 282 PseudoReturn64 undef $ra_64, implicit killed $v0_64 283 284... 285--- 286 287name: expand_BGEZ64 288alignment: 3 289exposesReturnsTwice: false 290legalized: false 291regBankSelected: false 292selected: false 293failedISel: false 294tracksRegLiveness: true 295registers: 296liveins: 297 - { reg: '$a0_64', virtual-reg: '' } 298frameInfo: 299 isFrameAddressTaken: false 300 isReturnAddressTaken: false 301 hasStackMap: false 302 hasPatchPoint: false 303 stackSize: 0 304 offsetAdjustment: 0 305 maxAlignment: 1 306 adjustsStack: false 307 hasCalls: false 308 stackProtector: '' 309 maxCallFrameSize: 0 310 hasOpaqueSPAdjustment: false 311 hasVAStart: false 312 hasMustTailInVarArgFunc: false 313 localFrameSize: 0 314 savePoint: '' 315 restorePoint: '' 316fixedStack: 317stack: 318constants: 319body: | 320 ; MIPS64-LABEL: name: expand_BGEZ64 321 ; 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: NOP 325 ; MIPS64: } 326 ; MIPS64: bb.1 (%ir-block.0): 327 ; MIPS64: successors: %bb.3(0x80000000) 328 ; MIPS64: J %bb.3, implicit-def $at { 329 ; MIPS64: NOP 330 ; MIPS64: } 331 ; MIPS64: bb.2.iftrue: 332 ; MIPS64: INLINEASM &".space 131068", 1 333 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 334 ; MIPS64: $v0_64 = DADDiu $zero_64, 1 335 ; MIPS64: } 336 ; MIPS64: bb.3.tail: 337 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 338 ; MIPS64: $v0_64 = DADDiu $zero_64, 0 339 ; MIPS64: } 340 ; PIC-LABEL: name: expand_BGEZ64 341 ; 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: NOP 345 ; PIC: } 346 ; PIC: bb.1 (%ir-block.0): 347 ; PIC: successors: %bb.2(0x80000000) 348 ; PIC: $sp_64 = DADDiu $sp_64, -16 349 ; PIC: SD $ra_64, $sp_64, 0 350 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 351 ; PIC: $at_64 = DSLL $at_64, 16 352 ; 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.2 354 ; PIC: } 355 ; PIC: bb.2 (%ir-block.0): 356 ; PIC: successors: %bb.4(0x80000000) 357 ; PIC: $at_64 = DADDu $ra_64, $at_64 358 ; PIC: $ra_64 = LD $sp_64, 0 359 ; PIC: JR64 $at_64 { 360 ; PIC: $sp_64 = DADDiu $sp_64, 16 361 ; PIC: } 362 ; PIC: bb.3.iftrue: 363 ; PIC: INLINEASM &".space 131068", 1 364 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 365 ; PIC: $v0_64 = DADDiu $zero_64, 1 366 ; PIC: } 367 ; PIC: bb.4.tail: 368 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 369 ; PIC: $v0_64 = DADDiu $zero_64, 0 370 ; PIC: } 371 bb.0 (%ir-block.0): 372 successors: %bb.1(0x40000000), %bb.2(0x40000000) 373 liveins: $a0_64 374 375 BGEZ64 killed renamable $a0_64, %bb.2, implicit-def $at 376 377 bb.1.iftrue: 378 INLINEASM &".space 131068", 1 379 $v0_64 = DADDiu $zero_64, 1 380 PseudoReturn64 undef $ra_64, implicit killed $v0_64 381 382 bb.2.tail: 383 $v0_64 = DADDiu $zero_64, 0 384 PseudoReturn64 undef $ra_64, implicit killed $v0_64 385 386... 387--- 388 389name: expand_BGTZ64 390alignment: 3 391exposesReturnsTwice: false 392legalized: false 393regBankSelected: false 394selected: false 395failedISel: false 396tracksRegLiveness: true 397registers: 398liveins: 399 - { reg: '$a0_64', virtual-reg: '' } 400frameInfo: 401 isFrameAddressTaken: false 402 isReturnAddressTaken: false 403 hasStackMap: false 404 hasPatchPoint: false 405 stackSize: 0 406 offsetAdjustment: 0 407 maxAlignment: 1 408 adjustsStack: false 409 hasCalls: false 410 stackProtector: '' 411 maxCallFrameSize: 0 412 hasOpaqueSPAdjustment: false 413 hasVAStart: false 414 hasMustTailInVarArgFunc: false 415 localFrameSize: 0 416 savePoint: '' 417 restorePoint: '' 418fixedStack: 419stack: 420constants: 421body: | 422 ; MIPS64-LABEL: name: expand_BGTZ64 423 ; 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: NOP 427 ; MIPS64: } 428 ; MIPS64: bb.1 (%ir-block.0): 429 ; MIPS64: successors: %bb.3(0x80000000) 430 ; MIPS64: J %bb.3, implicit-def $at { 431 ; MIPS64: NOP 432 ; MIPS64: } 433 ; MIPS64: bb.2.iftrue: 434 ; MIPS64: INLINEASM &".space 131068", 1 435 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 436 ; MIPS64: $v0_64 = DADDiu $zero_64, 1 437 ; MIPS64: } 438 ; MIPS64: bb.3.tail: 439 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 440 ; MIPS64: $v0_64 = DADDiu $zero_64, 0 441 ; MIPS64: } 442 ; PIC-LABEL: name: expand_BGTZ64 443 ; 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: NOP 447 ; PIC: } 448 ; PIC: bb.1 (%ir-block.0): 449 ; PIC: successors: %bb.2(0x80000000) 450 ; PIC: $sp_64 = DADDiu $sp_64, -16 451 ; PIC: SD $ra_64, $sp_64, 0 452 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 453 ; PIC: $at_64 = DSLL $at_64, 16 454 ; 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.2 456 ; PIC: } 457 ; PIC: bb.2 (%ir-block.0): 458 ; PIC: successors: %bb.4(0x80000000) 459 ; PIC: $at_64 = DADDu $ra_64, $at_64 460 ; PIC: $ra_64 = LD $sp_64, 0 461 ; PIC: JR64 $at_64 { 462 ; PIC: $sp_64 = DADDiu $sp_64, 16 463 ; PIC: } 464 ; PIC: bb.3.iftrue: 465 ; PIC: INLINEASM &".space 131068", 1 466 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 467 ; PIC: $v0_64 = DADDiu $zero_64, 1 468 ; PIC: } 469 ; PIC: bb.4.tail: 470 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 471 ; PIC: $v0_64 = DADDiu $zero_64, 0 472 ; PIC: } 473 bb.0 (%ir-block.0): 474 successors: %bb.1(0x40000000), %bb.2(0x40000000) 475 liveins: $a0_64 476 477 BGTZ64 killed renamable $a0_64, %bb.2, implicit-def $at 478 479 bb.1.iftrue: 480 INLINEASM &".space 131068", 1 481 $v0_64 = DADDiu $zero_64, 1 482 PseudoReturn64 undef $ra_64, implicit killed $v0_64 483 484 bb.2.tail: 485 $v0_64 = DADDiu $zero_64, 0 486 PseudoReturn64 undef $ra_64, implicit killed $v0_64 487 488... 489--- 490 491name: expand_BLEZ64 492alignment: 3 493exposesReturnsTwice: false 494legalized: false 495regBankSelected: false 496selected: false 497failedISel: false 498tracksRegLiveness: true 499registers: 500liveins: 501 - { reg: '$a0_64', virtual-reg: '' } 502frameInfo: 503 isFrameAddressTaken: false 504 isReturnAddressTaken: false 505 hasStackMap: false 506 hasPatchPoint: false 507 stackSize: 0 508 offsetAdjustment: 0 509 maxAlignment: 1 510 adjustsStack: false 511 hasCalls: false 512 stackProtector: '' 513 maxCallFrameSize: 0 514 hasOpaqueSPAdjustment: false 515 hasVAStart: false 516 hasMustTailInVarArgFunc: false 517 localFrameSize: 0 518 savePoint: '' 519 restorePoint: '' 520fixedStack: 521stack: 522constants: 523body: | 524 ; MIPS64-LABEL: name: expand_BLEZ64 525 ; 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: NOP 529 ; MIPS64: } 530 ; MIPS64: bb.1 (%ir-block.0): 531 ; MIPS64: successors: %bb.3(0x80000000) 532 ; MIPS64: J %bb.3, implicit-def $at { 533 ; MIPS64: NOP 534 ; MIPS64: } 535 ; MIPS64: bb.2.iftrue: 536 ; MIPS64: INLINEASM &".space 131068", 1 537 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 538 ; MIPS64: $v0_64 = DADDiu $zero_64, 1 539 ; MIPS64: } 540 ; MIPS64: bb.3.tail: 541 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 542 ; MIPS64: $v0_64 = DADDiu $zero_64, 0 543 ; MIPS64: } 544 ; PIC-LABEL: name: expand_BLEZ64 545 ; 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: NOP 549 ; PIC: } 550 ; PIC: bb.1 (%ir-block.0): 551 ; PIC: successors: %bb.2(0x80000000) 552 ; PIC: $sp_64 = DADDiu $sp_64, -16 553 ; PIC: SD $ra_64, $sp_64, 0 554 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 555 ; PIC: $at_64 = DSLL $at_64, 16 556 ; 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.2 558 ; PIC: } 559 ; PIC: bb.2 (%ir-block.0): 560 ; PIC: successors: %bb.4(0x80000000) 561 ; PIC: $at_64 = DADDu $ra_64, $at_64 562 ; PIC: $ra_64 = LD $sp_64, 0 563 ; PIC: JR64 $at_64 { 564 ; PIC: $sp_64 = DADDiu $sp_64, 16 565 ; PIC: } 566 ; PIC: bb.3.iftrue: 567 ; PIC: INLINEASM &".space 131068", 1 568 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 569 ; PIC: $v0_64 = DADDiu $zero_64, 1 570 ; PIC: } 571 ; PIC: bb.4.tail: 572 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 573 ; PIC: $v0_64 = DADDiu $zero_64, 0 574 ; PIC: } 575 bb.0 (%ir-block.0): 576 successors: %bb.1(0x40000000), %bb.2(0x40000000) 577 liveins: $a0_64 578 579 BLEZ64 killed renamable $a0_64, %bb.2, implicit-def $at 580 581 bb.1.iftrue: 582 INLINEASM &".space 131068", 1 583 $v0_64 = DADDiu $zero_64, 1 584 PseudoReturn64 undef $ra_64, implicit killed $v0_64 585 586 bb.2.tail: 587 $v0_64 = DADDiu $zero_64, 0 588 PseudoReturn64 undef $ra_64, implicit killed $v0_64 589 590... 591--- 592 593name: expand_BLTZ64 594alignment: 3 595exposesReturnsTwice: false 596legalized: false 597regBankSelected: false 598selected: false 599failedISel: false 600tracksRegLiveness: true 601registers: 602liveins: 603 - { reg: '$a0_64', virtual-reg: '' } 604frameInfo: 605 isFrameAddressTaken: false 606 isReturnAddressTaken: false 607 hasStackMap: false 608 hasPatchPoint: false 609 stackSize: 0 610 offsetAdjustment: 0 611 maxAlignment: 1 612 adjustsStack: false 613 hasCalls: false 614 stackProtector: '' 615 maxCallFrameSize: 0 616 hasOpaqueSPAdjustment: false 617 hasVAStart: false 618 hasMustTailInVarArgFunc: false 619 localFrameSize: 0 620 savePoint: '' 621 restorePoint: '' 622fixedStack: 623stack: 624constants: 625body: | 626 ; MIPS64-LABEL: name: expand_BLTZ64 627 ; 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: NOP 631 ; MIPS64: } 632 ; MIPS64: bb.1 (%ir-block.0): 633 ; MIPS64: successors: %bb.3(0x80000000) 634 ; MIPS64: J %bb.3, implicit-def $at { 635 ; MIPS64: NOP 636 ; MIPS64: } 637 ; MIPS64: bb.2.iftrue: 638 ; MIPS64: INLINEASM &".space 131068", 1 639 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 640 ; MIPS64: $v0_64 = DADDiu $zero_64, 1 641 ; MIPS64: } 642 ; MIPS64: bb.3.tail: 643 ; MIPS64: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 644 ; MIPS64: $v0_64 = DADDiu $zero_64, 0 645 ; MIPS64: } 646 ; PIC-LABEL: name: expand_BLTZ64 647 ; 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: NOP 651 ; PIC: } 652 ; PIC: bb.1 (%ir-block.0): 653 ; PIC: successors: %bb.2(0x80000000) 654 ; PIC: $sp_64 = DADDiu $sp_64, -16 655 ; PIC: SD $ra_64, $sp_64, 0 656 ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 657 ; PIC: $at_64 = DSLL $at_64, 16 658 ; 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.2 660 ; PIC: } 661 ; PIC: bb.2 (%ir-block.0): 662 ; PIC: successors: %bb.4(0x80000000) 663 ; PIC: $at_64 = DADDu $ra_64, $at_64 664 ; PIC: $ra_64 = LD $sp_64, 0 665 ; PIC: JR64 $at_64 { 666 ; PIC: $sp_64 = DADDiu $sp_64, 16 667 ; PIC: } 668 ; PIC: bb.3.iftrue: 669 ; PIC: INLINEASM &".space 131068", 1 670 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 671 ; PIC: $v0_64 = DADDiu $zero_64, 1 672 ; PIC: } 673 ; PIC: bb.4.tail: 674 ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0_64 { 675 ; PIC: $v0_64 = DADDiu $zero_64, 0 676 ; PIC: } 677 bb.0 (%ir-block.0): 678 successors: %bb.1(0x40000000), %bb.2(0x40000000) 679 liveins: $a0_64 680 681 BLTZ64 killed renamable $a0_64, %bb.2, implicit-def $at 682 683 bb.1.iftrue: 684 INLINEASM &".space 131068", 1 685 $v0_64 = DADDiu $zero_64, 1 686 PseudoReturn64 undef $ra_64, implicit killed $v0_64 687 688 bb.2.tail: 689 $v0_64 = DADDiu $zero_64, 0 690 PseudoReturn64 undef $ra_64, implicit killed $v0_64 691 692... 693