; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel=true -mcpu=mips32r2 \
; RUN:     < %s -verify-machineinstrs | FileCheck %s

define void @testeq(i32, i32) {
; CHECK-LABEL: testeq:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       beq $[[REG0]], $[[REG1]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp eq i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testne(i32, i32) {
; CHECK-LABEL: testne:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       bne $[[REG0]], $[[REG1]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp ne i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testugt(i32, i32) {
; CHECK-LABEL: testugt:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       sltu $[[REG2:[0-9]+]], $[[REG1]], $[[REG0]]
; CHECK:       bnez $[[REG2]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp ugt i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testuge(i32, i32) {
; CHECK-LABEL: testuge:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       sltu $[[REG2:[0-9]+]], $[[REG0]], $[[REG1]]
; CHECK:       beqz $[[REG2]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp uge i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testult(i32, i32) {
; CHECK-LABEL: testult:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       sltu $[[REG2:[0-9]+]], $[[REG0]], $[[REG1]]
; CHECK:       bnez $[[REG2]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp ult i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testule(i32, i32) {
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       sltu $[[REG2:[0-9]+]], $[[REG1]], $[[REG0]]
; CHECK:       beqz $[[REG2]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp ule i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testsgt(i32, i32) {
; CHECK-LABEL: testsgt:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       negu $[[REG2:[0-9]+]], $[[REG0]]
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       negu $[[REG3:[0-9]+]], $[[REG1]]
; CHECK:       slt $[[REG4:[0-9]+]], $[[REG3]], $[[REG2]]
; CHECK:       bnez $[[REG4]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp sgt i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testsge(i32, i32) {
; CHECK-LABEL: testsge:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       negu $[[REG0]], $[[REG0]]
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       negu $[[REG1]], $[[REG1]]
; CHECK:       slt $[[REG2:[0-9]+]], $[[REG0]], $[[REG1]]
; CHECK:       beqz $[[REG2]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp sge i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testslt(i32, i32) {
; CHECK-LABEL: testslt:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       negu $[[REG0]], $[[REG0]]
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       negu $[[REG1]], $[[REG1]]
; CHECK:       slt $[[REG2:[0-9]+]], $[[REG0]], $[[REG1]]
; CHECK:       bnez $[[REG2]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp slt i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


define void @testsle(i32, i32) {
; CHECK-LABEL: testsle:
; CHECK:       andi $[[REG0:[0-9]+]], $4, 1
; CHECK:       negu $[[REG2:[0-9]+]], $[[REG0]]
; CHECK:       andi $[[REG1:[0-9]+]], $5, 1
; CHECK:       negu $[[REG3:[0-9]+]], $[[REG1]]
; CHECK:       slt $[[REG4:[0-9]+]], $[[REG3]], $[[REG2]]
; CHECK:       beqz $[[REG4]],
  %3 = trunc i32 %0 to i1
  %4 = trunc i32 %1 to i1
  %5 = icmp sle i1 %3, %4
  br i1 %5, label %end, label %trap
trap:
  call void @llvm.trap()
  br label %end
end:
  ret void
}


declare void @llvm.trap()
