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