1; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s 2; 3 4define 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 14define 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 24define 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 34define 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 44define 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 54define 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 64define 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 74define 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 84define 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 94define 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 104define 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 114define 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 124define 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 134define 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 144define 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 154define 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 164define 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 174define 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 184define 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 194define 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 204define 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 214define 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 224define 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 234define 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 244define <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 254define <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 264define <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 274define <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 284define <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 294define <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 304define <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 314define <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 324define <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 334define <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 344define <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 354define <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 364define <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 374define <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 384define <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 394define <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 404define <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 414define <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 424define <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 434define <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 444define <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 454define <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 464define <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 474define <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 484define <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 494define <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 504define <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 514define <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 524define <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 534define <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 544define <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 554define <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 564define <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 574define <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 584define <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 594define <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 604define <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 614define <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 624define <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 634define <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 644define <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 654define <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 664define <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 674define <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 684define <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 694define <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 704define <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 714define <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 724define <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 734define <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 744define <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 754define <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 764define <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 774define <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 784define <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 794define <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 804define <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 814define <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 824define <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 834define <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 844define <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 854define <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 864define <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 874define <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 884define <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 894define <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 904define <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 914define <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 924define <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 934define <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 944define <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 954define <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 964define <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 974define <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 984define <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 994define <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 1004define <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 1014define <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 1024define <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 1034define <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 1044define <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 1054define <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 1064define <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 1074define <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 1084define <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 1094define <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 1104define <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 1114define <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 1124define <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 1134define <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 1144define <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 1154define <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 1164define <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 1174define <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 1184define <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 1194define <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 1204define 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 1214define 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 1224define 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 1234define 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 1244define 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 1254define 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 1264define 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 1274define 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 1284define 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 1294define 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 1304define 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 1314define 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 1324define 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 1334define 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 1344define 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 1354define 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 1364define 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 1374define 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 1384define 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 1394define 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 1404define 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 1414define 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 1424define 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 1434define 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 1444define <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 1454define <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 1464define <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 1474define <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 1484define <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 1494define <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 1504define <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 1514define <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 1524define <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 1534define <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 1544define <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 1554define <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 1564define <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 1574define <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 1584define <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 1594define <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 1604define <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 1614define <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 1624define <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 1634define <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 1644define <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 1654define <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 1664define <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 1674define <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 1684define <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 1694define <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 1704define <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 1714define <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 1724define <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 1734define <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 1744define <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 1754define <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 1764define <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 1774define <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 1784define <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 1794define <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 1804define <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 1814define <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 1824define <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 1834define <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 1844define <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 1854define <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 1864define <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 1874define <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 1884define <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 1894define <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 1904define <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 1914define <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 1924define <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 1934define <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 1944define <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 1954define <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 1964define <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 1974define <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 1984define <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 1994define <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 2004define <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 2014define <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 2024define <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 2034define <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 2044define <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 2054define <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 2064define <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 2074define <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 2084define <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 2094define <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 2104define <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 2114define <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 2124define <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 2134define <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 2144define <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 2154define <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 2164define <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 2174define <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 2184define <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 2194define <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 2204define <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 2214define <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 2224define <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 2234define <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 2244define <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 2254define <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 2264define <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 2274define <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 2284define <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 2294define <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 2304define <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 2314define <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 2324define <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 2334define <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 2344define <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 2354define <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 2364define <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 2374define <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 2384define <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 2394define <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