brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.5 KiB · b13426c Raw
599 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=armv8-eabi | FileCheck %s3 4declare float @llvm.minnum.f32(float, float)5declare float @llvm.maxnum.f32(float, float)6declare float @llvm.minimum.f32(float, float)7declare float @llvm.maximum.f32(float, float)8declare <2 x float> @llvm.minnum.v2f32(<2 x float>, <2 x float>)9declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>)10declare <2 x float> @llvm.minimum.v2f32(<2 x float>, <2 x float>)11declare <2 x float> @llvm.maximum.v2f32(<2 x float>, <2 x float>)12 13define float @test_minnum_const_nan(float %x) {14; CHECK-LABEL: test_minnum_const_nan:15; CHECK:       @ %bb.0:16; CHECK-NEXT:    bx lr17  %r = call float @llvm.minnum.f32(float %x, float 0x7fff000000000000)18  ret float %r19}20 21define float @test_maxnum_const_nan(float %x) {22; CHECK-LABEL: test_maxnum_const_nan:23; CHECK:       @ %bb.0:24; CHECK-NEXT:    bx lr25  %r = call float @llvm.maxnum.f32(float %x, float 0x7fff000000000000)26  ret float %r27}28 29define float @test_maximum_const_nan(float %x) {30; CHECK-LABEL: test_maximum_const_nan:31; CHECK:       @ %bb.0:32; CHECK-NEXT:    movw r0, #033; CHECK-NEXT:    movt r0, #3276034; CHECK-NEXT:    bx lr35  %r = call float @llvm.maximum.f32(float %x, float 0x7fff000000000000)36  ret float %r37}38 39define float @test_minimum_const_nan(float %x) {40; CHECK-LABEL: test_minimum_const_nan:41; CHECK:       @ %bb.0:42; CHECK-NEXT:    movw r0, #043; CHECK-NEXT:    movt r0, #3276044; CHECK-NEXT:    bx lr45  %r = call float @llvm.minimum.f32(float %x, float 0x7fff000000000000)46  ret float %r47}48 49define float @test_minnum_const_inf(float %x) {50; CHECK-LABEL: test_minnum_const_inf:51; CHECK:       @ %bb.0:52; CHECK-NEXT:    vldr s0, .LCPI4_053; CHECK-NEXT:    vmov s2, r054; CHECK-NEXT:    vminnm.f32 s0, s2, s055; CHECK-NEXT:    vmov r0, s056; CHECK-NEXT:    bx lr57; CHECK-NEXT:    .p2align 258; CHECK-NEXT:  @ %bb.1:59; CHECK-NEXT:  .LCPI4_0:60; CHECK-NEXT:    .long 0x7f800000 @ float +Inf61  %r = call float @llvm.minnum.f32(float %x, float 0x7ff0000000000000)62  ret float %r63}64 65define float @test_maxnum_const_inf(float %x) {66; CHECK-LABEL: test_maxnum_const_inf:67; CHECK:       @ %bb.0:68; CHECK-NEXT:    movw r0, #069; CHECK-NEXT:    movt r0, #3264070; CHECK-NEXT:    bx lr71  %r = call float @llvm.maxnum.f32(float %x, float 0x7ff0000000000000)72  ret float %r73}74 75define float @test_maximum_const_inf(float %x) {76; CHECK-LABEL: test_maximum_const_inf:77; CHECK:       @ %bb.0:78; CHECK-NEXT:    vldr s0, .LCPI6_079; CHECK-NEXT:    vmov s2, r080; CHECK-NEXT:    vmax.f32 d0, d1, d081; CHECK-NEXT:    vmov r0, s082; CHECK-NEXT:    bx lr83; CHECK-NEXT:    .p2align 284; CHECK-NEXT:  @ %bb.1:85; CHECK-NEXT:  .LCPI6_0:86; CHECK-NEXT:    .long 0x7f800000 @ float +Inf87  %r = call float @llvm.maximum.f32(float %x, float 0x7ff0000000000000)88  ret float %r89}90 91define float @test_minimum_const_inf(float %x) {92; CHECK-LABEL: test_minimum_const_inf:93; CHECK:       @ %bb.0:94; CHECK-NEXT:    bx lr95  %r = call float @llvm.minimum.f32(float %x, float 0x7ff0000000000000)96  ret float %r97}98 99define float @test_minnum_const_neg_inf(float %x) {100; CHECK-LABEL: test_minnum_const_neg_inf:101; CHECK:       @ %bb.0:102; CHECK-NEXT:    movw r0, #0103; CHECK-NEXT:    movt r0, #65408104; CHECK-NEXT:    bx lr105  %r = call float @llvm.minnum.f32(float %x, float 0xfff0000000000000)106  ret float %r107}108 109define float @test_maxnum_const_neg_inf(float %x) {110; CHECK-LABEL: test_maxnum_const_neg_inf:111; CHECK:       @ %bb.0:112; CHECK-NEXT:    vldr s0, .LCPI9_0113; CHECK-NEXT:    vmov s2, r0114; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0115; CHECK-NEXT:    vmov r0, s0116; CHECK-NEXT:    bx lr117; CHECK-NEXT:    .p2align 2118; CHECK-NEXT:  @ %bb.1:119; CHECK-NEXT:  .LCPI9_0:120; CHECK-NEXT:    .long 0xff800000 @ float -Inf121  %r = call float @llvm.maxnum.f32(float %x, float 0xfff0000000000000)122  ret float %r123}124 125define float @test_maximum_const_neg_inf(float %x) {126; CHECK-LABEL: test_maximum_const_neg_inf:127; CHECK:       @ %bb.0:128; CHECK-NEXT:    bx lr129  %r = call float @llvm.maximum.f32(float %x, float 0xfff0000000000000)130  ret float %r131}132 133define float @test_minimum_const_neg_inf(float %x) {134; CHECK-LABEL: test_minimum_const_neg_inf:135; CHECK:       @ %bb.0:136; CHECK-NEXT:    vldr s0, .LCPI11_0137; CHECK-NEXT:    vmov s2, r0138; CHECK-NEXT:    vmin.f32 d0, d1, d0139; CHECK-NEXT:    vmov r0, s0140; CHECK-NEXT:    bx lr141; CHECK-NEXT:    .p2align 2142; CHECK-NEXT:  @ %bb.1:143; CHECK-NEXT:  .LCPI11_0:144; CHECK-NEXT:    .long 0xff800000 @ float -Inf145  %r = call float @llvm.minimum.f32(float %x, float 0xfff0000000000000)146  ret float %r147}148 149define float @test_minnum_const_inf_nnan(float %x) {150; CHECK-LABEL: test_minnum_const_inf_nnan:151; CHECK:       @ %bb.0:152; CHECK-NEXT:    bx lr153  %r = call nnan float @llvm.minnum.f32(float %x, float 0x7ff0000000000000)154  ret float %r155}156 157define float @test_maxnum_const_inf_nnan(float %x) {158; CHECK-LABEL: test_maxnum_const_inf_nnan:159; CHECK:       @ %bb.0:160; CHECK-NEXT:    movw r0, #0161; CHECK-NEXT:    movt r0, #32640162; CHECK-NEXT:    bx lr163  %r = call nnan float @llvm.maxnum.f32(float %x, float 0x7ff0000000000000)164  ret float %r165}166 167define float @test_maximum_const_inf_nnan(float %x) {168; CHECK-LABEL: test_maximum_const_inf_nnan:169; CHECK:       @ %bb.0:170; CHECK-NEXT:    movw r0, #0171; CHECK-NEXT:    movt r0, #32640172; CHECK-NEXT:    bx lr173  %r = call nnan float @llvm.maximum.f32(float %x, float 0x7ff0000000000000)174  ret float %r175}176 177define float @test_minimum_const_inf_nnan(float %x) {178; CHECK-LABEL: test_minimum_const_inf_nnan:179; CHECK:       @ %bb.0:180; CHECK-NEXT:    bx lr181  %r = call nnan float @llvm.minimum.f32(float %x, float 0x7ff0000000000000)182  ret float %r183}184 185define float @test_minnum_const_inf_nnan_comm(float %x) {186; CHECK-LABEL: test_minnum_const_inf_nnan_comm:187; CHECK:       @ %bb.0:188; CHECK-NEXT:    bx lr189  %r = call nnan float @llvm.minnum.f32(float 0x7ff0000000000000, float %x)190  ret float %r191}192 193define float @test_maxnum_const_inf_nnan_comm(float %x) {194; CHECK-LABEL: test_maxnum_const_inf_nnan_comm:195; CHECK:       @ %bb.0:196; CHECK-NEXT:    movw r0, #0197; CHECK-NEXT:    movt r0, #32640198; CHECK-NEXT:    bx lr199  %r = call nnan float @llvm.maxnum.f32(float 0x7ff0000000000000, float %x)200  ret float %r201}202 203define float @test_maximum_const_inf_nnan_comm(float %x) {204; CHECK-LABEL: test_maximum_const_inf_nnan_comm:205; CHECK:       @ %bb.0:206; CHECK-NEXT:    movw r0, #0207; CHECK-NEXT:    movt r0, #32640208; CHECK-NEXT:    bx lr209  %r = call nnan float @llvm.maximum.f32(float 0x7ff0000000000000, float %x)210  ret float %r211}212 213define float @test_minimum_const_inf_nnan_comm(float %x) {214; CHECK-LABEL: test_minimum_const_inf_nnan_comm:215; CHECK:       @ %bb.0:216; CHECK-NEXT:    bx lr217  %r = call nnan float @llvm.minimum.f32(float 0x7ff0000000000000, float %x)218  ret float %r219}220 221define <2 x float> @test_minnum_const_inf_nnan_comm_vec(<2 x float> %x) {222; CHECK-LABEL: test_minnum_const_inf_nnan_comm_vec:223; CHECK:       @ %bb.0:224; CHECK-NEXT:    bx lr225  %r = call nnan <2 x float> @llvm.minnum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)226  ret <2 x float> %r227}228 229define <2 x float> @test_maxnum_const_inf_nnan_comm_vec(<2 x float> %x) {230; CHECK-LABEL: test_maxnum_const_inf_nnan_comm_vec:231; CHECK:       @ %bb.0:232; CHECK-NEXT:    vldr d16, .LCPI21_0233; CHECK-NEXT:    vmov r0, r1, d16234; CHECK-NEXT:    bx lr235; CHECK-NEXT:    .p2align 3236; CHECK-NEXT:  @ %bb.1:237; CHECK-NEXT:  .LCPI21_0:238; CHECK-NEXT:    .long 0x7f800000 @ float +Inf239; CHECK-NEXT:    .long 0x7f800000 @ float +Inf240  %r = call nnan <2 x float> @llvm.maxnum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)241  ret <2 x float> %r242}243 244define <2 x float> @test_maximum_const_inf_nnan_comm_vec(<2 x float> %x) {245; CHECK-LABEL: test_maximum_const_inf_nnan_comm_vec:246; CHECK:       @ %bb.0:247; CHECK-NEXT:    vldr d16, .LCPI22_0248; CHECK-NEXT:    vmov r0, r1, d16249; CHECK-NEXT:    bx lr250; CHECK-NEXT:    .p2align 3251; CHECK-NEXT:  @ %bb.1:252; CHECK-NEXT:  .LCPI22_0:253; CHECK-NEXT:    .long 0x7f800000 @ float +Inf254; CHECK-NEXT:    .long 0x7f800000 @ float +Inf255  %r = call nnan <2 x float> @llvm.maximum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)256  ret <2 x float> %r257}258 259define <2 x float> @test_minimum_const_inf_nnan_comm_vec(<2 x float> %x) {260; CHECK-LABEL: test_minimum_const_inf_nnan_comm_vec:261; CHECK:       @ %bb.0:262; CHECK-NEXT:    bx lr263  %r = call nnan <2 x float> @llvm.minimum.v2f32(<2 x float> <float 0x7ff0000000000000, float 0x7ff0000000000000>, <2 x float> %x)264  ret <2 x float> %r265}266 267define float @test_minnum_const_neg_inf_nnan(float %x) {268; CHECK-LABEL: test_minnum_const_neg_inf_nnan:269; CHECK:       @ %bb.0:270; CHECK-NEXT:    movw r0, #0271; CHECK-NEXT:    movt r0, #65408272; CHECK-NEXT:    bx lr273  %r = call nnan float @llvm.minnum.f32(float %x, float 0xfff0000000000000)274  ret float %r275}276 277define float @test_maxnum_const_neg_inf_nnan(float %x) {278; CHECK-LABEL: test_maxnum_const_neg_inf_nnan:279; CHECK:       @ %bb.0:280; CHECK-NEXT:    bx lr281  %r = call nnan float @llvm.maxnum.f32(float %x, float 0xfff0000000000000)282  ret float %r283}284 285define float @test_maximum_const_neg_inf_nnan(float %x) {286; CHECK-LABEL: test_maximum_const_neg_inf_nnan:287; CHECK:       @ %bb.0:288; CHECK-NEXT:    bx lr289  %r = call nnan float @llvm.maximum.f32(float %x, float 0xfff0000000000000)290  ret float %r291}292 293define float @test_minimum_const_neg_inf_nnan(float %x) {294; CHECK-LABEL: test_minimum_const_neg_inf_nnan:295; CHECK:       @ %bb.0:296; CHECK-NEXT:    movw r0, #0297; CHECK-NEXT:    movt r0, #65408298; CHECK-NEXT:    bx lr299  %r = call nnan float @llvm.minimum.f32(float %x, float 0xfff0000000000000)300  ret float %r301}302 303define float @test_minnum_const_max(float %x) {304; CHECK-LABEL: test_minnum_const_max:305; CHECK:       @ %bb.0:306; CHECK-NEXT:    vldr s0, .LCPI28_0307; CHECK-NEXT:    vmov s2, r0308; CHECK-NEXT:    vminnm.f32 s0, s2, s0309; CHECK-NEXT:    vmov r0, s0310; CHECK-NEXT:    bx lr311; CHECK-NEXT:    .p2align 2312; CHECK-NEXT:  @ %bb.1:313; CHECK-NEXT:  .LCPI28_0:314; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38315  %r = call float @llvm.minnum.f32(float %x, float 0x47efffffe0000000)316  ret float %r317}318 319define float @test_maxnum_const_max(float %x) {320; CHECK-LABEL: test_maxnum_const_max:321; CHECK:       @ %bb.0:322; CHECK-NEXT:    vldr s0, .LCPI29_0323; CHECK-NEXT:    vmov s2, r0324; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0325; CHECK-NEXT:    vmov r0, s0326; CHECK-NEXT:    bx lr327; CHECK-NEXT:    .p2align 2328; CHECK-NEXT:  @ %bb.1:329; CHECK-NEXT:  .LCPI29_0:330; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38331  %r = call float @llvm.maxnum.f32(float %x, float 0x47efffffe0000000)332  ret float %r333}334 335define float @test_maximum_const_max(float %x) {336; CHECK-LABEL: test_maximum_const_max:337; CHECK:       @ %bb.0:338; CHECK-NEXT:    vldr s0, .LCPI30_0339; CHECK-NEXT:    vmov s2, r0340; CHECK-NEXT:    vmax.f32 d0, d1, d0341; CHECK-NEXT:    vmov r0, s0342; CHECK-NEXT:    bx lr343; CHECK-NEXT:    .p2align 2344; CHECK-NEXT:  @ %bb.1:345; CHECK-NEXT:  .LCPI30_0:346; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38347  %r = call float @llvm.maximum.f32(float %x, float 0x47efffffe0000000)348  ret float %r349}350 351define float @test_minimum_const_max(float %x) {352; CHECK-LABEL: test_minimum_const_max:353; CHECK:       @ %bb.0:354; CHECK-NEXT:    vldr s0, .LCPI31_0355; CHECK-NEXT:    vmov s2, r0356; CHECK-NEXT:    vmin.f32 d0, d1, d0357; CHECK-NEXT:    vmov r0, s0358; CHECK-NEXT:    bx lr359; CHECK-NEXT:    .p2align 2360; CHECK-NEXT:  @ %bb.1:361; CHECK-NEXT:  .LCPI31_0:362; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38363  %r = call float @llvm.minimum.f32(float %x, float 0x47efffffe0000000)364  ret float %r365}366 367define float @test_minnum_const_neg_max(float %x) {368; CHECK-LABEL: test_minnum_const_neg_max:369; CHECK:       @ %bb.0:370; CHECK-NEXT:    vldr s0, .LCPI32_0371; CHECK-NEXT:    vmov s2, r0372; CHECK-NEXT:    vminnm.f32 s0, s2, s0373; CHECK-NEXT:    vmov r0, s0374; CHECK-NEXT:    bx lr375; CHECK-NEXT:    .p2align 2376; CHECK-NEXT:  @ %bb.1:377; CHECK-NEXT:  .LCPI32_0:378; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38379  %r = call float @llvm.minnum.f32(float %x, float 0xc7efffffe0000000)380  ret float %r381}382 383define float @test_maxnum_const_neg_max(float %x) {384; CHECK-LABEL: test_maxnum_const_neg_max:385; CHECK:       @ %bb.0:386; CHECK-NEXT:    vldr s0, .LCPI33_0387; CHECK-NEXT:    vmov s2, r0388; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0389; CHECK-NEXT:    vmov r0, s0390; CHECK-NEXT:    bx lr391; CHECK-NEXT:    .p2align 2392; CHECK-NEXT:  @ %bb.1:393; CHECK-NEXT:  .LCPI33_0:394; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38395  %r = call float @llvm.maxnum.f32(float %x, float 0xc7efffffe0000000)396  ret float %r397}398 399define float @test_maximum_const_neg_max(float %x) {400; CHECK-LABEL: test_maximum_const_neg_max:401; CHECK:       @ %bb.0:402; CHECK-NEXT:    vldr s0, .LCPI34_0403; CHECK-NEXT:    vmov s2, r0404; CHECK-NEXT:    vmax.f32 d0, d1, d0405; CHECK-NEXT:    vmov r0, s0406; CHECK-NEXT:    bx lr407; CHECK-NEXT:    .p2align 2408; CHECK-NEXT:  @ %bb.1:409; CHECK-NEXT:  .LCPI34_0:410; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38411  %r = call float @llvm.maximum.f32(float %x, float 0xc7efffffe0000000)412  ret float %r413}414 415define float @test_minimum_const_neg_max(float %x) {416; CHECK-LABEL: test_minimum_const_neg_max:417; CHECK:       @ %bb.0:418; CHECK-NEXT:    vldr s0, .LCPI35_0419; CHECK-NEXT:    vmov s2, r0420; CHECK-NEXT:    vmin.f32 d0, d1, d0421; CHECK-NEXT:    vmov r0, s0422; CHECK-NEXT:    bx lr423; CHECK-NEXT:    .p2align 2424; CHECK-NEXT:  @ %bb.1:425; CHECK-NEXT:  .LCPI35_0:426; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38427  %r = call float @llvm.minimum.f32(float %x, float 0xc7efffffe0000000)428  ret float %r429}430 431define float @test_minnum_const_max_ninf(float %x) {432; CHECK-LABEL: test_minnum_const_max_ninf:433; CHECK:       @ %bb.0:434; CHECK-NEXT:    vldr s0, .LCPI36_0435; CHECK-NEXT:    vmov s2, r0436; CHECK-NEXT:    vminnm.f32 s0, s2, s0437; CHECK-NEXT:    vmov r0, s0438; CHECK-NEXT:    bx lr439; CHECK-NEXT:    .p2align 2440; CHECK-NEXT:  @ %bb.1:441; CHECK-NEXT:  .LCPI36_0:442; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38443  %r = call ninf float @llvm.minnum.f32(float %x, float 0x47efffffe0000000)444  ret float %r445}446 447define float @test_maxnum_const_max_ninf(float %x) {448; CHECK-LABEL: test_maxnum_const_max_ninf:449; CHECK:       @ %bb.0:450; CHECK-NEXT:    movw r0, #65535451; CHECK-NEXT:    movt r0, #32639452; CHECK-NEXT:    bx lr453  %r = call ninf float @llvm.maxnum.f32(float %x, float 0x47efffffe0000000)454  ret float %r455}456 457define float @test_maximum_const_max_ninf(float %x) {458; CHECK-LABEL: test_maximum_const_max_ninf:459; CHECK:       @ %bb.0:460; CHECK-NEXT:    vldr s0, .LCPI38_0461; CHECK-NEXT:    vmov s2, r0462; CHECK-NEXT:    vmax.f32 d0, d1, d0463; CHECK-NEXT:    vmov r0, s0464; CHECK-NEXT:    bx lr465; CHECK-NEXT:    .p2align 2466; CHECK-NEXT:  @ %bb.1:467; CHECK-NEXT:  .LCPI38_0:468; CHECK-NEXT:    .long 0x7f7fffff @ float 3.40282347E+38469  %r = call ninf float @llvm.maximum.f32(float %x, float 0x47efffffe0000000)470  ret float %r471}472 473define float @test_minimum_const_max_ninf(float %x) {474; CHECK-LABEL: test_minimum_const_max_ninf:475; CHECK:       @ %bb.0:476; CHECK-NEXT:    bx lr477  %r = call ninf float @llvm.minimum.f32(float %x, float 0x47efffffe0000000)478  ret float %r479}480 481define float @test_minnum_const_neg_max_ninf(float %x) {482; CHECK-LABEL: test_minnum_const_neg_max_ninf:483; CHECK:       @ %bb.0:484; CHECK-NEXT:    mvn r0, #8388608485; CHECK-NEXT:    bx lr486  %r = call ninf float @llvm.minnum.f32(float %x, float 0xc7efffffe0000000)487  ret float %r488}489 490define float @test_maxnum_const_neg_max_ninf(float %x) {491; CHECK-LABEL: test_maxnum_const_neg_max_ninf:492; CHECK:       @ %bb.0:493; CHECK-NEXT:    vldr s0, .LCPI41_0494; CHECK-NEXT:    vmov s2, r0495; CHECK-NEXT:    vmaxnm.f32 s0, s2, s0496; CHECK-NEXT:    vmov r0, s0497; CHECK-NEXT:    bx lr498; CHECK-NEXT:    .p2align 2499; CHECK-NEXT:  @ %bb.1:500; CHECK-NEXT:  .LCPI41_0:501; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38502  %r = call ninf float @llvm.maxnum.f32(float %x, float 0xc7efffffe0000000)503  ret float %r504}505 506define float @test_maximum_const_neg_max_ninf(float %x) {507; CHECK-LABEL: test_maximum_const_neg_max_ninf:508; CHECK:       @ %bb.0:509; CHECK-NEXT:    bx lr510  %r = call ninf float @llvm.maximum.f32(float %x, float 0xc7efffffe0000000)511  ret float %r512}513 514define float @test_minimum_const_neg_max_ninf(float %x) {515; CHECK-LABEL: test_minimum_const_neg_max_ninf:516; CHECK:       @ %bb.0:517; CHECK-NEXT:    vldr s0, .LCPI43_0518; CHECK-NEXT:    vmov s2, r0519; CHECK-NEXT:    vmin.f32 d0, d1, d0520; CHECK-NEXT:    vmov r0, s0521; CHECK-NEXT:    bx lr522; CHECK-NEXT:    .p2align 2523; CHECK-NEXT:  @ %bb.1:524; CHECK-NEXT:  .LCPI43_0:525; CHECK-NEXT:    .long 0xff7fffff @ float -3.40282347E+38526  %r = call ninf float @llvm.minimum.f32(float %x, float 0xc7efffffe0000000)527  ret float %r528}529 530define float @test_minnum_const_max_nnan_ninf(float %x) {531; CHECK-LABEL: test_minnum_const_max_nnan_ninf:532; CHECK:       @ %bb.0:533; CHECK-NEXT:    bx lr534  %r = call nnan ninf float @llvm.minnum.f32(float %x, float 0x47efffffe0000000)535  ret float %r536}537 538define float @test_maxnum_const_max_nnan_ninf(float %x) {539; CHECK-LABEL: test_maxnum_const_max_nnan_ninf:540; CHECK:       @ %bb.0:541; CHECK-NEXT:    movw r0, #65535542; CHECK-NEXT:    movt r0, #32639543; CHECK-NEXT:    bx lr544  %r = call nnan ninf float @llvm.maxnum.f32(float %x, float 0x47efffffe0000000)545  ret float %r546}547 548define float @test_maximum_const_max_nnan_ninf(float %x) {549; CHECK-LABEL: test_maximum_const_max_nnan_ninf:550; CHECK:       @ %bb.0:551; CHECK-NEXT:    movw r0, #65535552; CHECK-NEXT:    movt r0, #32639553; CHECK-NEXT:    bx lr554  %r = call nnan ninf float @llvm.maximum.f32(float %x, float 0x47efffffe0000000)555  ret float %r556}557 558define float @test_minimum_const_max_nnan_ninf(float %x) {559; CHECK-LABEL: test_minimum_const_max_nnan_ninf:560; CHECK:       @ %bb.0:561; CHECK-NEXT:    bx lr562  %r = call nnan ninf float @llvm.minimum.f32(float %x, float 0x47efffffe0000000)563  ret float %r564}565 566define float @test_minnum_const_neg_max_nnan_ninf(float %x) {567; CHECK-LABEL: test_minnum_const_neg_max_nnan_ninf:568; CHECK:       @ %bb.0:569; CHECK-NEXT:    mvn r0, #8388608570; CHECK-NEXT:    bx lr571  %r = call nnan ninf float @llvm.minnum.f32(float %x, float 0xc7efffffe0000000)572  ret float %r573}574 575define float @test_maxnum_const_neg_max_nnan_ninf(float %x) {576; CHECK-LABEL: test_maxnum_const_neg_max_nnan_ninf:577; CHECK:       @ %bb.0:578; CHECK-NEXT:    bx lr579  %r = call nnan ninf float @llvm.maxnum.f32(float %x, float 0xc7efffffe0000000)580  ret float %r581}582 583define float @test_maximum_const_neg_max_nnan_ninf(float %x) {584; CHECK-LABEL: test_maximum_const_neg_max_nnan_ninf:585; CHECK:       @ %bb.0:586; CHECK-NEXT:    bx lr587  %r = call nnan ninf float @llvm.maximum.f32(float %x, float 0xc7efffffe0000000)588  ret float %r589}590 591define float @test_minimum_const_neg_max_nnan_ninf(float %x) {592; CHECK-LABEL: test_minimum_const_neg_max_nnan_ninf:593; CHECK:       @ %bb.0:594; CHECK-NEXT:    mvn r0, #8388608595; CHECK-NEXT:    bx lr596  %r = call nnan ninf float @llvm.minimum.f32(float %x, float 0xc7efffffe0000000)597  ret float %r598}599