@@ -65,9 +65,15 @@ define float @test_minnum_const_inf(float %x) {
6565define float @test_maxnum_const_inf (float %x ) {
6666; CHECK-LABEL: test_maxnum_const_inf:
6767; CHECK: @ %bb.0:
68- ; CHECK-NEXT: movw r0, #0
69- ; CHECK-NEXT: movt r0, #32640
68+ ; CHECK-NEXT: vldr s0, .LCPI5_0
69+ ; CHECK-NEXT: vmov s2, r0
70+ ; CHECK-NEXT: vmaxnm.f32 s0, s2, s0
71+ ; CHECK-NEXT: vmov r0, s0
7072; CHECK-NEXT: bx lr
73+ ; CHECK-NEXT: .p2align 2
74+ ; CHECK-NEXT: @ %bb.1:
75+ ; CHECK-NEXT: .LCPI5_0:
76+ ; CHECK-NEXT: .long 0x7f800000 @ float +Inf
7177 %r = call float @llvm.maxnum.f32 (float %x , float 0x7ff0000000000000 )
7278 ret float %r
7379}
@@ -99,9 +105,15 @@ define float @test_minimum_const_inf(float %x) {
99105define float @test_minnum_const_neg_inf (float %x ) {
100106; CHECK-LABEL: test_minnum_const_neg_inf:
101107; CHECK: @ %bb.0:
102- ; CHECK-NEXT: movw r0, #0
103- ; CHECK-NEXT: movt r0, #65408
108+ ; CHECK-NEXT: vldr s0, .LCPI8_0
109+ ; CHECK-NEXT: vmov s2, r0
110+ ; CHECK-NEXT: vminnm.f32 s0, s2, s0
111+ ; CHECK-NEXT: vmov r0, s0
104112; CHECK-NEXT: bx lr
113+ ; CHECK-NEXT: .p2align 2
114+ ; CHECK-NEXT: @ %bb.1:
115+ ; CHECK-NEXT: .LCPI8_0:
116+ ; CHECK-NEXT: .long 0xff800000 @ float -Inf
105117 %r = call float @llvm.minnum.f32 (float %x , float 0xfff0000000000000 )
106118 ret float %r
107119}
@@ -447,9 +459,15 @@ define float @test_minnum_const_max_ninf(float %x) {
447459define float @test_maxnum_const_max_ninf (float %x ) {
448460; CHECK-LABEL: test_maxnum_const_max_ninf:
449461; CHECK: @ %bb.0:
450- ; CHECK-NEXT: movw r0, #65535
451- ; CHECK-NEXT: movt r0, #32639
462+ ; CHECK-NEXT: vldr s0, .LCPI37_0
463+ ; CHECK-NEXT: vmov s2, r0
464+ ; CHECK-NEXT: vmaxnm.f32 s0, s2, s0
465+ ; CHECK-NEXT: vmov r0, s0
452466; CHECK-NEXT: bx lr
467+ ; CHECK-NEXT: .p2align 2
468+ ; CHECK-NEXT: @ %bb.1:
469+ ; CHECK-NEXT: .LCPI37_0:
470+ ; CHECK-NEXT: .long 0x7f7fffff @ float 3.40282347E+38
453471 %r = call ninf float @llvm.maxnum.f32 (float %x , float 0x47efffffe0000000 )
454472 ret float %r
455473}
@@ -481,8 +499,15 @@ define float @test_minimum_const_max_ninf(float %x) {
481499define float @test_minnum_const_neg_max_ninf (float %x ) {
482500; CHECK-LABEL: test_minnum_const_neg_max_ninf:
483501; CHECK: @ %bb.0:
484- ; CHECK-NEXT: mvn r0, #8388608
502+ ; CHECK-NEXT: vldr s0, .LCPI40_0
503+ ; CHECK-NEXT: vmov s2, r0
504+ ; CHECK-NEXT: vminnm.f32 s0, s2, s0
505+ ; CHECK-NEXT: vmov r0, s0
485506; CHECK-NEXT: bx lr
507+ ; CHECK-NEXT: .p2align 2
508+ ; CHECK-NEXT: @ %bb.1:
509+ ; CHECK-NEXT: .LCPI40_0:
510+ ; CHECK-NEXT: .long 0xff7fffff @ float -3.40282347E+38
486511 %r = call ninf float @llvm.minnum.f32 (float %x , float 0xc7efffffe0000000 )
487512 ret float %r
488513}
0 commit comments