# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# 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
# 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

# Test the long branch expansion of various branches

--- |
  define void @expand_BEQ_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BGEZ_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BGTZ_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BLEZ_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BLTZ_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BNE_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BEQZ16_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

  define void @expand_BNEZ16_MM(i1 %a) {
    br i1 %a, label %iftrue, label %tail

  iftrue:
    call void asm sideeffect ".space 131068", ""()
    br label %tail

  tail:
    ret void
  }

...
---

name:            expand_BEQ_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BEQ_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $at = ANDi killed renamable $a0, 1
  ; MM:   BNEZC_MM $at, %bb.2, implicit-def $at
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BEQ_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $at = ANDi killed renamable $a0, 1
  ; PIC:   BNEZC_MM $at, %bb.3, implicit-def $at
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $at = ANDi killed renamable $a0, 1
    BEQ_MM killed renamable $at, $zero, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BGEZ_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BGEZ_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $at = ANDi killed renamable $a0, 1
  ; MM:   BLTZ_MM $at, %bb.2, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BGEZ_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $at = ANDi killed renamable $a0, 1
  ; PIC:   BLTZ_MM $at, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $at = ANDi killed renamable $a0, 1
    BGEZ_MM killed renamable $at, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BGTZ_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BGTZ_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $at = ANDi killed renamable $a0, 1
  ; MM:   BLEZ_MM $at, %bb.2, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BGTZ_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $at = ANDi killed renamable $a0, 1
  ; PIC:   BLEZ_MM $at, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $at = ANDi killed renamable $a0, 1
    BGTZ_MM killed renamable $at, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BLEZ_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BLEZ_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $at = ANDi killed renamable $a0, 1
  ; MM:   BGTZ_MM $at, %bb.2, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BLEZ_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $at = ANDi killed renamable $a0, 1
  ; PIC:   BGTZ_MM $at, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $at = ANDi killed renamable $a0, 1
    BLEZ_MM killed renamable $at, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BLTZ_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BLTZ_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $at = ANDi killed renamable $a0, 1
  ; MM:   BGEZ_MM $at, %bb.2, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BLTZ_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $at = ANDi killed renamable $a0, 1
  ; PIC:   BGEZ_MM $at, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $at = ANDi killed renamable $a0, 1
    BLTZ_MM killed renamable $at, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BNE_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BNE_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $at = ANDi killed renamable $a0, 1
  ; MM:   BEQZC_MM $at, %bb.2, implicit-def $at
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BNE_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $at = ANDi killed renamable $a0, 1
  ; PIC:   BEQZC_MM $at, %bb.3, implicit-def $at
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $at = ANDi killed renamable $a0, 1
    BNE_MM killed renamable $at, $zero, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BEQZ16_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BEQZ16_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $v0 = ANDi killed renamable $a0, 1
  ; MM:   BNEZ16_MM $v0, %bb.2, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BEQZ16_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $v0 = ANDi killed renamable $a0, 1
  ; PIC:   BNEZ16_MM $v0, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $v0 = ANDi killed renamable $a0, 1
    BEQZ16_MM killed renamable $v0, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
---

name:            expand_BNEZ16_MM
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$a0', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  localFrameSize:  0
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  ; MM-LABEL: name: expand_BNEZ16_MM
  ; MM: bb.0 (%ir-block.0):
  ; MM:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
  ; MM:   renamable $v0 = ANDi killed renamable $a0, 1
  ; MM:   BEQZ16_MM $v0, %bb.2, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.1 (%ir-block.0):
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   J %bb.3, implicit-def $at {
  ; MM:     NOP
  ; MM:   }
  ; MM: bb.2.iftrue:
  ; MM:   successors: %bb.3(0x80000000)
  ; MM:   INLINEASM &".space 131068", 1
  ; MM: bb.3.tail:
  ; MM:   JRC16_MM undef $ra
  ; PIC-LABEL: name: expand_BNEZ16_MM
  ; PIC: bb.0 (%ir-block.0):
  ; PIC:   successors: %bb.3(0x40000000), %bb.1(0x40000000)
  ; PIC:   renamable $v0 = ANDi killed renamable $a0, 1
  ; PIC:   BEQZ16_MM $v0, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1 (%ir-block.0):
  ; PIC:   successors: %bb.2(0x80000000)
  ; PIC:   $sp = ADDiu $sp, -8
  ; PIC:   SW $ra, $sp, 0
  ; PIC:   $at = LONG_BRANCH_LUi target-flags(mips-abs-hi) %bb.4, %bb.2
  ; PIC:   BAL_BR_MM %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2 (%ir-block.0):
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   $at = ADDu $ra, $at
  ; PIC:   $ra = LW $sp, 0
  ; PIC:   JR $at {
  ; PIC:     $sp = ADDiu $sp, 8
  ; PIC:   }
  ; PIC: bb.3.iftrue:
  ; PIC:   successors: %bb.4(0x80000000)
  ; PIC:   INLINEASM &".space 131068", 1
  ; PIC: bb.4.tail:
  ; PIC:   JRC16_MM undef $ra
  bb.0 (%ir-block.0):
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $a0

    renamable $v0 = ANDi killed renamable $a0, 1
    BNEZ16_MM killed renamable $v0, %bb.2, implicit-def $at

  bb.1.iftrue:
    successors: %bb.2(0x80000000)

    INLINEASM &".space 131068", 1

  bb.2.tail:
    PseudoReturn undef $ra

...
