# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=mips-mti-linux-gnu %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MIPS
# RUN: llc -mtriple=mips-mti-linux-gnu %s -o - -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 i32 @a(double %a, double %b) {
  entry:
    %cmp = fcmp une double %a, %b
    br i1 %cmp, label %if.then, label %return

  if.then:
    call void asm sideeffect ".space 310680", "~{$1}"()
    ret i32 0

  return:
    ret i32 1
  }

  define i32 @b(double %a, double %b) {
  entry:
    %cmp = fcmp une double %a, %b
    br i1 %cmp, label %if.then, label %return

  if.then:
    call void asm sideeffect ".space 310680", "~{$1}"()
    ret i32 0

  return:
    ret i32 1
  }

...
---
name:            a
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$d6', virtual-reg: '' }
  - { reg: '$d7', 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:             |
  ; MIPS-LABEL: name: a
  ; MIPS: bb.0.entry:
  ; MIPS:   successors: %bb.2(0x50000000), %bb.1(0x30000000)
  ; MIPS:   FCMP_D32 killed renamable $d6, killed renamable $d7, 2, implicit-def $fcc0
  ; MIPS:   BC1F $fcc0, %bb.2, implicit-def $at {
  ; MIPS:     NOP
  ; MIPS:   }
  ; MIPS: bb.1.entry:
  ; MIPS:   successors: %bb.3(0x80000000)
  ; MIPS:   J %bb.3, implicit-def $at {
  ; MIPS:     NOP
  ; MIPS:   }
  ; MIPS: bb.2.if.then:
  ; MIPS:   INLINEASM &".space 310680", 1, 12, implicit-def dead early-clobber $at
  ; MIPS:   PseudoReturn undef $ra, implicit killed $v0 {
  ; MIPS:     $v0 = ADDiu $zero, 0
  ; MIPS:   }
  ; MIPS: bb.3.return:
  ; MIPS:   PseudoReturn undef $ra, implicit killed $v0 {
  ; MIPS:     $v0 = ADDiu $zero, 1
  ; MIPS:   }
  ; PIC-LABEL: name: a
  ; PIC: bb.0.entry:
  ; PIC:   successors: %bb.3(0x50000000), %bb.1(0x30000000)
  ; PIC:   FCMP_D32 killed renamable $d6, killed renamable $d7, 2, implicit-def $fcc0
  ; PIC:   BC1F $fcc0, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1.entry:
  ; 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 %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2.entry:
  ; 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.if.then:
  ; PIC:   INLINEASM &".space 310680", 1, 12, implicit-def dead early-clobber $at
  ; PIC:   PseudoReturn undef $ra, implicit killed $v0 {
  ; PIC:     $v0 = ADDiu $zero, 0
  ; PIC:   }
  ; PIC: bb.4.return:
  ; PIC:   PseudoReturn undef $ra, implicit killed $v0 {
  ; PIC:     $v0 = ADDiu $zero, 1
  ; PIC:   }
  bb.0.entry:
    successors: %bb.1(0x50000000), %bb.2(0x30000000)
    liveins: $d6, $d7

    FCMP_D32 killed renamable $d6, killed renamable $d7, 2, implicit-def $fcc0
    BC1T killed $fcc0, %bb.2, implicit-def $at

  bb.1.if.then:
    INLINEASM &".space 310680", 1, 12, implicit-def dead early-clobber $at
    $v0 = ADDiu $zero, 0
    PseudoReturn undef $ra, implicit killed $v0

  bb.2.return:
    $v0 = ADDiu $zero, 1
    PseudoReturn undef $ra, implicit killed $v0

...
---
name:            b
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$d6', virtual-reg: '' }
  - { reg: '$d7', 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:             |
  ; MIPS-LABEL: name: b
  ; MIPS: bb.0.entry:
  ; MIPS:   successors: %bb.2(0x50000000), %bb.1(0x30000000)
  ; MIPS:   FCMP_D32 killed renamable $d6, killed renamable $d7, 2, implicit-def $fcc0
  ; MIPS:   BC1T $fcc0, %bb.2, implicit-def $at {
  ; MIPS:     NOP
  ; MIPS:   }
  ; MIPS: bb.1.entry:
  ; MIPS:   successors: %bb.3(0x80000000)
  ; MIPS:   J %bb.3, implicit-def $at {
  ; MIPS:     NOP
  ; MIPS:   }
  ; MIPS: bb.2.if.then:
  ; MIPS:   INLINEASM &".space 310680", 1, 12, implicit-def dead early-clobber $at
  ; MIPS:   PseudoReturn undef $ra, implicit killed $v0 {
  ; MIPS:     $v0 = ADDiu $zero, 0
  ; MIPS:   }
  ; MIPS: bb.3.return:
  ; MIPS:   PseudoReturn undef $ra, implicit killed $v0 {
  ; MIPS:     $v0 = ADDiu $zero, 1
  ; MIPS:   }
  ; PIC-LABEL: name: b
  ; PIC: bb.0.entry:
  ; PIC:   successors: %bb.3(0x50000000), %bb.1(0x30000000)
  ; PIC:   FCMP_D32 killed renamable $d6, killed renamable $d7, 2, implicit-def $fcc0
  ; PIC:   BC1T $fcc0, %bb.3, implicit-def $at {
  ; PIC:     NOP
  ; PIC:   }
  ; PIC: bb.1.entry:
  ; 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 %bb.2, implicit-def $ra {
  ; PIC:     $at = LONG_BRANCH_ADDiu $at, target-flags(mips-abs-lo) %bb.4, %bb.2
  ; PIC:   }
  ; PIC: bb.2.entry:
  ; 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.if.then:
  ; PIC:   INLINEASM &".space 310680", 1, 12, implicit-def dead early-clobber $at
  ; PIC:   PseudoReturn undef $ra, implicit killed $v0 {
  ; PIC:     $v0 = ADDiu $zero, 0
  ; PIC:   }
  ; PIC: bb.4.return:
  ; PIC:   PseudoReturn undef $ra, implicit killed $v0 {
  ; PIC:     $v0 = ADDiu $zero, 1
  ; PIC:   }
  bb.0.entry:
    successors: %bb.1(0x50000000), %bb.2(0x30000000)
    liveins: $d6, $d7

    FCMP_D32 killed renamable $d6, killed renamable $d7, 2, implicit-def $fcc0
    BC1F killed $fcc0, %bb.2, implicit-def $at

  bb.1.if.then:
    INLINEASM &".space 310680", 1, 12, implicit-def dead early-clobber $at
    $v0 = ADDiu $zero, 0
    PseudoReturn undef $ra, implicit killed $v0

  bb.2.return:
    $v0 = ADDiu $zero, 1
    PseudoReturn undef $ra, implicit killed $v0

...
