1; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s 2; 3; Note: Cost estimates of select of a fp-type is somewhat arbitrary, since it 4; involves a conditional jump. 5; Note: Vector fp32 is not directly supported, and not quite exact in 6; estimates (but it is big absolute values). 7 8define i8 @fun0(i8 %val1, i8 %val2, 9 i8 %val3, i8 %val4) { 10 %cmp = icmp eq i8 %val1, %val2 11 %sel = select i1 %cmp, i8 %val3, i8 %val4 12 ret i8 %sel 13 14; CHECK: fun0 15; CHECK: cost of 3 for instruction: %cmp = icmp eq i8 %val1, %val2 16; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i8 %val3, i8 %val4 17} 18 19define i16 @fun1(i8 %val1, i8 %val2, 20 i16 %val3, i16 %val4) { 21 %cmp = icmp eq i8 %val1, %val2 22 %sel = select i1 %cmp, i16 %val3, i16 %val4 23 ret i16 %sel 24 25; CHECK: fun1 26; CHECK: cost of 3 for instruction: %cmp = icmp eq i8 %val1, %val2 27; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i16 %val3, i16 %val4 28} 29 30define i32 @fun2(i8 %val1, i8 %val2, 31 i32 %val3, i32 %val4) { 32 %cmp = icmp eq i8 %val1, %val2 33 %sel = select i1 %cmp, i32 %val3, i32 %val4 34 ret i32 %sel 35 36; CHECK: fun2 37; CHECK: cost of 3 for instruction: %cmp = icmp eq i8 %val1, %val2 38; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i32 %val3, i32 %val4 39} 40 41define i64 @fun3(i8 %val1, i8 %val2, 42 i64 %val3, i64 %val4) { 43 %cmp = icmp eq i8 %val1, %val2 44 %sel = select i1 %cmp, i64 %val3, i64 %val4 45 ret i64 %sel 46 47; CHECK: fun3 48; CHECK: cost of 3 for instruction: %cmp = icmp eq i8 %val1, %val2 49; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i64 %val3, i64 %val4 50} 51 52define float @fun4(i8 %val1, i8 %val2, 53 float %val3, float %val4) { 54 %cmp = icmp eq i8 %val1, %val2 55 %sel = select i1 %cmp, float %val3, float %val4 56 ret float %sel 57 58; CHECK: fun4 59; CHECK: cost of 3 for instruction: %cmp = icmp eq i8 %val1, %val2 60; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, float %val3, float %val4 61} 62 63define double @fun5(i8 %val1, i8 %val2, 64 double %val3, double %val4) { 65 %cmp = icmp eq i8 %val1, %val2 66 %sel = select i1 %cmp, double %val3, double %val4 67 ret double %sel 68 69; CHECK: fun5 70; CHECK: cost of 3 for instruction: %cmp = icmp eq i8 %val1, %val2 71; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, double %val3, double %val4 72} 73 74define i8 @fun6(i16 %val1, i16 %val2, 75 i8 %val3, i8 %val4) { 76 %cmp = icmp eq i16 %val1, %val2 77 %sel = select i1 %cmp, i8 %val3, i8 %val4 78 ret i8 %sel 79 80; CHECK: fun6 81; CHECK: cost of 3 for instruction: %cmp = icmp eq i16 %val1, %val2 82; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i8 %val3, i8 %val4 83} 84 85define i16 @fun7(i16 %val1, i16 %val2, 86 i16 %val3, i16 %val4) { 87 %cmp = icmp eq i16 %val1, %val2 88 %sel = select i1 %cmp, i16 %val3, i16 %val4 89 ret i16 %sel 90 91; CHECK: fun7 92; CHECK: cost of 3 for instruction: %cmp = icmp eq i16 %val1, %val2 93; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i16 %val3, i16 %val4 94} 95 96define i32 @fun8(i16 %val1, i16 %val2, 97 i32 %val3, i32 %val4) { 98 %cmp = icmp eq i16 %val1, %val2 99 %sel = select i1 %cmp, i32 %val3, i32 %val4 100 ret i32 %sel 101 102; CHECK: fun8 103; CHECK: cost of 3 for instruction: %cmp = icmp eq i16 %val1, %val2 104; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i32 %val3, i32 %val4 105} 106 107define i64 @fun9(i16 %val1, i16 %val2, 108 i64 %val3, i64 %val4) { 109 %cmp = icmp eq i16 %val1, %val2 110 %sel = select i1 %cmp, i64 %val3, i64 %val4 111 ret i64 %sel 112 113; CHECK: fun9 114; CHECK: cost of 3 for instruction: %cmp = icmp eq i16 %val1, %val2 115; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i64 %val3, i64 %val4 116} 117 118define float @fun10(i16 %val1, i16 %val2, 119 float %val3, float %val4) { 120 %cmp = icmp eq i16 %val1, %val2 121 %sel = select i1 %cmp, float %val3, float %val4 122 ret float %sel 123 124; CHECK: fun10 125; CHECK: cost of 3 for instruction: %cmp = icmp eq i16 %val1, %val2 126; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, float %val3, float %val4 127} 128 129define double @fun11(i16 %val1, i16 %val2, 130 double %val3, double %val4) { 131 %cmp = icmp eq i16 %val1, %val2 132 %sel = select i1 %cmp, double %val3, double %val4 133 ret double %sel 134 135; CHECK: fun11 136; CHECK: cost of 3 for instruction: %cmp = icmp eq i16 %val1, %val2 137; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, double %val3, double %val4 138} 139 140define i8 @fun12(i32 %val1, i32 %val2, 141 i8 %val3, i8 %val4) { 142 %cmp = icmp eq i32 %val1, %val2 143 %sel = select i1 %cmp, i8 %val3, i8 %val4 144 ret i8 %sel 145 146; CHECK: fun12 147; CHECK: cost of 1 for instruction: %cmp = icmp eq i32 %val1, %val2 148; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i8 %val3, i8 %val4 149} 150 151define i16 @fun13(i32 %val1, i32 %val2, 152 i16 %val3, i16 %val4) { 153 %cmp = icmp eq i32 %val1, %val2 154 %sel = select i1 %cmp, i16 %val3, i16 %val4 155 ret i16 %sel 156 157; CHECK: fun13 158; CHECK: cost of 1 for instruction: %cmp = icmp eq i32 %val1, %val2 159; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i16 %val3, i16 %val4 160} 161 162define i32 @fun14(i32 %val1, i32 %val2, 163 i32 %val3, i32 %val4) { 164 %cmp = icmp eq i32 %val1, %val2 165 %sel = select i1 %cmp, i32 %val3, i32 %val4 166 ret i32 %sel 167 168; CHECK: fun14 169; CHECK: cost of 1 for instruction: %cmp = icmp eq i32 %val1, %val2 170; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i32 %val3, i32 %val4 171} 172 173define i64 @fun15(i32 %val1, i32 %val2, 174 i64 %val3, i64 %val4) { 175 %cmp = icmp eq i32 %val1, %val2 176 %sel = select i1 %cmp, i64 %val3, i64 %val4 177 ret i64 %sel 178 179; CHECK: fun15 180; CHECK: cost of 1 for instruction: %cmp = icmp eq i32 %val1, %val2 181; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i64 %val3, i64 %val4 182} 183 184define float @fun16(i32 %val1, i32 %val2, 185 float %val3, float %val4) { 186 %cmp = icmp eq i32 %val1, %val2 187 %sel = select i1 %cmp, float %val3, float %val4 188 ret float %sel 189 190; CHECK: fun16 191; CHECK: cost of 1 for instruction: %cmp = icmp eq i32 %val1, %val2 192; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, float %val3, float %val4 193} 194 195define double @fun17(i32 %val1, i32 %val2, 196 double %val3, double %val4) { 197 %cmp = icmp eq i32 %val1, %val2 198 %sel = select i1 %cmp, double %val3, double %val4 199 ret double %sel 200 201; CHECK: fun17 202; CHECK: cost of 1 for instruction: %cmp = icmp eq i32 %val1, %val2 203; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, double %val3, double %val4 204} 205 206define i8 @fun18(i64 %val1, i64 %val2, 207 i8 %val3, i8 %val4) { 208 %cmp = icmp eq i64 %val1, %val2 209 %sel = select i1 %cmp, i8 %val3, i8 %val4 210 ret i8 %sel 211 212; CHECK: fun18 213; CHECK: cost of 1 for instruction: %cmp = icmp eq i64 %val1, %val2 214; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i8 %val3, i8 %val4 215} 216 217define i16 @fun19(i64 %val1, i64 %val2, 218 i16 %val3, i16 %val4) { 219 %cmp = icmp eq i64 %val1, %val2 220 %sel = select i1 %cmp, i16 %val3, i16 %val4 221 ret i16 %sel 222 223; CHECK: fun19 224; CHECK: cost of 1 for instruction: %cmp = icmp eq i64 %val1, %val2 225; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i16 %val3, i16 %val4 226} 227 228define i32 @fun20(i64 %val1, i64 %val2, 229 i32 %val3, i32 %val4) { 230 %cmp = icmp eq i64 %val1, %val2 231 %sel = select i1 %cmp, i32 %val3, i32 %val4 232 ret i32 %sel 233 234; CHECK: fun20 235; CHECK: cost of 1 for instruction: %cmp = icmp eq i64 %val1, %val2 236; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i32 %val3, i32 %val4 237} 238 239define i64 @fun21(i64 %val1, i64 %val2, 240 i64 %val3, i64 %val4) { 241 %cmp = icmp eq i64 %val1, %val2 242 %sel = select i1 %cmp, i64 %val3, i64 %val4 243 ret i64 %sel 244 245; CHECK: fun21 246; CHECK: cost of 1 for instruction: %cmp = icmp eq i64 %val1, %val2 247; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i64 %val3, i64 %val4 248} 249 250define float @fun22(i64 %val1, i64 %val2, 251 float %val3, float %val4) { 252 %cmp = icmp eq i64 %val1, %val2 253 %sel = select i1 %cmp, float %val3, float %val4 254 ret float %sel 255 256; CHECK: fun22 257; CHECK: cost of 1 for instruction: %cmp = icmp eq i64 %val1, %val2 258; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, float %val3, float %val4 259} 260 261define double @fun23(i64 %val1, i64 %val2, 262 double %val3, double %val4) { 263 %cmp = icmp eq i64 %val1, %val2 264 %sel = select i1 %cmp, double %val3, double %val4 265 ret double %sel 266 267; CHECK: fun23 268; CHECK: cost of 1 for instruction: %cmp = icmp eq i64 %val1, %val2 269; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, double %val3, double %val4 270} 271 272define <2 x i8> @fun24(<2 x i8> %val1, <2 x i8> %val2, 273 <2 x i8> %val3, <2 x i8> %val4) { 274 %cmp = icmp eq <2 x i8> %val1, %val2 275 %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 276 ret <2 x i8> %sel 277 278; CHECK: fun24 279; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val2 280; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 281} 282 283define <2 x i16> @fun25(<2 x i8> %val1, <2 x i8> %val2, 284 <2 x i16> %val3, <2 x i16> %val4) { 285 %cmp = icmp eq <2 x i8> %val1, %val2 286 %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 287 ret <2 x i16> %sel 288 289; CHECK: fun25 290; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val2 291; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 292} 293 294define <2 x i32> @fun26(<2 x i8> %val1, <2 x i8> %val2, 295 <2 x i32> %val3, <2 x i32> %val4) { 296 %cmp = icmp eq <2 x i8> %val1, %val2 297 %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 298 ret <2 x i32> %sel 299 300; CHECK: fun26 301; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val2 302; CHECK: cost of 3 for instruction: %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 303} 304 305define <2 x i64> @fun27(<2 x i8> %val1, <2 x i8> %val2, 306 <2 x i64> %val3, <2 x i64> %val4) { 307 %cmp = icmp eq <2 x i8> %val1, %val2 308 %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 309 ret <2 x i64> %sel 310 311; CHECK: fun27 312; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val2 313; CHECK: cost of 4 for instruction: %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 314} 315 316define <2 x float> @fun28(<2 x i8> %val1, <2 x i8> %val2, 317 <2 x float> %val3, <2 x float> %val4) { 318 %cmp = icmp eq <2 x i8> %val1, %val2 319 %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 320 ret <2 x float> %sel 321 322; CHECK: fun28 323; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val2 324; CHECK: cost of 3 for instruction: %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 325} 326 327define <2 x double> @fun29(<2 x i8> %val1, <2 x i8> %val2, 328 <2 x double> %val3, <2 x double> %val4) { 329 %cmp = icmp eq <2 x i8> %val1, %val2 330 %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 331 ret <2 x double> %sel 332 333; CHECK: fun29 334; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i8> %val1, %val2 335; CHECK: cost of 4 for instruction: %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 336} 337 338define <2 x i8> @fun30(<2 x i16> %val1, <2 x i16> %val2, 339 <2 x i8> %val3, <2 x i8> %val4) { 340 %cmp = icmp eq <2 x i16> %val1, %val2 341 %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 342 ret <2 x i8> %sel 343 344; CHECK: fun30 345; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i16> %val1, %val2 346; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 347} 348 349define <2 x i16> @fun31(<2 x i16> %val1, <2 x i16> %val2, 350 <2 x i16> %val3, <2 x i16> %val4) { 351 %cmp = icmp eq <2 x i16> %val1, %val2 352 %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 353 ret <2 x i16> %sel 354 355; CHECK: fun31 356; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i16> %val1, %val2 357; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 358} 359 360define <2 x i32> @fun32(<2 x i16> %val1, <2 x i16> %val2, 361 <2 x i32> %val3, <2 x i32> %val4) { 362 %cmp = icmp eq <2 x i16> %val1, %val2 363 %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 364 ret <2 x i32> %sel 365 366; CHECK: fun32 367; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i16> %val1, %val2 368; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 369} 370 371define <2 x i64> @fun33(<2 x i16> %val1, <2 x i16> %val2, 372 <2 x i64> %val3, <2 x i64> %val4) { 373 %cmp = icmp eq <2 x i16> %val1, %val2 374 %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 375 ret <2 x i64> %sel 376 377; CHECK: fun33 378; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i16> %val1, %val2 379; CHECK: cost of 3 for instruction: %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 380} 381 382define <2 x float> @fun34(<2 x i16> %val1, <2 x i16> %val2, 383 <2 x float> %val3, <2 x float> %val4) { 384 %cmp = icmp eq <2 x i16> %val1, %val2 385 %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 386 ret <2 x float> %sel 387 388; CHECK: fun34 389; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i16> %val1, %val2 390; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 391} 392 393define <2 x double> @fun35(<2 x i16> %val1, <2 x i16> %val2, 394 <2 x double> %val3, <2 x double> %val4) { 395 %cmp = icmp eq <2 x i16> %val1, %val2 396 %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 397 ret <2 x double> %sel 398 399; CHECK: fun35 400; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i16> %val1, %val2 401; CHECK: cost of 3 for instruction: %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 402} 403 404define <2 x i8> @fun36(<2 x i32> %val1, <2 x i32> %val2, 405 <2 x i8> %val3, <2 x i8> %val4) { 406 %cmp = icmp eq <2 x i32> %val1, %val2 407 %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 408 ret <2 x i8> %sel 409 410; CHECK: fun36 411; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i32> %val1, %val2 412; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 413} 414 415define <2 x i16> @fun37(<2 x i32> %val1, <2 x i32> %val2, 416 <2 x i16> %val3, <2 x i16> %val4) { 417 %cmp = icmp eq <2 x i32> %val1, %val2 418 %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 419 ret <2 x i16> %sel 420 421; CHECK: fun37 422; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i32> %val1, %val2 423; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 424} 425 426define <2 x i32> @fun38(<2 x i32> %val1, <2 x i32> %val2, 427 <2 x i32> %val3, <2 x i32> %val4) { 428 %cmp = icmp eq <2 x i32> %val1, %val2 429 %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 430 ret <2 x i32> %sel 431 432; CHECK: fun38 433; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i32> %val1, %val2 434; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 435} 436 437define <2 x i64> @fun39(<2 x i32> %val1, <2 x i32> %val2, 438 <2 x i64> %val3, <2 x i64> %val4) { 439 %cmp = icmp eq <2 x i32> %val1, %val2 440 %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 441 ret <2 x i64> %sel 442 443; CHECK: fun39 444; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i32> %val1, %val2 445; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 446} 447 448define <2 x float> @fun40(<2 x i32> %val1, <2 x i32> %val2, 449 <2 x float> %val3, <2 x float> %val4) { 450 %cmp = icmp eq <2 x i32> %val1, %val2 451 %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 452 ret <2 x float> %sel 453 454; CHECK: fun40 455; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i32> %val1, %val2 456; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 457} 458 459define <2 x double> @fun41(<2 x i32> %val1, <2 x i32> %val2, 460 <2 x double> %val3, <2 x double> %val4) { 461 %cmp = icmp eq <2 x i32> %val1, %val2 462 %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 463 ret <2 x double> %sel 464 465; CHECK: fun41 466; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i32> %val1, %val2 467; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 468} 469 470define <2 x i8> @fun42(<2 x i64> %val1, <2 x i64> %val2, 471 <2 x i8> %val3, <2 x i8> %val4) { 472 %cmp = icmp eq <2 x i64> %val1, %val2 473 %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 474 ret <2 x i8> %sel 475 476; CHECK: fun42 477; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val2 478; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 479} 480 481define <2 x i16> @fun43(<2 x i64> %val1, <2 x i64> %val2, 482 <2 x i16> %val3, <2 x i16> %val4) { 483 %cmp = icmp eq <2 x i64> %val1, %val2 484 %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 485 ret <2 x i16> %sel 486 487; CHECK: fun43 488; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val2 489; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 490} 491 492define <2 x i32> @fun44(<2 x i64> %val1, <2 x i64> %val2, 493 <2 x i32> %val3, <2 x i32> %val4) { 494 %cmp = icmp eq <2 x i64> %val1, %val2 495 %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 496 ret <2 x i32> %sel 497 498; CHECK: fun44 499; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val2 500; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 501} 502 503define <2 x i64> @fun45(<2 x i64> %val1, <2 x i64> %val2, 504 <2 x i64> %val3, <2 x i64> %val4) { 505 %cmp = icmp eq <2 x i64> %val1, %val2 506 %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 507 ret <2 x i64> %sel 508 509; CHECK: fun45 510; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val2 511; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 512} 513 514define <2 x float> @fun46(<2 x i64> %val1, <2 x i64> %val2, 515 <2 x float> %val3, <2 x float> %val4) { 516 %cmp = icmp eq <2 x i64> %val1, %val2 517 %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 518 ret <2 x float> %sel 519 520; CHECK: fun46 521; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val2 522; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 523} 524 525define <2 x double> @fun47(<2 x i64> %val1, <2 x i64> %val2, 526 <2 x double> %val3, <2 x double> %val4) { 527 %cmp = icmp eq <2 x i64> %val1, %val2 528 %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 529 ret <2 x double> %sel 530 531; CHECK: fun47 532; CHECK: cost of 1 for instruction: %cmp = icmp eq <2 x i64> %val1, %val2 533; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 534} 535 536define <4 x i8> @fun48(<4 x i8> %val1, <4 x i8> %val2, 537 <4 x i8> %val3, <4 x i8> %val4) { 538 %cmp = icmp eq <4 x i8> %val1, %val2 539 %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 540 ret <4 x i8> %sel 541 542; CHECK: fun48 543; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i8> %val1, %val2 544; CHECK: cost of 1 for instruction: %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 545} 546 547define <4 x i16> @fun49(<4 x i8> %val1, <4 x i8> %val2, 548 <4 x i16> %val3, <4 x i16> %val4) { 549 %cmp = icmp eq <4 x i8> %val1, %val2 550 %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 551 ret <4 x i16> %sel 552 553; CHECK: fun49 554; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i8> %val1, %val2 555; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 556} 557 558define <4 x i32> @fun50(<4 x i8> %val1, <4 x i8> %val2, 559 <4 x i32> %val3, <4 x i32> %val4) { 560 %cmp = icmp eq <4 x i8> %val1, %val2 561 %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 562 ret <4 x i32> %sel 563 564; CHECK: fun50 565; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i8> %val1, %val2 566; CHECK: cost of 3 for instruction: %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 567} 568 569define <4 x i64> @fun51(<4 x i8> %val1, <4 x i8> %val2, 570 <4 x i64> %val3, <4 x i64> %val4) { 571 %cmp = icmp eq <4 x i8> %val1, %val2 572 %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 573 ret <4 x i64> %sel 574 575; CHECK: fun51 576; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i8> %val1, %val2 577; CHECK: cost of 9 for instruction: %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 578} 579 580define <4 x float> @fun52(<4 x i8> %val1, <4 x i8> %val2, 581 <4 x float> %val3, <4 x float> %val4) { 582 %cmp = icmp eq <4 x i8> %val1, %val2 583 %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 584 ret <4 x float> %sel 585 586; CHECK: fun52 587; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i8> %val1, %val2 588; CHECK: cost of 3 for instruction: %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 589} 590 591define <4 x double> @fun53(<4 x i8> %val1, <4 x i8> %val2, 592 <4 x double> %val3, <4 x double> %val4) { 593 %cmp = icmp eq <4 x i8> %val1, %val2 594 %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 595 ret <4 x double> %sel 596 597; CHECK: fun53 598; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i8> %val1, %val2 599; CHECK: cost of 9 for instruction: %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 600} 601 602define <4 x i8> @fun54(<4 x i16> %val1, <4 x i16> %val2, 603 <4 x i8> %val3, <4 x i8> %val4) { 604 %cmp = icmp eq <4 x i16> %val1, %val2 605 %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 606 ret <4 x i8> %sel 607 608; CHECK: fun54 609; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i16> %val1, %val2 610; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 611} 612 613define <4 x i16> @fun55(<4 x i16> %val1, <4 x i16> %val2, 614 <4 x i16> %val3, <4 x i16> %val4) { 615 %cmp = icmp eq <4 x i16> %val1, %val2 616 %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 617 ret <4 x i16> %sel 618 619; CHECK: fun55 620; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i16> %val1, %val2 621; CHECK: cost of 1 for instruction: %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 622} 623 624define <4 x i32> @fun56(<4 x i16> %val1, <4 x i16> %val2, 625 <4 x i32> %val3, <4 x i32> %val4) { 626 %cmp = icmp eq <4 x i16> %val1, %val2 627 %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 628 ret <4 x i32> %sel 629 630; CHECK: fun56 631; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i16> %val1, %val2 632; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 633} 634 635define <4 x i64> @fun57(<4 x i16> %val1, <4 x i16> %val2, 636 <4 x i64> %val3, <4 x i64> %val4) { 637 %cmp = icmp eq <4 x i16> %val1, %val2 638 %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 639 ret <4 x i64> %sel 640 641; CHECK: fun57 642; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i16> %val1, %val2 643; CHECK: cost of 7 for instruction: %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 644} 645 646define <4 x float> @fun58(<4 x i16> %val1, <4 x i16> %val2, 647 <4 x float> %val3, <4 x float> %val4) { 648 %cmp = icmp eq <4 x i16> %val1, %val2 649 %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 650 ret <4 x float> %sel 651 652; CHECK: fun58 653; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i16> %val1, %val2 654; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 655} 656 657define <4 x double> @fun59(<4 x i16> %val1, <4 x i16> %val2, 658 <4 x double> %val3, <4 x double> %val4) { 659 %cmp = icmp eq <4 x i16> %val1, %val2 660 %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 661 ret <4 x double> %sel 662 663; CHECK: fun59 664; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i16> %val1, %val2 665; CHECK: cost of 7 for instruction: %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 666} 667 668define <4 x i8> @fun60(<4 x i32> %val1, <4 x i32> %val2, 669 <4 x i8> %val3, <4 x i8> %val4) { 670 %cmp = icmp eq <4 x i32> %val1, %val2 671 %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 672 ret <4 x i8> %sel 673 674; CHECK: fun60 675; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i32> %val1, %val2 676; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 677} 678 679define <4 x i16> @fun61(<4 x i32> %val1, <4 x i32> %val2, 680 <4 x i16> %val3, <4 x i16> %val4) { 681 %cmp = icmp eq <4 x i32> %val1, %val2 682 %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 683 ret <4 x i16> %sel 684 685; CHECK: fun61 686; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i32> %val1, %val2 687; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 688} 689 690define <4 x i32> @fun62(<4 x i32> %val1, <4 x i32> %val2, 691 <4 x i32> %val3, <4 x i32> %val4) { 692 %cmp = icmp eq <4 x i32> %val1, %val2 693 %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 694 ret <4 x i32> %sel 695 696; CHECK: fun62 697; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i32> %val1, %val2 698; CHECK: cost of 1 for instruction: %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 699} 700 701define <4 x i64> @fun63(<4 x i32> %val1, <4 x i32> %val2, 702 <4 x i64> %val3, <4 x i64> %val4) { 703 %cmp = icmp eq <4 x i32> %val1, %val2 704 %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 705 ret <4 x i64> %sel 706 707; CHECK: fun63 708; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i32> %val1, %val2 709; CHECK: cost of 5 for instruction: %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 710} 711 712define <4 x float> @fun64(<4 x i32> %val1, <4 x i32> %val2, 713 <4 x float> %val3, <4 x float> %val4) { 714 %cmp = icmp eq <4 x i32> %val1, %val2 715 %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 716 ret <4 x float> %sel 717 718; CHECK: fun64 719; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i32> %val1, %val2 720; CHECK: cost of 1 for instruction: %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 721} 722 723define <4 x double> @fun65(<4 x i32> %val1, <4 x i32> %val2, 724 <4 x double> %val3, <4 x double> %val4) { 725 %cmp = icmp eq <4 x i32> %val1, %val2 726 %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 727 ret <4 x double> %sel 728 729; CHECK: fun65 730; CHECK: cost of 1 for instruction: %cmp = icmp eq <4 x i32> %val1, %val2 731; CHECK: cost of 5 for instruction: %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 732} 733 734define <4 x i8> @fun66(<4 x i64> %val1, <4 x i64> %val2, 735 <4 x i8> %val3, <4 x i8> %val4) { 736 %cmp = icmp eq <4 x i64> %val1, %val2 737 %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 738 ret <4 x i8> %sel 739 740; CHECK: fun66 741; CHECK: cost of 2 for instruction: %cmp = icmp eq <4 x i64> %val1, %val2 742; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 743} 744 745define <4 x i16> @fun67(<4 x i64> %val1, <4 x i64> %val2, 746 <4 x i16> %val3, <4 x i16> %val4) { 747 %cmp = icmp eq <4 x i64> %val1, %val2 748 %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 749 ret <4 x i16> %sel 750 751; CHECK: fun67 752; CHECK: cost of 2 for instruction: %cmp = icmp eq <4 x i64> %val1, %val2 753; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 754} 755 756define <4 x i32> @fun68(<4 x i64> %val1, <4 x i64> %val2, 757 <4 x i32> %val3, <4 x i32> %val4) { 758 %cmp = icmp eq <4 x i64> %val1, %val2 759 %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 760 ret <4 x i32> %sel 761 762; CHECK: fun68 763; CHECK: cost of 2 for instruction: %cmp = icmp eq <4 x i64> %val1, %val2 764; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 765} 766 767define <4 x i64> @fun69(<4 x i64> %val1, <4 x i64> %val2, 768 <4 x i64> %val3, <4 x i64> %val4) { 769 %cmp = icmp eq <4 x i64> %val1, %val2 770 %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 771 ret <4 x i64> %sel 772 773; CHECK: fun69 774; CHECK: cost of 2 for instruction: %cmp = icmp eq <4 x i64> %val1, %val2 775; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 776} 777 778define <4 x float> @fun70(<4 x i64> %val1, <4 x i64> %val2, 779 <4 x float> %val3, <4 x float> %val4) { 780 %cmp = icmp eq <4 x i64> %val1, %val2 781 %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 782 ret <4 x float> %sel 783 784; CHECK: fun70 785; CHECK: cost of 2 for instruction: %cmp = icmp eq <4 x i64> %val1, %val2 786; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 787} 788 789define <4 x double> @fun71(<4 x i64> %val1, <4 x i64> %val2, 790 <4 x double> %val3, <4 x double> %val4) { 791 %cmp = icmp eq <4 x i64> %val1, %val2 792 %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 793 ret <4 x double> %sel 794 795; CHECK: fun71 796; CHECK: cost of 2 for instruction: %cmp = icmp eq <4 x i64> %val1, %val2 797; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 798} 799 800define <8 x i8> @fun72(<8 x i8> %val1, <8 x i8> %val2, 801 <8 x i8> %val3, <8 x i8> %val4) { 802 %cmp = icmp eq <8 x i8> %val1, %val2 803 %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 804 ret <8 x i8> %sel 805 806; CHECK: fun72 807; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i8> %val1, %val2 808; CHECK: cost of 1 for instruction: %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 809} 810 811define <8 x i16> @fun73(<8 x i8> %val1, <8 x i8> %val2, 812 <8 x i16> %val3, <8 x i16> %val4) { 813 %cmp = icmp eq <8 x i8> %val1, %val2 814 %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 815 ret <8 x i16> %sel 816 817; CHECK: fun73 818; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i8> %val1, %val2 819; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 820} 821 822define <8 x i32> @fun74(<8 x i8> %val1, <8 x i8> %val2, 823 <8 x i32> %val3, <8 x i32> %val4) { 824 %cmp = icmp eq <8 x i8> %val1, %val2 825 %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 826 ret <8 x i32> %sel 827 828; CHECK: fun74 829; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i8> %val1, %val2 830; CHECK: cost of 7 for instruction: %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 831} 832 833define <8 x i64> @fun75(<8 x i8> %val1, <8 x i8> %val2, 834 <8 x i64> %val3, <8 x i64> %val4) { 835 %cmp = icmp eq <8 x i8> %val1, %val2 836 %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 837 ret <8 x i64> %sel 838 839; CHECK: fun75 840; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i8> %val1, %val2 841; CHECK: cost of 19 for instruction: %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 842} 843 844define <8 x float> @fun76(<8 x i8> %val1, <8 x i8> %val2, 845 <8 x float> %val3, <8 x float> %val4) { 846 %cmp = icmp eq <8 x i8> %val1, %val2 847 %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 848 ret <8 x float> %sel 849 850; CHECK: fun76 851; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i8> %val1, %val2 852; CHECK: cost of 7 for instruction: %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 853} 854 855define <8 x double> @fun77(<8 x i8> %val1, <8 x i8> %val2, 856 <8 x double> %val3, <8 x double> %val4) { 857 %cmp = icmp eq <8 x i8> %val1, %val2 858 %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 859 ret <8 x double> %sel 860 861; CHECK: fun77 862; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i8> %val1, %val2 863; CHECK: cost of 19 for instruction: %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 864} 865 866define <8 x i8> @fun78(<8 x i16> %val1, <8 x i16> %val2, 867 <8 x i8> %val3, <8 x i8> %val4) { 868 %cmp = icmp eq <8 x i16> %val1, %val2 869 %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 870 ret <8 x i8> %sel 871 872; CHECK: fun78 873; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i16> %val1, %val2 874; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 875} 876 877define <8 x i16> @fun79(<8 x i16> %val1, <8 x i16> %val2, 878 <8 x i16> %val3, <8 x i16> %val4) { 879 %cmp = icmp eq <8 x i16> %val1, %val2 880 %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 881 ret <8 x i16> %sel 882 883; CHECK: fun79 884; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i16> %val1, %val2 885; CHECK: cost of 1 for instruction: %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 886} 887 888define <8 x i32> @fun80(<8 x i16> %val1, <8 x i16> %val2, 889 <8 x i32> %val3, <8 x i32> %val4) { 890 %cmp = icmp eq <8 x i16> %val1, %val2 891 %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 892 ret <8 x i32> %sel 893 894; CHECK: fun80 895; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i16> %val1, %val2 896; CHECK: cost of 5 for instruction: %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 897} 898 899define <8 x i64> @fun81(<8 x i16> %val1, <8 x i16> %val2, 900 <8 x i64> %val3, <8 x i64> %val4) { 901 %cmp = icmp eq <8 x i16> %val1, %val2 902 %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 903 ret <8 x i64> %sel 904 905; CHECK: fun81 906; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i16> %val1, %val2 907; CHECK: cost of 15 for instruction: %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 908} 909 910define <8 x float> @fun82(<8 x i16> %val1, <8 x i16> %val2, 911 <8 x float> %val3, <8 x float> %val4) { 912 %cmp = icmp eq <8 x i16> %val1, %val2 913 %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 914 ret <8 x float> %sel 915 916; CHECK: fun82 917; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i16> %val1, %val2 918; CHECK: cost of 5 for instruction: %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 919} 920 921define <8 x double> @fun83(<8 x i16> %val1, <8 x i16> %val2, 922 <8 x double> %val3, <8 x double> %val4) { 923 %cmp = icmp eq <8 x i16> %val1, %val2 924 %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 925 ret <8 x double> %sel 926 927; CHECK: fun83 928; CHECK: cost of 1 for instruction: %cmp = icmp eq <8 x i16> %val1, %val2 929; CHECK: cost of 15 for instruction: %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 930} 931 932define <8 x i8> @fun84(<8 x i32> %val1, <8 x i32> %val2, 933 <8 x i8> %val3, <8 x i8> %val4) { 934 %cmp = icmp eq <8 x i32> %val1, %val2 935 %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 936 ret <8 x i8> %sel 937 938; CHECK: fun84 939; CHECK: cost of 2 for instruction: %cmp = icmp eq <8 x i32> %val1, %val2 940; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 941} 942 943define <8 x i16> @fun85(<8 x i32> %val1, <8 x i32> %val2, 944 <8 x i16> %val3, <8 x i16> %val4) { 945 %cmp = icmp eq <8 x i32> %val1, %val2 946 %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 947 ret <8 x i16> %sel 948 949; CHECK: fun85 950; CHECK: cost of 2 for instruction: %cmp = icmp eq <8 x i32> %val1, %val2 951; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 952} 953 954define <8 x i32> @fun86(<8 x i32> %val1, <8 x i32> %val2, 955 <8 x i32> %val3, <8 x i32> %val4) { 956 %cmp = icmp eq <8 x i32> %val1, %val2 957 %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 958 ret <8 x i32> %sel 959 960; CHECK: fun86 961; CHECK: cost of 2 for instruction: %cmp = icmp eq <8 x i32> %val1, %val2 962; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 963} 964 965define <8 x i64> @fun87(<8 x i32> %val1, <8 x i32> %val2, 966 <8 x i64> %val3, <8 x i64> %val4) { 967 %cmp = icmp eq <8 x i32> %val1, %val2 968 %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 969 ret <8 x i64> %sel 970 971; CHECK: fun87 972; CHECK: cost of 2 for instruction: %cmp = icmp eq <8 x i32> %val1, %val2 973; CHECK: cost of 11 for instruction: %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 974} 975 976define <8 x float> @fun88(<8 x i32> %val1, <8 x i32> %val2, 977 <8 x float> %val3, <8 x float> %val4) { 978 %cmp = icmp eq <8 x i32> %val1, %val2 979 %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 980 ret <8 x float> %sel 981 982; CHECK: fun88 983; CHECK: cost of 2 for instruction: %cmp = icmp eq <8 x i32> %val1, %val2 984; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 985} 986 987define <8 x double> @fun89(<8 x i32> %val1, <8 x i32> %val2, 988 <8 x double> %val3, <8 x double> %val4) { 989 %cmp = icmp eq <8 x i32> %val1, %val2 990 %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 991 ret <8 x double> %sel 992 993; CHECK: fun89 994; CHECK: cost of 2 for instruction: %cmp = icmp eq <8 x i32> %val1, %val2 995; CHECK: cost of 11 for instruction: %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 996} 997 998define <8 x i8> @fun90(<8 x i64> %val1, <8 x i64> %val2, 999 <8 x i8> %val3, <8 x i8> %val4) { 1000 %cmp = icmp eq <8 x i64> %val1, %val2 1001 %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 1002 ret <8 x i8> %sel 1003 1004; CHECK: fun90 1005; CHECK: cost of 4 for instruction: %cmp = icmp eq <8 x i64> %val1, %val2 1006; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 1007} 1008 1009define <8 x i16> @fun91(<8 x i64> %val1, <8 x i64> %val2, 1010 <8 x i16> %val3, <8 x i16> %val4) { 1011 %cmp = icmp eq <8 x i64> %val1, %val2 1012 %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 1013 ret <8 x i16> %sel 1014 1015; CHECK: fun91 1016; CHECK: cost of 4 for instruction: %cmp = icmp eq <8 x i64> %val1, %val2 1017; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 1018} 1019 1020define <8 x i32> @fun92(<8 x i64> %val1, <8 x i64> %val2, 1021 <8 x i32> %val3, <8 x i32> %val4) { 1022 %cmp = icmp eq <8 x i64> %val1, %val2 1023 %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 1024 ret <8 x i32> %sel 1025 1026; CHECK: fun92 1027; CHECK: cost of 4 for instruction: %cmp = icmp eq <8 x i64> %val1, %val2 1028; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 1029} 1030 1031define <8 x i64> @fun93(<8 x i64> %val1, <8 x i64> %val2, 1032 <8 x i64> %val3, <8 x i64> %val4) { 1033 %cmp = icmp eq <8 x i64> %val1, %val2 1034 %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 1035 ret <8 x i64> %sel 1036 1037; CHECK: fun93 1038; CHECK: cost of 4 for instruction: %cmp = icmp eq <8 x i64> %val1, %val2 1039; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 1040} 1041 1042define <8 x float> @fun94(<8 x i64> %val1, <8 x i64> %val2, 1043 <8 x float> %val3, <8 x float> %val4) { 1044 %cmp = icmp eq <8 x i64> %val1, %val2 1045 %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 1046 ret <8 x float> %sel 1047 1048; CHECK: fun94 1049; CHECK: cost of 4 for instruction: %cmp = icmp eq <8 x i64> %val1, %val2 1050; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 1051} 1052 1053define <8 x double> @fun95(<8 x i64> %val1, <8 x i64> %val2, 1054 <8 x double> %val3, <8 x double> %val4) { 1055 %cmp = icmp eq <8 x i64> %val1, %val2 1056 %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 1057 ret <8 x double> %sel 1058 1059; CHECK: fun95 1060; CHECK: cost of 4 for instruction: %cmp = icmp eq <8 x i64> %val1, %val2 1061; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 1062} 1063 1064define <16 x i8> @fun96(<16 x i8> %val1, <16 x i8> %val2, 1065 <16 x i8> %val3, <16 x i8> %val4) { 1066 %cmp = icmp eq <16 x i8> %val1, %val2 1067 %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1068 ret <16 x i8> %sel 1069 1070; CHECK: fun96 1071; CHECK: cost of 1 for instruction: %cmp = icmp eq <16 x i8> %val1, %val2 1072; CHECK: cost of 1 for instruction: %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1073} 1074 1075define <16 x i16> @fun97(<16 x i8> %val1, <16 x i8> %val2, 1076 <16 x i16> %val3, <16 x i16> %val4) { 1077 %cmp = icmp eq <16 x i8> %val1, %val2 1078 %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1079 ret <16 x i16> %sel 1080 1081; CHECK: fun97 1082; CHECK: cost of 1 for instruction: %cmp = icmp eq <16 x i8> %val1, %val2 1083; CHECK: cost of 5 for instruction: %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1084} 1085 1086define <16 x i32> @fun98(<16 x i8> %val1, <16 x i8> %val2, 1087 <16 x i32> %val3, <16 x i32> %val4) { 1088 %cmp = icmp eq <16 x i8> %val1, %val2 1089 %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1090 ret <16 x i32> %sel 1091 1092; CHECK: fun98 1093; CHECK: cost of 1 for instruction: %cmp = icmp eq <16 x i8> %val1, %val2 1094; CHECK: cost of 15 for instruction: %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1095} 1096 1097define <16 x i64> @fun99(<16 x i8> %val1, <16 x i8> %val2, 1098 <16 x i64> %val3, <16 x i64> %val4) { 1099 %cmp = icmp eq <16 x i8> %val1, %val2 1100 %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1101 ret <16 x i64> %sel 1102 1103; CHECK: fun99 1104; CHECK: cost of 1 for instruction: %cmp = icmp eq <16 x i8> %val1, %val2 1105; CHECK: cost of 39 for instruction: %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1106} 1107 1108define <16 x float> @fun100(<16 x i8> %val1, <16 x i8> %val2, 1109 <16 x float> %val3, <16 x float> %val4) { 1110 %cmp = icmp eq <16 x i8> %val1, %val2 1111 %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1112 ret <16 x float> %sel 1113 1114; CHECK: fun100 1115; CHECK: cost of 1 for instruction: %cmp = icmp eq <16 x i8> %val1, %val2 1116; CHECK: cost of 15 for instruction: %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1117} 1118 1119define <16 x double> @fun101(<16 x i8> %val1, <16 x i8> %val2, 1120 <16 x double> %val3, <16 x double> %val4) { 1121 %cmp = icmp eq <16 x i8> %val1, %val2 1122 %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1123 ret <16 x double> %sel 1124 1125; CHECK: fun101 1126; CHECK: cost of 1 for instruction: %cmp = icmp eq <16 x i8> %val1, %val2 1127; CHECK: cost of 39 for instruction: %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1128} 1129 1130define <16 x i8> @fun102(<16 x i16> %val1, <16 x i16> %val2, 1131 <16 x i8> %val3, <16 x i8> %val4) { 1132 %cmp = icmp eq <16 x i16> %val1, %val2 1133 %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1134 ret <16 x i8> %sel 1135 1136; CHECK: fun102 1137; CHECK: cost of 2 for instruction: %cmp = icmp eq <16 x i16> %val1, %val2 1138; CHECK: cost of 2 for instruction: %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1139} 1140 1141define <16 x i16> @fun103(<16 x i16> %val1, <16 x i16> %val2, 1142 <16 x i16> %val3, <16 x i16> %val4) { 1143 %cmp = icmp eq <16 x i16> %val1, %val2 1144 %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1145 ret <16 x i16> %sel 1146 1147; CHECK: fun103 1148; CHECK: cost of 2 for instruction: %cmp = icmp eq <16 x i16> %val1, %val2 1149; CHECK: cost of 2 for instruction: %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1150} 1151 1152define <16 x i32> @fun104(<16 x i16> %val1, <16 x i16> %val2, 1153 <16 x i32> %val3, <16 x i32> %val4) { 1154 %cmp = icmp eq <16 x i16> %val1, %val2 1155 %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1156 ret <16 x i32> %sel 1157 1158; CHECK: fun104 1159; CHECK: cost of 2 for instruction: %cmp = icmp eq <16 x i16> %val1, %val2 1160; CHECK: cost of 11 for instruction: %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1161} 1162 1163define <16 x i64> @fun105(<16 x i16> %val1, <16 x i16> %val2, 1164 <16 x i64> %val3, <16 x i64> %val4) { 1165 %cmp = icmp eq <16 x i16> %val1, %val2 1166 %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1167 ret <16 x i64> %sel 1168 1169; CHECK: fun105 1170; CHECK: cost of 2 for instruction: %cmp = icmp eq <16 x i16> %val1, %val2 1171; CHECK: cost of 31 for instruction: %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1172} 1173 1174define <16 x float> @fun106(<16 x i16> %val1, <16 x i16> %val2, 1175 <16 x float> %val3, <16 x float> %val4) { 1176 %cmp = icmp eq <16 x i16> %val1, %val2 1177 %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1178 ret <16 x float> %sel 1179 1180; CHECK: fun106 1181; CHECK: cost of 2 for instruction: %cmp = icmp eq <16 x i16> %val1, %val2 1182; CHECK: cost of 11 for instruction: %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1183} 1184 1185define <16 x double> @fun107(<16 x i16> %val1, <16 x i16> %val2, 1186 <16 x double> %val3, <16 x double> %val4) { 1187 %cmp = icmp eq <16 x i16> %val1, %val2 1188 %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1189 ret <16 x double> %sel 1190 1191; CHECK: fun107 1192; CHECK: cost of 2 for instruction: %cmp = icmp eq <16 x i16> %val1, %val2 1193; CHECK: cost of 31 for instruction: %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1194} 1195 1196define <16 x i8> @fun108(<16 x i32> %val1, <16 x i32> %val2, 1197 <16 x i8> %val3, <16 x i8> %val4) { 1198 %cmp = icmp eq <16 x i32> %val1, %val2 1199 %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1200 ret <16 x i8> %sel 1201 1202; CHECK: fun108 1203; CHECK: cost of 4 for instruction: %cmp = icmp eq <16 x i32> %val1, %val2 1204; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1205} 1206 1207define <16 x i16> @fun109(<16 x i32> %val1, <16 x i32> %val2, 1208 <16 x i16> %val3, <16 x i16> %val4) { 1209 %cmp = icmp eq <16 x i32> %val1, %val2 1210 %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1211 ret <16 x i16> %sel 1212 1213; CHECK: fun109 1214; CHECK: cost of 4 for instruction: %cmp = icmp eq <16 x i32> %val1, %val2 1215; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1216} 1217 1218define <16 x i32> @fun110(<16 x i32> %val1, <16 x i32> %val2, 1219 <16 x i32> %val3, <16 x i32> %val4) { 1220 %cmp = icmp eq <16 x i32> %val1, %val2 1221 %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1222 ret <16 x i32> %sel 1223 1224; CHECK: fun110 1225; CHECK: cost of 4 for instruction: %cmp = icmp eq <16 x i32> %val1, %val2 1226; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1227} 1228 1229define <16 x i64> @fun111(<16 x i32> %val1, <16 x i32> %val2, 1230 <16 x i64> %val3, <16 x i64> %val4) { 1231 %cmp = icmp eq <16 x i32> %val1, %val2 1232 %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1233 ret <16 x i64> %sel 1234 1235; CHECK: fun111 1236; CHECK: cost of 4 for instruction: %cmp = icmp eq <16 x i32> %val1, %val2 1237; CHECK: cost of 23 for instruction: %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1238} 1239 1240define <16 x float> @fun112(<16 x i32> %val1, <16 x i32> %val2, 1241 <16 x float> %val3, <16 x float> %val4) { 1242 %cmp = icmp eq <16 x i32> %val1, %val2 1243 %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1244 ret <16 x float> %sel 1245 1246; CHECK: fun112 1247; CHECK: cost of 4 for instruction: %cmp = icmp eq <16 x i32> %val1, %val2 1248; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1249} 1250 1251define <16 x double> @fun113(<16 x i32> %val1, <16 x i32> %val2, 1252 <16 x double> %val3, <16 x double> %val4) { 1253 %cmp = icmp eq <16 x i32> %val1, %val2 1254 %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1255 ret <16 x double> %sel 1256 1257; CHECK: fun113 1258; CHECK: cost of 4 for instruction: %cmp = icmp eq <16 x i32> %val1, %val2 1259; CHECK: cost of 23 for instruction: %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1260} 1261 1262define <16 x i8> @fun114(<16 x i64> %val1, <16 x i64> %val2, 1263 <16 x i8> %val3, <16 x i8> %val4) { 1264 %cmp = icmp eq <16 x i64> %val1, %val2 1265 %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1266 ret <16 x i8> %sel 1267 1268; CHECK: fun114 1269; CHECK: cost of 8 for instruction: %cmp = icmp eq <16 x i64> %val1, %val2 1270; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1271} 1272 1273define <16 x i16> @fun115(<16 x i64> %val1, <16 x i64> %val2, 1274 <16 x i16> %val3, <16 x i16> %val4) { 1275 %cmp = icmp eq <16 x i64> %val1, %val2 1276 %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1277 ret <16 x i16> %sel 1278 1279; CHECK: fun115 1280; CHECK: cost of 8 for instruction: %cmp = icmp eq <16 x i64> %val1, %val2 1281; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1282} 1283 1284define <16 x i32> @fun116(<16 x i64> %val1, <16 x i64> %val2, 1285 <16 x i32> %val3, <16 x i32> %val4) { 1286 %cmp = icmp eq <16 x i64> %val1, %val2 1287 %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1288 ret <16 x i32> %sel 1289 1290; CHECK: fun116 1291; CHECK: cost of 8 for instruction: %cmp = icmp eq <16 x i64> %val1, %val2 1292; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1293} 1294 1295define <16 x i64> @fun117(<16 x i64> %val1, <16 x i64> %val2, 1296 <16 x i64> %val3, <16 x i64> %val4) { 1297 %cmp = icmp eq <16 x i64> %val1, %val2 1298 %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1299 ret <16 x i64> %sel 1300 1301; CHECK: fun117 1302; CHECK: cost of 8 for instruction: %cmp = icmp eq <16 x i64> %val1, %val2 1303; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1304} 1305 1306define <16 x float> @fun118(<16 x i64> %val1, <16 x i64> %val2, 1307 <16 x float> %val3, <16 x float> %val4) { 1308 %cmp = icmp eq <16 x i64> %val1, %val2 1309 %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1310 ret <16 x float> %sel 1311 1312; CHECK: fun118 1313; CHECK: cost of 8 for instruction: %cmp = icmp eq <16 x i64> %val1, %val2 1314; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1315} 1316 1317define <16 x double> @fun119(<16 x i64> %val1, <16 x i64> %val2, 1318 <16 x double> %val3, <16 x double> %val4) { 1319 %cmp = icmp eq <16 x i64> %val1, %val2 1320 %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1321 ret <16 x double> %sel 1322 1323; CHECK: fun119 1324; CHECK: cost of 8 for instruction: %cmp = icmp eq <16 x i64> %val1, %val2 1325; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1326} 1327 1328define i8 @fun120(float %val1, float %val2, 1329 i8 %val3, i8 %val4) { 1330 %cmp = fcmp ogt float %val1, %val2 1331 %sel = select i1 %cmp, i8 %val3, i8 %val4 1332 ret i8 %sel 1333 1334; CHECK: fun120 1335; CHECK: cost of 1 for instruction: %cmp = fcmp ogt float %val1, %val2 1336; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i8 %val3, i8 %val4 1337} 1338 1339define i16 @fun121(float %val1, float %val2, 1340 i16 %val3, i16 %val4) { 1341 %cmp = fcmp ogt float %val1, %val2 1342 %sel = select i1 %cmp, i16 %val3, i16 %val4 1343 ret i16 %sel 1344 1345; CHECK: fun121 1346; CHECK: cost of 1 for instruction: %cmp = fcmp ogt float %val1, %val2 1347; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i16 %val3, i16 %val4 1348} 1349 1350define i32 @fun122(float %val1, float %val2, 1351 i32 %val3, i32 %val4) { 1352 %cmp = fcmp ogt float %val1, %val2 1353 %sel = select i1 %cmp, i32 %val3, i32 %val4 1354 ret i32 %sel 1355 1356; CHECK: fun122 1357; CHECK: cost of 1 for instruction: %cmp = fcmp ogt float %val1, %val2 1358; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i32 %val3, i32 %val4 1359} 1360 1361define i64 @fun123(float %val1, float %val2, 1362 i64 %val3, i64 %val4) { 1363 %cmp = fcmp ogt float %val1, %val2 1364 %sel = select i1 %cmp, i64 %val3, i64 %val4 1365 ret i64 %sel 1366 1367; CHECK: fun123 1368; CHECK: cost of 1 for instruction: %cmp = fcmp ogt float %val1, %val2 1369; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i64 %val3, i64 %val4 1370} 1371 1372define float @fun124(float %val1, float %val2, 1373 float %val3, float %val4) { 1374 %cmp = fcmp ogt float %val1, %val2 1375 %sel = select i1 %cmp, float %val3, float %val4 1376 ret float %sel 1377 1378; CHECK: fun124 1379; CHECK: cost of 1 for instruction: %cmp = fcmp ogt float %val1, %val2 1380; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, float %val3, float %val4 1381} 1382 1383define double @fun125(float %val1, float %val2, 1384 double %val3, double %val4) { 1385 %cmp = fcmp ogt float %val1, %val2 1386 %sel = select i1 %cmp, double %val3, double %val4 1387 ret double %sel 1388 1389; CHECK: fun125 1390; CHECK: cost of 1 for instruction: %cmp = fcmp ogt float %val1, %val2 1391; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, double %val3, double %val4 1392} 1393 1394define i8 @fun126(double %val1, double %val2, 1395 i8 %val3, i8 %val4) { 1396 %cmp = fcmp ogt double %val1, %val2 1397 %sel = select i1 %cmp, i8 %val3, i8 %val4 1398 ret i8 %sel 1399 1400; CHECK: fun126 1401; CHECK: cost of 1 for instruction: %cmp = fcmp ogt double %val1, %val2 1402; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i8 %val3, i8 %val4 1403} 1404 1405define i16 @fun127(double %val1, double %val2, 1406 i16 %val3, i16 %val4) { 1407 %cmp = fcmp ogt double %val1, %val2 1408 %sel = select i1 %cmp, i16 %val3, i16 %val4 1409 ret i16 %sel 1410 1411; CHECK: fun127 1412; CHECK: cost of 1 for instruction: %cmp = fcmp ogt double %val1, %val2 1413; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i16 %val3, i16 %val4 1414} 1415 1416define i32 @fun128(double %val1, double %val2, 1417 i32 %val3, i32 %val4) { 1418 %cmp = fcmp ogt double %val1, %val2 1419 %sel = select i1 %cmp, i32 %val3, i32 %val4 1420 ret i32 %sel 1421 1422; CHECK: fun128 1423; CHECK: cost of 1 for instruction: %cmp = fcmp ogt double %val1, %val2 1424; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i32 %val3, i32 %val4 1425} 1426 1427define i64 @fun129(double %val1, double %val2, 1428 i64 %val3, i64 %val4) { 1429 %cmp = fcmp ogt double %val1, %val2 1430 %sel = select i1 %cmp, i64 %val3, i64 %val4 1431 ret i64 %sel 1432 1433; CHECK: fun129 1434; CHECK: cost of 1 for instruction: %cmp = fcmp ogt double %val1, %val2 1435; CHECK: cost of 1 for instruction: %sel = select i1 %cmp, i64 %val3, i64 %val4 1436} 1437 1438define float @fun130(double %val1, double %val2, 1439 float %val3, float %val4) { 1440 %cmp = fcmp ogt double %val1, %val2 1441 %sel = select i1 %cmp, float %val3, float %val4 1442 ret float %sel 1443 1444; CHECK: fun130 1445; CHECK: cost of 1 for instruction: %cmp = fcmp ogt double %val1, %val2 1446; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, float %val3, float %val4 1447} 1448 1449define double @fun131(double %val1, double %val2, 1450 double %val3, double %val4) { 1451 %cmp = fcmp ogt double %val1, %val2 1452 %sel = select i1 %cmp, double %val3, double %val4 1453 ret double %sel 1454 1455; CHECK: fun131 1456; CHECK: cost of 1 for instruction: %cmp = fcmp ogt double %val1, %val2 1457; CHECK: cost of 4 for instruction: %sel = select i1 %cmp, double %val3, double %val4 1458} 1459 1460define <2 x i8> @fun132(<2 x float> %val1, <2 x float> %val2, 1461 <2 x i8> %val3, <2 x i8> %val4) { 1462 %cmp = fcmp ogt <2 x float> %val1, %val2 1463 %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 1464 ret <2 x i8> %sel 1465 1466; CHECK: fun132 1467; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <2 x float> %val1, %val2 1468; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 1469} 1470 1471define <2 x i16> @fun133(<2 x float> %val1, <2 x float> %val2, 1472 <2 x i16> %val3, <2 x i16> %val4) { 1473 %cmp = fcmp ogt <2 x float> %val1, %val2 1474 %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 1475 ret <2 x i16> %sel 1476 1477; CHECK: fun133 1478; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <2 x float> %val1, %val2 1479; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 1480} 1481 1482define <2 x i32> @fun134(<2 x float> %val1, <2 x float> %val2, 1483 <2 x i32> %val3, <2 x i32> %val4) { 1484 %cmp = fcmp ogt <2 x float> %val1, %val2 1485 %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 1486 ret <2 x i32> %sel 1487 1488; CHECK: fun134 1489; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <2 x float> %val1, %val2 1490; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 1491} 1492 1493define <2 x i64> @fun135(<2 x float> %val1, <2 x float> %val2, 1494 <2 x i64> %val3, <2 x i64> %val4) { 1495 %cmp = fcmp ogt <2 x float> %val1, %val2 1496 %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 1497 ret <2 x i64> %sel 1498 1499; CHECK: fun135 1500; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <2 x float> %val1, %val2 1501; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 1502} 1503 1504define <2 x float> @fun136(<2 x float> %val1, <2 x float> %val2, 1505 <2 x float> %val3, <2 x float> %val4) { 1506 %cmp = fcmp ogt <2 x float> %val1, %val2 1507 %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 1508 ret <2 x float> %sel 1509 1510; CHECK: fun136 1511; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <2 x float> %val1, %val2 1512; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 1513} 1514 1515define <2 x double> @fun137(<2 x float> %val1, <2 x float> %val2, 1516 <2 x double> %val3, <2 x double> %val4) { 1517 %cmp = fcmp ogt <2 x float> %val1, %val2 1518 %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 1519 ret <2 x double> %sel 1520 1521; CHECK: fun137 1522; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <2 x float> %val1, %val2 1523; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 1524} 1525 1526define <2 x i8> @fun138(<2 x double> %val1, <2 x double> %val2, 1527 <2 x i8> %val3, <2 x i8> %val4) { 1528 %cmp = fcmp ogt <2 x double> %val1, %val2 1529 %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 1530 ret <2 x i8> %sel 1531 1532; CHECK: fun138 1533; CHECK: cost of 1 for instruction: %cmp = fcmp ogt <2 x double> %val1, %val2 1534; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i8> %val3, <2 x i8> %val4 1535} 1536 1537define <2 x i16> @fun139(<2 x double> %val1, <2 x double> %val2, 1538 <2 x i16> %val3, <2 x i16> %val4) { 1539 %cmp = fcmp ogt <2 x double> %val1, %val2 1540 %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 1541 ret <2 x i16> %sel 1542 1543; CHECK: fun139 1544; CHECK: cost of 1 for instruction: %cmp = fcmp ogt <2 x double> %val1, %val2 1545; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i16> %val3, <2 x i16> %val4 1546} 1547 1548define <2 x i32> @fun140(<2 x double> %val1, <2 x double> %val2, 1549 <2 x i32> %val3, <2 x i32> %val4) { 1550 %cmp = fcmp ogt <2 x double> %val1, %val2 1551 %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 1552 ret <2 x i32> %sel 1553 1554; CHECK: fun140 1555; CHECK: cost of 1 for instruction: %cmp = fcmp ogt <2 x double> %val1, %val2 1556; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x i32> %val3, <2 x i32> %val4 1557} 1558 1559define <2 x i64> @fun141(<2 x double> %val1, <2 x double> %val2, 1560 <2 x i64> %val3, <2 x i64> %val4) { 1561 %cmp = fcmp ogt <2 x double> %val1, %val2 1562 %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 1563 ret <2 x i64> %sel 1564 1565; CHECK: fun141 1566; CHECK: cost of 1 for instruction: %cmp = fcmp ogt <2 x double> %val1, %val2 1567; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x i64> %val3, <2 x i64> %val4 1568} 1569 1570define <2 x float> @fun142(<2 x double> %val1, <2 x double> %val2, 1571 <2 x float> %val3, <2 x float> %val4) { 1572 %cmp = fcmp ogt <2 x double> %val1, %val2 1573 %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 1574 ret <2 x float> %sel 1575 1576; CHECK: fun142 1577; CHECK: cost of 1 for instruction: %cmp = fcmp ogt <2 x double> %val1, %val2 1578; CHECK: cost of 2 for instruction: %sel = select <2 x i1> %cmp, <2 x float> %val3, <2 x float> %val4 1579} 1580 1581define <2 x double> @fun143(<2 x double> %val1, <2 x double> %val2, 1582 <2 x double> %val3, <2 x double> %val4) { 1583 %cmp = fcmp ogt <2 x double> %val1, %val2 1584 %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 1585 ret <2 x double> %sel 1586 1587; CHECK: fun143 1588; CHECK: cost of 1 for instruction: %cmp = fcmp ogt <2 x double> %val1, %val2 1589; CHECK: cost of 1 for instruction: %sel = select <2 x i1> %cmp, <2 x double> %val3, <2 x double> %val4 1590} 1591 1592define <4 x i8> @fun144(<4 x float> %val1, <4 x float> %val2, 1593 <4 x i8> %val3, <4 x i8> %val4) { 1594 %cmp = fcmp ogt <4 x float> %val1, %val2 1595 %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 1596 ret <4 x i8> %sel 1597 1598; CHECK: fun144 1599; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <4 x float> %val1, %val2 1600; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 1601} 1602 1603define <4 x i16> @fun145(<4 x float> %val1, <4 x float> %val2, 1604 <4 x i16> %val3, <4 x i16> %val4) { 1605 %cmp = fcmp ogt <4 x float> %val1, %val2 1606 %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 1607 ret <4 x i16> %sel 1608 1609; CHECK: fun145 1610; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <4 x float> %val1, %val2 1611; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 1612} 1613 1614define <4 x i32> @fun146(<4 x float> %val1, <4 x float> %val2, 1615 <4 x i32> %val3, <4 x i32> %val4) { 1616 %cmp = fcmp ogt <4 x float> %val1, %val2 1617 %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 1618 ret <4 x i32> %sel 1619 1620; CHECK: fun146 1621; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <4 x float> %val1, %val2 1622; CHECK: cost of 1 for instruction: %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 1623} 1624 1625define <4 x i64> @fun147(<4 x float> %val1, <4 x float> %val2, 1626 <4 x i64> %val3, <4 x i64> %val4) { 1627 %cmp = fcmp ogt <4 x float> %val1, %val2 1628 %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 1629 ret <4 x i64> %sel 1630 1631; CHECK: fun147 1632; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <4 x float> %val1, %val2 1633; CHECK: cost of 5 for instruction: %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 1634} 1635 1636define <4 x float> @fun148(<4 x float> %val1, <4 x float> %val2, 1637 <4 x float> %val3, <4 x float> %val4) { 1638 %cmp = fcmp ogt <4 x float> %val1, %val2 1639 %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 1640 ret <4 x float> %sel 1641 1642; CHECK: fun148 1643; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <4 x float> %val1, %val2 1644; CHECK: cost of 1 for instruction: %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 1645} 1646 1647define <4 x double> @fun149(<4 x float> %val1, <4 x float> %val2, 1648 <4 x double> %val3, <4 x double> %val4) { 1649 %cmp = fcmp ogt <4 x float> %val1, %val2 1650 %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 1651 ret <4 x double> %sel 1652 1653; CHECK: fun149 1654; CHECK: cost of 10 for instruction: %cmp = fcmp ogt <4 x float> %val1, %val2 1655; CHECK: cost of 5 for instruction: %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 1656} 1657 1658define <4 x i8> @fun150(<4 x double> %val1, <4 x double> %val2, 1659 <4 x i8> %val3, <4 x i8> %val4) { 1660 %cmp = fcmp ogt <4 x double> %val1, %val2 1661 %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 1662 ret <4 x i8> %sel 1663 1664; CHECK: fun150 1665; CHECK: cost of 2 for instruction: %cmp = fcmp ogt <4 x double> %val1, %val2 1666; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i8> %val3, <4 x i8> %val4 1667} 1668 1669define <4 x i16> @fun151(<4 x double> %val1, <4 x double> %val2, 1670 <4 x i16> %val3, <4 x i16> %val4) { 1671 %cmp = fcmp ogt <4 x double> %val1, %val2 1672 %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 1673 ret <4 x i16> %sel 1674 1675; CHECK: fun151 1676; CHECK: cost of 2 for instruction: %cmp = fcmp ogt <4 x double> %val1, %val2 1677; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i16> %val3, <4 x i16> %val4 1678} 1679 1680define <4 x i32> @fun152(<4 x double> %val1, <4 x double> %val2, 1681 <4 x i32> %val3, <4 x i32> %val4) { 1682 %cmp = fcmp ogt <4 x double> %val1, %val2 1683 %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 1684 ret <4 x i32> %sel 1685 1686; CHECK: fun152 1687; CHECK: cost of 2 for instruction: %cmp = fcmp ogt <4 x double> %val1, %val2 1688; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i32> %val3, <4 x i32> %val4 1689} 1690 1691define <4 x i64> @fun153(<4 x double> %val1, <4 x double> %val2, 1692 <4 x i64> %val3, <4 x i64> %val4) { 1693 %cmp = fcmp ogt <4 x double> %val1, %val2 1694 %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 1695 ret <4 x i64> %sel 1696 1697; CHECK: fun153 1698; CHECK: cost of 2 for instruction: %cmp = fcmp ogt <4 x double> %val1, %val2 1699; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x i64> %val3, <4 x i64> %val4 1700} 1701 1702define <4 x float> @fun154(<4 x double> %val1, <4 x double> %val2, 1703 <4 x float> %val3, <4 x float> %val4) { 1704 %cmp = fcmp ogt <4 x double> %val1, %val2 1705 %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 1706 ret <4 x float> %sel 1707 1708; CHECK: fun154 1709; CHECK: cost of 2 for instruction: %cmp = fcmp ogt <4 x double> %val1, %val2 1710; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x float> %val3, <4 x float> %val4 1711} 1712 1713define <4 x double> @fun155(<4 x double> %val1, <4 x double> %val2, 1714 <4 x double> %val3, <4 x double> %val4) { 1715 %cmp = fcmp ogt <4 x double> %val1, %val2 1716 %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 1717 ret <4 x double> %sel 1718 1719; CHECK: fun155 1720; CHECK: cost of 2 for instruction: %cmp = fcmp ogt <4 x double> %val1, %val2 1721; CHECK: cost of 2 for instruction: %sel = select <4 x i1> %cmp, <4 x double> %val3, <4 x double> %val4 1722} 1723 1724define <8 x i8> @fun156(<8 x float> %val1, <8 x float> %val2, 1725 <8 x i8> %val3, <8 x i8> %val4) { 1726 %cmp = fcmp ogt <8 x float> %val1, %val2 1727 %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 1728 ret <8 x i8> %sel 1729 1730; CHECK: fun156 1731; CHECK: cost of 20 for instruction: %cmp = fcmp ogt <8 x float> %val1, %val2 1732; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 1733} 1734 1735define <8 x i16> @fun157(<8 x float> %val1, <8 x float> %val2, 1736 <8 x i16> %val3, <8 x i16> %val4) { 1737 %cmp = fcmp ogt <8 x float> %val1, %val2 1738 %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 1739 ret <8 x i16> %sel 1740 1741; CHECK: fun157 1742; CHECK: cost of 20 for instruction: %cmp = fcmp ogt <8 x float> %val1, %val2 1743; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 1744} 1745 1746define <8 x i32> @fun158(<8 x float> %val1, <8 x float> %val2, 1747 <8 x i32> %val3, <8 x i32> %val4) { 1748 %cmp = fcmp ogt <8 x float> %val1, %val2 1749 %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 1750 ret <8 x i32> %sel 1751 1752; CHECK: fun158 1753; CHECK: cost of 20 for instruction: %cmp = fcmp ogt <8 x float> %val1, %val2 1754; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 1755} 1756 1757define <8 x i64> @fun159(<8 x float> %val1, <8 x float> %val2, 1758 <8 x i64> %val3, <8 x i64> %val4) { 1759 %cmp = fcmp ogt <8 x float> %val1, %val2 1760 %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 1761 ret <8 x i64> %sel 1762 1763; CHECK: fun159 1764; CHECK: cost of 20 for instruction: %cmp = fcmp ogt <8 x float> %val1, %val2 1765; CHECK: cost of 11 for instruction: %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 1766} 1767 1768define <8 x float> @fun160(<8 x float> %val1, <8 x float> %val2, 1769 <8 x float> %val3, <8 x float> %val4) { 1770 %cmp = fcmp ogt <8 x float> %val1, %val2 1771 %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 1772 ret <8 x float> %sel 1773 1774; CHECK: fun160 1775; CHECK: cost of 20 for instruction: %cmp = fcmp ogt <8 x float> %val1, %val2 1776; CHECK: cost of 2 for instruction: %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 1777} 1778 1779define <8 x double> @fun161(<8 x float> %val1, <8 x float> %val2, 1780 <8 x double> %val3, <8 x double> %val4) { 1781 %cmp = fcmp ogt <8 x float> %val1, %val2 1782 %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 1783 ret <8 x double> %sel 1784 1785; CHECK: fun161 1786; CHECK: cost of 20 for instruction: %cmp = fcmp ogt <8 x float> %val1, %val2 1787; CHECK: cost of 11 for instruction: %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 1788} 1789 1790define <8 x i8> @fun162(<8 x double> %val1, <8 x double> %val2, 1791 <8 x i8> %val3, <8 x i8> %val4) { 1792 %cmp = fcmp ogt <8 x double> %val1, %val2 1793 %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 1794 ret <8 x i8> %sel 1795 1796; CHECK: fun162 1797; CHECK: cost of 4 for instruction: %cmp = fcmp ogt <8 x double> %val1, %val2 1798; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i8> %val3, <8 x i8> %val4 1799} 1800 1801define <8 x i16> @fun163(<8 x double> %val1, <8 x double> %val2, 1802 <8 x i16> %val3, <8 x i16> %val4) { 1803 %cmp = fcmp ogt <8 x double> %val1, %val2 1804 %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 1805 ret <8 x i16> %sel 1806 1807; CHECK: fun163 1808; CHECK: cost of 4 for instruction: %cmp = fcmp ogt <8 x double> %val1, %val2 1809; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i16> %val3, <8 x i16> %val4 1810} 1811 1812define <8 x i32> @fun164(<8 x double> %val1, <8 x double> %val2, 1813 <8 x i32> %val3, <8 x i32> %val4) { 1814 %cmp = fcmp ogt <8 x double> %val1, %val2 1815 %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 1816 ret <8 x i32> %sel 1817 1818; CHECK: fun164 1819; CHECK: cost of 4 for instruction: %cmp = fcmp ogt <8 x double> %val1, %val2 1820; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i32> %val3, <8 x i32> %val4 1821} 1822 1823define <8 x i64> @fun165(<8 x double> %val1, <8 x double> %val2, 1824 <8 x i64> %val3, <8 x i64> %val4) { 1825 %cmp = fcmp ogt <8 x double> %val1, %val2 1826 %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 1827 ret <8 x i64> %sel 1828 1829; CHECK: fun165 1830; CHECK: cost of 4 for instruction: %cmp = fcmp ogt <8 x double> %val1, %val2 1831; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x i64> %val3, <8 x i64> %val4 1832} 1833 1834define <8 x float> @fun166(<8 x double> %val1, <8 x double> %val2, 1835 <8 x float> %val3, <8 x float> %val4) { 1836 %cmp = fcmp ogt <8 x double> %val1, %val2 1837 %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 1838 ret <8 x float> %sel 1839 1840; CHECK: fun166 1841; CHECK: cost of 4 for instruction: %cmp = fcmp ogt <8 x double> %val1, %val2 1842; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x float> %val3, <8 x float> %val4 1843} 1844 1845define <8 x double> @fun167(<8 x double> %val1, <8 x double> %val2, 1846 <8 x double> %val3, <8 x double> %val4) { 1847 %cmp = fcmp ogt <8 x double> %val1, %val2 1848 %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 1849 ret <8 x double> %sel 1850 1851; CHECK: fun167 1852; CHECK: cost of 4 for instruction: %cmp = fcmp ogt <8 x double> %val1, %val2 1853; CHECK: cost of 4 for instruction: %sel = select <8 x i1> %cmp, <8 x double> %val3, <8 x double> %val4 1854} 1855 1856define <16 x i8> @fun168(<16 x float> %val1, <16 x float> %val2, 1857 <16 x i8> %val3, <16 x i8> %val4) { 1858 %cmp = fcmp ogt <16 x float> %val1, %val2 1859 %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1860 ret <16 x i8> %sel 1861 1862; CHECK: fun168 1863; CHECK: cost of 40 for instruction: %cmp = fcmp ogt <16 x float> %val1, %val2 1864; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1865} 1866 1867define <16 x i16> @fun169(<16 x float> %val1, <16 x float> %val2, 1868 <16 x i16> %val3, <16 x i16> %val4) { 1869 %cmp = fcmp ogt <16 x float> %val1, %val2 1870 %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1871 ret <16 x i16> %sel 1872 1873; CHECK: fun169 1874; CHECK: cost of 40 for instruction: %cmp = fcmp ogt <16 x float> %val1, %val2 1875; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1876} 1877 1878define <16 x i32> @fun170(<16 x float> %val1, <16 x float> %val2, 1879 <16 x i32> %val3, <16 x i32> %val4) { 1880 %cmp = fcmp ogt <16 x float> %val1, %val2 1881 %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1882 ret <16 x i32> %sel 1883 1884; CHECK: fun170 1885; CHECK: cost of 40 for instruction: %cmp = fcmp ogt <16 x float> %val1, %val2 1886; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1887} 1888 1889define <16 x i64> @fun171(<16 x float> %val1, <16 x float> %val2, 1890 <16 x i64> %val3, <16 x i64> %val4) { 1891 %cmp = fcmp ogt <16 x float> %val1, %val2 1892 %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1893 ret <16 x i64> %sel 1894 1895; CHECK: fun171 1896; CHECK: cost of 40 for instruction: %cmp = fcmp ogt <16 x float> %val1, %val2 1897; CHECK: cost of 23 for instruction: %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1898} 1899 1900define <16 x float> @fun172(<16 x float> %val1, <16 x float> %val2, 1901 <16 x float> %val3, <16 x float> %val4) { 1902 %cmp = fcmp ogt <16 x float> %val1, %val2 1903 %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1904 ret <16 x float> %sel 1905 1906; CHECK: fun172 1907; CHECK: cost of 40 for instruction: %cmp = fcmp ogt <16 x float> %val1, %val2 1908; CHECK: cost of 4 for instruction: %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1909} 1910 1911define <16 x double> @fun173(<16 x float> %val1, <16 x float> %val2, 1912 <16 x double> %val3, <16 x double> %val4) { 1913 %cmp = fcmp ogt <16 x float> %val1, %val2 1914 %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1915 ret <16 x double> %sel 1916 1917; CHECK: fun173 1918; CHECK: cost of 40 for instruction: %cmp = fcmp ogt <16 x float> %val1, %val2 1919; CHECK: cost of 23 for instruction: %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1920} 1921 1922define <16 x i8> @fun174(<16 x double> %val1, <16 x double> %val2, 1923 <16 x i8> %val3, <16 x i8> %val4) { 1924 %cmp = fcmp ogt <16 x double> %val1, %val2 1925 %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1926 ret <16 x i8> %sel 1927 1928; CHECK: fun174 1929; CHECK: cost of 8 for instruction: %cmp = fcmp ogt <16 x double> %val1, %val2 1930; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i8> %val3, <16 x i8> %val4 1931} 1932 1933define <16 x i16> @fun175(<16 x double> %val1, <16 x double> %val2, 1934 <16 x i16> %val3, <16 x i16> %val4) { 1935 %cmp = fcmp ogt <16 x double> %val1, %val2 1936 %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1937 ret <16 x i16> %sel 1938 1939; CHECK: fun175 1940; CHECK: cost of 8 for instruction: %cmp = fcmp ogt <16 x double> %val1, %val2 1941; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i16> %val3, <16 x i16> %val4 1942} 1943 1944define <16 x i32> @fun176(<16 x double> %val1, <16 x double> %val2, 1945 <16 x i32> %val3, <16 x i32> %val4) { 1946 %cmp = fcmp ogt <16 x double> %val1, %val2 1947 %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1948 ret <16 x i32> %sel 1949 1950; CHECK: fun176 1951; CHECK: cost of 8 for instruction: %cmp = fcmp ogt <16 x double> %val1, %val2 1952; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i32> %val3, <16 x i32> %val4 1953} 1954 1955define <16 x i64> @fun177(<16 x double> %val1, <16 x double> %val2, 1956 <16 x i64> %val3, <16 x i64> %val4) { 1957 %cmp = fcmp ogt <16 x double> %val1, %val2 1958 %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1959 ret <16 x i64> %sel 1960 1961; CHECK: fun177 1962; CHECK: cost of 8 for instruction: %cmp = fcmp ogt <16 x double> %val1, %val2 1963; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x i64> %val3, <16 x i64> %val4 1964} 1965 1966define <16 x float> @fun178(<16 x double> %val1, <16 x double> %val2, 1967 <16 x float> %val3, <16 x float> %val4) { 1968 %cmp = fcmp ogt <16 x double> %val1, %val2 1969 %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1970 ret <16 x float> %sel 1971 1972; CHECK: fun178 1973; CHECK: cost of 8 for instruction: %cmp = fcmp ogt <16 x double> %val1, %val2 1974; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x float> %val3, <16 x float> %val4 1975} 1976 1977define <16 x double> @fun179(<16 x double> %val1, <16 x double> %val2, 1978 <16 x double> %val3, <16 x double> %val4) { 1979 %cmp = fcmp ogt <16 x double> %val1, %val2 1980 %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1981 ret <16 x double> %sel 1982 1983; CHECK: fun179 1984; CHECK: cost of 8 for instruction: %cmp = fcmp ogt <16 x double> %val1, %val2 1985; CHECK: cost of 8 for instruction: %sel = select <16 x i1> %cmp, <16 x double> %val3, <16 x double> %val4 1986} 1987 1988