373 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 4define float @ret_fmul_ieee_nonan__nonan(float nofpclass(nan) %arg0, float nofpclass(nan) %arg1) #0 {5; CHECK-LABEL: define float @ret_fmul_ieee_nonan__nonan6; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]8; CHECK-NEXT: ret float [[FMUL]]9;10 %fmul = fmul float %arg0, %arg111 ret float %fmul12}13 14define float @ret_fmul_ieee_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #0 {15; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan_nozero__nonan_nozero16; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR0]] {17; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]18; CHECK-NEXT: ret float [[FMUL]]19;20 %fmul = fmul float %arg0, %arg121 ret float %fmul22}23 24define float @ret_fmul_daz_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #1 {25; CHECK-LABEL: define float @ret_fmul_daz_nonan_nozero__nonan_nozero26; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR1:[0-9]+]] {27; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]28; CHECK-NEXT: ret float [[FMUL]]29;30 %fmul = fmul float %arg0, %arg131 ret float %fmul32}33 34define float @ret_fmul_dapz_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #2 {35; CHECK-LABEL: define float @ret_fmul_dapz_nonan_nozero__nonan_nozero36; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR2:[0-9]+]] {37; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]38; CHECK-NEXT: ret float [[FMUL]]39;40 %fmul = fmul float %arg0, %arg141 ret float %fmul42}43 44define float @ret_fmul_dynamic_nonan_nozero__nonan_nozero(float nofpclass(nan zero) %arg0, float nofpclass(nan zero) %arg1) #3 {45; CHECK-LABEL: define float @ret_fmul_dynamic_nonan_nozero__nonan_nozero46; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR3:[0-9]+]] {47; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]48; CHECK-NEXT: ret float [[FMUL]]49;50 %fmul = fmul float %arg0, %arg151 ret float %fmul52}53 54define float @ret_fmul_ieee_nonan_noinf__nonan_noinf(float nofpclass(nan inf) %arg0, float nofpclass(nan inf) %arg1) #0 {55; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan_noinf__nonan_noinf56; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR0]] {57; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]58; CHECK-NEXT: ret float [[FMUL]]59;60 %fmul = fmul float %arg0, %arg161 ret float %fmul62}63 64define float @ret_fmul_ieee_nonan_nozero__nonan_noinf(float nofpclass(nan zero) %arg0, float nofpclass(nan inf) %arg1) #0 {65; CHECK-LABEL: define float @ret_fmul_ieee_nonan_nozero__nonan_noinf66; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR0]] {67; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]68; CHECK-NEXT: ret float [[FMUL]]69;70 %fmul = fmul float %arg0, %arg171 ret float %fmul72}73 74define float @ret_fmul_ieee_nonan_noinf__nonan_nozero(float nofpclass(nan inf) %arg0, float nofpclass(nan zero) %arg1) #0 {75; CHECK-LABEL: define float @ret_fmul_ieee_nonan_noinf__nonan_nozero76; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR0]] {77; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]78; CHECK-NEXT: ret float [[FMUL]]79;80 %fmul = fmul float %arg0, %arg181 ret float %fmul82}83 84define float @ret_fmul_ieee_nonan_noinf__nonan_noposzero(float nofpclass(nan inf) %arg0, float nofpclass(nan pzero) %arg1) #0 {85; CHECK-LABEL: define float @ret_fmul_ieee_nonan_noinf__nonan_noposzero86; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan pzero) [[ARG1:%.*]]) #[[ATTR0]] {87; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]88; CHECK-NEXT: ret float [[FMUL]]89;90 %fmul = fmul float %arg0, %arg191 ret float %fmul92}93 94define float @ret_fmul_ieee_nonan_noposzero__nonan_noinf(float nofpclass(nan pzero) %arg0, float nofpclass(nan inf) %arg1) #0 {95; CHECK-LABEL: define float @ret_fmul_ieee_nonan_noposzero__nonan_noinf96; CHECK-SAME: (float nofpclass(nan pzero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR0]] {97; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]98; CHECK-NEXT: ret float [[FMUL]]99;100 %fmul = fmul float %arg0, %arg1101 ret float %fmul102}103 104define float @ret_fmul_ieee_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #0 {105; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan_nozero_nosub__nonan_nozero_nosub106; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR0]] {107; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]108; CHECK-NEXT: ret float [[FMUL]]109;110 %fmul = fmul float %arg0, %arg1111 ret float %fmul112}113 114; Denormal mode doesn't matter because sources are nofpclass(sub)115define float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #1 {116; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero_nosub117; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR1]] {118; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]119; CHECK-NEXT: ret float [[FMUL]]120;121 %fmul = fmul float %arg0, %arg1122 ret float %fmul123}124 125define float @ret_fmul_dapz_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #2 {126; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_dapz_nonan_nozero_nosub__nonan_nozero_nosub127; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR2]] {128; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]129; CHECK-NEXT: ret float [[FMUL]]130;131 %fmul = fmul float %arg0, %arg1132 ret float %fmul133}134 135define float @ret_fmul_dynamic_nonan_nozero_nosub__nonan_nozero_nosub(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero sub) %arg1) #3 {136; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_dynamic_nonan_nozero_nosub__nonan_nozero_nosub137; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR3]] {138; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]139; CHECK-NEXT: ret float [[FMUL]]140;141 %fmul = fmul float %arg0, %arg1142 ret float %fmul143}144 145; Missing no-subnormal on lhs146define float @ret_fmul_daz_nonan_nozero__nonan_nozero_nosub(float nofpclass(nan zero) %arg0, float nofpclass(nan zero sub) %arg1) #1 {147; CHECK-LABEL: define float @ret_fmul_daz_nonan_nozero__nonan_nozero_nosub148; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan zero sub) [[ARG1:%.*]]) #[[ATTR1]] {149; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]150; CHECK-NEXT: ret float [[FMUL]]151;152 %fmul = fmul float %arg0, %arg1153 ret float %fmul154}155 156; Missing no-subnormal on lhs157define float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero(float nofpclass(nan zero sub) %arg0, float nofpclass(nan zero) %arg1) #1 {158; CHECK-LABEL: define float @ret_fmul_daz_nonan_nozero_nosub__nonan_nozero159; CHECK-SAME: (float nofpclass(nan zero sub) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR1]] {160; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]161; CHECK-NEXT: ret float [[FMUL]]162;163 %fmul = fmul float %arg0, %arg1164 ret float %fmul165}166 167define float @ret_fmul_square(float %arg) #0 {168; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_fmul_square169; CHECK-SAME: (float [[ARG:%.*]]) #[[ATTR0]] {170; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], [[ARG]]171; CHECK-NEXT: ret float [[FMUL]]172;173 %fmul = fmul float %arg, %arg174 ret float %fmul175}176 177define float @ret_fmul_square_nnan(float nofpclass(nan) %arg) #0 {178; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_fmul_square_nnan179; CHECK-SAME: (float nofpclass(nan) [[ARG:%.*]]) #[[ATTR0]] {180; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], [[ARG]]181; CHECK-NEXT: ret float [[FMUL]]182;183 %fmul = fmul float %arg, %arg184 ret float %fmul185}186 187define float @ret_fmul_square_nnan_nzero(float nofpclass(nan zero) %arg) #0 {188; CHECK-LABEL: define nofpclass(nan ninf nzero nsub nnorm) float @ret_fmul_square_nnan_nzero189; CHECK-SAME: (float nofpclass(nan zero) [[ARG:%.*]]) #[[ATTR0]] {190; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], [[ARG]]191; CHECK-NEXT: ret float [[FMUL]]192;193 %fmul = fmul float %arg, %arg194 ret float %fmul195}196 197define float @ret_fmul_ieee_inf(float %arg) {198; CHECK-LABEL: define float @ret_fmul_ieee_inf199; CHECK-SAME: (float [[ARG:%.*]]) #[[ATTR4:[0-9]+]] {200; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG]], 0x7FF0000000000000201; CHECK-NEXT: ret float [[FMUL]]202;203 %fmul = fmul float %arg, 0x7FF0000000000000204 ret float %fmul205}206 207define float @ret_fmul_ieee_any__noinf(float %arg0, float nofpclass(inf) %arg1) {208; CHECK-LABEL: define float @ret_fmul_ieee_any__noinf209; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR4]] {210; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]211; CHECK-NEXT: ret float [[FMUL]]212;213 %fmul = fmul float %arg0, %arg1214 ret float %fmul215}216 217define float @ret_fmul_ieee_noinf__any(float nofpclass(inf) %arg0, float %arg1) {218; CHECK-LABEL: define float @ret_fmul_ieee_noinf__any219; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {220; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]221; CHECK-NEXT: ret float [[FMUL]]222;223 %fmul = fmul float %arg0, %arg1224 ret float %fmul225}226 227define float @ret_fmul_ieee_noinf__noinf(float nofpclass(inf) %arg0, float nofpclass(inf) %arg1) {228; CHECK-LABEL: define float @ret_fmul_ieee_noinf__noinf229; CHECK-SAME: (float nofpclass(inf) [[ARG0:%.*]], float nofpclass(inf) [[ARG1:%.*]]) #[[ATTR4]] {230; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]231; CHECK-NEXT: ret float [[FMUL]]232;233 %fmul = fmul float %arg0, %arg1234 ret float %fmul235}236 237define float @ret_fmul_ieee_any__noinf_nonan(float %arg0, float nofpclass(inf nan) %arg1) {238; CHECK-LABEL: define float @ret_fmul_ieee_any__noinf_nonan239; CHECK-SAME: (float [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {240; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]241; CHECK-NEXT: ret float [[FMUL]]242;243 %fmul = fmul float %arg0, %arg1244 ret float %fmul245}246 247define float @ret_fmul_ieee_noinf_nonan__any(float nofpclass(inf nan) %arg0, float %arg1) {248; CHECK-LABEL: define float @ret_fmul_ieee_noinf_nonan__any249; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float [[ARG1:%.*]]) #[[ATTR4]] {250; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]251; CHECK-NEXT: ret float [[FMUL]]252;253 %fmul = fmul float %arg0, %arg1254 ret float %fmul255}256 257define float @ret_fmul_ieee_noinf_nonan__noinf_noann(float nofpclass(inf nan) %arg0, float nofpclass(inf nan) %arg1) {258; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_noinf_nonan__noinf_noann259; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {260; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]261; CHECK-NEXT: ret float [[FMUL]]262;263 %fmul = fmul float %arg0, %arg1264 ret float %fmul265}266 267define float @ret_fmul_ieee_nozero__noinf_nonan(float nofpclass(zero) %arg0, float nofpclass(inf nan) %arg1) {268; CHECK-LABEL: define float @ret_fmul_ieee_nozero__noinf_nonan269; CHECK-SAME: (float nofpclass(zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {270; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]271; CHECK-NEXT: ret float [[FMUL]]272;273 %fmul = fmul float %arg0, %arg1274 ret float %fmul275}276 277define float @ret_fmul_ieee_noinf_nonan__nozero(float nofpclass(inf nan) %arg0, float nofpclass(zero) %arg1) {278; CHECK-LABEL: define float @ret_fmul_ieee_noinf_nonan__nozero279; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(zero) [[ARG1:%.*]]) #[[ATTR4]] {280; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]281; CHECK-NEXT: ret float [[FMUL]]282;283 %fmul = fmul float %arg0, %arg1284 ret float %fmul285}286 287define float @ret_fmul_ieee_nozero_nonan__noinf_nonan(float nofpclass(zero nan) %arg0, float nofpclass(inf nan) %arg1) {288; CHECK-LABEL: define float @ret_fmul_ieee_nozero_nonan__noinf_nonan289; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {290; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]291; CHECK-NEXT: ret float [[FMUL]]292;293 %fmul = fmul float %arg0, %arg1294 ret float %fmul295}296 297define float @ret_fmul_ieee_noinf_nonan__nozero_nonan(float nofpclass(inf nan) %arg0, float nofpclass(zero nan) %arg1) {298; CHECK-LABEL: define float @ret_fmul_ieee_noinf_nonan__nozero_nonan299; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR4]] {300; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]301; CHECK-NEXT: ret float [[FMUL]]302;303 %fmul = fmul float %arg0, %arg1304 ret float %fmul305}306 307define float @ret_fmul_ieee_nozero_nonan_noinf__noinf_nonan(float nofpclass(zero nan inf) %arg0, float nofpclass(inf nan) %arg1) {308; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan_noinf__noinf_nonan309; CHECK-SAME: (float nofpclass(nan inf zero) [[ARG0:%.*]], float nofpclass(nan inf) [[ARG1:%.*]]) #[[ATTR4]] {310; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]311; CHECK-NEXT: ret float [[FMUL]]312;313 %fmul = fmul float %arg0, %arg1314 ret float %fmul315}316 317define float @ret_fmul_ieee_noinf_nonan__nozero_nonan_noinf(float nofpclass(inf nan) %arg0, float nofpclass(zero nan inf) %arg1) {318; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_noinf_nonan__nozero_nonan_noinf319; CHECK-SAME: (float nofpclass(nan inf) [[ARG0:%.*]], float nofpclass(nan inf zero) [[ARG1:%.*]]) #[[ATTR4]] {320; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]321; CHECK-NEXT: ret float [[FMUL]]322;323 %fmul = fmul float %arg0, %arg1324 ret float %fmul325}326 327define float @ret_fmul_ieee_nozero_nonan_noinf__nozero_nonan(float nofpclass(zero nan inf) %arg0, float nofpclass(zero nan) %arg1) {328; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan_noinf__nozero_nonan329; CHECK-SAME: (float nofpclass(nan inf zero) [[ARG0:%.*]], float nofpclass(nan zero) [[ARG1:%.*]]) #[[ATTR4]] {330; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]331; CHECK-NEXT: ret float [[FMUL]]332;333 %fmul = fmul float %arg0, %arg1334 ret float %fmul335}336 337define float @ret_fmul_ieee_nozero_nonan__nozero_nonan_noinf(float nofpclass(zero nan) %arg0, float nofpclass(zero nan inf) %arg1) {338; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan__nozero_nonan_noinf339; CHECK-SAME: (float nofpclass(nan zero) [[ARG0:%.*]], float nofpclass(nan inf zero) [[ARG1:%.*]]) #[[ATTR4]] {340; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]341; CHECK-NEXT: ret float [[FMUL]]342;343 %fmul = fmul float %arg0, %arg1344 ret float %fmul345}346 347define float @ret_fmul_ieee_nozero_nonan_noinf__nonan(float nofpclass(zero nan inf) %arg0, float nofpclass(nan) %arg1) {348; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nozero_nonan_noinf__nonan349; CHECK-SAME: (float nofpclass(nan inf zero) [[ARG0:%.*]], float nofpclass(nan) [[ARG1:%.*]]) #[[ATTR4]] {350; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]351; CHECK-NEXT: ret float [[FMUL]]352;353 %fmul = fmul float %arg0, %arg1354 ret float %fmul355}356 357define float @ret_fmul_ieee_nonan__nozero_nonan_noinf(float nofpclass(nan) %arg0, float nofpclass(zero nan inf) %arg1) {358; CHECK-LABEL: define nofpclass(nan) float @ret_fmul_ieee_nonan__nozero_nonan_noinf359; CHECK-SAME: (float nofpclass(nan) [[ARG0:%.*]], float nofpclass(nan inf zero) [[ARG1:%.*]]) #[[ATTR4]] {360; CHECK-NEXT: [[FMUL:%.*]] = fmul float [[ARG0]], [[ARG1]]361; CHECK-NEXT: ret float [[FMUL]]362;363 %fmul = fmul float %arg0, %arg1364 ret float %fmul365}366 367attributes #0 = { "denormal-fp-math"="ieee,ieee" }368attributes #1 = { "denormal-fp-math"="ieee,preserve-sign" }369attributes #2 = { "denormal-fp-math"="ieee,positive-zero" }370attributes #3 = { "denormal-fp-math"="ieee,dynamic" }371;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:372; TUNIT: {{.*}}373