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 8 define 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 19 define 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 30 define 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 41 define 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 52 define 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 63 define 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 74 define 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 85 define 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 96 define 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 107 define 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 118 define 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 129 define 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 140 define 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 151 define 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 162 define 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 173 define 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 184 define 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 195 define 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 206 define 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 217 define 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 228 define 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 239 define 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 250 define 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 261 define 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 272 define <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 283 define <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 294 define <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 305 define <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 316 define <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 327 define <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 338 define <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 349 define <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 360 define <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 371 define <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 382 define <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 393 define <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 404 define <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 415 define <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 426 define <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 437 define <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 448 define <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 459 define <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 470 define <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 481 define <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 492 define <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 503 define <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 514 define <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 525 define <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 536 define <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 547 define <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 558 define <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 569 define <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 580 define <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 591 define <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 602 define <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 613 define <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 624 define <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 635 define <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 646 define <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 657 define <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 668 define <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 679 define <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 690 define <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 701 define <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 712 define <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 723 define <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 734 define <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 745 define <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 756 define <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 767 define <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 778 define <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 789 define <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 800 define <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 811 define <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 822 define <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 833 define <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 844 define <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 855 define <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 866 define <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 877 define <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 888 define <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 899 define <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 910 define <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 921 define <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 932 define <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 943 define <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 954 define <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 965 define <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 976 define <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 987 define <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 998 define <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 1009 define <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 1020 define <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 1031 define <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 1042 define <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 1053 define <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 1064 define <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 1075 define <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 1086 define <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 1097 define <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 1108 define <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 1119 define <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 1130 define <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 1141 define <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 1152 define <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 1163 define <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 1174 define <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 1185 define <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 1196 define <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 1207 define <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 1218 define <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 1229 define <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 1240 define <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 1251 define <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 1262 define <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 1273 define <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 1284 define <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 1295 define <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 1306 define <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 1317 define <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 1328 define 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 1339 define 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 1350 define 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 1361 define 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 1372 define 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 1383 define 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 1394 define 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 1405 define 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 1416 define 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 1427 define 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 1438 define 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 1449 define 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 1460 define <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 1471 define <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 1482 define <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 1493 define <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 1504 define <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 1515 define <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 1526 define <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 1537 define <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 1548 define <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 1559 define <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 1570 define <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 1581 define <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 1592 define <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 1603 define <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 1614 define <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 1625 define <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 1636 define <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 1647 define <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 1658 define <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 1669 define <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 1680 define <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 1691 define <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 1702 define <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 1713 define <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 1724 define <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 1735 define <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 1746 define <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 1757 define <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 1768 define <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 1779 define <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 1790 define <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 1801 define <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 1812 define <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 1823 define <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 1834 define <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 1845 define <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 1856 define <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 1867 define <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 1878 define <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 1889 define <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 1900 define <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 1911 define <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 1922 define <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 1933 define <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 1944 define <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 1955 define <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 1966 define <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 1977 define <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