brintos

brintos / llvm-project-archived public Read only

0
0
Text · 22.9 KiB · e58f09e Raw
877 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes=inline < %s | FileCheck %s3; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes='cgscc(inline)' < %s | FileCheck %s4 5define i32 @func_default() {6; CHECK-LABEL: @func_default(7; CHECK-NEXT:    ret i32 08;9  ret i32 010}11 12define i32 @func_ieee_ieee() #0 {13; CHECK-LABEL: @func_ieee_ieee(14; CHECK-NEXT:    ret i32 115;16  ret i32 117}18 19define i32 @func_psz_psz() #1 {20; CHECK-LABEL: @func_psz_psz(21; CHECK-NEXT:    ret i32 222;23  ret i32 224}25 26define i32 @func_psz_ieee() #2 {27; CHECK-LABEL: @func_psz_ieee(28; CHECK-NEXT:    ret i32 329;30  ret i32 331}32 33define i32 @func_ieee_psz() #3 {34; CHECK-LABEL: @func_ieee_psz(35; CHECK-NEXT:    ret i32 436;37  ret i32 438}39 40define i32 @func_dynamic_dynamic() #4 {41; CHECK-LABEL: @func_dynamic_dynamic(42; CHECK-NEXT:    ret i32 543;44  ret i32 545}46 47define i32 @func_dynamic_ieee() #5 {48; CHECK-LABEL: @func_dynamic_ieee(49; CHECK-NEXT:    ret i32 650;51  ret i32 652}53 54define i32 @func_ieee_dynamic() #6 {55; CHECK-LABEL: @func_ieee_dynamic(56; CHECK-NEXT:    ret i32 757;58  ret i32 759}60 61define i32 @func_psz_dynamic() #7 {62; CHECK-LABEL: @func_psz_dynamic(63; CHECK-NEXT:    ret i32 864;65  ret i32 866}67 68define i32 @func_dynamic_psz() #8 {69; CHECK-LABEL: @func_dynamic_psz(70; CHECK-NEXT:    ret i32 971;72  ret i32 973}74 75define i32 @call_default_from_psz_psz() #1 {76; CHECK-LABEL: @call_default_from_psz_psz(77; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_default()78; CHECK-NEXT:    ret i32 [[CALL]]79;80  %call = call i32 @func_default()81  ret i32 %call82}83 84define i32 @call_ieee_ieee_from_ieee_ieee() #0 {85; CHECK-LABEL: @call_ieee_ieee_from_ieee_ieee(86; CHECK-NEXT:    ret i32 187;88  %call = call i32 @func_ieee_ieee()89  ret i32 %call90}91 92define i32 @call_ieee_ieee_from_psz_psz() #1 {93; CHECK-LABEL: @call_ieee_ieee_from_psz_psz(94; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()95; CHECK-NEXT:    ret i32 [[CALL]]96;97  %call = call i32 @func_ieee_ieee()98  ret i32 %call99}100 101define i32 @call_psz_psz_from_ieee_ieee() #0 {102; CHECK-LABEL: @call_psz_psz_from_ieee_ieee(103; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()104; CHECK-NEXT:    ret i32 [[CALL]]105;106  %call = call i32 @func_psz_psz()107  ret i32 %call108}109 110define i32 @call_psz_psz_from_psz_psz() #1 {111; CHECK-LABEL: @call_psz_psz_from_psz_psz(112; CHECK-NEXT:    ret i32 2113;114  %call = call i32 @func_psz_psz()115  ret i32 %call116}117 118define i32 @call_psz_ieee_from_psz_psz() #1 {119; CHECK-LABEL: @call_psz_ieee_from_psz_psz(120; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()121; CHECK-NEXT:    ret i32 [[CALL]]122;123  %call = call i32 @func_psz_ieee()124  ret i32 %call125}126 127define i32 @call_ieee_psz_from_psz_psz() #1 {128; CHECK-LABEL: @call_ieee_psz_from_psz_psz(129; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()130; CHECK-NEXT:    ret i32 [[CALL]]131;132  %call = call i32 @func_ieee_psz()133  ret i32 %call134}135 136define i32 @call_psz_ieee_from_ieee_ieee() #0 {137; CHECK-LABEL: @call_psz_ieee_from_ieee_ieee(138; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()139; CHECK-NEXT:    ret i32 [[CALL]]140;141  %call = call i32 @func_psz_ieee()142  ret i32 %call143}144 145define i32 @call_ieee_psz_from_ieee_ieee() #0 {146; CHECK-LABEL: @call_ieee_psz_from_ieee_ieee(147; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()148; CHECK-NEXT:    ret i32 [[CALL]]149;150  %call = call i32 @func_ieee_psz()151  ret i32 %call152}153 154define i32 @call_ieee_ieee_from_psz_ieee() #2 {155; CHECK-LABEL: @call_ieee_ieee_from_psz_ieee(156; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()157; CHECK-NEXT:    ret i32 [[CALL]]158;159  %call = call i32 @func_ieee_ieee()160  ret i32 %call161}162 163define i32 @call_psz_ieee_from_psz_ieee() #2 {164; CHECK-LABEL: @call_psz_ieee_from_psz_ieee(165; CHECK-NEXT:    ret i32 3166;167  %call = call i32 @func_psz_ieee()168  ret i32 %call169}170 171define i32 @call_ieee_psz_from_psz_ieee() #2 {172; CHECK-LABEL: @call_ieee_psz_from_psz_ieee(173; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()174; CHECK-NEXT:    ret i32 [[CALL]]175;176  %call = call i32 @func_ieee_psz()177  ret i32 %call178}179 180define i32 @call_psz_psz_from_psz_ieee() #2 {181; CHECK-LABEL: @call_psz_psz_from_psz_ieee(182; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()183; CHECK-NEXT:    ret i32 [[CALL]]184;185  %call = call i32 @func_psz_psz()186  ret i32 %call187}188 189define i32 @call_ieee_ieee_from_ieee_psz() #3 {190; CHECK-LABEL: @call_ieee_ieee_from_ieee_psz(191; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()192; CHECK-NEXT:    ret i32 [[CALL]]193;194  %call = call i32 @func_ieee_ieee()195  ret i32 %call196}197 198define i32 @call_psz_ieee_from_ieee_psz() #3 {199; CHECK-LABEL: @call_psz_ieee_from_ieee_psz(200; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()201; CHECK-NEXT:    ret i32 [[CALL]]202;203  %call = call i32 @func_psz_ieee()204  ret i32 %call205}206 207define i32 @call_ieee_psz_from_ieee_psz() #3 {208; CHECK-LABEL: @call_ieee_psz_from_ieee_psz(209; CHECK-NEXT:    ret i32 4210;211  %call = call i32 @func_ieee_psz()212  ret i32 %call213}214 215define i32 @call_psz_psz_from_ieee_psz() #3 {216; CHECK-LABEL: @call_psz_psz_from_ieee_psz(217; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()218; CHECK-NEXT:    ret i32 [[CALL]]219;220  %call = call i32 @func_psz_psz()221  ret i32 %call222}223 224define i32 @call_dynamic_dynamic_from_ieee_ieee() #0 {225; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_ieee(226; CHECK-NEXT:    ret i32 5227;228  %call = call i32 @func_dynamic_dynamic()229  ret i32 %call230}231 232define i32 @call_dynamic_ieee_from_ieee_ieee() #0 {233; CHECK-LABEL: @call_dynamic_ieee_from_ieee_ieee(234; CHECK-NEXT:    ret i32 6235;236  %call = call i32 @func_dynamic_ieee()237  ret i32 %call238}239 240define i32 @call_ieee_dynamic_from_ieee_ieee() #0 {241; CHECK-LABEL: @call_ieee_dynamic_from_ieee_ieee(242; CHECK-NEXT:    ret i32 7243;244  %call = call i32 @func_ieee_dynamic()245  ret i32 %call246}247 248define i32 @call_dynamic_psz_from_ieee_ieee() #0 {249; CHECK-LABEL: @call_dynamic_psz_from_ieee_ieee(250; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_psz()251; CHECK-NEXT:    ret i32 [[CALL]]252;253  %call = call i32 @func_dynamic_psz()254  ret i32 %call255}256 257define i32 @call_psz_dynamic_from_ieee_ieee() #0 {258; CHECK-LABEL: @call_psz_dynamic_from_ieee_ieee(259; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_dynamic()260; CHECK-NEXT:    ret i32 [[CALL]]261;262  %call = call i32 @func_psz_dynamic()263  ret i32 %call264}265 266define i32 @call_dynamic_dynamic_from_psz_psz() #1 {267; CHECK-LABEL: @call_dynamic_dynamic_from_psz_psz(268; CHECK-NEXT:    ret i32 5269;270  %call = call i32 @func_dynamic_dynamic()271  ret i32 %call272}273 274define i32 @call_ieee_dynamic_from_psz_psz() #1 {275; CHECK-LABEL: @call_ieee_dynamic_from_psz_psz(276; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_dynamic()277; CHECK-NEXT:    ret i32 [[CALL]]278;279  %call = call i32 @func_ieee_dynamic()280  ret i32 %call281}282 283define i32 @call_dynamic_ieee_from_psz_psz() #1 {284; CHECK-LABEL: @call_dynamic_ieee_from_psz_psz(285; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_ieee()286; CHECK-NEXT:    ret i32 [[CALL]]287;288  %call = call i32 @func_dynamic_ieee()289  ret i32 %call290}291 292define i32 @call_psz_dynamic_from_psz_psz() #1 {293; CHECK-LABEL: @call_psz_dynamic_from_psz_psz(294; CHECK-NEXT:    ret i32 8295;296  %call = call i32 @func_psz_dynamic()297  ret i32 %call298}299 300define i32 @call_dynamic_psz_from_psz_psz() #1 {301; CHECK-LABEL: @call_dynamic_psz_from_psz_psz(302; CHECK-NEXT:    ret i32 9303;304  %call = call i32 @func_dynamic_psz()305  ret i32 %call306}307 308define i32 @call_dynamic_dynamic_from_psz_ieee() #2 {309; CHECK-LABEL: @call_dynamic_dynamic_from_psz_ieee(310; CHECK-NEXT:    ret i32 5311;312  %call = call i32 @func_dynamic_dynamic()313  ret i32 %call314}315 316define i32 @call_dynamic_ieee_from_psz_ieee() #2 {317; CHECK-LABEL: @call_dynamic_ieee_from_psz_ieee(318; CHECK-NEXT:    ret i32 6319;320  %call = call i32 @func_dynamic_ieee()321  ret i32 %call322}323 324define i32 @call_ieee_dynamic_from_psz_ieee() #2 {325; CHECK-LABEL: @call_ieee_dynamic_from_psz_ieee(326; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_dynamic()327; CHECK-NEXT:    ret i32 [[CALL]]328;329  %call = call i32 @func_ieee_dynamic()330  ret i32 %call331}332 333define i32 @call_dynamic_psz_from_psz_ieee() #2 {334; CHECK-LABEL: @call_dynamic_psz_from_psz_ieee(335; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_psz()336; CHECK-NEXT:    ret i32 [[CALL]]337;338  %call = call i32 @func_dynamic_psz()339  ret i32 %call340}341 342define i32 @call_psz_dynamic_from_psz_ieee() #2 {343; CHECK-LABEL: @call_psz_dynamic_from_psz_ieee(344; CHECK-NEXT:    ret i32 8345;346  %call = call i32 @func_psz_dynamic()347  ret i32 %call348}349 350define i32 @call_dynamic_dynamic_from_ieee_psz() #3 {351; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_psz(352; CHECK-NEXT:    ret i32 5353;354  %call = call i32 @func_dynamic_dynamic()355  ret i32 %call356}357 358define i32 @call_ieee_dynamic_from_ieee_psz() #3 {359; CHECK-LABEL: @call_ieee_dynamic_from_ieee_psz(360; CHECK-NEXT:    ret i32 7361;362  %call = call i32 @func_ieee_dynamic()363  ret i32 %call364}365 366define i32 @call_dynamic_ieee_from_ieee_psz() #3 {367; CHECK-LABEL: @call_dynamic_ieee_from_ieee_psz(368; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_ieee()369; CHECK-NEXT:    ret i32 [[CALL]]370;371  %call = call i32 @func_dynamic_ieee()372  ret i32 %call373}374 375define i32 @call_dynamic_psz_from_ieee_psz() #3 {376; CHECK-LABEL: @call_dynamic_psz_from_ieee_psz(377; CHECK-NEXT:    ret i32 9378;379  %call = call i32 @func_dynamic_psz()380  ret i32 %call381}382 383define i32 @call_psz_dynamic_from_ieee_psz() #3 {384; CHECK-LABEL: @call_psz_dynamic_from_ieee_psz(385; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_dynamic()386; CHECK-NEXT:    ret i32 [[CALL]]387;388  %call = call i32 @func_psz_dynamic()389  ret i32 %call390}391 392define i32 @call_dynamic_dynamic_from_dynamic_dynamic() #4 {393; CHECK-LABEL: @call_dynamic_dynamic_from_dynamic_dynamic(394; CHECK-NEXT:    ret i32 5395;396  %call = call i32 @func_dynamic_dynamic()397  ret i32 %call398}399 400define i32 @call_ieee_ieee_from_dynamic_dynamic() #4 {401; CHECK-LABEL: @call_ieee_ieee_from_dynamic_dynamic(402; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()403; CHECK-NEXT:    ret i32 [[CALL]]404;405  %call = call i32 @func_ieee_ieee()406  ret i32 %call407}408 409define i32 @call_ieee_dynamic_from_dynamic_dynamic() #4 {410; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_dynamic(411; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_dynamic()412; CHECK-NEXT:    ret i32 [[CALL]]413;414  %call = call i32 @func_ieee_dynamic()415  ret i32 %call416}417 418define i32 @call_dynamic_ieee_from_dynamic_dynamic() #4 {419; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_dynamic(420; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_ieee()421; CHECK-NEXT:    ret i32 [[CALL]]422;423  %call = call i32 @func_dynamic_ieee()424  ret i32 %call425}426 427define i32 @call_psz_dynamic_from_dynamic_dynamic() #4 {428; CHECK-LABEL: @call_psz_dynamic_from_dynamic_dynamic(429; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_dynamic()430; CHECK-NEXT:    ret i32 [[CALL]]431;432  %call = call i32 @func_psz_dynamic()433  ret i32 %call434}435 436define i32 @call_dynamic_psz_from_dynamic_dynamic() #4 {437; CHECK-LABEL: @call_dynamic_psz_from_dynamic_dynamic(438; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_psz()439; CHECK-NEXT:    ret i32 [[CALL]]440;441  %call = call i32 @func_dynamic_psz()442  ret i32 %call443}444 445define i32 @call_psz_psz_from_dynamic_dynamic() #4 {446; CHECK-LABEL: @call_psz_psz_from_dynamic_dynamic(447; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()448; CHECK-NEXT:    ret i32 [[CALL]]449;450  %call = call i32 @func_psz_psz()451  ret i32 %call452}453 454define i32 @call_psz_ieee_from_dynamic_dynamic() #4 {455; CHECK-LABEL: @call_psz_ieee_from_dynamic_dynamic(456; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()457; CHECK-NEXT:    ret i32 [[CALL]]458;459  %call = call i32 @func_psz_ieee()460  ret i32 %call461}462 463define i32 @call_ieee_psz_from_dynamic_dynamic() #4 {464; CHECK-LABEL: @call_ieee_psz_from_dynamic_dynamic(465; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()466; CHECK-NEXT:    ret i32 [[CALL]]467;468  %call = call i32 @func_ieee_psz()469  ret i32 %call470}471 472define i32 @call_ieee_ieee_from_dynamic_ieee() #5 {473; CHECK-LABEL: @call_ieee_ieee_from_dynamic_ieee(474; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()475; CHECK-NEXT:    ret i32 [[CALL]]476;477  %call = call i32 @func_ieee_ieee()478  ret i32 %call479}480 481define i32 @call_ieee_dynamic_from_dynamic_ieee() #5 {482; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_ieee(483; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_dynamic()484; CHECK-NEXT:    ret i32 [[CALL]]485;486  %call = call i32 @func_ieee_dynamic()487  ret i32 %call488}489 490define i32 @call_dynamic_ieee_from_dynamic_ieee() #5 {491; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_ieee(492; CHECK-NEXT:    ret i32 6493;494  %call = call i32 @func_dynamic_ieee()495  ret i32 %call496}497 498define i32 @call_psz_dynamic_from_dynamic_ieee() #5 {499; CHECK-LABEL: @call_psz_dynamic_from_dynamic_ieee(500; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_dynamic()501; CHECK-NEXT:    ret i32 [[CALL]]502;503  %call = call i32 @func_psz_dynamic()504  ret i32 %call505}506 507define i32 @call_dynamic_psz_from_dynamic_ieee() #5 {508; CHECK-LABEL: @call_dynamic_psz_from_dynamic_ieee(509; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_psz()510; CHECK-NEXT:    ret i32 [[CALL]]511;512  %call = call i32 @func_dynamic_psz()513  ret i32 %call514}515 516define i32 @call_psz_psz_from_dynamic_ieee() #5 {517; CHECK-LABEL: @call_psz_psz_from_dynamic_ieee(518; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()519; CHECK-NEXT:    ret i32 [[CALL]]520;521  %call = call i32 @func_psz_psz()522  ret i32 %call523}524 525define i32 @call_psz_ieee_from_dynamic_ieee() #5 {526; CHECK-LABEL: @call_psz_ieee_from_dynamic_ieee(527; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()528; CHECK-NEXT:    ret i32 [[CALL]]529;530  %call = call i32 @func_psz_ieee()531  ret i32 %call532}533 534define i32 @call_ieee_psz_from_dynamic_ieee() #5 {535; CHECK-LABEL: @call_ieee_psz_from_dynamic_ieee(536; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()537; CHECK-NEXT:    ret i32 [[CALL]]538;539  %call = call i32 @func_ieee_psz()540  ret i32 %call541}542 543define i32 @call_ieee_ieee_from_ieee_dynamic() #6 {544; CHECK-LABEL: @call_ieee_ieee_from_ieee_dynamic(545; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()546; CHECK-NEXT:    ret i32 [[CALL]]547;548  %call = call i32 @func_ieee_ieee()549  ret i32 %call550}551 552define i32 @call_ieee_dynamic_from_ieee_dynamic() #6 {553; CHECK-LABEL: @call_ieee_dynamic_from_ieee_dynamic(554; CHECK-NEXT:    ret i32 7555;556  %call = call i32 @func_ieee_dynamic()557  ret i32 %call558}559 560define i32 @call_dynamic_ieee_from_ieee_dynamic() #6 {561; CHECK-LABEL: @call_dynamic_ieee_from_ieee_dynamic(562; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_ieee()563; CHECK-NEXT:    ret i32 [[CALL]]564;565  %call = call i32 @func_dynamic_ieee()566  ret i32 %call567}568 569define i32 @call_dynamic_dynamic_from_ieee_dynamic() #6 {570; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_dynamic(571; CHECK-NEXT:    ret i32 5572;573  %call = call i32 @func_dynamic_dynamic()574  ret i32 %call575}576 577define i32 @call_dynamic_psz_from_ieee_dynamic() #6 {578; CHECK-LABEL: @call_dynamic_psz_from_ieee_dynamic(579; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_psz()580; CHECK-NEXT:    ret i32 [[CALL]]581;582  %call = call i32 @func_dynamic_psz()583  ret i32 %call584}585 586define i32 @call_psz_dynamic_from_ieee_dynamic() #6 {587; CHECK-LABEL: @call_psz_dynamic_from_ieee_dynamic(588; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_dynamic()589; CHECK-NEXT:    ret i32 [[CALL]]590;591  %call = call i32 @func_psz_dynamic()592  ret i32 %call593}594 595define i32 @call_psz_psz_from_ieee_dynamic() #6 {596; CHECK-LABEL: @call_psz_psz_from_ieee_dynamic(597; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()598; CHECK-NEXT:    ret i32 [[CALL]]599;600  %call = call i32 @func_psz_psz()601  ret i32 %call602}603 604define i32 @call_psz_ieee_from_ieee_dynamic() #6 {605; CHECK-LABEL: @call_psz_ieee_from_ieee_dynamic(606; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()607; CHECK-NEXT:    ret i32 [[CALL]]608;609  %call = call i32 @func_psz_ieee()610  ret i32 %call611}612 613define i32 @call_ieee_psz_from_ieee_dynamic() #6 {614; CHECK-LABEL: @call_ieee_psz_from_ieee_dynamic(615; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()616; CHECK-NEXT:    ret i32 [[CALL]]617;618  %call = call i32 @func_ieee_psz()619  ret i32 %call620}621 622define i32 @call_ieee_ieee_from_psz_dynamic() #7 {623; CHECK-LABEL: @call_ieee_ieee_from_psz_dynamic(624; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()625; CHECK-NEXT:    ret i32 [[CALL]]626;627  %call = call i32 @func_ieee_ieee()628  ret i32 %call629}630 631define i32 @call_ieee_dynamic_from_psz_dynamic() #7 {632; CHECK-LABEL: @call_ieee_dynamic_from_psz_dynamic(633; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_dynamic()634; CHECK-NEXT:    ret i32 [[CALL]]635;636  %call = call i32 @func_ieee_dynamic()637  ret i32 %call638}639 640define i32 @call_dynamic_ieee_from_psz_dynamic() #7 {641; CHECK-LABEL: @call_dynamic_ieee_from_psz_dynamic(642; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_ieee()643; CHECK-NEXT:    ret i32 [[CALL]]644;645  %call = call i32 @func_dynamic_ieee()646  ret i32 %call647}648 649define i32 @call_dynamic_psz_from_psz_dynamic() #7 {650; CHECK-LABEL: @call_dynamic_psz_from_psz_dynamic(651; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_psz()652; CHECK-NEXT:    ret i32 [[CALL]]653;654  %call = call i32 @func_dynamic_psz()655  ret i32 %call656}657 658define i32 @call_psz_dynamic_from_psz_dynamic() #7 {659; CHECK-LABEL: @call_psz_dynamic_from_psz_dynamic(660; CHECK-NEXT:    ret i32 8661;662  %call = call i32 @func_psz_dynamic()663  ret i32 %call664}665 666define i32 @call_dynamic_dynamic_from_psz_dynamic() #7 {667; CHECK-LABEL: @call_dynamic_dynamic_from_psz_dynamic(668; CHECK-NEXT:    ret i32 5669;670  %call = call i32 @func_dynamic_dynamic()671  ret i32 %call672}673 674define i32 @call_psz_ieee_from_psz_dynamic() #7 {675; CHECK-LABEL: @call_psz_ieee_from_psz_dynamic(676; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()677; CHECK-NEXT:    ret i32 [[CALL]]678;679  %call = call i32 @func_psz_ieee()680  ret i32 %call681}682 683define i32 @call_ieee_psz_from_psz_dynamic() #7 {684; CHECK-LABEL: @call_ieee_psz_from_psz_dynamic(685; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()686; CHECK-NEXT:    ret i32 [[CALL]]687;688  %call = call i32 @func_ieee_psz()689  ret i32 %call690}691 692define i32 @call_psz_psz_from_psz_dynamic() #7 {693; CHECK-LABEL: @call_psz_psz_from_psz_dynamic(694; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()695; CHECK-NEXT:    ret i32 [[CALL]]696;697  %call = call i32 @func_psz_psz()698  ret i32 %call699}700 701define i32 @call_ieee_ieee_from_dynamic_psz() #8 {702; CHECK-LABEL: @call_ieee_ieee_from_dynamic_psz(703; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_ieee()704; CHECK-NEXT:    ret i32 [[CALL]]705;706  %call = call i32 @func_ieee_ieee()707  ret i32 %call708}709 710define i32 @call_ieee_psz_from_dynamic_psz() #8 {711; CHECK-LABEL: @call_ieee_psz_from_dynamic_psz(712; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_psz()713; CHECK-NEXT:    ret i32 [[CALL]]714;715  %call = call i32 @func_ieee_psz()716  ret i32 %call717}718 719define i32 @call_psz_ieee_from_dynamic_psz() #8 {720; CHECK-LABEL: @call_psz_ieee_from_dynamic_psz(721; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_ieee()722; CHECK-NEXT:    ret i32 [[CALL]]723;724  %call = call i32 @func_psz_ieee()725  ret i32 %call726}727 728define i32 @call_dynamic_dynamic_from_dynamic_psz() #8 {729; CHECK-LABEL: @call_dynamic_dynamic_from_dynamic_psz(730; CHECK-NEXT:    ret i32 5731;732  %call = call i32 @func_dynamic_dynamic()733  ret i32 %call734}735 736define i32 @call_dynamic_psz_from_dynamic_psz() #8 {737; CHECK-LABEL: @call_dynamic_psz_from_dynamic_psz(738; CHECK-NEXT:    ret i32 9739;740  %call = call i32 @func_dynamic_psz()741  ret i32 %call742}743 744define i32 @call_psz_dynamic_from_dynamic_psz() #8 {745; CHECK-LABEL: @call_psz_dynamic_from_dynamic_psz(746; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_dynamic()747; CHECK-NEXT:    ret i32 [[CALL]]748;749  %call = call i32 @func_psz_dynamic()750  ret i32 %call751}752 753define i32 @call_dynamic_ieee_from_dynamic_psz() #8 {754; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_psz(755; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_dynamic_ieee()756; CHECK-NEXT:    ret i32 [[CALL]]757;758  %call = call i32 @func_dynamic_ieee()759  ret i32 %call760}761 762define i32 @call_ieee_dynamic_from_dynamic_psz() #8 {763; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_psz(764; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_ieee_dynamic()765; CHECK-NEXT:    ret i32 [[CALL]]766;767  %call = call i32 @func_ieee_dynamic()768  ret i32 %call769}770 771define i32 @call_psz_psz_from_dynamic_psz() #8 {772; CHECK-LABEL: @call_psz_psz_from_dynamic_psz(773; CHECK-NEXT:    [[CALL:%.*]] = call i32 @func_psz_psz()774; CHECK-NEXT:    ret i32 [[CALL]]775;776  %call = call i32 @func_psz_psz()777  ret i32 %call778}779 780; --------------------------------------------------------------------781; denormal-fp-math-f32782; --------------------------------------------------------------------783 784define i32 @func_dynamic_dynamic_f32() #9 {785; CHECK-LABEL: @func_dynamic_dynamic_f32(786; CHECK-NEXT:    ret i32 10787;788  ret i32 10789}790 791define i32 @func_psz_psz_f32() #10 {792; CHECK-LABEL: @func_psz_psz_f32(793; CHECK-NEXT:    ret i32 11794;795  ret i32 11796}797 798define i32 @func_dynamic_dynamic_psz_psz_f32() #12 {799; CHECK-LABEL: @func_dynamic_dynamic_psz_psz_f32(800; CHECK-NEXT:    ret i32 12801;802  ret i32 12803}804 805define i32 @call_dynamic_dynamic_f32_from_psz_psz_f32() #10 {806; CHECK-LABEL: @call_dynamic_dynamic_f32_from_psz_psz_f32(807; CHECK-NEXT:    ret i32 10808;809  %result = call i32 @func_dynamic_dynamic_f32()810  ret i32 %result811}812 813define i32 @call_psz_psz_from_psz_psz_f32() #10 {814; CHECK-LABEL: @call_psz_psz_from_psz_psz_f32(815; CHECK-NEXT:    ret i32 10816;817  %result = call i32 @func_dynamic_dynamic_f32()818  ret i32 %result819}820 821define i32 @call_psz_psz_from_ieee_ieee_f32() #11 {822; CHECK-LABEL: @call_psz_psz_from_ieee_ieee_f32(823; CHECK-NEXT:    [[RESULT:%.*]] = call i32 @func_psz_psz_f32()824; CHECK-NEXT:    ret i32 [[RESULT]]825;826  %result = call i32 @func_psz_psz_f32()827  ret i32 %result828}829 830define i32 @call_dynamic_dynamic_from_psz_psz_f32() #10 {831; CHECK-LABEL: @call_dynamic_dynamic_from_psz_psz_f32(832; CHECK-NEXT:    ret i32 5833;834  %result = call i32 @func_dynamic_dynamic()835  ret i32 %result836}837 838define i32 @call_dynamic_dynamic_f32_from_psz_psz() #1 {839; CHECK-LABEL: @call_dynamic_dynamic_f32_from_psz_psz(840; CHECK-NEXT:    [[RESULT:%.*]] = call i32 @func_dynamic_dynamic_f32()841; CHECK-NEXT:    ret i32 [[RESULT]]842;843  %result = call i32 @func_dynamic_dynamic_f32()844  ret i32 %result845}846 847define i32 @call_psz_psz_f32_from_psz_psz() #1 {848; CHECK-LABEL: @call_psz_psz_f32_from_psz_psz(849; CHECK-NEXT:    [[RESULT:%.*]] = call i32 @func_psz_psz_f32()850; CHECK-NEXT:    ret i32 [[RESULT]]851;852  %result = call i32 @func_psz_psz_f32()853  ret i32 %result854}855 856define i32 @call_dynamic_dynamic_psz_psz_f32_from_psz_psz() #1 {857; CHECK-LABEL: @call_dynamic_dynamic_psz_psz_f32_from_psz_psz(858; CHECK-NEXT:    ret i32 12859;860  %result = call i32 @func_dynamic_dynamic_psz_psz_f32()861  ret i32 %result862}863 864attributes #0 = { "denormal-fp-math"="ieee,ieee" }865attributes #1 = { "denormal-fp-math"="preserve-sign,preserve-sign" }866attributes #2 = { "denormal-fp-math"="preserve-sign,ieee" }867attributes #3 = { "denormal-fp-math"="ieee,preserve-sign" }868attributes #4 = { "denormal-fp-math"="dynamic,dynamic" }869attributes #5 = { "denormal-fp-math"="dynamic,ieee" }870attributes #6 = { "denormal-fp-math"="ieee,dynamic" }871attributes #7 = { "denormal-fp-math"="preserve-sign,dynamic" }872attributes #8 = { "denormal-fp-math"="dynamic,preserve-sign" }873attributes #9 = { "denormal-fp-math-f32"="dynamic,dynamic" }874attributes #10 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" }875attributes #11 = { "denormal-fp-math-f32"="ieee,ieee" "denormal-fp-math"="preserve-sign,preserve-sign" }876attributes #12 = { "denormal-fp-math"="dynamic,dynamic" "denormal-fp-math-f32"="preserve-sign,preserve-sign" }877