brintos

brintos / llvm-project-archived public Read only

0
0
Text · 64.2 KiB · d15bdda Raw
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