; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=aarch64-eabi %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-ISEL
; RUN: llc -mtriple=aarch64-eabi %s -o - -mattr=+cssc | FileCheck %s --check-prefixes=CHECK,CHECK-ISEL-CSSC
; RUN: llc -mtriple=aarch64-eabi -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GLOBAL
; RUN: llc -mtriple=aarch64-eabi -global-isel %s -o - -mattr=+cssc | FileCheck %s --check-prefixes=CHECK,CHECK-GLOBAL-CSSC

; These tests just check that the plumbing is in place for @llvm.smax, @llvm.umax,
; @llvm.smin, @llvm.umin.

declare i8 @llvm.smax.i8(i8 %a, i8 %b) readnone

define i8 @smaxi8(i8 %a, i8 %b) {
; CHECK-ISEL-LABEL: smaxi8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    sxtb w8, w1
; CHECK-ISEL-NEXT:    sxtb w9, w0
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, gt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smaxi8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    sxtb w8, w1
; CHECK-ISEL-CSSC-NEXT:    sxtb w9, w0
; CHECK-ISEL-CSSC-NEXT:    smax w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smaxi8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    sxtb w8, w0
; CHECK-GLOBAL-NEXT:    cmp w8, w1, sxtb
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, gt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smaxi8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    sxtb w8, w0
; CHECK-GLOBAL-CSSC-NEXT:    sxtb w9, w1
; CHECK-GLOBAL-CSSC-NEXT:    smax w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i8 @llvm.smax.i8(i8 %a, i8 %b)
  ret i8 %c
}

declare i16 @llvm.smax.i16(i16 %a, i16 %b) readnone

define i16 @smaxi16(i16 %a, i16 %b) {
; CHECK-ISEL-LABEL: smaxi16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    sxth w8, w1
; CHECK-ISEL-NEXT:    sxth w9, w0
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, gt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smaxi16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    sxth w8, w1
; CHECK-ISEL-CSSC-NEXT:    sxth w9, w0
; CHECK-ISEL-CSSC-NEXT:    smax w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smaxi16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    sxth w8, w0
; CHECK-GLOBAL-NEXT:    cmp w8, w1, sxth
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, gt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smaxi16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    sxth w8, w0
; CHECK-GLOBAL-CSSC-NEXT:    sxth w9, w1
; CHECK-GLOBAL-CSSC-NEXT:    smax w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i16 @llvm.smax.i16(i16 %a, i16 %b)
  ret i16 %c
}

declare i32 @llvm.smax.i32(i32 %a, i32 %b) readnone

define i32 @smaxi32(i32 %a, i32 %b) {
; CHECK-ISEL-LABEL: smaxi32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp w0, w1
; CHECK-ISEL-NEXT:    csel w0, w0, w1, gt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smaxi32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smax w0, w0, w1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smaxi32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp w0, w1
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, gt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smaxi32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smax w0, w0, w1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i32 @llvm.smax.i32(i32 %a, i32 %b)
  ret i32 %c
}

declare i64 @llvm.smax.i64(i64 %a, i64 %b) readnone

define i64 @smaxi64(i64 %a, i64 %b) {
; CHECK-ISEL-LABEL: smaxi64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp x0, x1
; CHECK-ISEL-NEXT:    csel x0, x0, x1, gt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smaxi64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smax x0, x0, x1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smaxi64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp x0, x1
; CHECK-GLOBAL-NEXT:    csel x0, x0, x1, gt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smaxi64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smax x0, x0, x1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i64 @llvm.smax.i64(i64 %a, i64 %b)
  ret i64 %c
}

declare <8 x i8> @llvm.smax.v8i8(<8 x i8> %a, <8 x i8> %b) readnone

define <8 x i8> @smax8i8(<8 x i8> %a, <8 x i8> %b) {
; CHECK-LABEL: smax8i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smax v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    ret
  %c = call <8 x i8> @llvm.smax.v8i8(<8 x i8> %a, <8 x i8> %b)
  ret <8 x i8> %c
}

declare <16 x i8> @llvm.smax.v16i8(<16 x i8> %a, <16 x i8> %b) readnone

define <16 x i8> @smax16i8(<16 x i8> %a, <16 x i8> %b) {
; CHECK-LABEL: smax16i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smax v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ret
  %c = call <16 x i8> @llvm.smax.v16i8(<16 x i8> %a, <16 x i8> %b)
  ret <16 x i8> %c
}

declare <32 x i8> @llvm.smax.v32i8(<32 x i8> %a, <32 x i8> %b) readnone

define void @smax32i8(<32 x i8> %a, <32 x i8> %b, ptr %p) {
; CHECK-ISEL-LABEL: smax32i8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    smax v1.16b, v1.16b, v3.16b
; CHECK-ISEL-NEXT:    smax v0.16b, v0.16b, v2.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smax32i8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smax v1.16b, v1.16b, v3.16b
; CHECK-ISEL-CSSC-NEXT:    smax v0.16b, v0.16b, v2.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smax32i8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    smax v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-NEXT:    smax v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smax32i8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smax v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-CSSC-NEXT:    smax v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <32 x i8> @llvm.smax.v32i8(<32 x i8> %a, <32 x i8> %b)
  store <32 x i8> %c, ptr %p
  ret void
}

declare <4 x i16> @llvm.smax.v4i16(<4 x i16> %a, <4 x i16> %b) readnone

define <4 x i16> @smax4i16(<4 x i16> %a, <4 x i16> %b) {
; CHECK-LABEL: smax4i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smax v0.4h, v0.4h, v1.4h
; CHECK-NEXT:    ret
  %c = call <4 x i16> @llvm.smax.v4i16(<4 x i16> %a, <4 x i16> %b)
  ret <4 x i16> %c
}

declare <8 x i16> @llvm.smax.v8i16(<8 x i16> %a, <8 x i16> %b) readnone

define <8 x i16> @smax8i16(<8 x i16> %a, <8 x i16> %b) {
; CHECK-LABEL: smax8i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smax v0.8h, v0.8h, v1.8h
; CHECK-NEXT:    ret
  %c = call <8 x i16> @llvm.smax.v8i16(<8 x i16> %a, <8 x i16> %b)
  ret <8 x i16> %c
}

declare <16 x i16> @llvm.smax.v16i16(<16 x i16> %a, <16 x i16> %b) readnone

define void @smax16i16(<16 x i16> %a, <16 x i16> %b, ptr %p) {
; CHECK-ISEL-LABEL: smax16i16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    smax v1.8h, v1.8h, v3.8h
; CHECK-ISEL-NEXT:    smax v0.8h, v0.8h, v2.8h
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smax16i16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smax v1.8h, v1.8h, v3.8h
; CHECK-ISEL-CSSC-NEXT:    smax v0.8h, v0.8h, v2.8h
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smax16i16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    smax v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-NEXT:    smax v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smax16i16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smax v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-CSSC-NEXT:    smax v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <16 x i16> @llvm.smax.v16i16(<16 x i16> %a, <16 x i16> %b)
  store <16 x i16> %c, ptr %p
  ret void
}

declare <2 x i32> @llvm.smax.v2i32(<2 x i32> %a, <2 x i32> %b) readnone

define <2 x i32> @smax2i32(<2 x i32> %a, <2 x i32> %b) {
; CHECK-LABEL: smax2i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smax v0.2s, v0.2s, v1.2s
; CHECK-NEXT:    ret
  %c = call <2 x i32> @llvm.smax.v2i32(<2 x i32> %a, <2 x i32> %b)
  ret <2 x i32> %c
}

declare <4 x i32> @llvm.smax.v4i32(<4 x i32> %a, <4 x i32> %b) readnone

define <4 x i32> @smax4i32(<4 x i32> %a, <4 x i32> %b) {
; CHECK-LABEL: smax4i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smax v0.4s, v0.4s, v1.4s
; CHECK-NEXT:    ret
  %c = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %a, <4 x i32> %b)
  ret <4 x i32> %c
}

declare <8 x i32> @llvm.smax.v8i32(<8 x i32> %a, <8 x i32> %b) readnone

define void @smax8i32(<8 x i32> %a, <8 x i32> %b, ptr %p) {
; CHECK-ISEL-LABEL: smax8i32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    smax v1.4s, v1.4s, v3.4s
; CHECK-ISEL-NEXT:    smax v0.4s, v0.4s, v2.4s
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smax8i32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smax v1.4s, v1.4s, v3.4s
; CHECK-ISEL-CSSC-NEXT:    smax v0.4s, v0.4s, v2.4s
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smax8i32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    smax v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-NEXT:    smax v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smax8i32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smax v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-CSSC-NEXT:    smax v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <8 x i32>@llvm.smax.v8i32(<8 x i32> %a, <8 x i32> %b)
  store <8 x i32> %c, ptr %p
  ret void
}

declare <1 x i64> @llvm.smax.v1i64(<1 x i64> %a, <1 x i64> %b) readnone

define <1 x i64> @smax1i64(<1 x i64> %a, <1 x i64> %b) {
; CHECK-ISEL-LABEL: smax1i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmgt d2, d0, d1
; CHECK-ISEL-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smax1i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmgt d2, d0, d1
; CHECK-ISEL-CSSC-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smax1i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    fmov x8, d0
; CHECK-GLOBAL-NEXT:    fmov x9, d1
; CHECK-GLOBAL-NEXT:    cmp x8, x9
; CHECK-GLOBAL-NEXT:    fcsel d0, d0, d1, gt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smax1i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    fmov x8, d0
; CHECK-GLOBAL-CSSC-NEXT:    fmov x9, d1
; CHECK-GLOBAL-CSSC-NEXT:    smax x8, x8, x9
; CHECK-GLOBAL-CSSC-NEXT:    fmov d0, x8
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <1 x i64> @llvm.smax.v1i64(<1 x i64> %a, <1 x i64> %b)
  ret <1 x i64> %c
}

declare <2 x i64> @llvm.smax.v2i64(<2 x i64> %a, <2 x i64> %b) readnone

define <2 x i64> @smax2i64(<2 x i64> %a, <2 x i64> %b) {
; CHECK-LABEL: smax2i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    cmgt v2.2d, v0.2d, v1.2d
; CHECK-NEXT:    bif v0.16b, v1.16b, v2.16b
; CHECK-NEXT:    ret
  %c = call <2 x i64> @llvm.smax.v2i64(<2 x i64> %a, <2 x i64> %b)
  ret <2 x i64> %c
}

declare <4 x i64> @llvm.smax.v4i64(<4 x i64> %a, <4 x i64> %b) readnone

define void @smax4i64(<4 x i64> %a, <4 x i64> %b, ptr %p) {
; CHECK-ISEL-LABEL: smax4i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmgt v4.2d, v1.2d, v3.2d
; CHECK-ISEL-NEXT:    cmgt v5.2d, v0.2d, v2.2d
; CHECK-ISEL-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smax4i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmgt v4.2d, v1.2d, v3.2d
; CHECK-ISEL-CSSC-NEXT:    cmgt v5.2d, v0.2d, v2.2d
; CHECK-ISEL-CSSC-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-CSSC-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smax4i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmgt v4.2d, v0.2d, v2.2d
; CHECK-GLOBAL-NEXT:    cmgt v5.2d, v1.2d, v3.2d
; CHECK-GLOBAL-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smax4i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    cmgt v4.2d, v0.2d, v2.2d
; CHECK-GLOBAL-CSSC-NEXT:    cmgt v5.2d, v1.2d, v3.2d
; CHECK-GLOBAL-CSSC-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-CSSC-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <4 x i64> @llvm.smax.v4i64(<4 x i64> %a, <4 x i64> %b)
  store <4 x i64> %c, ptr %p
  ret void
}

declare i8 @llvm.umax.i8(i8 %a, i8 %b) readnone

define i8 @umaxi8(i8 %a, i8 %b) {
; CHECK-ISEL-LABEL: umaxi8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    and w8, w1, #0xff
; CHECK-ISEL-NEXT:    and w9, w0, #0xff
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, hi
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    and w8, w1, #0xff
; CHECK-ISEL-CSSC-NEXT:    and w9, w0, #0xff
; CHECK-ISEL-CSSC-NEXT:    umax w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    and w8, w0, #0xff
; CHECK-GLOBAL-NEXT:    cmp w8, w1, uxtb
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    and w8, w0, #0xff
; CHECK-GLOBAL-CSSC-NEXT:    and w9, w1, #0xff
; CHECK-GLOBAL-CSSC-NEXT:    umax w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i8 @llvm.umax.i8(i8 %a, i8 %b)
  ret i8 %c
}

define i8 @umaxi8_1(i8 %a) {
; CHECK-ISEL-LABEL: umaxi8_1:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    and w8, w0, #0xff
; CHECK-ISEL-NEXT:    tst w0, #0xfe
; CHECK-ISEL-NEXT:    csinc w0, w8, wzr, ne
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi8_1:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    and w8, w0, #0xff
; CHECK-ISEL-CSSC-NEXT:    umax w0, w8, #1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi8_1:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    and w8, w0, #0xff
; CHECK-GLOBAL-NEXT:    cmp w8, #1
; CHECK-GLOBAL-NEXT:    csinc w0, w0, wzr, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi8_1:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    and w8, w0, #0xff
; CHECK-GLOBAL-CSSC-NEXT:    umax w0, w8, #1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i8 @llvm.umax.i8(i8 %a, i8 1)
  ret i8 %c
}

declare i16 @llvm.umax.i16(i16 %a, i16 %b) readnone

define i16 @umaxi16(i16 %a, i16 %b) {
; CHECK-ISEL-LABEL: umaxi16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    and w8, w1, #0xffff
; CHECK-ISEL-NEXT:    and w9, w0, #0xffff
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, hi
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    and w8, w1, #0xffff
; CHECK-ISEL-CSSC-NEXT:    and w9, w0, #0xffff
; CHECK-ISEL-CSSC-NEXT:    umax w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    and w8, w0, #0xffff
; CHECK-GLOBAL-NEXT:    cmp w8, w1, uxth
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    and w8, w0, #0xffff
; CHECK-GLOBAL-CSSC-NEXT:    and w9, w1, #0xffff
; CHECK-GLOBAL-CSSC-NEXT:    umax w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i16 @llvm.umax.i16(i16 %a, i16 %b)
  ret i16 %c
}

define i16 @umaxi16_1(i16 %a) {
; CHECK-ISEL-LABEL: umaxi16_1:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    and w8, w0, #0xffff
; CHECK-ISEL-NEXT:    tst w0, #0xfffe
; CHECK-ISEL-NEXT:    csinc w0, w8, wzr, ne
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi16_1:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    and w8, w0, #0xffff
; CHECK-ISEL-CSSC-NEXT:    umax w0, w8, #1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi16_1:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    and w8, w0, #0xffff
; CHECK-GLOBAL-NEXT:    cmp w8, #1
; CHECK-GLOBAL-NEXT:    csinc w0, w0, wzr, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi16_1:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    and w8, w0, #0xffff
; CHECK-GLOBAL-CSSC-NEXT:    umax w0, w8, #1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i16 @llvm.umax.i16(i16 %a, i16 1)
  ret i16 %c
}

declare i32 @llvm.umax.i32(i32 %a, i32 %b) readnone

define i32 @umaxi32(i32 %a, i32 %b) {
; CHECK-ISEL-LABEL: umaxi32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp w0, w1
; CHECK-ISEL-NEXT:    csel w0, w0, w1, hi
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax w0, w0, w1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp w0, w1
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax w0, w0, w1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i32 @llvm.umax.i32(i32 %a, i32 %b)
  ret i32 %c
}

define i32 @umaxi32_1(i32 %a) {
; CHECK-ISEL-LABEL: umaxi32_1:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp w0, #1
; CHECK-ISEL-NEXT:    csinc w0, w0, wzr, hi
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi32_1:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax w0, w0, #1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi32_1:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp w0, #1
; CHECK-GLOBAL-NEXT:    csinc w0, w0, wzr, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi32_1:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax w0, w0, #1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i32 @llvm.umax.i32(i32 %a, i32 1)
  ret i32 %c
}

declare i64 @llvm.umax.i64(i64 %a, i64 %b) readnone

define i64 @umaxi64(i64 %a, i64 %b) {
; CHECK-ISEL-LABEL: umaxi64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp x0, x1
; CHECK-ISEL-NEXT:    csel x0, x0, x1, hi
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax x0, x0, x1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp x0, x1
; CHECK-GLOBAL-NEXT:    csel x0, x0, x1, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax x0, x0, x1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i64 @llvm.umax.i64(i64 %a, i64 %b)
  ret i64 %c
}

define i64 @umaxi64_1(i64 %a) {
; CHECK-ISEL-LABEL: umaxi64_1:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp x0, #1
; CHECK-ISEL-NEXT:    csinc x0, x0, xzr, hi
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umaxi64_1:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax x0, x0, #1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umaxi64_1:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp x0, #1
; CHECK-GLOBAL-NEXT:    csinc x0, x0, xzr, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umaxi64_1:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax x0, x0, #1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i64 @llvm.umax.i64(i64 %a, i64 1)
  ret i64 %c
}

declare <8 x i8> @llvm.umax.v8i8(<8 x i8> %a, <8 x i8> %b) readnone

define <8 x i8> @umax8i8(<8 x i8> %a, <8 x i8> %b) {
; CHECK-LABEL: umax8i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umax v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    ret
  %c = call <8 x i8> @llvm.umax.v8i8(<8 x i8> %a, <8 x i8> %b)
  ret <8 x i8> %c
}

declare <16 x i8> @llvm.umax.v16i8(<16 x i8> %a, <16 x i8> %b) readnone

define <16 x i8> @umax16i8(<16 x i8> %a, <16 x i8> %b) {
; CHECK-LABEL: umax16i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umax v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ret
  %c = call <16 x i8> @llvm.umax.v16i8(<16 x i8> %a, <16 x i8> %b)
  ret <16 x i8> %c
}

declare <32 x i8> @llvm.umax.v32i8(<32 x i8> %a, <32 x i8> %b) readnone

define void @umax32i8(<32 x i8> %a, <32 x i8> %b, ptr %p) {
; CHECK-ISEL-LABEL: umax32i8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    umax v1.16b, v1.16b, v3.16b
; CHECK-ISEL-NEXT:    umax v0.16b, v0.16b, v2.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umax32i8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax v1.16b, v1.16b, v3.16b
; CHECK-ISEL-CSSC-NEXT:    umax v0.16b, v0.16b, v2.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umax32i8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    umax v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-NEXT:    umax v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umax32i8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-CSSC-NEXT:    umax v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <32 x i8> @llvm.umax.v32i8(<32 x i8> %a, <32 x i8> %b)
  store <32 x i8> %c, ptr %p
  ret void
}

declare <4 x i16> @llvm.umax.v4i16(<4 x i16> %a, <4 x i16> %b) readnone

define <4 x i16> @umax4i16(<4 x i16> %a, <4 x i16> %b) {
; CHECK-LABEL: umax4i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umax v0.4h, v0.4h, v1.4h
; CHECK-NEXT:    ret
  %c = call <4 x i16> @llvm.umax.v4i16(<4 x i16> %a, <4 x i16> %b)
  ret <4 x i16> %c
}

declare <8 x i16> @llvm.umax.v8i16(<8 x i16> %a, <8 x i16> %b) readnone

define <8 x i16> @umax8i16(<8 x i16> %a, <8 x i16> %b) {
; CHECK-LABEL: umax8i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umax v0.8h, v0.8h, v1.8h
; CHECK-NEXT:    ret
  %c = call <8 x i16> @llvm.umax.v8i16(<8 x i16> %a, <8 x i16> %b)
  ret <8 x i16> %c
}

declare <16 x i16> @llvm.umax.v16i16(<16 x i16> %a, <16 x i16> %b) readnone

define void @umax16i16(<16 x i16> %a, <16 x i16> %b, ptr %p) {
; CHECK-ISEL-LABEL: umax16i16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    umax v1.8h, v1.8h, v3.8h
; CHECK-ISEL-NEXT:    umax v0.8h, v0.8h, v2.8h
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umax16i16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax v1.8h, v1.8h, v3.8h
; CHECK-ISEL-CSSC-NEXT:    umax v0.8h, v0.8h, v2.8h
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umax16i16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    umax v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-NEXT:    umax v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umax16i16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-CSSC-NEXT:    umax v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <16 x i16> @llvm.umax.v16i16(<16 x i16> %a, <16 x i16> %b)
  store <16 x i16> %c, ptr %p
  ret void
}

declare <2 x i32> @llvm.umax.v2i32(<2 x i32> %a, <2 x i32> %b) readnone

define <2 x i32> @umax2i32(<2 x i32> %a, <2 x i32> %b) {
; CHECK-LABEL: umax2i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umax v0.2s, v0.2s, v1.2s
; CHECK-NEXT:    ret
  %c = call <2 x i32> @llvm.umax.v2i32(<2 x i32> %a, <2 x i32> %b)
  ret <2 x i32> %c
}

declare <4 x i32> @llvm.umax.v4i32(<4 x i32> %a, <4 x i32> %b) readnone

define <4 x i32> @umax4i32(<4 x i32> %a, <4 x i32> %b) {
; CHECK-LABEL: umax4i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umax v0.4s, v0.4s, v1.4s
; CHECK-NEXT:    ret
  %c = call <4 x i32> @llvm.umax.v4i32(<4 x i32> %a, <4 x i32> %b)
  ret <4 x i32> %c
}

declare <8 x i32> @llvm.umax.v8i32(<8 x i32> %a, <8 x i32> %b) readnone

define void @umax8i32(<8 x i32> %a, <8 x i32> %b, ptr %p) {
; CHECK-ISEL-LABEL: umax8i32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    umax v1.4s, v1.4s, v3.4s
; CHECK-ISEL-NEXT:    umax v0.4s, v0.4s, v2.4s
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umax8i32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umax v1.4s, v1.4s, v3.4s
; CHECK-ISEL-CSSC-NEXT:    umax v0.4s, v0.4s, v2.4s
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umax8i32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    umax v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-NEXT:    umax v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umax8i32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umax v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-CSSC-NEXT:    umax v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <8 x i32>@llvm.umax.v8i32(<8 x i32> %a, <8 x i32> %b)
  store <8 x i32> %c, ptr %p
  ret void
}

declare <1 x i64> @llvm.umax.v1i64(<1 x i64> %a, <1 x i64> %b) readnone

define <1 x i64> @umax1i64(<1 x i64> %a, <1 x i64> %b) {
; CHECK-ISEL-LABEL: umax1i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmhi d2, d0, d1
; CHECK-ISEL-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umax1i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmhi d2, d0, d1
; CHECK-ISEL-CSSC-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umax1i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    fmov x8, d0
; CHECK-GLOBAL-NEXT:    fmov x9, d1
; CHECK-GLOBAL-NEXT:    cmp x8, x9
; CHECK-GLOBAL-NEXT:    fcsel d0, d0, d1, hi
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umax1i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    fmov x8, d0
; CHECK-GLOBAL-CSSC-NEXT:    fmov x9, d1
; CHECK-GLOBAL-CSSC-NEXT:    umax x8, x8, x9
; CHECK-GLOBAL-CSSC-NEXT:    fmov d0, x8
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <1 x i64> @llvm.umax.v1i64(<1 x i64> %a, <1 x i64> %b)
  ret <1 x i64> %c
}

declare <2 x i64> @llvm.umax.v2i64(<2 x i64> %a, <2 x i64> %b) readnone

define <2 x i64> @umax2i64(<2 x i64> %a, <2 x i64> %b) {
; CHECK-LABEL: umax2i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    cmhi v2.2d, v0.2d, v1.2d
; CHECK-NEXT:    bif v0.16b, v1.16b, v2.16b
; CHECK-NEXT:    ret
  %c = call <2 x i64> @llvm.umax.v2i64(<2 x i64> %a, <2 x i64> %b)
  ret <2 x i64> %c
}

declare <4 x i64> @llvm.umax.v4i64(<4 x i64> %a, <4 x i64> %b) readnone

define void @umax4i64(<4 x i64> %a, <4 x i64> %b, ptr %p) {
; CHECK-ISEL-LABEL: umax4i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmhi v4.2d, v1.2d, v3.2d
; CHECK-ISEL-NEXT:    cmhi v5.2d, v0.2d, v2.2d
; CHECK-ISEL-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umax4i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmhi v4.2d, v1.2d, v3.2d
; CHECK-ISEL-CSSC-NEXT:    cmhi v5.2d, v0.2d, v2.2d
; CHECK-ISEL-CSSC-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-CSSC-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umax4i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmhi v4.2d, v0.2d, v2.2d
; CHECK-GLOBAL-NEXT:    cmhi v5.2d, v1.2d, v3.2d
; CHECK-GLOBAL-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umax4i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    cmhi v4.2d, v0.2d, v2.2d
; CHECK-GLOBAL-CSSC-NEXT:    cmhi v5.2d, v1.2d, v3.2d
; CHECK-GLOBAL-CSSC-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-CSSC-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <4 x i64> @llvm.umax.v4i64(<4 x i64> %a, <4 x i64> %b)
  store <4 x i64> %c, ptr %p
  ret void
}

declare i8 @llvm.smin.i8(i8 %a, i8 %b) readnone

define i8 @smini8(i8 %a, i8 %b) {
; CHECK-ISEL-LABEL: smini8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    sxtb w8, w1
; CHECK-ISEL-NEXT:    sxtb w9, w0
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, lt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smini8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    sxtb w8, w1
; CHECK-ISEL-CSSC-NEXT:    sxtb w9, w0
; CHECK-ISEL-CSSC-NEXT:    smin w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smini8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    sxtb w8, w0
; CHECK-GLOBAL-NEXT:    cmp w8, w1, sxtb
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, lt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smini8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    sxtb w8, w0
; CHECK-GLOBAL-CSSC-NEXT:    sxtb w9, w1
; CHECK-GLOBAL-CSSC-NEXT:    smin w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i8 @llvm.smin.i8(i8 %a, i8 %b)
  ret i8 %c
}

declare i16 @llvm.smin.i16(i16 %a, i16 %b) readnone

define i16 @smini16(i16 %a, i16 %b) {
; CHECK-ISEL-LABEL: smini16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    sxth w8, w1
; CHECK-ISEL-NEXT:    sxth w9, w0
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, lt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smini16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    sxth w8, w1
; CHECK-ISEL-CSSC-NEXT:    sxth w9, w0
; CHECK-ISEL-CSSC-NEXT:    smin w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smini16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    sxth w8, w0
; CHECK-GLOBAL-NEXT:    cmp w8, w1, sxth
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, lt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smini16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    sxth w8, w0
; CHECK-GLOBAL-CSSC-NEXT:    sxth w9, w1
; CHECK-GLOBAL-CSSC-NEXT:    smin w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i16 @llvm.smin.i16(i16 %a, i16 %b)
  ret i16 %c
}

declare i32 @llvm.smin.i32(i32 %a, i32 %b) readnone

define i32 @smini32(i32 %a, i32 %b) {
; CHECK-ISEL-LABEL: smini32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp w0, w1
; CHECK-ISEL-NEXT:    csel w0, w0, w1, lt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smini32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smin w0, w0, w1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smini32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp w0, w1
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, lt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smini32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smin w0, w0, w1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i32 @llvm.smin.i32(i32 %a, i32 %b)
  ret i32 %c
}

declare i64 @llvm.smin.i64(i64 %a, i64 %b) readnone

define i64 @smini64(i64 %a, i64 %b) {
; CHECK-ISEL-LABEL: smini64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp x0, x1
; CHECK-ISEL-NEXT:    csel x0, x0, x1, lt
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smini64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smin x0, x0, x1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smini64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp x0, x1
; CHECK-GLOBAL-NEXT:    csel x0, x0, x1, lt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smini64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smin x0, x0, x1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i64 @llvm.smin.i64(i64 %a, i64 %b)
  ret i64 %c
}

declare <8 x i8> @llvm.smin.v8i8(<8 x i8> %a, <8 x i8> %b) readnone

define <8 x i8> @smin8i8(<8 x i8> %a, <8 x i8> %b) {
; CHECK-LABEL: smin8i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smin v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    ret
  %c = call <8 x i8> @llvm.smin.v8i8(<8 x i8> %a, <8 x i8> %b)
  ret <8 x i8> %c
}

declare <16 x i8> @llvm.smin.v16i8(<16 x i8> %a, <16 x i8> %b) readnone

define <16 x i8> @smin16i8(<16 x i8> %a, <16 x i8> %b) {
; CHECK-LABEL: smin16i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smin v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ret
  %c = call <16 x i8> @llvm.smin.v16i8(<16 x i8> %a, <16 x i8> %b)
  ret <16 x i8> %c
}

declare <32 x i8> @llvm.smin.v32i8(<32 x i8> %a, <32 x i8> %b) readnone

define void @smin32i8(<32 x i8> %a, <32 x i8> %b, ptr %p) {
; CHECK-ISEL-LABEL: smin32i8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    smin v1.16b, v1.16b, v3.16b
; CHECK-ISEL-NEXT:    smin v0.16b, v0.16b, v2.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smin32i8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smin v1.16b, v1.16b, v3.16b
; CHECK-ISEL-CSSC-NEXT:    smin v0.16b, v0.16b, v2.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smin32i8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    smin v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-NEXT:    smin v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smin32i8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smin v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-CSSC-NEXT:    smin v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <32 x i8> @llvm.smin.v32i8(<32 x i8> %a, <32 x i8> %b)
  store <32 x i8> %c, ptr %p
  ret void
}

declare <4 x i16> @llvm.smin.v4i16(<4 x i16> %a, <4 x i16> %b) readnone

define <4 x i16> @smin4i16(<4 x i16> %a, <4 x i16> %b) {
; CHECK-LABEL: smin4i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smin v0.4h, v0.4h, v1.4h
; CHECK-NEXT:    ret
  %c = call <4 x i16> @llvm.smin.v4i16(<4 x i16> %a, <4 x i16> %b)
  ret <4 x i16> %c
}

declare <8 x i16> @llvm.smin.v8i16(<8 x i16> %a, <8 x i16> %b) readnone

define <8 x i16> @smin8i16(<8 x i16> %a, <8 x i16> %b) {
; CHECK-LABEL: smin8i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smin v0.8h, v0.8h, v1.8h
; CHECK-NEXT:    ret
  %c = call <8 x i16> @llvm.smin.v8i16(<8 x i16> %a, <8 x i16> %b)
  ret <8 x i16> %c
}

declare <16 x i16> @llvm.smin.v16i16(<16 x i16> %a, <16 x i16> %b) readnone

define void @smin16i16(<16 x i16> %a, <16 x i16> %b, ptr %p) {
; CHECK-ISEL-LABEL: smin16i16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    smin v1.8h, v1.8h, v3.8h
; CHECK-ISEL-NEXT:    smin v0.8h, v0.8h, v2.8h
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smin16i16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smin v1.8h, v1.8h, v3.8h
; CHECK-ISEL-CSSC-NEXT:    smin v0.8h, v0.8h, v2.8h
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smin16i16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    smin v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-NEXT:    smin v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smin16i16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smin v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-CSSC-NEXT:    smin v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <16 x i16> @llvm.smin.v16i16(<16 x i16> %a, <16 x i16> %b)
  store <16 x i16> %c, ptr %p
  ret void
}

declare <2 x i32> @llvm.smin.v2i32(<2 x i32> %a, <2 x i32> %b) readnone

define <2 x i32> @smin2i32(<2 x i32> %a, <2 x i32> %b) {
; CHECK-LABEL: smin2i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smin v0.2s, v0.2s, v1.2s
; CHECK-NEXT:    ret
  %c = call <2 x i32> @llvm.smin.v2i32(<2 x i32> %a, <2 x i32> %b)
  ret <2 x i32> %c
}

declare <4 x i32> @llvm.smin.v4i32(<4 x i32> %a, <4 x i32> %b) readnone

define <4 x i32> @smin4i32(<4 x i32> %a, <4 x i32> %b) {
; CHECK-LABEL: smin4i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    smin v0.4s, v0.4s, v1.4s
; CHECK-NEXT:    ret
  %c = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %a, <4 x i32> %b)
  ret <4 x i32> %c
}

declare <8 x i32> @llvm.smin.v8i32(<8 x i32> %a, <8 x i32> %b) readnone

define void @smin8i32(<8 x i32> %a, <8 x i32> %b, ptr %p) {
; CHECK-ISEL-LABEL: smin8i32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    smin v1.4s, v1.4s, v3.4s
; CHECK-ISEL-NEXT:    smin v0.4s, v0.4s, v2.4s
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smin8i32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    smin v1.4s, v1.4s, v3.4s
; CHECK-ISEL-CSSC-NEXT:    smin v0.4s, v0.4s, v2.4s
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smin8i32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    smin v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-NEXT:    smin v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smin8i32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    smin v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-CSSC-NEXT:    smin v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <8 x i32>@llvm.smin.v8i32(<8 x i32> %a, <8 x i32> %b)
  store <8 x i32> %c, ptr %p
  ret void
}

declare <1 x i64> @llvm.smin.v1i64(<1 x i64> %a, <1 x i64> %b) readnone

define <1 x i64> @smin1i64(<1 x i64> %a, <1 x i64> %b) {
; CHECK-ISEL-LABEL: smin1i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmgt d2, d1, d0
; CHECK-ISEL-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smin1i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmgt d2, d1, d0
; CHECK-ISEL-CSSC-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smin1i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    fmov x8, d0
; CHECK-GLOBAL-NEXT:    fmov x9, d1
; CHECK-GLOBAL-NEXT:    cmp x8, x9
; CHECK-GLOBAL-NEXT:    fcsel d0, d0, d1, lt
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smin1i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    fmov x8, d0
; CHECK-GLOBAL-CSSC-NEXT:    fmov x9, d1
; CHECK-GLOBAL-CSSC-NEXT:    smin x8, x8, x9
; CHECK-GLOBAL-CSSC-NEXT:    fmov d0, x8
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <1 x i64> @llvm.smin.v1i64(<1 x i64> %a, <1 x i64> %b)
  ret <1 x i64> %c
}

declare <2 x i64> @llvm.smin.v2i64(<2 x i64> %a, <2 x i64> %b) readnone

define <2 x i64> @smin2i64(<2 x i64> %a, <2 x i64> %b) {
; CHECK-LABEL: smin2i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    cmgt v2.2d, v1.2d, v0.2d
; CHECK-NEXT:    bif v0.16b, v1.16b, v2.16b
; CHECK-NEXT:    ret
  %c = call <2 x i64> @llvm.smin.v2i64(<2 x i64> %a, <2 x i64> %b)
  ret <2 x i64> %c
}

declare <4 x i64> @llvm.smin.v4i64(<4 x i64> %a, <4 x i64> %b) readnone

define void @smin4i64(<4 x i64> %a, <4 x i64> %b, ptr %p) {
; CHECK-ISEL-LABEL: smin4i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmgt v4.2d, v3.2d, v1.2d
; CHECK-ISEL-NEXT:    cmgt v5.2d, v2.2d, v0.2d
; CHECK-ISEL-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: smin4i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmgt v4.2d, v3.2d, v1.2d
; CHECK-ISEL-CSSC-NEXT:    cmgt v5.2d, v2.2d, v0.2d
; CHECK-ISEL-CSSC-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-CSSC-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: smin4i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmgt v4.2d, v2.2d, v0.2d
; CHECK-GLOBAL-NEXT:    cmgt v5.2d, v3.2d, v1.2d
; CHECK-GLOBAL-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: smin4i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    cmgt v4.2d, v2.2d, v0.2d
; CHECK-GLOBAL-CSSC-NEXT:    cmgt v5.2d, v3.2d, v1.2d
; CHECK-GLOBAL-CSSC-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-CSSC-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <4 x i64> @llvm.smin.v4i64(<4 x i64> %a, <4 x i64> %b)
  store <4 x i64> %c, ptr %p
  ret void
}

declare i8 @llvm.umin.i8(i8 %a, i8 %b) readnone

define i8 @umini8(i8 %a, i8 %b) {
; CHECK-ISEL-LABEL: umini8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    and w8, w1, #0xff
; CHECK-ISEL-NEXT:    and w9, w0, #0xff
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, lo
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umini8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    and w8, w1, #0xff
; CHECK-ISEL-CSSC-NEXT:    and w9, w0, #0xff
; CHECK-ISEL-CSSC-NEXT:    umin w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umini8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    and w8, w0, #0xff
; CHECK-GLOBAL-NEXT:    cmp w8, w1, uxtb
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, lo
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umini8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    and w8, w0, #0xff
; CHECK-GLOBAL-CSSC-NEXT:    and w9, w1, #0xff
; CHECK-GLOBAL-CSSC-NEXT:    umin w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i8 @llvm.umin.i8(i8 %a, i8 %b)
  ret i8 %c
}

declare i16 @llvm.umin.i16(i16 %a, i16 %b) readnone

define i16 @umini16(i16 %a, i16 %b) {
; CHECK-ISEL-LABEL: umini16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    and w8, w1, #0xffff
; CHECK-ISEL-NEXT:    and w9, w0, #0xffff
; CHECK-ISEL-NEXT:    cmp w9, w8
; CHECK-ISEL-NEXT:    csel w0, w9, w8, lo
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umini16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    and w8, w1, #0xffff
; CHECK-ISEL-CSSC-NEXT:    and w9, w0, #0xffff
; CHECK-ISEL-CSSC-NEXT:    umin w0, w9, w8
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umini16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    and w8, w0, #0xffff
; CHECK-GLOBAL-NEXT:    cmp w8, w1, uxth
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, lo
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umini16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    and w8, w0, #0xffff
; CHECK-GLOBAL-CSSC-NEXT:    and w9, w1, #0xffff
; CHECK-GLOBAL-CSSC-NEXT:    umin w0, w8, w9
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i16 @llvm.umin.i16(i16 %a, i16 %b)
  ret i16 %c
}

declare i32 @llvm.umin.i32(i32 %a, i32 %b) readnone

define i32 @umini32(i32 %a, i32 %b) {
; CHECK-ISEL-LABEL: umini32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp w0, w1
; CHECK-ISEL-NEXT:    csel w0, w0, w1, lo
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umini32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umin w0, w0, w1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umini32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp w0, w1
; CHECK-GLOBAL-NEXT:    csel w0, w0, w1, lo
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umini32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umin w0, w0, w1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i32 @llvm.umin.i32(i32 %a, i32 %b)
  ret i32 %c
}

declare i64 @llvm.umin.i64(i64 %a, i64 %b) readnone

define i64 @umini64(i64 %a, i64 %b) {
; CHECK-ISEL-LABEL: umini64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmp x0, x1
; CHECK-ISEL-NEXT:    csel x0, x0, x1, lo
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umini64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umin x0, x0, x1
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umini64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmp x0, x1
; CHECK-GLOBAL-NEXT:    csel x0, x0, x1, lo
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umini64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umin x0, x0, x1
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call i64 @llvm.umin.i64(i64 %a, i64 %b)
  ret i64 %c
}

declare <8 x i8> @llvm.umin.v8i8(<8 x i8> %a, <8 x i8> %b) readnone

define <8 x i8> @umin8i8(<8 x i8> %a, <8 x i8> %b) {
; CHECK-LABEL: umin8i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umin v0.8b, v0.8b, v1.8b
; CHECK-NEXT:    ret
  %c = call <8 x i8> @llvm.umin.v8i8(<8 x i8> %a, <8 x i8> %b)
  ret <8 x i8> %c
}

declare <16 x i8> @llvm.umin.v16i8(<16 x i8> %a, <16 x i8> %b) readnone

define <16 x i8> @umin16i8(<16 x i8> %a, <16 x i8> %b) {
; CHECK-LABEL: umin16i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umin v0.16b, v0.16b, v1.16b
; CHECK-NEXT:    ret
  %c = call <16 x i8> @llvm.umin.v16i8(<16 x i8> %a, <16 x i8> %b)
  ret <16 x i8> %c
}

declare <32 x i8> @llvm.umin.v32i8(<32 x i8> %a, <32 x i8> %b) readnone

define void @umin32i8(<32 x i8> %a, <32 x i8> %b, ptr %p) {
; CHECK-ISEL-LABEL: umin32i8:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    umin v1.16b, v1.16b, v3.16b
; CHECK-ISEL-NEXT:    umin v0.16b, v0.16b, v2.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umin32i8:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umin v1.16b, v1.16b, v3.16b
; CHECK-ISEL-CSSC-NEXT:    umin v0.16b, v0.16b, v2.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umin32i8:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    umin v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-NEXT:    umin v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umin32i8:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umin v0.16b, v0.16b, v2.16b
; CHECK-GLOBAL-CSSC-NEXT:    umin v1.16b, v1.16b, v3.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <32 x i8> @llvm.umin.v32i8(<32 x i8> %a, <32 x i8> %b)
  store <32 x i8> %c, ptr %p
  ret void
}

declare <4 x i16> @llvm.umin.v4i16(<4 x i16> %a, <4 x i16> %b) readnone

define <4 x i16> @umin4i16(<4 x i16> %a, <4 x i16> %b) {
; CHECK-LABEL: umin4i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umin v0.4h, v0.4h, v1.4h
; CHECK-NEXT:    ret
  %c = call <4 x i16> @llvm.umin.v4i16(<4 x i16> %a, <4 x i16> %b)
  ret <4 x i16> %c
}

declare <8 x i16> @llvm.umin.v8i16(<8 x i16> %a, <8 x i16> %b) readnone

define <8 x i16> @umin8i16(<8 x i16> %a, <8 x i16> %b) {
; CHECK-LABEL: umin8i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umin v0.8h, v0.8h, v1.8h
; CHECK-NEXT:    ret
  %c = call <8 x i16> @llvm.umin.v8i16(<8 x i16> %a, <8 x i16> %b)
  ret <8 x i16> %c
}

declare <16 x i16> @llvm.umin.v16i16(<16 x i16> %a, <16 x i16> %b) readnone

define void @umin16i16(<16 x i16> %a, <16 x i16> %b, ptr %p) {
; CHECK-ISEL-LABEL: umin16i16:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    umin v1.8h, v1.8h, v3.8h
; CHECK-ISEL-NEXT:    umin v0.8h, v0.8h, v2.8h
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umin16i16:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umin v1.8h, v1.8h, v3.8h
; CHECK-ISEL-CSSC-NEXT:    umin v0.8h, v0.8h, v2.8h
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umin16i16:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    umin v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-NEXT:    umin v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umin16i16:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umin v0.8h, v0.8h, v2.8h
; CHECK-GLOBAL-CSSC-NEXT:    umin v1.8h, v1.8h, v3.8h
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <16 x i16> @llvm.umin.v16i16(<16 x i16> %a, <16 x i16> %b)
  store <16 x i16> %c, ptr %p
  ret void
}

declare <2 x i32> @llvm.umin.v2i32(<2 x i32> %a, <2 x i32> %b) readnone

define <2 x i32> @umin2i32(<2 x i32> %a, <2 x i32> %b) {
; CHECK-LABEL: umin2i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umin v0.2s, v0.2s, v1.2s
; CHECK-NEXT:    ret
  %c = call <2 x i32> @llvm.umin.v2i32(<2 x i32> %a, <2 x i32> %b)
  ret <2 x i32> %c
}

declare <4 x i32> @llvm.umin.v4i32(<4 x i32> %a, <4 x i32> %b) readnone

define <4 x i32> @umin4i32(<4 x i32> %a, <4 x i32> %b) {
; CHECK-LABEL: umin4i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    umin v0.4s, v0.4s, v1.4s
; CHECK-NEXT:    ret
  %c = call <4 x i32> @llvm.umin.v4i32(<4 x i32> %a, <4 x i32> %b)
  ret <4 x i32> %c
}

declare <8 x i32> @llvm.umin.v8i32(<8 x i32> %a, <8 x i32> %b) readnone

define void @umin8i32(<8 x i32> %a, <8 x i32> %b, ptr %p) {
; CHECK-ISEL-LABEL: umin8i32:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    umin v1.4s, v1.4s, v3.4s
; CHECK-ISEL-NEXT:    umin v0.4s, v0.4s, v2.4s
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umin8i32:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    umin v1.4s, v1.4s, v3.4s
; CHECK-ISEL-CSSC-NEXT:    umin v0.4s, v0.4s, v2.4s
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umin8i32:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    umin v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-NEXT:    umin v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umin8i32:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    umin v0.4s, v0.4s, v2.4s
; CHECK-GLOBAL-CSSC-NEXT:    umin v1.4s, v1.4s, v3.4s
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <8 x i32>@llvm.umin.v8i32(<8 x i32> %a, <8 x i32> %b)
  store <8 x i32> %c, ptr %p
  ret void
}

declare <1 x i64> @llvm.umin.v1i64(<1 x i64> %a, <1 x i64> %b) readnone

define <1 x i64> @umin1i64(<1 x i64> %a, <1 x i64> %b) {
; CHECK-ISEL-LABEL: umin1i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmhi d2, d1, d0
; CHECK-ISEL-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umin1i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmhi d2, d1, d0
; CHECK-ISEL-CSSC-NEXT:    bif v0.8b, v1.8b, v2.8b
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umin1i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    fmov x8, d0
; CHECK-GLOBAL-NEXT:    fmov x9, d1
; CHECK-GLOBAL-NEXT:    cmp x8, x9
; CHECK-GLOBAL-NEXT:    fcsel d0, d0, d1, lo
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umin1i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    fmov x8, d0
; CHECK-GLOBAL-CSSC-NEXT:    fmov x9, d1
; CHECK-GLOBAL-CSSC-NEXT:    umin x8, x8, x9
; CHECK-GLOBAL-CSSC-NEXT:    fmov d0, x8
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <1 x i64> @llvm.umin.v1i64(<1 x i64> %a, <1 x i64> %b)
  ret <1 x i64> %c
}

declare <2 x i64> @llvm.umin.v2i64(<2 x i64> %a, <2 x i64> %b) readnone

define <2 x i64> @umin2i64(<2 x i64> %a, <2 x i64> %b) {
; CHECK-LABEL: umin2i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    cmhi v2.2d, v1.2d, v0.2d
; CHECK-NEXT:    bif v0.16b, v1.16b, v2.16b
; CHECK-NEXT:    ret
  %c = call <2 x i64> @llvm.umin.v2i64(<2 x i64> %a, <2 x i64> %b)
  ret <2 x i64> %c
}

declare <4 x i64> @llvm.umin.v4i64(<4 x i64> %a, <4 x i64> %b) readnone

define void @umin4i64(<4 x i64> %a, <4 x i64> %b, ptr %p) {
; CHECK-ISEL-LABEL: umin4i64:
; CHECK-ISEL:       // %bb.0:
; CHECK-ISEL-NEXT:    cmhi v4.2d, v3.2d, v1.2d
; CHECK-ISEL-NEXT:    cmhi v5.2d, v2.2d, v0.2d
; CHECK-ISEL-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-NEXT:    ret
;
; CHECK-ISEL-CSSC-LABEL: umin4i64:
; CHECK-ISEL-CSSC:       // %bb.0:
; CHECK-ISEL-CSSC-NEXT:    cmhi v4.2d, v3.2d, v1.2d
; CHECK-ISEL-CSSC-NEXT:    cmhi v5.2d, v2.2d, v0.2d
; CHECK-ISEL-CSSC-NEXT:    bif v1.16b, v3.16b, v4.16b
; CHECK-ISEL-CSSC-NEXT:    bif v0.16b, v2.16b, v5.16b
; CHECK-ISEL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-ISEL-CSSC-NEXT:    ret
;
; CHECK-GLOBAL-LABEL: umin4i64:
; CHECK-GLOBAL:       // %bb.0:
; CHECK-GLOBAL-NEXT:    cmhi v4.2d, v2.2d, v0.2d
; CHECK-GLOBAL-NEXT:    cmhi v5.2d, v3.2d, v1.2d
; CHECK-GLOBAL-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-NEXT:    ret
;
; CHECK-GLOBAL-CSSC-LABEL: umin4i64:
; CHECK-GLOBAL-CSSC:       // %bb.0:
; CHECK-GLOBAL-CSSC-NEXT:    cmhi v4.2d, v2.2d, v0.2d
; CHECK-GLOBAL-CSSC-NEXT:    cmhi v5.2d, v3.2d, v1.2d
; CHECK-GLOBAL-CSSC-NEXT:    bif v0.16b, v2.16b, v4.16b
; CHECK-GLOBAL-CSSC-NEXT:    bif v1.16b, v3.16b, v5.16b
; CHECK-GLOBAL-CSSC-NEXT:    stp q0, q1, [x0]
; CHECK-GLOBAL-CSSC-NEXT:    ret
  %c = call <4 x i64> @llvm.umin.v4i64(<4 x i64> %a, <4 x i64> %b)
  store <4 x i64> %c, ptr %p
  ret void
}
