brintos

brintos / llvm-project-archived public Read only

0
0
Text · 43.4 KiB · f21e9af Raw
797 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -S < %s | FileCheck %s --check-prefixes=CHECK,TUNIT3 4declare float @llvm.minimumnum.f32(float, float)5declare float @llvm.maximumnum.f32(float, float)6declare <2 x float> @llvm.minimumnum.v2f32(<2 x float>, <2 x float>)7 8define float @ret_minimumnum(float %arg0, float %arg1) #0 {9; CHECK-LABEL: define float @ret_minimumnum10; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1:[0-9]+]] {11; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9:[0-9]+]]12; CHECK-NEXT:    ret float [[CALL]]13;14  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)15  ret float %call16}17 18define float @ret_minimumnum_noinf__noinf(float nofpclass(inf) %arg0, float nofpclass(inf) %arg1) #0 {19; CHECK-LABEL: define nofpclass(inf) float @ret_minimumnum_noinf__noinf20; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {21; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(inf) float @llvm.minimumnum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]22; CHECK-NEXT:    ret float [[CALL]]23;24  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)25  ret float %call26}27 28define float @ret_minimumnum_noinf__nonan(float nofpclass(inf) %arg0, float nofpclass(nan) %arg1) #0 {29; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_noinf__nonan30; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {31; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]32; CHECK-NEXT:    ret float [[CALL]]33;34  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)35  ret float %call36}37 38define float @ret_minimumnum_nonan__noinf(float nofpclass(nan) %arg0, float nofpclass(inf) %arg1) #0 {39; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_nonan__noinf40; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {41; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]42; CHECK-NEXT:    ret float [[CALL]]43;44  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)45  ret float %call46}47 48define float @ret_minimumnum_noinf_nonan__nonan(float nofpclass(inf nan) %arg0, float nofpclass(nan) %arg1) #0 {49; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_noinf_nonan__nonan50; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {51; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]52; CHECK-NEXT:    ret float [[CALL]]53;54  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)55  ret float %call56}57 58define float @ret_minimumnum_nonan__noinf_nonan(float nofpclass(nan) %arg0, float nofpclass(inf nan) %arg1) #0 {59; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_nonan__noinf_nonan60; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR1]] {61; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(nan inf) [[ARG1]]) #[[ATTR9]]62; CHECK-NEXT:    ret float [[CALL]]63;64  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)65  ret float %call66}67 68define float @ret_minimumnum_norm_zero__norm_sub(float nofpclass(norm zero) %arg0, float nofpclass(norm sub) %arg1) #0 {69; CHECK-LABEL: define nofpclass(norm) float @ret_minimumnum_norm_zero__norm_sub70; CHECK-SAME: (float nofpclass(zero norm) [[ARG0:%.*]], float nofpclass(sub norm) [[ARG1:%.*]]) #[[ATTR1]] {71; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(norm) float @llvm.minimumnum.f32(float nofpclass(zero norm) [[ARG0]], float nofpclass(sub norm) [[ARG1]]) #[[ATTR9]]72; CHECK-NEXT:    ret float [[CALL]]73;74  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)75  ret float %call76}77 78define float @ret_maximumnum(float %arg0, float %arg1) #0 {79; CHECK-LABEL: define float @ret_maximumnum80; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {81; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]82; CHECK-NEXT:    ret float [[CALL]]83;84  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)85  ret float %call86}87 88define float @ret_maximumnum_noinf__noinf(float nofpclass(inf) %arg0, float nofpclass(inf) %arg1) #0 {89; CHECK-LABEL: define nofpclass(inf) float @ret_maximumnum_noinf__noinf90; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {91; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(inf) float @llvm.maximumnum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]92; CHECK-NEXT:    ret float [[CALL]]93;94  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)95  ret float %call96}97 98define float @ret_maximumnum_noinf__nonan(float nofpclass(inf) %arg0, float nofpclass(nan) %arg1) #0 {99; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_noinf__nonan100; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {101; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]102; CHECK-NEXT:    ret float [[CALL]]103;104  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)105  ret float %call106}107 108define float @ret_maximumnum_nonan__noinf(float nofpclass(nan) %arg0, float nofpclass(inf) %arg1) #0 {109; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nonan__noinf110; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {111; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]112; CHECK-NEXT:    ret float [[CALL]]113;114  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)115  ret float %call116}117 118define float @ret_maximumnum_noinf_nonan__nonan(float nofpclass(inf nan) %arg0, float nofpclass(nan) %arg1) #0 {119; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_noinf_nonan__nonan120; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {121; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]122; CHECK-NEXT:    ret float [[CALL]]123;124  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)125  ret float %call126}127 128define float @ret_maximumnum_nonan__noinf_nonan(float nofpclass(nan) %arg0, float nofpclass(inf nan) %arg1) #0 {129; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nonan__noinf_nonan130; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR1]] {131; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(nan inf) [[ARG1]]) #[[ATTR9]]132; CHECK-NEXT:    ret float [[CALL]]133;134  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)135  ret float %call136}137 138define float @ret_maximumnum_norm_zero__norm_sub(float nofpclass(norm zero) %arg0, float nofpclass(norm sub) %arg1) #0 {139; CHECK-LABEL: define nofpclass(norm) float @ret_maximumnum_norm_zero__norm_sub140; CHECK-SAME: (float nofpclass(zero norm) [[ARG0:%.*]], float nofpclass(sub norm) [[ARG1:%.*]]) #[[ATTR1]] {141; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(norm) float @llvm.maximumnum.f32(float nofpclass(zero norm) [[ARG0]], float nofpclass(sub norm) [[ARG1]]) #[[ATTR9]]142; CHECK-NEXT:    ret float [[CALL]]143;144  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)145  ret float %call146}147 148define float @ret_minimumnum_daz_daz(float %arg0, float %arg1) #1 {149; CHECK-LABEL: define float @ret_minimumnum_daz_daz150; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR2:[0-9]+]] {151; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]152; CHECK-NEXT:    ret float [[CALL]]153;154  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)155  ret float %call156}157 158define float @ret_minimumnum_dapz_dappz(float %arg0, float %arg1) #2 {159; CHECK-LABEL: define float @ret_minimumnum_dapz_dappz160; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR3:[0-9]+]] {161; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]162; CHECK-NEXT:    ret float [[CALL]]163;164  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)165  ret float %call166}167define float @ret_minimumnum_dynamic_dynamic(float %arg0, float %arg1) #3 {168; CHECK-LABEL: define float @ret_minimumnum_dynamic_dynamic169; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4:[0-9]+]] {170; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]171; CHECK-NEXT:    ret float [[CALL]]172;173  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)174  ret float %call175}176 177define float @ret_minimumnum_noinf_nozero__noinf_nozero(float nofpclass(inf zero) %arg0, float nofpclass(inf zero) %arg1) #1 {178; CHECK-LABEL: define nofpclass(inf zero) float @ret_minimumnum_noinf_nozero__noinf_nozero179; CHECK-SAME: (float nofpclass(inf zero) [[ARG0:%.*]], float nofpclass(inf zero) [[ARG1:%.*]]) #[[ATTR2]] {180; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(inf zero) float @llvm.minimumnum.f32(float nofpclass(inf zero) [[ARG0]], float nofpclass(inf zero) [[ARG1]]) #[[ATTR9]]181; CHECK-NEXT:    ret float [[CALL]]182;183  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)184  ret float %call185}186 187define <2 x float> @ret_minimumnum_noinf_nozero__noinf_nozero_v2f32(<2 x float> nofpclass(inf zero) %arg0, <2 x float> nofpclass(inf zero) %arg1) #1 {188; CHECK-LABEL: define nofpclass(inf zero) <2 x float> @ret_minimumnum_noinf_nozero__noinf_nozero_v2f32189; CHECK-SAME: (<2 x float> nofpclass(inf zero) [[ARG0:%.*]], <2 x float> nofpclass(inf zero) [[ARG1:%.*]]) #[[ATTR2]] {190; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(inf zero) <2 x float> @llvm.minimumnum.v2f32(<2 x float> nofpclass(inf zero) [[ARG0]], <2 x float> nofpclass(inf zero) [[ARG1]]) #[[ATTR9]]191; CHECK-NEXT:    ret <2 x float> [[CALL]]192;193  %call = call <2 x float> @llvm.minimumnum.v2f32(<2 x float> %arg0, <2 x float> %arg1)194  ret <2 x float> %call195}196 197define float @ret_minimumnum_daz_daz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #1 {198; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_daz_daz_nozero__nozero199; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR2]] {200; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]201; CHECK-NEXT:    ret float [[CALL]]202;203  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)204  ret float %call205}206 207define float @ret_minimumnum_dapz_dapz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #2 {208; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_dapz_dapz_nozero__nozero209; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR3]] {210; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]211; CHECK-NEXT:    ret float [[CALL]]212;213  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)214  ret float %call215}216 217define float @ret_minimumnum_dynamic_dynamic_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #3 {218; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_dynamic_dynamic_nozero__nozero219; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR4]] {220; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]221; CHECK-NEXT:    ret float [[CALL]]222;223  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)224  ret float %call225}226 227define float @ret_minimumnum_daz_daz_nozero_nosub__nozero_nosub(float nofpclass(zero sub) %arg0, float nofpclass(zero sub) %arg1) #1 {228; CHECK-LABEL: define nofpclass(zero sub) float @ret_minimumnum_daz_daz_nozero_nosub__nozero_nosub229; CHECK-SAME: (float nofpclass(zero sub) [[ARG0:%.*]], float nofpclass(zero sub) [[ARG1:%.*]]) #[[ATTR2]] {230; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero sub) float @llvm.minimumnum.f32(float nofpclass(zero sub) [[ARG0]], float nofpclass(zero sub) [[ARG1]]) #[[ATTR9]]231; CHECK-NEXT:    ret float [[CALL]]232;233  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)234  ret float %call235}236 237define float @ret_minimumnum_dynamic_dynamic_nozero_nosub__nozero_nosub(float nofpclass(zero sub) %arg0, float nofpclass(zero sub) %arg1) #3 {238; CHECK-LABEL: define nofpclass(zero sub) float @ret_minimumnum_dynamic_dynamic_nozero_nosub__nozero_nosub239; CHECK-SAME: (float nofpclass(zero sub) [[ARG0:%.*]], float nofpclass(zero sub) [[ARG1:%.*]]) #[[ATTR4]] {240; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero sub) float @llvm.minimumnum.f32(float nofpclass(zero sub) [[ARG0]], float nofpclass(zero sub) [[ARG1]]) #[[ATTR9]]241; CHECK-NEXT:    ret float [[CALL]]242;243  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)244  ret float %call245}246 247define float @ret_minimumnum_daz_daz_nopzero__nopzero(float nofpclass(pzero) %arg0, float nofpclass(pzero) %arg1) #1 {248; CHECK-LABEL: define float @ret_minimumnum_daz_daz_nopzero__nopzero249; CHECK-SAME: (float nofpclass(pzero) [[ARG0:%.*]], float nofpclass(pzero) [[ARG1:%.*]]) #[[ATTR2]] {250; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(pzero) [[ARG0]], float nofpclass(pzero) [[ARG1]]) #[[ATTR9]]251; CHECK-NEXT:    ret float [[CALL]]252;253  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)254  ret float %call255}256 257define float @ret_minimumnum_daz_daz_nonzero__nonzero(float nofpclass(nzero) %arg0, float nofpclass(nzero) %arg1) #1 {258; CHECK-LABEL: define float @ret_minimumnum_daz_daz_nonzero__nonzero259; CHECK-SAME: (float nofpclass(nzero) [[ARG0:%.*]], float nofpclass(nzero) [[ARG1:%.*]]) #[[ATTR2]] {260; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(nzero) [[ARG0]], float nofpclass(nzero) [[ARG1]]) #[[ATTR9]]261; CHECK-NEXT:    ret float [[CALL]]262;263  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)264  ret float %call265}266 267define float @ret_minimumnum_daz_daz_nonzero_nonsub__nonzero_nonsub(float nofpclass(nzero nsub) %arg0, float nofpclass(nzero nsub) %arg1) #1 {268; CHECK-LABEL: define nofpclass(nsub) float @ret_minimumnum_daz_daz_nonzero_nonsub__nonzero_nonsub269; CHECK-SAME: (float nofpclass(nzero nsub) [[ARG0:%.*]], float nofpclass(nzero nsub) [[ARG1:%.*]]) #[[ATTR2]] {270; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nsub) float @llvm.minimumnum.f32(float nofpclass(nzero nsub) [[ARG0]], float nofpclass(nzero nsub) [[ARG1]]) #[[ATTR9]]271; CHECK-NEXT:    ret float [[CALL]]272;273  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)274  ret float %call275}276 277define float @ret_minimumnum_dapz_dapz_nopzero__nopzero(float nofpclass(pzero) %arg0, float nofpclass(pzero) %arg1) #2 {278; CHECK-LABEL: define float @ret_minimumnum_dapz_dapz_nopzero__nopzero279; CHECK-SAME: (float nofpclass(pzero) [[ARG0:%.*]], float nofpclass(pzero) [[ARG1:%.*]]) #[[ATTR3]] {280; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(pzero) [[ARG0]], float nofpclass(pzero) [[ARG1]]) #[[ATTR9]]281; CHECK-NEXT:    ret float [[CALL]]282;283  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)284  ret float %call285}286 287define float @ret_minimumnum_dapz_dapz_nopzero_nopsub__nopzero_nopsub(float nofpclass(pzero psub) %arg0, float nofpclass(pzero psub) %arg1) #2 {288; CHECK-LABEL: define nofpclass(psub) float @ret_minimumnum_dapz_dapz_nopzero_nopsub__nopzero_nopsub289; CHECK-SAME: (float nofpclass(pzero psub) [[ARG0:%.*]], float nofpclass(pzero psub) [[ARG1:%.*]]) #[[ATTR3]] {290; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(psub) float @llvm.minimumnum.f32(float nofpclass(pzero psub) [[ARG0]], float nofpclass(pzero psub) [[ARG1]]) #[[ATTR9]]291; CHECK-NEXT:    ret float [[CALL]]292;293  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)294  ret float %call295}296 297define float @ret_minimumnum_dapz_dapz_nonzero__nonzero(float nofpclass(nzero) %arg0, float nofpclass(nzero) %arg1) #2 {298; CHECK-LABEL: define float @ret_minimumnum_dapz_dapz_nonzero__nonzero299; CHECK-SAME: (float nofpclass(nzero) [[ARG0:%.*]], float nofpclass(nzero) [[ARG1:%.*]]) #[[ATTR3]] {300; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(nzero) [[ARG0]], float nofpclass(nzero) [[ARG1]]) #[[ATTR9]]301; CHECK-NEXT:    ret float [[CALL]]302;303  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)304  ret float %call305}306 307define float @ret_minimumnum_ieee_daz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #4 {308; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_ieee_daz_nozero__nozero309; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR5:[0-9]+]] {310; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]311; CHECK-NEXT:    ret float [[CALL]]312;313  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)314  ret float %call315}316 317define float @ret_minimumnum_daz_ieee_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #5 {318; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_daz_ieee_nozero__nozero319; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR6:[0-9]+]] {320; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]321; CHECK-NEXT:    ret float [[CALL]]322;323  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)324  ret float %call325}326 327define float @ret_minimumnum_ieee_dapz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #6 {328; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_ieee_dapz_nozero__nozero329; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR7:[0-9]+]] {330; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]331; CHECK-NEXT:    ret float [[CALL]]332;333  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)334  ret float %call335}336 337define float @ret_minimumnum_dapz_ieee_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #7 {338; CHECK-LABEL: define nofpclass(zero) float @ret_minimumnum_dapz_ieee_nozero__nozero339; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR8:[0-9]+]] {340; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimumnum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]341; CHECK-NEXT:    ret float [[CALL]]342;343  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)344  ret float %call345}346 347define float @ret_minimumnum_noneg_nan__any(float nofpclass(ninf nsub nnorm nan) %arg0, float %arg1) #3 {348; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_noneg_nan__any349; CHECK-SAME: (float nofpclass(nan ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {350; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]351; CHECK-NEXT:    ret float [[CALL]]352;353  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)354  ret float %call355}356 357define float @ret_minimumnum_any__noneg_nan(float %arg0, float nofpclass(ninf nsub nnorm nan) %arg1) #3 {358; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_any__noneg_nan359; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {360; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(nan ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]361; CHECK-NEXT:    ret float [[CALL]]362;363  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)364  ret float %call365}366 367define float @ret_minimumnum_nopos_nan__any(float nofpclass(pinf psub pnorm nan) %arg0, float %arg1) #3 {368; CHECK-LABEL: define nofpclass(nan pinf psub pnorm) float @ret_minimumnum_nopos_nan__any369; CHECK-SAME: (float nofpclass(nan pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {370; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan pinf psub pnorm) float @llvm.minimumnum.f32(float nofpclass(nan pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]371; CHECK-NEXT:    ret float [[CALL]]372;373  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)374  ret float %call375}376 377define float @ret_minimumnum_any__nopos_nan(float %arg0, float nofpclass(pinf psub pnorm nan) %arg1) #3 {378; CHECK-LABEL: define nofpclass(nan pinf psub pnorm) float @ret_minimumnum_any__nopos_nan379; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {380; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan pinf psub pnorm) float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(nan pinf psub pnorm) [[ARG1]]) #[[ATTR9]]381; CHECK-NEXT:    ret float [[CALL]]382;383  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)384  ret float %call385}386 387define float @ret_minimumnum_noneg__any(float nofpclass(ninf nsub nnorm) %arg0, float %arg1) #3 {388; CHECK-LABEL: define float @ret_minimumnum_noneg__any389; CHECK-SAME: (float nofpclass(ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {390; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]391; CHECK-NEXT:    ret float [[CALL]]392;393  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)394  ret float %call395}396 397define float @ret_minimumnum_any__noneg(float %arg0, float nofpclass(ninf nsub nnorm) %arg1) #3 {398; CHECK-LABEL: define float @ret_minimumnum_any__noneg399; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {400; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]401; CHECK-NEXT:    ret float [[CALL]]402;403  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)404  ret float %call405}406 407define float @ret_minimumnum_nopos__any(float nofpclass(pinf psub pnorm) %arg0, float %arg1) #3 {408; CHECK-LABEL: define float @ret_minimumnum_nopos__any409; CHECK-SAME: (float nofpclass(pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {410; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]411; CHECK-NEXT:    ret float [[CALL]]412;413  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)414  ret float %call415}416 417define float @ret_minimumnum_any__nopos(float %arg0, float nofpclass(pinf psub pnorm) %arg1) #3 {418; CHECK-LABEL: define float @ret_minimumnum_any__nopos419; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {420; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(pinf psub pnorm) [[ARG1]]) #[[ATTR9]]421; CHECK-NEXT:    ret float [[CALL]]422;423  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)424  ret float %call425}426 427define float @ret_maximumnum_noneg_nan__any(float nofpclass(ninf nsub nnorm nan) %arg0, float %arg1) #3 {428; CHECK-LABEL: define nofpclass(nan ninf nsub nnorm) float @ret_maximumnum_noneg_nan__any429; CHECK-SAME: (float nofpclass(nan ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {430; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan ninf nsub nnorm) float @llvm.maximumnum.f32(float nofpclass(nan ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]431; CHECK-NEXT:    ret float [[CALL]]432;433  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)434  ret float %call435}436 437define float @ret_maximumnum_any__noneg_nan(float %arg0, float nofpclass(ninf nsub nnorm nan) %arg1) #3 {438; CHECK-LABEL: define nofpclass(nan ninf nsub nnorm) float @ret_maximumnum_any__noneg_nan439; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {440; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan ninf nsub nnorm) float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(nan ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]441; CHECK-NEXT:    ret float [[CALL]]442;443  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)444  ret float %call445}446 447define float @ret_maximumnum_nopos_nan__any(float nofpclass(pinf psub pnorm nan) %arg0, float %arg1) #3 {448; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nopos_nan__any449; CHECK-SAME: (float nofpclass(nan pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {450; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]451; CHECK-NEXT:    ret float [[CALL]]452;453  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)454  ret float %call455}456 457define float @ret_maximumnum_any__nopos_nan(float %arg0, float nofpclass(pinf psub pnorm nan) %arg1) #3 {458; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_any__nopos_nan459; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {460; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(nan pinf psub pnorm) [[ARG1]]) #[[ATTR9]]461; CHECK-NEXT:    ret float [[CALL]]462;463  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)464  ret float %call465}466 467define float @ret_maximumnum_noneg__any(float nofpclass(ninf nsub nnorm) %arg0, float %arg1) #3 {468; CHECK-LABEL: define float @ret_maximumnum_noneg__any469; CHECK-SAME: (float nofpclass(ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {470; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float nofpclass(ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]471; CHECK-NEXT:    ret float [[CALL]]472;473  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)474  ret float %call475}476 477define float @ret_maximumnum_any__noneg(float %arg0, float nofpclass(ninf nsub nnorm) %arg1) #3 {478; CHECK-LABEL: define float @ret_maximumnum_any__noneg479; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {480; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]481; CHECK-NEXT:    ret float [[CALL]]482;483  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)484  ret float %call485}486 487define float @ret_maximumnum_nopos__any(float nofpclass(pinf psub pnorm) %arg0, float %arg1) #3 {488; CHECK-LABEL: define float @ret_maximumnum_nopos__any489; CHECK-SAME: (float nofpclass(pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {490; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float nofpclass(pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]491; CHECK-NEXT:    ret float [[CALL]]492;493  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)494  ret float %call495}496 497define float @ret_maximumnum_any__nopos(float %arg0, float nofpclass(pinf psub pnorm) %arg1) #3 {498; CHECK-LABEL: define float @ret_maximumnum_any__nopos499; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {500; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(pinf psub pnorm) [[ARG1]]) #[[ATTR9]]501; CHECK-NEXT:    ret float [[CALL]]502;503  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)504  ret float %call505}506 507define float @ret_minimumnum_nopos__nonan(float nofpclass(pinf pnorm psub pzero) %arg0, float nofpclass(nan) %arg1) #0 {508; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_nopos__nonan509; CHECK-SAME: (float nofpclass(pinf pzero psub pnorm) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {510; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(pinf pzero psub pnorm) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]511; CHECK-NEXT:    ret float [[CALL]]512;513  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)514  ret float %call515}516 517define float @ret_minimumnum_nonan__nopos(float nofpclass(nan) %arg0, float nofpclass(pinf pnorm psub pzero) %arg1) #0 {518; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_nonan__nopos519; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(pinf pzero psub pnorm) [[ARG1:%.*]]) #[[ATTR1]] {520; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(pinf pzero psub pnorm) [[ARG1]]) #[[ATTR9]]521; CHECK-NEXT:    ret float [[CALL]]522;523  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)524  ret float %call525}526 527define float @ret_minimumnum_nopos_nonan__any(float nofpclass(nan pinf pnorm psub pzero) %arg0, float %arg1) #0 {528; CHECK-LABEL: define nofpclass(nan pinf pzero psub pnorm) float @ret_minimumnum_nopos_nonan__any529; CHECK-SAME: (float nofpclass(nan pinf pzero psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {530; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan pinf pzero psub pnorm) float @llvm.minimumnum.f32(float nofpclass(nan pinf pzero psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]531; CHECK-NEXT:    ret float [[CALL]]532;533  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)534  ret float %call535}536 537define float @ret_minimumnum_any__nopos_nonan(float %arg0, float nofpclass(nan pinf pnorm psub pzero) %arg1) #0 {538; CHECK-LABEL: define nofpclass(nan pinf pzero psub pnorm) float @ret_minimumnum_any__nopos_nonan539; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan pinf pzero psub pnorm) [[ARG1:%.*]]) #[[ATTR1]] {540; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan pinf pzero psub pnorm) float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(nan pinf pzero psub pnorm) [[ARG1]]) #[[ATTR9]]541; CHECK-NEXT:    ret float [[CALL]]542;543  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)544  ret float %call545}546 547define float @ret_minimumnum_noneg__nonan(float nofpclass(ninf nnorm nsub nzero) %arg0, float nofpclass(nan) %arg1) #0 {548; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_noneg__nonan549; CHECK-SAME: (float nofpclass(ninf nzero nsub nnorm) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {550; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(ninf nzero nsub nnorm) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]551; CHECK-NEXT:    ret float [[CALL]]552;553  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)554  ret float %call555}556 557define float @ret_minimumnum_nonan__noneg(float nofpclass(nan) %arg0, float nofpclass(ninf nnorm nsub nzero) %arg1) #0 {558; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_nonan__noneg559; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(ninf nzero nsub nnorm) [[ARG1:%.*]]) #[[ATTR1]] {560; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(ninf nzero nsub nnorm) [[ARG1]]) #[[ATTR9]]561; CHECK-NEXT:    ret float [[CALL]]562;563  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)564  ret float %call565}566 567define float @ret_minimumnum_noneg_nonan__any(float nofpclass(nan ninf nnorm nsub nzero) %arg0, float %arg1) #0 {568; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_noneg_nonan__any569; CHECK-SAME: (float nofpclass(nan ninf nzero nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {570; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float nofpclass(nan ninf nzero nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]571; CHECK-NEXT:    ret float [[CALL]]572;573  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)574  ret float %call575}576 577define float @ret_minimumnum_any__noneg_nonan(float %arg0, float nofpclass(nan ninf nnorm nsub nzero) %arg1) #0 {578; CHECK-LABEL: define nofpclass(nan) float @ret_minimumnum_any__noneg_nonan579; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan ninf nzero nsub nnorm) [[ARG1:%.*]]) #[[ATTR1]] {580; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(nan ninf nzero nsub nnorm) [[ARG1]]) #[[ATTR9]]581; CHECK-NEXT:    ret float [[CALL]]582;583  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)584  ret float %call585}586 587define float @ret_maximumnum_nopos__nonan(float nofpclass(pinf pnorm psub pzero) %arg0, float nofpclass(nan) %arg1) #0 {588; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nopos__nonan589; CHECK-SAME: (float nofpclass(pinf pzero psub pnorm) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {590; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(pinf pzero psub pnorm) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]591; CHECK-NEXT:    ret float [[CALL]]592;593  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)594  ret float %call595}596 597define float @ret_maximumnum_nonan__nopos(float nofpclass(nan) %arg0, float nofpclass(pinf pnorm psub pzero) %arg1) #0 {598; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nonan__nopos599; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(pinf pzero psub pnorm) [[ARG1:%.*]]) #[[ATTR1]] {600; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(pinf pzero psub pnorm) [[ARG1]]) #[[ATTR9]]601; CHECK-NEXT:    ret float [[CALL]]602;603  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)604  ret float %call605}606 607define float @ret_maximumnum_nopos_nonan__any(float nofpclass(nan pinf pnorm psub pzero) %arg0, float %arg1) #0 {608; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nopos_nonan__any609; CHECK-SAME: (float nofpclass(nan pinf pzero psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {610; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan pinf pzero psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]611; CHECK-NEXT:    ret float [[CALL]]612;613  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)614  ret float %call615}616 617define float @ret_maximumnum_any__nopos_nonan(float %arg0, float nofpclass(nan pinf pnorm psub pzero) %arg1) #0 {618; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_any__nopos_nonan619; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan pinf pzero psub pnorm) [[ARG1:%.*]]) #[[ATTR1]] {620; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(nan pinf pzero psub pnorm) [[ARG1]]) #[[ATTR9]]621; CHECK-NEXT:    ret float [[CALL]]622;623  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)624  ret float %call625}626 627define float @ret_maximumnum_noneg__nonan(float nofpclass(ninf nnorm nsub nzero) %arg0, float nofpclass(nan) %arg1) #0 {628; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_noneg__nonan629; CHECK-SAME: (float nofpclass(ninf nzero nsub nnorm) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {630; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(ninf nzero nsub nnorm) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]631; CHECK-NEXT:    ret float [[CALL]]632;633  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)634  ret float %call635}636 637define float @ret_maximumnum_nonan__noneg(float nofpclass(nan) %arg0, float nofpclass(ninf nnorm nsub nzero) %arg1) #0 {638; CHECK-LABEL: define nofpclass(nan) float @ret_maximumnum_nonan__noneg639; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(ninf nzero nsub nnorm) [[ARG1:%.*]]) #[[ATTR1]] {640; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximumnum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(ninf nzero nsub nnorm) [[ARG1]]) #[[ATTR9]]641; CHECK-NEXT:    ret float [[CALL]]642;643  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)644  ret float %call645}646 647define float @ret_maximumnum_noneg_nonan__any(float nofpclass(ninf nnorm nsub nzero) %arg0, float %arg1) #0 {648; CHECK-LABEL: define float @ret_maximumnum_noneg_nonan__any649; CHECK-SAME: (float nofpclass(ninf nzero nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {650; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float nofpclass(ninf nzero nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]651; CHECK-NEXT:    ret float [[CALL]]652;653  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)654  ret float %call655}656 657define float @ret_maximumnum_any__noneg_nonan(float %arg0, float nofpclass(ninf nnorm nsub nzero) %arg1) #0 {658; CHECK-LABEL: define float @ret_maximumnum_any__noneg_nonan659; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(ninf nzero nsub nnorm) [[ARG1:%.*]]) #[[ATTR1]] {660; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(ninf nzero nsub nnorm) [[ARG1]]) #[[ATTR9]]661; CHECK-NEXT:    ret float [[CALL]]662;663  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)664  ret float %call665}666 667define float @ret_minimumnum_nosnan__any(float nofpclass(snan) %arg0, float %arg1) #0 {668; CHECK-LABEL: define float @ret_minimumnum_nosnan__any669; CHECK-SAME: (float nofpclass(snan) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {670; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(snan) [[ARG0]], float [[ARG1]]) #[[ATTR9]]671; CHECK-NEXT:    ret float [[CALL]]672;673  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)674  ret float %call675}676 677define float @ret_minimumnum_any__nosnan(float %arg0, float nofpclass(snan) %arg1) #0 {678; CHECK-LABEL: define float @ret_minimumnum_any__nosnan679; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(snan) [[ARG1:%.*]]) #[[ATTR1]] {680; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(snan) [[ARG1]]) #[[ATTR9]]681; CHECK-NEXT:    ret float [[CALL]]682;683  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)684  ret float %call685}686 687define float @ret_maximumnum_nosnan__any(float nofpclass(snan) %arg0, float %arg1) #0 {688; CHECK-LABEL: define float @ret_maximumnum_nosnan__any689; CHECK-SAME: (float nofpclass(snan) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {690; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float nofpclass(snan) [[ARG0]], float [[ARG1]]) #[[ATTR9]]691; CHECK-NEXT:    ret float [[CALL]]692;693  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)694  ret float %call695}696 697define float @ret_maximumnum_any__nosnan(float %arg0, float nofpclass(snan) %arg1) #0 {698; CHECK-LABEL: define float @ret_maximumnum_any__nosnan699; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(snan) [[ARG1:%.*]]) #[[ATTR1]] {700; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(snan) [[ARG1]]) #[[ATTR9]]701; CHECK-NEXT:    ret float [[CALL]]702;703  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)704  ret float %call705}706 707define float @ret_minimumnum_noqnan__any(float nofpclass(qnan) %arg0, float %arg1) #0 {708; CHECK-LABEL: define float @ret_minimumnum_noqnan__any709; CHECK-SAME: (float nofpclass(qnan) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {710; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(qnan) [[ARG0]], float [[ARG1]]) #[[ATTR9]]711; CHECK-NEXT:    ret float [[CALL]]712;713  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)714  ret float %call715}716 717define float @ret_minimumnum_any__noqnan(float %arg0, float nofpclass(qnan) %arg1) #0 {718; CHECK-LABEL: define float @ret_minimumnum_any__noqnan719; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(qnan) [[ARG1:%.*]]) #[[ATTR1]] {720; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float [[ARG0]], float nofpclass(qnan) [[ARG1]]) #[[ATTR9]]721; CHECK-NEXT:    ret float [[CALL]]722;723  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)724  ret float %call725}726 727define float @ret_maximumnum_noqnan__any(float nofpclass(qnan) %arg0, float %arg1) #0 {728; CHECK-LABEL: define float @ret_maximumnum_noqnan__any729; CHECK-SAME: (float nofpclass(qnan) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {730; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float nofpclass(qnan) [[ARG0]], float [[ARG1]]) #[[ATTR9]]731; CHECK-NEXT:    ret float [[CALL]]732;733  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)734  ret float %call735}736 737define float @ret_maximumnum_any__noqnan(float %arg0, float nofpclass(qnan) %arg1) #0 {738; CHECK-LABEL: define float @ret_maximumnum_any__noqnan739; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(qnan) [[ARG1:%.*]]) #[[ATTR1]] {740; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximumnum.f32(float [[ARG0]], float nofpclass(qnan) [[ARG1]]) #[[ATTR9]]741; CHECK-NEXT:    ret float [[CALL]]742;743  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)744  ret float %call745}746 747define float @ret_minimumnum_nosnan__nosnan(float nofpclass(snan) %arg0, float nofpclass(snan) %arg1) #0 {748; CHECK-LABEL: define nofpclass(snan) float @ret_minimumnum_nosnan__nosnan749; CHECK-SAME: (float nofpclass(snan) [[ARG0:%.*]], float nofpclass(snan) [[ARG1:%.*]]) #[[ATTR1]] {750; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(snan) float @llvm.minimumnum.f32(float nofpclass(snan) [[ARG0]], float nofpclass(snan) [[ARG1]]) #[[ATTR9]]751; CHECK-NEXT:    ret float [[CALL]]752;753  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)754  ret float %call755}756 757define float @ret_maximumnum_nosnan__nosnan(float nofpclass(snan) %arg0, float nofpclass(snan) %arg1) #0 {758; CHECK-LABEL: define nofpclass(snan) float @ret_maximumnum_nosnan__nosnan759; CHECK-SAME: (float nofpclass(snan) [[ARG0:%.*]], float nofpclass(snan) [[ARG1:%.*]]) #[[ATTR1]] {760; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(snan) float @llvm.maximumnum.f32(float nofpclass(snan) [[ARG0]], float nofpclass(snan) [[ARG1]]) #[[ATTR9]]761; CHECK-NEXT:    ret float [[CALL]]762;763  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)764  ret float %call765}766 767define float @ret_minimumnum_nosnan__noqnan(float nofpclass(snan) %arg0, float nofpclass(qnan) %arg1) #0 {768; CHECK-LABEL: define float @ret_minimumnum_nosnan__noqnan769; CHECK-SAME: (float nofpclass(snan) [[ARG0:%.*]], float nofpclass(qnan) [[ARG1:%.*]]) #[[ATTR1]] {770; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimumnum.f32(float nofpclass(snan) [[ARG0]], float nofpclass(qnan) [[ARG1]]) #[[ATTR9]]771; CHECK-NEXT:    ret float [[CALL]]772;773  %call = call float @llvm.minimumnum.f32(float %arg0, float %arg1)774  ret float %call775}776 777define float @ret_maximumnum_noqnan__nosnan(float nofpclass(qnan) %arg0, float nofpclass(qnan) %arg1) #0 {778; CHECK-LABEL: define nofpclass(qnan) float @ret_maximumnum_noqnan__nosnan779; CHECK-SAME: (float nofpclass(qnan) [[ARG0:%.*]], float nofpclass(qnan) [[ARG1:%.*]]) #[[ATTR1]] {780; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(qnan) float @llvm.maximumnum.f32(float nofpclass(qnan) [[ARG0]], float nofpclass(qnan) [[ARG1]]) #[[ATTR9]]781; CHECK-NEXT:    ret float [[CALL]]782;783  %call = call float @llvm.maximumnum.f32(float %arg0, float %arg1)784  ret float %call785}786 787attributes #0 = { "denormal-fp-math"="ieee,ieee" }788attributes #1 = { "denormal-fp-math"="preserve-sign,preserve-sign" }789attributes #2 = { "denormal-fp-math"="positive-zero,positive-zero" }790attributes #3 = { "denormal-fp-math"="dynamic,dynamic" }791attributes #4 = { "denormal-fp-math"="ieee,preserve-sign" }792attributes #5 = { "denormal-fp-math"="preserve-sign,ieee" }793attributes #6 = { "denormal-fp-math"="ieee,positive-zero" }794attributes #7 = { "denormal-fp-math"="positive-zero,ieee" }795;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:796; TUNIT: {{.*}}797