1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=mips-mti-linux-gnu -mattr=+micromips -o - %s -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MM 3# RUN: llc -mtriple=mips-mti-linux-gnu -mattr=+micromips -o - %s -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 void @expand_BEQ_MM(i1 %a) { 9 br i1 %a, label %iftrue, label %tail 10 11 iftrue: 12 call void asm sideeffect ".space 131068", ""() 13 br label %tail 14 15 tail: 16 ret void 17 } 18 19 define void @expand_BGEZ_MM(i1 %a) { 20 br i1 %a, label %iftrue, label %tail 21 22 iftrue: 23 call void asm sideeffect ".space 131068", ""() 24 br label %tail 25 26 tail: 27 ret void 28 } 29 30 define void @expand_BGTZ_MM(i1 %a) { 31 br i1 %a, label %iftrue, label %tail 32 33 iftrue: 34 call void asm sideeffect ".space 131068", ""() 35 br label %tail 36 37 tail: 38 ret void 39 } 40 41 define void @expand_BLEZ_MM(i1 %a) { 42 br i1 %a, label %iftrue, label %tail 43 44 iftrue: 45 call void asm sideeffect ".space 131068", ""() 46 br label %tail 47 48 tail: 49 ret void 50 } 51 52 define void @expand_BLTZ_MM(i1 %a) { 53 br i1 %a, label %iftrue, label %tail 54 55 iftrue: 56 call void asm sideeffect ".space 131068", ""() 57 br label %tail 58 59 tail: 60 ret void 61 } 62 63 define void @expand_BNE_MM(i1 %a) { 64 br i1 %a, label %iftrue, label %tail 65 66 iftrue: 67 call void asm sideeffect ".space 131068", ""() 68 br label %tail 69 70 tail: 71 ret void 72 } 73 74 define void @expand_BEQZ16_MM(i1 %a) { 75 br i1 %a, label %iftrue, label %tail 76 77 iftrue: 78 call void asm sideeffect ".space 131068", ""() 79 br label %tail 80 81 tail: 82 ret void 83 } 84 85 define void @expand_BNEZ16_MM(i1 %a) { 86 br i1 %a, label %iftrue, label %tail 87 88 iftrue: 89 call void asm sideeffect ".space 131068", ""() 90 br label %tail 91 92 tail: 93 ret void 94 } 95 96... 97--- 98 99name: expand_BEQ_MM 100alignment: 4 101exposesReturnsTwice: false 102legalized: false 103regBankSelected: false 104selected: false 105failedISel: false 106tracksRegLiveness: true 107registers: 108liveins: 109 - { reg: '$a0', virtual-reg: '' } 110frameInfo: 111 isFrameAddressTaken: false 112 isReturnAddressTaken: false 113 hasStackMap: false 114 hasPatchPoint: false 115 stackSize: 0 116 offsetAdjustment: 0 117 maxAlignment: 1 118 adjustsStack: false 119 hasCalls: false 120 stackProtector: '' 121 maxCallFrameSize: 0 122 hasOpaqueSPAdjustment: false 123 hasVAStart: false 124 hasMustTailInVarArgFunc: false 125 localFrameSize: 0 126 savePoint: '' 127 restorePoint: '' 128fixedStack: 129stack: 130constants: 131body: | 132 ; MM-LABEL: name: expand_BEQ_MM 133 ; MM: bb.0 (%ir-block.0): 134 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 135 ; MM: renamable $at = ANDi killed renamable $a0, 1 136 ; MM: BNEZC_MM $at, %bb.2, implicit-def $at 137 ; MM: bb.1 (%ir-block.0): 138 ; MM: successors: %bb.3(0x80000000) 139 ; MM: J %bb.3, implicit-def $at { 140 ; MM: NOP 141 ; MM: } 142 ; MM: bb.2.iftrue: 143 ; MM: successors: %bb.3(0x80000000) 144 ; MM: INLINEASM &".space 131068", 1 145 ; MM: bb.3.tail: 146 ; MM: JRC16_MM undef $ra 147 ; PIC-LABEL: name: expand_BEQ_MM 148 ; PIC: bb.0 (%ir-block.0): 149 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 150 ; PIC: renamable $at = ANDi killed renamable $a0, 1 151 ; PIC: BNEZC_MM $at, %bb.3, implicit-def $at 152 ; PIC: bb.1 (%ir-block.0): 153 ; PIC: successors: %bb.2(0x80000000) 154 ; PIC: $sp = ADDiu $sp, -8 155 ; PIC: SW $ra, $sp, 0 156 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 157 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 158 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 159 ; PIC: } 160 ; PIC: bb.2 (%ir-block.0): 161 ; PIC: successors: %bb.4(0x80000000) 162 ; PIC: $at = ADDu $ra, $at 163 ; PIC: $ra = LW $sp, 0 164 ; PIC: JR $at { 165 ; PIC: $sp = ADDiu $sp, 8 166 ; PIC: } 167 ; PIC: bb.3.iftrue: 168 ; PIC: successors: %bb.4(0x80000000) 169 ; PIC: INLINEASM &".space 131068", 1 170 ; PIC: bb.4.tail: 171 ; PIC: JRC16_MM undef $ra 172 bb.0 (%ir-block.0): 173 successors: %bb.1(0x40000000), %bb.2(0x40000000) 174 liveins: $a0 175 176 renamable $at = ANDi killed renamable $a0, 1 177 BEQ_MM killed renamable $at, $zero, %bb.2, implicit-def $at 178 179 bb.1.iftrue: 180 successors: %bb.2(0x80000000) 181 182 INLINEASM &".space 131068", 1 183 184 bb.2.tail: 185 PseudoReturn undef $ra 186 187... 188--- 189 190name: expand_BGEZ_MM 191alignment: 4 192exposesReturnsTwice: false 193legalized: false 194regBankSelected: false 195selected: false 196failedISel: false 197tracksRegLiveness: true 198registers: 199liveins: 200 - { reg: '$a0', virtual-reg: '' } 201frameInfo: 202 isFrameAddressTaken: false 203 isReturnAddressTaken: false 204 hasStackMap: false 205 hasPatchPoint: false 206 stackSize: 0 207 offsetAdjustment: 0 208 maxAlignment: 1 209 adjustsStack: false 210 hasCalls: false 211 stackProtector: '' 212 maxCallFrameSize: 0 213 hasOpaqueSPAdjustment: false 214 hasVAStart: false 215 hasMustTailInVarArgFunc: false 216 localFrameSize: 0 217 savePoint: '' 218 restorePoint: '' 219fixedStack: 220stack: 221constants: 222body: | 223 ; MM-LABEL: name: expand_BGEZ_MM 224 ; MM: bb.0 (%ir-block.0): 225 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 226 ; MM: renamable $at = ANDi killed renamable $a0, 1 227 ; MM: BLTZ_MM $at, %bb.2, implicit-def $at { 228 ; MM: NOP 229 ; MM: } 230 ; MM: bb.1 (%ir-block.0): 231 ; MM: successors: %bb.3(0x80000000) 232 ; MM: J %bb.3, implicit-def $at { 233 ; MM: NOP 234 ; MM: } 235 ; MM: bb.2.iftrue: 236 ; MM: successors: %bb.3(0x80000000) 237 ; MM: INLINEASM &".space 131068", 1 238 ; MM: bb.3.tail: 239 ; MM: JRC16_MM undef $ra 240 ; PIC-LABEL: name: expand_BGEZ_MM 241 ; PIC: bb.0 (%ir-block.0): 242 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 243 ; PIC: renamable $at = ANDi killed renamable $a0, 1 244 ; PIC: BLTZ_MM $at, %bb.3, implicit-def $at { 245 ; PIC: NOP 246 ; PIC: } 247 ; PIC: bb.1 (%ir-block.0): 248 ; PIC: successors: %bb.2(0x80000000) 249 ; PIC: $sp = ADDiu $sp, -8 250 ; PIC: SW $ra, $sp, 0 251 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 252 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 253 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 254 ; PIC: } 255 ; PIC: bb.2 (%ir-block.0): 256 ; PIC: successors: %bb.4(0x80000000) 257 ; PIC: $at = ADDu $ra, $at 258 ; PIC: $ra = LW $sp, 0 259 ; PIC: JR $at { 260 ; PIC: $sp = ADDiu $sp, 8 261 ; PIC: } 262 ; PIC: bb.3.iftrue: 263 ; PIC: successors: %bb.4(0x80000000) 264 ; PIC: INLINEASM &".space 131068", 1 265 ; PIC: bb.4.tail: 266 ; PIC: JRC16_MM undef $ra 267 bb.0 (%ir-block.0): 268 successors: %bb.1(0x40000000), %bb.2(0x40000000) 269 liveins: $a0 270 271 renamable $at = ANDi killed renamable $a0, 1 272 BGEZ_MM killed renamable $at, %bb.2, implicit-def $at 273 274 bb.1.iftrue: 275 successors: %bb.2(0x80000000) 276 277 INLINEASM &".space 131068", 1 278 279 bb.2.tail: 280 PseudoReturn undef $ra 281 282... 283--- 284 285name: expand_BGTZ_MM 286alignment: 4 287exposesReturnsTwice: false 288legalized: false 289regBankSelected: false 290selected: false 291failedISel: false 292tracksRegLiveness: true 293registers: 294liveins: 295 - { reg: '$a0', virtual-reg: '' } 296frameInfo: 297 isFrameAddressTaken: false 298 isReturnAddressTaken: false 299 hasStackMap: false 300 hasPatchPoint: false 301 stackSize: 0 302 offsetAdjustment: 0 303 maxAlignment: 1 304 adjustsStack: false 305 hasCalls: false 306 stackProtector: '' 307 maxCallFrameSize: 0 308 hasOpaqueSPAdjustment: false 309 hasVAStart: false 310 hasMustTailInVarArgFunc: false 311 localFrameSize: 0 312 savePoint: '' 313 restorePoint: '' 314fixedStack: 315stack: 316constants: 317body: | 318 ; MM-LABEL: name: expand_BGTZ_MM 319 ; MM: bb.0 (%ir-block.0): 320 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 321 ; MM: renamable $at = ANDi killed renamable $a0, 1 322 ; MM: BLEZ_MM $at, %bb.2, implicit-def $at { 323 ; MM: NOP 324 ; MM: } 325 ; MM: bb.1 (%ir-block.0): 326 ; MM: successors: %bb.3(0x80000000) 327 ; MM: J %bb.3, implicit-def $at { 328 ; MM: NOP 329 ; MM: } 330 ; MM: bb.2.iftrue: 331 ; MM: successors: %bb.3(0x80000000) 332 ; MM: INLINEASM &".space 131068", 1 333 ; MM: bb.3.tail: 334 ; MM: JRC16_MM undef $ra 335 ; PIC-LABEL: name: expand_BGTZ_MM 336 ; PIC: bb.0 (%ir-block.0): 337 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 338 ; PIC: renamable $at = ANDi killed renamable $a0, 1 339 ; PIC: BLEZ_MM $at, %bb.3, implicit-def $at { 340 ; PIC: NOP 341 ; PIC: } 342 ; PIC: bb.1 (%ir-block.0): 343 ; PIC: successors: %bb.2(0x80000000) 344 ; PIC: $sp = ADDiu $sp, -8 345 ; PIC: SW $ra, $sp, 0 346 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 347 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 348 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 349 ; PIC: } 350 ; PIC: bb.2 (%ir-block.0): 351 ; PIC: successors: %bb.4(0x80000000) 352 ; PIC: $at = ADDu $ra, $at 353 ; PIC: $ra = LW $sp, 0 354 ; PIC: JR $at { 355 ; PIC: $sp = ADDiu $sp, 8 356 ; PIC: } 357 ; PIC: bb.3.iftrue: 358 ; PIC: successors: %bb.4(0x80000000) 359 ; PIC: INLINEASM &".space 131068", 1 360 ; PIC: bb.4.tail: 361 ; PIC: JRC16_MM undef $ra 362 bb.0 (%ir-block.0): 363 successors: %bb.1(0x40000000), %bb.2(0x40000000) 364 liveins: $a0 365 366 renamable $at = ANDi killed renamable $a0, 1 367 BGTZ_MM killed renamable $at, %bb.2, implicit-def $at 368 369 bb.1.iftrue: 370 successors: %bb.2(0x80000000) 371 372 INLINEASM &".space 131068", 1 373 374 bb.2.tail: 375 PseudoReturn undef $ra 376 377... 378--- 379 380name: expand_BLEZ_MM 381alignment: 4 382exposesReturnsTwice: false 383legalized: false 384regBankSelected: false 385selected: false 386failedISel: false 387tracksRegLiveness: true 388registers: 389liveins: 390 - { reg: '$a0', virtual-reg: '' } 391frameInfo: 392 isFrameAddressTaken: false 393 isReturnAddressTaken: false 394 hasStackMap: false 395 hasPatchPoint: false 396 stackSize: 0 397 offsetAdjustment: 0 398 maxAlignment: 1 399 adjustsStack: false 400 hasCalls: false 401 stackProtector: '' 402 maxCallFrameSize: 0 403 hasOpaqueSPAdjustment: false 404 hasVAStart: false 405 hasMustTailInVarArgFunc: false 406 localFrameSize: 0 407 savePoint: '' 408 restorePoint: '' 409fixedStack: 410stack: 411constants: 412body: | 413 ; MM-LABEL: name: expand_BLEZ_MM 414 ; MM: bb.0 (%ir-block.0): 415 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 416 ; MM: renamable $at = ANDi killed renamable $a0, 1 417 ; MM: BGTZ_MM $at, %bb.2, implicit-def $at { 418 ; MM: NOP 419 ; MM: } 420 ; MM: bb.1 (%ir-block.0): 421 ; MM: successors: %bb.3(0x80000000) 422 ; MM: J %bb.3, implicit-def $at { 423 ; MM: NOP 424 ; MM: } 425 ; MM: bb.2.iftrue: 426 ; MM: successors: %bb.3(0x80000000) 427 ; MM: INLINEASM &".space 131068", 1 428 ; MM: bb.3.tail: 429 ; MM: JRC16_MM undef $ra 430 ; PIC-LABEL: name: expand_BLEZ_MM 431 ; PIC: bb.0 (%ir-block.0): 432 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 433 ; PIC: renamable $at = ANDi killed renamable $a0, 1 434 ; PIC: BGTZ_MM $at, %bb.3, implicit-def $at { 435 ; PIC: NOP 436 ; PIC: } 437 ; PIC: bb.1 (%ir-block.0): 438 ; PIC: successors: %bb.2(0x80000000) 439 ; PIC: $sp = ADDiu $sp, -8 440 ; PIC: SW $ra, $sp, 0 441 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 442 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 443 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 444 ; PIC: } 445 ; PIC: bb.2 (%ir-block.0): 446 ; PIC: successors: %bb.4(0x80000000) 447 ; PIC: $at = ADDu $ra, $at 448 ; PIC: $ra = LW $sp, 0 449 ; PIC: JR $at { 450 ; PIC: $sp = ADDiu $sp, 8 451 ; PIC: } 452 ; PIC: bb.3.iftrue: 453 ; PIC: successors: %bb.4(0x80000000) 454 ; PIC: INLINEASM &".space 131068", 1 455 ; PIC: bb.4.tail: 456 ; PIC: JRC16_MM undef $ra 457 bb.0 (%ir-block.0): 458 successors: %bb.1(0x40000000), %bb.2(0x40000000) 459 liveins: $a0 460 461 renamable $at = ANDi killed renamable $a0, 1 462 BLEZ_MM killed renamable $at, %bb.2, implicit-def $at 463 464 bb.1.iftrue: 465 successors: %bb.2(0x80000000) 466 467 INLINEASM &".space 131068", 1 468 469 bb.2.tail: 470 PseudoReturn undef $ra 471 472... 473--- 474 475name: expand_BLTZ_MM 476alignment: 4 477exposesReturnsTwice: false 478legalized: false 479regBankSelected: false 480selected: false 481failedISel: false 482tracksRegLiveness: true 483registers: 484liveins: 485 - { reg: '$a0', virtual-reg: '' } 486frameInfo: 487 isFrameAddressTaken: false 488 isReturnAddressTaken: false 489 hasStackMap: false 490 hasPatchPoint: false 491 stackSize: 0 492 offsetAdjustment: 0 493 maxAlignment: 1 494 adjustsStack: false 495 hasCalls: false 496 stackProtector: '' 497 maxCallFrameSize: 0 498 hasOpaqueSPAdjustment: false 499 hasVAStart: false 500 hasMustTailInVarArgFunc: false 501 localFrameSize: 0 502 savePoint: '' 503 restorePoint: '' 504fixedStack: 505stack: 506constants: 507body: | 508 ; MM-LABEL: name: expand_BLTZ_MM 509 ; MM: bb.0 (%ir-block.0): 510 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 511 ; MM: renamable $at = ANDi killed renamable $a0, 1 512 ; MM: BGEZ_MM $at, %bb.2, implicit-def $at { 513 ; MM: NOP 514 ; MM: } 515 ; MM: bb.1 (%ir-block.0): 516 ; MM: successors: %bb.3(0x80000000) 517 ; MM: J %bb.3, implicit-def $at { 518 ; MM: NOP 519 ; MM: } 520 ; MM: bb.2.iftrue: 521 ; MM: successors: %bb.3(0x80000000) 522 ; MM: INLINEASM &".space 131068", 1 523 ; MM: bb.3.tail: 524 ; MM: JRC16_MM undef $ra 525 ; PIC-LABEL: name: expand_BLTZ_MM 526 ; PIC: bb.0 (%ir-block.0): 527 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 528 ; PIC: renamable $at = ANDi killed renamable $a0, 1 529 ; PIC: BGEZ_MM $at, %bb.3, implicit-def $at { 530 ; PIC: NOP 531 ; PIC: } 532 ; PIC: bb.1 (%ir-block.0): 533 ; PIC: successors: %bb.2(0x80000000) 534 ; PIC: $sp = ADDiu $sp, -8 535 ; PIC: SW $ra, $sp, 0 536 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 537 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 538 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 539 ; PIC: } 540 ; PIC: bb.2 (%ir-block.0): 541 ; PIC: successors: %bb.4(0x80000000) 542 ; PIC: $at = ADDu $ra, $at 543 ; PIC: $ra = LW $sp, 0 544 ; PIC: JR $at { 545 ; PIC: $sp = ADDiu $sp, 8 546 ; PIC: } 547 ; PIC: bb.3.iftrue: 548 ; PIC: successors: %bb.4(0x80000000) 549 ; PIC: INLINEASM &".space 131068", 1 550 ; PIC: bb.4.tail: 551 ; PIC: JRC16_MM undef $ra 552 bb.0 (%ir-block.0): 553 successors: %bb.1(0x40000000), %bb.2(0x40000000) 554 liveins: $a0 555 556 renamable $at = ANDi killed renamable $a0, 1 557 BLTZ_MM killed renamable $at, %bb.2, implicit-def $at 558 559 bb.1.iftrue: 560 successors: %bb.2(0x80000000) 561 562 INLINEASM &".space 131068", 1 563 564 bb.2.tail: 565 PseudoReturn undef $ra 566 567... 568--- 569 570name: expand_BNE_MM 571alignment: 4 572exposesReturnsTwice: false 573legalized: false 574regBankSelected: false 575selected: false 576failedISel: false 577tracksRegLiveness: true 578registers: 579liveins: 580 - { reg: '$a0', virtual-reg: '' } 581frameInfo: 582 isFrameAddressTaken: false 583 isReturnAddressTaken: false 584 hasStackMap: false 585 hasPatchPoint: false 586 stackSize: 0 587 offsetAdjustment: 0 588 maxAlignment: 1 589 adjustsStack: false 590 hasCalls: false 591 stackProtector: '' 592 maxCallFrameSize: 0 593 hasOpaqueSPAdjustment: false 594 hasVAStart: false 595 hasMustTailInVarArgFunc: false 596 localFrameSize: 0 597 savePoint: '' 598 restorePoint: '' 599fixedStack: 600stack: 601constants: 602body: | 603 ; MM-LABEL: name: expand_BNE_MM 604 ; MM: bb.0 (%ir-block.0): 605 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 606 ; MM: renamable $at = ANDi killed renamable $a0, 1 607 ; MM: BEQZC_MM $at, %bb.2, implicit-def $at 608 ; MM: bb.1 (%ir-block.0): 609 ; MM: successors: %bb.3(0x80000000) 610 ; MM: J %bb.3, implicit-def $at { 611 ; MM: NOP 612 ; MM: } 613 ; MM: bb.2.iftrue: 614 ; MM: successors: %bb.3(0x80000000) 615 ; MM: INLINEASM &".space 131068", 1 616 ; MM: bb.3.tail: 617 ; MM: JRC16_MM undef $ra 618 ; PIC-LABEL: name: expand_BNE_MM 619 ; PIC: bb.0 (%ir-block.0): 620 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 621 ; PIC: renamable $at = ANDi killed renamable $a0, 1 622 ; PIC: BEQZC_MM $at, %bb.3, implicit-def $at 623 ; PIC: bb.1 (%ir-block.0): 624 ; PIC: successors: %bb.2(0x80000000) 625 ; PIC: $sp = ADDiu $sp, -8 626 ; PIC: SW $ra, $sp, 0 627 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 628 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 629 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 630 ; PIC: } 631 ; PIC: bb.2 (%ir-block.0): 632 ; PIC: successors: %bb.4(0x80000000) 633 ; PIC: $at = ADDu $ra, $at 634 ; PIC: $ra = LW $sp, 0 635 ; PIC: JR $at { 636 ; PIC: $sp = ADDiu $sp, 8 637 ; PIC: } 638 ; PIC: bb.3.iftrue: 639 ; PIC: successors: %bb.4(0x80000000) 640 ; PIC: INLINEASM &".space 131068", 1 641 ; PIC: bb.4.tail: 642 ; PIC: JRC16_MM undef $ra 643 bb.0 (%ir-block.0): 644 successors: %bb.1(0x40000000), %bb.2(0x40000000) 645 liveins: $a0 646 647 renamable $at = ANDi killed renamable $a0, 1 648 BNE_MM killed renamable $at, $zero, %bb.2, implicit-def $at 649 650 bb.1.iftrue: 651 successors: %bb.2(0x80000000) 652 653 INLINEASM &".space 131068", 1 654 655 bb.2.tail: 656 PseudoReturn undef $ra 657 658... 659--- 660 661name: expand_BEQZ16_MM 662alignment: 4 663exposesReturnsTwice: false 664legalized: false 665regBankSelected: false 666selected: false 667failedISel: false 668tracksRegLiveness: true 669registers: 670liveins: 671 - { reg: '$a0', virtual-reg: '' } 672frameInfo: 673 isFrameAddressTaken: false 674 isReturnAddressTaken: false 675 hasStackMap: false 676 hasPatchPoint: false 677 stackSize: 0 678 offsetAdjustment: 0 679 maxAlignment: 1 680 adjustsStack: false 681 hasCalls: false 682 stackProtector: '' 683 maxCallFrameSize: 0 684 hasOpaqueSPAdjustment: false 685 hasVAStart: false 686 hasMustTailInVarArgFunc: false 687 localFrameSize: 0 688 savePoint: '' 689 restorePoint: '' 690fixedStack: 691stack: 692constants: 693body: | 694 ; MM-LABEL: name: expand_BEQZ16_MM 695 ; MM: bb.0 (%ir-block.0): 696 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 697 ; MM: renamable $v0 = ANDi killed renamable $a0, 1 698 ; MM: BNEZ16_MM $v0, %bb.2, implicit-def $at { 699 ; MM: NOP 700 ; MM: } 701 ; MM: bb.1 (%ir-block.0): 702 ; MM: successors: %bb.3(0x80000000) 703 ; MM: J %bb.3, implicit-def $at { 704 ; MM: NOP 705 ; MM: } 706 ; MM: bb.2.iftrue: 707 ; MM: successors: %bb.3(0x80000000) 708 ; MM: INLINEASM &".space 131068", 1 709 ; MM: bb.3.tail: 710 ; MM: JRC16_MM undef $ra 711 ; PIC-LABEL: name: expand_BEQZ16_MM 712 ; PIC: bb.0 (%ir-block.0): 713 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 714 ; PIC: renamable $v0 = ANDi killed renamable $a0, 1 715 ; PIC: BNEZ16_MM $v0, %bb.3, implicit-def $at { 716 ; PIC: NOP 717 ; PIC: } 718 ; PIC: bb.1 (%ir-block.0): 719 ; PIC: successors: %bb.2(0x80000000) 720 ; PIC: $sp = ADDiu $sp, -8 721 ; PIC: SW $ra, $sp, 0 722 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 723 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 724 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 725 ; PIC: } 726 ; PIC: bb.2 (%ir-block.0): 727 ; PIC: successors: %bb.4(0x80000000) 728 ; PIC: $at = ADDu $ra, $at 729 ; PIC: $ra = LW $sp, 0 730 ; PIC: JR $at { 731 ; PIC: $sp = ADDiu $sp, 8 732 ; PIC: } 733 ; PIC: bb.3.iftrue: 734 ; PIC: successors: %bb.4(0x80000000) 735 ; PIC: INLINEASM &".space 131068", 1 736 ; PIC: bb.4.tail: 737 ; PIC: JRC16_MM undef $ra 738 bb.0 (%ir-block.0): 739 successors: %bb.1(0x40000000), %bb.2(0x40000000) 740 liveins: $a0 741 742 renamable $v0 = ANDi killed renamable $a0, 1 743 BEQZ16_MM killed renamable $v0, %bb.2, implicit-def $at 744 745 bb.1.iftrue: 746 successors: %bb.2(0x80000000) 747 748 INLINEASM &".space 131068", 1 749 750 bb.2.tail: 751 PseudoReturn undef $ra 752 753... 754--- 755 756name: expand_BNEZ16_MM 757alignment: 4 758exposesReturnsTwice: false 759legalized: false 760regBankSelected: false 761selected: false 762failedISel: false 763tracksRegLiveness: true 764registers: 765liveins: 766 - { reg: '$a0', virtual-reg: '' } 767frameInfo: 768 isFrameAddressTaken: false 769 isReturnAddressTaken: false 770 hasStackMap: false 771 hasPatchPoint: false 772 stackSize: 0 773 offsetAdjustment: 0 774 maxAlignment: 1 775 adjustsStack: false 776 hasCalls: false 777 stackProtector: '' 778 maxCallFrameSize: 0 779 hasOpaqueSPAdjustment: false 780 hasVAStart: false 781 hasMustTailInVarArgFunc: false 782 localFrameSize: 0 783 savePoint: '' 784 restorePoint: '' 785fixedStack: 786stack: 787constants: 788body: | 789 ; MM-LABEL: name: expand_BNEZ16_MM 790 ; MM: bb.0 (%ir-block.0): 791 ; MM: successors: %bb.2(0x40000000), %bb.1(0x40000000) 792 ; MM: renamable $v0 = ANDi killed renamable $a0, 1 793 ; MM: BEQZ16_MM $v0, %bb.2, implicit-def $at { 794 ; MM: NOP 795 ; MM: } 796 ; MM: bb.1 (%ir-block.0): 797 ; MM: successors: %bb.3(0x80000000) 798 ; MM: J %bb.3, implicit-def $at { 799 ; MM: NOP 800 ; MM: } 801 ; MM: bb.2.iftrue: 802 ; MM: successors: %bb.3(0x80000000) 803 ; MM: INLINEASM &".space 131068", 1 804 ; MM: bb.3.tail: 805 ; MM: JRC16_MM undef $ra 806 ; PIC-LABEL: name: expand_BNEZ16_MM 807 ; PIC: bb.0 (%ir-block.0): 808 ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) 809 ; PIC: renamable $v0 = ANDi killed renamable $a0, 1 810 ; PIC: BEQZ16_MM $v0, %bb.3, implicit-def $at { 811 ; PIC: NOP 812 ; PIC: } 813 ; PIC: bb.1 (%ir-block.0): 814 ; PIC: successors: %bb.2(0x80000000) 815 ; PIC: $sp = ADDiu $sp, -8 816 ; PIC: SW $ra, $sp, 0 817 ; PIC: $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2 818 ; PIC: BAL_BR_MM %bb.2, implicit-def $ra { 819 ; PIC: $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2 820 ; PIC: } 821 ; PIC: bb.2 (%ir-block.0): 822 ; PIC: successors: %bb.4(0x80000000) 823 ; PIC: $at = ADDu $ra, $at 824 ; PIC: $ra = LW $sp, 0 825 ; PIC: JR $at { 826 ; PIC: $sp = ADDiu $sp, 8 827 ; PIC: } 828 ; PIC: bb.3.iftrue: 829 ; PIC: successors: %bb.4(0x80000000) 830 ; PIC: INLINEASM &".space 131068", 1 831 ; PIC: bb.4.tail: 832 ; PIC: JRC16_MM undef $ra 833 bb.0 (%ir-block.0): 834 successors: %bb.1(0x40000000), %bb.2(0x40000000) 835 liveins: $a0 836 837 renamable $v0 = ANDi killed renamable $a0, 1 838 BNEZ16_MM killed renamable $v0, %bb.2, implicit-def $at 839 840 bb.1.iftrue: 841 successors: %bb.2(0x80000000) 842 843 INLINEASM &".space 131068", 1 844 845 bb.2.tail: 846 PseudoReturn undef $ra 847 848... 849