1663 lines · plain
1; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s2; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=zEC12 \3; RUN: | FileCheck %s --check-prefix=IPMSQ4;5; TODO: add more tests for differing operand types of the two compares.6 7define i8 @fun0(i8 %val1, i8 %val2, i8 %val3, i8 %val4,8 i8 %val5, i8 %val6) {9 %cmp0 = icmp eq i8 %val1, %val210 %cmp1 = icmp eq i8 %val3, %val411 %and = and i1 %cmp0, %cmp112 %sel = select i1 %and, i8 %val5, i8 %val613 ret i8 %sel14 15; CHECK: fun016; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val217; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val418; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp119; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val620}21 22define i16 @fun1(i8 %val1, i8 %val2, i8 %val3, i8 %val4,23 i16 %val5, i16 %val6) {24 %cmp0 = icmp eq i8 %val1, %val225 %cmp1 = icmp eq i8 %val3, %val426 %and = and i1 %cmp0, %cmp127 %sel = select i1 %and, i16 %val5, i16 %val628 ret i16 %sel29 30; CHECK: fun131; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val232; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val433; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp134; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val635}36 37define i32 @fun2(i8 %val1, i8 %val2, i8 %val3, i8 %val4,38 i32 %val5, i32 %val6) {39 %cmp0 = icmp eq i8 %val1, %val240 %cmp1 = icmp eq i8 %val3, %val441 %and = and i1 %cmp0, %cmp142 %sel = select i1 %and, i32 %val5, i32 %val643 ret i32 %sel44 45; CHECK: fun246; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val247; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val448; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp149; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val650}51 52define i64 @fun3(i8 %val1, i8 %val2, i8 %val3, i8 %val4,53 i64 %val5, i64 %val6) {54 %cmp0 = icmp eq i8 %val1, %val255 %cmp1 = icmp eq i8 %val3, %val456 %and = and i1 %cmp0, %cmp157 %sel = select i1 %and, i64 %val5, i64 %val658 ret i64 %sel59 60; CHECK: fun361; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val262; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val463; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp164; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val665}66 67define float @fun4(i8 %val1, i8 %val2, i8 %val3, i8 %val4,68 float %val5, float %val6) {69 %cmp0 = icmp eq i8 %val1, %val270 %cmp1 = icmp eq i8 %val3, %val471 %and = and i1 %cmp0, %cmp172 %sel = select i1 %and, float %val5, float %val673 ret float %sel74 75; CHECK: fun476; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val277; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val478; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp179; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val680}81 82define double @fun5(i8 %val1, i8 %val2, i8 %val3, i8 %val4,83 double %val5, double %val6) {84 %cmp0 = icmp eq i8 %val1, %val285 %cmp1 = icmp eq i8 %val3, %val486 %and = and i1 %cmp0, %cmp187 %sel = select i1 %and, double %val5, double %val688 ret double %sel89 90; CHECK: fun591; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val292; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val493; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp194; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val695}96 97define i8 @fun6(i16 %val1, i16 %val2, i16 %val3, i16 %val4,98 i8 %val5, i8 %val6) {99 %cmp0 = icmp eq i16 %val1, %val2100 %cmp1 = icmp eq i16 %val3, %val4101 %and = and i1 %cmp0, %cmp1102 %sel = select i1 %and, i8 %val5, i8 %val6103 ret i8 %sel104 105; CHECK: fun6106; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2107; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4108; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1109; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6110}111 112define i16 @fun7(i16 %val1, i16 %val2, i16 %val3, i16 %val4,113 i16 %val5, i16 %val6) {114 %cmp0 = icmp eq i16 %val1, %val2115 %cmp1 = icmp eq i16 %val3, %val4116 %and = and i1 %cmp0, %cmp1117 %sel = select i1 %and, i16 %val5, i16 %val6118 ret i16 %sel119 120; CHECK: fun7121; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2122; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4123; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1124; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6125}126 127define i32 @fun8(i16 %val1, i16 %val2, i16 %val3, i16 %val4,128 i32 %val5, i32 %val6) {129 %cmp0 = icmp eq i16 %val1, %val2130 %cmp1 = icmp eq i16 %val3, %val4131 %and = and i1 %cmp0, %cmp1132 %sel = select i1 %and, i32 %val5, i32 %val6133 ret i32 %sel134 135; CHECK: fun8136; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2137; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4138; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1139; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6140}141 142define i64 @fun9(i16 %val1, i16 %val2, i16 %val3, i16 %val4,143 i64 %val5, i64 %val6) {144 %cmp0 = icmp eq i16 %val1, %val2145 %cmp1 = icmp eq i16 %val3, %val4146 %and = and i1 %cmp0, %cmp1147 %sel = select i1 %and, i64 %val5, i64 %val6148 ret i64 %sel149 150; CHECK: fun9151; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2152; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4153; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1154; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6155}156 157define float @fun10(i16 %val1, i16 %val2, i16 %val3, i16 %val4,158 float %val5, float %val6) {159 %cmp0 = icmp eq i16 %val1, %val2160 %cmp1 = icmp eq i16 %val3, %val4161 %and = and i1 %cmp0, %cmp1162 %sel = select i1 %and, float %val5, float %val6163 ret float %sel164 165; CHECK: fun10166; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2167; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4168; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1169; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6170}171 172define double @fun11(i16 %val1, i16 %val2, i16 %val3, i16 %val4,173 double %val5, double %val6) {174 %cmp0 = icmp eq i16 %val1, %val2175 %cmp1 = icmp eq i16 %val3, %val4176 %and = and i1 %cmp0, %cmp1177 %sel = select i1 %and, double %val5, double %val6178 ret double %sel179 180; CHECK: fun11181; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2182; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4183; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1184; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6185}186 187define i8 @fun12(i32 %val1, i32 %val2, i32 %val3, i32 %val4,188 i8 %val5, i8 %val6) {189 %cmp0 = icmp eq i32 %val1, %val2190 %cmp1 = icmp eq i32 %val3, %val4191 %and = and i1 %cmp0, %cmp1192 %sel = select i1 %and, i8 %val5, i8 %val6193 ret i8 %sel194 195; CHECK: fun12196; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2197; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4198; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1199; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6200}201 202define i16 @fun13(i32 %val1, i32 %val2, i32 %val3, i32 %val4,203 i16 %val5, i16 %val6) {204 %cmp0 = icmp eq i32 %val1, %val2205 %cmp1 = icmp eq i32 %val3, %val4206 %and = and i1 %cmp0, %cmp1207 %sel = select i1 %and, i16 %val5, i16 %val6208 ret i16 %sel209 210; CHECK: fun13211; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2212; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4213; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1214; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6215}216 217define i32 @fun14(i32 %val1, i32 %val2, i32 %val3, i32 %val4,218 i32 %val5, i32 %val6) {219 %cmp0 = icmp eq i32 %val1, %val2220 %cmp1 = icmp eq i32 %val3, %val4221 %and = and i1 %cmp0, %cmp1222 %sel = select i1 %and, i32 %val5, i32 %val6223 ret i32 %sel224 225; CHECK: fun14226; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2227; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4228; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1229; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6230}231 232define i64 @fun15(i32 %val1, i32 %val2, i32 %val3, i32 %val4,233 i64 %val5, i64 %val6) {234 %cmp0 = icmp eq i32 %val1, %val2235 %cmp1 = icmp eq i32 %val3, %val4236 %and = and i1 %cmp0, %cmp1237 %sel = select i1 %and, i64 %val5, i64 %val6238 ret i64 %sel239 240; CHECK: fun15241; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2242; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4243; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1244; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6245}246 247define float @fun16(i32 %val1, i32 %val2, i32 %val3, i32 %val4,248 float %val5, float %val6) {249 %cmp0 = icmp eq i32 %val1, %val2250 %cmp1 = icmp eq i32 %val3, %val4251 %and = and i1 %cmp0, %cmp1252 %sel = select i1 %and, float %val5, float %val6253 ret float %sel254 255; CHECK: fun16256; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2257; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4258; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1259; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6260}261 262define double @fun17(i32 %val1, i32 %val2, i32 %val3, i32 %val4,263 double %val5, double %val6) {264 %cmp0 = icmp eq i32 %val1, %val2265 %cmp1 = icmp eq i32 %val3, %val4266 %and = and i1 %cmp0, %cmp1267 %sel = select i1 %and, double %val5, double %val6268 ret double %sel269 270; CHECK: fun17271; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2272; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4273; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1274; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6275}276 277define i8 @fun18(i64 %val1, i64 %val2, i64 %val3, i64 %val4,278 i8 %val5, i8 %val6) {279 %cmp0 = icmp eq i64 %val1, %val2280 %cmp1 = icmp eq i64 %val3, %val4281 %and = and i1 %cmp0, %cmp1282 %sel = select i1 %and, i8 %val5, i8 %val6283 ret i8 %sel284 285; CHECK: fun18286; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2287; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4288; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1289; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6290}291 292define i16 @fun19(i64 %val1, i64 %val2, i64 %val3, i64 %val4,293 i16 %val5, i16 %val6) {294 %cmp0 = icmp eq i64 %val1, %val2295 %cmp1 = icmp eq i64 %val3, %val4296 %and = and i1 %cmp0, %cmp1297 %sel = select i1 %and, i16 %val5, i16 %val6298 ret i16 %sel299 300; CHECK: fun19301; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2302; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4303; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1304; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6305}306 307define i32 @fun20(i64 %val1, i64 %val2, i64 %val3, i64 %val4,308 i32 %val5, i32 %val6) {309 %cmp0 = icmp eq i64 %val1, %val2310 %cmp1 = icmp eq i64 %val3, %val4311 %and = and i1 %cmp0, %cmp1312 %sel = select i1 %and, i32 %val5, i32 %val6313 ret i32 %sel314 315; CHECK: fun20316; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2317; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4318; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1319; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6320}321 322define i64 @fun21(i64 %val1, i64 %val2, i64 %val3, i64 %val4,323 i64 %val5, i64 %val6) {324 %cmp0 = icmp eq i64 %val1, %val2325 %cmp1 = icmp eq i64 %val3, %val4326 %and = and i1 %cmp0, %cmp1327 %sel = select i1 %and, i64 %val5, i64 %val6328 ret i64 %sel329 330; CHECK: fun21331; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2332; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4333; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1334; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6335}336 337define float @fun22(i64 %val1, i64 %val2, i64 %val3, i64 %val4,338 float %val5, float %val6) {339 %cmp0 = icmp eq i64 %val1, %val2340 %cmp1 = icmp eq i64 %val3, %val4341 %and = and i1 %cmp0, %cmp1342 %sel = select i1 %and, float %val5, float %val6343 ret float %sel344 345; CHECK: fun22346; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2347; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4348; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1349; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6350}351 352define double @fun23(i64 %val1, i64 %val2, i64 %val3, i64 %val4,353 double %val5, double %val6) {354 %cmp0 = icmp eq i64 %val1, %val2355 %cmp1 = icmp eq i64 %val3, %val4356 %and = and i1 %cmp0, %cmp1357 %sel = select i1 %and, double %val5, double %val6358 ret double %sel359 360; CHECK: fun23361; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2362; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4363; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1364; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6365}366 367define i8 @fun24(float %val1, float %val2, float %val3, float %val4,368 i8 %val5, i8 %val6) {369 %cmp0 = fcmp ogt float %val1, %val2370 %cmp1 = fcmp ogt float %val3, %val4371 %and = and i1 %cmp0, %cmp1372 %sel = select i1 %and, i8 %val5, i8 %val6373 ret i8 %sel374 375; CHECK: fun24376; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2377; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4378; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1379; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6380}381 382define i16 @fun25(float %val1, float %val2, float %val3, float %val4,383 i16 %val5, i16 %val6) {384 %cmp0 = fcmp ogt float %val1, %val2385 %cmp1 = fcmp ogt float %val3, %val4386 %and = and i1 %cmp0, %cmp1387 %sel = select i1 %and, i16 %val5, i16 %val6388 ret i16 %sel389 390; CHECK: fun25391; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2392; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4393; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1394; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6395}396 397define i32 @fun26(float %val1, float %val2, float %val3, float %val4,398 i32 %val5, i32 %val6) {399 %cmp0 = fcmp ogt float %val1, %val2400 %cmp1 = fcmp ogt float %val3, %val4401 %and = and i1 %cmp0, %cmp1402 %sel = select i1 %and, i32 %val5, i32 %val6403 ret i32 %sel404 405; CHECK: fun26406; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2407; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4408; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1409; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6410}411 412define i64 @fun27(float %val1, float %val2, float %val3, float %val4,413 i64 %val5, i64 %val6) {414 %cmp0 = fcmp ogt float %val1, %val2415 %cmp1 = fcmp ogt float %val3, %val4416 %and = and i1 %cmp0, %cmp1417 %sel = select i1 %and, i64 %val5, i64 %val6418 ret i64 %sel419 420; CHECK: fun27421; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2422; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4423; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1424; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6425}426 427define float @fun28(float %val1, float %val2, float %val3, float %val4,428 float %val5, float %val6) {429 %cmp0 = fcmp ogt float %val1, %val2430 %cmp1 = fcmp ogt float %val3, %val4431 %and = and i1 %cmp0, %cmp1432 %sel = select i1 %and, float %val5, float %val6433 ret float %sel434 435; CHECK: fun28436; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2437; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4438; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1439; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6440}441 442define double @fun29(float %val1, float %val2, float %val3, float %val4,443 double %val5, double %val6) {444 %cmp0 = fcmp ogt float %val1, %val2445 %cmp1 = fcmp ogt float %val3, %val4446 %and = and i1 %cmp0, %cmp1447 %sel = select i1 %and, double %val5, double %val6448 ret double %sel449 450; CHECK: fun29451; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2452; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4453; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1454; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6455}456 457define i8 @fun30(double %val1, double %val2, double %val3, double %val4,458 i8 %val5, i8 %val6) {459 %cmp0 = fcmp ogt double %val1, %val2460 %cmp1 = fcmp ogt double %val3, %val4461 %and = and i1 %cmp0, %cmp1462 %sel = select i1 %and, i8 %val5, i8 %val6463 ret i8 %sel464 465; CHECK: fun30466; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val2467; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val4468; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1469; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6470}471 472define i16 @fun31(double %val1, double %val2, double %val3, double %val4,473 i16 %val5, i16 %val6) {474 %cmp0 = fcmp ogt double %val1, %val2475 %cmp1 = fcmp ogt double %val3, %val4476 %and = and i1 %cmp0, %cmp1477 %sel = select i1 %and, i16 %val5, i16 %val6478 ret i16 %sel479 480; CHECK: fun31481; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val2482; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val4483; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1484; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6485}486 487define i32 @fun32(double %val1, double %val2, double %val3, double %val4,488 i32 %val5, i32 %val6) {489 %cmp0 = fcmp ogt double %val1, %val2490 %cmp1 = fcmp ogt double %val3, %val4491 %and = and i1 %cmp0, %cmp1492 %sel = select i1 %and, i32 %val5, i32 %val6493 ret i32 %sel494 495; CHECK: fun32496; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val2497; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val4498; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1499; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6500}501 502define i64 @fun33(double %val1, double %val2, double %val3, double %val4,503 i64 %val5, i64 %val6) {504 %cmp0 = fcmp ogt double %val1, %val2505 %cmp1 = fcmp ogt double %val3, %val4506 %and = and i1 %cmp0, %cmp1507 %sel = select i1 %and, i64 %val5, i64 %val6508 ret i64 %sel509 510; CHECK: fun33511; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val2512; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val4513; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1514; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6515}516 517define float @fun34(double %val1, double %val2, double %val3, double %val4,518 float %val5, float %val6) {519 %cmp0 = fcmp ogt double %val1, %val2520 %cmp1 = fcmp ogt double %val3, %val4521 %and = and i1 %cmp0, %cmp1522 %sel = select i1 %and, float %val5, float %val6523 ret float %sel524 525; CHECK: fun34526; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val2527; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val4528; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1529; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6530}531 532define double @fun35(double %val1, double %val2, double %val3, double %val4,533 double %val5, double %val6) {534 %cmp0 = fcmp ogt double %val1, %val2535 %cmp1 = fcmp ogt double %val3, %val4536 %and = and i1 %cmp0, %cmp1537 %sel = select i1 %and, double %val5, double %val6538 ret double %sel539 540; CHECK: fun35541; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val2542; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val4543; CHECK: cost of 1 for instruction: %and = and i1 %cmp0, %cmp1544; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6545}546 547define i8 @fun36(i8 %val1, i8 %val2, i8 %val3, i8 %val4,548 i8 %val5, i8 %val6) {549 %cmp0 = icmp eq i8 %val1, %val2550 %cmp1 = icmp eq i8 %val3, %val4551 %and = or i1 %cmp0, %cmp1552 %sel = select i1 %and, i8 %val5, i8 %val6553 ret i8 %sel554 555; CHECK: fun36556; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val2557; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val4558; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1559; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6560}561 562define i16 @fun37(i8 %val1, i8 %val2, i8 %val3, i8 %val4,563 i16 %val5, i16 %val6) {564 %cmp0 = icmp eq i8 %val1, %val2565 %cmp1 = icmp eq i8 %val3, %val4566 %and = or i1 %cmp0, %cmp1567 %sel = select i1 %and, i16 %val5, i16 %val6568 ret i16 %sel569 570; CHECK: fun37571; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val2572; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val4573; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1574; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6575}576 577define i32 @fun38(i8 %val1, i8 %val2, i8 %val3, i8 %val4,578 i32 %val5, i32 %val6) {579 %cmp0 = icmp eq i8 %val1, %val2580 %cmp1 = icmp eq i8 %val3, %val4581 %and = or i1 %cmp0, %cmp1582 %sel = select i1 %and, i32 %val5, i32 %val6583 ret i32 %sel584 585; CHECK: fun38586; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val2587; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val4588; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1589; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6590}591 592define i64 @fun39(i8 %val1, i8 %val2, i8 %val3, i8 %val4,593 i64 %val5, i64 %val6) {594 %cmp0 = icmp eq i8 %val1, %val2595 %cmp1 = icmp eq i8 %val3, %val4596 %and = or i1 %cmp0, %cmp1597 %sel = select i1 %and, i64 %val5, i64 %val6598 ret i64 %sel599 600; CHECK: fun39601; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val2602; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val4603; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1604; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6605}606 607define float @fun40(i8 %val1, i8 %val2, i8 %val3, i8 %val4,608 float %val5, float %val6) {609 %cmp0 = icmp eq i8 %val1, %val2610 %cmp1 = icmp eq i8 %val3, %val4611 %and = or i1 %cmp0, %cmp1612 %sel = select i1 %and, float %val5, float %val6613 ret float %sel614 615; CHECK: fun40616; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val2617; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val4618; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1619; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6620}621 622define double @fun41(i8 %val1, i8 %val2, i8 %val3, i8 %val4,623 double %val5, double %val6) {624 %cmp0 = icmp eq i8 %val1, %val2625 %cmp1 = icmp eq i8 %val3, %val4626 %and = or i1 %cmp0, %cmp1627 %sel = select i1 %and, double %val5, double %val6628 ret double %sel629 630; CHECK: fun41631; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val2632; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val4633; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1634; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6635}636 637define i8 @fun42(i16 %val1, i16 %val2, i16 %val3, i16 %val4,638 i8 %val5, i8 %val6) {639 %cmp0 = icmp eq i16 %val1, %val2640 %cmp1 = icmp eq i16 %val3, %val4641 %and = or i1 %cmp0, %cmp1642 %sel = select i1 %and, i8 %val5, i8 %val6643 ret i8 %sel644 645; CHECK: fun42646; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2647; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4648; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1649; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6650}651 652define i16 @fun43(i16 %val1, i16 %val2, i16 %val3, i16 %val4,653 i16 %val5, i16 %val6) {654 %cmp0 = icmp eq i16 %val1, %val2655 %cmp1 = icmp eq i16 %val3, %val4656 %and = or i1 %cmp0, %cmp1657 %sel = select i1 %and, i16 %val5, i16 %val6658 ret i16 %sel659 660; CHECK: fun43661; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2662; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4663; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1664; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6665}666 667define i32 @fun44(i16 %val1, i16 %val2, i16 %val3, i16 %val4,668 i32 %val5, i32 %val6) {669 %cmp0 = icmp eq i16 %val1, %val2670 %cmp1 = icmp eq i16 %val3, %val4671 %and = or i1 %cmp0, %cmp1672 %sel = select i1 %and, i32 %val5, i32 %val6673 ret i32 %sel674 675; CHECK: fun44676; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2677; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4678; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1679; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6680}681 682define i64 @fun45(i16 %val1, i16 %val2, i16 %val3, i16 %val4,683 i64 %val5, i64 %val6) {684 %cmp0 = icmp eq i16 %val1, %val2685 %cmp1 = icmp eq i16 %val3, %val4686 %and = or i1 %cmp0, %cmp1687 %sel = select i1 %and, i64 %val5, i64 %val6688 ret i64 %sel689 690; CHECK: fun45691; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2692; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4693; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1694; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6695}696 697define float @fun46(i16 %val1, i16 %val2, i16 %val3, i16 %val4,698 float %val5, float %val6) {699 %cmp0 = icmp eq i16 %val1, %val2700 %cmp1 = icmp eq i16 %val3, %val4701 %and = or i1 %cmp0, %cmp1702 %sel = select i1 %and, float %val5, float %val6703 ret float %sel704 705; CHECK: fun46706; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2707; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4708; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1709; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6710}711 712define double @fun47(i16 %val1, i16 %val2, i16 %val3, i16 %val4,713 double %val5, double %val6) {714 %cmp0 = icmp eq i16 %val1, %val2715 %cmp1 = icmp eq i16 %val3, %val4716 %and = or i1 %cmp0, %cmp1717 %sel = select i1 %and, double %val5, double %val6718 ret double %sel719 720; CHECK: fun47721; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val2722; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val4723; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1724; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6725}726 727define i8 @fun48(i32 %val1, i32 %val2, i32 %val3, i32 %val4,728 i8 %val5, i8 %val6) {729 %cmp0 = icmp eq i32 %val1, %val2730 %cmp1 = icmp eq i32 %val3, %val4731 %and = or i1 %cmp0, %cmp1732 %sel = select i1 %and, i8 %val5, i8 %val6733 ret i8 %sel734 735; CHECK: fun48736; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2737; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4738; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1739; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6740}741 742define i16 @fun49(i32 %val1, i32 %val2, i32 %val3, i32 %val4,743 i16 %val5, i16 %val6) {744 %cmp0 = icmp eq i32 %val1, %val2745 %cmp1 = icmp eq i32 %val3, %val4746 %and = or i1 %cmp0, %cmp1747 %sel = select i1 %and, i16 %val5, i16 %val6748 ret i16 %sel749 750; CHECK: fun49751; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2752; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4753; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1754; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6755}756 757define i32 @fun50(i32 %val1, i32 %val2, i32 %val3, i32 %val4,758 i32 %val5, i32 %val6) {759 %cmp0 = icmp eq i32 %val1, %val2760 %cmp1 = icmp eq i32 %val3, %val4761 %and = or i1 %cmp0, %cmp1762 %sel = select i1 %and, i32 %val5, i32 %val6763 ret i32 %sel764 765; CHECK: fun50766; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2767; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4768; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1769; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6770}771 772define i64 @fun51(i32 %val1, i32 %val2, i32 %val3, i32 %val4,773 i64 %val5, i64 %val6) {774 %cmp0 = icmp eq i32 %val1, %val2775 %cmp1 = icmp eq i32 %val3, %val4776 %and = or i1 %cmp0, %cmp1777 %sel = select i1 %and, i64 %val5, i64 %val6778 ret i64 %sel779 780; CHECK: fun51781; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2782; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4783; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1784; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6785}786 787define float @fun52(i32 %val1, i32 %val2, i32 %val3, i32 %val4,788 float %val5, float %val6) {789 %cmp0 = icmp eq i32 %val1, %val2790 %cmp1 = icmp eq i32 %val3, %val4791 %and = or i1 %cmp0, %cmp1792 %sel = select i1 %and, float %val5, float %val6793 ret float %sel794 795; CHECK: fun52796; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2797; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4798; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1799; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6800}801 802define double @fun53(i32 %val1, i32 %val2, i32 %val3, i32 %val4,803 double %val5, double %val6) {804 %cmp0 = icmp eq i32 %val1, %val2805 %cmp1 = icmp eq i32 %val3, %val4806 %and = or i1 %cmp0, %cmp1807 %sel = select i1 %and, double %val5, double %val6808 ret double %sel809 810; CHECK: fun53811; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val2812; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val4813; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1814; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6815}816 817define i8 @fun54(i64 %val1, i64 %val2, i64 %val3, i64 %val4,818 i8 %val5, i8 %val6) {819 %cmp0 = icmp eq i64 %val1, %val2820 %cmp1 = icmp eq i64 %val3, %val4821 %and = or i1 %cmp0, %cmp1822 %sel = select i1 %and, i8 %val5, i8 %val6823 ret i8 %sel824 825; CHECK: fun54826; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2827; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4828; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1829; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6830}831 832define i16 @fun55(i64 %val1, i64 %val2, i64 %val3, i64 %val4,833 i16 %val5, i16 %val6) {834 %cmp0 = icmp eq i64 %val1, %val2835 %cmp1 = icmp eq i64 %val3, %val4836 %and = or i1 %cmp0, %cmp1837 %sel = select i1 %and, i16 %val5, i16 %val6838 ret i16 %sel839 840; CHECK: fun55841; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2842; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4843; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1844; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6845}846 847define i32 @fun56(i64 %val1, i64 %val2, i64 %val3, i64 %val4,848 i32 %val5, i32 %val6) {849 %cmp0 = icmp eq i64 %val1, %val2850 %cmp1 = icmp eq i64 %val3, %val4851 %and = or i1 %cmp0, %cmp1852 %sel = select i1 %and, i32 %val5, i32 %val6853 ret i32 %sel854 855; CHECK: fun56856; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2857; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4858; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1859; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6860}861 862define i64 @fun57(i64 %val1, i64 %val2, i64 %val3, i64 %val4,863 i64 %val5, i64 %val6) {864 %cmp0 = icmp eq i64 %val1, %val2865 %cmp1 = icmp eq i64 %val3, %val4866 %and = or i1 %cmp0, %cmp1867 %sel = select i1 %and, i64 %val5, i64 %val6868 ret i64 %sel869 870; CHECK: fun57871; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2872; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4873; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1874; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6875}876 877define float @fun58(i64 %val1, i64 %val2, i64 %val3, i64 %val4,878 float %val5, float %val6) {879 %cmp0 = icmp eq i64 %val1, %val2880 %cmp1 = icmp eq i64 %val3, %val4881 %and = or i1 %cmp0, %cmp1882 %sel = select i1 %and, float %val5, float %val6883 ret float %sel884 885; CHECK: fun58886; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2887; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4888; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1889; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6890}891 892define double @fun59(i64 %val1, i64 %val2, i64 %val3, i64 %val4,893 double %val5, double %val6) {894 %cmp0 = icmp eq i64 %val1, %val2895 %cmp1 = icmp eq i64 %val3, %val4896 %and = or i1 %cmp0, %cmp1897 %sel = select i1 %and, double %val5, double %val6898 ret double %sel899 900; CHECK: fun59901; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val2902; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val4903; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1904; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6905}906 907define i8 @fun60(float %val1, float %val2, float %val3, float %val4,908 i8 %val5, i8 %val6) {909 %cmp0 = fcmp ogt float %val1, %val2910 %cmp1 = fcmp ogt float %val3, %val4911 %and = or i1 %cmp0, %cmp1912 %sel = select i1 %and, i8 %val5, i8 %val6913 ret i8 %sel914 915; CHECK: fun60916; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2917; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4918; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1919; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val6920}921 922define i16 @fun61(float %val1, float %val2, float %val3, float %val4,923 i16 %val5, i16 %val6) {924 %cmp0 = fcmp ogt float %val1, %val2925 %cmp1 = fcmp ogt float %val3, %val4926 %and = or i1 %cmp0, %cmp1927 %sel = select i1 %and, i16 %val5, i16 %val6928 ret i16 %sel929 930; CHECK: fun61931; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2932; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4933; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1934; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val6935}936 937define i32 @fun62(float %val1, float %val2, float %val3, float %val4,938 i32 %val5, i32 %val6) {939 %cmp0 = fcmp ogt float %val1, %val2940 %cmp1 = fcmp ogt float %val3, %val4941 %and = or i1 %cmp0, %cmp1942 %sel = select i1 %and, i32 %val5, i32 %val6943 ret i32 %sel944 945; CHECK: fun62946; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2947; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4948; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1949; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val6950}951 952define i64 @fun63(float %val1, float %val2, float %val3, float %val4,953 i64 %val5, i64 %val6) {954 %cmp0 = fcmp ogt float %val1, %val2955 %cmp1 = fcmp ogt float %val3, %val4956 %and = or i1 %cmp0, %cmp1957 %sel = select i1 %and, i64 %val5, i64 %val6958 ret i64 %sel959 960; CHECK: fun63961; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2962; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4963; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1964; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val6965}966 967define float @fun64(float %val1, float %val2, float %val3, float %val4,968 float %val5, float %val6) {969 %cmp0 = fcmp ogt float %val1, %val2970 %cmp1 = fcmp ogt float %val3, %val4971 %and = or i1 %cmp0, %cmp1972 %sel = select i1 %and, float %val5, float %val6973 ret float %sel974 975; CHECK: fun64976; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2977; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4978; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1979; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val6980}981 982define double @fun65(float %val1, float %val2, float %val3, float %val4,983 double %val5, double %val6) {984 %cmp0 = fcmp ogt float %val1, %val2985 %cmp1 = fcmp ogt float %val3, %val4986 %and = or i1 %cmp0, %cmp1987 %sel = select i1 %and, double %val5, double %val6988 ret double %sel989 990; CHECK: fun65991; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val2992; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val4993; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp1994; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val6995}996 997define i8 @fun66(double %val1, double %val2, double %val3, double %val4,998 i8 %val5, i8 %val6) {999 %cmp0 = fcmp ogt double %val1, %val21000 %cmp1 = fcmp ogt double %val3, %val41001 %and = or i1 %cmp0, %cmp11002 %sel = select i1 %and, i8 %val5, i8 %val61003 ret i8 %sel1004 1005; CHECK: fun661006; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21007; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41008; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp11009; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61010}1011 1012define i16 @fun67(double %val1, double %val2, double %val3, double %val4,1013 i16 %val5, i16 %val6) {1014 %cmp0 = fcmp ogt double %val1, %val21015 %cmp1 = fcmp ogt double %val3, %val41016 %and = or i1 %cmp0, %cmp11017 %sel = select i1 %and, i16 %val5, i16 %val61018 ret i16 %sel1019 1020; CHECK: fun671021; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21022; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41023; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp11024; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61025}1026 1027define i32 @fun68(double %val1, double %val2, double %val3, double %val4,1028 i32 %val5, i32 %val6) {1029 %cmp0 = fcmp ogt double %val1, %val21030 %cmp1 = fcmp ogt double %val3, %val41031 %and = or i1 %cmp0, %cmp11032 %sel = select i1 %and, i32 %val5, i32 %val61033 ret i32 %sel1034 1035; CHECK: fun681036; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21037; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41038; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp11039; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61040}1041 1042define i64 @fun69(double %val1, double %val2, double %val3, double %val4,1043 i64 %val5, i64 %val6) {1044 %cmp0 = fcmp ogt double %val1, %val21045 %cmp1 = fcmp ogt double %val3, %val41046 %and = or i1 %cmp0, %cmp11047 %sel = select i1 %and, i64 %val5, i64 %val61048 ret i64 %sel1049 1050; CHECK: fun691051; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21052; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41053; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp11054; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61055}1056 1057define float @fun70(double %val1, double %val2, double %val3, double %val4,1058 float %val5, float %val6) {1059 %cmp0 = fcmp ogt double %val1, %val21060 %cmp1 = fcmp ogt double %val3, %val41061 %and = or i1 %cmp0, %cmp11062 %sel = select i1 %and, float %val5, float %val61063 ret float %sel1064 1065; CHECK: fun701066; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21067; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41068; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp11069; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61070}1071 1072define double @fun71(double %val1, double %val2, double %val3, double %val4,1073 double %val5, double %val6) {1074 %cmp0 = fcmp ogt double %val1, %val21075 %cmp1 = fcmp ogt double %val3, %val41076 %and = or i1 %cmp0, %cmp11077 %sel = select i1 %and, double %val5, double %val61078 ret double %sel1079 1080; CHECK: fun711081; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21082; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41083; CHECK: cost of 1 for instruction: %and = or i1 %cmp0, %cmp11084; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61085}1086 1087define i8 @fun72(i8 %val1, i8 %val2, i8 %val3, i8 %val4,1088 i8 %val5, i8 %val6) {1089 %cmp0 = icmp eq i8 %val1, %val21090 %cmp1 = icmp eq i8 %val3, %val41091 %and = xor i1 %cmp0, %cmp11092 %sel = select i1 %and, i8 %val5, i8 %val61093 ret i8 %sel1094 1095; CHECK: fun721096; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val21097; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val41098; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11099; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11100; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61101}1102 1103define i16 @fun73(i8 %val1, i8 %val2, i8 %val3, i8 %val4,1104 i16 %val5, i16 %val6) {1105 %cmp0 = icmp eq i8 %val1, %val21106 %cmp1 = icmp eq i8 %val3, %val41107 %and = xor i1 %cmp0, %cmp11108 %sel = select i1 %and, i16 %val5, i16 %val61109 ret i16 %sel1110 1111; CHECK: fun731112; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val21113; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val41114; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11115; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11116; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61117}1118 1119define i32 @fun74(i8 %val1, i8 %val2, i8 %val3, i8 %val4,1120 i32 %val5, i32 %val6) {1121 %cmp0 = icmp eq i8 %val1, %val21122 %cmp1 = icmp eq i8 %val3, %val41123 %and = xor i1 %cmp0, %cmp11124 %sel = select i1 %and, i32 %val5, i32 %val61125 ret i32 %sel1126 1127; CHECK: fun741128; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val21129; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val41130; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11131; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11132; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61133}1134 1135define i64 @fun75(i8 %val1, i8 %val2, i8 %val3, i8 %val4,1136 i64 %val5, i64 %val6) {1137 %cmp0 = icmp eq i8 %val1, %val21138 %cmp1 = icmp eq i8 %val3, %val41139 %and = xor i1 %cmp0, %cmp11140 %sel = select i1 %and, i64 %val5, i64 %val61141 ret i64 %sel1142 1143; CHECK: fun751144; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val21145; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val41146; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11147; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11148; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61149}1150 1151define float @fun76(i8 %val1, i8 %val2, i8 %val3, i8 %val4,1152 float %val5, float %val6) {1153 %cmp0 = icmp eq i8 %val1, %val21154 %cmp1 = icmp eq i8 %val3, %val41155 %and = xor i1 %cmp0, %cmp11156 %sel = select i1 %and, float %val5, float %val61157 ret float %sel1158 1159; CHECK: fun761160; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val21161; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val41162; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11163; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11164; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61165}1166 1167define double @fun77(i8 %val1, i8 %val2, i8 %val3, i8 %val4,1168 double %val5, double %val6) {1169 %cmp0 = icmp eq i8 %val1, %val21170 %cmp1 = icmp eq i8 %val3, %val41171 %and = xor i1 %cmp0, %cmp11172 %sel = select i1 %and, double %val5, double %val61173 ret double %sel1174 1175; CHECK: fun771176; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i8 %val1, %val21177; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i8 %val3, %val41178; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11179; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11180; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61181}1182 1183define i8 @fun78(i16 %val1, i16 %val2, i16 %val3, i16 %val4,1184 i8 %val5, i8 %val6) {1185 %cmp0 = icmp eq i16 %val1, %val21186 %cmp1 = icmp eq i16 %val3, %val41187 %and = xor i1 %cmp0, %cmp11188 %sel = select i1 %and, i8 %val5, i8 %val61189 ret i8 %sel1190 1191; CHECK: fun781192; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val21193; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val41194; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11195; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11196; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61197}1198 1199define i16 @fun79(i16 %val1, i16 %val2, i16 %val3, i16 %val4,1200 i16 %val5, i16 %val6) {1201 %cmp0 = icmp eq i16 %val1, %val21202 %cmp1 = icmp eq i16 %val3, %val41203 %and = xor i1 %cmp0, %cmp11204 %sel = select i1 %and, i16 %val5, i16 %val61205 ret i16 %sel1206 1207; CHECK: fun791208; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val21209; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val41210; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11211; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11212; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61213}1214 1215define i32 @fun80(i16 %val1, i16 %val2, i16 %val3, i16 %val4,1216 i32 %val5, i32 %val6) {1217 %cmp0 = icmp eq i16 %val1, %val21218 %cmp1 = icmp eq i16 %val3, %val41219 %and = xor i1 %cmp0, %cmp11220 %sel = select i1 %and, i32 %val5, i32 %val61221 ret i32 %sel1222 1223; CHECK: fun801224; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val21225; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val41226; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11227; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11228; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61229}1230 1231define i64 @fun81(i16 %val1, i16 %val2, i16 %val3, i16 %val4,1232 i64 %val5, i64 %val6) {1233 %cmp0 = icmp eq i16 %val1, %val21234 %cmp1 = icmp eq i16 %val3, %val41235 %and = xor i1 %cmp0, %cmp11236 %sel = select i1 %and, i64 %val5, i64 %val61237 ret i64 %sel1238 1239; CHECK: fun811240; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val21241; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val41242; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11243; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11244; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61245}1246 1247define float @fun82(i16 %val1, i16 %val2, i16 %val3, i16 %val4,1248 float %val5, float %val6) {1249 %cmp0 = icmp eq i16 %val1, %val21250 %cmp1 = icmp eq i16 %val3, %val41251 %and = xor i1 %cmp0, %cmp11252 %sel = select i1 %and, float %val5, float %val61253 ret float %sel1254 1255; CHECK: fun821256; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val21257; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val41258; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11259; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11260; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61261}1262 1263define double @fun83(i16 %val1, i16 %val2, i16 %val3, i16 %val4,1264 double %val5, double %val6) {1265 %cmp0 = icmp eq i16 %val1, %val21266 %cmp1 = icmp eq i16 %val3, %val41267 %and = xor i1 %cmp0, %cmp11268 %sel = select i1 %and, double %val5, double %val61269 ret double %sel1270 1271; CHECK: fun831272; CHECK: cost of 3 for instruction: %cmp0 = icmp eq i16 %val1, %val21273; CHECK: cost of 3 for instruction: %cmp1 = icmp eq i16 %val3, %val41274; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11275; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11276; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61277}1278 1279define i8 @fun84(i32 %val1, i32 %val2, i32 %val3, i32 %val4,1280 i8 %val5, i8 %val6) {1281 %cmp0 = icmp eq i32 %val1, %val21282 %cmp1 = icmp eq i32 %val3, %val41283 %and = xor i1 %cmp0, %cmp11284 %sel = select i1 %and, i8 %val5, i8 %val61285 ret i8 %sel1286 1287; CHECK: fun841288; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val21289; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val41290; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11291; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11292; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61293}1294 1295define i16 @fun85(i32 %val1, i32 %val2, i32 %val3, i32 %val4,1296 i16 %val5, i16 %val6) {1297 %cmp0 = icmp eq i32 %val1, %val21298 %cmp1 = icmp eq i32 %val3, %val41299 %and = xor i1 %cmp0, %cmp11300 %sel = select i1 %and, i16 %val5, i16 %val61301 ret i16 %sel1302 1303; CHECK: fun851304; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val21305; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val41306; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11307; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11308; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61309}1310 1311define i32 @fun86(i32 %val1, i32 %val2, i32 %val3, i32 %val4,1312 i32 %val5, i32 %val6) {1313 %cmp0 = icmp eq i32 %val1, %val21314 %cmp1 = icmp eq i32 %val3, %val41315 %and = xor i1 %cmp0, %cmp11316 %sel = select i1 %and, i32 %val5, i32 %val61317 ret i32 %sel1318 1319; CHECK: fun861320; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val21321; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val41322; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11323; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11324; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61325}1326 1327define i64 @fun87(i32 %val1, i32 %val2, i32 %val3, i32 %val4,1328 i64 %val5, i64 %val6) {1329 %cmp0 = icmp eq i32 %val1, %val21330 %cmp1 = icmp eq i32 %val3, %val41331 %and = xor i1 %cmp0, %cmp11332 %sel = select i1 %and, i64 %val5, i64 %val61333 ret i64 %sel1334 1335; CHECK: fun871336; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val21337; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val41338; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11339; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11340; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61341}1342 1343define float @fun88(i32 %val1, i32 %val2, i32 %val3, i32 %val4,1344 float %val5, float %val6) {1345 %cmp0 = icmp eq i32 %val1, %val21346 %cmp1 = icmp eq i32 %val3, %val41347 %and = xor i1 %cmp0, %cmp11348 %sel = select i1 %and, float %val5, float %val61349 ret float %sel1350 1351; CHECK: fun881352; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val21353; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val41354; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11355; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11356; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61357}1358 1359define double @fun89(i32 %val1, i32 %val2, i32 %val3, i32 %val4,1360 double %val5, double %val6) {1361 %cmp0 = icmp eq i32 %val1, %val21362 %cmp1 = icmp eq i32 %val3, %val41363 %and = xor i1 %cmp0, %cmp11364 %sel = select i1 %and, double %val5, double %val61365 ret double %sel1366 1367; CHECK: fun891368; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i32 %val1, %val21369; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i32 %val3, %val41370; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11371; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11372; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61373}1374 1375define i8 @fun90(i64 %val1, i64 %val2, i64 %val3, i64 %val4,1376 i8 %val5, i8 %val6) {1377 %cmp0 = icmp eq i64 %val1, %val21378 %cmp1 = icmp eq i64 %val3, %val41379 %and = xor i1 %cmp0, %cmp11380 %sel = select i1 %and, i8 %val5, i8 %val61381 ret i8 %sel1382 1383; CHECK: fun901384; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val21385; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val41386; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11387; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11388; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61389}1390 1391define i16 @fun91(i64 %val1, i64 %val2, i64 %val3, i64 %val4,1392 i16 %val5, i16 %val6) {1393 %cmp0 = icmp eq i64 %val1, %val21394 %cmp1 = icmp eq i64 %val3, %val41395 %and = xor i1 %cmp0, %cmp11396 %sel = select i1 %and, i16 %val5, i16 %val61397 ret i16 %sel1398 1399; CHECK: fun911400; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val21401; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val41402; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11403; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11404; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61405}1406 1407define i32 @fun92(i64 %val1, i64 %val2, i64 %val3, i64 %val4,1408 i32 %val5, i32 %val6) {1409 %cmp0 = icmp eq i64 %val1, %val21410 %cmp1 = icmp eq i64 %val3, %val41411 %and = xor i1 %cmp0, %cmp11412 %sel = select i1 %and, i32 %val5, i32 %val61413 ret i32 %sel1414 1415; CHECK: fun921416; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val21417; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val41418; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11419; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11420; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61421}1422 1423define i64 @fun93(i64 %val1, i64 %val2, i64 %val3, i64 %val4,1424 i64 %val5, i64 %val6) {1425 %cmp0 = icmp eq i64 %val1, %val21426 %cmp1 = icmp eq i64 %val3, %val41427 %and = xor i1 %cmp0, %cmp11428 %sel = select i1 %and, i64 %val5, i64 %val61429 ret i64 %sel1430 1431; CHECK: fun931432; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val21433; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val41434; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11435; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11436; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61437}1438 1439define float @fun94(i64 %val1, i64 %val2, i64 %val3, i64 %val4,1440 float %val5, float %val6) {1441 %cmp0 = icmp eq i64 %val1, %val21442 %cmp1 = icmp eq i64 %val3, %val41443 %and = xor i1 %cmp0, %cmp11444 %sel = select i1 %and, float %val5, float %val61445 ret float %sel1446 1447; CHECK: fun941448; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val21449; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val41450; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11451; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11452; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61453}1454 1455define double @fun95(i64 %val1, i64 %val2, i64 %val3, i64 %val4,1456 double %val5, double %val6) {1457 %cmp0 = icmp eq i64 %val1, %val21458 %cmp1 = icmp eq i64 %val3, %val41459 %and = xor i1 %cmp0, %cmp11460 %sel = select i1 %and, double %val5, double %val61461 ret double %sel1462 1463; CHECK: fun951464; CHECK: cost of 1 for instruction: %cmp0 = icmp eq i64 %val1, %val21465; CHECK: cost of 1 for instruction: %cmp1 = icmp eq i64 %val3, %val41466; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11467; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11468; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61469}1470 1471define i8 @fun96(float %val1, float %val2, float %val3, float %val4,1472 i8 %val5, i8 %val6) {1473 %cmp0 = fcmp ogt float %val1, %val21474 %cmp1 = fcmp ogt float %val3, %val41475 %and = xor i1 %cmp0, %cmp11476 %sel = select i1 %and, i8 %val5, i8 %val61477 ret i8 %sel1478 1479; CHECK: fun961480; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val21481; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val41482; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11483; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11484; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61485}1486 1487define i16 @fun97(float %val1, float %val2, float %val3, float %val4,1488 i16 %val5, i16 %val6) {1489 %cmp0 = fcmp ogt float %val1, %val21490 %cmp1 = fcmp ogt float %val3, %val41491 %and = xor i1 %cmp0, %cmp11492 %sel = select i1 %and, i16 %val5, i16 %val61493 ret i16 %sel1494 1495; CHECK: fun971496; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val21497; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val41498; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11499; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11500; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61501}1502 1503define i32 @fun98(float %val1, float %val2, float %val3, float %val4,1504 i32 %val5, i32 %val6) {1505 %cmp0 = fcmp ogt float %val1, %val21506 %cmp1 = fcmp ogt float %val3, %val41507 %and = xor i1 %cmp0, %cmp11508 %sel = select i1 %and, i32 %val5, i32 %val61509 ret i32 %sel1510 1511; CHECK: fun981512; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val21513; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val41514; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11515; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11516; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61517}1518 1519define i64 @fun99(float %val1, float %val2, float %val3, float %val4,1520 i64 %val5, i64 %val6) {1521 %cmp0 = fcmp ogt float %val1, %val21522 %cmp1 = fcmp ogt float %val3, %val41523 %and = xor i1 %cmp0, %cmp11524 %sel = select i1 %and, i64 %val5, i64 %val61525 ret i64 %sel1526 1527; CHECK: fun991528; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val21529; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val41530; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11531; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11532; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61533}1534 1535define float @fun100(float %val1, float %val2, float %val3, float %val4,1536 float %val5, float %val6) {1537 %cmp0 = fcmp ogt float %val1, %val21538 %cmp1 = fcmp ogt float %val3, %val41539 %and = xor i1 %cmp0, %cmp11540 %sel = select i1 %and, float %val5, float %val61541 ret float %sel1542 1543; CHECK: fun1001544; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val21545; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val41546; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11547; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11548; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61549}1550 1551define double @fun101(float %val1, float %val2, float %val3, float %val4,1552 double %val5, double %val6) {1553 %cmp0 = fcmp ogt float %val1, %val21554 %cmp1 = fcmp ogt float %val3, %val41555 %and = xor i1 %cmp0, %cmp11556 %sel = select i1 %and, double %val5, double %val61557 ret double %sel1558 1559; CHECK: fun1011560; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt float %val1, %val21561; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt float %val3, %val41562; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11563; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11564; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61565}1566 1567define i8 @fun102(double %val1, double %val2, double %val3, double %val4,1568 i8 %val5, i8 %val6) {1569 %cmp0 = fcmp ogt double %val1, %val21570 %cmp1 = fcmp ogt double %val3, %val41571 %and = xor i1 %cmp0, %cmp11572 %sel = select i1 %and, i8 %val5, i8 %val61573 ret i8 %sel1574 1575; CHECK: fun1021576; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21577; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41578; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11579; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11580; CHECK: cost of 1 for instruction: %sel = select i1 %and, i8 %val5, i8 %val61581}1582 1583define i16 @fun103(double %val1, double %val2, double %val3, double %val4,1584 i16 %val5, i16 %val6) {1585 %cmp0 = fcmp ogt double %val1, %val21586 %cmp1 = fcmp ogt double %val3, %val41587 %and = xor i1 %cmp0, %cmp11588 %sel = select i1 %and, i16 %val5, i16 %val61589 ret i16 %sel1590 1591; CHECK: fun1031592; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21593; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41594; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11595; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11596; CHECK: cost of 1 for instruction: %sel = select i1 %and, i16 %val5, i16 %val61597}1598 1599define i32 @fun104(double %val1, double %val2, double %val3, double %val4,1600 i32 %val5, i32 %val6) {1601 %cmp0 = fcmp ogt double %val1, %val21602 %cmp1 = fcmp ogt double %val3, %val41603 %and = xor i1 %cmp0, %cmp11604 %sel = select i1 %and, i32 %val5, i32 %val61605 ret i32 %sel1606 1607; CHECK: fun1041608; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21609; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41610; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11611; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11612; CHECK: cost of 1 for instruction: %sel = select i1 %and, i32 %val5, i32 %val61613}1614 1615define i64 @fun105(double %val1, double %val2, double %val3, double %val4,1616 i64 %val5, i64 %val6) {1617 %cmp0 = fcmp ogt double %val1, %val21618 %cmp1 = fcmp ogt double %val3, %val41619 %and = xor i1 %cmp0, %cmp11620 %sel = select i1 %and, i64 %val5, i64 %val61621 ret i64 %sel1622 1623; CHECK: fun1051624; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21625; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41626; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11627; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11628; CHECK: cost of 1 for instruction: %sel = select i1 %and, i64 %val5, i64 %val61629}1630 1631define float @fun106(double %val1, double %val2, double %val3, double %val4,1632 float %val5, float %val6) {1633 %cmp0 = fcmp ogt double %val1, %val21634 %cmp1 = fcmp ogt double %val3, %val41635 %and = xor i1 %cmp0, %cmp11636 %sel = select i1 %and, float %val5, float %val61637 ret float %sel1638 1639; CHECK: fun1061640; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21641; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41642; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11643; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11644; CHECK: cost of 4 for instruction: %sel = select i1 %and, float %val5, float %val61645}1646 1647define double @fun107(double %val1, double %val2, double %val3, double %val4,1648 double %val5, double %val6) {1649 %cmp0 = fcmp ogt double %val1, %val21650 %cmp1 = fcmp ogt double %val3, %val41651 %and = xor i1 %cmp0, %cmp11652 %sel = select i1 %and, double %val5, double %val61653 ret double %sel1654 1655; CHECK: fun1071656; CHECK: cost of 1 for instruction: %cmp0 = fcmp ogt double %val1, %val21657; CHECK: cost of 1 for instruction: %cmp1 = fcmp ogt double %val3, %val41658; CHECK: cost of 5 for instruction: %and = xor i1 %cmp0, %cmp11659; IPMSQ: cost of 7 for instruction: %and = xor i1 %cmp0, %cmp11660; CHECK: cost of 4 for instruction: %sel = select i1 %and, double %val5, double %val61661}1662 1663