Home | History | Annotate | Download | only in longbranch
      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 
     99 name:            expand_BEQ_MM
    100 alignment:       2
    101 exposesReturnsTwice: false
    102 legalized:       false
    103 regBankSelected: false
    104 selected:        false
    105 failedISel:      false
    106 tracksRegLiveness: true
    107 registers:
    108 liveins:
    109   - { reg: '$a0', virtual-reg: '' }
    110 frameInfo:
    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:    ''
    128 fixedStack:
    129 stack:
    130 constants:
    131 body:             |
    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 
    190 name:            expand_BGEZ_MM
    191 alignment:       2
    192 exposesReturnsTwice: false
    193 legalized:       false
    194 regBankSelected: false
    195 selected:        false
    196 failedISel:      false
    197 tracksRegLiveness: true
    198 registers:
    199 liveins:
    200   - { reg: '$a0', virtual-reg: '' }
    201 frameInfo:
    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:    ''
    219 fixedStack:
    220 stack:
    221 constants:
    222 body:             |
    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 
    285 name:            expand_BGTZ_MM
    286 alignment:       2
    287 exposesReturnsTwice: false
    288 legalized:       false
    289 regBankSelected: false
    290 selected:        false
    291 failedISel:      false
    292 tracksRegLiveness: true
    293 registers:
    294 liveins:
    295   - { reg: '$a0', virtual-reg: '' }
    296 frameInfo:
    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:    ''
    314 fixedStack:
    315 stack:
    316 constants:
    317 body:             |
    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 
    380 name:            expand_BLEZ_MM
    381 alignment:       2
    382 exposesReturnsTwice: false
    383 legalized:       false
    384 regBankSelected: false
    385 selected:        false
    386 failedISel:      false
    387 tracksRegLiveness: true
    388 registers:
    389 liveins:
    390   - { reg: '$a0', virtual-reg: '' }
    391 frameInfo:
    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:    ''
    409 fixedStack:
    410 stack:
    411 constants:
    412 body:             |
    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 
    475 name:            expand_BLTZ_MM
    476 alignment:       2
    477 exposesReturnsTwice: false
    478 legalized:       false
    479 regBankSelected: false
    480 selected:        false
    481 failedISel:      false
    482 tracksRegLiveness: true
    483 registers:
    484 liveins:
    485   - { reg: '$a0', virtual-reg: '' }
    486 frameInfo:
    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:    ''
    504 fixedStack:
    505 stack:
    506 constants:
    507 body:             |
    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 
    570 name:            expand_BNE_MM
    571 alignment:       2
    572 exposesReturnsTwice: false
    573 legalized:       false
    574 regBankSelected: false
    575 selected:        false
    576 failedISel:      false
    577 tracksRegLiveness: true
    578 registers:
    579 liveins:
    580   - { reg: '$a0', virtual-reg: '' }
    581 frameInfo:
    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:    ''
    599 fixedStack:
    600 stack:
    601 constants:
    602 body:             |
    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 
    661 name:            expand_BEQZ16_MM
    662 alignment:       2
    663 exposesReturnsTwice: false
    664 legalized:       false
    665 regBankSelected: false
    666 selected:        false
    667 failedISel:      false
    668 tracksRegLiveness: true
    669 registers:
    670 liveins:
    671   - { reg: '$a0', virtual-reg: '' }
    672 frameInfo:
    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:    ''
    690 fixedStack:
    691 stack:
    692 constants:
    693 body:             |
    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 
    756 name:            expand_BNEZ16_MM
    757 alignment:       2
    758 exposesReturnsTwice: false
    759 legalized:       false
    760 regBankSelected: false
    761 selected:        false
    762 failedISel:      false
    763 tracksRegLiveness: true
    764 registers:
    765 liveins:
    766   - { reg: '$a0', virtual-reg: '' }
    767 frameInfo:
    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:    ''
    785 fixedStack:
    786 stack:
    787 constants:
    788 body:             |
    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