; RUN: llc -relocation-model=pic -march=mipsel -mcpu=mips64r6 \
; RUN:     -disable-mips-delay-filler -target-abi=n64 < %s | FileCheck %s

; Function Attrs: nounwind
define void @l() {
entry:
; CHECK-LABEL:  l:
; CHECK: jalrc $25
  %call = tail call i64 @k()
; CHECK: jalrc $25
  %call1 = tail call i64 @j()
  %cmp = icmp eq i64 %call, %call1
; CHECK: bnec
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext -2)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc  $ra
  ret void
}

declare i64 @k()

declare i64 @j()

declare void @f(i64 signext)

; Function Attrs: define void @l2() {
define void @l2() {
entry:
; CHECK-LABEL: l2:
; CHECK: jalrc $25
  %call = tail call i64 @k()
; CHECK: jalrc $25
  %call1 = tail call i64 @i()
  %cmp = icmp eq i64 %call, %call1
; CHECK: beqc
  br i1 %cmp, label %if.end, label %if.then

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext -1)
  br label %if.end

if.end:                                           ; preds = %entry, %if.then
; CHECK: jrc  $ra
  ret void
}

declare i64 @i()

; Function Attrs: nounwind
define void @l3() {
entry:
; CHECK-LABEL: l3:
; CHECK: jalrc $25
  %call = tail call i64 @k()
  %cmp = icmp slt i64 %call, 0
; CHECK: bgez
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext 0)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc $ra
  ret void
}

; Function Attrs: nounwind
define void @l4() {
entry:
; CHECK-LABEL: l4:
; CHECK: jalrc $25
  %call = tail call i64 @k()
  %cmp = icmp slt i64 %call, 1
; CHECK: bgtzc
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry:
  tail call void @f(i64 signext 1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc $ra
  ret void
}

; Function Attrs: nounwind
define void @l5() {
entry:
; CHECK-LABEL: l5:
; CHECK: jalrc $25
  %call = tail call i64 @k()
  %cmp = icmp sgt i64 %call, 0
; CHECK: blezc
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext 2)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc  $ra
  ret void
}

; Function Attrs: nounwind
define void @l6() {
entry:
; CHECK-LABEL: l6:
; CHECK: jalrc $25
  %call = tail call i64 @k()
  %cmp = icmp sgt i64 %call, -1
; CHECK: bltzc
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext 3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc $ra
  ret void
}

; Function Attrs: nounwind
define void @l7() {
entry:
; CHECK-LABEL: l7:
; CHECK: jalrc $25
  %call = tail call i64 @k()
  %cmp = icmp eq i64 %call, 0
; CHECK: bnezc
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext 4)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc  $ra
  ret void
}

; Function Attrs: nounwind
define void @l8() {
entry:
; CHECK-LABEL: l8:
; CHECK: jalrc $25
  %call = tail call i64 @k()
  %cmp = icmp eq i64 %call, 0
; CHECK: beqzc
  br i1 %cmp, label %if.end, label %if.then

if.then:                                          ; preds = %entry:
; CHECK: jalrc $25
  tail call void @f(i64 signext 5)
  br label %if.end

if.end:                                           ; preds = %entry, %if.then
; CHECK: jrc  $ra
  ret void
}

define i64 @l9(i8* ()* %i) {
entry:
; CHECK-LABEL: l9:
  %i.addr = alloca i8* ()*, align 4
  store i8* ()* %i, i8* ()** %i.addr, align 4
; CHECK: jalrc $25
  %call = call i64 @k()
  %cmp = icmp ne i64 %call, 0
; CHECK: beqzc
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %0 = load i8* ()*, i8* ()** %i.addr, align 4
; CHECK: jalrc $25
  %call1 = call i8* %0()
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
; CHECK: jrc $ra
  ret i64 -1
}
