; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=armv8-eabi | FileCheck %s

declare float @llvm.minnum.f32(float, float)
declare float @llvm.maxnum.f32(float, float)
declare float @llvm.minimum.f32(float, float)
declare float @llvm.maximum.f32(float, float)
declare <2 x float> @llvm.minnum.v2f32(<2 x float>, <2 x float>)
declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>)
declare <2 x float> @llvm.minimum.v2f32(<2 x float>, <2 x float>)
declare <2 x float> @llvm.maximum.v2f32(<2 x float>, <2 x float>)

define float @test_minnum_const_nan(float %x) {
; CHECK-LABEL: test_minnum_const_nan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call float @llvm.minnum.f32(float %x, float 0x7fff000000000000)
  ret float %r
}

define float @test_maxnum_const_nan(float %x) {
; CHECK-LABEL: test_maxnum_const_nan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call float @llvm.maxnum.f32(float %x, float 0x7fff000000000000)
  ret float %r
}

define float @test_maximum_const_nan(float %x) {
; CHECK-LABEL: test_maximum_const_nan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32760
; CHECK-NEXT:    bx lr
  %r = call float @llvm.maximum.f32(float %x, float 0x7fff000000000000)
  ret float %r
}

define float @test_minimum_const_nan(float %x) {
; CHECK-LABEL: test_minimum_const_nan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32760
; CHECK-NEXT:    bx lr
  %r = call float @llvm.minimum.f32(float %x, float 0x7fff000000000000)
  ret float %r
}

define float @test_minnum_const_inf(float %x) {
; CHECK-LABEL: test_minnum_const_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI4_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vminnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI4_0:
; CHECK-NEXT:    .long 0x7f800000 @ float +Inf
  %r = call float @llvm.minnum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_maxnum_const_inf(float %x) {
; CHECK-LABEL: test_maxnum_const_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32640
; CHECK-NEXT:    bx lr
  %r = call float @llvm.maxnum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_maximum_const_inf(float %x) {
; CHECK-LABEL: test_maximum_const_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI6_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmax.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI6_0:
; CHECK-NEXT:    .long 0x7f800000 @ float +Inf
  %r = call float @llvm.maximum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_minimum_const_inf(float %x) {
; CHECK-LABEL: test_minimum_const_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call float @llvm.minimum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_minnum_const_neg_inf(float %x) {
; CHECK-LABEL: test_minnum_const_neg_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #65408
; CHECK-NEXT:    bx lr
  %r = call float @llvm.minnum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_maxnum_const_neg_inf(float %x) {
; CHECK-LABEL: test_maxnum_const_neg_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI9_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI9_0:
; CHECK-NEXT:    .long 0xff800000 @ float -Inf
  %r = call float @llvm.maxnum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_maximum_const_neg_inf(float %x) {
; CHECK-LABEL: test_maximum_const_neg_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call float @llvm.maximum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_minimum_const_neg_inf(float %x) {
; CHECK-LABEL: test_minimum_const_neg_inf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI11_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmin.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI11_0:
; CHECK-NEXT:    .long 0xff800000 @ float -Inf
  %r = call float @llvm.minimum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_minnum_const_inf_nnan(float %x) {
; CHECK-LABEL: test_minnum_const_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.minnum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_maxnum_const_inf_nnan(float %x) {
; CHECK-LABEL: test_maxnum_const_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32640
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.maxnum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_maximum_const_inf_nnan(float %x) {
; CHECK-LABEL: test_maximum_const_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32640
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.maximum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_minimum_const_inf_nnan(float %x) {
; CHECK-LABEL: test_minimum_const_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.minimum.f32(float %x, float 0x7ff0000000000000)
  ret float %r
}

define float @test_minnum_const_inf_nnan_comm(float %x) {
; CHECK-LABEL: test_minnum_const_inf_nnan_comm:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.minnum.f32(float 0x7ff0000000000000, float %x)
  ret float %r
}

define float @test_maxnum_const_inf_nnan_comm(float %x) {
; CHECK-LABEL: test_maxnum_const_inf_nnan_comm:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32640
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.maxnum.f32(float 0x7ff0000000000000, float %x)
  ret float %r
}

define float @test_maximum_const_inf_nnan_comm(float %x) {
; CHECK-LABEL: test_maximum_const_inf_nnan_comm:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #32640
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.maximum.f32(float 0x7ff0000000000000, float %x)
  ret float %r
}

define float @test_minimum_const_inf_nnan_comm(float %x) {
; CHECK-LABEL: test_minimum_const_inf_nnan_comm:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.minimum.f32(float 0x7ff0000000000000, float %x)
  ret float %r
}

define <2 x float> @test_minnum_const_inf_nnan_comm_vec(<2 x float> %x) {
; CHECK-LABEL: test_minnum_const_inf_nnan_comm_vec:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan <2 x float> @llvm.minnum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)
  ret <2 x float> %r
}

define <2 x float> @test_maxnum_const_inf_nnan_comm_vec(<2 x float> %x) {
; CHECK-LABEL: test_maxnum_const_inf_nnan_comm_vec:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr d16, .LCPI21_0
; CHECK-NEXT:    vmov r0, r1, d16
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 3
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI21_0:
; CHECK-NEXT:    .long 0x7f800000 @ float +Inf
; CHECK-NEXT:    .long 0x7f800000 @ float +Inf
  %r = call nnan <2 x float> @llvm.maxnum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)
  ret <2 x float> %r
}

define <2 x float> @test_maximum_const_inf_nnan_comm_vec(<2 x float> %x) {
; CHECK-LABEL: test_maximum_const_inf_nnan_comm_vec:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr d16, .LCPI22_0
; CHECK-NEXT:    vmov r0, r1, d16
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 3
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI22_0:
; CHECK-NEXT:    .long 0x7f800000 @ float +Inf
; CHECK-NEXT:    .long 0x7f800000 @ float +Inf
  %r = call nnan <2 x float> @llvm.maximum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)
  ret <2 x float> %r
}

define <2 x float> @test_minimum_const_inf_nnan_comm_vec(<2 x float> %x) {
; CHECK-LABEL: test_minimum_const_inf_nnan_comm_vec:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan <2 x float> @llvm.minimum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)
  ret <2 x float> %r
}

define float @test_minnum_const_neg_inf_nnan(float %x) {
; CHECK-LABEL: test_minnum_const_neg_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #65408
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.minnum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_maxnum_const_neg_inf_nnan(float %x) {
; CHECK-LABEL: test_maxnum_const_neg_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.maxnum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_maximum_const_neg_inf_nnan(float %x) {
; CHECK-LABEL: test_maximum_const_neg_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.maximum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_minimum_const_neg_inf_nnan(float %x) {
; CHECK-LABEL: test_minimum_const_neg_inf_nnan:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #0
; CHECK-NEXT:    movt r0, #65408
; CHECK-NEXT:    bx lr
  %r = call nnan float @llvm.minimum.f32(float %x, float 0xfff0000000000000)
  ret float %r
}

define float @test_minnum_const_max(float %x) {
; CHECK-LABEL: test_minnum_const_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI28_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vminnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI28_0:
; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38
  %r = call float @llvm.minnum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_maxnum_const_max(float %x) {
; CHECK-LABEL: test_maxnum_const_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI29_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI29_0:
; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38
  %r = call float @llvm.maxnum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_maximum_const_max(float %x) {
; CHECK-LABEL: test_maximum_const_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI30_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmax.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI30_0:
; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38
  %r = call float @llvm.maximum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_minimum_const_max(float %x) {
; CHECK-LABEL: test_minimum_const_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI31_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmin.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI31_0:
; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38
  %r = call float @llvm.minimum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_minnum_const_neg_max(float %x) {
; CHECK-LABEL: test_minnum_const_neg_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI32_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vminnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI32_0:
; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38
  %r = call float @llvm.minnum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_maxnum_const_neg_max(float %x) {
; CHECK-LABEL: test_maxnum_const_neg_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI33_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI33_0:
; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38
  %r = call float @llvm.maxnum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_maximum_const_neg_max(float %x) {
; CHECK-LABEL: test_maximum_const_neg_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI34_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmax.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI34_0:
; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38
  %r = call float @llvm.maximum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_minimum_const_neg_max(float %x) {
; CHECK-LABEL: test_minimum_const_neg_max:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI35_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmin.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI35_0:
; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38
  %r = call float @llvm.minimum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_minnum_const_max_ninf(float %x) {
; CHECK-LABEL: test_minnum_const_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI36_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vminnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI36_0:
; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38
  %r = call ninf float @llvm.minnum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_maxnum_const_max_ninf(float %x) {
; CHECK-LABEL: test_maxnum_const_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #65535
; CHECK-NEXT:    movt r0, #32639
; CHECK-NEXT:    bx lr
  %r = call ninf float @llvm.maxnum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_maximum_const_max_ninf(float %x) {
; CHECK-LABEL: test_maximum_const_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI38_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmax.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI38_0:
; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38
  %r = call ninf float @llvm.maximum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_minimum_const_max_ninf(float %x) {
; CHECK-LABEL: test_minimum_const_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call ninf float @llvm.minimum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_minnum_const_neg_max_ninf(float %x) {
; CHECK-LABEL: test_minnum_const_neg_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    mvn r0, #8388608
; CHECK-NEXT:    bx lr
  %r = call ninf float @llvm.minnum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_maxnum_const_neg_max_ninf(float %x) {
; CHECK-LABEL: test_maxnum_const_neg_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI41_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI41_0:
; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38
  %r = call ninf float @llvm.maxnum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_maximum_const_neg_max_ninf(float %x) {
; CHECK-LABEL: test_maximum_const_neg_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call ninf float @llvm.maximum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_minimum_const_neg_max_ninf(float %x) {
; CHECK-LABEL: test_minimum_const_neg_max_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    vldr s0, .LCPI43_0
; CHECK-NEXT:    vmov s2, r0
; CHECK-NEXT:    vmin.f32 d0, d1, d0
; CHECK-NEXT:    vmov r0, s0
; CHECK-NEXT:    bx lr
; CHECK-NEXT:    .p2align 2
; CHECK-NEXT:  @ %bb.1:
; CHECK-NEXT:  .LCPI43_0:
; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38
  %r = call ninf float @llvm.minimum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_minnum_const_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_minnum_const_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.minnum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_maxnum_const_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_maxnum_const_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #65535
; CHECK-NEXT:    movt r0, #32639
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.maxnum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_maximum_const_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_maximum_const_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    movw r0, #65535
; CHECK-NEXT:    movt r0, #32639
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.maximum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_minimum_const_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_minimum_const_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.minimum.f32(float %x, float 0x47efffffe0000000)
  ret float %r
}

define float @test_minnum_const_neg_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_minnum_const_neg_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    mvn r0, #8388608
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.minnum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_maxnum_const_neg_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_maxnum_const_neg_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.maxnum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_maximum_const_neg_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_maximum_const_neg_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.maximum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}

define float @test_minimum_const_neg_max_nnan_ninf(float %x) {
; CHECK-LABEL: test_minimum_const_neg_max_nnan_ninf:
; CHECK:       @ %bb.0:
; CHECK-NEXT:    mvn r0, #8388608
; CHECK-NEXT:    bx lr
  %r = call nnan ninf float @llvm.minimum.f32(float %x, float 0xc7efffffe0000000)
  ret float %r
}
