; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s -wasm-keep-registers | FileCheck %s

target triple = "wasm32-unknown-unknown"

define i8 @ucmp.8.8(i8 zeroext %x, i8 zeroext %y) nounwind {
; CHECK-LABEL: ucmp.8.8:
; CHECK:         .functype ucmp.8.8 (i32, i32) -> (i32)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push4=, 0
; CHECK-NEXT:    local.get $push3=, 1
; CHECK-NEXT:    i32.gt_u $push1=, $pop4, $pop3
; CHECK-NEXT:    local.get $push6=, 0
; CHECK-NEXT:    local.get $push5=, 1
; CHECK-NEXT:    i32.lt_u $push0=, $pop6, $pop5
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    # fallthrough-return
  %1 = call i8 @llvm.ucmp(i8 %x, i8 %y)
  ret i8 %1
}

define i8 @ucmp.8.16(i16 zeroext %x, i16 zeroext %y) nounwind {
; CHECK-LABEL: ucmp.8.16:
; CHECK:         .functype ucmp.8.16 (i32, i32) -> (i32)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push4=, 0
; CHECK-NEXT:    local.get $push3=, 1
; CHECK-NEXT:    i32.gt_u $push1=, $pop4, $pop3
; CHECK-NEXT:    local.get $push6=, 0
; CHECK-NEXT:    local.get $push5=, 1
; CHECK-NEXT:    i32.lt_u $push0=, $pop6, $pop5
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    # fallthrough-return
  %1 = call i8 @llvm.ucmp(i16 %x, i16 %y)
  ret i8 %1
}

define i8 @ucmp.8.32(i32 %x, i32 %y) nounwind {
; CHECK-LABEL: ucmp.8.32:
; CHECK:         .functype ucmp.8.32 (i32, i32) -> (i32)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push4=, 0
; CHECK-NEXT:    local.get $push3=, 1
; CHECK-NEXT:    i32.gt_u $push1=, $pop4, $pop3
; CHECK-NEXT:    local.get $push6=, 0
; CHECK-NEXT:    local.get $push5=, 1
; CHECK-NEXT:    i32.lt_u $push0=, $pop6, $pop5
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    # fallthrough-return
  %1 = call i8 @llvm.ucmp(i32 %x, i32 %y)
  ret i8 %1
}

define i8 @ucmp.8.64(i64 %x, i64 %y) nounwind {
; CHECK-LABEL: ucmp.8.64:
; CHECK:         .functype ucmp.8.64 (i64, i64) -> (i32)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push4=, 0
; CHECK-NEXT:    local.get $push3=, 1
; CHECK-NEXT:    i64.gt_u $push1=, $pop4, $pop3
; CHECK-NEXT:    local.get $push6=, 0
; CHECK-NEXT:    local.get $push5=, 1
; CHECK-NEXT:    i64.lt_u $push0=, $pop6, $pop5
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    # fallthrough-return
  %1 = call i8 @llvm.ucmp(i64 %x, i64 %y)
  ret i8 %1
}

define i8 @ucmp.8.128(i128 %x, i128 %y) nounwind {
; CHECK-LABEL: ucmp.8.128:
; CHECK:         .functype ucmp.8.128 (i64, i64, i64, i64) -> (i32)
; CHECK-NEXT:    .local i32
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push10=, 0
; CHECK-NEXT:    local.get $push9=, 2
; CHECK-NEXT:    i64.gt_u $push4=, $pop10, $pop9
; CHECK-NEXT:    local.get $push12=, 1
; CHECK-NEXT:    local.get $push11=, 3
; CHECK-NEXT:    i64.gt_u $push3=, $pop12, $pop11
; CHECK-NEXT:    local.get $push14=, 1
; CHECK-NEXT:    local.get $push13=, 3
; CHECK-NEXT:    i64.eq $push8=, $pop14, $pop13
; CHECK-NEXT:    local.tee $push7=, 4, $pop8
; CHECK-NEXT:    i32.select $push5=, $pop4, $pop3, $pop7
; CHECK-NEXT:    local.get $push16=, 0
; CHECK-NEXT:    local.get $push15=, 2
; CHECK-NEXT:    i64.lt_u $push1=, $pop16, $pop15
; CHECK-NEXT:    local.get $push18=, 1
; CHECK-NEXT:    local.get $push17=, 3
; CHECK-NEXT:    i64.lt_u $push0=, $pop18, $pop17
; CHECK-NEXT:    local.get $push19=, 4
; CHECK-NEXT:    i32.select $push2=, $pop1, $pop0, $pop19
; CHECK-NEXT:    i32.sub $push6=, $pop5, $pop2
; CHECK-NEXT:    # fallthrough-return
  %1 = call i8 @llvm.ucmp(i128 %x, i128 %y)
  ret i8 %1
}

define i32 @ucmp.32.32(i32 %x, i32 %y) nounwind {
; CHECK-LABEL: ucmp.32.32:
; CHECK:         .functype ucmp.32.32 (i32, i32) -> (i32)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push4=, 0
; CHECK-NEXT:    local.get $push3=, 1
; CHECK-NEXT:    i32.gt_u $push1=, $pop4, $pop3
; CHECK-NEXT:    local.get $push6=, 0
; CHECK-NEXT:    local.get $push5=, 1
; CHECK-NEXT:    i32.lt_u $push0=, $pop6, $pop5
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    # fallthrough-return
  %1 = call i32 @llvm.ucmp(i32 %x, i32 %y)
  ret i32 %1
}

define i32 @ucmp.32.64(i64 %x, i64 %y) nounwind {
; CHECK-LABEL: ucmp.32.64:
; CHECK:         .functype ucmp.32.64 (i64, i64) -> (i32)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push4=, 0
; CHECK-NEXT:    local.get $push3=, 1
; CHECK-NEXT:    i64.gt_u $push1=, $pop4, $pop3
; CHECK-NEXT:    local.get $push6=, 0
; CHECK-NEXT:    local.get $push5=, 1
; CHECK-NEXT:    i64.lt_u $push0=, $pop6, $pop5
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    # fallthrough-return
  %1 = call i32 @llvm.ucmp(i64 %x, i64 %y)
  ret i32 %1
}

define i64 @ucmp.64.64(i64 %x, i64 %y) nounwind {
; CHECK-LABEL: ucmp.64.64:
; CHECK:         .functype ucmp.64.64 (i64, i64) -> (i64)
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    local.get $push5=, 0
; CHECK-NEXT:    local.get $push4=, 1
; CHECK-NEXT:    i64.gt_u $push1=, $pop5, $pop4
; CHECK-NEXT:    local.get $push7=, 0
; CHECK-NEXT:    local.get $push6=, 1
; CHECK-NEXT:    i64.lt_u $push0=, $pop7, $pop6
; CHECK-NEXT:    i32.sub $push2=, $pop1, $pop0
; CHECK-NEXT:    i64.extend_i32_s $push3=, $pop2
; CHECK-NEXT:    # fallthrough-return
  %1 = call i64 @llvm.ucmp(i64 %x, i64 %y)
  ret i64 %1
}
