; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=mipsel < %s | FileCheck %s
; RUN: llc -mtriple=mips -mcpu=mips32r6 -mattr=micromips -relocation-model=pic < %s -asm-show-inst | FileCheck %s -check-prefix=MMR6

@g1 = external global i32

define i32 @seteq0(i32 %a) {
; CHECK-LABEL: seteq0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    sltiu $2, $4, 1
;
; MMR6-LABEL: seteq0:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    sltiu $2, $4, 1 # <MCInst #[[#MCINST1:]] SLTiu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1:]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2:]]>
; MMR6-NEXT:    # <MCOperand Imm:1>>
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2:]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3:]]>>
entry:
  %cmp = icmp eq i32 %a, 0
  %conv = zext i1 %cmp to i32
  ret i32 %conv
}

define i32 @setne0(i32 %a) {
; CHECK-LABEL: setne0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    sltu $2, $zero, $4
;
; MMR6-LABEL: setne0:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    sltu $2, $zero, $4 # <MCInst #[[#MCINST3:]] SLTu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG4:]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>>
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp ne i32 %a, 0
  %conv = zext i1 %cmp to i32
  ret i32 %conv
}

define void @slti_beq0(i32 %a) {
; CHECK-LABEL: slti_beq0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    slti $1, $4, -32768
; CHECK-NEXT:    beqz $1, $BB2_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB2_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: slti_beq0:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4:]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5:]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6:]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5:]]>>
; MMR6-NEXT:    slti $1, $4, -32768 # <MCInst #[[#MCINST7:]] SLTi_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6:]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Imm:-32768>>
; MMR6-NEXT:    beqzc $1, $BB2_2 # <MCInst #[[#MCINST8:]] BEQZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB2_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9:]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10:]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB2_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp slt i32 %a, -32768
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @slti_beq1(i32 %a) {
; CHECK-LABEL: slti_beq1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lui $1, 65535
; CHECK-NEXT:    ori $1, $1, 32766
; CHECK-NEXT:    slt $1, $1, $4
; CHECK-NEXT:    bnez $1, $BB3_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB3_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: slti_beq1:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    lui $1, 65535 # <MCInst #[[#MCINST11:]] LUi_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Imm:65535>>
; MMR6-NEXT:    ori $1, $1, 32766 # <MCInst #[[#MCINST12:]] ORi_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Imm:32766>>
; MMR6-NEXT:    slt $1, $1, $4 # <MCInst #[[#MCINST13:]] SLT_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>>
; MMR6-NEXT:    bnezc $1, $BB3_2 # <MCInst #[[#MCINST14:]] BNEZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB3_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB3_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp slt i32 %a, -32769
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @slti_beq2(i32 %a) {
; CHECK-LABEL: slti_beq2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    slti $1, $4, 32767
; CHECK-NEXT:    beqz $1, $BB4_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB4_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: slti_beq2:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    slti $1, $4, 32767 # <MCInst #[[#MCINST7]] SLTi_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Imm:32767>>
; MMR6-NEXT:    beqzc $1, $BB4_2 # <MCInst #[[#MCINST8]] BEQZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB4_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB4_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp slt i32 %a, 32767
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @slti_beq3(i32 %a) {
; CHECK-LABEL: slti_beq3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addiu $1, $zero, 32767
; CHECK-NEXT:    slt $1, $1, $4
; CHECK-NEXT:    bnez $1, $BB5_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB5_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: slti_beq3:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    addiu $1, $zero, 32767 # <MCInst #[[#MCINST15:]] ADDiu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG4]]>
; MMR6-NEXT:    # <MCOperand Imm:32767>>
; MMR6-NEXT:    slt $1, $1, $4 # <MCInst #[[#MCINST13]] SLT_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>>
; MMR6-NEXT:    bnezc $1, $BB5_2 # <MCInst #[[#MCINST14]] BNEZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB5_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB5_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp slt i32 %a, 32768
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @sltiu_beq0(i32 %a) {
; CHECK-LABEL: sltiu_beq0:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    sltiu $1, $4, 32767
; CHECK-NEXT:    beqz $1, $BB6_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB6_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: sltiu_beq0:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    sltiu $1, $4, 32767 # <MCInst #[[#MCINST1]] SLTiu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Imm:32767>>
; MMR6-NEXT:    beqzc $1, $BB6_2 # <MCInst #[[#MCINST8]] BEQZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB6_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB6_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp ult i32 %a, 32767
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @sltiu_beq1(i32 %a) {
; CHECK-LABEL: sltiu_beq1:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    addiu $1, $zero, 32767
; CHECK-NEXT:    sltu $1, $1, $4
; CHECK-NEXT:    bnez $1, $BB7_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB7_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: sltiu_beq1:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    addiu $1, $zero, 32767 # <MCInst #[[#MCINST15]] ADDiu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG4]]>
; MMR6-NEXT:    # <MCOperand Imm:32767>>
; MMR6-NEXT:    sltu $1, $1, $4 # <MCInst #[[#MCINST3]] SLTu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>>
; MMR6-NEXT:    bnezc $1, $BB7_2 # <MCInst #[[#MCINST14]] BNEZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB7_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB7_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp ult i32 %a, 32768
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @sltiu_beq2(i32 %a) {
; CHECK-LABEL: sltiu_beq2:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    sltiu $1, $4, -32768
; CHECK-NEXT:    beqz $1, $BB8_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB8_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: sltiu_beq2:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    sltiu $1, $4, -32768 # <MCInst #[[#MCINST1]] SLTiu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Imm:-32768>>
; MMR6-NEXT:    beqzc $1, $BB8_2 # <MCInst #[[#MCINST8]] BEQZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB8_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB8_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp ult i32 %a, -32768
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}

define void @sltiu_beq3(i32 %a) {
; CHECK-LABEL: sltiu_beq3:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    lui $1, 65535
; CHECK-NEXT:    ori $1, $1, 32766
; CHECK-NEXT:    sltu $1, $1, $4
; CHECK-NEXT:    bnez $1, $BB9_2
; CHECK-NEXT:    nop
; CHECK-NEXT:  # %bb.1: # %if.then
; CHECK-NEXT:    lui $1, %hi(g1)
; CHECK-NEXT:    sw $4, %lo(g1)($1)
; CHECK-NEXT:  $BB9_2: # %if.end
; CHECK-NEXT:    jr $ra
; CHECK-NEXT:    nop
;
; MMR6-LABEL: sltiu_beq3:
; MMR6:       # %bb.0: # %entry
; MMR6-NEXT:    lui $2, %hi(_gp_disp) # <MCInst #[[#MCINST4]] LUi
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4024,_gp_disp)>>
; MMR6-NEXT:    addiu $2, $2, %lo(_gp_disp) # <MCInst #[[#MCINST5]] ADDiu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4027,_gp_disp)>>
; MMR6-NEXT:    addu $2, $2, $25 # <MCInst #[[#MCINST6]] ADDu
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG5]]>>
; MMR6-NEXT:    lui $1, 65535 # <MCInst #[[#MCINST11]] LUi_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Imm:65535>>
; MMR6-NEXT:    ori $1, $1, 32766 # <MCInst #[[#MCINST12]] ORi_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Imm:32766>>
; MMR6-NEXT:    sltu $1, $1, $4 # <MCInst #[[#MCINST3]] SLTu_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>>
; MMR6-NEXT:    bnezc $1, $BB9_2 # <MCInst #[[#MCINST14]] BNEZC_MMR6
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG6]]>
; MMR6-NEXT:    # <MCOperand Expr:$BB9_2>>
; MMR6-NEXT:  # %bb.1: # %if.then
; MMR6-NEXT:    lw $2, %got(g1)($2) # <MCInst #[[#MCINST9]] LW_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Expr:specifier(4015,g1)>>
; MMR6-NEXT:    sw16 $4, 0($2) # <MCInst #[[#MCINST10]] SW16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG2]]>
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG1]]>
; MMR6-NEXT:    # <MCOperand Imm:0>>
; MMR6-NEXT:  $BB9_2: # %if.end
; MMR6-NEXT:    jrc $ra # <MCInst #[[#MCINST2]] JRC16_MM
; MMR6-NEXT:    # <MCOperand Reg:[[#MCREG3]]>>
entry:
  %cmp = icmp ult i32 %a, -32769
  br i1 %cmp, label %if.then, label %if.end

if.then:
  store i32 %a, ptr @g1, align 4
  br label %if.end

if.end:
  ret void
}
