brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.9 KiB · cb178ea Raw
485 lines · plain
1; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=zEC12 | FileCheck %s2;3; Check the cost values for older subtargets that use an IPM sequence for4; extension of a compare result.5 6define i8 @fun0(i8 %val1, i8 %val2) {7  %cmp = icmp eq i8 %val1, %val28  %v = sext i1 %cmp to i89  ret i8 %v10 11; CHECK: fun012; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val213; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i814}15 16define i16 @fun1(i8 %val1, i8 %val2) {17  %cmp = icmp eq i8 %val1, %val218  %v = sext i1 %cmp to i1619  ret i16 %v20 21; CHECK: fun122; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val223; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i1624}25 26define i32 @fun2(i8 %val1, i8 %val2) {27  %cmp = icmp eq i8 %val1, %val228  %v = sext i1 %cmp to i3229  ret i32 %v30 31; CHECK: fun232; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val233; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i3234}35 36define i64 @fun3(i8 %val1, i8 %val2) {37  %cmp = icmp eq i8 %val1, %val238  %v = sext i1 %cmp to i6439  ret i64 %v40 41; CHECK: fun342; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val243; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i6444}45 46define i8 @fun4(i16 %val1, i16 %val2) {47  %cmp = icmp eq i16 %val1, %val248  %v = sext i1 %cmp to i849  ret i8 %v50 51; CHECK: fun452; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val253; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i854}55 56define i16 @fun5(i16 %val1, i16 %val2) {57  %cmp = icmp eq i16 %val1, %val258  %v = sext i1 %cmp to i1659  ret i16 %v60 61; CHECK: fun562; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val263; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i1664}65 66define i32 @fun6(i16 %val1, i16 %val2) {67  %cmp = icmp eq i16 %val1, %val268  %v = sext i1 %cmp to i3269  ret i32 %v70 71; CHECK: fun672; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val273; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i3274}75 76define i64 @fun7(i16 %val1, i16 %val2) {77  %cmp = icmp eq i16 %val1, %val278  %v = sext i1 %cmp to i6479  ret i64 %v80 81; CHECK: fun782; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val283; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i6484}85 86define i8 @fun8(i32 %val1, i32 %val2) {87  %cmp = icmp eq i32 %val1, %val288  %v = sext i1 %cmp to i889  ret i8 %v90 91; CHECK: fun892; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val293; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i894}95 96define i16 @fun9(i32 %val1, i32 %val2) {97  %cmp = icmp eq i32 %val1, %val298  %v = sext i1 %cmp to i1699  ret i16 %v100 101; CHECK: fun9102; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2103; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i16104}105 106define i32 @fun10(i32 %val1, i32 %val2) {107  %cmp = icmp eq i32 %val1, %val2108  %v = sext i1 %cmp to i32109  ret i32 %v110 111; CHECK: fun10112; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2113; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i32114}115 116define i64 @fun11(i32 %val1, i32 %val2) {117  %cmp = icmp eq i32 %val1, %val2118  %v = sext i1 %cmp to i64119  ret i64 %v120 121; CHECK: fun11122; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2123; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i64124}125 126define i8 @fun12(i64 %val1, i64 %val2) {127  %cmp = icmp eq i64 %val1, %val2128  %v = sext i1 %cmp to i8129  ret i8 %v130 131; CHECK: fun12132; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2133; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i8134}135 136define i16 @fun13(i64 %val1, i64 %val2) {137  %cmp = icmp eq i64 %val1, %val2138  %v = sext i1 %cmp to i16139  ret i16 %v140 141; CHECK: fun13142; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2143; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i16144}145 146define i32 @fun14(i64 %val1, i64 %val2) {147  %cmp = icmp eq i64 %val1, %val2148  %v = sext i1 %cmp to i32149  ret i32 %v150 151; CHECK: fun14152; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2153; CHECK: cost of 3 for instruction:   %v = sext i1 %cmp to i32154}155 156define i64 @fun15(i64 %val1, i64 %val2) {157  %cmp = icmp eq i64 %val1, %val2158  %v = sext i1 %cmp to i64159  ret i64 %v160 161; CHECK: fun15162; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2163; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i64164}165 166define i8 @fun16(float %val1, float %val2) {167  %cmp = fcmp ogt float %val1, %val2168  %v = sext i1 %cmp to i8169  ret i8 %v170 171; CHECK: fun16172; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2173; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i8174}175 176define i16 @fun17(float %val1, float %val2) {177  %cmp = fcmp ogt float %val1, %val2178  %v = sext i1 %cmp to i16179  ret i16 %v180 181; CHECK: fun17182; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2183; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i16184}185 186define i32 @fun18(float %val1, float %val2) {187  %cmp = fcmp ogt float %val1, %val2188  %v = sext i1 %cmp to i32189  ret i32 %v190 191; CHECK: fun18192; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2193; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i32194}195 196define i64 @fun19(float %val1, float %val2) {197  %cmp = fcmp ogt float %val1, %val2198  %v = sext i1 %cmp to i64199  ret i64 %v200 201; CHECK: fun19202; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2203; CHECK: cost of 5 for instruction:   %v = sext i1 %cmp to i64204}205 206define i8 @fun20(double %val1, double %val2) {207  %cmp = fcmp ogt double %val1, %val2208  %v = sext i1 %cmp to i8209  ret i8 %v210 211; CHECK: fun20212; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2213; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i8214}215 216define i16 @fun21(double %val1, double %val2) {217  %cmp = fcmp ogt double %val1, %val2218  %v = sext i1 %cmp to i16219  ret i16 %v220 221; CHECK: fun21222; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2223; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i16224}225 226define i32 @fun22(double %val1, double %val2) {227  %cmp = fcmp ogt double %val1, %val2228  %v = sext i1 %cmp to i32229  ret i32 %v230 231; CHECK: fun22232; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2233; CHECK: cost of 4 for instruction:   %v = sext i1 %cmp to i32234}235 236define i64 @fun23(double %val1, double %val2) {237  %cmp = fcmp ogt double %val1, %val2238  %v = sext i1 %cmp to i64239  ret i64 %v240 241; CHECK: fun23242; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2243; CHECK: cost of 5 for instruction:   %v = sext i1 %cmp to i64244}245 246define i8 @fun120(i8 %val1, i8 %val2) {247  %cmp = icmp eq i8 %val1, %val2248  %v = zext i1 %cmp to i8249  ret i8 %v250 251; CHECK: fun120252; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2253; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i8254}255 256define i16 @fun121(i8 %val1, i8 %val2) {257  %cmp = icmp eq i8 %val1, %val2258  %v = zext i1 %cmp to i16259  ret i16 %v260 261; CHECK: fun121262; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2263; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i16264}265 266define i32 @fun122(i8 %val1, i8 %val2) {267  %cmp = icmp eq i8 %val1, %val2268  %v = zext i1 %cmp to i32269  ret i32 %v270 271; CHECK: fun122272; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2273; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i32274}275 276define i64 @fun123(i8 %val1, i8 %val2) {277  %cmp = icmp eq i8 %val1, %val2278  %v = zext i1 %cmp to i64279  ret i64 %v280 281; CHECK: fun123282; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2283; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i64284}285 286define i8 @fun124(i16 %val1, i16 %val2) {287  %cmp = icmp eq i16 %val1, %val2288  %v = zext i1 %cmp to i8289  ret i8 %v290 291; CHECK: fun124292; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2293; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i8294}295 296define i16 @fun125(i16 %val1, i16 %val2) {297  %cmp = icmp eq i16 %val1, %val2298  %v = zext i1 %cmp to i16299  ret i16 %v300 301; CHECK: fun125302; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2303; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i16304}305 306define i32 @fun126(i16 %val1, i16 %val2) {307  %cmp = icmp eq i16 %val1, %val2308  %v = zext i1 %cmp to i32309  ret i32 %v310 311; CHECK: fun126312; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2313; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i32314}315 316define i64 @fun127(i16 %val1, i16 %val2) {317  %cmp = icmp eq i16 %val1, %val2318  %v = zext i1 %cmp to i64319  ret i64 %v320 321; CHECK: fun127322; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2323; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i64324}325 326define i8 @fun128(i32 %val1, i32 %val2) {327  %cmp = icmp eq i32 %val1, %val2328  %v = zext i1 %cmp to i8329  ret i8 %v330 331; CHECK: fun128332; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2333; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i8334}335 336define i16 @fun129(i32 %val1, i32 %val2) {337  %cmp = icmp eq i32 %val1, %val2338  %v = zext i1 %cmp to i16339  ret i16 %v340 341; CHECK: fun129342; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2343; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i16344}345 346define i32 @fun130(i32 %val1, i32 %val2) {347  %cmp = icmp eq i32 %val1, %val2348  %v = zext i1 %cmp to i32349  ret i32 %v350 351; CHECK: fun130352; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2353; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i32354}355 356define i64 @fun131(i32 %val1, i32 %val2) {357  %cmp = icmp eq i32 %val1, %val2358  %v = zext i1 %cmp to i64359  ret i64 %v360 361; CHECK: fun131362; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2363; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i64364}365 366define i8 @fun132(i64 %val1, i64 %val2) {367  %cmp = icmp eq i64 %val1, %val2368  %v = zext i1 %cmp to i8369  ret i8 %v370 371; CHECK: fun132372; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2373; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i8374}375 376define i16 @fun133(i64 %val1, i64 %val2) {377  %cmp = icmp eq i64 %val1, %val2378  %v = zext i1 %cmp to i16379  ret i16 %v380 381; CHECK: fun133382; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2383; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i16384}385 386define i32 @fun134(i64 %val1, i64 %val2) {387  %cmp = icmp eq i64 %val1, %val2388  %v = zext i1 %cmp to i32389  ret i32 %v390 391; CHECK: fun134392; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2393; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i32394}395 396define i64 @fun135(i64 %val1, i64 %val2) {397  %cmp = icmp eq i64 %val1, %val2398  %v = zext i1 %cmp to i64399  ret i64 %v400 401; CHECK: fun135402; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2403; CHECK: cost of 3 for instruction:   %v = zext i1 %cmp to i64404}405 406define i8 @fun136(float %val1, float %val2) {407  %cmp = fcmp ogt float %val1, %val2408  %v = zext i1 %cmp to i8409  ret i8 %v410 411; CHECK: fun136412; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2413; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i8414}415 416define i16 @fun137(float %val1, float %val2) {417  %cmp = fcmp ogt float %val1, %val2418  %v = zext i1 %cmp to i16419  ret i16 %v420 421; CHECK: fun137422; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2423; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i16424}425 426define i32 @fun138(float %val1, float %val2) {427  %cmp = fcmp ogt float %val1, %val2428  %v = zext i1 %cmp to i32429  ret i32 %v430 431; CHECK: fun138432; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2433; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i32434}435 436define i64 @fun139(float %val1, float %val2) {437  %cmp = fcmp ogt float %val1, %val2438  %v = zext i1 %cmp to i64439  ret i64 %v440 441; CHECK: fun139442; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2443; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i64444}445 446define i8 @fun140(double %val1, double %val2) {447  %cmp = fcmp ogt double %val1, %val2448  %v = zext i1 %cmp to i8449  ret i8 %v450 451; CHECK: fun140452; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2453; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i8454}455 456define i16 @fun141(double %val1, double %val2) {457  %cmp = fcmp ogt double %val1, %val2458  %v = zext i1 %cmp to i16459  ret i16 %v460 461; CHECK: fun141462; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2463; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i16464}465 466define i32 @fun142(double %val1, double %val2) {467  %cmp = fcmp ogt double %val1, %val2468  %v = zext i1 %cmp to i32469  ret i32 %v470 471; CHECK: fun142472; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2473; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i32474}475 476define i64 @fun143(double %val1, double %val2) {477  %cmp = fcmp ogt double %val1, %val2478  %v = zext i1 %cmp to i64479  ret i64 %v480 481; CHECK: fun143482; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2483; CHECK: cost of 4 for instruction:   %v = zext i1 %cmp to i64484}485