brintos

brintos / llvm-project-archived public Read only

0
0
Text · 27.6 KiB · d9b1375 Raw
517 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.minimum.f32(float, float)5declare float @llvm.maximum.f32(float, float)6declare <2 x float> @llvm.minimum.v2f32(<2 x float>, <2 x float>)7 8define float @ret_minimum(float %arg0, float %arg1) #0 {9; CHECK-LABEL: define float @ret_minimum10; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1:[0-9]+]] {11; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9:[0-9]+]]12; CHECK-NEXT:    ret float [[CALL]]13;14  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)15  ret float %call16}17 18define float @ret_minimum_noinf__noinf(float nofpclass(inf) %arg0, float nofpclass(inf) %arg1) #0 {19; CHECK-LABEL: define nofpclass(inf) float @ret_minimum_noinf__noinf20; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {21; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(inf) float @llvm.minimum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]22; CHECK-NEXT:    ret float [[CALL]]23;24  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)25  ret float %call26}27 28define float @ret_minimum_noinf__nonan(float nofpclass(inf) %arg0, float nofpclass(nan) %arg1) #0 {29; CHECK-LABEL: define float @ret_minimum_noinf__nonan30; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {31; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]32; CHECK-NEXT:    ret float [[CALL]]33;34  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)35  ret float %call36}37 38define float @ret_minimum_nonan__noinf(float nofpclass(nan) %arg0, float nofpclass(inf) %arg1) #0 {39; CHECK-LABEL: define float @ret_minimum_nonan__noinf40; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {41; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]42; CHECK-NEXT:    ret float [[CALL]]43;44  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)45  ret float %call46}47 48define float @ret_minimum_noinf_nonan__nonan(float nofpclass(inf nan) %arg0, float nofpclass(nan) %arg1) #0 {49; CHECK-LABEL: define nofpclass(nan) float @ret_minimum_noinf_nonan__nonan50; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {51; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimum.f32(float nofpclass(nan inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]52; CHECK-NEXT:    ret float [[CALL]]53;54  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)55  ret float %call56}57 58define float @ret_minimum_nonan__noinf_nonan(float nofpclass(nan) %arg0, float nofpclass(inf nan) %arg1) #0 {59; CHECK-LABEL: define nofpclass(nan) float @ret_minimum_nonan__noinf_nonan60; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR1]] {61; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.minimum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(nan inf) [[ARG1]]) #[[ATTR9]]62; CHECK-NEXT:    ret float [[CALL]]63;64  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)65  ret float %call66}67 68define float @ret_minimum_norm_zero__norm_sub(float nofpclass(norm zero) %arg0, float nofpclass(norm sub) %arg1) #0 {69; CHECK-LABEL: define nofpclass(norm) float @ret_minimum_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.minimum.f32(float nofpclass(zero norm) [[ARG0]], float nofpclass(sub norm) [[ARG1]]) #[[ATTR9]]72; CHECK-NEXT:    ret float [[CALL]]73;74  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)75  ret float %call76}77 78define float @ret_maximum(float %arg0, float %arg1) #0 {79; CHECK-LABEL: define float @ret_maximum80; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR1]] {81; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]82; CHECK-NEXT:    ret float [[CALL]]83;84  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)85  ret float %call86}87 88define float @ret_maximum_noinf__noinf(float nofpclass(inf) %arg0, float nofpclass(inf) %arg1) #0 {89; CHECK-LABEL: define nofpclass(inf) float @ret_maximum_noinf__noinf90; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {91; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(inf) float @llvm.maximum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]92; CHECK-NEXT:    ret float [[CALL]]93;94  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)95  ret float %call96}97 98define float @ret_maximum_noinf__nonan(float nofpclass(inf) %arg0, float nofpclass(nan) %arg1) #0 {99; CHECK-LABEL: define float @ret_maximum_noinf__nonan100; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {101; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float nofpclass(inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]102; CHECK-NEXT:    ret float [[CALL]]103;104  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)105  ret float %call106}107 108define float @ret_maximum_nonan__noinf(float nofpclass(nan) %arg0, float nofpclass(inf) %arg1) #0 {109; CHECK-LABEL: define float @ret_maximum_nonan__noinf110; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR1]] {111; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(inf) [[ARG1]]) #[[ATTR9]]112; CHECK-NEXT:    ret float [[CALL]]113;114  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)115  ret float %call116}117 118define float @ret_maximum_noinf_nonan__nonan(float nofpclass(inf nan) %arg0, float nofpclass(nan) %arg1) #0 {119; CHECK-LABEL: define nofpclass(nan) float @ret_maximum_noinf_nonan__nonan120; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR1]] {121; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximum.f32(float nofpclass(nan inf) [[ARG0]], float nofpclass(nan) [[ARG1]]) #[[ATTR9]]122; CHECK-NEXT:    ret float [[CALL]]123;124  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)125  ret float %call126}127 128define float @ret_maximum_nonan__noinf_nonan(float nofpclass(nan) %arg0, float nofpclass(inf nan) %arg1) #0 {129; CHECK-LABEL: define nofpclass(nan) float @ret_maximum_nonan__noinf_nonan130; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR1]] {131; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(nan) float @llvm.maximum.f32(float nofpclass(nan) [[ARG0]], float nofpclass(nan inf) [[ARG1]]) #[[ATTR9]]132; CHECK-NEXT:    ret float [[CALL]]133;134  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)135  ret float %call136}137 138define float @ret_maximum_norm_zero__norm_sub(float nofpclass(norm zero) %arg0, float nofpclass(norm sub) %arg1) #0 {139; CHECK-LABEL: define nofpclass(norm) float @ret_maximum_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.maximum.f32(float nofpclass(zero norm) [[ARG0]], float nofpclass(sub norm) [[ARG1]]) #[[ATTR9]]142; CHECK-NEXT:    ret float [[CALL]]143;144  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)145  ret float %call146}147 148define float @ret_minimum_daz_daz(float %arg0, float %arg1) #1 {149; CHECK-LABEL: define float @ret_minimum_daz_daz150; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR2:[0-9]+]] {151; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]152; CHECK-NEXT:    ret float [[CALL]]153;154  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)155  ret float %call156}157 158define float @ret_minimum_dapz_dappz(float %arg0, float %arg1) #2 {159; CHECK-LABEL: define float @ret_minimum_dapz_dappz160; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR3:[0-9]+]] {161; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]162; CHECK-NEXT:    ret float [[CALL]]163;164  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)165  ret float %call166}167define float @ret_minimum_dynamic_dynamic(float %arg0, float %arg1) #3 {168; CHECK-LABEL: define float @ret_minimum_dynamic_dynamic169; CHECK-SAME: (float [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4:[0-9]+]] {170; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float [[ARG0]], float [[ARG1]]) #[[ATTR9]]171; CHECK-NEXT:    ret float [[CALL]]172;173  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)174  ret float %call175}176 177define float @ret_minimum_noinf_nozero__noinf_nozero(float nofpclass(inf zero) %arg0, float nofpclass(inf zero) %arg1) #1 {178; CHECK-LABEL: define nofpclass(inf zero) float @ret_minimum_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.minimum.f32(float nofpclass(inf zero) [[ARG0]], float nofpclass(inf zero) [[ARG1]]) #[[ATTR9]]181; CHECK-NEXT:    ret float [[CALL]]182;183  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)184  ret float %call185}186 187define <2 x float> @ret_minimum_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_minimum_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.minimum.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.minimum.v2f32(<2 x float> %arg0, <2 x float> %arg1)194  ret <2 x float> %call195}196 197define float @ret_minimum_daz_daz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #1 {198; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_daz_daz_nozero__nozero199; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR2]] {200; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]201; CHECK-NEXT:    ret float [[CALL]]202;203  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)204  ret float %call205}206 207define float @ret_minimum_dapz_dapz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #2 {208; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_dapz_dapz_nozero__nozero209; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR3]] {210; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]211; CHECK-NEXT:    ret float [[CALL]]212;213  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)214  ret float %call215}216 217define float @ret_minimum_dynamic_dynamic_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #3 {218; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_dynamic_dynamic_nozero__nozero219; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR4]] {220; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(zero) float @llvm.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]221; CHECK-NEXT:    ret float [[CALL]]222;223  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)224  ret float %call225}226 227define float @ret_minimum_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_minimum_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.minimum.f32(float nofpclass(zero sub) [[ARG0]], float nofpclass(zero sub) [[ARG1]]) #[[ATTR9]]231; CHECK-NEXT:    ret float [[CALL]]232;233  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)234  ret float %call235}236 237define float @ret_minimum_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_minimum_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.minimum.f32(float nofpclass(zero sub) [[ARG0]], float nofpclass(zero sub) [[ARG1]]) #[[ATTR9]]241; CHECK-NEXT:    ret float [[CALL]]242;243  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)244  ret float %call245}246 247define float @ret_minimum_daz_daz_nopzero__nopzero(float nofpclass(pzero) %arg0, float nofpclass(pzero) %arg1) #1 {248; CHECK-LABEL: define float @ret_minimum_daz_daz_nopzero__nopzero249; CHECK-SAME: (float nofpclass(pzero) [[ARG0:%.*]], float nofpclass(pzero) [[ARG1:%.*]]) #[[ATTR2]] {250; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(pzero) [[ARG0]], float nofpclass(pzero) [[ARG1]]) #[[ATTR9]]251; CHECK-NEXT:    ret float [[CALL]]252;253  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)254  ret float %call255}256 257define float @ret_minimum_daz_daz_nonzero__nonzero(float nofpclass(nzero) %arg0, float nofpclass(nzero) %arg1) #1 {258; CHECK-LABEL: define float @ret_minimum_daz_daz_nonzero__nonzero259; CHECK-SAME: (float nofpclass(nzero) [[ARG0:%.*]], float nofpclass(nzero) [[ARG1:%.*]]) #[[ATTR2]] {260; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(nzero) [[ARG0]], float nofpclass(nzero) [[ARG1]]) #[[ATTR9]]261; CHECK-NEXT:    ret float [[CALL]]262;263  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)264  ret float %call265}266 267define float @ret_minimum_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_minimum_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.minimum.f32(float nofpclass(nzero nsub) [[ARG0]], float nofpclass(nzero nsub) [[ARG1]]) #[[ATTR9]]271; CHECK-NEXT:    ret float [[CALL]]272;273  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)274  ret float %call275}276 277define float @ret_minimum_dapz_dapz_nopzero__nopzero(float nofpclass(pzero) %arg0, float nofpclass(pzero) %arg1) #2 {278; CHECK-LABEL: define float @ret_minimum_dapz_dapz_nopzero__nopzero279; CHECK-SAME: (float nofpclass(pzero) [[ARG0:%.*]], float nofpclass(pzero) [[ARG1:%.*]]) #[[ATTR3]] {280; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(pzero) [[ARG0]], float nofpclass(pzero) [[ARG1]]) #[[ATTR9]]281; CHECK-NEXT:    ret float [[CALL]]282;283  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)284  ret float %call285}286 287define float @ret_minimum_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_minimum_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.minimum.f32(float nofpclass(pzero psub) [[ARG0]], float nofpclass(pzero psub) [[ARG1]]) #[[ATTR9]]291; CHECK-NEXT:    ret float [[CALL]]292;293  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)294  ret float %call295}296 297define float @ret_minimum_dapz_dapz_nonzero__nonzero(float nofpclass(nzero) %arg0, float nofpclass(nzero) %arg1) #2 {298; CHECK-LABEL: define float @ret_minimum_dapz_dapz_nonzero__nonzero299; CHECK-SAME: (float nofpclass(nzero) [[ARG0:%.*]], float nofpclass(nzero) [[ARG1:%.*]]) #[[ATTR3]] {300; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(nzero) [[ARG0]], float nofpclass(nzero) [[ARG1]]) #[[ATTR9]]301; CHECK-NEXT:    ret float [[CALL]]302;303  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)304  ret float %call305}306 307define float @ret_minimum_ieee_daz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #4 {308; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_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.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]311; CHECK-NEXT:    ret float [[CALL]]312;313  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)314  ret float %call315}316 317define float @ret_minimum_daz_ieee_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #5 {318; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_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.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]321; CHECK-NEXT:    ret float [[CALL]]322;323  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)324  ret float %call325}326 327define float @ret_minimum_ieee_dapz_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #6 {328; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_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.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]331; CHECK-NEXT:    ret float [[CALL]]332;333  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)334  ret float %call335}336 337define float @ret_minimum_dapz_ieee_nozero__nozero(float nofpclass(zero) %arg0, float nofpclass(zero) %arg1) #7 {338; CHECK-LABEL: define nofpclass(zero) float @ret_minimum_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.minimum.f32(float nofpclass(zero) [[ARG0]], float nofpclass(zero) [[ARG1]]) #[[ATTR9]]341; CHECK-NEXT:    ret float [[CALL]]342;343  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)344  ret float %call345}346 347define float @ret_minimum_noneg_nan__any(float nofpclass(ninf nsub nnorm nan) %arg0, float %arg1) #3 {348; CHECK-LABEL: define float @ret_minimum_noneg_nan__any349; CHECK-SAME: (float nofpclass(nan ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {350; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(nan ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]351; CHECK-NEXT:    ret float [[CALL]]352;353  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)354  ret float %call355}356 357define float @ret_minimum_any__noneg_nan(float %arg0, float nofpclass(ninf nsub nnorm nan) %arg1) #3 {358; CHECK-LABEL: define float @ret_minimum_any__noneg_nan359; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {360; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float [[ARG0]], float nofpclass(nan ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]361; CHECK-NEXT:    ret float [[CALL]]362;363  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)364  ret float %call365}366 367define float @ret_minimum_nopos_nan__any(float nofpclass(pinf psub pnorm nan) %arg0, float %arg1) #3 {368; CHECK-LABEL: define nofpclass(pinf psub pnorm) float @ret_minimum_nopos_nan__any369; CHECK-SAME: (float nofpclass(nan pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {370; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(pinf psub pnorm) float @llvm.minimum.f32(float nofpclass(nan pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]371; CHECK-NEXT:    ret float [[CALL]]372;373  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)374  ret float %call375}376 377define float @ret_minimum_any__nopos_nan(float %arg0, float nofpclass(pinf psub pnorm nan) %arg1) #3 {378; CHECK-LABEL: define nofpclass(pinf psub pnorm) float @ret_minimum_any__nopos_nan379; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {380; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(pinf psub pnorm) float @llvm.minimum.f32(float [[ARG0]], float nofpclass(nan pinf psub pnorm) [[ARG1]]) #[[ATTR9]]381; CHECK-NEXT:    ret float [[CALL]]382;383  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)384  ret float %call385}386 387define float @ret_minimum_noneg__any(float nofpclass(ninf nsub nnorm) %arg0, float %arg1) #3 {388; CHECK-LABEL: define float @ret_minimum_noneg__any389; CHECK-SAME: (float nofpclass(ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {390; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float nofpclass(ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]391; CHECK-NEXT:    ret float [[CALL]]392;393  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)394  ret float %call395}396 397define float @ret_minimum_any__noneg(float %arg0, float nofpclass(ninf nsub nnorm) %arg1) #3 {398; CHECK-LABEL: define float @ret_minimum_any__noneg399; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {400; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.minimum.f32(float [[ARG0]], float nofpclass(ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]401; CHECK-NEXT:    ret float [[CALL]]402;403  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)404  ret float %call405}406 407define float @ret_minimum_nopos__any(float nofpclass(pinf psub pnorm) %arg0, float %arg1) #3 {408; CHECK-LABEL: define nofpclass(pinf psub pnorm) float @ret_minimum_nopos__any409; CHECK-SAME: (float nofpclass(pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {410; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(pinf psub pnorm) float @llvm.minimum.f32(float nofpclass(pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]411; CHECK-NEXT:    ret float [[CALL]]412;413  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)414  ret float %call415}416 417define float @ret_minimum_any__nopos(float %arg0, float nofpclass(pinf psub pnorm) %arg1) #3 {418; CHECK-LABEL: define nofpclass(pinf psub pnorm) float @ret_minimum_any__nopos419; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {420; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(pinf psub pnorm) float @llvm.minimum.f32(float [[ARG0]], float nofpclass(pinf psub pnorm) [[ARG1]]) #[[ATTR9]]421; CHECK-NEXT:    ret float [[CALL]]422;423  %call = call float @llvm.minimum.f32(float %arg0, float %arg1)424  ret float %call425}426 427define float @ret_maximum_noneg_nan__any(float nofpclass(ninf nsub nnorm nan) %arg0, float %arg1) #3 {428; CHECK-LABEL: define nofpclass(ninf nsub nnorm) float @ret_maximum_noneg_nan__any429; CHECK-SAME: (float nofpclass(nan ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {430; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(ninf nsub nnorm) float @llvm.maximum.f32(float nofpclass(nan ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]431; CHECK-NEXT:    ret float [[CALL]]432;433  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)434  ret float %call435}436 437define float @ret_maximum_any__noneg_nan(float %arg0, float nofpclass(ninf nsub nnorm nan) %arg1) #3 {438; CHECK-LABEL: define nofpclass(ninf nsub nnorm) float @ret_maximum_any__noneg_nan439; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {440; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(ninf nsub nnorm) float @llvm.maximum.f32(float [[ARG0]], float nofpclass(nan ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]441; CHECK-NEXT:    ret float [[CALL]]442;443  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)444  ret float %call445}446 447define float @ret_maximum_nopos_nan__any(float nofpclass(pinf psub pnorm nan) %arg0, float %arg1) #3 {448; CHECK-LABEL: define float @ret_maximum_nopos_nan__any449; CHECK-SAME: (float nofpclass(nan pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {450; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float nofpclass(nan pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]451; CHECK-NEXT:    ret float [[CALL]]452;453  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)454  ret float %call455}456 457define float @ret_maximum_any__nopos_nan(float %arg0, float nofpclass(pinf psub pnorm nan) %arg1) #3 {458; CHECK-LABEL: define float @ret_maximum_any__nopos_nan459; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {460; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float [[ARG0]], float nofpclass(nan pinf psub pnorm) [[ARG1]]) #[[ATTR9]]461; CHECK-NEXT:    ret float [[CALL]]462;463  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)464  ret float %call465}466 467define float @ret_maximum_noneg__any(float nofpclass(ninf nsub nnorm) %arg0, float %arg1) #3 {468; CHECK-LABEL: define nofpclass(ninf nsub nnorm) float @ret_maximum_noneg__any469; CHECK-SAME: (float nofpclass(ninf nsub nnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {470; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(ninf nsub nnorm) float @llvm.maximum.f32(float nofpclass(ninf nsub nnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]471; CHECK-NEXT:    ret float [[CALL]]472;473  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)474  ret float %call475}476 477define float @ret_maximum_any__noneg(float %arg0, float nofpclass(ninf nsub nnorm) %arg1) #3 {478; CHECK-LABEL: define nofpclass(ninf nsub nnorm) float @ret_maximum_any__noneg479; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(ninf nsub nnorm) [[ARG1:%.*]]) #[[ATTR4]] {480; CHECK-NEXT:    [[CALL:%.*]] = call nofpclass(ninf nsub nnorm) float @llvm.maximum.f32(float [[ARG0]], float nofpclass(ninf nsub nnorm) [[ARG1]]) #[[ATTR9]]481; CHECK-NEXT:    ret float [[CALL]]482;483  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)484  ret float %call485}486 487define float @ret_maximum_nopos__any(float nofpclass(pinf psub pnorm) %arg0, float %arg1) #3 {488; CHECK-LABEL: define float @ret_maximum_nopos__any489; CHECK-SAME: (float nofpclass(pinf psub pnorm) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {490; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float nofpclass(pinf psub pnorm) [[ARG0]], float [[ARG1]]) #[[ATTR9]]491; CHECK-NEXT:    ret float [[CALL]]492;493  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)494  ret float %call495}496 497define float @ret_maximum_any__nopos(float %arg0, float nofpclass(pinf psub pnorm) %arg1) #3 {498; CHECK-LABEL: define float @ret_maximum_any__nopos499; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(pinf psub pnorm) [[ARG1:%.*]]) #[[ATTR4]] {500; CHECK-NEXT:    [[CALL:%.*]] = call float @llvm.maximum.f32(float [[ARG0]], float nofpclass(pinf psub pnorm) [[ARG1]]) #[[ATTR9]]501; CHECK-NEXT:    ret float [[CALL]]502;503  %call = call float @llvm.maximum.f32(float %arg0, float %arg1)504  ret float %call505}506 507attributes #0 = { "denormal-fp-math"="ieee,ieee" }508attributes #1 = { "denormal-fp-math"="preserve-sign,preserve-sign" }509attributes #2 = { "denormal-fp-math"="positive-zero,positive-zero" }510attributes #3 = { "denormal-fp-math"="dynamic,dynamic" }511attributes #4 = { "denormal-fp-math"="ieee,preserve-sign" }512attributes #5 = { "denormal-fp-math"="preserve-sign,ieee" }513attributes #6 = { "denormal-fp-math"="ieee,positive-zero" }514attributes #7 = { "denormal-fp-math"="positive-zero,ieee" }515;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:516; TUNIT: {{.*}}517