1 // REQUIRES: powerpc-registered-target 2 // RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s \ 3 // RUN: -o - | FileCheck %s 4 // RUN: %clang_cc1 -faltivec -triple powerpc64-unknown-unknown -emit-llvm %s \ 5 // RUN: -o - | FileCheck %s 6 // RUN: %clang_cc1 -faltivec -triple powerpc64le-unknown-unknown -emit-llvm %s \ 7 // RUN: -o - | FileCheck %s -check-prefix=CHECK-LE 8 // RUN: not %clang_cc1 -triple powerpc64le-unknown-unknown -emit-llvm %s \ 9 // RUN: -ferror-limit 0 -DNO_ALTIVEC -o - 2>&1 \ 10 // RUN: | FileCheck %s -check-prefix=CHECK-NOALTIVEC 11 #ifndef NO_ALTIVEC 12 #include <altivec.h> 13 #endif 14 15 vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 }; 16 vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 }; 17 vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; 18 vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 }; 19 vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 }; 20 vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 }; 21 vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 }; 22 vector bool int vbi = { 1, 0, 1, 0 }; 23 vector int vi = { -1, 2, -3, 4 }; 24 vector unsigned int vui = { 1, 2, 3, 4 }; 25 vector float vf = { -1.5, 2.5, -3.5, 4.5 }; 26 27 vector bool char res_vbc; 28 vector signed char res_vsc; 29 vector unsigned char res_vuc; 30 vector bool short res_vbs; 31 vector short res_vs; 32 vector unsigned short res_vus; 33 vector pixel res_vp; 34 vector bool int res_vbi; 35 vector int res_vi; 36 vector unsigned int res_vui; 37 vector float res_vf; 38 39 // CHECK-NOALTIVEC: error: unknown type name 'vector' 40 41 signed char param_sc; 42 unsigned char param_uc; 43 short param_s; 44 unsigned short param_us; 45 int param_i; 46 unsigned int param_ui; 47 float param_f; 48 49 int res_sc; 50 int res_uc; 51 int res_s; 52 int res_us; 53 int res_i; 54 int res_ui; 55 int res_f; 56 57 // CHECK-LABEL: define void @test1 58 void test1() { 59 60 /* vec_abs */ 61 vsc = vec_abs(vsc); 62 // CHECK: sub <16 x i8> zeroinitializer 63 // CHECK: @llvm.ppc.altivec.vmaxsb 64 // CHECK-LE: sub <16 x i8> zeroinitializer 65 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 66 67 vs = vec_abs(vs); 68 // CHECK: sub <8 x i16> zeroinitializer 69 // CHECK: @llvm.ppc.altivec.vmaxsh 70 // CHECK-LE: sub <8 x i16> zeroinitializer 71 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 72 73 vi = vec_abs(vi); 74 // CHECK: sub <4 x i32> zeroinitializer 75 // CHECK: @llvm.ppc.altivec.vmaxsw 76 // CHECK-LE: sub <4 x i32> zeroinitializer 77 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 78 79 vf = vec_abs(vf); 80 // CHECK: bitcast <4 x float> %{{.*}} to <4 x i32> 81 // CHECK: and <4 x i32> {{.*}}, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647> 82 // CHECK: bitcast <4 x i32> %{{.*}} to <4 x float> 83 // CHECK: store <4 x float> %{{.*}}, <4 x float>* @vf 84 // CHECK-LE: bitcast <4 x float> %{{.*}} to <4 x i32> 85 // CHECK-LE: and <4 x i32> {{.*}}, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647> 86 // CHECK-LE: bitcast <4 x i32> %{{.*}} to <4 x float> 87 // CHECK-LE: store <4 x float> %{{.*}}, <4 x float>* @vf 88 // CHECK-NOALTIVEC: error: use of undeclared identifier 'vf' 89 // CHECK-NOALTIVEC: vf = vec_abs(vf) 90 91 /* vec_abs */ 92 vsc = vec_abss(vsc); 93 // CHECK: @llvm.ppc.altivec.vsubsbs 94 // CHECK: @llvm.ppc.altivec.vmaxsb 95 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 96 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 97 98 vs = vec_abss(vs); 99 // CHECK: @llvm.ppc.altivec.vsubshs 100 // CHECK: @llvm.ppc.altivec.vmaxsh 101 // CHECK-LE: @llvm.ppc.altivec.vsubshs 102 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 103 104 vi = vec_abss(vi); 105 // CHECK: @llvm.ppc.altivec.vsubsws 106 // CHECK: @llvm.ppc.altivec.vmaxsw 107 // CHECK-LE: @llvm.ppc.altivec.vsubsws 108 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 109 110 /* vec_add */ 111 res_vsc = vec_add(vsc, vsc); 112 // CHECK: add <16 x i8> 113 // CHECK-LE: add <16 x i8> 114 115 res_vsc = vec_add(vbc, vsc); 116 // CHECK: add <16 x i8> 117 // CHECK-LE: add <16 x i8> 118 119 res_vsc = vec_add(vsc, vbc); 120 // CHECK: add <16 x i8> 121 // CHECK-LE: add <16 x i8> 122 123 res_vuc = vec_add(vuc, vuc); 124 // CHECK: add <16 x i8> 125 // CHECK-LE: add <16 x i8> 126 127 res_vuc = vec_add(vbc, vuc); 128 // CHECK: add <16 x i8> 129 // CHECK-LE: add <16 x i8> 130 131 res_vuc = vec_add(vuc, vbc); 132 // CHECK: add <16 x i8> 133 // CHECK-LE: add <16 x i8> 134 135 res_vs = vec_add(vs, vs); 136 // CHECK: add <8 x i16> 137 // CHECK-LE: add <8 x i16> 138 139 res_vs = vec_add(vbs, vs); 140 // CHECK: add <8 x i16> 141 // CHECK-LE: add <8 x i16> 142 143 res_vs = vec_add(vs, vbs); 144 // CHECK: add <8 x i16> 145 // CHECK-LE: add <8 x i16> 146 147 res_vus = vec_add(vus, vus); 148 // CHECK: add <8 x i16> 149 // CHECK-LE: add <8 x i16> 150 151 res_vus = vec_add(vbs, vus); 152 // CHECK: add <8 x i16> 153 // CHECK-LE: add <8 x i16> 154 155 res_vus = vec_add(vus, vbs); 156 // CHECK: add <8 x i16> 157 // CHECK-LE: add <8 x i16> 158 159 res_vi = vec_add(vi, vi); 160 // CHECK: add <4 x i32> 161 // CHECK-LE: add <4 x i32> 162 163 res_vi = vec_add(vbi, vi); 164 // CHECK: add <4 x i32> 165 // CHECK-LE: add <4 x i32> 166 167 res_vi = vec_add(vi, vbi); 168 // CHECK: add <4 x i32> 169 // CHECK-LE: add <4 x i32> 170 171 res_vui = vec_add(vui, vui); 172 // CHECK: add <4 x i32> 173 // CHECK-LE: add <4 x i32> 174 175 res_vui = vec_add(vbi, vui); 176 // CHECK: add <4 x i32> 177 // CHECK-LE: add <4 x i32> 178 179 res_vui = vec_add(vui, vbi); 180 // CHECK: add <4 x i32> 181 // CHECK-LE: add <4 x i32> 182 183 res_vf = vec_add(vf, vf); 184 // CHECK: fadd <4 x float> 185 // CHECK-LE: fadd <4 x float> 186 187 res_vsc = vec_vaddubm(vsc, vsc); 188 // CHECK: add <16 x i8> 189 // CHECK-LE: add <16 x i8> 190 191 res_vsc = vec_vaddubm(vbc, vsc); 192 // CHECK: add <16 x i8> 193 // CHECK-LE: add <16 x i8> 194 195 res_vsc = vec_vaddubm(vsc, vbc); 196 // CHECK: add <16 x i8> 197 // CHECK-LE: add <16 x i8> 198 199 res_vuc = vec_vaddubm(vuc, vuc); 200 // CHECK: add <16 x i8> 201 // CHECK-LE: add <16 x i8> 202 203 res_vuc = vec_vaddubm(vbc, vuc); 204 // CHECK: add <16 x i8> 205 // CHECK-LE: add <16 x i8> 206 207 res_vuc = vec_vaddubm(vuc, vbc); 208 // CHECK: add <16 x i8> 209 // CHECK-LE: add <16 x i8> 210 211 res_vs = vec_vadduhm(vs, vs); 212 // CHECK: add <8 x i16> 213 // CHECK-LE: add <8 x i16> 214 215 res_vs = vec_vadduhm(vbs, vs); 216 // CHECK: add <8 x i16> 217 // CHECK-LE: add <8 x i16> 218 219 res_vs = vec_vadduhm(vs, vbs); 220 // CHECK: add <8 x i16> 221 // CHECK-LE: add <8 x i16> 222 223 res_vus = vec_vadduhm(vus, vus); 224 // CHECK: add <8 x i16> 225 // CHECK-LE: add <8 x i16> 226 227 res_vus = vec_vadduhm(vbs, vus); 228 // CHECK: add <8 x i16> 229 // CHECK-LE: add <8 x i16> 230 231 res_vus = vec_vadduhm(vus, vbs); 232 // CHECK: add <8 x i16> 233 // CHECK-LE: add <8 x i16> 234 235 res_vi = vec_vadduwm(vi, vi); 236 // CHECK: add <4 x i32> 237 // CHECK-LE: add <4 x i32> 238 239 res_vi = vec_vadduwm(vbi, vi); 240 // CHECK: add <4 x i32> 241 // CHECK-LE: add <4 x i32> 242 243 res_vi = vec_vadduwm(vi, vbi); 244 // CHECK: add <4 x i32> 245 // CHECK-LE: add <4 x i32> 246 247 res_vui = vec_vadduwm(vui, vui); 248 // CHECK: add <4 x i32> 249 // CHECK-LE: add <4 x i32> 250 251 res_vui = vec_vadduwm(vbi, vui); 252 // CHECK: add <4 x i32> 253 // CHECK-LE: add <4 x i32> 254 255 res_vui = vec_vadduwm(vui, vbi); 256 // CHECK: add <4 x i32> 257 // CHECK-LE: add <4 x i32> 258 259 res_vf = vec_vaddfp(vf, vf); 260 // CHECK: fadd <4 x float> 261 // CHECK-LE: fadd <4 x float> 262 263 /* vec_addc */ 264 res_vui = vec_addc(vui, vui); 265 // CHECK: @llvm.ppc.altivec.vaddcuw 266 // CHECK-LE: @llvm.ppc.altivec.vaddcuw 267 268 res_vui = vec_vaddcuw(vui, vui); 269 // CHECK: @llvm.ppc.altivec.vaddcuw 270 // CHECK-LE: @llvm.ppc.altivec.vaddcuw 271 272 /* vec_adds */ 273 res_vsc = vec_adds(vsc, vsc); 274 // CHECK: @llvm.ppc.altivec.vaddsbs 275 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 276 277 res_vsc = vec_adds(vbc, vsc); 278 // CHECK: @llvm.ppc.altivec.vaddsbs 279 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 280 281 res_vsc = vec_adds(vsc, vbc); 282 // CHECK: @llvm.ppc.altivec.vaddsbs 283 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 284 285 res_vuc = vec_adds(vuc, vuc); 286 // CHECK: @llvm.ppc.altivec.vaddubs 287 // CHECK-LE: @llvm.ppc.altivec.vaddubs 288 289 res_vuc = vec_adds(vbc, vuc); 290 // CHECK: @llvm.ppc.altivec.vaddubs 291 // CHECK-LE: @llvm.ppc.altivec.vaddubs 292 293 res_vuc = vec_adds(vuc, vbc); 294 // CHECK: @llvm.ppc.altivec.vaddubs 295 // CHECK-LE: @llvm.ppc.altivec.vaddubs 296 297 res_vs = vec_adds(vs, vs); 298 // CHECK: @llvm.ppc.altivec.vaddshs 299 // CHECK-LE: @llvm.ppc.altivec.vaddshs 300 301 res_vs = vec_adds(vbs, vs); 302 // CHECK: @llvm.ppc.altivec.vaddshs 303 // CHECK-LE: @llvm.ppc.altivec.vaddshs 304 305 res_vs = vec_adds(vs, vbs); 306 // CHECK: @llvm.ppc.altivec.vaddshs 307 // CHECK-LE: @llvm.ppc.altivec.vaddshs 308 309 res_vus = vec_adds(vus, vus); 310 // CHECK: @llvm.ppc.altivec.vadduhs 311 // CHECK-LE: @llvm.ppc.altivec.vadduhs 312 313 res_vus = vec_adds(vbs, vus); 314 // CHECK: @llvm.ppc.altivec.vadduhs 315 // CHECK-LE: @llvm.ppc.altivec.vadduhs 316 317 res_vus = vec_adds(vus, vbs); 318 // CHECK: @llvm.ppc.altivec.vadduhs 319 // CHECK-LE: @llvm.ppc.altivec.vadduhs 320 321 res_vi = vec_adds(vi, vi); 322 // CHECK: @llvm.ppc.altivec.vaddsws 323 // CHECK-LE: @llvm.ppc.altivec.vaddsws 324 325 res_vi = vec_adds(vbi, vi); 326 // CHECK: @llvm.ppc.altivec.vaddsws 327 // CHECK-LE: @llvm.ppc.altivec.vaddsws 328 329 res_vi = vec_adds(vi, vbi); 330 // CHECK: @llvm.ppc.altivec.vaddsws 331 // CHECK-LE: @llvm.ppc.altivec.vaddsws 332 333 res_vui = vec_adds(vui, vui); 334 // CHECK: @llvm.ppc.altivec.vadduws 335 // CHECK-LE: @llvm.ppc.altivec.vadduws 336 337 res_vui = vec_adds(vbi, vui); 338 // CHECK: @llvm.ppc.altivec.vadduws 339 // CHECK-LE: @llvm.ppc.altivec.vadduws 340 341 res_vui = vec_adds(vui, vbi); 342 // CHECK: @llvm.ppc.altivec.vadduws 343 // CHECK-LE: @llvm.ppc.altivec.vadduws 344 345 res_vsc = vec_vaddsbs(vsc, vsc); 346 // CHECK: @llvm.ppc.altivec.vaddsbs 347 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 348 349 res_vsc = vec_vaddsbs(vbc, vsc); 350 // CHECK: @llvm.ppc.altivec.vaddsbs 351 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 352 353 res_vsc = vec_vaddsbs(vsc, vbc); 354 // CHECK: @llvm.ppc.altivec.vaddsbs 355 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 356 357 res_vuc = vec_vaddubs(vuc, vuc); 358 // CHECK: @llvm.ppc.altivec.vaddubs 359 // CHECK-LE: @llvm.ppc.altivec.vaddubs 360 361 res_vuc = vec_vaddubs(vbc, vuc); 362 // CHECK: @llvm.ppc.altivec.vaddubs 363 // CHECK-LE: @llvm.ppc.altivec.vaddubs 364 365 res_vuc = vec_vaddubs(vuc, vbc); 366 // CHECK: @llvm.ppc.altivec.vaddubs 367 // CHECK-LE: @llvm.ppc.altivec.vaddubs 368 369 res_vs = vec_vaddshs(vs, vs); 370 // CHECK: @llvm.ppc.altivec.vaddshs 371 // CHECK-LE: @llvm.ppc.altivec.vaddshs 372 373 res_vs = vec_vaddshs(vbs, vs); 374 // CHECK: @llvm.ppc.altivec.vaddshs 375 // CHECK-LE: @llvm.ppc.altivec.vaddshs 376 377 res_vs = vec_vaddshs(vs, vbs); 378 // CHECK: @llvm.ppc.altivec.vaddshs 379 // CHECK-LE: @llvm.ppc.altivec.vaddshs 380 381 res_vus = vec_vadduhs(vus, vus); 382 // CHECK: @llvm.ppc.altivec.vadduhs 383 // CHECK-LE: @llvm.ppc.altivec.vadduhs 384 385 res_vus = vec_vadduhs(vbs, vus); 386 // CHECK: @llvm.ppc.altivec.vadduhs 387 // CHECK-LE: @llvm.ppc.altivec.vadduhs 388 389 res_vus = vec_vadduhs(vus, vbs); 390 // CHECK: @llvm.ppc.altivec.vadduhs 391 // CHECK-LE: @llvm.ppc.altivec.vadduhs 392 393 res_vi = vec_vaddsws(vi, vi); 394 // CHECK: @llvm.ppc.altivec.vaddsws 395 // CHECK-LE: @llvm.ppc.altivec.vaddsws 396 397 res_vi = vec_vaddsws(vbi, vi); 398 // CHECK: @llvm.ppc.altivec.vaddsws 399 // CHECK-LE: @llvm.ppc.altivec.vaddsws 400 401 res_vi = vec_vaddsws(vi, vbi); 402 // CHECK: @llvm.ppc.altivec.vaddsws 403 // CHECK-LE: @llvm.ppc.altivec.vaddsws 404 405 res_vui = vec_vadduws(vui, vui); 406 // CHECK: @llvm.ppc.altivec.vadduws 407 // CHECK-LE: @llvm.ppc.altivec.vadduws 408 409 res_vui = vec_vadduws(vbi, vui); 410 // CHECK: @llvm.ppc.altivec.vadduws 411 // CHECK-LE: @llvm.ppc.altivec.vadduws 412 413 res_vui = vec_vadduws(vui, vbi); 414 // CHECK: @llvm.ppc.altivec.vadduws 415 // CHECK-LE: @llvm.ppc.altivec.vadduws 416 417 /* vec_and */ 418 res_vsc = vec_and(vsc, vsc); 419 // CHECK: and <16 x i8> 420 // CHECK-LE: and <16 x i8> 421 422 res_vsc = vec_and(vbc, vsc); 423 // CHECK: and <16 x i8> 424 // CHECK-LE: and <16 x i8> 425 426 res_vsc = vec_and(vsc, vbc); 427 // CHECK: and <16 x i8> 428 // CHECK-LE: and <16 x i8> 429 430 res_vuc = vec_and(vuc, vuc); 431 // CHECK: and <16 x i8> 432 // CHECK-LE: and <16 x i8> 433 434 res_vuc = vec_and(vbc, vuc); 435 // CHECK: and <16 x i8> 436 // CHECK-LE: and <16 x i8> 437 438 res_vuc = vec_and(vuc, vbc); 439 // CHECK: and <16 x i8> 440 // CHECK-LE: and <16 x i8> 441 442 res_vbc = vec_and(vbc, vbc); 443 // CHECK: and <16 x i8> 444 // CHECK-LE: and <16 x i8> 445 446 res_vs = vec_and(vs, vs); 447 // CHECK: and <8 x i16> 448 // CHECK-LE: and <8 x i16> 449 450 res_vs = vec_and(vbs, vs); 451 // CHECK: and <8 x i16> 452 // CHECK-LE: and <8 x i16> 453 454 res_vs = vec_and(vs, vbs); 455 // CHECK: and <8 x i16> 456 // CHECK-LE: and <8 x i16> 457 458 res_vus = vec_and(vus, vus); 459 // CHECK: and <8 x i16> 460 // CHECK-LE: and <8 x i16> 461 462 res_vus = vec_and(vbs, vus); 463 // CHECK: and <8 x i16> 464 // CHECK-LE: and <8 x i16> 465 466 res_vus = vec_and(vus, vbs); 467 // CHECK: and <8 x i16> 468 // CHECK-LE: and <8 x i16> 469 470 res_vbs = vec_and(vbs, vbs); 471 // CHECK: and <8 x i16> 472 // CHECK-LE: and <8 x i16> 473 474 res_vi = vec_and(vi, vi); 475 // CHECK: and <4 x i32> 476 // CHECK-LE: and <4 x i32> 477 478 res_vi = vec_and(vbi, vi); 479 // CHECK: and <4 x i32> 480 // CHECK-le: and <4 x i32> 481 482 res_vi = vec_and(vi, vbi); 483 // CHECK: and <4 x i32> 484 // CHECK-LE: and <4 x i32> 485 486 res_vui = vec_and(vui, vui); 487 // CHECK: and <4 x i32> 488 // CHECK-LE: and <4 x i32> 489 490 res_vui = vec_and(vbi, vui); 491 // CHECK: and <4 x i32> 492 // CHECK-LE: and <4 x i32> 493 494 res_vui = vec_and(vui, vbi); 495 // CHECK: and <4 x i32> 496 // CHECK-LE: and <4 x i32> 497 498 res_vbi = vec_and(vbi, vbi); 499 // CHECK: and <4 x i32> 500 // CHECK-LE: and <4 x i32> 501 502 res_vsc = vec_vand(vsc, vsc); 503 // CHECK: and <16 x i8> 504 // CHECK-LE: and <16 x i8> 505 506 res_vsc = vec_vand(vbc, vsc); 507 // CHECK: and <16 x i8> 508 // CHECK-LE: and <16 x i8> 509 510 res_vsc = vec_vand(vsc, vbc); 511 // CHECK: and <16 x i8> 512 // CHECK-LE: and <16 x i8> 513 514 res_vuc = vec_vand(vuc, vuc); 515 // CHECK: and <16 x i8> 516 // CHECK-LE: and <16 x i8> 517 518 res_vuc = vec_vand(vbc, vuc); 519 // CHECK: and <16 x i8> 520 // CHECK-LE: and <16 x i8> 521 522 res_vuc = vec_vand(vuc, vbc); 523 // CHECK: and <16 x i8> 524 // CHECK-LE: and <16 x i8> 525 526 res_vbc = vec_vand(vbc, vbc); 527 // CHECK: and <16 x i8> 528 // CHECK-LE: and <16 x i8> 529 530 res_vs = vec_vand(vs, vs); 531 // CHECK: and <8 x i16> 532 // CHECK-LE: and <8 x i16> 533 534 res_vs = vec_vand(vbs, vs); 535 // CHECK: and <8 x i16> 536 // CHECK-LE: and <8 x i16> 537 538 res_vs = vec_vand(vs, vbs); 539 // CHECK: and <8 x i16> 540 // CHECK-LE: and <8 x i16> 541 542 res_vus = vec_vand(vus, vus); 543 // CHECK: and <8 x i16> 544 // CHECK-LE: and <8 x i16> 545 546 res_vus = vec_vand(vbs, vus); 547 // CHECK: and <8 x i16> 548 // CHECK-LE: and <8 x i16> 549 550 res_vus = vec_vand(vus, vbs); 551 // CHECK: and <8 x i16> 552 // CHECK-LE: and <8 x i16> 553 554 res_vbs = vec_vand(vbs, vbs); 555 // CHECK: and <8 x i16> 556 // CHECK-LE: and <8 x i16> 557 558 res_vi = vec_vand(vi, vi); 559 // CHECK: and <4 x i32> 560 // CHECK-LE: and <4 x i32> 561 562 res_vi = vec_vand(vbi, vi); 563 // CHECK: and <4 x i32> 564 // CHECK-LE: and <4 x i32> 565 566 res_vi = vec_vand(vi, vbi); 567 // CHECK: and <4 x i32> 568 // CHECK-LE: and <4 x i32> 569 570 res_vui = vec_vand(vui, vui); 571 // CHECK: and <4 x i32> 572 // CHECK-LE: and <4 x i32> 573 574 res_vui = vec_vand(vbi, vui); 575 // CHECK: and <4 x i32> 576 // CHECK-LE: and <4 x i32> 577 578 res_vui = vec_vand(vui, vbi); 579 // CHECK: and <4 x i32> 580 // CHECK-LE: and <4 x i32> 581 582 res_vbi = vec_vand(vbi, vbi); 583 // CHECK: and <4 x i32> 584 // CHECK-LE: and <4 x i32> 585 586 /* vec_andc */ 587 res_vsc = vec_andc(vsc, vsc); 588 // CHECK: xor <16 x i8> 589 // CHECK: and <16 x i8> 590 // CHECK-LE: xor <16 x i8> 591 // CHECK-LE: and <16 x i8> 592 593 res_vsc = vec_andc(vbc, vsc); 594 // CHECK: xor <16 x i8> 595 // CHECK: and <16 x i8> 596 // CHECK-LE: xor <16 x i8> 597 // CHECK-LE: and <16 x i8> 598 599 res_vsc = vec_andc(vsc, vbc); 600 // CHECK: xor <16 x i8> 601 // CHECK: and <16 x i8> 602 // CHECK-LE: xor <16 x i8> 603 // CHECK-LE: and <16 x i8> 604 605 res_vuc = vec_andc(vuc, vuc); 606 // CHECK: xor <16 x i8> 607 // CHECK: and <16 x i8> 608 // CHECK-LE: xor <16 x i8> 609 // CHECK-LE: and <16 x i8> 610 611 res_vuc = vec_andc(vbc, vuc); 612 // CHECK: xor <16 x i8> 613 // CHECK: and <16 x i8> 614 // CHECK-LE: xor <16 x i8> 615 // CHECK-LE: and <16 x i8> 616 617 res_vuc = vec_andc(vuc, vbc); 618 // CHECK-LE: xor <16 x i8> 619 // CHECK-LE: and <16 x i8> 620 621 res_vbc = vec_andc(vbc, vbc); 622 // CHECK: xor <16 x i8> 623 // CHECK: and <16 x i8> 624 // CHECK-LE: xor <16 x i8> 625 // CHECK-LE: and <16 x i8> 626 627 res_vs = vec_andc(vs, vs); 628 // CHECK: xor <8 x i16> 629 // CHECK: and <8 x i16> 630 // CHECK-LE: xor <8 x i16> 631 // CHECK-LE: and <8 x i16> 632 633 res_vs = vec_andc(vbs, vs); 634 // CHECK: xor <8 x i16> 635 // CHECK: and <8 x i16> 636 // CHECK-LE: xor <8 x i16> 637 // CHECK-LE: and <8 x i16> 638 639 res_vs = vec_andc(vs, vbs); 640 // CHECK: xor <8 x i16> 641 // CHECK: and <8 x i16> 642 // CHECK-LE: xor <8 x i16> 643 // CHECK-LE: and <8 x i16> 644 645 res_vus = vec_andc(vus, vus); 646 // CHECK: xor <8 x i16> 647 // CHECK: and <8 x i16> 648 // CHECK-LE: xor <8 x i16> 649 // CHECK-LE: and <8 x i16> 650 651 res_vus = vec_andc(vbs, vus); 652 // CHECK: xor <8 x i16> 653 // CHECK: and <8 x i16> 654 // CHECK-LE: xor <8 x i16> 655 // CHECK-LE: and <8 x i16> 656 657 res_vus = vec_andc(vus, vbs); 658 // CHECK: xor <8 x i16> 659 // CHECK: and <8 x i16> 660 // CHECK-LE: xor <8 x i16> 661 // CHECK-LE: and <8 x i16> 662 663 res_vbs = vec_andc(vbs, vbs); 664 // CHECK: xor <8 x i16> 665 // CHECK: and <8 x i16> 666 // CHECK-LE: xor <8 x i16> 667 // CHECK-LE: and <8 x i16> 668 669 res_vi = vec_andc(vi, vi); 670 // CHECK: xor <4 x i32> 671 // CHECK: and <4 x i32> 672 // CHECK-LE: xor <4 x i32> 673 // CHECK-LE: and <4 x i32> 674 675 res_vi = vec_andc(vbi, vi); 676 // CHECK: xor <4 x i32> 677 // CHECK: and <4 x i32> 678 // CHECK-LE: xor <4 x i32> 679 // CHECK-LE: and <4 x i32> 680 681 res_vi = vec_andc(vi, vbi); 682 // CHECK: xor <4 x i32> 683 // CHECK: and <4 x i32> 684 // CHECK-LE: xor <4 x i32> 685 // CHECK-LE: and <4 x i32> 686 687 res_vui = vec_andc(vui, vui); 688 // CHECK: xor <4 x i32> 689 // CHECK: and <4 x i32> 690 // CHECK-LE: xor <4 x i32> 691 // CHECK-LE: and <4 x i32> 692 693 res_vui = vec_andc(vbi, vui); 694 // CHECK: xor <4 x i32> 695 // CHECK: and <4 x i32> 696 // CHECK-LE: xor <4 x i32> 697 // CHECK-LE: and <4 x i32> 698 699 res_vui = vec_andc(vui, vbi); 700 // CHECK: xor <4 x i32> 701 // CHECK: and <4 x i32> 702 // CHECK-LE: xor <4 x i32> 703 // CHECK-LE: and <4 x i32> 704 705 res_vf = vec_andc(vf, vf); 706 // CHECK: xor <4 x i32> 707 // CHECK: and <4 x i32> 708 // CHECK-LE: xor <4 x i32> 709 // CHECK-LE: and <4 x i32> 710 711 res_vf = vec_andc(vbi, vf); 712 // CHECK: xor <4 x i32> 713 // CHECK: and <4 x i32> 714 // CHECK-LE: xor <4 x i32> 715 // CHECK-LE: and <4 x i32> 716 717 res_vf = vec_andc(vf, vbi); 718 // CHECK: xor <4 x i32> 719 // CHECK: and <4 x i32> 720 // CHECK-LE: xor <4 x i32> 721 // CHECK-LE: and <4 x i32> 722 723 res_vsc = vec_vandc(vsc, vsc); 724 // CHECK: xor <16 x i8> 725 // CHECK: and <16 x i8> 726 // CHECK-LE: xor <16 x i8> 727 // CHECK-LE: and <16 x i8> 728 729 res_vsc = vec_vandc(vbc, vsc); 730 // CHECK: xor <16 x i8> 731 // CHECK: and <16 x i8> 732 // CHECK-LE: xor <16 x i8> 733 // CHECK-LE: and <16 x i8> 734 735 res_vsc = vec_vandc(vsc, vbc); 736 // CHECK: xor <16 x i8> 737 // CHECK: and <16 x i8> 738 // CHECK-LE: xor <16 x i8> 739 // CHECK-LE: and <16 x i8> 740 741 res_vuc = vec_vandc(vuc, vuc); 742 // CHECK: xor <16 x i8> 743 // CHECK: and <16 x i8> 744 // CHECK-LE: xor <16 x i8> 745 // CHECK-LE: and <16 x i8> 746 747 res_vuc = vec_vandc(vbc, vuc); 748 // CHECK: xor <16 x i8> 749 // CHECK: and <16 x i8> 750 // CHECK-LE: xor <16 x i8> 751 // CHECK-LE: and <16 x i8> 752 753 res_vuc = vec_vandc(vuc, vbc); 754 // CHECK: xor <16 x i8> 755 // CHECK: and <16 x i8> 756 // CHECK-LE: xor <16 x i8> 757 // CHECK-LE: and <16 x i8> 758 759 res_vbc = vec_vandc(vbc, vbc); 760 // CHECK: xor <16 x i8> 761 // CHECK: and <16 x i8> 762 // CHECK-LE: xor <16 x i8> 763 // CHECK-LE: and <16 x i8> 764 765 res_vs = vec_vandc(vs, vs); 766 // CHECK: xor <8 x i16> 767 // CHECK: and <8 x i16> 768 // CHECK-LE: xor <8 x i16> 769 // CHECK-LE: and <8 x i16> 770 771 res_vs = vec_vandc(vbs, vs); 772 // CHECK: xor <8 x i16> 773 // CHECK: and <8 x i16> 774 // CHECK-LE: xor <8 x i16> 775 // CHECK-LE: and <8 x i16> 776 777 res_vs = vec_vandc(vs, vbs); 778 // CHECK: xor <8 x i16> 779 // CHECK: and <8 x i16> 780 // CHECK-LE: xor <8 x i16> 781 // CHECK-LE: and <8 x i16> 782 783 res_vus = vec_vandc(vus, vus); 784 // CHECK: xor <8 x i16> 785 // CHECK: and <8 x i16> 786 // CHECK-LE: xor <8 x i16> 787 // CHECK-LE: and <8 x i16> 788 789 res_vus = vec_vandc(vbs, vus); 790 // CHECK: xor <8 x i16> 791 // CHECK: and <8 x i16> 792 // CHECK-LE: xor <8 x i16> 793 // CHECK-LE: and <8 x i16> 794 795 res_vus = vec_vandc(vus, vbs); 796 // CHECK: xor <8 x i16> 797 // CHECK: and <8 x i16> 798 // CHECK-LE: xor <8 x i16> 799 // CHECK-LE: and <8 x i16> 800 801 res_vbs = vec_vandc(vbs, vbs); 802 // CHECK: xor <8 x i16> 803 // CHECK: and <8 x i16> 804 // CHECK-LE: xor <8 x i16> 805 // CHECK-LE: and <8 x i16> 806 807 res_vi = vec_vandc(vi, vi); 808 // CHECK: xor <4 x i32> 809 // CHECK: and <4 x i32> 810 // CHECK-LE: xor <4 x i32> 811 // CHECK-LE: and <4 x i32> 812 813 res_vi = vec_vandc(vbi, vi); 814 // CHECK: xor <4 x i32> 815 // CHECK: and <4 x i32> 816 // CHECK-LE: xor <4 x i32> 817 // CHECK-LE: and <4 x i32> 818 819 res_vi = vec_vandc(vi, vbi); 820 // CHECK: xor <4 x i32> 821 // CHECK: and <4 x i32> 822 // CHECK-LE: xor <4 x i32> 823 // CHECK-LE: and <4 x i32> 824 825 res_vui = vec_vandc(vui, vui); 826 // CHECK: xor <4 x i32> 827 // CHECK: and <4 x i32> 828 // CHECK-LE: xor <4 x i32> 829 // CHECK-LE: and <4 x i32> 830 831 res_vui = vec_vandc(vbi, vui); 832 // CHECK: xor <4 x i32> 833 // CHECK: and <4 x i32> 834 // CHECK-LE: xor <4 x i32> 835 // CHECK-LE: and <4 x i32> 836 837 res_vui = vec_vandc(vui, vbi); 838 // CHECK: xor <4 x i32> 839 // CHECK: and <4 x i32> 840 // CHECK-LE: xor <4 x i32> 841 // CHECK-LE: and <4 x i32> 842 843 res_vf = vec_vandc(vf, vf); 844 // CHECK: xor <4 x i32> 845 // CHECK: and <4 x i32> 846 // CHECK-LE: xor <4 x i32> 847 // CHECK-LE: and <4 x i32> 848 849 res_vf = vec_vandc(vbi, vf); 850 // CHECK: xor <4 x i32> 851 // CHECK: and <4 x i32> 852 // CHECK-LE: xor <4 x i32> 853 // CHECK-LE: and <4 x i32> 854 855 res_vf = vec_vandc(vf, vbi); 856 // CHECK: xor <4 x i32> 857 // CHECK: and <4 x i32> 858 // CHECK-LE: xor <4 x i32> 859 // CHECK-LE: and <4 x i32> 860 861 } 862 863 // CHECK-LABEL: define void @test2 864 void test2() { 865 /* vec_avg */ 866 res_vsc = vec_avg(vsc, vsc); 867 // CHECK: @llvm.ppc.altivec.vavgsb 868 // CHECK-LE: @llvm.ppc.altivec.vavgsb 869 870 res_vuc = vec_avg(vuc, vuc); 871 // CHECK: @llvm.ppc.altivec.vavgub 872 // CHECK-LE: @llvm.ppc.altivec.vavgub 873 874 res_vs = vec_avg(vs, vs); 875 // CHECK: @llvm.ppc.altivec.vavgsh 876 // CHECK-LE: @llvm.ppc.altivec.vavgsh 877 878 res_vus = vec_avg(vus, vus); 879 // CHECK: @llvm.ppc.altivec.vavguh 880 // CHECK-LE: @llvm.ppc.altivec.vavguh 881 882 res_vi = vec_avg(vi, vi); 883 // CHECK: @llvm.ppc.altivec.vavgsw 884 // CHECK-LE: @llvm.ppc.altivec.vavgsw 885 886 res_vui = vec_avg(vui, vui); 887 // CHECK: @llvm.ppc.altivec.vavguw 888 // CHECK-LE: @llvm.ppc.altivec.vavguw 889 890 res_vsc = vec_vavgsb(vsc, vsc); 891 // CHECK: @llvm.ppc.altivec.vavgsb 892 // CHECK-LE: @llvm.ppc.altivec.vavgsb 893 894 res_vuc = vec_vavgub(vuc, vuc); 895 // CHECK: @llvm.ppc.altivec.vavgub 896 // CHECK-LE: @llvm.ppc.altivec.vavgub 897 898 res_vs = vec_vavgsh(vs, vs); 899 // CHECK: @llvm.ppc.altivec.vavgsh 900 // CHECK-LE: @llvm.ppc.altivec.vavgsh 901 902 res_vus = vec_vavguh(vus, vus); 903 // CHECK: @llvm.ppc.altivec.vavguh 904 // CHECK-LE: @llvm.ppc.altivec.vavguh 905 906 res_vi = vec_vavgsw(vi, vi); 907 // CHECK: @llvm.ppc.altivec.vavgsw 908 // CHECK-LE: @llvm.ppc.altivec.vavgsw 909 910 res_vui = vec_vavguw(vui, vui); 911 // CHECK: @llvm.ppc.altivec.vavguw 912 // CHECK-LE: @llvm.ppc.altivec.vavguw 913 914 /* vec_ceil */ 915 res_vf = vec_ceil(vf); 916 // CHECK: @llvm.ppc.altivec.vrfip 917 // CHECK-LE: @llvm.ppc.altivec.vrfip 918 919 res_vf = vec_vrfip(vf); 920 // CHECK: @llvm.ppc.altivec.vrfip 921 // CHECK-LE: @llvm.ppc.altivec.vrfip 922 923 /* vec_cmpb */ 924 res_vi = vec_cmpb(vf, vf); 925 // CHECK: @llvm.ppc.altivec.vcmpbfp 926 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp 927 928 res_vi = vec_vcmpbfp(vf, vf); 929 // CHECK: @llvm.ppc.altivec.vcmpbfp 930 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp 931 932 /* vec_cmpeq */ 933 res_vbc = vec_cmpeq(vsc, vsc); 934 // CHECK: @llvm.ppc.altivec.vcmpequb 935 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 936 937 res_vbc = vec_cmpeq(vuc, vuc); 938 // CHECK: @llvm.ppc.altivec.vcmpequb 939 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 940 941 res_vbs = vec_cmpeq(vs, vs); 942 // CHECK: @llvm.ppc.altivec.vcmpequh 943 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 944 945 res_vbs = vec_cmpeq(vus, vus); 946 // CHECK: @llvm.ppc.altivec.vcmpequh 947 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 948 949 res_vbi = vec_cmpeq(vi, vi); 950 // CHECK: @llvm.ppc.altivec.vcmpequw 951 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 952 953 res_vbi = vec_cmpeq(vui, vui); 954 // CHECK: @llvm.ppc.altivec.vcmpequw 955 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 956 957 res_vbi = vec_cmpeq(vf, vf); 958 // CHECK: @llvm.ppc.altivec.vcmpeqfp 959 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp 960 961 /* vec_cmpge */ 962 res_vbc = vec_cmpge(vsc, vsc); 963 // CHECK: @llvm.ppc.altivec.vcmpgtsb 964 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 965 966 res_vbc = vec_cmpge(vuc, vuc); 967 // CHECK: @llvm.ppc.altivec.vcmpgtub 968 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 969 970 res_vbs = vec_cmpge(vs, vs); 971 // CHECK: @llvm.ppc.altivec.vcmpgtsh 972 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 973 974 res_vbs = vec_cmpge(vus, vus); 975 // CHECK: @llvm.ppc.altivec.vcmpgtuh 976 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 977 978 res_vbi = vec_cmpge(vi, vi); 979 // CHECK: @llvm.ppc.altivec.vcmpgtsw 980 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 981 982 res_vbi = vec_cmpge(vui, vui); 983 // CHECK: @llvm.ppc.altivec.vcmpgtuw 984 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 985 986 res_vbi = vec_cmpge(vf, vf); 987 // CHECK: @llvm.ppc.altivec.vcmpgefp 988 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp 989 990 res_vbi = vec_vcmpgefp(vf, vf); 991 // CHECK: @llvm.ppc.altivec.vcmpgefp 992 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp 993 } 994 995 // CHECK-LABEL: define void @test5 996 void test5() { 997 998 /* vec_cmpgt */ 999 res_vbc = vec_cmpgt(vsc, vsc); 1000 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1001 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1002 1003 res_vbc = vec_cmpgt(vuc, vuc); 1004 // CHECK: @llvm.ppc.altivec.vcmpgtub 1005 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1006 1007 res_vbs = vec_cmpgt(vs, vs); 1008 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1009 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1010 1011 res_vbs = vec_cmpgt(vus, vus); 1012 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1013 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1014 1015 res_vbi = vec_cmpgt(vi, vi); 1016 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1017 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1018 1019 res_vbi = vec_cmpgt(vui, vui); 1020 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1021 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1022 1023 res_vbi = vec_cmpgt(vf, vf); 1024 // CHECK: @llvm.ppc.altivec.vcmpgtfp 1025 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp 1026 1027 res_vbc = vec_vcmpgtsb(vsc, vsc); 1028 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1029 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1030 1031 res_vbc = vec_vcmpgtub(vuc, vuc); 1032 // CHECK: @llvm.ppc.altivec.vcmpgtub 1033 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1034 1035 res_vbs = vec_vcmpgtsh(vs, vs); 1036 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1037 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1038 1039 res_vbs = vec_vcmpgtuh(vus, vus); 1040 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1041 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1042 1043 res_vbi = vec_vcmpgtsw(vi, vi); 1044 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1045 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1046 1047 res_vbi = vec_vcmpgtuw(vui, vui); 1048 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1049 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1050 1051 res_vbi = vec_vcmpgtfp(vf, vf); 1052 // CHECK: @llvm.ppc.altivec.vcmpgtfp 1053 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp 1054 1055 /* vec_cmple */ 1056 res_vbc = vec_cmple(vsc, vsc); 1057 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1058 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1059 1060 res_vbc = vec_cmple(vuc, vuc); 1061 // CHECK: @llvm.ppc.altivec.vcmpgtub 1062 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1063 1064 res_vbs = vec_cmple(vs, vs); 1065 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1066 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1067 1068 res_vbs = vec_cmple(vus, vus); 1069 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1070 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1071 1072 res_vbi = vec_cmple(vi, vi); 1073 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1074 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1075 1076 res_vbi = vec_cmple(vui, vui); 1077 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1078 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1079 1080 res_vbi = vec_cmple(vf, vf); 1081 // CHECK: @llvm.ppc.altivec.vcmpgefp 1082 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp 1083 } 1084 1085 // CHECK-LABEL: define void @test6 1086 void test6() { 1087 /* vec_cmplt */ 1088 res_vbc = vec_cmplt(vsc, vsc); 1089 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1090 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1091 1092 res_vbc = vec_cmplt(vuc, vuc); 1093 // CHECK: @llvm.ppc.altivec.vcmpgtub 1094 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1095 1096 res_vbs = vec_cmplt(vs, vs); 1097 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1098 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1099 1100 res_vbs = vec_cmplt(vus, vus); 1101 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1102 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1103 1104 res_vbi = vec_cmplt(vi, vi); 1105 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1106 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1107 1108 res_vbi = vec_cmplt(vui, vui); 1109 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1110 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1111 1112 res_vbi = vec_cmplt(vf, vf); 1113 // CHECK: @llvm.ppc.altivec.vcmpgtfp 1114 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp 1115 1116 /* vec_ctf */ 1117 res_vf = vec_ctf(vi, 0); 1118 // CHECK: @llvm.ppc.altivec.vcfsx 1119 // CHECK-LE: @llvm.ppc.altivec.vcfsx 1120 1121 res_vf = vec_ctf(vui, 0); 1122 // CHECK: @llvm.ppc.altivec.vcfux 1123 // CHECK-LE: @llvm.ppc.altivec.vcfux 1124 1125 res_vf = vec_vcfsx(vi, 0); 1126 // CHECK: @llvm.ppc.altivec.vcfsx 1127 // CHECK-LE: @llvm.ppc.altivec.vcfsx 1128 1129 res_vf = vec_vcfux(vui, 0); 1130 // CHECK: @llvm.ppc.altivec.vcfux 1131 // CHECK-LE: @llvm.ppc.altivec.vcfux 1132 1133 /* vec_cts */ 1134 res_vi = vec_cts(vf, 0); 1135 // CHECK: @llvm.ppc.altivec.vctsxs 1136 // CHECK-LE: @llvm.ppc.altivec.vctsxs 1137 1138 res_vi = vec_vctsxs(vf, 0); 1139 // CHECK: @llvm.ppc.altivec.vctsxs 1140 // CHECK-LE: @llvm.ppc.altivec.vctsxs 1141 1142 /* vec_ctu */ 1143 res_vui = vec_ctu(vf, 0); 1144 // CHECK: @llvm.ppc.altivec.vctuxs 1145 // CHECK-LE: @llvm.ppc.altivec.vctuxs 1146 1147 res_vui = vec_vctuxs(vf, 0); 1148 // CHECK: @llvm.ppc.altivec.vctuxs 1149 // CHECK-LE: @llvm.ppc.altivec.vctuxs 1150 1151 /* vec_div */ 1152 res_vsc = vec_div(vsc, vsc); 1153 // CHECK: sdiv <16 x i8> 1154 // CHECK-LE: sdiv <16 x i8> 1155 1156 res_vuc = vec_div(vuc, vuc); 1157 // CHECK: udiv <16 x i8> 1158 // CHECK-LE: udiv <16 x i8> 1159 1160 res_vs = vec_div(vs, vs); 1161 // CHECK: sdiv <8 x i16> 1162 // CHECK-LE: sdiv <8 x i16> 1163 1164 res_vus = vec_div(vus, vus); 1165 // CHECK: udiv <8 x i16> 1166 // CHECK-LE: udiv <8 x i16> 1167 1168 res_vi = vec_div(vi, vi); 1169 // CHECK: sdiv <4 x i32> 1170 // CHECK-LE: sdiv <4 x i32> 1171 1172 res_vui = vec_div(vui, vui); 1173 // CHECK: udiv <4 x i32> 1174 // CHECK-LE: udiv <4 x i32> 1175 1176 /* vec_dss */ 1177 vec_dss(0); 1178 // CHECK: @llvm.ppc.altivec.dss 1179 // CHECK-LE: @llvm.ppc.altivec.dss 1180 1181 /* vec_dssall */ 1182 vec_dssall(); 1183 // CHECK: @llvm.ppc.altivec.dssall 1184 // CHECK-LE: @llvm.ppc.altivec.dssall 1185 1186 /* vec_dst */ 1187 vec_dst(&vsc, 0, 0); 1188 // CHECK: @llvm.ppc.altivec.dst 1189 // CHECK-LE: @llvm.ppc.altivec.dst 1190 1191 /* vec_dstst */ 1192 vec_dstst(&vs, 0, 0); 1193 // CHECK: @llvm.ppc.altivec.dstst 1194 // CHECK-LE: @llvm.ppc.altivec.dstst 1195 1196 /* vec_dststt */ 1197 vec_dststt(¶m_i, 0, 0); 1198 // CHECK: @llvm.ppc.altivec.dststt 1199 // CHECK-LE: @llvm.ppc.altivec.dststt 1200 1201 /* vec_dstt */ 1202 vec_dstt(&vf, 0, 0); 1203 // CHECK: @llvm.ppc.altivec.dstt 1204 // CHECK-LE: @llvm.ppc.altivec.dstt 1205 1206 /* vec_expte */ 1207 res_vf = vec_expte(vf); 1208 // CHECK: @llvm.ppc.altivec.vexptefp 1209 // CHECK-LE: @llvm.ppc.altivec.vexptefp 1210 1211 res_vf = vec_vexptefp(vf); 1212 // CHECK: @llvm.ppc.altivec.vexptefp 1213 // CHECK-LE: @llvm.ppc.altivec.vexptefp 1214 1215 /* vec_floor */ 1216 res_vf = vec_floor(vf); 1217 // CHECK: @llvm.ppc.altivec.vrfim 1218 // CHECK-LE: @llvm.ppc.altivec.vrfim 1219 1220 res_vf = vec_vrfim(vf); 1221 // CHECK: @llvm.ppc.altivec.vrfim 1222 // CHECK-LE: @llvm.ppc.altivec.vrfim 1223 1224 /* vec_ld */ 1225 res_vsc = vec_ld(0, &vsc); 1226 // CHECK: @llvm.ppc.altivec.lvx 1227 // CHECK-LE: @llvm.ppc.altivec.lvx 1228 1229 res_vsc = vec_ld(0, ¶m_sc); 1230 // CHECK: @llvm.ppc.altivec.lvx 1231 // CHECK-LE: @llvm.ppc.altivec.lvx 1232 1233 res_vuc = vec_ld(0, &vuc); 1234 // CHECK: @llvm.ppc.altivec.lvx 1235 // CHECK-LE: @llvm.ppc.altivec.lvx 1236 1237 res_vuc = vec_ld(0, ¶m_uc); 1238 // CHECK: @llvm.ppc.altivec.lvx 1239 // CHECK-LE: @llvm.ppc.altivec.lvx 1240 1241 res_vbc = vec_ld(0, &vbc); 1242 // CHECK: @llvm.ppc.altivec.lvx 1243 // CHECK-LE: @llvm.ppc.altivec.lvx 1244 1245 res_vs = vec_ld(0, &vs); 1246 // CHECK: @llvm.ppc.altivec.lvx 1247 // CHECK-LE: @llvm.ppc.altivec.lvx 1248 1249 res_vs = vec_ld(0, ¶m_s); 1250 // CHECK: @llvm.ppc.altivec.lvx 1251 // CHECK-LE: @llvm.ppc.altivec.lvx 1252 1253 res_vus = vec_ld(0, &vus); 1254 // CHECK: @llvm.ppc.altivec.lvx 1255 // CHECK-LE: @llvm.ppc.altivec.lvx 1256 1257 res_vus = vec_ld(0, ¶m_us); 1258 // CHECK: @llvm.ppc.altivec.lvx 1259 // CHECK-LE: @llvm.ppc.altivec.lvx 1260 1261 res_vbs = vec_ld(0, &vbs); 1262 // CHECK: @llvm.ppc.altivec.lvx 1263 // CHECK-LE: @llvm.ppc.altivec.lvx 1264 1265 res_vp = vec_ld(0, &vp); 1266 // CHECK: @llvm.ppc.altivec.lvx 1267 // CHECK-LE: @llvm.ppc.altivec.lvx 1268 1269 res_vi = vec_ld(0, &vi); 1270 // CHECK: @llvm.ppc.altivec.lvx 1271 // CHECK-LE: @llvm.ppc.altivec.lvx 1272 1273 res_vi = vec_ld(0, ¶m_i); 1274 // CHECK: @llvm.ppc.altivec.lvx 1275 // CHECK-LE: @llvm.ppc.altivec.lvx 1276 1277 res_vui = vec_ld(0, &vui); 1278 // CHECK: @llvm.ppc.altivec.lvx 1279 // CHECK-LE: @llvm.ppc.altivec.lvx 1280 1281 res_vui = vec_ld(0, ¶m_ui); 1282 // CHECK: @llvm.ppc.altivec.lvx 1283 // CHECK-LE: @llvm.ppc.altivec.lvx 1284 1285 res_vbi = vec_ld(0, &vbi); 1286 // CHECK: @llvm.ppc.altivec.lvx 1287 // CHECK-LE: @llvm.ppc.altivec.lvx 1288 1289 res_vf = vec_ld(0, &vf); 1290 // CHECK: @llvm.ppc.altivec.lvx 1291 // CHECK-LE: @llvm.ppc.altivec.lvx 1292 1293 res_vf = vec_ld(0, ¶m_f); 1294 // CHECK: @llvm.ppc.altivec.lvx 1295 // CHECK-LE: @llvm.ppc.altivec.lvx 1296 1297 res_vsc = vec_lvx(0, &vsc); 1298 // CHECK: @llvm.ppc.altivec.lvx 1299 // CHECK-LE: @llvm.ppc.altivec.lvx 1300 1301 res_vsc = vec_lvx(0, ¶m_sc); 1302 // CHECK: @llvm.ppc.altivec.lvx 1303 // CHECK-LE: @llvm.ppc.altivec.lvx 1304 1305 res_vuc = vec_lvx(0, &vuc); 1306 // CHECK: @llvm.ppc.altivec.lvx 1307 // CHECK-LE: @llvm.ppc.altivec.lvx 1308 1309 res_vuc = vec_lvx(0, ¶m_uc); 1310 // CHECK: @llvm.ppc.altivec.lvx 1311 // CHECK-LE: @llvm.ppc.altivec.lvx 1312 1313 res_vbc = vec_lvx(0, &vbc); 1314 // CHECK: @llvm.ppc.altivec.lvx 1315 // CHECK-LE: @llvm.ppc.altivec.lvx 1316 1317 res_vs = vec_lvx(0, &vs); 1318 // CHECK: @llvm.ppc.altivec.lvx 1319 // CHECK-LE: @llvm.ppc.altivec.lvx 1320 1321 res_vs = vec_lvx(0, ¶m_s); 1322 // CHECK: @llvm.ppc.altivec.lvx 1323 // CHECK-LE: @llvm.ppc.altivec.lvx 1324 1325 res_vus = vec_lvx(0, &vus); 1326 // CHECK: @llvm.ppc.altivec.lvx 1327 // CHECK-LE: @llvm.ppc.altivec.lvx 1328 1329 res_vus = vec_lvx(0, ¶m_us); 1330 // CHECK: @llvm.ppc.altivec.lvx 1331 // CHECK-LE: @llvm.ppc.altivec.lvx 1332 1333 res_vbs = vec_lvx(0, &vbs); 1334 // CHECK: @llvm.ppc.altivec.lvx 1335 // CHECK-LE: @llvm.ppc.altivec.lvx 1336 1337 res_vp = vec_lvx(0, &vp); 1338 // CHECK: @llvm.ppc.altivec.lvx 1339 // CHECK-LE: @llvm.ppc.altivec.lvx 1340 1341 res_vi = vec_lvx(0, &vi); 1342 // CHECK: @llvm.ppc.altivec.lvx 1343 // CHECK-LE: @llvm.ppc.altivec.lvx 1344 1345 res_vi = vec_lvx(0, ¶m_i); 1346 // CHECK: @llvm.ppc.altivec.lvx 1347 // CHECK-LE: @llvm.ppc.altivec.lvx 1348 1349 res_vui = vec_lvx(0, &vui); 1350 // CHECK: @llvm.ppc.altivec.lvx 1351 // CHECK-LE: @llvm.ppc.altivec.lvx 1352 1353 res_vui = vec_lvx(0, ¶m_ui); 1354 // CHECK: @llvm.ppc.altivec.lvx 1355 // CHECK-LE: @llvm.ppc.altivec.lvx 1356 1357 res_vbi = vec_lvx(0, &vbi); 1358 // CHECK: @llvm.ppc.altivec.lvx 1359 // CHECK-LE: @llvm.ppc.altivec.lvx 1360 1361 res_vf = vec_lvx(0, &vf); 1362 // CHECK: @llvm.ppc.altivec.lvx 1363 // CHECK-LE: @llvm.ppc.altivec.lvx 1364 1365 res_vf = vec_lvx(0, ¶m_f); 1366 // CHECK: @llvm.ppc.altivec.lvx 1367 // CHECK-LE: @llvm.ppc.altivec.lvx 1368 1369 /* vec_lde */ 1370 res_vsc = vec_lde(0, ¶m_sc); 1371 // CHECK: @llvm.ppc.altivec.lvebx 1372 // CHECK-LE: @llvm.ppc.altivec.lvebx 1373 1374 res_vuc = vec_lde(0, ¶m_uc); 1375 // CHECK: @llvm.ppc.altivec.lvebx 1376 // CHECK-LE: @llvm.ppc.altivec.lvebx 1377 1378 res_vs = vec_lde(0, ¶m_s); 1379 // CHECK: @llvm.ppc.altivec.lvehx 1380 // CHECK-LE: @llvm.ppc.altivec.lvehx 1381 1382 res_vus = vec_lde(0, ¶m_us); 1383 // CHECK: @llvm.ppc.altivec.lvehx 1384 // CHECK-LE: @llvm.ppc.altivec.lvehx 1385 1386 res_vi = vec_lde(0, ¶m_i); 1387 // CHECK: @llvm.ppc.altivec.lvewx 1388 // CHECK-LE: @llvm.ppc.altivec.lvewx 1389 1390 res_vui = vec_lde(0, ¶m_ui); 1391 // CHECK: @llvm.ppc.altivec.lvewx 1392 // CHECK-LE: @llvm.ppc.altivec.lvewx 1393 1394 res_vf = vec_lde(0, ¶m_f); 1395 // CHECK: @llvm.ppc.altivec.lvewx 1396 // CHECK-LE: @llvm.ppc.altivec.lvewx 1397 1398 res_vsc = vec_lvebx(0, ¶m_sc); 1399 // CHECK: @llvm.ppc.altivec.lvebx 1400 // CHECK-LE: @llvm.ppc.altivec.lvebx 1401 1402 res_vuc = vec_lvebx(0, ¶m_uc); 1403 // CHECK: @llvm.ppc.altivec.lvebx 1404 // CHECK-LE: @llvm.ppc.altivec.lvebx 1405 1406 res_vs = vec_lvehx(0, ¶m_s); 1407 // CHECK: @llvm.ppc.altivec.lvehx 1408 // CHECK-LE: @llvm.ppc.altivec.lvehx 1409 1410 res_vus = vec_lvehx(0, ¶m_us); 1411 // CHECK: @llvm.ppc.altivec.lvehx 1412 // CHECK-LE: @llvm.ppc.altivec.lvehx 1413 1414 res_vi = vec_lvewx(0, ¶m_i); 1415 // CHECK: @llvm.ppc.altivec.lvewx 1416 // CHECK-LE: @llvm.ppc.altivec.lvewx 1417 1418 res_vui = vec_lvewx(0, ¶m_ui); 1419 // CHECK: @llvm.ppc.altivec.lvewx 1420 // CHECK-LE: @llvm.ppc.altivec.lvewx 1421 1422 res_vf = vec_lvewx(0, ¶m_f); 1423 // CHECK: @llvm.ppc.altivec.lvewx 1424 // CHECK-LE: @llvm.ppc.altivec.lvewx 1425 1426 /* vec_ldl */ 1427 res_vsc = vec_ldl(0, &vsc); 1428 // CHECK: @llvm.ppc.altivec.lvxl 1429 // CHECK-LE: @llvm.ppc.altivec.lvxl 1430 1431 res_vsc = vec_ldl(0, ¶m_sc); 1432 // CHECK: @llvm.ppc.altivec.lvxl 1433 // CHECK-LE: @llvm.ppc.altivec.lvxl 1434 1435 res_vuc = vec_ldl(0, &vuc); 1436 // CHECK: @llvm.ppc.altivec.lvxl 1437 // CHECK-LE: @llvm.ppc.altivec.lvxl 1438 1439 res_vuc = vec_ldl(0, ¶m_uc); 1440 // CHECK: @llvm.ppc.altivec.lvxl 1441 // CHECK-LE: @llvm.ppc.altivec.lvxl 1442 1443 res_vbc = vec_ldl(0, &vbc); 1444 // CHECK: @llvm.ppc.altivec.lvxl 1445 // CHECK-LE: @llvm.ppc.altivec.lvxl 1446 1447 res_vs = vec_ldl(0, &vs); 1448 // CHECK: @llvm.ppc.altivec.lvxl 1449 // CHECK-LE: @llvm.ppc.altivec.lvxl 1450 1451 res_vs = vec_ldl(0, ¶m_s); 1452 // CHECK: @llvm.ppc.altivec.lvxl 1453 // CHECK-LE: @llvm.ppc.altivec.lvxl 1454 1455 res_vus = vec_ldl(0, &vus); 1456 // CHECK: @llvm.ppc.altivec.lvxl 1457 // CHECK-LE: @llvm.ppc.altivec.lvxl 1458 1459 res_vus = vec_ldl(0, ¶m_us); 1460 // CHECK: @llvm.ppc.altivec.lvxl 1461 // CHECK-LE: @llvm.ppc.altivec.lvxl 1462 1463 res_vbs = vec_ldl(0, &vbs); 1464 // CHECK: @llvm.ppc.altivec.lvxl 1465 // CHECK-LE: @llvm.ppc.altivec.lvxl 1466 1467 res_vp = vec_ldl(0, &vp); 1468 // CHECK: @llvm.ppc.altivec.lvxl 1469 // CHECK-LE: @llvm.ppc.altivec.lvxl 1470 1471 res_vi = vec_ldl(0, &vi); 1472 // CHECK: @llvm.ppc.altivec.lvxl 1473 // CHECK-LE: @llvm.ppc.altivec.lvxl 1474 1475 res_vi = vec_ldl(0, ¶m_i); 1476 // CHECK: @llvm.ppc.altivec.lvxl 1477 // CHECK-LE: @llvm.ppc.altivec.lvxl 1478 1479 res_vui = vec_ldl(0, &vui); 1480 // CHECK: @llvm.ppc.altivec.lvxl 1481 // CHECK-LE: @llvm.ppc.altivec.lvxl 1482 1483 res_vui = vec_ldl(0, ¶m_ui); 1484 // CHECK: @llvm.ppc.altivec.lvxl 1485 // CHECK-LE: @llvm.ppc.altivec.lvxl 1486 1487 res_vbi = vec_ldl(0, &vbi); 1488 // CHECK: @llvm.ppc.altivec.lvxl 1489 // CHECK-LE: @llvm.ppc.altivec.lvxl 1490 1491 res_vf = vec_ldl(0, &vf); 1492 // CHECK: @llvm.ppc.altivec.lvxl 1493 // CHECK-LE: @llvm.ppc.altivec.lvxl 1494 1495 res_vf = vec_ldl(0, ¶m_f); 1496 // CHECK: @llvm.ppc.altivec.lvxl 1497 // CHECK-LE: @llvm.ppc.altivec.lvxl 1498 1499 res_vsc = vec_lvxl(0, &vsc); 1500 // CHECK: @llvm.ppc.altivec.lvxl 1501 // CHECK-LE: @llvm.ppc.altivec.lvxl 1502 1503 res_vsc = vec_lvxl(0, ¶m_sc); 1504 // CHECK: @llvm.ppc.altivec.lvxl 1505 // CHECK-LE: @llvm.ppc.altivec.lvxl 1506 1507 res_vuc = vec_lvxl(0, &vuc); 1508 // CHECK: @llvm.ppc.altivec.lvxl 1509 // CHECK-LE: @llvm.ppc.altivec.lvxl 1510 1511 res_vbc = vec_lvxl(0, &vbc); 1512 // CHECK: @llvm.ppc.altivec.lvxl 1513 // CHECK-LE: @llvm.ppc.altivec.lvxl 1514 1515 res_vuc = vec_lvxl(0, ¶m_uc); 1516 // CHECK: @llvm.ppc.altivec.lvxl 1517 // CHECK-LE: @llvm.ppc.altivec.lvxl 1518 1519 res_vs = vec_lvxl(0, &vs); 1520 // CHECK: @llvm.ppc.altivec.lvxl 1521 // CHECK-LE: @llvm.ppc.altivec.lvxl 1522 1523 res_vs = vec_lvxl(0, ¶m_s); 1524 // CHECK: @llvm.ppc.altivec.lvxl 1525 // CHECK-LE: @llvm.ppc.altivec.lvxl 1526 1527 res_vus = vec_lvxl(0, &vus); 1528 // CHECK: @llvm.ppc.altivec.lvxl 1529 // CHECK-LE: @llvm.ppc.altivec.lvxl 1530 1531 res_vus = vec_lvxl(0, ¶m_us); 1532 // CHECK: @llvm.ppc.altivec.lvxl 1533 // CHECK-LE: @llvm.ppc.altivec.lvxl 1534 1535 res_vbs = vec_lvxl(0, &vbs); 1536 // CHECK: @llvm.ppc.altivec.lvxl 1537 // CHECK-LE: @llvm.ppc.altivec.lvxl 1538 1539 res_vp = vec_lvxl(0, &vp); 1540 // CHECK: @llvm.ppc.altivec.lvxl 1541 // CHECK-LE: @llvm.ppc.altivec.lvxl 1542 1543 res_vi = vec_lvxl(0, &vi); 1544 // CHECK: @llvm.ppc.altivec.lvxl 1545 // CHECK-LE: @llvm.ppc.altivec.lvxl 1546 1547 res_vi = vec_lvxl(0, ¶m_i); 1548 // CHECK: @llvm.ppc.altivec.lvxl 1549 // CHECK-LE: @llvm.ppc.altivec.lvxl 1550 1551 res_vui = vec_lvxl(0, &vui); 1552 // CHECK: @llvm.ppc.altivec.lvxl 1553 // CHECK-LE: @llvm.ppc.altivec.lvxl 1554 1555 res_vui = vec_lvxl(0, ¶m_ui); 1556 // CHECK: @llvm.ppc.altivec.lvxl 1557 // CHECK-LE: @llvm.ppc.altivec.lvxl 1558 1559 res_vbi = vec_lvxl(0, &vbi); 1560 // CHECK: @llvm.ppc.altivec.lvxl 1561 // CHECK-LE: @llvm.ppc.altivec.lvxl 1562 1563 res_vf = vec_lvxl(0, &vf); 1564 // CHECK: @llvm.ppc.altivec.lvxl 1565 // CHECK-LE: @llvm.ppc.altivec.lvxl 1566 1567 res_vf = vec_lvxl(0, ¶m_f); 1568 // CHECK: @llvm.ppc.altivec.lvxl 1569 // CHECK-LE: @llvm.ppc.altivec.lvxl 1570 1571 /* vec_loge */ 1572 res_vf = vec_loge(vf); 1573 // CHECK: @llvm.ppc.altivec.vlogefp 1574 // CHECK-LE: @llvm.ppc.altivec.vlogefp 1575 1576 res_vf = vec_vlogefp(vf); 1577 // CHECK: @llvm.ppc.altivec.vlogefp 1578 // CHECK-LE: @llvm.ppc.altivec.vlogefp 1579 1580 /* vec_lvsl */ 1581 res_vuc = vec_lvsl(0, ¶m_i); 1582 // CHECK: @llvm.ppc.altivec.lvsl 1583 // CHECK-LE: @llvm.ppc.altivec.lvsl 1584 1585 /* vec_lvsr */ 1586 res_vuc = vec_lvsr(0, ¶m_i); 1587 // CHECK: @llvm.ppc.altivec.lvsr 1588 // CHECK-LE: @llvm.ppc.altivec.lvsr 1589 1590 /* vec_madd */ 1591 res_vf =vec_madd(vf, vf, vf); 1592 // CHECK: @llvm.ppc.altivec.vmaddfp 1593 // CHECK-LE: @llvm.ppc.altivec.vmaddfp 1594 1595 res_vf = vec_vmaddfp(vf, vf, vf); 1596 // CHECK: @llvm.ppc.altivec.vmaddfp 1597 // CHECK-LE: @llvm.ppc.altivec.vmaddfp 1598 1599 /* vec_madds */ 1600 res_vs = vec_madds(vs, vs, vs); 1601 // CHECK: @llvm.ppc.altivec.vmhaddshs 1602 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs 1603 1604 res_vs = vec_vmhaddshs(vs, vs, vs); 1605 // CHECK: @llvm.ppc.altivec.vmhaddshs 1606 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs 1607 1608 /* vec_max */ 1609 res_vsc = vec_max(vsc, vsc); 1610 // CHECK: @llvm.ppc.altivec.vmaxsb 1611 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1612 1613 res_vsc = vec_max(vbc, vsc); 1614 // CHECK: @llvm.ppc.altivec.vmaxsb 1615 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1616 1617 res_vsc = vec_max(vsc, vbc); 1618 // CHECK: @llvm.ppc.altivec.vmaxsb 1619 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1620 1621 res_vuc = vec_max(vuc, vuc); 1622 // CHECK: @llvm.ppc.altivec.vmaxub 1623 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1624 1625 res_vuc = vec_max(vbc, vuc); 1626 // CHECK: @llvm.ppc.altivec.vmaxub 1627 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1628 1629 res_vuc = vec_max(vuc, vbc); 1630 // CHECK: @llvm.ppc.altivec.vmaxub 1631 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1632 1633 res_vs = vec_max(vs, vs); 1634 // CHECK: @llvm.ppc.altivec.vmaxsh 1635 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1636 1637 res_vs = vec_max(vbs, vs); 1638 // CHECK: @llvm.ppc.altivec.vmaxsh 1639 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1640 1641 res_vs = vec_max(vs, vbs); 1642 // CHECK: @llvm.ppc.altivec.vmaxsh 1643 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1644 1645 res_vus = vec_max(vus, vus); 1646 // CHECK: @llvm.ppc.altivec.vmaxuh 1647 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1648 1649 res_vus = vec_max(vbs, vus); 1650 // CHECK: @llvm.ppc.altivec.vmaxuh 1651 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1652 1653 res_vus = vec_max(vus, vbs); 1654 // CHECK: @llvm.ppc.altivec.vmaxuh 1655 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1656 1657 res_vi = vec_max(vi, vi); 1658 // CHECK: @llvm.ppc.altivec.vmaxsw 1659 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1660 1661 res_vi = vec_max(vbi, vi); 1662 // CHECK: @llvm.ppc.altivec.vmaxsw 1663 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1664 1665 res_vi = vec_max(vi, vbi); 1666 // CHECK: @llvm.ppc.altivec.vmaxsw 1667 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1668 1669 res_vui = vec_max(vui, vui); 1670 // CHECK: @llvm.ppc.altivec.vmaxuw 1671 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1672 1673 res_vui = vec_max(vbi, vui); 1674 // CHECK: @llvm.ppc.altivec.vmaxuw 1675 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1676 1677 res_vui = vec_max(vui, vbi); 1678 // CHECK: @llvm.ppc.altivec.vmaxuw 1679 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1680 1681 res_vf = vec_max(vf, vf); 1682 // CHECK: @llvm.ppc.altivec.vmaxfp 1683 // CHECK-LE: @llvm.ppc.altivec.vmaxfp 1684 1685 res_vsc = vec_vmaxsb(vsc, vsc); 1686 // CHECK: @llvm.ppc.altivec.vmaxsb 1687 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1688 1689 res_vsc = vec_vmaxsb(vbc, vsc); 1690 // CHECK: @llvm.ppc.altivec.vmaxsb 1691 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1692 1693 res_vsc = vec_vmaxsb(vsc, vbc); 1694 // CHECK: @llvm.ppc.altivec.vmaxsb 1695 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1696 1697 res_vuc = vec_vmaxub(vuc, vuc); 1698 // CHECK: @llvm.ppc.altivec.vmaxub 1699 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1700 1701 res_vuc = vec_vmaxub(vbc, vuc); 1702 // CHECK: @llvm.ppc.altivec.vmaxub 1703 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1704 1705 res_vuc = vec_vmaxub(vuc, vbc); 1706 // CHECK: @llvm.ppc.altivec.vmaxub 1707 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1708 1709 res_vs = vec_vmaxsh(vs, vs); 1710 // CHECK: @llvm.ppc.altivec.vmaxsh 1711 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1712 1713 res_vs = vec_vmaxsh(vbs, vs); 1714 // CHECK: @llvm.ppc.altivec.vmaxsh 1715 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1716 1717 res_vs = vec_vmaxsh(vs, vbs); 1718 // CHECK: @llvm.ppc.altivec.vmaxsh 1719 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1720 1721 res_vus = vec_vmaxuh(vus, vus); 1722 // CHECK: @llvm.ppc.altivec.vmaxuh 1723 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1724 1725 res_vus = vec_vmaxuh(vbs, vus); 1726 // CHECK: @llvm.ppc.altivec.vmaxuh 1727 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1728 1729 res_vus = vec_vmaxuh(vus, vbs); 1730 // CHECK: @llvm.ppc.altivec.vmaxuh 1731 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1732 1733 res_vi = vec_vmaxsw(vi, vi); 1734 // CHECK: @llvm.ppc.altivec.vmaxsw 1735 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1736 1737 res_vi = vec_vmaxsw(vbi, vi); 1738 // CHECK: @llvm.ppc.altivec.vmaxsw 1739 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1740 1741 res_vi = vec_vmaxsw(vi, vbi); 1742 // CHECK: @llvm.ppc.altivec.vmaxsw 1743 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1744 1745 res_vui = vec_vmaxuw(vui, vui); 1746 // CHECK: @llvm.ppc.altivec.vmaxuw 1747 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1748 1749 res_vui = vec_vmaxuw(vbi, vui); 1750 // CHECK: @llvm.ppc.altivec.vmaxuw 1751 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1752 1753 res_vui = vec_vmaxuw(vui, vbi); 1754 // CHECK: @llvm.ppc.altivec.vmaxuw 1755 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1756 1757 res_vf = vec_vmaxfp(vf, vf); 1758 // CHECK: @llvm.ppc.altivec.vmaxfp 1759 // CHECK-LE: @llvm.ppc.altivec.vmaxfp 1760 1761 /* vec_mergeh */ 1762 res_vsc = vec_mergeh(vsc, vsc); 1763 // CHECK: @llvm.ppc.altivec.vperm 1764 // CHECK-LE: @llvm.ppc.altivec.vperm 1765 1766 res_vuc = vec_mergeh(vuc, vuc); 1767 // CHECK: @llvm.ppc.altivec.vperm 1768 // CHECK-LE: @llvm.ppc.altivec.vperm 1769 1770 res_vbc = vec_mergeh(vbc, vbc); 1771 // CHECK: @llvm.ppc.altivec.vperm 1772 // CHECK-LE: @llvm.ppc.altivec.vperm 1773 1774 res_vs = vec_mergeh(vs, vs); 1775 // CHECK: @llvm.ppc.altivec.vperm 1776 // CHECK-LE: @llvm.ppc.altivec.vperm 1777 1778 res_vp = vec_mergeh(vp, vp); 1779 // CHECK: @llvm.ppc.altivec.vperm 1780 // CHECK-LE: @llvm.ppc.altivec.vperm 1781 1782 res_vus = vec_mergeh(vus, vus); 1783 // CHECK: @llvm.ppc.altivec.vperm 1784 // CHECK-LE: @llvm.ppc.altivec.vperm 1785 1786 res_vbs = vec_mergeh(vbs, vbs); 1787 // CHECK: @llvm.ppc.altivec.vperm 1788 // CHECK-LE: @llvm.ppc.altivec.vperm 1789 1790 res_vi = vec_mergeh(vi, vi); 1791 // CHECK: @llvm.ppc.altivec.vperm 1792 // CHECK-LE: @llvm.ppc.altivec.vperm 1793 1794 res_vui = vec_mergeh(vui, vui); 1795 // CHECK: @llvm.ppc.altivec.vperm 1796 // CHECK-LE: @llvm.ppc.altivec.vperm 1797 1798 res_vbi = vec_mergeh(vbi, vbi); 1799 // CHECK: @llvm.ppc.altivec.vperm 1800 // CHECK-LE: @llvm.ppc.altivec.vperm 1801 1802 res_vf = vec_mergeh(vf, vf); 1803 // CHECK: @llvm.ppc.altivec.vperm 1804 // CHECK-LE: @llvm.ppc.altivec.vperm 1805 1806 res_vsc = vec_vmrghb(vsc, vsc); 1807 // CHECK: @llvm.ppc.altivec.vperm 1808 // CHECK-LE: @llvm.ppc.altivec.vperm 1809 1810 res_vuc = vec_vmrghb(vuc, vuc); 1811 // CHECK: @llvm.ppc.altivec.vperm 1812 // CHECK-LE: @llvm.ppc.altivec.vperm 1813 1814 res_vbc = vec_vmrghb(vbc, vbc); 1815 // CHECK: @llvm.ppc.altivec.vperm 1816 // CHECK-LE: @llvm.ppc.altivec.vperm 1817 1818 res_vs = vec_vmrghh(vs, vs); 1819 // CHECK: @llvm.ppc.altivec.vperm 1820 // CHECK-LE: @llvm.ppc.altivec.vperm 1821 1822 res_vp = vec_vmrghh(vp, vp); 1823 // CHECK: @llvm.ppc.altivec.vperm 1824 // CHECK-LE: @llvm.ppc.altivec.vperm 1825 1826 res_vus = vec_vmrghh(vus, vus); 1827 // CHECK: @llvm.ppc.altivec.vperm 1828 // CHECK-LE: @llvm.ppc.altivec.vperm 1829 1830 res_vbs = vec_vmrghh(vbs, vbs); 1831 // CHECK: @llvm.ppc.altivec.vperm 1832 // CHECK-LE: @llvm.ppc.altivec.vperm 1833 1834 res_vi = vec_vmrghw(vi, vi); 1835 // CHECK: @llvm.ppc.altivec.vperm 1836 // CHECK-LE: @llvm.ppc.altivec.vperm 1837 1838 res_vui = vec_vmrghw(vui, vui); 1839 // CHECK: @llvm.ppc.altivec.vperm 1840 // CHECK-LE: @llvm.ppc.altivec.vperm 1841 1842 res_vbi = vec_vmrghw(vbi, vbi); 1843 // CHECK: @llvm.ppc.altivec.vperm 1844 // CHECK-LE: @llvm.ppc.altivec.vperm 1845 1846 res_vf = vec_vmrghw(vf, vf); 1847 // CHECK: @llvm.ppc.altivec.vperm 1848 // CHECK-LE: @llvm.ppc.altivec.vperm 1849 1850 /* vec_mergel */ 1851 res_vsc = vec_mergel(vsc, vsc); 1852 // CHECK: @llvm.ppc.altivec.vperm 1853 // CHECK-LE: @llvm.ppc.altivec.vperm 1854 1855 res_vuc = vec_mergel(vuc, vuc); 1856 // CHECK: @llvm.ppc.altivec.vperm 1857 // CHECK-LE: @llvm.ppc.altivec.vperm 1858 1859 res_vbc = vec_mergel(vbc, vbc); 1860 // CHECK: @llvm.ppc.altivec.vperm 1861 // CHECK-LE: @llvm.ppc.altivec.vperm 1862 1863 res_vs = vec_mergel(vs, vs); 1864 // CHECK: @llvm.ppc.altivec.vperm 1865 // CHECK-LE: @llvm.ppc.altivec.vperm 1866 1867 res_vp = vec_mergeh(vp, vp); 1868 // CHECK: @llvm.ppc.altivec.vperm 1869 // CHECK-LE: @llvm.ppc.altivec.vperm 1870 1871 res_vus = vec_mergel(vus, vus); 1872 // CHECK: @llvm.ppc.altivec.vperm 1873 // CHECK-LE: @llvm.ppc.altivec.vperm 1874 1875 res_vbs = vec_mergel(vbs, vbs); 1876 // CHECK: @llvm.ppc.altivec.vperm 1877 // CHECK-LE: @llvm.ppc.altivec.vperm 1878 1879 res_vi = vec_mergel(vi, vi); 1880 // CHECK: @llvm.ppc.altivec.vperm 1881 // CHECK-LE: @llvm.ppc.altivec.vperm 1882 1883 res_vui = vec_mergel(vui, vui); 1884 // CHECK: @llvm.ppc.altivec.vperm 1885 // CHECK-LE: @llvm.ppc.altivec.vperm 1886 1887 res_vbi = vec_mergel(vbi, vbi); 1888 // CHECK: @llvm.ppc.altivec.vperm 1889 // CHECK-LE: @llvm.ppc.altivec.vperm 1890 1891 res_vf = vec_mergel(vf, vf); 1892 // CHECK: @llvm.ppc.altivec.vperm 1893 // CHECK-LE: @llvm.ppc.altivec.vperm 1894 1895 res_vsc = vec_vmrglb(vsc, vsc); 1896 // CHECK: @llvm.ppc.altivec.vperm 1897 // CHECK-LE: @llvm.ppc.altivec.vperm 1898 1899 res_vuc = vec_vmrglb(vuc, vuc); 1900 // CHECK: @llvm.ppc.altivec.vperm 1901 // CHECK-LE: @llvm.ppc.altivec.vperm 1902 1903 res_vbc = vec_vmrglb(vbc, vbc); 1904 // CHECK: @llvm.ppc.altivec.vperm 1905 // CHECK-LE: @llvm.ppc.altivec.vperm 1906 1907 res_vs = vec_vmrglh(vs, vs); 1908 // CHECK: @llvm.ppc.altivec.vperm 1909 // CHECK-LE: @llvm.ppc.altivec.vperm 1910 1911 res_vp = vec_vmrglh(vp, vp); 1912 // CHECK: @llvm.ppc.altivec.vperm 1913 // CHECK-LE: @llvm.ppc.altivec.vperm 1914 1915 res_vus = vec_vmrglh(vus, vus); 1916 // CHECK: @llvm.ppc.altivec.vperm 1917 // CHECK-LE: @llvm.ppc.altivec.vperm 1918 1919 res_vbs = vec_vmrglh(vbs, vbs); 1920 // CHECK: @llvm.ppc.altivec.vperm 1921 // CHECK-LE: @llvm.ppc.altivec.vperm 1922 1923 res_vi = vec_vmrglw(vi, vi); 1924 // CHECK: @llvm.ppc.altivec.vperm 1925 // CHECK-LE: @llvm.ppc.altivec.vperm 1926 1927 res_vui = vec_vmrglw(vui, vui); 1928 // CHECK: @llvm.ppc.altivec.vperm 1929 // CHECK-LE: @llvm.ppc.altivec.vperm 1930 1931 res_vbi = vec_vmrglw(vbi, vbi); 1932 // CHECK: @llvm.ppc.altivec.vperm 1933 // CHECK-LE: @llvm.ppc.altivec.vperm 1934 1935 res_vf = vec_vmrglw(vf, vf); 1936 // CHECK: @llvm.ppc.altivec.vperm 1937 // CHECK-LE: @llvm.ppc.altivec.vperm 1938 1939 /* vec_mfvscr */ 1940 vus = vec_mfvscr(); 1941 // CHECK: @llvm.ppc.altivec.mfvscr 1942 // CHECK-LE: @llvm.ppc.altivec.mfvscr 1943 1944 /* vec_min */ 1945 res_vsc = vec_min(vsc, vsc); 1946 // CHECK: @llvm.ppc.altivec.vminsb 1947 // CHECK-LE: @llvm.ppc.altivec.vminsb 1948 1949 res_vsc = vec_min(vbc, vsc); 1950 // CHECK: @llvm.ppc.altivec.vminsb 1951 // CHECK-LE: @llvm.ppc.altivec.vminsb 1952 1953 res_vsc = vec_min(vsc, vbc); 1954 // CHECK: @llvm.ppc.altivec.vminsb 1955 // CHECK-LE: @llvm.ppc.altivec.vminsb 1956 1957 res_vuc = vec_min(vuc, vuc); 1958 // CHECK: @llvm.ppc.altivec.vminub 1959 // CHECK-LE: @llvm.ppc.altivec.vminub 1960 1961 res_vuc = vec_min(vbc, vuc); 1962 // CHECK: @llvm.ppc.altivec.vminub 1963 // CHECK-LE: @llvm.ppc.altivec.vminub 1964 1965 res_vuc = vec_min(vuc, vbc); 1966 // CHECK: @llvm.ppc.altivec.vminub 1967 // CHECK-LE: @llvm.ppc.altivec.vminub 1968 1969 res_vs = vec_min(vs, vs); 1970 // CHECK: @llvm.ppc.altivec.vminsh 1971 // CHECK-LE: @llvm.ppc.altivec.vminsh 1972 1973 res_vs = vec_min(vbs, vs); 1974 // CHECK: @llvm.ppc.altivec.vminsh 1975 // CHECK-LE: @llvm.ppc.altivec.vminsh 1976 1977 res_vs = vec_min(vs, vbs); 1978 // CHECK: @llvm.ppc.altivec.vminsh 1979 // CHECK-LE: @llvm.ppc.altivec.vminsh 1980 1981 res_vus = vec_min(vus, vus); 1982 // CHECK: @llvm.ppc.altivec.vminuh 1983 // CHECK-LE: @llvm.ppc.altivec.vminuh 1984 1985 res_vus = vec_min(vbs, vus); 1986 // CHECK: @llvm.ppc.altivec.vminuh 1987 // CHECK-LE: @llvm.ppc.altivec.vminuh 1988 1989 res_vus = vec_min(vus, vbs); 1990 // CHECK: @llvm.ppc.altivec.vminuh 1991 // CHECK-LE: @llvm.ppc.altivec.vminuh 1992 1993 res_vi = vec_min(vi, vi); 1994 // CHECK: @llvm.ppc.altivec.vminsw 1995 // CHECK-LE: @llvm.ppc.altivec.vminsw 1996 1997 res_vi = vec_min(vbi, vi); 1998 // CHECK: @llvm.ppc.altivec.vminsw 1999 // CHECK-LE: @llvm.ppc.altivec.vminsw 2000 2001 res_vi = vec_min(vi, vbi); 2002 // CHECK: @llvm.ppc.altivec.vminsw 2003 // CHECK-LE: @llvm.ppc.altivec.vminsw 2004 2005 res_vui = vec_min(vui, vui); 2006 // CHECK: @llvm.ppc.altivec.vminuw 2007 // CHECK-LE: @llvm.ppc.altivec.vminuw 2008 2009 res_vui = vec_min(vbi, vui); 2010 // CHECK: @llvm.ppc.altivec.vminuw 2011 // CHECK-LE: @llvm.ppc.altivec.vminuw 2012 2013 res_vui = vec_min(vui, vbi); 2014 // CHECK: @llvm.ppc.altivec.vminuw 2015 // CHECK-LE: @llvm.ppc.altivec.vminuw 2016 2017 res_vf = vec_min(vf, vf); 2018 // CHECK: @llvm.ppc.altivec.vminfp 2019 // CHECK-LE: @llvm.ppc.altivec.vminfp 2020 2021 res_vsc = vec_vminsb(vsc, vsc); 2022 // CHECK: @llvm.ppc.altivec.vminsb 2023 // CHECK-LE: @llvm.ppc.altivec.vminsb 2024 2025 res_vsc = vec_vminsb(vbc, vsc); 2026 // CHECK: @llvm.ppc.altivec.vminsb 2027 // CHECK-LE: @llvm.ppc.altivec.vminsb 2028 2029 res_vsc = vec_vminsb(vsc, vbc); 2030 // CHECK: @llvm.ppc.altivec.vminsb 2031 // CHECK-LE: @llvm.ppc.altivec.vminsb 2032 2033 res_vuc = vec_vminub(vuc, vuc); 2034 // CHECK: @llvm.ppc.altivec.vminub 2035 // CHECK-LE: @llvm.ppc.altivec.vminub 2036 2037 res_vuc = vec_vminub(vbc, vuc); 2038 // CHECK: @llvm.ppc.altivec.vminub 2039 // CHECK-LE: @llvm.ppc.altivec.vminub 2040 2041 res_vuc = vec_vminub(vuc, vbc); 2042 // CHECK: @llvm.ppc.altivec.vminub 2043 // CHECK-LE: @llvm.ppc.altivec.vminub 2044 2045 res_vs = vec_vminsh(vs, vs); 2046 // CHECK: @llvm.ppc.altivec.vminsh 2047 // CHECK-LE: @llvm.ppc.altivec.vminsh 2048 2049 res_vs = vec_vminsh(vbs, vs); 2050 // CHECK: @llvm.ppc.altivec.vminsh 2051 // CHECK-LE: @llvm.ppc.altivec.vminsh 2052 2053 res_vs = vec_vminsh(vs, vbs); 2054 // CHECK: @llvm.ppc.altivec.vminsh 2055 // CHECK-LE: @llvm.ppc.altivec.vminsh 2056 2057 res_vus = vec_vminuh(vus, vus); 2058 // CHECK: @llvm.ppc.altivec.vminuh 2059 // CHECK-LE: @llvm.ppc.altivec.vminuh 2060 2061 res_vus = vec_vminuh(vbs, vus); 2062 // CHECK: @llvm.ppc.altivec.vminuh 2063 // CHECK-LE: @llvm.ppc.altivec.vminuh 2064 2065 res_vus = vec_vminuh(vus, vbs); 2066 // CHECK: @llvm.ppc.altivec.vminuh 2067 // CHECK-LE: @llvm.ppc.altivec.vminuh 2068 2069 res_vi = vec_vminsw(vi, vi); 2070 // CHECK: @llvm.ppc.altivec.vminsw 2071 // CHECK-LE: @llvm.ppc.altivec.vminsw 2072 2073 res_vi = vec_vminsw(vbi, vi); 2074 // CHECK: @llvm.ppc.altivec.vminsw 2075 // CHECK-LE: @llvm.ppc.altivec.vminsw 2076 2077 res_vi = vec_vminsw(vi, vbi); 2078 // CHECK: @llvm.ppc.altivec.vminsw 2079 // CHECK-LE: @llvm.ppc.altivec.vminsw 2080 2081 res_vui = vec_vminuw(vui, vui); 2082 // CHECK: @llvm.ppc.altivec.vminuw 2083 // CHECK-LE: @llvm.ppc.altivec.vminuw 2084 2085 res_vui = vec_vminuw(vbi, vui); 2086 // CHECK: @llvm.ppc.altivec.vminuw 2087 // CHECK-LE: @llvm.ppc.altivec.vminuw 2088 2089 res_vui = vec_vminuw(vui, vbi); 2090 // CHECK: @llvm.ppc.altivec.vminuw 2091 // CHECK-LE: @llvm.ppc.altivec.vminuw 2092 2093 res_vf = vec_vminfp(vf, vf); 2094 // CHECK: @llvm.ppc.altivec.vminfp 2095 // CHECK-LE: @llvm.ppc.altivec.vminfp 2096 2097 /* vec_mladd */ 2098 res_vus = vec_mladd(vus, vus, vus); 2099 // CHECK: mul <8 x i16> 2100 // CHECK: add <8 x i16> 2101 // CHECK-LE: mul <8 x i16> 2102 // CHECK-LE: add <8 x i16> 2103 2104 res_vs = vec_mladd(vus, vs, vs); 2105 // CHECK: mul <8 x i16> 2106 // CHECK: add <8 x i16> 2107 // CHECK-LE: mul <8 x i16> 2108 // CHECK-LE: add <8 x i16> 2109 2110 res_vs = vec_mladd(vs, vus, vus); 2111 // CHECK: mul <8 x i16> 2112 // CHECK: add <8 x i16> 2113 // CHECK-LE: mul <8 x i16> 2114 // CHECK-LE: add <8 x i16> 2115 2116 res_vs = vec_mladd(vs, vs, vs); 2117 // CHECK: mul <8 x i16> 2118 // CHECK: add <8 x i16> 2119 // CHECK-LE: mul <8 x i16> 2120 // CHECK-LE: add <8 x i16> 2121 2122 /* vec_mradds */ 2123 res_vs = vec_mradds(vs, vs, vs); 2124 // CHECK: @llvm.ppc.altivec.vmhraddshs 2125 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs 2126 2127 res_vs = vec_vmhraddshs(vs, vs, vs); 2128 // CHECK: @llvm.ppc.altivec.vmhraddshs 2129 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs 2130 2131 /* vec_msum */ 2132 res_vi = vec_msum(vsc, vuc, vi); 2133 // CHECK: @llvm.ppc.altivec.vmsummbm 2134 // CHECK-LE: @llvm.ppc.altivec.vmsummbm 2135 2136 res_vui = vec_msum(vuc, vuc, vui); 2137 // CHECK: @llvm.ppc.altivec.vmsumubm 2138 // CHECK-LE: @llvm.ppc.altivec.vmsumubm 2139 2140 res_vi = vec_msum(vs, vs, vi); 2141 // CHECK: @llvm.ppc.altivec.vmsumshm 2142 // CHECK-LE: @llvm.ppc.altivec.vmsumshm 2143 2144 res_vui = vec_msum(vus, vus, vui); 2145 // CHECK: @llvm.ppc.altivec.vmsumuhm 2146 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm 2147 2148 res_vi = vec_vmsummbm(vsc, vuc, vi); 2149 // CHECK: @llvm.ppc.altivec.vmsummbm 2150 // CHECK-LE: @llvm.ppc.altivec.vmsummbm 2151 2152 res_vui = vec_vmsumubm(vuc, vuc, vui); 2153 // CHECK: @llvm.ppc.altivec.vmsumubm 2154 // CHECK-LE: @llvm.ppc.altivec.vmsumubm 2155 2156 res_vi = vec_vmsumshm(vs, vs, vi); 2157 // CHECK: @llvm.ppc.altivec.vmsumshm 2158 // CHECK-LE: @llvm.ppc.altivec.vmsumshm 2159 2160 res_vui = vec_vmsumuhm(vus, vus, vui); 2161 // CHECK: @llvm.ppc.altivec.vmsumuhm 2162 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm 2163 2164 /* vec_msums */ 2165 res_vi = vec_msums(vs, vs, vi); 2166 // CHECK: @llvm.ppc.altivec.vmsumshs 2167 // CHECK-LE: @llvm.ppc.altivec.vmsumshs 2168 2169 res_vui = vec_msums(vus, vus, vui); 2170 // CHECK: @llvm.ppc.altivec.vmsumuhs 2171 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs 2172 2173 res_vi = vec_vmsumshs(vs, vs, vi); 2174 // CHECK: @llvm.ppc.altivec.vmsumshs 2175 // CHECK-LE: @llvm.ppc.altivec.vmsumshs 2176 2177 res_vui = vec_vmsumuhs(vus, vus, vui); 2178 // CHECK: @llvm.ppc.altivec.vmsumuhs 2179 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs 2180 2181 /* vec_mtvscr */ 2182 vec_mtvscr(vsc); 2183 // CHECK: @llvm.ppc.altivec.mtvscr 2184 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2185 2186 vec_mtvscr(vuc); 2187 // CHECK: @llvm.ppc.altivec.mtvscr 2188 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2189 2190 vec_mtvscr(vbc); 2191 // CHECK: @llvm.ppc.altivec.mtvscr 2192 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2193 2194 vec_mtvscr(vs); 2195 // CHECK: @llvm.ppc.altivec.mtvscr 2196 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2197 2198 vec_mtvscr(vus); 2199 // CHECK: @llvm.ppc.altivec.mtvscr 2200 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2201 2202 vec_mtvscr(vbs); 2203 // CHECK: @llvm.ppc.altivec.mtvscr 2204 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2205 2206 vec_mtvscr(vp); 2207 // CHECK: @llvm.ppc.altivec.mtvscr 2208 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2209 2210 vec_mtvscr(vi); 2211 // CHECK: @llvm.ppc.altivec.mtvscr 2212 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2213 2214 vec_mtvscr(vui); 2215 // CHECK: @llvm.ppc.altivec.mtvscr 2216 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2217 2218 vec_mtvscr(vbi); 2219 // CHECK: @llvm.ppc.altivec.mtvscr 2220 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2221 2222 /* vec_mul */ 2223 res_vsc = vec_mul(vsc, vsc); 2224 // CHECK: mul <16 x i8> 2225 // CHECK-LE: mul <16 x i8> 2226 2227 res_vuc = vec_mul(vuc, vuc); 2228 // CHECK: mul <16 x i8> 2229 // CHECK-LE: mul <16 x i8> 2230 2231 res_vs = vec_mul(vs, vs); 2232 // CHECK: mul <8 x i16> 2233 // CHECK-LE: mul <8 x i16> 2234 2235 res_vus = vec_mul(vus, vus); 2236 // CHECK: mul <8 x i16> 2237 // CHECK-LE: mul <8 x i16> 2238 2239 res_vi = vec_mul(vi, vi); 2240 // CHECK: mul <4 x i32> 2241 // CHECK-LE: mul <4 x i32> 2242 2243 res_vui = vec_mul(vui, vui); 2244 // CHECK: mul <4 x i32> 2245 // CHECK-LE: mul <4 x i32> 2246 2247 /* vec_mule */ 2248 res_vs = vec_mule(vsc, vsc); 2249 // CHECK: @llvm.ppc.altivec.vmulesb 2250 // CHECK-LE: @llvm.ppc.altivec.vmulosb 2251 2252 res_vus = vec_mule(vuc, vuc); 2253 // CHECK: @llvm.ppc.altivec.vmuleub 2254 // CHECK-LE: @llvm.ppc.altivec.vmuloub 2255 2256 res_vi = vec_mule(vs, vs); 2257 // CHECK: @llvm.ppc.altivec.vmulesh 2258 // CHECK-LE: @llvm.ppc.altivec.vmulosh 2259 2260 res_vui = vec_mule(vus, vus); 2261 // CHECK: @llvm.ppc.altivec.vmuleuh 2262 // CHECK-LE: @llvm.ppc.altivec.vmulouh 2263 2264 res_vs = vec_vmulesb(vsc, vsc); 2265 // CHECK: @llvm.ppc.altivec.vmulesb 2266 // CHECK-LE: @llvm.ppc.altivec.vmulosb 2267 2268 res_vus = vec_vmuleub(vuc, vuc); 2269 // CHECK: @llvm.ppc.altivec.vmuleub 2270 // CHECK-LE: @llvm.ppc.altivec.vmuloub 2271 2272 res_vi = vec_vmulesh(vs, vs); 2273 // CHECK: @llvm.ppc.altivec.vmulesh 2274 // CHECK-LE: @llvm.ppc.altivec.vmulosh 2275 2276 res_vui = vec_vmuleuh(vus, vus); 2277 // CHECK: @llvm.ppc.altivec.vmuleuh 2278 // CHECK-LE: @llvm.ppc.altivec.vmulouh 2279 2280 /* vec_mulo */ 2281 res_vs = vec_mulo(vsc, vsc); 2282 // CHECK: @llvm.ppc.altivec.vmulosb 2283 // CHECK-LE: @llvm.ppc.altivec.vmulesb 2284 2285 res_vus = vec_mulo(vuc, vuc); 2286 // CHECK: @llvm.ppc.altivec.vmuloub 2287 // CHECK-LE: @llvm.ppc.altivec.vmuleub 2288 2289 res_vi = vec_mulo(vs, vs); 2290 // CHECK: @llvm.ppc.altivec.vmulosh 2291 // CHECK-LE: @llvm.ppc.altivec.vmulesh 2292 2293 res_vui = vec_mulo(vus, vus); 2294 // CHECK: @llvm.ppc.altivec.vmulouh 2295 // CHECK-LE: @llvm.ppc.altivec.vmuleuh 2296 2297 res_vs = vec_vmulosb(vsc, vsc); 2298 // CHECK: @llvm.ppc.altivec.vmulosb 2299 // CHECK-LE: @llvm.ppc.altivec.vmulesb 2300 2301 res_vus = vec_vmuloub(vuc, vuc); 2302 // CHECK: @llvm.ppc.altivec.vmuloub 2303 // CHECK-LE: @llvm.ppc.altivec.vmuleub 2304 2305 res_vi = vec_vmulosh(vs, vs); 2306 // CHECK: @llvm.ppc.altivec.vmulosh 2307 // CHECK-LE: @llvm.ppc.altivec.vmulesh 2308 2309 res_vui = vec_vmulouh(vus, vus); 2310 // CHECK: @llvm.ppc.altivec.vmulouh 2311 // CHECK-LE: @llvm.ppc.altivec.vmuleuh 2312 2313 /* vec_nmsub */ 2314 res_vf = vec_nmsub(vf, vf, vf); 2315 // CHECK: @llvm.ppc.altivec.vnmsubfp 2316 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp 2317 2318 res_vf = vec_vnmsubfp(vf, vf, vf); 2319 // CHECK: @llvm.ppc.altivec.vnmsubfp 2320 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp 2321 2322 /* vec_nor */ 2323 res_vsc = vec_nor(vsc, vsc); 2324 // CHECK: or <16 x i8> 2325 // CHECK: xor <16 x i8> 2326 // CHECK-LE: or <16 x i8> 2327 // CHECK-LE: xor <16 x i8> 2328 2329 res_vuc = vec_nor(vuc, vuc); 2330 // CHECK: or <16 x i8> 2331 // CHECK: xor <16 x i8> 2332 // CHECK-LE: or <16 x i8> 2333 // CHECK-LE: xor <16 x i8> 2334 2335 res_vuc = vec_nor(vbc, vbc); 2336 // CHECK: or <16 x i8> 2337 // CHECK: xor <16 x i8> 2338 // CHECK-LE: or <16 x i8> 2339 // CHECK-LE: xor <16 x i8> 2340 2341 res_vs = vec_nor(vs, vs); 2342 // CHECK: or <8 x i16> 2343 // CHECK: xor <8 x i16> 2344 // CHECK-LE: or <8 x i16> 2345 // CHECK-LE: xor <8 x i16> 2346 2347 res_vus = vec_nor(vus, vus); 2348 // CHECK: or <8 x i16> 2349 // CHECK: xor <8 x i16> 2350 // CHECK-LE: or <8 x i16> 2351 // CHECK-LE: xor <8 x i16> 2352 2353 res_vus = vec_nor(vbs, vbs); 2354 // CHECK: or <8 x i16> 2355 // CHECK: xor <8 x i16> 2356 // CHECK-LE: or <8 x i16> 2357 // CHECK-LE: xor <8 x i16> 2358 2359 res_vi = vec_nor(vi, vi); 2360 // CHECK: or <4 x i32> 2361 // CHECK: xor <4 x i32> 2362 // CHECK-LE: or <4 x i32> 2363 // CHECK-LE: xor <4 x i32> 2364 2365 res_vui = vec_nor(vui, vui); 2366 // CHECK: or <4 x i32> 2367 // CHECK: xor <4 x i32> 2368 // CHECK-LE: or <4 x i32> 2369 // CHECK-LE: xor <4 x i32> 2370 2371 res_vui = vec_nor(vbi, vbi); 2372 // CHECK: or <4 x i32> 2373 // CHECK: xor <4 x i32> 2374 // CHECK-LE: or <4 x i32> 2375 // CHECK-LE: xor <4 x i32> 2376 2377 res_vf = vec_nor(vf, vf); 2378 // CHECK: or <4 x i32> 2379 // CHECK: xor <4 x i32> 2380 // CHECK-LE: or <4 x i32> 2381 // CHECK-LE: xor <4 x i32> 2382 2383 res_vsc = vec_vnor(vsc, vsc); 2384 // CHECK: or <16 x i8> 2385 // CHECK: xor <16 x i8> 2386 // CHECK-LE: or <16 x i8> 2387 // CHECK-LE: xor <16 x i8> 2388 2389 res_vuc = vec_vnor(vuc, vuc); 2390 // CHECK: or <16 x i8> 2391 // CHECK: xor <16 x i8> 2392 // CHECK-LE: or <16 x i8> 2393 // CHECK-LE: xor <16 x i8> 2394 2395 res_vuc = vec_vnor(vbc, vbc); 2396 // CHECK: or <16 x i8> 2397 // CHECK: xor <16 x i8> 2398 // CHECK-LE: or <16 x i8> 2399 // CHECK-LE: xor <16 x i8> 2400 2401 res_vs = vec_vnor(vs, vs); 2402 // CHECK: or <8 x i16> 2403 // CHECK: xor <8 x i16> 2404 // CHECK-LE: or <8 x i16> 2405 // CHECK-LE: xor <8 x i16> 2406 2407 res_vus = vec_vnor(vus, vus); 2408 // CHECK: or <8 x i16> 2409 // CHECK: xor <8 x i16> 2410 // CHECK-LE: or <8 x i16> 2411 // CHECK-LE: xor <8 x i16> 2412 2413 res_vus = vec_vnor(vbs, vbs); 2414 // CHECK: or <8 x i16> 2415 // CHECK: xor <8 x i16> 2416 // CHECK-LE: or <8 x i16> 2417 // CHECK-LE: xor <8 x i16> 2418 2419 res_vi = vec_vnor(vi, vi); 2420 // CHECK: or <4 x i32> 2421 // CHECK: xor <4 x i32> 2422 // CHECK-LE: or <4 x i32> 2423 // CHECK-LE: xor <4 x i32> 2424 2425 res_vui = vec_vnor(vui, vui); 2426 // CHECK: or <4 x i32> 2427 // CHECK: xor <4 x i32> 2428 // CHECK-LE: or <4 x i32> 2429 // CHECK-LE: xor <4 x i32> 2430 2431 res_vui = vec_vnor(vbi, vbi); 2432 // CHECK: or <4 x i32> 2433 // CHECK: xor <4 x i32> 2434 // CHECK-LE: or <4 x i32> 2435 // CHECK-LE: xor <4 x i32> 2436 2437 res_vf = vec_vnor(vf, vf); 2438 // CHECK: or <4 x i32> 2439 // CHECK: xor <4 x i32> 2440 // CHECK-LE: or <4 x i32> 2441 // CHECK-LE: xor <4 x i32> 2442 2443 /* vec_or */ 2444 res_vsc = vec_or(vsc, vsc); 2445 // CHECK: or <16 x i8> 2446 // CHECK-LE: or <16 x i8> 2447 2448 res_vsc = vec_or(vbc, vsc); 2449 // CHECK: or <16 x i8> 2450 // CHECK-LE: or <16 x i8> 2451 2452 res_vsc = vec_or(vsc, vbc); 2453 // CHECK: or <16 x i8> 2454 // CHECK-LE: or <16 x i8> 2455 2456 res_vuc = vec_or(vuc, vuc); 2457 // CHECK: or <16 x i8> 2458 // CHECK-LE: or <16 x i8> 2459 2460 res_vuc = vec_or(vbc, vuc); 2461 // CHECK: or <16 x i8> 2462 // CHECK-LE: or <16 x i8> 2463 2464 res_vuc = vec_or(vuc, vbc); 2465 // CHECK: or <16 x i8> 2466 // CHECK-LE: or <16 x i8> 2467 2468 res_vbc = vec_or(vbc, vbc); 2469 // CHECK: or <16 x i8> 2470 // CHECK-LE: or <16 x i8> 2471 2472 res_vs = vec_or(vs, vs); 2473 // CHECK: or <8 x i16> 2474 // CHECK-LE: or <8 x i16> 2475 2476 res_vs = vec_or(vbs, vs); 2477 // CHECK: or <8 x i16> 2478 // CHECK-LE: or <8 x i16> 2479 2480 res_vs = vec_or(vs, vbs); 2481 // CHECK: or <8 x i16> 2482 // CHECK-LE: or <8 x i16> 2483 2484 res_vus = vec_or(vus, vus); 2485 // CHECK: or <8 x i16> 2486 // CHECK-LE: or <8 x i16> 2487 2488 res_vus = vec_or(vbs, vus); 2489 // CHECK: or <8 x i16> 2490 // CHECK-LE: or <8 x i16> 2491 2492 res_vus = vec_or(vus, vbs); 2493 // CHECK: or <8 x i16> 2494 // CHECK-LE: or <8 x i16> 2495 2496 res_vbs = vec_or(vbs, vbs); 2497 // CHECK: or <8 x i16> 2498 // CHECK-LE: or <8 x i16> 2499 2500 res_vi = vec_or(vi, vi); 2501 // CHECK: or <4 x i32> 2502 // CHECK-LE: or <4 x i32> 2503 2504 res_vi = vec_or(vbi, vi); 2505 // CHECK: or <4 x i32> 2506 // CHECK-LE: or <4 x i32> 2507 2508 res_vi = vec_or(vi, vbi); 2509 // CHECK: or <4 x i32> 2510 // CHECK-LE: or <4 x i32> 2511 2512 res_vui = vec_or(vui, vui); 2513 // CHECK: or <4 x i32> 2514 // CHECK-LE: or <4 x i32> 2515 2516 res_vui = vec_or(vbi, vui); 2517 // CHECK: or <4 x i32> 2518 // CHECK-LE: or <4 x i32> 2519 2520 res_vui = vec_or(vui, vbi); 2521 // CHECK: or <4 x i32> 2522 // CHECK-LE: or <4 x i32> 2523 2524 res_vbi = vec_or(vbi, vbi); 2525 // CHECK: or <4 x i32> 2526 // CHECK-LE: or <4 x i32> 2527 2528 res_vf = vec_or(vf, vf); 2529 // CHECK: or <4 x i32> 2530 // CHECK-LE: or <4 x i32> 2531 2532 res_vf = vec_or(vbi, vf); 2533 // CHECK: or <4 x i32> 2534 // CHECK-LE: or <4 x i32> 2535 2536 res_vf = vec_or(vf, vbi); 2537 // CHECK: or <4 x i32> 2538 // CHECK-LE: or <4 x i32> 2539 2540 res_vsc = vec_vor(vsc, vsc); 2541 // CHECK: or <16 x i8> 2542 // CHECK-LE: or <16 x i8> 2543 2544 res_vsc = vec_vor(vbc, vsc); 2545 // CHECK: or <16 x i8> 2546 // CHECK-LE: or <16 x i8> 2547 2548 res_vsc = vec_vor(vsc, vbc); 2549 // CHECK: or <16 x i8> 2550 // CHECK-LE: or <16 x i8> 2551 2552 res_vuc = vec_vor(vuc, vuc); 2553 // CHECK: or <16 x i8> 2554 // CHECK-LE: or <16 x i8> 2555 2556 res_vuc = vec_vor(vbc, vuc); 2557 // CHECK: or <16 x i8> 2558 // CHECK-LE: or <16 x i8> 2559 2560 res_vuc = vec_vor(vuc, vbc); 2561 // CHECK: or <16 x i8> 2562 // CHECK-LE: or <16 x i8> 2563 2564 res_vbc = vec_vor(vbc, vbc); 2565 // CHECK: or <16 x i8> 2566 // CHECK-LE: or <16 x i8> 2567 2568 res_vs = vec_vor(vs, vs); 2569 // CHECK: or <8 x i16> 2570 // CHECK-LE: or <8 x i16> 2571 2572 res_vs = vec_vor(vbs, vs); 2573 // CHECK: or <8 x i16> 2574 // CHECK-LE: or <8 x i16> 2575 2576 res_vs = vec_vor(vs, vbs); 2577 // CHECK: or <8 x i16> 2578 // CHECK-LE: or <8 x i16> 2579 2580 res_vus = vec_vor(vus, vus); 2581 // CHECK: or <8 x i16> 2582 // CHECK-LE: or <8 x i16> 2583 2584 res_vus = vec_vor(vbs, vus); 2585 // CHECK: or <8 x i16> 2586 // CHECK-LE: or <8 x i16> 2587 2588 res_vus = vec_vor(vus, vbs); 2589 // CHECK: or <8 x i16> 2590 // CHECK-LE: or <8 x i16> 2591 2592 res_vbs = vec_vor(vbs, vbs); 2593 // CHECK: or <8 x i16> 2594 // CHECK-LE: or <8 x i16> 2595 2596 res_vi = vec_vor(vi, vi); 2597 // CHECK: or <4 x i32> 2598 // CHECK-LE: or <4 x i32> 2599 2600 res_vi = vec_vor(vbi, vi); 2601 // CHECK: or <4 x i32> 2602 // CHECK-LE: or <4 x i32> 2603 2604 res_vi = vec_vor(vi, vbi); 2605 // CHECK: or <4 x i32> 2606 // CHECK-LE: or <4 x i32> 2607 2608 res_vui = vec_vor(vui, vui); 2609 // CHECK: or <4 x i32> 2610 // CHECK-LE: or <4 x i32> 2611 2612 res_vui = vec_vor(vbi, vui); 2613 // CHECK: or <4 x i32> 2614 // CHECK-LE: or <4 x i32> 2615 2616 res_vui = vec_vor(vui, vbi); 2617 // CHECK: or <4 x i32> 2618 // CHECK-LE: or <4 x i32> 2619 2620 res_vbi = vec_vor(vbi, vbi); 2621 // CHECK: or <4 x i32> 2622 // CHECK-LE: or <4 x i32> 2623 2624 res_vf = vec_vor(vf, vf); 2625 // CHECK: or <4 x i32> 2626 // CHECK-LE: or <4 x i32> 2627 2628 res_vf = vec_vor(vbi, vf); 2629 // CHECK: or <4 x i32> 2630 // CHECK-LE: or <4 x i32> 2631 2632 res_vf = vec_vor(vf, vbi); 2633 // CHECK: or <4 x i32> 2634 // CHECK-LE: or <4 x i32> 2635 2636 /* vec_pack */ 2637 res_vsc = vec_pack(vs, vs); 2638 // CHECK: @llvm.ppc.altivec.vperm 2639 // CHECK-LE: @llvm.ppc.altivec.vperm 2640 2641 res_vuc = vec_pack(vus, vus); 2642 // CHECK: @llvm.ppc.altivec.vperm 2643 // CHECK-LE: @llvm.ppc.altivec.vperm 2644 2645 res_vbc = vec_pack(vbs, vbs); 2646 // CHECK: @llvm.ppc.altivec.vperm 2647 // CHECK-LE: @llvm.ppc.altivec.vperm 2648 2649 res_vs = vec_pack(vi, vi); 2650 // CHECK: @llvm.ppc.altivec.vperm 2651 // CHECK-LE: @llvm.ppc.altivec.vperm 2652 2653 res_vus = vec_pack(vui, vui); 2654 // CHECK: @llvm.ppc.altivec.vperm 2655 // CHECK-LE: @llvm.ppc.altivec.vperm 2656 2657 res_vbs = vec_pack(vbi, vbi); 2658 // CHECK: @llvm.ppc.altivec.vperm 2659 // CHECK-LE: @llvm.ppc.altivec.vperm 2660 2661 res_vsc = vec_vpkuhum(vs, vs); 2662 // CHECK: @llvm.ppc.altivec.vperm 2663 // CHECK-LE: @llvm.ppc.altivec.vperm 2664 2665 res_vuc = vec_vpkuhum(vus, vus); 2666 // CHECK: @llvm.ppc.altivec.vperm 2667 // CHECK-LE: @llvm.ppc.altivec.vperm 2668 2669 res_vbc = vec_vpkuhum(vbs, vbs); 2670 // CHECK: @llvm.ppc.altivec.vperm 2671 // CHECK-LE: @llvm.ppc.altivec.vperm 2672 2673 res_vs = vec_vpkuwum(vi, vi); 2674 // CHECK: @llvm.ppc.altivec.vperm 2675 // CHECK-LE: @llvm.ppc.altivec.vperm 2676 2677 res_vus = vec_vpkuwum(vui, vui); 2678 // CHECK: @llvm.ppc.altivec.vperm 2679 // CHECK-LE: @llvm.ppc.altivec.vperm 2680 2681 res_vbs = vec_vpkuwum(vbi, vbi); 2682 // CHECK: @llvm.ppc.altivec.vperm 2683 // CHECK-LE: @llvm.ppc.altivec.vperm 2684 2685 /* vec_packpx */ 2686 res_vp = vec_packpx(vui, vui); 2687 // CHECK: @llvm.ppc.altivec.vpkpx 2688 // CHECK-LE: @llvm.ppc.altivec.vpkpx 2689 2690 res_vp = vec_vpkpx(vui, vui); 2691 // CHECK: @llvm.ppc.altivec.vpkpx 2692 // CHECK-LE: @llvm.ppc.altivec.vpkpx 2693 2694 /* vec_packs */ 2695 res_vsc = vec_packs(vs, vs); 2696 // CHECK: @llvm.ppc.altivec.vpkshss 2697 // CHECK-LE: @llvm.ppc.altivec.vpkshss 2698 2699 res_vuc = vec_packs(vus, vus); 2700 // CHECK: @llvm.ppc.altivec.vpkuhus 2701 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2702 2703 res_vs = vec_packs(vi, vi); 2704 // CHECK: @llvm.ppc.altivec.vpkswss 2705 // CHECK-LE: @llvm.ppc.altivec.vpkswss 2706 2707 res_vus = vec_packs(vui, vui); 2708 // CHECK: @llvm.ppc.altivec.vpkuwus 2709 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2710 2711 res_vsc = vec_vpkshss(vs, vs); 2712 // CHECK: @llvm.ppc.altivec.vpkshss 2713 // CHECK-LE: @llvm.ppc.altivec.vpkshss 2714 2715 res_vuc = vec_vpkuhus(vus, vus); 2716 // CHECK: @llvm.ppc.altivec.vpkuhus 2717 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2718 2719 res_vs = vec_vpkswss(vi, vi); 2720 // CHECK: @llvm.ppc.altivec.vpkswss 2721 // CHECK-LE: @llvm.ppc.altivec.vpkswss 2722 2723 res_vus = vec_vpkuwus(vui, vui); 2724 // CHECK: @llvm.ppc.altivec.vpkuwus 2725 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2726 2727 /* vec_packsu */ 2728 res_vuc = vec_packsu(vs, vs); 2729 // CHECK: @llvm.ppc.altivec.vpkshus 2730 // CHECK-LE: @llvm.ppc.altivec.vpkshus 2731 2732 res_vuc = vec_packsu(vus, vus); 2733 // CHECK: @llvm.ppc.altivec.vpkuhus 2734 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2735 2736 res_vus = vec_packsu(vi, vi); 2737 // CHECK: @llvm.ppc.altivec.vpkswus 2738 // CHECK-LE: @llvm.ppc.altivec.vpkswus 2739 2740 res_vus = vec_packsu(vui, vui); 2741 // CHECK: @llvm.ppc.altivec.vpkuwus 2742 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2743 2744 res_vuc = vec_vpkshus(vs, vs); 2745 // CHECK: @llvm.ppc.altivec.vpkshus 2746 // CHECK-LE: @llvm.ppc.altivec.vpkshus 2747 2748 res_vuc = vec_vpkshus(vus, vus); 2749 // CHECK: @llvm.ppc.altivec.vpkuhus 2750 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2751 2752 res_vus = vec_vpkswus(vi, vi); 2753 // CHECK: @llvm.ppc.altivec.vpkswus 2754 // CHECK-LE: @llvm.ppc.altivec.vpkswus 2755 2756 res_vus = vec_vpkswus(vui, vui); 2757 // CHECK: @llvm.ppc.altivec.vpkuwus 2758 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2759 2760 /* vec_perm */ 2761 res_vsc = vec_perm(vsc, vsc, vuc); 2762 // CHECK: @llvm.ppc.altivec.vperm 2763 // CHECK-LE: @llvm.ppc.altivec.vperm 2764 2765 res_vuc = vec_perm(vuc, vuc, vuc); 2766 // CHECK: @llvm.ppc.altivec.vperm 2767 // CHECK-LE: @llvm.ppc.altivec.vperm 2768 2769 res_vbc = vec_perm(vbc, vbc, vuc); 2770 // CHECK: @llvm.ppc.altivec.vperm 2771 // CHECK-LE: @llvm.ppc.altivec.vperm 2772 2773 res_vs = vec_perm(vs, vs, vuc); 2774 // CHECK: @llvm.ppc.altivec.vperm 2775 // CHECK-LE: @llvm.ppc.altivec.vperm 2776 2777 res_vus = vec_perm(vus, vus, vuc); 2778 // CHECK: @llvm.ppc.altivec.vperm 2779 // CHECK-LE: @llvm.ppc.altivec.vperm 2780 2781 res_vbs = vec_perm(vbs, vbs, vuc); 2782 // CHECK: @llvm.ppc.altivec.vperm 2783 // CHECK-LE: @llvm.ppc.altivec.vperm 2784 2785 res_vp = vec_perm(vp, vp, vuc); 2786 // CHECK: @llvm.ppc.altivec.vperm 2787 // CHECK-LE: @llvm.ppc.altivec.vperm 2788 2789 res_vi = vec_perm(vi, vi, vuc); 2790 // CHECK: @llvm.ppc.altivec.vperm 2791 // CHECK-LE: @llvm.ppc.altivec.vperm 2792 2793 res_vui = vec_perm(vui, vui, vuc); 2794 // CHECK: @llvm.ppc.altivec.vperm 2795 // CHECK-LE: @llvm.ppc.altivec.vperm 2796 2797 res_vbi = vec_perm(vbi, vbi, vuc); 2798 // CHECK: @llvm.ppc.altivec.vperm 2799 // CHECK-LE: @llvm.ppc.altivec.vperm 2800 2801 res_vf = vec_perm(vf, vf, vuc); 2802 // CHECK: @llvm.ppc.altivec.vperm 2803 // CHECK-LE: @llvm.ppc.altivec.vperm 2804 2805 res_vsc = vec_vperm(vsc, vsc, vuc); 2806 // CHECK: @llvm.ppc.altivec.vperm 2807 // CHECK-LE: @llvm.ppc.altivec.vperm 2808 2809 res_vuc = vec_vperm(vuc, vuc, vuc); 2810 // CHECK: @llvm.ppc.altivec.vperm 2811 // CHECK-LE: @llvm.ppc.altivec.vperm 2812 2813 res_vbc = vec_vperm(vbc, vbc, vuc); 2814 // CHECK: @llvm.ppc.altivec.vperm 2815 // CHECK-LE: @llvm.ppc.altivec.vperm 2816 2817 res_vs = vec_vperm(vs, vs, vuc); 2818 // CHECK: @llvm.ppc.altivec.vperm 2819 // CHECK-LE: @llvm.ppc.altivec.vperm 2820 2821 res_vus = vec_vperm(vus, vus, vuc); 2822 // CHECK: @llvm.ppc.altivec.vperm 2823 // CHECK-LE: @llvm.ppc.altivec.vperm 2824 2825 res_vbs = vec_vperm(vbs, vbs, vuc); 2826 // CHECK: @llvm.ppc.altivec.vperm 2827 // CHECK-LE: @llvm.ppc.altivec.vperm 2828 2829 res_vp = vec_vperm(vp, vp, vuc); 2830 // CHECK: @llvm.ppc.altivec.vperm 2831 // CHECK-LE: @llvm.ppc.altivec.vperm 2832 2833 res_vi = vec_vperm(vi, vi, vuc); 2834 // CHECK: @llvm.ppc.altivec.vperm 2835 // CHECK-LE: @llvm.ppc.altivec.vperm 2836 2837 res_vui = vec_vperm(vui, vui, vuc); 2838 // CHECK: @llvm.ppc.altivec.vperm 2839 // CHECK-LE: @llvm.ppc.altivec.vperm 2840 2841 res_vbi = vec_vperm(vbi, vbi, vuc); 2842 // CHECK: @llvm.ppc.altivec.vperm 2843 // CHECK-LE: @llvm.ppc.altivec.vperm 2844 2845 res_vf = vec_vperm(vf, vf, vuc); 2846 // CHECK: @llvm.ppc.altivec.vperm 2847 // CHECK-LE: @llvm.ppc.altivec.vperm 2848 2849 /* vec_re */ 2850 res_vf = vec_re(vf); 2851 // CHECK: @llvm.ppc.altivec.vrefp 2852 // CHECK-LE: @llvm.ppc.altivec.vrefp 2853 2854 res_vf = vec_vrefp(vf); 2855 // CHECK: @llvm.ppc.altivec.vrefp 2856 // CHECK-LE: @llvm.ppc.altivec.vrefp 2857 2858 /* vec_rl */ 2859 res_vsc = vec_rl(vsc, vuc); 2860 // CHECK: @llvm.ppc.altivec.vrlb 2861 // CHECK-LE: @llvm.ppc.altivec.vrlb 2862 2863 res_vuc = vec_rl(vuc, vuc); 2864 // CHECK: @llvm.ppc.altivec.vrlb 2865 // CHECK-LE: @llvm.ppc.altivec.vrlb 2866 2867 res_vs = vec_rl(vs, vus); 2868 // CHECK: @llvm.ppc.altivec.vrlh 2869 // CHECK-LE: @llvm.ppc.altivec.vrlh 2870 2871 res_vus = vec_rl(vus, vus); 2872 // CHECK: @llvm.ppc.altivec.vrlh 2873 // CHECK-LE: @llvm.ppc.altivec.vrlh 2874 2875 res_vi = vec_rl(vi, vui); 2876 // CHECK: @llvm.ppc.altivec.vrlw 2877 // CHECK-LE: @llvm.ppc.altivec.vrlw 2878 2879 res_vui = vec_rl(vui, vui); 2880 // CHECK: @llvm.ppc.altivec.vrlw 2881 // CHECK-LE: @llvm.ppc.altivec.vrlw 2882 2883 res_vsc = vec_vrlb(vsc, vuc); 2884 // CHECK: @llvm.ppc.altivec.vrlb 2885 // CHECK-LE: @llvm.ppc.altivec.vrlb 2886 2887 res_vuc = vec_vrlb(vuc, vuc); 2888 // CHECK: @llvm.ppc.altivec.vrlb 2889 // CHECK-LE: @llvm.ppc.altivec.vrlb 2890 2891 res_vs = vec_vrlh(vs, vus); 2892 // CHECK: @llvm.ppc.altivec.vrlh 2893 // CHECK-LE: @llvm.ppc.altivec.vrlh 2894 2895 res_vus = vec_vrlh(vus, vus); 2896 // CHECK: @llvm.ppc.altivec.vrlh 2897 // CHECK-LE: @llvm.ppc.altivec.vrlh 2898 2899 res_vi = vec_vrlw(vi, vui); 2900 // CHECK: @llvm.ppc.altivec.vrlw 2901 // CHECK-LE: @llvm.ppc.altivec.vrlw 2902 2903 res_vui = vec_vrlw(vui, vui); 2904 // CHECK: @llvm.ppc.altivec.vrlw 2905 // CHECK-LE: @llvm.ppc.altivec.vrlw 2906 2907 /* vec_round */ 2908 res_vf = vec_round(vf); 2909 // CHECK: @llvm.ppc.altivec.vrfin 2910 // CHECK-LE: @llvm.ppc.altivec.vrfin 2911 2912 res_vf = vec_vrfin(vf); 2913 // CHECK: @llvm.ppc.altivec.vrfin 2914 // CHECK-LE: @llvm.ppc.altivec.vrfin 2915 2916 /* vec_rsqrte */ 2917 res_vf = vec_rsqrte(vf); 2918 // CHECK: @llvm.ppc.altivec.vrsqrtefp 2919 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp 2920 2921 res_vf = vec_vrsqrtefp(vf); 2922 // CHECK: @llvm.ppc.altivec.vrsqrtefp 2923 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp 2924 2925 /* vec_sel */ 2926 res_vsc = vec_sel(vsc, vsc, vuc); 2927 // CHECK: xor <16 x i8> 2928 // CHECK: and <16 x i8> 2929 // CHECK: and <16 x i8> 2930 // CHECK: or <16 x i8> 2931 // CHECK-LE: xor <16 x i8> 2932 // CHECK-LE: and <16 x i8> 2933 // CHECK-LE: and <16 x i8> 2934 // CHECK-LE: or <16 x i8> 2935 2936 res_vsc = vec_sel(vsc, vsc, vbc); 2937 // CHECK: xor <16 x i8> 2938 // CHECK: and <16 x i8> 2939 // CHECK: and <16 x i8> 2940 // CHECK: or <16 x i8> 2941 // CHECK-LE: xor <16 x i8> 2942 // CHECK-LE: and <16 x i8> 2943 // CHECK-LE: and <16 x i8> 2944 // CHECK-LE: or <16 x i8> 2945 2946 res_vuc = vec_sel(vuc, vuc, vuc); 2947 // CHECK: xor <16 x i8> 2948 // CHECK: and <16 x i8> 2949 // CHECK: and <16 x i8> 2950 // CHECK: or <16 x i8> 2951 // CHECK-LE: xor <16 x i8> 2952 // CHECK-LE: and <16 x i8> 2953 // CHECK-LE: and <16 x i8> 2954 // CHECK-LE: or <16 x i8> 2955 2956 res_vuc = vec_sel(vuc, vuc, vbc); 2957 // CHECK: xor <16 x i8> 2958 // CHECK: and <16 x i8> 2959 // CHECK: and <16 x i8> 2960 // CHECK: or <16 x i8> 2961 // CHECK-LE: xor <16 x i8> 2962 // CHECK-LE: and <16 x i8> 2963 // CHECK-LE: and <16 x i8> 2964 // CHECK-LE: or <16 x i8> 2965 2966 res_vbc = vec_sel(vbc, vbc, vuc); 2967 // CHECK: xor <16 x i8> 2968 // CHECK: and <16 x i8> 2969 // CHECK: and <16 x i8> 2970 // CHECK: or <16 x i8> 2971 // CHECK-LE: xor <16 x i8> 2972 // CHECK-LE: and <16 x i8> 2973 // CHECK-LE: and <16 x i8> 2974 // CHECK-LE: or <16 x i8> 2975 2976 res_vbc = vec_sel(vbc, vbc, vbc); 2977 // CHECK: xor <16 x i8> 2978 // CHECK: and <16 x i8> 2979 // CHECK: and <16 x i8> 2980 // CHECK: or <16 x i8> 2981 // CHECK-LE: xor <16 x i8> 2982 // CHECK-LE: and <16 x i8> 2983 // CHECK-LE: and <16 x i8> 2984 // CHECK-LE: or <16 x i8> 2985 2986 res_vs = vec_sel(vs, vs, vus); 2987 // CHECK: xor <8 x i16> 2988 // CHECK: and <8 x i16> 2989 // CHECK: and <8 x i16> 2990 // CHECK: or <8 x i16> 2991 // CHECK-LE: xor <8 x i16> 2992 // CHECK-LE: and <8 x i16> 2993 // CHECK-LE: and <8 x i16> 2994 // CHECK-LE: or <8 x i16> 2995 2996 res_vs = vec_sel(vs, vs, vbs); 2997 // CHECK: xor <8 x i16> 2998 // CHECK: and <8 x i16> 2999 // CHECK: and <8 x i16> 3000 // CHECK: or <8 x i16> 3001 // CHECK-LE: xor <8 x i16> 3002 // CHECK-LE: and <8 x i16> 3003 // CHECK-LE: and <8 x i16> 3004 // CHECK-LE: or <8 x i16> 3005 3006 res_vus = vec_sel(vus, vus, vus); 3007 // CHECK: xor <8 x i16> 3008 // CHECK: and <8 x i16> 3009 // CHECK: and <8 x i16> 3010 // CHECK: or <8 x i16> 3011 // CHECK-LE: xor <8 x i16> 3012 // CHECK-LE: and <8 x i16> 3013 // CHECK-LE: and <8 x i16> 3014 // CHECK-LE: or <8 x i16> 3015 3016 res_vus = vec_sel(vus, vus, vbs); 3017 // CHECK: xor <8 x i16> 3018 // CHECK: and <8 x i16> 3019 // CHECK: and <8 x i16> 3020 // CHECK: or <8 x i16> 3021 // CHECK-LE: xor <8 x i16> 3022 // CHECK-LE: and <8 x i16> 3023 // CHECK-LE: and <8 x i16> 3024 // CHECK-LE: or <8 x i16> 3025 3026 res_vbs = vec_sel(vbs, vbs, vus); 3027 // CHECK: xor <8 x i16> 3028 // CHECK: and <8 x i16> 3029 // CHECK: and <8 x i16> 3030 // CHECK: or <8 x i16> 3031 // CHECK-LE: xor <8 x i16> 3032 // CHECK-LE: and <8 x i16> 3033 // CHECK-LE: and <8 x i16> 3034 // CHECK-LE: or <8 x i16> 3035 3036 res_vbs = vec_sel(vbs, vbs, vbs); 3037 // CHECK: xor <8 x i16> 3038 // CHECK: and <8 x i16> 3039 // CHECK: and <8 x i16> 3040 // CHECK: or <8 x i16> 3041 // CHECK-LE: xor <8 x i16> 3042 // CHECK-LE: and <8 x i16> 3043 // CHECK-LE: and <8 x i16> 3044 // CHECK-LE: or <8 x i16> 3045 3046 res_vi = vec_sel(vi, vi, vui); 3047 // CHECK: xor <4 x i32> 3048 // CHECK: and <4 x i32> 3049 // CHECK: and <4 x i32> 3050 // CHECK: or <4 x i32> 3051 // CHECK-LE: xor <4 x i32> 3052 // CHECK-LE: and <4 x i32> 3053 // CHECK-LE: and <4 x i32> 3054 // CHECK-LE: or <4 x i32> 3055 3056 res_vi = vec_sel(vi, vi, vbi); 3057 // CHECK: xor <4 x i32> 3058 // CHECK: and <4 x i32> 3059 // CHECK: and <4 x i32> 3060 // CHECK: or <4 x i32> 3061 // CHECK-LE: xor <4 x i32> 3062 // CHECK-LE: and <4 x i32> 3063 // CHECK-LE: and <4 x i32> 3064 // CHECK-LE: or <4 x i32> 3065 3066 res_vui = vec_sel(vui, vui, vui); 3067 // CHECK: xor <4 x i32> 3068 // CHECK: and <4 x i32> 3069 // CHECK: and <4 x i32> 3070 // CHECK: or <4 x i32> 3071 // CHECK-LE: xor <4 x i32> 3072 // CHECK-LE: and <4 x i32> 3073 // CHECK-LE: and <4 x i32> 3074 // CHECK-LE: or <4 x i32> 3075 3076 res_vui = vec_sel(vui, vui, vbi); 3077 // CHECK: xor <4 x i32> 3078 // CHECK: and <4 x i32> 3079 // CHECK: and <4 x i32> 3080 // CHECK: or <4 x i32> 3081 // CHECK-LE: xor <4 x i32> 3082 // CHECK-LE: and <4 x i32> 3083 // CHECK-LE: and <4 x i32> 3084 // CHECK-LE: or <4 x i32> 3085 3086 res_vbi = vec_sel(vbi, vbi, vui); 3087 // CHECK: xor <4 x i32> 3088 // CHECK: and <4 x i32> 3089 // CHECK: and <4 x i32> 3090 // CHECK: or <4 x i32> 3091 // CHECK-LE: xor <4 x i32> 3092 // CHECK-LE: and <4 x i32> 3093 // CHECK-LE: and <4 x i32> 3094 // CHECK-LE: or <4 x i32> 3095 3096 res_vbi = vec_sel(vbi, vbi, vbi); 3097 // CHECK: xor <4 x i32> 3098 // CHECK: and <4 x i32> 3099 // CHECK: and <4 x i32> 3100 // CHECK: or <4 x i32> 3101 // CHECK-LE: xor <4 x i32> 3102 // CHECK-LE: and <4 x i32> 3103 // CHECK-LE: and <4 x i32> 3104 // CHECK-LE: or <4 x i32> 3105 3106 res_vf = vec_sel(vf, vf, vui); 3107 // CHECK: xor <4 x i32> 3108 // CHECK: and <4 x i32> 3109 // CHECK: and <4 x i32> 3110 // CHECK: or <4 x i32> 3111 // CHECK-LE: xor <4 x i32> 3112 // CHECK-LE: and <4 x i32> 3113 // CHECK-LE: and <4 x i32> 3114 // CHECK-LE: or <4 x i32> 3115 3116 res_vf = vec_sel(vf, vf, vbi); 3117 // CHECK: xor <4 x i32> 3118 // CHECK: and <4 x i32> 3119 // CHECK: and <4 x i32> 3120 // CHECK: or <4 x i32> 3121 // CHECK-LE: xor <4 x i32> 3122 // CHECK-LE: and <4 x i32> 3123 // CHECK-LE: and <4 x i32> 3124 // CHECK-LE: or <4 x i32> 3125 3126 res_vsc = vec_vsel(vsc, vsc, vuc); 3127 // CHECK: xor <16 x i8> 3128 // CHECK: and <16 x i8> 3129 // CHECK: and <16 x i8> 3130 // CHECK: or <16 x i8> 3131 // CHECK-LE: xor <16 x i8> 3132 // CHECK-LE: and <16 x i8> 3133 // CHECK-LE: and <16 x i8> 3134 // CHECK-LE: or <16 x i8> 3135 3136 res_vsc = vec_vsel(vsc, vsc, vbc); 3137 // CHECK: xor <16 x i8> 3138 // CHECK: and <16 x i8> 3139 // CHECK: and <16 x i8> 3140 // CHECK: or <16 x i8> 3141 // CHECK-LE: xor <16 x i8> 3142 // CHECK-LE: and <16 x i8> 3143 // CHECK-LE: and <16 x i8> 3144 // CHECK-LE: or <16 x i8> 3145 3146 res_vuc = vec_vsel(vuc, vuc, vuc); 3147 // CHECK: xor <16 x i8> 3148 // CHECK: and <16 x i8> 3149 // CHECK: and <16 x i8> 3150 // CHECK: or <16 x i8> 3151 // CHECK-LE: xor <16 x i8> 3152 // CHECK-LE: and <16 x i8> 3153 // CHECK-LE: and <16 x i8> 3154 // CHECK-LE: or <16 x i8> 3155 3156 res_vuc = vec_vsel(vuc, vuc, vbc); 3157 // CHECK: xor <16 x i8> 3158 // CHECK: and <16 x i8> 3159 // CHECK: and <16 x i8> 3160 // CHECK: or <16 x i8> 3161 // CHECK-LE: xor <16 x i8> 3162 // CHECK-LE: and <16 x i8> 3163 // CHECK-LE: and <16 x i8> 3164 // CHECK-LE: or <16 x i8> 3165 3166 res_vbc = vec_vsel(vbc, vbc, vuc); 3167 // CHECK: xor <16 x i8> 3168 // CHECK: and <16 x i8> 3169 // CHECK: and <16 x i8> 3170 // CHECK: or <16 x i8> 3171 // CHECK-LE: xor <16 x i8> 3172 // CHECK-LE: and <16 x i8> 3173 // CHECK-LE: and <16 x i8> 3174 // CHECK-LE: or <16 x i8> 3175 3176 res_vbc = vec_vsel(vbc, vbc, vbc); 3177 // CHECK: xor <16 x i8> 3178 // CHECK: and <16 x i8> 3179 // CHECK: and <16 x i8> 3180 // CHECK: or <16 x i8> 3181 // CHECK-LE: xor <16 x i8> 3182 // CHECK-LE: and <16 x i8> 3183 // CHECK-LE: and <16 x i8> 3184 // CHECK-LE: or <16 x i8> 3185 3186 res_vs = vec_vsel(vs, vs, vus); 3187 // CHECK: xor <8 x i16> 3188 // CHECK: and <8 x i16> 3189 // CHECK: and <8 x i16> 3190 // CHECK: or <8 x i16> 3191 // CHECK-LE: xor <8 x i16> 3192 // CHECK-LE: and <8 x i16> 3193 // CHECK-LE: and <8 x i16> 3194 // CHECK-LE: or <8 x i16> 3195 3196 res_vs = vec_vsel(vs, vs, vbs); 3197 // CHECK: xor <8 x i16> 3198 // CHECK: and <8 x i16> 3199 // CHECK: and <8 x i16> 3200 // CHECK: or <8 x i16> 3201 // CHECK-LE: xor <8 x i16> 3202 // CHECK-LE: and <8 x i16> 3203 // CHECK-LE: and <8 x i16> 3204 // CHECK-LE: or <8 x i16> 3205 3206 res_vus = vec_vsel(vus, vus, vus); 3207 // CHECK: xor <8 x i16> 3208 // CHECK: and <8 x i16> 3209 // CHECK: and <8 x i16> 3210 // CHECK: or <8 x i16> 3211 // CHECK-LE: xor <8 x i16> 3212 // CHECK-LE: and <8 x i16> 3213 // CHECK-LE: and <8 x i16> 3214 // CHECK-LE: or <8 x i16> 3215 3216 res_vus = vec_vsel(vus, vus, vbs); 3217 // CHECK: xor <8 x i16> 3218 // CHECK: and <8 x i16> 3219 // CHECK: and <8 x i16> 3220 // CHECK: or <8 x i16> 3221 // CHECK-LE: xor <8 x i16> 3222 // CHECK-LE: and <8 x i16> 3223 // CHECK-LE: and <8 x i16> 3224 // CHECK-LE: or <8 x i16> 3225 3226 res_vbs = vec_vsel(vbs, vbs, vus); 3227 // CHECK: xor <8 x i16> 3228 // CHECK: and <8 x i16> 3229 // CHECK: and <8 x i16> 3230 // CHECK: or <8 x i16> 3231 // CHECK-LE: xor <8 x i16> 3232 // CHECK-LE: and <8 x i16> 3233 // CHECK-LE: and <8 x i16> 3234 // CHECK-LE: or <8 x i16> 3235 3236 res_vbs = vec_vsel(vbs, vbs, vbs); 3237 // CHECK: xor <8 x i16> 3238 // CHECK: and <8 x i16> 3239 // CHECK: and <8 x i16> 3240 // CHECK: or <8 x i16> 3241 // CHECK-LE: xor <8 x i16> 3242 // CHECK-LE: and <8 x i16> 3243 // CHECK-LE: and <8 x i16> 3244 // CHECK-LE: or <8 x i16> 3245 3246 res_vi = vec_vsel(vi, vi, vui); 3247 // CHECK: xor <4 x i32> 3248 // CHECK: and <4 x i32> 3249 // CHECK: and <4 x i32> 3250 // CHECK: or <4 x i32> 3251 // CHECK-LE: xor <4 x i32> 3252 // CHECK-LE: and <4 x i32> 3253 // CHECK-LE: and <4 x i32> 3254 // CHECK-LE: or <4 x i32> 3255 3256 res_vi = vec_vsel(vi, vi, vbi); 3257 // CHECK: xor <4 x i32> 3258 // CHECK: and <4 x i32> 3259 // CHECK: and <4 x i32> 3260 // CHECK: or <4 x i32> 3261 // CHECK-LE: xor <4 x i32> 3262 // CHECK-LE: and <4 x i32> 3263 // CHECK-LE: and <4 x i32> 3264 // CHECK-LE: or <4 x i32> 3265 3266 res_vui = vec_vsel(vui, vui, vui); 3267 // CHECK: xor <4 x i32> 3268 // CHECK: and <4 x i32> 3269 // CHECK: and <4 x i32> 3270 // CHECK: or <4 x i32> 3271 // CHECK-LE: xor <4 x i32> 3272 // CHECK-LE: and <4 x i32> 3273 // CHECK-LE: and <4 x i32> 3274 // CHECK-LE: or <4 x i32> 3275 3276 res_vui = vec_vsel(vui, vui, vbi); 3277 // CHECK: xor <4 x i32> 3278 // CHECK: and <4 x i32> 3279 // CHECK: and <4 x i32> 3280 // CHECK: or <4 x i32> 3281 // CHECK-LE: xor <4 x i32> 3282 // CHECK-LE: and <4 x i32> 3283 // CHECK-LE: and <4 x i32> 3284 // CHECK-LE: or <4 x i32> 3285 3286 res_vbi = vec_vsel(vbi, vbi, vui); 3287 // CHECK: xor <4 x i32> 3288 // CHECK: and <4 x i32> 3289 // CHECK: and <4 x i32> 3290 // CHECK: or <4 x i32> 3291 // CHECK-LE: xor <4 x i32> 3292 // CHECK-LE: and <4 x i32> 3293 // CHECK-LE: and <4 x i32> 3294 // CHECK-LE: or <4 x i32> 3295 3296 res_vbi = vec_vsel(vbi, vbi, vbi); 3297 // CHECK: xor <4 x i32> 3298 // CHECK: and <4 x i32> 3299 // CHECK: and <4 x i32> 3300 // CHECK: or <4 x i32> 3301 // CHECK-LE: xor <4 x i32> 3302 // CHECK-LE: and <4 x i32> 3303 // CHECK-LE: and <4 x i32> 3304 // CHECK-LE: or <4 x i32> 3305 3306 res_vf = vec_vsel(vf, vf, vui); 3307 // CHECK: xor <4 x i32> 3308 // CHECK: and <4 x i32> 3309 // CHECK: and <4 x i32> 3310 // CHECK: or <4 x i32> 3311 // CHECK-LE: xor <4 x i32> 3312 // CHECK-LE: and <4 x i32> 3313 // CHECK-LE: and <4 x i32> 3314 // CHECK-LE: or <4 x i32> 3315 3316 res_vf = vec_vsel(vf, vf, vbi); 3317 // CHECK: xor <4 x i32> 3318 // CHECK: and <4 x i32> 3319 // CHECK: and <4 x i32> 3320 // CHECK: or <4 x i32> 3321 // CHECK-LE: xor <4 x i32> 3322 // CHECK-LE: and <4 x i32> 3323 // CHECK-LE: and <4 x i32> 3324 // CHECK-LE: or <4 x i32> 3325 3326 /* vec_sl */ 3327 res_vsc = vec_sl(vsc, vuc); 3328 // CHECK: shl <16 x i8> 3329 // CHECK-LE: shl <16 x i8> 3330 3331 res_vuc = vec_sl(vuc, vuc); 3332 // CHECK: shl <16 x i8> 3333 // CHECK-LE: shl <16 x i8> 3334 3335 res_vs = vec_sl(vs, vus); 3336 // CHECK: shl <8 x i16> 3337 // CHECK-LE: shl <8 x i16> 3338 3339 res_vus = vec_sl(vus, vus); 3340 // CHECK: shl <8 x i16> 3341 // CHECK-LE: shl <8 x i16> 3342 3343 res_vi = vec_sl(vi, vui); 3344 // CHECK: shl <4 x i32> 3345 // CHECK-LE: shl <4 x i32> 3346 3347 res_vui = vec_sl(vui, vui); 3348 // CHECK: shl <4 x i32> 3349 // CHECK-LE: shl <4 x i32> 3350 3351 res_vsc = vec_vslb(vsc, vuc); 3352 // CHECK: shl <16 x i8> 3353 // CHECK-LE: shl <16 x i8> 3354 3355 res_vuc = vec_vslb(vuc, vuc); 3356 // CHECK: shl <16 x i8> 3357 // CHECK-LE: shl <16 x i8> 3358 3359 res_vs = vec_vslh(vs, vus); 3360 // CHECK: shl <8 x i16> 3361 // CHECK-LE: shl <8 x i16> 3362 3363 res_vus = vec_vslh(vus, vus); 3364 // CHECK: shl <8 x i16> 3365 // CHECK-LE: shl <8 x i16> 3366 3367 res_vi = vec_vslw(vi, vui); 3368 // CHECK: shl <4 x i32> 3369 // CHECK-LE: shl <4 x i32> 3370 3371 res_vui = vec_vslw(vui, vui); 3372 // CHECK: shl <4 x i32> 3373 // CHECK-LE: shl <4 x i32> 3374 3375 /* vec_sld */ 3376 res_vsc = vec_sld(vsc, vsc, 0); 3377 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3378 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3379 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3380 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3381 // CHECK: @llvm.ppc.altivec.vperm 3382 // CHECK-LE: sub nsw i32 16 3383 // CHECK-LE: sub nsw i32 17 3384 // CHECK-LE: sub nsw i32 18 3385 // CHECK-LE: sub nsw i32 31 3386 // CHECK-LE: @llvm.ppc.altivec.vperm 3387 3388 res_vuc = vec_sld(vuc, vuc, 0); 3389 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3390 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3391 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3392 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3393 // CHECK: @llvm.ppc.altivec.vperm 3394 // CHECK-LE: sub nsw i32 16 3395 // CHECK-LE: sub nsw i32 17 3396 // CHECK-LE: sub nsw i32 18 3397 // CHECK-LE: sub nsw i32 31 3398 // CHECK-LE: @llvm.ppc.altivec.vperm 3399 3400 res_vs = vec_sld(vs, vs, 0); 3401 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3402 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3403 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3404 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3405 // CHECK: @llvm.ppc.altivec.vperm 3406 // CHECK-LE: sub nsw i32 16 3407 // CHECK-LE: sub nsw i32 17 3408 // CHECK-LE: sub nsw i32 18 3409 // CHECK-LE: sub nsw i32 31 3410 // CHECK-LE: @llvm.ppc.altivec.vperm 3411 3412 res_vus = vec_sld(vus, vus, 0); 3413 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3414 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3415 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3416 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3417 // CHECK: @llvm.ppc.altivec.vperm 3418 // CHECK-LE: sub nsw i32 16 3419 // CHECK-LE: sub nsw i32 17 3420 // CHECK-LE: sub nsw i32 18 3421 // CHECK-LE: sub nsw i32 31 3422 // CHECK-LE: @llvm.ppc.altivec.vperm 3423 3424 res_vbs = vec_sld(vbs, vbs, 0); 3425 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3426 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3427 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3428 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3429 // CHECK: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3430 // CHECK: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3431 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8> 3432 // CHECK-LE: sub nsw i32 16 3433 // CHECK-LE: sub nsw i32 17 3434 // CHECK-LE: sub nsw i32 18 3435 // CHECK-LE: sub nsw i32 31 3436 // CHECK-LE: xor <16 x i8> 3437 // CHECK-LE: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3438 // CHECK-LE: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3439 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8> 3440 3441 res_vp = vec_sld(vp, vp, 0); 3442 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3443 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3444 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3445 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3446 // CHECK: @llvm.ppc.altivec.vperm 3447 // CHECK-LE: sub nsw i32 16 3448 // CHECK-LE: sub nsw i32 17 3449 // CHECK-LE: sub nsw i32 18 3450 // CHECK-LE: sub nsw i32 31 3451 // CHECK-LE: @llvm.ppc.altivec.vperm 3452 3453 res_vi = vec_sld(vi, vi, 0); 3454 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3455 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3456 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3457 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3458 // CHECK: @llvm.ppc.altivec.vperm 3459 // CHECK-LE: sub nsw i32 16 3460 // CHECK-LE: sub nsw i32 17 3461 // CHECK-LE: sub nsw i32 18 3462 // CHECK-LE: sub nsw i32 31 3463 // CHECK-LE: @llvm.ppc.altivec.vperm 3464 3465 res_vui = vec_sld(vui, vui, 0); 3466 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3467 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3468 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3469 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3470 // CHECK: @llvm.ppc.altivec.vperm 3471 // CHECK-LE: sub nsw i32 16 3472 // CHECK-LE: sub nsw i32 17 3473 // CHECK-LE: sub nsw i32 18 3474 // CHECK-LE: sub nsw i32 31 3475 // CHECK-LE: @llvm.ppc.altivec.vperm 3476 3477 res_vbi = vec_sld(vbi, vbi, 0); 3478 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3479 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3480 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3481 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3482 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8> 3483 // CHECK-LE: sub nsw i32 16 3484 // CHECK-LE: sub nsw i32 17 3485 // CHECK-LE: sub nsw i32 18 3486 // CHECK-LE: sub nsw i32 31 3487 // CHECK-LE: xor <16 x i8> 3488 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8> 3489 3490 res_vf = vec_sld(vf, vf, 0); 3491 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3492 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3493 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3494 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3495 // CHECK: @llvm.ppc.altivec.vperm 3496 // CHECK-LE: sub nsw i32 16 3497 // CHECK-LE: sub nsw i32 17 3498 // CHECK-LE: sub nsw i32 18 3499 // CHECK-LE: sub nsw i32 31 3500 // CHECK-LE: @llvm.ppc.altivec.vperm 3501 3502 res_vsc = vec_vsldoi(vsc, vsc, 0); 3503 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3504 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3505 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3506 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3507 // CHECK: @llvm.ppc.altivec.vperm 3508 // CHECK-LE: sub nsw i32 16 3509 // CHECK-LE: sub nsw i32 17 3510 // CHECK-LE: sub nsw i32 18 3511 // CHECK-LE: sub nsw i32 31 3512 // CHECK-LE: @llvm.ppc.altivec.vperm 3513 3514 res_vuc = vec_vsldoi(vuc, vuc, 0); 3515 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3516 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3517 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3518 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3519 // CHECK: @llvm.ppc.altivec.vperm 3520 // CHECK-LE: sub nsw i32 16 3521 // CHECK-LE: sub nsw i32 17 3522 // CHECK-LE: sub nsw i32 18 3523 // CHECK-LE: sub nsw i32 31 3524 // CHECK-LE: @llvm.ppc.altivec.vperm 3525 3526 res_vs = vec_vsldoi(vs, vs, 0); 3527 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3528 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3529 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3530 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3531 // CHECK: @llvm.ppc.altivec.vperm 3532 // CHECK-LE: sub nsw i32 16 3533 // CHECK-LE: sub nsw i32 17 3534 // CHECK-LE: sub nsw i32 18 3535 // CHECK-LE: sub nsw i32 31 3536 // CHECK-LE: @llvm.ppc.altivec.vperm 3537 3538 res_vus = vec_vsldoi(vus, vus, 0); 3539 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3540 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3541 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3542 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3543 // CHECK: @llvm.ppc.altivec.vperm 3544 // CHECK-LE: sub nsw i32 16 3545 // CHECK-LE: sub nsw i32 17 3546 // CHECK-LE: sub nsw i32 18 3547 // CHECK-LE: sub nsw i32 31 3548 // CHECK-LE: @llvm.ppc.altivec.vperm 3549 3550 res_vp = vec_vsldoi(vp, vp, 0); 3551 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3552 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3553 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3554 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3555 // CHECK: @llvm.ppc.altivec.vperm 3556 // CHECK-LE: sub nsw i32 16 3557 // CHECK-LE: sub nsw i32 17 3558 // CHECK-LE: sub nsw i32 18 3559 // CHECK-LE: sub nsw i32 31 3560 // CHECK-LE: @llvm.ppc.altivec.vperm 3561 3562 res_vi = vec_vsldoi(vi, vi, 0); 3563 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3564 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3565 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3566 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3567 // CHECK: @llvm.ppc.altivec.vperm 3568 // CHECK-LE: sub nsw i32 16 3569 // CHECK-LE: sub nsw i32 17 3570 // CHECK-LE: sub nsw i32 18 3571 // CHECK-LE: sub nsw i32 31 3572 // CHECK-LE: @llvm.ppc.altivec.vperm 3573 3574 res_vui = vec_vsldoi(vui, vui, 0); 3575 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3576 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3577 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3578 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3579 // CHECK: @llvm.ppc.altivec.vperm 3580 // CHECK-LE: sub nsw i32 16 3581 // CHECK-LE: sub nsw i32 17 3582 // CHECK-LE: sub nsw i32 18 3583 // CHECK-LE: sub nsw i32 31 3584 // CHECK-LE: @llvm.ppc.altivec.vperm 3585 3586 res_vf = vec_vsldoi(vf, vf, 0); 3587 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3588 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3589 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3590 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3591 // CHECK: @llvm.ppc.altivec.vperm 3592 // CHECK-LE: sub nsw i32 16 3593 // CHECK-LE: sub nsw i32 17 3594 // CHECK-LE: sub nsw i32 18 3595 // CHECK-LE: sub nsw i32 31 3596 // CHECK-LE: @llvm.ppc.altivec.vperm 3597 3598 /* vec_sll */ 3599 res_vsc = vec_sll(vsc, vuc); 3600 // CHECK: @llvm.ppc.altivec.vsl 3601 // CHECK-LE: @llvm.ppc.altivec.vsl 3602 3603 res_vsc = vec_sll(vsc, vus); 3604 // CHECK: @llvm.ppc.altivec.vsl 3605 // CHECK-LE: @llvm.ppc.altivec.vsl 3606 3607 res_vsc = vec_sll(vsc, vui); 3608 // CHECK: @llvm.ppc.altivec.vsl 3609 // CHECK-LE: @llvm.ppc.altivec.vsl 3610 3611 res_vuc = vec_sll(vuc, vuc); 3612 // CHECK: @llvm.ppc.altivec.vsl 3613 // CHECK-LE: @llvm.ppc.altivec.vsl 3614 3615 res_vuc = vec_sll(vuc, vus); 3616 // CHECK: @llvm.ppc.altivec.vsl 3617 // CHECK-LE: @llvm.ppc.altivec.vsl 3618 3619 res_vuc = vec_sll(vuc, vui); 3620 // CHECK: @llvm.ppc.altivec.vsl 3621 // CHECK-LE: @llvm.ppc.altivec.vsl 3622 3623 res_vbc = vec_sll(vbc, vuc); 3624 // CHECK: @llvm.ppc.altivec.vsl 3625 // CHECK-LE: @llvm.ppc.altivec.vsl 3626 3627 res_vbc = vec_sll(vbc, vus); 3628 // CHECK: @llvm.ppc.altivec.vsl 3629 // CHECK-LE: @llvm.ppc.altivec.vsl 3630 3631 res_vbc = vec_sll(vbc, vui); 3632 // CHECK: @llvm.ppc.altivec.vsl 3633 // CHECK-LE: @llvm.ppc.altivec.vsl 3634 3635 res_vs = vec_sll(vs, vuc); 3636 // CHECK: @llvm.ppc.altivec.vsl 3637 // CHECK-LE: @llvm.ppc.altivec.vsl 3638 3639 res_vs = vec_sll(vs, vus); 3640 // CHECK: @llvm.ppc.altivec.vsl 3641 // CHECK-LE: @llvm.ppc.altivec.vsl 3642 3643 res_vs = vec_sll(vs, vui); 3644 // CHECK: @llvm.ppc.altivec.vsl 3645 // CHECK-LE: @llvm.ppc.altivec.vsl 3646 3647 res_vus = vec_sll(vus, vuc); 3648 // CHECK: @llvm.ppc.altivec.vsl 3649 // CHECK-LE: @llvm.ppc.altivec.vsl 3650 3651 res_vus = vec_sll(vus, vus); 3652 // CHECK: @llvm.ppc.altivec.vsl 3653 // CHECK-LE: @llvm.ppc.altivec.vsl 3654 3655 res_vus = vec_sll(vus, vui); 3656 // CHECK: @llvm.ppc.altivec.vsl 3657 // CHECK-LE: @llvm.ppc.altivec.vsl 3658 3659 res_vbs = vec_sll(vbs, vuc); 3660 // CHECK: @llvm.ppc.altivec.vsl 3661 // CHECK-LE: @llvm.ppc.altivec.vsl 3662 3663 res_vbs = vec_sll(vbs, vus); 3664 // CHECK: @llvm.ppc.altivec.vsl 3665 // CHECK-LE: @llvm.ppc.altivec.vsl 3666 3667 res_vbs = vec_sll(vbs, vui); 3668 // CHECK: @llvm.ppc.altivec.vsl 3669 // CHECK-LE: @llvm.ppc.altivec.vsl 3670 3671 res_vp = vec_sll(vp, vuc); 3672 // CHECK: @llvm.ppc.altivec.vsl 3673 // CHECK-LE: @llvm.ppc.altivec.vsl 3674 3675 res_vp = vec_sll(vp, vus); 3676 // CHECK: @llvm.ppc.altivec.vsl 3677 // CHECK-LE: @llvm.ppc.altivec.vsl 3678 3679 res_vp = vec_sll(vp, vui); 3680 // CHECK: @llvm.ppc.altivec.vsl 3681 // CHECK-LE: @llvm.ppc.altivec.vsl 3682 3683 res_vi = vec_sll(vi, vuc); 3684 // CHECK: @llvm.ppc.altivec.vsl 3685 // CHECK-LE: @llvm.ppc.altivec.vsl 3686 3687 res_vi = vec_sll(vi, vus); 3688 // CHECK: @llvm.ppc.altivec.vsl 3689 // CHECK-LE: @llvm.ppc.altivec.vsl 3690 3691 res_vi = vec_sll(vi, vui); 3692 // CHECK: @llvm.ppc.altivec.vsl 3693 // CHECK-LE: @llvm.ppc.altivec.vsl 3694 3695 res_vui = vec_sll(vui, vuc); 3696 // CHECK: @llvm.ppc.altivec.vsl 3697 // CHECK-LE: @llvm.ppc.altivec.vsl 3698 3699 res_vui = vec_sll(vui, vus); 3700 // CHECK: @llvm.ppc.altivec.vsl 3701 // CHECK-LE: @llvm.ppc.altivec.vsl 3702 3703 res_vui = vec_sll(vui, vui); 3704 // CHECK: @llvm.ppc.altivec.vsl 3705 // CHECK-LE: @llvm.ppc.altivec.vsl 3706 3707 res_vbi = vec_sll(vbi, vuc); 3708 // CHECK: @llvm.ppc.altivec.vsl 3709 // CHECK-LE: @llvm.ppc.altivec.vsl 3710 3711 res_vbi = vec_sll(vbi, vus); 3712 // CHECK: @llvm.ppc.altivec.vsl 3713 // CHECK-LE: @llvm.ppc.altivec.vsl 3714 3715 res_vbi = vec_sll(vbi, vui); 3716 // CHECK: @llvm.ppc.altivec.vsl 3717 // CHECK-LE: @llvm.ppc.altivec.vsl 3718 3719 res_vsc = vec_vsl(vsc, vuc); 3720 // CHECK: @llvm.ppc.altivec.vsl 3721 // CHECK-LE: @llvm.ppc.altivec.vsl 3722 3723 res_vsc = vec_vsl(vsc, vus); 3724 // CHECK: @llvm.ppc.altivec.vsl 3725 // CHECK-LE: @llvm.ppc.altivec.vsl 3726 3727 res_vsc = vec_vsl(vsc, vui); 3728 // CHECK: @llvm.ppc.altivec.vsl 3729 // CHECK-LE: @llvm.ppc.altivec.vsl 3730 3731 res_vuc = vec_vsl(vuc, vuc); 3732 // CHECK: @llvm.ppc.altivec.vsl 3733 // CHECK-LE: @llvm.ppc.altivec.vsl 3734 3735 res_vuc = vec_vsl(vuc, vus); 3736 // CHECK: @llvm.ppc.altivec.vsl 3737 // CHECK-LE: @llvm.ppc.altivec.vsl 3738 3739 res_vuc = vec_vsl(vuc, vui); 3740 // CHECK: @llvm.ppc.altivec.vsl 3741 // CHECK-LE: @llvm.ppc.altivec.vsl 3742 3743 res_vbc = vec_vsl(vbc, vuc); 3744 // CHECK: @llvm.ppc.altivec.vsl 3745 // CHECK-LE: @llvm.ppc.altivec.vsl 3746 3747 res_vbc = vec_vsl(vbc, vus); 3748 // CHECK: @llvm.ppc.altivec.vsl 3749 // CHECK-LE: @llvm.ppc.altivec.vsl 3750 3751 res_vbc = vec_vsl(vbc, vui); 3752 // CHECK: @llvm.ppc.altivec.vsl 3753 // CHECK-LE: @llvm.ppc.altivec.vsl 3754 3755 res_vs = vec_vsl(vs, vuc); 3756 // CHECK: @llvm.ppc.altivec.vsl 3757 // CHECK-LE: @llvm.ppc.altivec.vsl 3758 3759 res_vs = vec_vsl(vs, vus); 3760 // CHECK: @llvm.ppc.altivec.vsl 3761 // CHECK-LE: @llvm.ppc.altivec.vsl 3762 3763 res_vs = vec_vsl(vs, vui); 3764 // CHECK: @llvm.ppc.altivec.vsl 3765 // CHECK-LE: @llvm.ppc.altivec.vsl 3766 3767 res_vus = vec_vsl(vus, vuc); 3768 // CHECK: @llvm.ppc.altivec.vsl 3769 // CHECK-LE: @llvm.ppc.altivec.vsl 3770 3771 res_vus = vec_vsl(vus, vus); 3772 // CHECK: @llvm.ppc.altivec.vsl 3773 // CHECK-LE: @llvm.ppc.altivec.vsl 3774 3775 res_vus = vec_vsl(vus, vui); 3776 // CHECK: @llvm.ppc.altivec.vsl 3777 // CHECK-LE: @llvm.ppc.altivec.vsl 3778 3779 res_vbs = vec_vsl(vbs, vuc); 3780 // CHECK: @llvm.ppc.altivec.vsl 3781 // CHECK-LE: @llvm.ppc.altivec.vsl 3782 3783 res_vbs = vec_vsl(vbs, vus); 3784 // CHECK: @llvm.ppc.altivec.vsl 3785 // CHECK-LE: @llvm.ppc.altivec.vsl 3786 3787 res_vbs = vec_vsl(vbs, vui); 3788 // CHECK: @llvm.ppc.altivec.vsl 3789 // CHECK-LE: @llvm.ppc.altivec.vsl 3790 3791 res_vp = vec_vsl(vp, vuc); 3792 // CHECK: @llvm.ppc.altivec.vsl 3793 // CHECK-LE: @llvm.ppc.altivec.vsl 3794 3795 res_vp = vec_vsl(vp, vus); 3796 // CHECK: @llvm.ppc.altivec.vsl 3797 // CHECK-LE: @llvm.ppc.altivec.vsl 3798 3799 res_vp = vec_vsl(vp, vui); 3800 // CHECK: @llvm.ppc.altivec.vsl 3801 // CHECK-LE: @llvm.ppc.altivec.vsl 3802 3803 res_vi = vec_vsl(vi, vuc); 3804 // CHECK: @llvm.ppc.altivec.vsl 3805 // CHECK-LE: @llvm.ppc.altivec.vsl 3806 3807 res_vi = vec_vsl(vi, vus); 3808 // CHECK: @llvm.ppc.altivec.vsl 3809 // CHECK-LE: @llvm.ppc.altivec.vsl 3810 3811 res_vi = vec_vsl(vi, vui); 3812 // CHECK: @llvm.ppc.altivec.vsl 3813 // CHECK-LE: @llvm.ppc.altivec.vsl 3814 3815 res_vui = vec_vsl(vui, vuc); 3816 // CHECK: @llvm.ppc.altivec.vsl 3817 // CHECK-LE: @llvm.ppc.altivec.vsl 3818 3819 res_vui = vec_vsl(vui, vus); 3820 // CHECK: @llvm.ppc.altivec.vsl 3821 // CHECK-LE: @llvm.ppc.altivec.vsl 3822 3823 res_vui = vec_vsl(vui, vui); 3824 // CHECK: @llvm.ppc.altivec.vsl 3825 // CHECK-LE: @llvm.ppc.altivec.vsl 3826 3827 res_vbi = vec_vsl(vbi, vuc); 3828 // CHECK: @llvm.ppc.altivec.vsl 3829 // CHECK-LE: @llvm.ppc.altivec.vsl 3830 3831 res_vbi = vec_vsl(vbi, vus); 3832 // CHECK: @llvm.ppc.altivec.vsl 3833 // CHECK-LE: @llvm.ppc.altivec.vsl 3834 3835 res_vbi = vec_vsl(vbi, vui); 3836 // CHECK: @llvm.ppc.altivec.vsl 3837 // CHECK-LE: @llvm.ppc.altivec.vsl 3838 3839 /* vec_slo */ 3840 res_vsc = vec_slo(vsc, vsc); 3841 // CHECK: @llvm.ppc.altivec.vslo 3842 // CHECK-LE: @llvm.ppc.altivec.vslo 3843 3844 res_vsc = vec_slo(vsc, vuc); 3845 // CHECK: @llvm.ppc.altivec.vslo 3846 // CHECK-LE: @llvm.ppc.altivec.vslo 3847 3848 res_vuc = vec_slo(vuc, vsc); 3849 // CHECK: @llvm.ppc.altivec.vslo 3850 // CHECK-LE: @llvm.ppc.altivec.vslo 3851 3852 res_vuc = vec_slo(vuc, vuc); 3853 // CHECK: @llvm.ppc.altivec.vslo 3854 // CHECK-LE: @llvm.ppc.altivec.vslo 3855 3856 res_vs = vec_slo(vs, vsc); 3857 // CHECK: @llvm.ppc.altivec.vslo 3858 // CHECK-LE: @llvm.ppc.altivec.vslo 3859 3860 res_vs = vec_slo(vs, vuc); 3861 // CHECK: @llvm.ppc.altivec.vslo 3862 // CHECK-LE: @llvm.ppc.altivec.vslo 3863 3864 res_vus = vec_slo(vus, vsc); 3865 // CHECK: @llvm.ppc.altivec.vslo 3866 // CHECK-LE: @llvm.ppc.altivec.vslo 3867 3868 res_vus = vec_slo(vus, vuc); 3869 // CHECK: @llvm.ppc.altivec.vslo 3870 // CHECK-LE: @llvm.ppc.altivec.vslo 3871 3872 res_vp = vec_slo(vp, vsc); 3873 // CHECK: @llvm.ppc.altivec.vslo 3874 // CHECK-LE: @llvm.ppc.altivec.vslo 3875 3876 res_vp = vec_slo(vp, vuc); 3877 // CHECK: @llvm.ppc.altivec.vslo 3878 // CHECK-LE: @llvm.ppc.altivec.vslo 3879 3880 res_vi = vec_slo(vi, vsc); 3881 // CHECK: @llvm.ppc.altivec.vslo 3882 // CHECK-LE: @llvm.ppc.altivec.vslo 3883 3884 res_vi = vec_slo(vi, vuc); 3885 // CHECK: @llvm.ppc.altivec.vslo 3886 // CHECK-LE: @llvm.ppc.altivec.vslo 3887 3888 res_vui = vec_slo(vui, vsc); 3889 // CHECK: @llvm.ppc.altivec.vslo 3890 // CHECK-LE: @llvm.ppc.altivec.vslo 3891 3892 res_vui = vec_slo(vui, vuc); 3893 // CHECK: @llvm.ppc.altivec.vslo 3894 // CHECK-LE: @llvm.ppc.altivec.vslo 3895 3896 res_vf = vec_slo(vf, vsc); 3897 // CHECK: @llvm.ppc.altivec.vslo 3898 // CHECK-LE: @llvm.ppc.altivec.vslo 3899 3900 res_vf = vec_slo(vf, vuc); 3901 // CHECK: @llvm.ppc.altivec.vslo 3902 // CHECK-LE: @llvm.ppc.altivec.vslo 3903 3904 res_vsc = vec_vslo(vsc, vsc); 3905 // CHECK: @llvm.ppc.altivec.vslo 3906 // CHECK-LE: @llvm.ppc.altivec.vslo 3907 3908 res_vsc = vec_vslo(vsc, vuc); 3909 // CHECK: @llvm.ppc.altivec.vslo 3910 // CHECK-LE: @llvm.ppc.altivec.vslo 3911 3912 res_vuc = vec_vslo(vuc, vsc); 3913 // CHECK: @llvm.ppc.altivec.vslo 3914 // CHECK-LE: @llvm.ppc.altivec.vslo 3915 3916 res_vuc = vec_vslo(vuc, vuc); 3917 // CHECK: @llvm.ppc.altivec.vslo 3918 // CHECK-LE: @llvm.ppc.altivec.vslo 3919 3920 res_vs = vec_vslo(vs, vsc); 3921 // CHECK: @llvm.ppc.altivec.vslo 3922 // CHECK-LE: @llvm.ppc.altivec.vslo 3923 3924 res_vs = vec_vslo(vs, vuc); 3925 // CHECK: @llvm.ppc.altivec.vslo 3926 // CHECK-LE: @llvm.ppc.altivec.vslo 3927 3928 res_vus = vec_vslo(vus, vsc); 3929 // CHECK: @llvm.ppc.altivec.vslo 3930 // CHECK-LE: @llvm.ppc.altivec.vslo 3931 3932 res_vus = vec_vslo(vus, vuc); 3933 // CHECK: @llvm.ppc.altivec.vslo 3934 // CHECK-LE: @llvm.ppc.altivec.vslo 3935 3936 res_vp = vec_vslo(vp, vsc); 3937 // CHECK: @llvm.ppc.altivec.vslo 3938 // CHECK-LE: @llvm.ppc.altivec.vslo 3939 3940 res_vp = vec_vslo(vp, vuc); 3941 // CHECK: @llvm.ppc.altivec.vslo 3942 // CHECK-LE: @llvm.ppc.altivec.vslo 3943 3944 res_vi = vec_vslo(vi, vsc); 3945 // CHECK: @llvm.ppc.altivec.vslo 3946 // CHECK-LE: @llvm.ppc.altivec.vslo 3947 3948 res_vi = vec_vslo(vi, vuc); 3949 // CHECK: @llvm.ppc.altivec.vslo 3950 // CHECK-LE: @llvm.ppc.altivec.vslo 3951 3952 res_vui = vec_vslo(vui, vsc); 3953 // CHECK: @llvm.ppc.altivec.vslo 3954 // CHECK-LE: @llvm.ppc.altivec.vslo 3955 3956 res_vui = vec_vslo(vui, vuc); 3957 // CHECK: @llvm.ppc.altivec.vslo 3958 // CHECK-LE: @llvm.ppc.altivec.vslo 3959 3960 res_vf = vec_vslo(vf, vsc); 3961 // CHECK: @llvm.ppc.altivec.vslo 3962 // CHECK-LE: @llvm.ppc.altivec.vslo 3963 3964 res_vf = vec_vslo(vf, vuc); 3965 // CHECK: @llvm.ppc.altivec.vslo 3966 // CHECK-LE: @llvm.ppc.altivec.vslo 3967 3968 /* vec_splat */ 3969 res_vsc = vec_splat(vsc, 0); 3970 // CHECK: @llvm.ppc.altivec.vperm 3971 // CHECK-LE: @llvm.ppc.altivec.vperm 3972 3973 res_vuc = vec_splat(vuc, 0); 3974 // CHECK: @llvm.ppc.altivec.vperm 3975 // CHECK-LE: @llvm.ppc.altivec.vperm 3976 3977 res_vbc = vec_splat(vbc, 0); 3978 // CHECK: @llvm.ppc.altivec.vperm 3979 // CHECK-LE: @llvm.ppc.altivec.vperm 3980 3981 res_vs = vec_splat(vs, 0); 3982 // CHECK: @llvm.ppc.altivec.vperm 3983 // CHECK-LE: @llvm.ppc.altivec.vperm 3984 3985 res_vus = vec_splat(vus, 0); 3986 // CHECK: @llvm.ppc.altivec.vperm 3987 // CHECK-LE: @llvm.ppc.altivec.vperm 3988 3989 res_vbs = vec_splat(vbs, 0); 3990 // CHECK: @llvm.ppc.altivec.vperm 3991 // CHECK-LE: @llvm.ppc.altivec.vperm 3992 3993 res_vp = vec_splat(vp, 0); 3994 // CHECK: @llvm.ppc.altivec.vperm 3995 // CHECK-LE: @llvm.ppc.altivec.vperm 3996 3997 res_vi = vec_splat(vi, 0); 3998 // CHECK: @llvm.ppc.altivec.vperm 3999 // CHECK-LE: @llvm.ppc.altivec.vperm 4000 4001 res_vui = vec_splat(vui, 0); 4002 // CHECK: @llvm.ppc.altivec.vperm 4003 // CHECK-LE: @llvm.ppc.altivec.vperm 4004 4005 res_vbi = vec_splat(vbi, 0); 4006 // CHECK: @llvm.ppc.altivec.vperm 4007 // CHECK-LE: @llvm.ppc.altivec.vperm 4008 4009 res_vf = vec_splat(vf, 0); 4010 // CHECK: @llvm.ppc.altivec.vperm 4011 // CHECK-LE: @llvm.ppc.altivec.vperm 4012 4013 res_vsc = vec_vspltb(vsc, 0); 4014 // CHECK: @llvm.ppc.altivec.vperm 4015 // CHECK-LE: @llvm.ppc.altivec.vperm 4016 4017 res_vuc = vec_vspltb(vuc, 0); 4018 // CHECK: @llvm.ppc.altivec.vperm 4019 // CHECK-LE: @llvm.ppc.altivec.vperm 4020 4021 res_vbc = vec_vspltb(vbc, 0); 4022 // CHECK: @llvm.ppc.altivec.vperm 4023 // CHECK-LE: @llvm.ppc.altivec.vperm 4024 4025 res_vs = vec_vsplth(vs, 0); 4026 // CHECK: @llvm.ppc.altivec.vperm 4027 // CHECK-LE: @llvm.ppc.altivec.vperm 4028 4029 res_vus = vec_vsplth(vus, 0); 4030 // CHECK: @llvm.ppc.altivec.vperm 4031 // CHECK-LE: @llvm.ppc.altivec.vperm 4032 4033 res_vbs = vec_vsplth(vbs, 0); 4034 // CHECK: @llvm.ppc.altivec.vperm 4035 // CHECK-LE: @llvm.ppc.altivec.vperm 4036 4037 res_vp = vec_vsplth(vp, 0); 4038 // CHECK: @llvm.ppc.altivec.vperm 4039 // CHECK-LE: @llvm.ppc.altivec.vperm 4040 4041 res_vi = vec_vspltw(vi, 0); 4042 // CHECK: @llvm.ppc.altivec.vperm 4043 // CHECK-LE: @llvm.ppc.altivec.vperm 4044 4045 res_vui = vec_vspltw(vui, 0); 4046 // CHECK: @llvm.ppc.altivec.vperm 4047 // CHECK-LE: @llvm.ppc.altivec.vperm 4048 4049 res_vbi = vec_vspltw(vbi, 0); 4050 // CHECK: @llvm.ppc.altivec.vperm 4051 // CHECK-LE: @llvm.ppc.altivec.vperm 4052 4053 res_vf = vec_vspltw(vf, 0); 4054 // CHECK: @llvm.ppc.altivec.vperm 4055 // CHECK-LE: @llvm.ppc.altivec.vperm 4056 4057 /* vec_splat_s8 */ 4058 res_vsc = vec_splat_s8(0x09); // TODO: add check 4059 res_vsc = vec_vspltisb(0x09); // TODO: add check 4060 4061 /* vec_splat_s16 */ 4062 res_vs = vec_splat_s16(0x09); // TODO: add check 4063 res_vs = vec_vspltish(0x09); // TODO: add check 4064 4065 /* vec_splat_s32 */ 4066 res_vi = vec_splat_s32(0x09); // TODO: add check 4067 res_vi = vec_vspltisw(0x09); // TODO: add check 4068 4069 /* vec_splat_u8 */ 4070 res_vuc = vec_splat_u8(0x09); // TODO: add check 4071 4072 /* vec_splat_u16 */ 4073 res_vus = vec_splat_u16(0x09); // TODO: add check 4074 4075 /* vec_splat_u32 */ 4076 res_vui = vec_splat_u32(0x09); // TODO: add check 4077 4078 /* vec_sr */ 4079 res_vsc = vec_sr(vsc, vuc); 4080 // CHECK: lshr <16 x i8> 4081 // CHECK-LE: lshr <16 x i8> 4082 4083 res_vuc = vec_sr(vuc, vuc); 4084 // CHECK: lshr <16 x i8> 4085 // CHECK-LE: lshr <16 x i8> 4086 4087 res_vs = vec_sr(vs, vus); 4088 // CHECK: lshr <8 x i16> 4089 // CHECK-LE: lshr <8 x i16> 4090 4091 res_vus = vec_sr(vus, vus); 4092 // CHECK: lshr <8 x i16> 4093 // CHECK-LE: lshr <8 x i16> 4094 4095 res_vi = vec_sr(vi, vui); 4096 // CHECK: lshr <4 x i32> 4097 // CHECK-LE: lshr <4 x i32> 4098 4099 res_vui = vec_sr(vui, vui); 4100 // CHECK: lshr <4 x i32> 4101 // CHECK-LE: lshr <4 x i32> 4102 4103 res_vsc = vec_vsrb(vsc, vuc); 4104 // CHECK: shr <16 x i8> 4105 // CHECK-LE: shr <16 x i8> 4106 4107 res_vuc = vec_vsrb(vuc, vuc); 4108 // CHECK: shr <16 x i8> 4109 // CHECK-LE: shr <16 x i8> 4110 4111 res_vs = vec_vsrh(vs, vus); 4112 // CHECK: shr <8 x i16> 4113 // CHECK-LE: shr <8 x i16> 4114 4115 res_vus = vec_vsrh(vus, vus); 4116 // CHECK: shr <8 x i16> 4117 // CHECK-LE: shr <8 x i16> 4118 4119 res_vi = vec_vsrw(vi, vui); 4120 // CHECK: shr <4 x i32> 4121 // CHECK-LE: shr <4 x i32> 4122 4123 res_vui = vec_vsrw(vui, vui); 4124 // CHECK: shr <4 x i32> 4125 // CHECK-LE: shr <4 x i32> 4126 4127 /* vec_sra */ 4128 res_vsc = vec_sra(vsc, vuc); 4129 // CHECK: @llvm.ppc.altivec.vsrab 4130 // CHECK-LE: @llvm.ppc.altivec.vsrab 4131 4132 res_vuc = vec_sra(vuc, vuc); 4133 // CHECK: @llvm.ppc.altivec.vsrab 4134 // CHECK-LE: @llvm.ppc.altivec.vsrab 4135 4136 res_vs = vec_sra(vs, vus); 4137 // CHECK: @llvm.ppc.altivec.vsrah 4138 // CHECK-LE: @llvm.ppc.altivec.vsrah 4139 4140 res_vus = vec_sra(vus, vus); 4141 // CHECK: @llvm.ppc.altivec.vsrah 4142 // CHECK-LE: @llvm.ppc.altivec.vsrah 4143 4144 res_vi = vec_sra(vi, vui); 4145 // CHECK: @llvm.ppc.altivec.vsraw 4146 // CHECK-LE: @llvm.ppc.altivec.vsraw 4147 4148 res_vui = vec_sra(vui, vui); 4149 // CHECK: @llvm.ppc.altivec.vsraw 4150 // CHECK-LE: @llvm.ppc.altivec.vsraw 4151 4152 res_vsc = vec_vsrab(vsc, vuc); 4153 // CHECK: @llvm.ppc.altivec.vsrab 4154 // CHECK-LE: @llvm.ppc.altivec.vsrab 4155 4156 res_vuc = vec_vsrab(vuc, vuc); 4157 // CHECK: @llvm.ppc.altivec.vsrab 4158 // CHECK-LE: @llvm.ppc.altivec.vsrab 4159 4160 res_vs = vec_vsrah(vs, vus); 4161 // CHECK: @llvm.ppc.altivec.vsrah 4162 // CHECK-LE: @llvm.ppc.altivec.vsrah 4163 4164 res_vus = vec_vsrah(vus, vus); 4165 // CHECK: @llvm.ppc.altivec.vsrah 4166 // CHECK-LE: @llvm.ppc.altivec.vsrah 4167 4168 res_vi = vec_vsraw(vi, vui); 4169 // CHECK: @llvm.ppc.altivec.vsraw 4170 // CHECK-LE: @llvm.ppc.altivec.vsraw 4171 4172 res_vui = vec_vsraw(vui, vui); 4173 // CHECK: @llvm.ppc.altivec.vsraw 4174 // CHECK-LE: @llvm.ppc.altivec.vsraw 4175 4176 /* vec_srl */ 4177 res_vsc = vec_srl(vsc, vuc); 4178 // CHECK: @llvm.ppc.altivec.vsr 4179 // CHECK-LE: @llvm.ppc.altivec.vsr 4180 4181 res_vsc = vec_srl(vsc, vus); 4182 // CHECK: @llvm.ppc.altivec.vsr 4183 // CHECK-LE: @llvm.ppc.altivec.vsr 4184 4185 res_vsc = vec_srl(vsc, vui); 4186 // CHECK: @llvm.ppc.altivec.vsr 4187 // CHECK-LE: @llvm.ppc.altivec.vsr 4188 4189 res_vuc = vec_srl(vuc, vuc); 4190 // CHECK: @llvm.ppc.altivec.vsr 4191 // CHECK-LE: @llvm.ppc.altivec.vsr 4192 4193 res_vuc = vec_srl(vuc, vus); 4194 // CHECK: @llvm.ppc.altivec.vsr 4195 // CHECK-LE: @llvm.ppc.altivec.vsr 4196 4197 res_vuc = vec_srl(vuc, vui); 4198 // CHECK: @llvm.ppc.altivec.vsr 4199 // CHECK-LE: @llvm.ppc.altivec.vsr 4200 4201 res_vbc = vec_srl(vbc, vuc); 4202 // CHECK: @llvm.ppc.altivec.vsr 4203 // CHECK-LE: @llvm.ppc.altivec.vsr 4204 4205 res_vbc = vec_srl(vbc, vus); 4206 // CHECK: @llvm.ppc.altivec.vsr 4207 // CHECK-LE: @llvm.ppc.altivec.vsr 4208 4209 res_vbc = vec_srl(vbc, vui); 4210 // CHECK: @llvm.ppc.altivec.vsr 4211 // CHECK-LE: @llvm.ppc.altivec.vsr 4212 4213 res_vs = vec_srl(vs, vuc); 4214 // CHECK: @llvm.ppc.altivec.vsr 4215 // CHECK-LE: @llvm.ppc.altivec.vsr 4216 4217 res_vs = vec_srl(vs, vus); 4218 // CHECK: @llvm.ppc.altivec.vsr 4219 // CHECK-LE: @llvm.ppc.altivec.vsr 4220 4221 res_vs = vec_srl(vs, vui); 4222 // CHECK: @llvm.ppc.altivec.vsr 4223 // CHECK-LE: @llvm.ppc.altivec.vsr 4224 4225 res_vus = vec_srl(vus, vuc); 4226 // CHECK: @llvm.ppc.altivec.vsr 4227 // CHECK-LE: @llvm.ppc.altivec.vsr 4228 4229 res_vus = vec_srl(vus, vus); 4230 // CHECK: @llvm.ppc.altivec.vsr 4231 // CHECK-LE: @llvm.ppc.altivec.vsr 4232 4233 res_vus = vec_srl(vus, vui); 4234 // CHECK: @llvm.ppc.altivec.vsr 4235 // CHECK-LE: @llvm.ppc.altivec.vsr 4236 4237 res_vbs = vec_srl(vbs, vuc); 4238 // CHECK: @llvm.ppc.altivec.vsr 4239 // CHECK-LE: @llvm.ppc.altivec.vsr 4240 4241 res_vbs = vec_srl(vbs, vus); 4242 // CHECK: @llvm.ppc.altivec.vsr 4243 // CHECK-LE: @llvm.ppc.altivec.vsr 4244 4245 res_vbs = vec_srl(vbs, vui); 4246 // CHECK: @llvm.ppc.altivec.vsr 4247 // CHECK-LE: @llvm.ppc.altivec.vsr 4248 4249 res_vp = vec_srl(vp, vuc); 4250 // CHECK: @llvm.ppc.altivec.vsr 4251 // CHECK-LE: @llvm.ppc.altivec.vsr 4252 4253 res_vp = vec_srl(vp, vus); 4254 // CHECK: @llvm.ppc.altivec.vsr 4255 // CHECK-LE: @llvm.ppc.altivec.vsr 4256 4257 res_vp = vec_srl(vp, vui); 4258 // CHECK: @llvm.ppc.altivec.vsr 4259 // CHECK-LE: @llvm.ppc.altivec.vsr 4260 4261 res_vi = vec_srl(vi, vuc); 4262 // CHECK: @llvm.ppc.altivec.vsr 4263 // CHECK-LE: @llvm.ppc.altivec.vsr 4264 4265 res_vi = vec_srl(vi, vus); 4266 // CHECK: @llvm.ppc.altivec.vsr 4267 // CHECK-LE: @llvm.ppc.altivec.vsr 4268 4269 res_vi = vec_srl(vi, vui); 4270 // CHECK: @llvm.ppc.altivec.vsr 4271 // CHECK-LE: @llvm.ppc.altivec.vsr 4272 4273 res_vui = vec_srl(vui, vuc); 4274 // CHECK: @llvm.ppc.altivec.vsr 4275 // CHECK-LE: @llvm.ppc.altivec.vsr 4276 4277 res_vui = vec_srl(vui, vus); 4278 // CHECK: @llvm.ppc.altivec.vsr 4279 // CHECK-LE: @llvm.ppc.altivec.vsr 4280 4281 res_vui = vec_srl(vui, vui); 4282 // CHECK: @llvm.ppc.altivec.vsr 4283 // CHECK-LE: @llvm.ppc.altivec.vsr 4284 4285 res_vbi = vec_srl(vbi, vuc); 4286 // CHECK: @llvm.ppc.altivec.vsr 4287 // CHECK-LE: @llvm.ppc.altivec.vsr 4288 4289 res_vbi = vec_srl(vbi, vus); 4290 // CHECK: @llvm.ppc.altivec.vsr 4291 // CHECK-LE: @llvm.ppc.altivec.vsr 4292 4293 res_vbi = vec_srl(vbi, vui); 4294 // CHECK: @llvm.ppc.altivec.vsr 4295 // CHECK-LE: @llvm.ppc.altivec.vsr 4296 4297 res_vsc = vec_vsr(vsc, vuc); 4298 // CHECK: @llvm.ppc.altivec.vsr 4299 // CHECK-LE: @llvm.ppc.altivec.vsr 4300 4301 res_vsc = vec_vsr(vsc, vus); 4302 // CHECK: @llvm.ppc.altivec.vsr 4303 // CHECK-LE: @llvm.ppc.altivec.vsr 4304 4305 res_vsc = vec_vsr(vsc, vui); 4306 // CHECK: @llvm.ppc.altivec.vsr 4307 // CHECK-LE: @llvm.ppc.altivec.vsr 4308 4309 res_vuc = vec_vsr(vuc, vuc); 4310 // CHECK: @llvm.ppc.altivec.vsr 4311 // CHECK-LE: @llvm.ppc.altivec.vsr 4312 4313 res_vuc = vec_vsr(vuc, vus); 4314 // CHECK: @llvm.ppc.altivec.vsr 4315 // CHECK-LE: @llvm.ppc.altivec.vsr 4316 4317 res_vuc = vec_vsr(vuc, vui); 4318 // CHECK: @llvm.ppc.altivec.vsr 4319 // CHECK-LE: @llvm.ppc.altivec.vsr 4320 4321 res_vbc = vec_vsr(vbc, vuc); 4322 // CHECK: @llvm.ppc.altivec.vsr 4323 // CHECK-LE: @llvm.ppc.altivec.vsr 4324 4325 res_vbc = vec_vsr(vbc, vus); 4326 // CHECK: @llvm.ppc.altivec.vsr 4327 // CHECK-LE: @llvm.ppc.altivec.vsr 4328 4329 res_vbc = vec_vsr(vbc, vui); 4330 // CHECK: @llvm.ppc.altivec.vsr 4331 // CHECK-LE: @llvm.ppc.altivec.vsr 4332 4333 res_vs = vec_vsr(vs, vuc); 4334 // CHECK: @llvm.ppc.altivec.vsr 4335 // CHECK-LE: @llvm.ppc.altivec.vsr 4336 4337 res_vs = vec_vsr(vs, vus); 4338 // CHECK: @llvm.ppc.altivec.vsr 4339 // CHECK-LE: @llvm.ppc.altivec.vsr 4340 4341 res_vs = vec_vsr(vs, vui); 4342 // CHECK: @llvm.ppc.altivec.vsr 4343 // CHECK-LE: @llvm.ppc.altivec.vsr 4344 4345 res_vus = vec_vsr(vus, vuc); 4346 // CHECK: @llvm.ppc.altivec.vsr 4347 // CHECK-LE: @llvm.ppc.altivec.vsr 4348 4349 res_vus = vec_vsr(vus, vus); 4350 // CHECK: @llvm.ppc.altivec.vsr 4351 // CHECK-LE: @llvm.ppc.altivec.vsr 4352 4353 res_vus = vec_vsr(vus, vui); 4354 // CHECK: @llvm.ppc.altivec.vsr 4355 // CHECK-LE: @llvm.ppc.altivec.vsr 4356 4357 res_vbs = vec_vsr(vbs, vuc); 4358 // CHECK: @llvm.ppc.altivec.vsr 4359 // CHECK-LE: @llvm.ppc.altivec.vsr 4360 4361 res_vbs = vec_vsr(vbs, vus); 4362 // CHECK: @llvm.ppc.altivec.vsr 4363 // CHECK-LE: @llvm.ppc.altivec.vsr 4364 4365 res_vbs = vec_vsr(vbs, vui); 4366 // CHECK: @llvm.ppc.altivec.vsr 4367 // CHECK-LE: @llvm.ppc.altivec.vsr 4368 4369 res_vp = vec_vsr(vp, vuc); 4370 // CHECK: @llvm.ppc.altivec.vsr 4371 // CHECK-LE: @llvm.ppc.altivec.vsr 4372 4373 res_vp = vec_vsr(vp, vus); 4374 // CHECK: @llvm.ppc.altivec.vsr 4375 // CHECK-LE: @llvm.ppc.altivec.vsr 4376 4377 res_vp = vec_vsr(vp, vui); 4378 // CHECK: @llvm.ppc.altivec.vsr 4379 // CHECK-LE: @llvm.ppc.altivec.vsr 4380 4381 res_vi = vec_vsr(vi, vuc); 4382 // CHECK: @llvm.ppc.altivec.vsr 4383 // CHECK-LE: @llvm.ppc.altivec.vsr 4384 4385 res_vi = vec_vsr(vi, vus); 4386 // CHECK: @llvm.ppc.altivec.vsr 4387 // CHECK-LE: @llvm.ppc.altivec.vsr 4388 4389 res_vi = vec_vsr(vi, vui); 4390 // CHECK: @llvm.ppc.altivec.vsr 4391 // CHECK-LE: @llvm.ppc.altivec.vsr 4392 4393 res_vui = vec_vsr(vui, vuc); 4394 // CHECK: @llvm.ppc.altivec.vsr 4395 // CHECK-LE: @llvm.ppc.altivec.vsr 4396 4397 res_vui = vec_vsr(vui, vus); 4398 // CHECK: @llvm.ppc.altivec.vsr 4399 // CHECK-LE: @llvm.ppc.altivec.vsr 4400 4401 res_vui = vec_vsr(vui, vui); 4402 // CHECK: @llvm.ppc.altivec.vsr 4403 // CHECK-LE: @llvm.ppc.altivec.vsr 4404 4405 res_vbi = vec_vsr(vbi, vuc); 4406 // CHECK: @llvm.ppc.altivec.vsr 4407 // CHECK-LE: @llvm.ppc.altivec.vsr 4408 4409 res_vbi = vec_vsr(vbi, vus); 4410 // CHECK: @llvm.ppc.altivec.vsr 4411 // CHECK-LE: @llvm.ppc.altivec.vsr 4412 4413 res_vbi = vec_vsr(vbi, vui); 4414 // CHECK: @llvm.ppc.altivec.vsr 4415 // CHECK-LE: @llvm.ppc.altivec.vsr 4416 4417 /* vec_sro */ 4418 res_vsc = vec_sro(vsc, vsc); 4419 // CHECK: @llvm.ppc.altivec.vsro 4420 // CHECK-LE: @llvm.ppc.altivec.vsro 4421 4422 res_vsc = vec_sro(vsc, vuc); 4423 // CHECK: @llvm.ppc.altivec.vsro 4424 // CHECK-LE: @llvm.ppc.altivec.vsro 4425 4426 res_vuc = vec_sro(vuc, vsc); 4427 // CHECK: @llvm.ppc.altivec.vsro 4428 // CHECK-LE: @llvm.ppc.altivec.vsro 4429 4430 res_vuc = vec_sro(vuc, vuc); 4431 // CHECK: @llvm.ppc.altivec.vsro 4432 // CHECK-LE: @llvm.ppc.altivec.vsro 4433 4434 res_vs = vec_sro(vs, vsc); 4435 // CHECK: @llvm.ppc.altivec.vsro 4436 // CHECK-LE: @llvm.ppc.altivec.vsro 4437 4438 res_vs = vec_sro(vs, vuc); 4439 // CHECK: @llvm.ppc.altivec.vsro 4440 // CHECK-LE: @llvm.ppc.altivec.vsro 4441 4442 res_vus = vec_sro(vus, vsc); 4443 // CHECK: @llvm.ppc.altivec.vsro 4444 // CHECK-LE: @llvm.ppc.altivec.vsro 4445 4446 res_vus = vec_sro(vus, vuc); 4447 // CHECK: @llvm.ppc.altivec.vsro 4448 // CHECK-LE: @llvm.ppc.altivec.vsro 4449 4450 res_vp = vec_sro(vp, vsc); 4451 // CHECK: @llvm.ppc.altivec.vsro 4452 // CHECK-LE: @llvm.ppc.altivec.vsro 4453 4454 res_vp = vec_sro(vp, vuc); 4455 // CHECK: @llvm.ppc.altivec.vsro 4456 // CHECK-LE: @llvm.ppc.altivec.vsro 4457 4458 res_vi = vec_sro(vi, vsc); 4459 // CHECK: @llvm.ppc.altivec.vsro 4460 // CHECK-LE: @llvm.ppc.altivec.vsro 4461 4462 res_vi = vec_sro(vi, vuc); 4463 // CHECK: @llvm.ppc.altivec.vsro 4464 // CHECK-LE: @llvm.ppc.altivec.vsro 4465 4466 res_vui = vec_sro(vui, vsc); 4467 // CHECK: @llvm.ppc.altivec.vsro 4468 // CHECK-LE: @llvm.ppc.altivec.vsro 4469 4470 res_vui = vec_sro(vui, vuc); 4471 // CHECK: @llvm.ppc.altivec.vsro 4472 // CHECK-LE: @llvm.ppc.altivec.vsro 4473 4474 res_vf = vec_sro(vf, vsc); 4475 // CHECK: @llvm.ppc.altivec.vsro 4476 // CHECK-LE: @llvm.ppc.altivec.vsro 4477 4478 res_vf = vec_sro(vf, vuc); 4479 // CHECK: @llvm.ppc.altivec.vsro 4480 // CHECK-LE: @llvm.ppc.altivec.vsro 4481 4482 res_vsc = vec_vsro(vsc, vsc); 4483 // CHECK: @llvm.ppc.altivec.vsro 4484 // CHECK-LE: @llvm.ppc.altivec.vsro 4485 4486 res_vsc = vec_vsro(vsc, vuc); 4487 // CHECK: @llvm.ppc.altivec.vsro 4488 // CHECK-LE: @llvm.ppc.altivec.vsro 4489 4490 res_vuc = vec_vsro(vuc, vsc); 4491 // CHECK: @llvm.ppc.altivec.vsro 4492 // CHECK-LE: @llvm.ppc.altivec.vsro 4493 4494 res_vuc = vec_vsro(vuc, vuc); 4495 // CHECK: @llvm.ppc.altivec.vsro 4496 // CHECK-LE: @llvm.ppc.altivec.vsro 4497 4498 res_vs = vec_vsro(vs, vsc); 4499 // CHECK: @llvm.ppc.altivec.vsro 4500 // CHECK-LE: @llvm.ppc.altivec.vsro 4501 4502 res_vs = vec_vsro(vs, vuc); 4503 // CHECK: @llvm.ppc.altivec.vsro 4504 // CHECK-LE: @llvm.ppc.altivec.vsro 4505 4506 res_vus = vec_vsro(vus, vsc); 4507 // CHECK: @llvm.ppc.altivec.vsro 4508 // CHECK-LE: @llvm.ppc.altivec.vsro 4509 4510 res_vus = vec_vsro(vus, vuc); 4511 // CHECK: @llvm.ppc.altivec.vsro 4512 // CHECK-LE: @llvm.ppc.altivec.vsro 4513 4514 res_vp = vec_vsro(vp, vsc); 4515 // CHECK: @llvm.ppc.altivec.vsro 4516 // CHECK-LE: @llvm.ppc.altivec.vsro 4517 4518 res_vp = vec_vsro(vp, vuc); 4519 // CHECK: @llvm.ppc.altivec.vsro 4520 // CHECK-LE: @llvm.ppc.altivec.vsro 4521 4522 res_vi = vec_vsro(vi, vsc); 4523 // CHECK: @llvm.ppc.altivec.vsro 4524 // CHECK-LE: @llvm.ppc.altivec.vsro 4525 4526 res_vi = vec_vsro(vi, vuc); 4527 // CHECK: @llvm.ppc.altivec.vsro 4528 // CHECK-LE: @llvm.ppc.altivec.vsro 4529 4530 res_vui = vec_vsro(vui, vsc); 4531 // CHECK: @llvm.ppc.altivec.vsro 4532 // CHECK-LE: @llvm.ppc.altivec.vsro 4533 4534 res_vui = vec_vsro(vui, vuc); 4535 // CHECK: @llvm.ppc.altivec.vsro 4536 // CHECK-LE: @llvm.ppc.altivec.vsro 4537 4538 res_vf = vec_vsro(vf, vsc); 4539 // CHECK: @llvm.ppc.altivec.vsro 4540 // CHECK-LE: @llvm.ppc.altivec.vsro 4541 4542 res_vf = vec_vsro(vf, vuc); 4543 // CHECK: @llvm.ppc.altivec.vsro 4544 // CHECK-LE: @llvm.ppc.altivec.vsro 4545 4546 /* vec_st */ 4547 vec_st(vsc, 0, &vsc); 4548 // CHECK: @llvm.ppc.altivec.stvx 4549 // CHECK-LE: @llvm.ppc.altivec.stvx 4550 4551 vec_st(vsc, 0, ¶m_sc); 4552 // CHECK: @llvm.ppc.altivec.stvx 4553 // CHECK-LE: @llvm.ppc.altivec.stvx 4554 4555 vec_st(vuc, 0, &vuc); 4556 // CHECK: @llvm.ppc.altivec.stvx 4557 // CHECK-LE: @llvm.ppc.altivec.stvx 4558 4559 vec_st(vuc, 0, ¶m_uc); 4560 // CHECK: @llvm.ppc.altivec.stvx 4561 // CHECK-LE: @llvm.ppc.altivec.stvx 4562 4563 vec_st(vbc, 0, ¶m_uc); 4564 // CHECK: @llvm.ppc.altivec.stvx 4565 // CHECK-LE: @llvm.ppc.altivec.stvx 4566 4567 vec_st(vbc, 0, ¶m_uc); 4568 // CHECK: @llvm.ppc.altivec.stvx 4569 // CHECK-LE: @llvm.ppc.altivec.stvx 4570 4571 vec_st(vbc, 0, &vbc); 4572 // CHECK: @llvm.ppc.altivec.stvx 4573 // CHECK-LE: @llvm.ppc.altivec.stvx 4574 4575 vec_st(vs, 0, &vs); 4576 // CHECK: @llvm.ppc.altivec.stvx 4577 // CHECK-LE: @llvm.ppc.altivec.stvx 4578 4579 vec_st(vs, 0, ¶m_s); 4580 // CHECK: @llvm.ppc.altivec.stvx 4581 // CHECK-LE: @llvm.ppc.altivec.stvx 4582 4583 vec_st(vus, 0, &vus); 4584 // CHECK: @llvm.ppc.altivec.stvx 4585 // CHECK-LE: @llvm.ppc.altivec.stvx 4586 4587 vec_st(vus, 0, ¶m_us); 4588 // CHECK: @llvm.ppc.altivec.stvx 4589 // CHECK-LE: @llvm.ppc.altivec.stvx 4590 4591 vec_st(vbs, 0, ¶m_s); 4592 // CHECK: @llvm.ppc.altivec.stvx 4593 // CHECK-LE: @llvm.ppc.altivec.stvx 4594 4595 vec_st(vbs, 0, ¶m_us); 4596 // CHECK: @llvm.ppc.altivec.stvx 4597 // CHECK-LE: @llvm.ppc.altivec.stvx 4598 4599 vec_st(vbs, 0, &vbs); 4600 // CHECK: @llvm.ppc.altivec.stvx 4601 // CHECK-LE: @llvm.ppc.altivec.stvx 4602 4603 vec_st(vp, 0, ¶m_s); 4604 // CHECK: @llvm.ppc.altivec.stvx 4605 // CHECK-LE: @llvm.ppc.altivec.stvx 4606 4607 vec_st(vp, 0, ¶m_us); 4608 // CHECK: @llvm.ppc.altivec.stvx 4609 // CHECK-LE: @llvm.ppc.altivec.stvx 4610 4611 vec_st(vp, 0, &vp); 4612 // CHECK: @llvm.ppc.altivec.stvx 4613 // CHECK-LE: @llvm.ppc.altivec.stvx 4614 4615 vec_st(vi, 0, &vi); 4616 // CHECK: @llvm.ppc.altivec.stvx 4617 // CHECK-LE: @llvm.ppc.altivec.stvx 4618 4619 vec_st(vi, 0, ¶m_i); 4620 // CHECK: @llvm.ppc.altivec.stvx 4621 // CHECK-LE: @llvm.ppc.altivec.stvx 4622 4623 vec_st(vui, 0, &vui); 4624 // CHECK: @llvm.ppc.altivec.stvx 4625 // CHECK-LE: @llvm.ppc.altivec.stvx 4626 4627 vec_st(vui, 0, ¶m_ui); 4628 // CHECK: @llvm.ppc.altivec.stvx 4629 // CHECK-LE: @llvm.ppc.altivec.stvx 4630 4631 vec_st(vbi, 0, ¶m_i); 4632 // CHECK: @llvm.ppc.altivec.stvx 4633 // CHECK-LE: @llvm.ppc.altivec.stvx 4634 4635 vec_st(vbi, 0, ¶m_ui); 4636 // CHECK: @llvm.ppc.altivec.stvx 4637 // CHECK-LE: @llvm.ppc.altivec.stvx 4638 4639 vec_st(vbi, 0, &vbi); 4640 // CHECK: @llvm.ppc.altivec.stvx 4641 // CHECK-LE: @llvm.ppc.altivec.stvx 4642 4643 vec_st(vf, 0, &vf); 4644 // CHECK: @llvm.ppc.altivec.stvx 4645 // CHECK-LE: @llvm.ppc.altivec.stvx 4646 4647 vec_st(vf, 0, ¶m_f); 4648 // CHECK: @llvm.ppc.altivec.stvx 4649 // CHECK-LE: @llvm.ppc.altivec.stvx 4650 4651 vec_stvx(vsc, 0, &vsc); 4652 // CHECK: @llvm.ppc.altivec.stvx 4653 // CHECK-LE: @llvm.ppc.altivec.stvx 4654 4655 vec_stvx(vsc, 0, ¶m_sc); 4656 // CHECK: @llvm.ppc.altivec.stvx 4657 // CHECK-LE: @llvm.ppc.altivec.stvx 4658 4659 vec_stvx(vuc, 0, &vuc); 4660 // CHECK: @llvm.ppc.altivec.stvx 4661 // CHECK-LE: @llvm.ppc.altivec.stvx 4662 4663 vec_stvx(vuc, 0, ¶m_uc); 4664 // CHECK: @llvm.ppc.altivec.stvx 4665 // CHECK-LE: @llvm.ppc.altivec.stvx 4666 4667 vec_stvx(vbc, 0, ¶m_uc); 4668 // CHECK: @llvm.ppc.altivec.stvx 4669 // CHECK-LE: @llvm.ppc.altivec.stvx 4670 4671 vec_stvx(vbc, 0, ¶m_uc); 4672 // CHECK: @llvm.ppc.altivec.stvx 4673 // CHECK-LE: @llvm.ppc.altivec.stvx 4674 4675 vec_stvx(vbc, 0, &vbc); 4676 // CHECK: @llvm.ppc.altivec.stvx 4677 // CHECK-LE: @llvm.ppc.altivec.stvx 4678 4679 vec_stvx(vs, 0, &vs); 4680 // CHECK: @llvm.ppc.altivec.stvx 4681 // CHECK-LE: @llvm.ppc.altivec.stvx 4682 4683 vec_stvx(vs, 0, ¶m_s); 4684 // CHECK: @llvm.ppc.altivec.stvx 4685 // CHECK-LE: @llvm.ppc.altivec.stvx 4686 4687 vec_stvx(vus, 0, &vus); 4688 // CHECK: @llvm.ppc.altivec.stvx 4689 // CHECK-LE: @llvm.ppc.altivec.stvx 4690 4691 vec_stvx(vus, 0, ¶m_us); 4692 // CHECK: @llvm.ppc.altivec.stvx 4693 // CHECK-LE: @llvm.ppc.altivec.stvx 4694 4695 vec_stvx(vbs, 0, ¶m_s); 4696 // CHECK: @llvm.ppc.altivec.stvx 4697 // CHECK-LE: @llvm.ppc.altivec.stvx 4698 4699 vec_stvx(vbs, 0, ¶m_us); 4700 // CHECK: @llvm.ppc.altivec.stvx 4701 // CHECK-LE: @llvm.ppc.altivec.stvx 4702 4703 vec_stvx(vbs, 0, &vbs); 4704 // CHECK: @llvm.ppc.altivec.stvx 4705 // CHECK-LE: @llvm.ppc.altivec.stvx 4706 4707 vec_stvx(vp, 0, ¶m_s); 4708 // CHECK: @llvm.ppc.altivec.stvx 4709 // CHECK-LE: @llvm.ppc.altivec.stvx 4710 4711 vec_stvx(vp, 0, ¶m_us); 4712 // CHECK: @llvm.ppc.altivec.stvx 4713 // CHECK-LE: @llvm.ppc.altivec.stvx 4714 4715 vec_stvx(vp, 0, &vp); 4716 // CHECK: @llvm.ppc.altivec.stvx 4717 // CHECK-LE: @llvm.ppc.altivec.stvx 4718 4719 vec_stvx(vi, 0, &vi); 4720 // CHECK: @llvm.ppc.altivec.stvx 4721 // CHECK-LE: @llvm.ppc.altivec.stvx 4722 4723 vec_stvx(vi, 0, ¶m_i); 4724 // CHECK: @llvm.ppc.altivec.stvx 4725 // CHECK-LE: @llvm.ppc.altivec.stvx 4726 4727 vec_stvx(vui, 0, &vui); 4728 // CHECK: @llvm.ppc.altivec.stvx 4729 // CHECK-LE: @llvm.ppc.altivec.stvx 4730 4731 vec_stvx(vui, 0, ¶m_ui); 4732 // CHECK: @llvm.ppc.altivec.stvx 4733 // CHECK-LE: @llvm.ppc.altivec.stvx 4734 4735 vec_stvx(vbi, 0, ¶m_i); 4736 // CHECK: @llvm.ppc.altivec.stvx 4737 // CHECK-LE: @llvm.ppc.altivec.stvx 4738 4739 vec_stvx(vbi, 0, ¶m_ui); 4740 // CHECK: @llvm.ppc.altivec.stvx 4741 // CHECK-LE: @llvm.ppc.altivec.stvx 4742 4743 vec_stvx(vbi, 0, &vbi); 4744 // CHECK: @llvm.ppc.altivec.stvx 4745 // CHECK-LE: @llvm.ppc.altivec.stvx 4746 4747 vec_stvx(vf, 0, &vf); 4748 // CHECK: @llvm.ppc.altivec.stvx 4749 // CHECK-LE: @llvm.ppc.altivec.stvx 4750 4751 vec_stvx(vf, 0, ¶m_f); 4752 // CHECK: @llvm.ppc.altivec.stvx 4753 // CHECK-LE: @llvm.ppc.altivec.stvx 4754 4755 /* vec_ste */ 4756 vec_ste(vsc, 0, ¶m_sc); 4757 // CHECK: @llvm.ppc.altivec.stvebx 4758 // CHECK-LE: @llvm.ppc.altivec.stvebx 4759 4760 vec_ste(vuc, 0, ¶m_uc); 4761 // CHECK: @llvm.ppc.altivec.stvebx 4762 // CHECK-LE: @llvm.ppc.altivec.stvebx 4763 4764 vec_ste(vbc, 0, ¶m_sc); 4765 // CHECK: @llvm.ppc.altivec.stvebx 4766 // CHECK-LE: @llvm.ppc.altivec.stvebx 4767 4768 vec_ste(vbc, 0, ¶m_uc); 4769 // CHECK: @llvm.ppc.altivec.stvebx 4770 // CHECK-LE: @llvm.ppc.altivec.stvebx 4771 4772 vec_ste(vs, 0, ¶m_s); 4773 // CHECK: @llvm.ppc.altivec.stvehx 4774 // CHECK-LE: @llvm.ppc.altivec.stvehx 4775 4776 vec_ste(vus, 0, ¶m_us); 4777 // CHECK: @llvm.ppc.altivec.stvehx 4778 // CHECK-LE: @llvm.ppc.altivec.stvehx 4779 4780 vec_ste(vbs, 0, ¶m_s); 4781 // CHECK: @llvm.ppc.altivec.stvehx 4782 // CHECK-LE: @llvm.ppc.altivec.stvehx 4783 4784 vec_ste(vbs, 0, ¶m_us); 4785 // CHECK: @llvm.ppc.altivec.stvehx 4786 // CHECK-LE: @llvm.ppc.altivec.stvehx 4787 4788 vec_ste(vp, 0, ¶m_s); 4789 // CHECK: @llvm.ppc.altivec.stvehx 4790 // CHECK-LE: @llvm.ppc.altivec.stvehx 4791 4792 vec_ste(vp, 0, ¶m_us); 4793 // CHECK: @llvm.ppc.altivec.stvehx 4794 // CHECK-LE: @llvm.ppc.altivec.stvehx 4795 4796 vec_ste(vi, 0, ¶m_i); 4797 // CHECK: @llvm.ppc.altivec.stvewx 4798 // CHECK-LE: @llvm.ppc.altivec.stvewx 4799 4800 vec_ste(vui, 0, ¶m_ui); 4801 // CHECK: @llvm.ppc.altivec.stvewx 4802 // CHECK-LE: @llvm.ppc.altivec.stvewx 4803 4804 vec_ste(vbi, 0, ¶m_i); 4805 // CHECK: @llvm.ppc.altivec.stvewx 4806 // CHECK-LE: @llvm.ppc.altivec.stvewx 4807 4808 vec_ste(vbi, 0, ¶m_ui); 4809 // CHECK: @llvm.ppc.altivec.stvewx 4810 // CHECK-LE: @llvm.ppc.altivec.stvewx 4811 4812 vec_ste(vf, 0, ¶m_f); 4813 // CHECK: @llvm.ppc.altivec.stvewx 4814 // CHECK-LE: @llvm.ppc.altivec.stvewx 4815 4816 vec_stvebx(vsc, 0, ¶m_sc); 4817 // CHECK: @llvm.ppc.altivec.stvebx 4818 // CHECK-LE: @llvm.ppc.altivec.stvebx 4819 4820 vec_stvebx(vuc, 0, ¶m_uc); 4821 // CHECK: @llvm.ppc.altivec.stvebx 4822 // CHECK-LE: @llvm.ppc.altivec.stvebx 4823 4824 vec_stvebx(vbc, 0, ¶m_sc); 4825 // CHECK: @llvm.ppc.altivec.stvebx 4826 // CHECK-LE: @llvm.ppc.altivec.stvebx 4827 4828 vec_stvebx(vbc, 0, ¶m_uc); 4829 // CHECK: @llvm.ppc.altivec.stvebx 4830 // CHECK-LE: @llvm.ppc.altivec.stvebx 4831 4832 vec_stvehx(vs, 0, ¶m_s); 4833 // CHECK: @llvm.ppc.altivec.stvehx 4834 // CHECK-LE: @llvm.ppc.altivec.stvehx 4835 4836 vec_stvehx(vus, 0, ¶m_us); 4837 // CHECK: @llvm.ppc.altivec.stvehx 4838 // CHECK-LE: @llvm.ppc.altivec.stvehx 4839 4840 vec_stvehx(vbs, 0, ¶m_s); 4841 // CHECK: @llvm.ppc.altivec.stvehx 4842 // CHECK-LE: @llvm.ppc.altivec.stvehx 4843 4844 vec_stvehx(vbs, 0, ¶m_us); 4845 // CHECK: @llvm.ppc.altivec.stvehx 4846 // CHECK-LE: @llvm.ppc.altivec.stvehx 4847 4848 vec_stvehx(vp, 0, ¶m_s); 4849 // CHECK: @llvm.ppc.altivec.stvehx 4850 // CHECK-LE: @llvm.ppc.altivec.stvehx 4851 4852 vec_stvehx(vp, 0, ¶m_us); 4853 // CHECK: @llvm.ppc.altivec.stvehx 4854 // CHECK-LE: @llvm.ppc.altivec.stvehx 4855 4856 vec_stvewx(vi, 0, ¶m_i); 4857 // CHECK: @llvm.ppc.altivec.stvewx 4858 // CHECK-LE: @llvm.ppc.altivec.stvewx 4859 4860 vec_stvewx(vui, 0, ¶m_ui); 4861 // CHECK: @llvm.ppc.altivec.stvewx 4862 // CHECK-LE: @llvm.ppc.altivec.stvewx 4863 4864 vec_stvewx(vbi, 0, ¶m_i); 4865 // CHECK: @llvm.ppc.altivec.stvewx 4866 // CHECK-LE: @llvm.ppc.altivec.stvewx 4867 4868 vec_stvewx(vbi, 0, ¶m_ui); 4869 // CHECK: @llvm.ppc.altivec.stvewx 4870 // CHECK-LE: @llvm.ppc.altivec.stvewx 4871 4872 vec_stvewx(vf, 0, ¶m_f); 4873 // CHECK: @llvm.ppc.altivec.stvewx 4874 // CHECK-LE: @llvm.ppc.altivec.stvewx 4875 4876 /* vec_stl */ 4877 vec_stl(vsc, 0, &vsc); 4878 // CHECK: @llvm.ppc.altivec.stvxl 4879 // CHECK-LE: @llvm.ppc.altivec.stvxl 4880 4881 vec_stl(vsc, 0, ¶m_sc); 4882 // CHECK: @llvm.ppc.altivec.stvxl 4883 // CHECK-LE: @llvm.ppc.altivec.stvxl 4884 4885 vec_stl(vuc, 0, &vuc); 4886 // CHECK: @llvm.ppc.altivec.stvxl 4887 // CHECK-LE: @llvm.ppc.altivec.stvxl 4888 4889 vec_stl(vuc, 0, ¶m_uc); 4890 // CHECK: @llvm.ppc.altivec.stvxl 4891 // CHECK-LE: @llvm.ppc.altivec.stvxl 4892 4893 vec_stl(vbc, 0, ¶m_sc); 4894 // CHECK: @llvm.ppc.altivec.stvxl 4895 // CHECK-LE: @llvm.ppc.altivec.stvxl 4896 4897 vec_stl(vbc, 0, ¶m_uc); 4898 // CHECK: @llvm.ppc.altivec.stvxl 4899 // CHECK-LE: @llvm.ppc.altivec.stvxl 4900 4901 vec_stl(vbc, 0, &vbc); 4902 // CHECK: @llvm.ppc.altivec.stvxl 4903 // CHECK-LE: @llvm.ppc.altivec.stvxl 4904 4905 vec_stl(vs, 0, &vs); 4906 // CHECK: @llvm.ppc.altivec.stvxl 4907 // CHECK-LE: @llvm.ppc.altivec.stvxl 4908 4909 vec_stl(vs, 0, ¶m_s); 4910 // CHECK: @llvm.ppc.altivec.stvxl 4911 // CHECK-LE: @llvm.ppc.altivec.stvxl 4912 4913 vec_stl(vus, 0, &vus); 4914 // CHECK: @llvm.ppc.altivec.stvxl 4915 // CHECK-LE: @llvm.ppc.altivec.stvxl 4916 4917 vec_stl(vus, 0, ¶m_us); 4918 // CHECK: @llvm.ppc.altivec.stvxl 4919 // CHECK-LE: @llvm.ppc.altivec.stvxl 4920 4921 vec_stl(vbs, 0, ¶m_s); 4922 // CHECK: @llvm.ppc.altivec.stvxl 4923 // CHECK-LE: @llvm.ppc.altivec.stvxl 4924 4925 vec_stl(vbs, 0, ¶m_us); 4926 // CHECK: @llvm.ppc.altivec.stvxl 4927 // CHECK-LE: @llvm.ppc.altivec.stvxl 4928 4929 vec_stl(vbs, 0, &vbs); 4930 // CHECK: @llvm.ppc.altivec.stvxl 4931 // CHECK-LE: @llvm.ppc.altivec.stvxl 4932 4933 vec_stl(vp, 0, ¶m_s); 4934 // CHECK: @llvm.ppc.altivec.stvxl 4935 // CHECK-LE: @llvm.ppc.altivec.stvxl 4936 4937 vec_stl(vp, 0, ¶m_us); 4938 // CHECK: @llvm.ppc.altivec.stvxl 4939 // CHECK-LE: @llvm.ppc.altivec.stvxl 4940 4941 vec_stl(vp, 0, &vp); 4942 // CHECK: @llvm.ppc.altivec.stvxl 4943 // CHECK-LE: @llvm.ppc.altivec.stvxl 4944 4945 vec_stl(vi, 0, &vi); 4946 // CHECK: @llvm.ppc.altivec.stvxl 4947 // CHECK-LE: @llvm.ppc.altivec.stvxl 4948 4949 vec_stl(vi, 0, ¶m_i); 4950 // CHECK: @llvm.ppc.altivec.stvxl 4951 // CHECK-LE: @llvm.ppc.altivec.stvxl 4952 4953 vec_stl(vui, 0, &vui); 4954 // CHECK: @llvm.ppc.altivec.stvxl 4955 // CHECK-LE: @llvm.ppc.altivec.stvxl 4956 4957 vec_stl(vui, 0, ¶m_ui); 4958 // CHECK: @llvm.ppc.altivec.stvxl 4959 // CHECK-LE: @llvm.ppc.altivec.stvxl 4960 4961 vec_stl(vbi, 0, ¶m_i); 4962 // CHECK: @llvm.ppc.altivec.stvxl 4963 // CHECK-LE: @llvm.ppc.altivec.stvxl 4964 4965 vec_stl(vbi, 0, ¶m_ui); 4966 // CHECK: @llvm.ppc.altivec.stvxl 4967 // CHECK-LE: @llvm.ppc.altivec.stvxl 4968 4969 vec_stl(vbi, 0, &vbi); 4970 // CHECK: @llvm.ppc.altivec.stvxl 4971 // CHECK-LE: @llvm.ppc.altivec.stvxl 4972 4973 vec_stl(vf, 0, &vf); 4974 // CHECK: @llvm.ppc.altivec.stvxl 4975 // CHECK-LE: @llvm.ppc.altivec.stvxl 4976 4977 vec_stl(vf, 0, ¶m_f); 4978 // CHECK: @llvm.ppc.altivec.stvxl 4979 // CHECK-LE: @llvm.ppc.altivec.stvxl 4980 4981 vec_stvxl(vsc, 0, &vsc); 4982 // CHECK: @llvm.ppc.altivec.stvxl 4983 // CHECK-LE: @llvm.ppc.altivec.stvxl 4984 4985 vec_stvxl(vsc, 0, ¶m_sc); 4986 // CHECK: @llvm.ppc.altivec.stvxl 4987 // CHECK-LE: @llvm.ppc.altivec.stvxl 4988 4989 vec_stvxl(vuc, 0, &vuc); 4990 // CHECK: @llvm.ppc.altivec.stvxl 4991 // CHECK-LE: @llvm.ppc.altivec.stvxl 4992 4993 vec_stvxl(vuc, 0, ¶m_uc); 4994 // CHECK: @llvm.ppc.altivec.stvxl 4995 // CHECK-LE: @llvm.ppc.altivec.stvxl 4996 4997 vec_stvxl(vbc, 0, ¶m_sc); 4998 // CHECK: @llvm.ppc.altivec.stvxl 4999 // CHECK-LE: @llvm.ppc.altivec.stvxl 5000 5001 vec_stvxl(vbc, 0, ¶m_uc); 5002 // CHECK: @llvm.ppc.altivec.stvxl 5003 // CHECK-LE: @llvm.ppc.altivec.stvxl 5004 5005 vec_stvxl(vbc, 0, &vbc); 5006 // CHECK: @llvm.ppc.altivec.stvxl 5007 // CHECK-LE: @llvm.ppc.altivec.stvxl 5008 5009 vec_stvxl(vs, 0, &vs); 5010 // CHECK: @llvm.ppc.altivec.stvxl 5011 // CHECK-LE: @llvm.ppc.altivec.stvxl 5012 5013 vec_stvxl(vs, 0, ¶m_s); 5014 // CHECK: @llvm.ppc.altivec.stvxl 5015 // CHECK-LE: @llvm.ppc.altivec.stvxl 5016 5017 vec_stvxl(vus, 0, &vus); 5018 // CHECK: @llvm.ppc.altivec.stvxl 5019 // CHECK-LE: @llvm.ppc.altivec.stvxl 5020 5021 vec_stvxl(vus, 0, ¶m_us); 5022 // CHECK: @llvm.ppc.altivec.stvxl 5023 // CHECK-LE: @llvm.ppc.altivec.stvxl 5024 5025 vec_stvxl(vbs, 0, ¶m_s); 5026 // CHECK: @llvm.ppc.altivec.stvxl 5027 // CHECK-LE: @llvm.ppc.altivec.stvxl 5028 5029 vec_stvxl(vbs, 0, ¶m_us); 5030 // CHECK: @llvm.ppc.altivec.stvxl 5031 // CHECK-LE: @llvm.ppc.altivec.stvxl 5032 5033 vec_stvxl(vbs, 0, &vbs); 5034 // CHECK: @llvm.ppc.altivec.stvxl 5035 // CHECK-LE: @llvm.ppc.altivec.stvxl 5036 5037 vec_stvxl(vp, 0, ¶m_s); 5038 // CHECK: @llvm.ppc.altivec.stvxl 5039 // CHECK-LE: @llvm.ppc.altivec.stvxl 5040 5041 vec_stvxl(vp, 0, ¶m_us); 5042 // CHECK: @llvm.ppc.altivec.stvxl 5043 // CHECK-LE: @llvm.ppc.altivec.stvxl 5044 5045 vec_stvxl(vp, 0, &vp); 5046 // CHECK: @llvm.ppc.altivec.stvxl 5047 // CHECK-LE: @llvm.ppc.altivec.stvxl 5048 5049 vec_stvxl(vi, 0, &vi); 5050 // CHECK: @llvm.ppc.altivec.stvxl 5051 // CHECK-LE: @llvm.ppc.altivec.stvxl 5052 5053 vec_stvxl(vi, 0, ¶m_i); 5054 // CHECK: @llvm.ppc.altivec.stvxl 5055 // CHECK-LE: @llvm.ppc.altivec.stvxl 5056 5057 vec_stvxl(vui, 0, &vui); 5058 // CHECK: @llvm.ppc.altivec.stvxl 5059 // CHECK-LE: @llvm.ppc.altivec.stvxl 5060 5061 vec_stvxl(vui, 0, ¶m_ui); 5062 // CHECK: @llvm.ppc.altivec.stvxl 5063 // CHECK-LE: @llvm.ppc.altivec.stvxl 5064 5065 vec_stvxl(vbi, 0, ¶m_i); 5066 // CHECK: @llvm.ppc.altivec.stvxl 5067 // CHECK-LE: @llvm.ppc.altivec.stvxl 5068 5069 vec_stvxl(vbi, 0, ¶m_ui); 5070 // CHECK: @llvm.ppc.altivec.stvxl 5071 // CHECK-LE: @llvm.ppc.altivec.stvxl 5072 5073 vec_stvxl(vbi, 0, &vbi); 5074 // CHECK: @llvm.ppc.altivec.stvxl 5075 // CHECK-LE: @llvm.ppc.altivec.stvxl 5076 5077 vec_stvxl(vf, 0, &vf); 5078 // CHECK: @llvm.ppc.altivec.stvxl 5079 // CHECK-LE: @llvm.ppc.altivec.stvxl 5080 5081 vec_stvxl(vf, 0, ¶m_f); 5082 // CHECK: @llvm.ppc.altivec.stvxl 5083 // CHECK-LE: @llvm.ppc.altivec.stvxl 5084 5085 /* vec_sub */ 5086 res_vsc = vec_sub(vsc, vsc); 5087 // CHECK: sub <16 x i8> 5088 // CHECK-LE: sub <16 x i8> 5089 5090 res_vsc = vec_sub(vbc, vsc); 5091 // CHECK: sub <16 x i8> 5092 // CHECK-LE: sub <16 x i8> 5093 5094 res_vsc = vec_sub(vsc, vbc); 5095 // CHECK: sub <16 x i8> 5096 // CHECK-LE: sub <16 x i8> 5097 5098 res_vuc = vec_sub(vuc, vuc); 5099 // CHECK: sub <16 x i8> 5100 // CHECK-LE: sub <16 x i8> 5101 5102 res_vuc = vec_sub(vbc, vuc); 5103 // CHECK: sub <16 x i8> 5104 // CHECK-LE: sub <16 x i8> 5105 5106 res_vuc = vec_sub(vuc, vbc); 5107 // CHECK: sub <16 x i8> 5108 // CHECK-LE: sub <16 x i8> 5109 5110 res_vs = vec_sub(vs, vs); 5111 // CHECK: sub <8 x i16> 5112 // CHECK-LE: sub <8 x i16> 5113 5114 res_vs = vec_sub(vbs, vs); 5115 // CHECK: sub <8 x i16> 5116 // CHECK-LE: sub <8 x i16> 5117 5118 res_vs = vec_sub(vs, vbs); 5119 // CHECK: sub <8 x i16> 5120 // CHECK-LE: sub <8 x i16> 5121 5122 res_vus = vec_sub(vus, vus); 5123 // CHECK: sub <8 x i16> 5124 // CHECK-LE: sub <8 x i16> 5125 5126 res_vus = vec_sub(vbs, vus); 5127 // CHECK: sub <8 x i16> 5128 // CHECK-LE: sub <8 x i16> 5129 5130 res_vus = vec_sub(vus, vbs); 5131 // CHECK: sub <8 x i16> 5132 // CHECK-LE: sub <8 x i16> 5133 5134 res_vi = vec_sub(vi, vi); 5135 // CHECK: sub <4 x i32> 5136 // CHECK-LE: sub <4 x i32> 5137 5138 res_vi = vec_sub(vbi, vi); 5139 // CHECK: sub <4 x i32> 5140 // CHECK-LE: sub <4 x i32> 5141 5142 res_vi = vec_sub(vi, vbi); 5143 // CHECK: sub <4 x i32> 5144 // CHECK-LE: sub <4 x i32> 5145 5146 res_vui = vec_sub(vui, vui); 5147 // CHECK: sub <4 x i32> 5148 // CHECK-LE: sub <4 x i32> 5149 5150 res_vui = vec_sub(vbi, vui); 5151 // CHECK: sub <4 x i32> 5152 // CHECK-LE: sub <4 x i32> 5153 5154 res_vui = vec_sub(vui, vbi); 5155 // CHECK: sub <4 x i32> 5156 // CHECK-LE: sub <4 x i32> 5157 5158 res_vf = vec_sub(vf, vf); 5159 // CHECK: fsub <4 x float> 5160 // CHECK-LE: fsub <4 x float> 5161 5162 res_vsc = vec_vsububm(vsc, vsc); 5163 // CHECK: sub <16 x i8> 5164 // CHECK-LE: sub <16 x i8> 5165 5166 res_vsc = vec_vsububm(vbc, vsc); 5167 // CHECK: sub <16 x i8> 5168 // CHECK-LE: sub <16 x i8> 5169 5170 res_vsc = vec_vsububm(vsc, vbc); 5171 // CHECK: sub <16 x i8> 5172 // CHECK-LE: sub <16 x i8> 5173 5174 res_vuc = vec_vsububm(vuc, vuc); 5175 // CHECK: sub <16 x i8> 5176 // CHECK-LE: sub <16 x i8> 5177 5178 res_vuc = vec_vsububm(vbc, vuc); 5179 // CHECK: sub <16 x i8> 5180 // CHECK-LE: sub <16 x i8> 5181 5182 res_vuc = vec_vsububm(vuc, vbc); 5183 // CHECK: sub <16 x i8> 5184 // CHECK-LE: sub <16 x i8> 5185 5186 res_vs = vec_vsubuhm(vs, vs); 5187 // CHECK: sub <8 x i16> 5188 // CHECK-LE: sub <8 x i16> 5189 5190 res_vs = vec_vsubuhm(vbs, vus); 5191 // CHECK: sub <8 x i16> 5192 // CHECK-LE: sub <8 x i16> 5193 5194 res_vs = vec_vsubuhm(vus, vbs); 5195 // CHECK: sub <8 x i16> 5196 // CHECK-LE: sub <8 x i16> 5197 5198 res_vus = vec_vsubuhm(vus, vus); 5199 // CHECK: sub <8 x i16> 5200 // CHECK-LE: sub <8 x i16> 5201 5202 res_vus = vec_vsubuhm(vbs, vus); 5203 // CHECK: sub <8 x i16> 5204 // CHECK-LE: sub <8 x i16> 5205 5206 res_vus = vec_vsubuhm(vus, vbs); 5207 // CHECK: sub <8 x i16> 5208 // CHECK-LE: sub <8 x i16> 5209 5210 res_vi = vec_vsubuwm(vi, vi); 5211 // CHECK: sub <4 x i32> 5212 // CHECK-LE: sub <4 x i32> 5213 5214 res_vi = vec_vsubuwm(vbi, vi); 5215 // CHECK: sub <4 x i32> 5216 // CHECK-LE: sub <4 x i32> 5217 5218 res_vi = vec_vsubuwm(vi, vbi); 5219 // CHECK: sub <4 x i32> 5220 // CHECK-LE: sub <4 x i32> 5221 5222 res_vui = vec_vsubuwm(vui, vui); 5223 // CHECK: sub <4 x i32> 5224 // CHECK-LE: sub <4 x i32> 5225 5226 res_vui = vec_vsubuwm(vbi, vui); 5227 // CHECK: sub <4 x i32> 5228 // CHECK-LE: sub <4 x i32> 5229 5230 res_vui = vec_vsubuwm(vui, vbi); 5231 // CHECK: sub <4 x i32> 5232 // CHECK-LE: sub <4 x i32> 5233 5234 res_vf = vec_vsubfp(vf, vf); 5235 // CHECK: fsub <4 x float> 5236 // CHECK-LE: fsub <4 x float> 5237 5238 /* vec_subc */ 5239 res_vui = vec_subc(vui, vui); 5240 // CHECK: @llvm.ppc.altivec.vsubcuw 5241 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 5242 5243 res_vui = vec_vsubcuw(vui, vui); 5244 // CHECK: @llvm.ppc.altivec.vsubcuw 5245 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 5246 5247 /* vec_subs */ 5248 res_vsc = vec_subs(vsc, vsc); 5249 // CHECK: @llvm.ppc.altivec.vsubsbs 5250 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5251 5252 res_vsc = vec_subs(vbc, vsc); 5253 // CHECK: @llvm.ppc.altivec.vsubsbs 5254 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5255 5256 res_vsc = vec_subs(vsc, vbc); 5257 // CHECK: @llvm.ppc.altivec.vsubsbs 5258 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5259 5260 res_vuc = vec_subs(vuc, vuc); 5261 // CHECK: @llvm.ppc.altivec.vsububs 5262 // CHECK-LE: @llvm.ppc.altivec.vsububs 5263 5264 res_vuc = vec_subs(vbc, vuc); 5265 // CHECK: @llvm.ppc.altivec.vsububs 5266 // CHECK-LE: @llvm.ppc.altivec.vsububs 5267 5268 res_vuc = vec_subs(vuc, vbc); 5269 // CHECK: @llvm.ppc.altivec.vsububs 5270 // CHECK-LE: @llvm.ppc.altivec.vsububs 5271 5272 res_vs = vec_subs(vs, vs); 5273 // CHECK: @llvm.ppc.altivec.vsubshs 5274 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5275 5276 res_vs = vec_subs(vbs, vs); 5277 // CHECK: @llvm.ppc.altivec.vsubshs 5278 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5279 5280 res_vs = vec_subs(vs, vbs); 5281 // CHECK: @llvm.ppc.altivec.vsubshs 5282 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5283 5284 res_vus = vec_subs(vus, vus); 5285 // CHECK: @llvm.ppc.altivec.vsubuhs 5286 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5287 5288 res_vus = vec_subs(vbs, vus); 5289 // CHECK: @llvm.ppc.altivec.vsubuhs 5290 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5291 5292 res_vus = vec_subs(vus, vbs); 5293 // CHECK: @llvm.ppc.altivec.vsubuhs 5294 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5295 5296 res_vi = vec_subs(vi, vi); 5297 // CHECK: @llvm.ppc.altivec.vsubsws 5298 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5299 5300 res_vi = vec_subs(vbi, vi); 5301 // CHECK: @llvm.ppc.altivec.vsubsws 5302 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5303 5304 res_vi = vec_subs(vi, vbi); 5305 // CHECK: @llvm.ppc.altivec.vsubsws 5306 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5307 5308 res_vui = vec_subs(vui, vui); 5309 // CHECK: @llvm.ppc.altivec.vsubuws 5310 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5311 5312 res_vui = vec_subs(vbi, vui); 5313 // CHECK: @llvm.ppc.altivec.vsubuws 5314 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5315 5316 res_vui = vec_subs(vui, vbi); 5317 // CHECK: @llvm.ppc.altivec.vsubuws 5318 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5319 5320 res_vsc = vec_vsubsbs(vsc, vsc); 5321 // CHECK: @llvm.ppc.altivec.vsubsbs 5322 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5323 5324 res_vsc = vec_vsubsbs(vbc, vsc); 5325 // CHECK: @llvm.ppc.altivec.vsubsbs 5326 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5327 5328 res_vsc = vec_vsubsbs(vsc, vbc); 5329 // CHECK: @llvm.ppc.altivec.vsubsbs 5330 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5331 5332 res_vuc = vec_vsububs(vuc, vuc); 5333 // CHECK: @llvm.ppc.altivec.vsububs 5334 // CHECK-LE: @llvm.ppc.altivec.vsububs 5335 5336 res_vuc = vec_vsububs(vbc, vuc); 5337 // CHECK: @llvm.ppc.altivec.vsububs 5338 // CHECK-LE: @llvm.ppc.altivec.vsububs 5339 5340 res_vuc = vec_vsububs(vuc, vbc); 5341 // CHECK: @llvm.ppc.altivec.vsububs 5342 // CHECK-LE: @llvm.ppc.altivec.vsububs 5343 5344 res_vs = vec_vsubshs(vs, vs); 5345 // CHECK: @llvm.ppc.altivec.vsubshs 5346 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5347 5348 res_vs = vec_vsubshs(vbs, vs); 5349 // CHECK: @llvm.ppc.altivec.vsubshs 5350 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5351 5352 res_vs = vec_vsubshs(vs, vbs); 5353 // CHECK: @llvm.ppc.altivec.vsubshs 5354 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5355 5356 res_vus = vec_vsubuhs(vus, vus); 5357 // CHECK: @llvm.ppc.altivec.vsubuhs 5358 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5359 5360 res_vus = vec_vsubuhs(vbs, vus); 5361 // CHECK: @llvm.ppc.altivec.vsubuhs 5362 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5363 5364 res_vus = vec_vsubuhs(vus, vbs); 5365 // CHECK: @llvm.ppc.altivec.vsubuhs 5366 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5367 5368 res_vi = vec_vsubsws(vi, vi); 5369 // CHECK: @llvm.ppc.altivec.vsubsws 5370 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5371 5372 res_vi = vec_vsubsws(vbi, vi); 5373 // CHECK: @llvm.ppc.altivec.vsubsws 5374 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5375 5376 res_vi = vec_vsubsws(vi, vbi); 5377 // CHECK: @llvm.ppc.altivec.vsubsws 5378 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5379 5380 res_vui = vec_vsubuws(vui, vui); 5381 // CHECK: @llvm.ppc.altivec.vsubuws 5382 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5383 5384 res_vui = vec_vsubuws(vbi, vui); 5385 // CHECK: @llvm.ppc.altivec.vsubuws 5386 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5387 5388 res_vui = vec_vsubuws(vui, vbi); 5389 // CHECK: @llvm.ppc.altivec.vsubuws 5390 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5391 5392 /* vec_sum4s */ 5393 res_vi = vec_sum4s(vsc, vi); 5394 // CHECK: @llvm.ppc.altivec.vsum4sbs 5395 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs 5396 5397 res_vui = vec_sum4s(vuc, vui); 5398 // CHECK: @llvm.ppc.altivec.vsum4ubs 5399 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs 5400 5401 res_vi = vec_sum4s(vs, vi); 5402 // CHECK: @llvm.ppc.altivec.vsum4shs 5403 // CHECK-LE: @llvm.ppc.altivec.vsum4shs 5404 5405 res_vi = vec_vsum4sbs(vsc, vi); 5406 // CHECK: @llvm.ppc.altivec.vsum4sbs 5407 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs 5408 5409 res_vui = vec_vsum4ubs(vuc, vui); 5410 // CHECK: @llvm.ppc.altivec.vsum4ubs 5411 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs 5412 5413 res_vi = vec_vsum4shs(vs, vi); 5414 // CHECK: @llvm.ppc.altivec.vsum4shs 5415 // CHECK-LE: @llvm.ppc.altivec.vsum4shs 5416 5417 /* vec_sum2s */ 5418 res_vi = vec_sum2s(vi, vi); 5419 // CHECK: @llvm.ppc.altivec.vsum2sws 5420 // CHECK-LE: @llvm.ppc.altivec.vperm 5421 // CHECK-LE: @llvm.ppc.altivec.vsum2sws 5422 // CHECK-LE: @llvm.ppc.altivec.vperm 5423 5424 res_vi = vec_vsum2sws(vi, vi); 5425 // CHECK: @llvm.ppc.altivec.vsum2sws 5426 // CHECK-LE: @llvm.ppc.altivec.vperm 5427 // CHECK-LE: @llvm.ppc.altivec.vsum2sws 5428 // CHECK-LE: @llvm.ppc.altivec.vperm 5429 5430 /* vec_sums */ 5431 res_vi = vec_sums(vi, vi); 5432 // CHECK: @llvm.ppc.altivec.vsumsws 5433 // CHECK-LE: @llvm.ppc.altivec.vperm 5434 // CHECK-LE: @llvm.ppc.altivec.vsumsws 5435 5436 res_vi = vec_vsumsws(vi, vi); 5437 // CHECK: @llvm.ppc.altivec.vsumsws 5438 // CHECK-LE: @llvm.ppc.altivec.vperm 5439 // CHECK-LE: @llvm.ppc.altivec.vsumsws 5440 5441 /* vec_trunc */ 5442 res_vf = vec_trunc(vf); 5443 // CHECK: @llvm.ppc.altivec.vrfiz 5444 // CHECK-LE: @llvm.ppc.altivec.vrfiz 5445 5446 res_vf = vec_vrfiz(vf); 5447 // CHECK: @llvm.ppc.altivec.vrfiz 5448 // CHECK-LE: @llvm.ppc.altivec.vrfiz 5449 5450 /* vec_unpackh */ 5451 res_vs = vec_unpackh(vsc); 5452 // CHECK: @llvm.ppc.altivec.vupkhsb 5453 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5454 5455 res_vbs = vec_unpackh(vbc); 5456 // CHECK: @llvm.ppc.altivec.vupkhsb 5457 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5458 5459 res_vi = vec_unpackh(vs); 5460 // CHECK: @llvm.ppc.altivec.vupkhsh 5461 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5462 5463 res_vbi = vec_unpackh(vbs); 5464 // CHECK: @llvm.ppc.altivec.vupkhsh 5465 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5466 5467 res_vui = vec_unpackh(vp); 5468 // CHECK: @llvm.ppc.altivec.vupkhpx 5469 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5470 5471 res_vs = vec_vupkhsb(vsc); 5472 // CHECK: @llvm.ppc.altivec.vupkhsb 5473 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5474 5475 res_vbs = vec_vupkhsb(vbc); 5476 // CHECK: @llvm.ppc.altivec.vupkhsb 5477 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5478 5479 res_vi = vec_vupkhsh(vs); 5480 // CHECK: @llvm.ppc.altivec.vupkhsh 5481 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5482 5483 res_vbi = vec_vupkhsh(vbs); 5484 // CHECK: @llvm.ppc.altivec.vupkhsh 5485 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5486 5487 res_vui = vec_vupkhsh(vp); 5488 // CHECK: @llvm.ppc.altivec.vupkhpx 5489 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5490 5491 /* vec_unpackl */ 5492 res_vs = vec_unpackl(vsc); 5493 // CHECK: @llvm.ppc.altivec.vupklsb 5494 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5495 5496 res_vbs = vec_unpackl(vbc); 5497 // CHECK: @llvm.ppc.altivec.vupklsb 5498 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5499 5500 res_vi = vec_unpackl(vs); 5501 // CHECK: @llvm.ppc.altivec.vupklsh 5502 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5503 5504 res_vbi = vec_unpackl(vbs); 5505 // CHECK: @llvm.ppc.altivec.vupklsh 5506 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5507 5508 res_vui = vec_unpackl(vp); 5509 // CHECK: @llvm.ppc.altivec.vupklpx 5510 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5511 5512 res_vs = vec_vupklsb(vsc); 5513 // CHECK: @llvm.ppc.altivec.vupklsb 5514 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5515 5516 res_vbs = vec_vupklsb(vbc); 5517 // CHECK: @llvm.ppc.altivec.vupklsb 5518 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5519 5520 res_vi = vec_vupklsh(vs); 5521 // CHECK: @llvm.ppc.altivec.vupklsh 5522 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5523 5524 res_vbi = vec_vupklsh(vbs); 5525 // CHECK: @llvm.ppc.altivec.vupklsh 5526 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5527 5528 res_vui = vec_vupklsh(vp); 5529 // CHECK: @llvm.ppc.altivec.vupklpx 5530 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5531 5532 /* vec_xor */ 5533 res_vsc = vec_xor(vsc, vsc); 5534 // CHECK: xor <16 x i8> 5535 // CHECK-LE: xor <16 x i8> 5536 5537 res_vsc = vec_xor(vbc, vsc); 5538 // CHECK: xor <16 x i8> 5539 // CHECK-LE: xor <16 x i8> 5540 5541 res_vsc = vec_xor(vsc, vbc); 5542 // CHECK: xor <16 x i8> 5543 // CHECK-LE: xor <16 x i8> 5544 5545 res_vuc = vec_xor(vuc, vuc); 5546 // CHECK: xor <16 x i8> 5547 // CHECK-LE: xor <16 x i8> 5548 5549 res_vuc = vec_xor(vbc, vuc); 5550 // CHECK: xor <16 x i8> 5551 // CHECK-LE: xor <16 x i8> 5552 5553 res_vuc = vec_xor(vuc, vbc); 5554 // CHECK: xor <16 x i8> 5555 // CHECK-LE: xor <16 x i8> 5556 5557 res_vbc = vec_xor(vbc, vbc); 5558 // CHECK: xor <16 x i8> 5559 // CHECK-LE: xor <16 x i8> 5560 5561 res_vs = vec_xor(vs, vs); 5562 // CHECK: xor <8 x i16> 5563 // CHECK-LE: xor <8 x i16> 5564 5565 res_vs = vec_xor(vbs, vs); 5566 // CHECK: xor <8 x i16> 5567 // CHECK-LE: xor <8 x i16> 5568 5569 res_vs = vec_xor(vs, vbs); 5570 // CHECK: xor <8 x i16> 5571 // CHECK-LE: xor <8 x i16> 5572 5573 res_vus = vec_xor(vus, vus); 5574 // CHECK: xor <8 x i16> 5575 // CHECK-LE: xor <8 x i16> 5576 5577 res_vus = vec_xor(vbs, vus); 5578 // CHECK: xor <8 x i16> 5579 // CHECK-LE: xor <8 x i16> 5580 5581 res_vus = vec_xor(vus, vbs); 5582 // CHECK: xor <8 x i16> 5583 // CHECK-LE: xor <8 x i16> 5584 5585 res_vbs = vec_xor(vbs, vbs); 5586 // CHECK: xor <8 x i16> 5587 // CHECK-LE: xor <8 x i16> 5588 5589 res_vi = vec_xor(vi, vi); 5590 // CHECK: xor <4 x i32> 5591 // CHECK-LE: xor <4 x i32> 5592 5593 res_vi = vec_xor(vbi, vi); 5594 // CHECK: xor <4 x i32> 5595 // CHECK-LE: xor <4 x i32> 5596 5597 res_vi = vec_xor(vi, vbi); 5598 // CHECK: xor <4 x i32> 5599 // CHECK-LE: xor <4 x i32> 5600 5601 res_vui = vec_xor(vui, vui); 5602 // CHECK: xor <4 x i32> 5603 // CHECK-LE: xor <4 x i32> 5604 5605 res_vui = vec_xor(vbi, vui); 5606 // CHECK: xor <4 x i32> 5607 // CHECK-LE: xor <4 x i32> 5608 5609 res_vui = vec_xor(vui, vbi); 5610 // CHECK: xor <4 x i32> 5611 // CHECK-LE: xor <4 x i32> 5612 5613 res_vbi = vec_xor(vbi, vbi); 5614 // CHECK: xor <4 x i32> 5615 // CHECK-LE: xor <4 x i32> 5616 5617 res_vf = vec_xor(vf, vf); 5618 // CHECK: xor <4 x i32> 5619 // CHECK-LE: xor <4 x i32> 5620 5621 res_vf = vec_xor(vbi, vf); 5622 // CHECK: xor <4 x i32> 5623 // CHECK-LE: xor <4 x i32> 5624 5625 res_vf = vec_xor(vf, vbi); 5626 // CHECK: xor <4 x i32> 5627 // CHECK-LE: xor <4 x i32> 5628 5629 res_vsc = vec_vxor(vsc, vsc); 5630 // CHECK: xor <16 x i8> 5631 // CHECK-LE: xor <16 x i8> 5632 5633 res_vsc = vec_vxor(vbc, vsc); 5634 // CHECK: xor <16 x i8> 5635 // CHECK-LE: xor <16 x i8> 5636 5637 res_vsc = vec_vxor(vsc, vbc); 5638 // CHECK: xor <16 x i8> 5639 // CHECK-LE: xor <16 x i8> 5640 5641 res_vuc = vec_vxor(vuc, vuc); 5642 // CHECK: xor <16 x i8> 5643 // CHECK-LE: xor <16 x i8> 5644 5645 res_vuc = vec_vxor(vbc, vuc); 5646 // CHECK: xor <16 x i8> 5647 // CHECK-LE: xor <16 x i8> 5648 5649 res_vuc = vec_vxor(vuc, vbc); 5650 // CHECK: xor <16 x i8> 5651 // CHECK-LE: xor <16 x i8> 5652 5653 res_vbc = vec_vxor(vbc, vbc); 5654 // CHECK: xor <16 x i8> 5655 // CHECK-LE: xor <16 x i8> 5656 5657 res_vs = vec_vxor(vs, vs); 5658 // CHECK: xor <8 x i16> 5659 // CHECK-LE: xor <8 x i16> 5660 5661 res_vs = vec_vxor(vbs, vs); 5662 // CHECK: xor <8 x i16> 5663 // CHECK-LE: xor <8 x i16> 5664 5665 res_vs = vec_vxor(vs, vbs); 5666 // CHECK: xor <8 x i16> 5667 // CHECK-LE: xor <8 x i16> 5668 5669 res_vus = vec_vxor(vus, vus); 5670 // CHECK: xor <8 x i16> 5671 // CHECK-LE: xor <8 x i16> 5672 5673 res_vus = vec_vxor(vbs, vus); 5674 // CHECK: xor <8 x i16> 5675 // CHECK-LE: xor <8 x i16> 5676 5677 res_vus = vec_vxor(vus, vbs); 5678 // CHECK: xor <8 x i16> 5679 // CHECK-LE: xor <8 x i16> 5680 5681 res_vbs = vec_vxor(vbs, vbs); 5682 // CHECK: xor <8 x i16> 5683 // CHECK-LE: xor <8 x i16> 5684 5685 res_vi = vec_vxor(vi, vi); 5686 // CHECK: xor <4 x i32> 5687 // CHECK-LE: xor <4 x i32> 5688 5689 res_vi = vec_vxor(vbi, vi); 5690 // CHECK: xor <4 x i32> 5691 // CHECK-LE: xor <4 x i32> 5692 5693 res_vi = vec_vxor(vi, vbi); 5694 // CHECK: xor <4 x i32> 5695 // CHECK-LE: xor <4 x i32> 5696 5697 res_vui = vec_vxor(vui, vui); 5698 // CHECK: xor <4 x i32> 5699 // CHECK-LE: xor <4 x i32> 5700 5701 res_vui = vec_vxor(vbi, vui); 5702 // CHECK: xor <4 x i32> 5703 // CHECK-LE: xor <4 x i32> 5704 5705 res_vui = vec_vxor(vui, vbi); 5706 // CHECK: xor <4 x i32> 5707 // CHECK-LE: xor <4 x i32> 5708 5709 res_vbi = vec_vxor(vbi, vbi); 5710 // CHECK: xor <4 x i32> 5711 // CHECK-LE: xor <4 x i32> 5712 5713 res_vf = vec_vxor(vf, vf); 5714 // CHECK: xor <4 x i32> 5715 // CHECK-LE: xor <4 x i32> 5716 5717 res_vf = vec_vxor(vbi, vf); 5718 // CHECK: xor <4 x i32> 5719 // CHECK-LE: xor <4 x i32> 5720 5721 res_vf = vec_vxor(vf, vbi); 5722 // CHECK: xor <4 x i32> 5723 // CHECK-LE: xor <4 x i32> 5724 5725 /* ------------------------------ extensions -------------------------------------- */ 5726 5727 /* vec_extract */ 5728 res_sc = vec_extract(vsc, param_i); 5729 // CHECK: extractelement <16 x i8> 5730 // CHECK-LE: extractelement <16 x i8> 5731 5732 res_uc = vec_extract(vuc, param_i); 5733 // CHECK: extractelement <16 x i8> 5734 // CHECK-LE: extractelement <16 x i8> 5735 5736 res_uc = vec_extract(vbc, param_i); 5737 // CHECK: extractelement <16 x i8> 5738 // CHECK-LE: extractelement <16 x i8> 5739 5740 res_s = vec_extract(vs, param_i); 5741 // CHECK: extractelement <8 x i16> 5742 // CHECK-LE: extractelement <8 x i16> 5743 5744 res_us = vec_extract(vus, param_i); 5745 // CHECK: extractelement <8 x i16> 5746 // CHECK-LE: extractelement <8 x i16> 5747 5748 res_us = vec_extract(vbs, param_i); 5749 // CHECK: extractelement <8 x i16> 5750 // CHECK-LE: extractelement <8 x i16> 5751 5752 res_i = vec_extract(vi, param_i); 5753 // CHECK: extractelement <4 x i32> 5754 // CHECK-LE: extractelement <4 x i32> 5755 5756 res_ui = vec_extract(vui, param_i); 5757 // CHECK: extractelement <4 x i32> 5758 // CHECK-LE: extractelement <4 x i32> 5759 5760 res_ui = vec_extract(vbi, param_i); 5761 // CHECK: extractelement <4 x i32> 5762 // CHECK-LE: extractelement <4 x i32> 5763 5764 res_f = vec_extract(vf, param_i); 5765 // CHECK: extractelement <4 x float> 5766 // CHECK-LE: extractelement <4 x float> 5767 5768 /* vec_insert */ 5769 res_vsc = vec_insert(param_sc, vsc, param_i); 5770 // CHECK: insertelement <16 x i8> 5771 // CHECK-LE: insertelement <16 x i8> 5772 5773 res_vuc = vec_insert(param_uc, vuc, param_i); 5774 // CHECK: insertelement <16 x i8> 5775 // CHECK-LE: insertelement <16 x i8> 5776 5777 res_vbc = vec_insert(param_uc, vbc, param_i); 5778 // CHECK: insertelement <16 x i8> 5779 // CHECK-LE: insertelement <16 x i8> 5780 5781 res_vs = vec_insert(param_s, vs, param_i); 5782 // CHECK: insertelement <8 x i16> 5783 // CHECK-LE: insertelement <8 x i16> 5784 5785 res_vus = vec_insert(param_us, vus, param_i); 5786 // CHECK: insertelement <8 x i16> 5787 // CHECK-LE: insertelement <8 x i16> 5788 5789 res_vbs = vec_insert(param_us, vbs, param_i); 5790 // CHECK: insertelement <8 x i16> 5791 // CHECK-LE: insertelement <8 x i16> 5792 5793 res_vi = vec_insert(param_i, vi, param_i); 5794 // CHECK: insertelement <4 x i32> 5795 // CHECK-LE: insertelement <4 x i32> 5796 5797 res_vui = vec_insert(param_ui, vui, param_i); 5798 // CHECK: insertelement <4 x i32> 5799 // CHECK-LE: insertelement <4 x i32> 5800 5801 res_vbi = vec_insert(param_ui, vbi, param_i); 5802 // CHECK: insertelement <4 x i32> 5803 // CHECK-LE: insertelement <4 x i32> 5804 5805 res_vf = vec_insert(param_f, vf, param_i); 5806 // CHECK: insertelement <4 x float> 5807 // CHECK-LE: insertelement <4 x float> 5808 5809 /* vec_lvlx */ 5810 res_vsc = vec_lvlx(0, ¶m_sc); 5811 // CHECK: @llvm.ppc.altivec.lvx 5812 // CHECK: @llvm.ppc.altivec.lvsl 5813 // CHECK: store <16 x i8> zeroinitializer 5814 // CHECK: @llvm.ppc.altivec.vperm 5815 // CHECK-LE: @llvm.ppc.altivec.lvx 5816 // CHECK-LE: @llvm.ppc.altivec.lvsl 5817 // CHECK-LE: store <16 x i8> zeroinitializer 5818 // CHECK-LE: @llvm.ppc.altivec.vperm 5819 5820 res_vsc = vec_lvlx(0, &vsc); 5821 // CHECK: @llvm.ppc.altivec.lvx 5822 // CHECK: @llvm.ppc.altivec.lvsl 5823 // CHECK: store <16 x i8> zeroinitializer 5824 // CHECK: @llvm.ppc.altivec.vperm 5825 // CHECK-LE: @llvm.ppc.altivec.lvx 5826 // CHECK-LE: @llvm.ppc.altivec.lvsl 5827 // CHECK-LE: store <16 x i8> zeroinitializer 5828 // CHECK-LE: @llvm.ppc.altivec.vperm 5829 5830 res_vuc = vec_lvlx(0, ¶m_uc); 5831 // CHECK: @llvm.ppc.altivec.lvx 5832 // CHECK: @llvm.ppc.altivec.lvsl 5833 // CHECK: store <16 x i8> zeroinitializer 5834 // CHECK: @llvm.ppc.altivec.vperm 5835 // CHECK-LE: @llvm.ppc.altivec.lvx 5836 // CHECK-LE: @llvm.ppc.altivec.lvsl 5837 // CHECK-LE: store <16 x i8> zeroinitializer 5838 // CHECK-LE: @llvm.ppc.altivec.vperm 5839 5840 res_vuc = vec_lvlx(0, &vuc); 5841 // CHECK: @llvm.ppc.altivec.lvx 5842 // CHECK: @llvm.ppc.altivec.lvsl 5843 // CHECK: store <16 x i8> zeroinitializer 5844 // CHECK: @llvm.ppc.altivec.vperm 5845 // CHECK-LE: @llvm.ppc.altivec.lvx 5846 // CHECK-LE: @llvm.ppc.altivec.lvsl 5847 // CHECK-LE: store <16 x i8> zeroinitializer 5848 // CHECK-LE: @llvm.ppc.altivec.vperm 5849 5850 res_vbc = vec_lvlx(0, &vbc); 5851 // CHECK: @llvm.ppc.altivec.lvx 5852 // CHECK: store <16 x i8> zeroinitializer 5853 // CHECK: @llvm.ppc.altivec.lvsl 5854 // CHECK: @llvm.ppc.altivec.vperm 5855 // CHECK-LE: @llvm.ppc.altivec.lvx 5856 // CHECK-LE: store <16 x i8> zeroinitializer 5857 // CHECK-LE: @llvm.ppc.altivec.lvsl 5858 // CHECK-LE: @llvm.ppc.altivec.vperm 5859 5860 res_vs = vec_lvlx(0, ¶m_s); 5861 // CHECK: @llvm.ppc.altivec.lvx 5862 // CHECK: @llvm.ppc.altivec.lvsl 5863 // CHECK: store <8 x i16> zeroinitializer 5864 // CHECK: @llvm.ppc.altivec.vperm 5865 // CHECK-LE: @llvm.ppc.altivec.lvx 5866 // CHECK-LE: @llvm.ppc.altivec.lvsl 5867 // CHECK-LE: store <8 x i16> zeroinitializer 5868 // CHECK-LE: @llvm.ppc.altivec.vperm 5869 5870 res_vs = vec_lvlx(0, &vs); 5871 // CHECK: @llvm.ppc.altivec.lvx 5872 // CHECK: @llvm.ppc.altivec.lvsl 5873 // CHECK: store <8 x i16> zeroinitializer 5874 // CHECK: @llvm.ppc.altivec.vperm 5875 // CHECK-LE: @llvm.ppc.altivec.lvx 5876 // CHECK-LE: @llvm.ppc.altivec.lvsl 5877 // CHECK-LE: store <8 x i16> zeroinitializer 5878 // CHECK-LE: @llvm.ppc.altivec.vperm 5879 5880 res_vus = vec_lvlx(0, ¶m_us); 5881 // CHECK: @llvm.ppc.altivec.lvx 5882 // CHECK: @llvm.ppc.altivec.lvsl 5883 // CHECK: store <8 x i16> zeroinitializer 5884 // CHECK: @llvm.ppc.altivec.vperm 5885 // CHECK-LE: @llvm.ppc.altivec.lvx 5886 // CHECK-LE: @llvm.ppc.altivec.lvsl 5887 // CHECK-LE: store <8 x i16> zeroinitializer 5888 // CHECK-LE: @llvm.ppc.altivec.vperm 5889 5890 res_vus = vec_lvlx(0, &vus); 5891 // CHECK: @llvm.ppc.altivec.lvx 5892 // CHECK: @llvm.ppc.altivec.lvsl 5893 // CHECK: store <8 x i16> zeroinitializer 5894 // CHECK: @llvm.ppc.altivec.vperm 5895 // CHECK-LE: @llvm.ppc.altivec.lvx 5896 // CHECK-LE: @llvm.ppc.altivec.lvsl 5897 // CHECK-LE: store <8 x i16> zeroinitializer 5898 // CHECK-LE: @llvm.ppc.altivec.vperm 5899 5900 res_vbs = vec_lvlx(0, &vbs); 5901 // CHECK: @llvm.ppc.altivec.lvx 5902 // CHECK: store <8 x i16> zeroinitializer 5903 // CHECK: @llvm.ppc.altivec.lvsl 5904 // CHECK: @llvm.ppc.altivec.vperm 5905 // CHECK-LE: @llvm.ppc.altivec.lvx 5906 // CHECK-LE: store <8 x i16> zeroinitializer 5907 // CHECK-LE: @llvm.ppc.altivec.lvsl 5908 // CHECK-LE: @llvm.ppc.altivec.vperm 5909 5910 res_vp = vec_lvlx(0, &vp); 5911 // CHECK: @llvm.ppc.altivec.lvx 5912 // CHECK: store <8 x i16> zeroinitializer 5913 // CHECK: @llvm.ppc.altivec.lvsl 5914 // CHECK: @llvm.ppc.altivec.vperm 5915 // CHECK-LE: @llvm.ppc.altivec.lvx 5916 // CHECK-LE: store <8 x i16> zeroinitializer 5917 // CHECK-LE: @llvm.ppc.altivec.lvsl 5918 // CHECK-LE: @llvm.ppc.altivec.vperm 5919 5920 res_vi = vec_lvlx(0, ¶m_i); 5921 // CHECK: @llvm.ppc.altivec.lvx 5922 // CHECK: @llvm.ppc.altivec.lvsl 5923 // CHECK: store <4 x i32> zeroinitializer 5924 // CHECK: @llvm.ppc.altivec.vperm 5925 // CHECK-LE: @llvm.ppc.altivec.lvx 5926 // CHECK-LE: @llvm.ppc.altivec.lvsl 5927 // CHECK-LE: store <4 x i32> zeroinitializer 5928 // CHECK-LE: @llvm.ppc.altivec.vperm 5929 5930 res_vi = vec_lvlx(0, &vi); 5931 // CHECK: @llvm.ppc.altivec.lvx 5932 // CHECK: @llvm.ppc.altivec.lvsl 5933 // CHECK: store <4 x i32> zeroinitializer 5934 // CHECK: @llvm.ppc.altivec.vperm 5935 // CHECK-LE: @llvm.ppc.altivec.lvx 5936 // CHECK-LE: @llvm.ppc.altivec.lvsl 5937 // CHECK-LE: store <4 x i32> zeroinitializer 5938 // CHECK-LE: @llvm.ppc.altivec.vperm 5939 5940 res_vui = vec_lvlx(0, ¶m_ui); 5941 // CHECK: @llvm.ppc.altivec.lvx 5942 // CHECK: @llvm.ppc.altivec.lvsl 5943 // CHECK: store <4 x i32> zeroinitializer 5944 // CHECK: @llvm.ppc.altivec.vperm 5945 // CHECK-LE: @llvm.ppc.altivec.lvx 5946 // CHECK-LE: @llvm.ppc.altivec.lvsl 5947 // CHECK-LE: store <4 x i32> zeroinitializer 5948 // CHECK-LE: @llvm.ppc.altivec.vperm 5949 5950 res_vui = vec_lvlx(0, &vui); 5951 // CHECK: @llvm.ppc.altivec.lvx 5952 // CHECK: @llvm.ppc.altivec.lvsl 5953 // CHECK: store <4 x i32> zeroinitializer 5954 // CHECK: @llvm.ppc.altivec.vperm 5955 // CHECK-LE: @llvm.ppc.altivec.lvx 5956 // CHECK-LE: @llvm.ppc.altivec.lvsl 5957 // CHECK-LE: store <4 x i32> zeroinitializer 5958 // CHECK-LE: @llvm.ppc.altivec.vperm 5959 5960 res_vbi = vec_lvlx(0, &vbi); 5961 // CHECK: @llvm.ppc.altivec.lvx 5962 // CHECK: store <4 x i32> zeroinitializer 5963 // CHECK: @llvm.ppc.altivec.lvsl 5964 // CHECK: @llvm.ppc.altivec.vperm 5965 // CHECK-LE: @llvm.ppc.altivec.lvx 5966 // CHECK-LE: store <4 x i32> zeroinitializer 5967 // CHECK-LE: @llvm.ppc.altivec.lvsl 5968 // CHECK-LE: @llvm.ppc.altivec.vperm 5969 5970 res_vf = vec_lvlx(0, &vf); 5971 // CHECK: @llvm.ppc.altivec.lvx 5972 // CHECK: @llvm.ppc.altivec.lvsl 5973 // CHECK: store <4 x float> zeroinitializer 5974 // CHECK: @llvm.ppc.altivec.vperm 5975 // CHECK-LE: @llvm.ppc.altivec.lvx 5976 // CHECK-LE: @llvm.ppc.altivec.lvsl 5977 // CHECK-LE: store <4 x float> zeroinitializer 5978 // CHECK-LE: @llvm.ppc.altivec.vperm 5979 5980 /* vec_lvlxl */ 5981 res_vsc = vec_lvlxl(0, ¶m_sc); 5982 // CHECK: @llvm.ppc.altivec.lvxl 5983 // CHECK: @llvm.ppc.altivec.lvsl 5984 // CHECK: store <16 x i8> zeroinitializer 5985 // CHECK: @llvm.ppc.altivec.vperm 5986 // CHECK-LE: @llvm.ppc.altivec.lvxl 5987 // CHECK-LE: @llvm.ppc.altivec.lvsl 5988 // CHECK-LE: store <16 x i8> zeroinitializer 5989 // CHECK-LE: @llvm.ppc.altivec.vperm 5990 5991 res_vsc = vec_lvlxl(0, &vsc); 5992 // CHECK: @llvm.ppc.altivec.lvxl 5993 // CHECK: @llvm.ppc.altivec.lvsl 5994 // CHECK: store <16 x i8> zeroinitializer 5995 // CHECK: @llvm.ppc.altivec.vperm 5996 // CHECK-LE: @llvm.ppc.altivec.lvxl 5997 // CHECK-LE: @llvm.ppc.altivec.lvsl 5998 // CHECK-LE: store <16 x i8> zeroinitializer 5999 // CHECK-LE: @llvm.ppc.altivec.vperm 6000 6001 res_vuc = vec_lvlxl(0, ¶m_uc); 6002 // CHECK: @llvm.ppc.altivec.lvxl 6003 // CHECK: @llvm.ppc.altivec.lvsl 6004 // CHECK: store <16 x i8> zeroinitializer 6005 // CHECK: @llvm.ppc.altivec.vperm 6006 // CHECK-LE: @llvm.ppc.altivec.lvxl 6007 // CHECK-LE: @llvm.ppc.altivec.lvsl 6008 // CHECK-LE: store <16 x i8> zeroinitializer 6009 // CHECK-LE: @llvm.ppc.altivec.vperm 6010 6011 res_vuc = vec_lvlxl(0, &vuc); 6012 // CHECK: @llvm.ppc.altivec.lvxl 6013 // CHECK: @llvm.ppc.altivec.lvsl 6014 // CHECK: store <16 x i8> zeroinitializer 6015 // CHECK: @llvm.ppc.altivec.vperm 6016 // CHECK-LE: @llvm.ppc.altivec.lvxl 6017 // CHECK-LE: @llvm.ppc.altivec.lvsl 6018 // CHECK-LE: store <16 x i8> zeroinitializer 6019 // CHECK-LE: @llvm.ppc.altivec.vperm 6020 6021 res_vbc = vec_lvlxl(0, &vbc); 6022 // CHECK: @llvm.ppc.altivec.lvxl 6023 // CHECK: store <16 x i8> zeroinitializer 6024 // CHECK: @llvm.ppc.altivec.lvsl 6025 // CHECK: @llvm.ppc.altivec.vperm 6026 // CHECK-LE: @llvm.ppc.altivec.lvxl 6027 // CHECK-LE: store <16 x i8> zeroinitializer 6028 // CHECK-LE: @llvm.ppc.altivec.lvsl 6029 // CHECK-LE: @llvm.ppc.altivec.vperm 6030 6031 res_vs = vec_lvlxl(0, ¶m_s); 6032 // CHECK: @llvm.ppc.altivec.lvxl 6033 // CHECK: @llvm.ppc.altivec.lvsl 6034 // CHECK: store <8 x i16> zeroinitializer 6035 // CHECK: @llvm.ppc.altivec.vperm 6036 // CHECK-LE: @llvm.ppc.altivec.lvxl 6037 // CHECK-LE: @llvm.ppc.altivec.lvsl 6038 // CHECK-LE: store <8 x i16> zeroinitializer 6039 // CHECK-LE: @llvm.ppc.altivec.vperm 6040 6041 res_vs = vec_lvlxl(0, &vs); 6042 // CHECK: @llvm.ppc.altivec.lvxl 6043 // CHECK: @llvm.ppc.altivec.lvsl 6044 // CHECK: store <8 x i16> zeroinitializer 6045 // CHECK: @llvm.ppc.altivec.vperm 6046 // CHECK-LE: @llvm.ppc.altivec.lvxl 6047 // CHECK-LE: @llvm.ppc.altivec.lvsl 6048 // CHECK-LE: store <8 x i16> zeroinitializer 6049 // CHECK-LE: @llvm.ppc.altivec.vperm 6050 6051 res_vus = vec_lvlxl(0, ¶m_us); 6052 // CHECK: @llvm.ppc.altivec.lvxl 6053 // CHECK: @llvm.ppc.altivec.lvsl 6054 // CHECK: store <8 x i16> zeroinitializer 6055 // CHECK: @llvm.ppc.altivec.vperm 6056 // CHECK-LE: @llvm.ppc.altivec.lvxl 6057 // CHECK-LE: @llvm.ppc.altivec.lvsl 6058 // CHECK-LE: store <8 x i16> zeroinitializer 6059 // CHECK-LE: @llvm.ppc.altivec.vperm 6060 6061 res_vus = vec_lvlxl(0, &vus); 6062 // CHECK: @llvm.ppc.altivec.lvxl 6063 // CHECK: @llvm.ppc.altivec.lvsl 6064 // CHECK: store <8 x i16> zeroinitializer 6065 // CHECK: @llvm.ppc.altivec.vperm 6066 // CHECK-LE: @llvm.ppc.altivec.lvxl 6067 // CHECK-LE: @llvm.ppc.altivec.lvsl 6068 // CHECK-LE: store <8 x i16> zeroinitializer 6069 // CHECK-LE: @llvm.ppc.altivec.vperm 6070 6071 res_vbs = vec_lvlxl(0, &vbs); 6072 // CHECK: @llvm.ppc.altivec.lvxl 6073 // CHECK: store <8 x i16> zeroinitializer 6074 // CHECK: @llvm.ppc.altivec.lvsl 6075 // CHECK: @llvm.ppc.altivec.vperm 6076 // CHECK-LE: @llvm.ppc.altivec.lvxl 6077 // CHECK-LE: store <8 x i16> zeroinitializer 6078 // CHECK-LE: @llvm.ppc.altivec.lvsl 6079 // CHECK-LE: @llvm.ppc.altivec.vperm 6080 6081 res_vp = vec_lvlxl(0, &vp); 6082 // CHECK: @llvm.ppc.altivec.lvxl 6083 // CHECK: store <8 x i16> zeroinitializer 6084 // CHECK: @llvm.ppc.altivec.lvsl 6085 // CHECK: @llvm.ppc.altivec.vperm 6086 // CHECK-LE: @llvm.ppc.altivec.lvxl 6087 // CHECK-LE: store <8 x i16> zeroinitializer 6088 // CHECK-LE: @llvm.ppc.altivec.lvsl 6089 // CHECK-LE: @llvm.ppc.altivec.vperm 6090 6091 res_vi = vec_lvlxl(0, ¶m_i); 6092 // CHECK: @llvm.ppc.altivec.lvxl 6093 // CHECK: @llvm.ppc.altivec.lvsl 6094 // CHECK: store <4 x i32> zeroinitializer 6095 // CHECK: @llvm.ppc.altivec.vperm 6096 // CHECK-LE: @llvm.ppc.altivec.lvxl 6097 // CHECK-LE: @llvm.ppc.altivec.lvsl 6098 // CHECK-LE: store <4 x i32> zeroinitializer 6099 // CHECK-LE: @llvm.ppc.altivec.vperm 6100 6101 res_vi = vec_lvlxl(0, &vi); 6102 // CHECK: @llvm.ppc.altivec.lvxl 6103 // CHECK: @llvm.ppc.altivec.lvsl 6104 // CHECK: store <4 x i32> zeroinitializer 6105 // CHECK: @llvm.ppc.altivec.vperm 6106 // CHECK-LE: @llvm.ppc.altivec.lvxl 6107 // CHECK-LE: @llvm.ppc.altivec.lvsl 6108 // CHECK-LE: store <4 x i32> zeroinitializer 6109 // CHECK-LE: @llvm.ppc.altivec.vperm 6110 6111 res_vui = vec_lvlxl(0, ¶m_ui); 6112 // CHECK: @llvm.ppc.altivec.lvxl 6113 // CHECK: @llvm.ppc.altivec.lvsl 6114 // CHECK: store <4 x i32> zeroinitializer 6115 // CHECK: @llvm.ppc.altivec.vperm 6116 // CHECK-LE: @llvm.ppc.altivec.lvxl 6117 // CHECK-LE: @llvm.ppc.altivec.lvsl 6118 // CHECK-LE: store <4 x i32> zeroinitializer 6119 // CHECK-LE: @llvm.ppc.altivec.vperm 6120 6121 res_vui = vec_lvlxl(0, &vui); 6122 // CHECK: @llvm.ppc.altivec.lvxl 6123 // CHECK: @llvm.ppc.altivec.lvsl 6124 // CHECK: store <4 x i32> zeroinitializer 6125 // CHECK: @llvm.ppc.altivec.vperm 6126 // CHECK-LE: @llvm.ppc.altivec.lvxl 6127 // CHECK-LE: @llvm.ppc.altivec.lvsl 6128 // CHECK-LE: store <4 x i32> zeroinitializer 6129 // CHECK-LE: @llvm.ppc.altivec.vperm 6130 6131 res_vbi = vec_lvlxl(0, &vbi); 6132 // CHECK: @llvm.ppc.altivec.lvxl 6133 // CHECK: store <4 x i32> zeroinitializer 6134 // CHECK: @llvm.ppc.altivec.lvsl 6135 // CHECK: @llvm.ppc.altivec.vperm 6136 // CHECK-LE: @llvm.ppc.altivec.lvxl 6137 // CHECK-LE: store <4 x i32> zeroinitializer 6138 // CHECK-LE: @llvm.ppc.altivec.lvsl 6139 // CHECK-LE: @llvm.ppc.altivec.vperm 6140 6141 res_vf = vec_lvlxl(0, &vf); 6142 // CHECK: @llvm.ppc.altivec.lvxl 6143 // CHECK: @llvm.ppc.altivec.lvsl 6144 // CHECK: store <4 x float> zeroinitializer 6145 // CHECK: @llvm.ppc.altivec.vperm 6146 // CHECK-LE: @llvm.ppc.altivec.lvxl 6147 // CHECK-LE: @llvm.ppc.altivec.lvsl 6148 // CHECK-LE: store <4 x float> zeroinitializer 6149 // CHECK-LE: @llvm.ppc.altivec.vperm 6150 6151 /* vec_lvrx */ 6152 res_vsc = vec_lvrx(0, ¶m_sc); 6153 // CHECK: @llvm.ppc.altivec.lvx 6154 // CHECK: @llvm.ppc.altivec.lvsl 6155 // CHECK: store <16 x i8> zeroinitializer 6156 // CHECK: @llvm.ppc.altivec.vperm 6157 // CHECK-LE: @llvm.ppc.altivec.lvx 6158 // CHECK-LE: @llvm.ppc.altivec.lvsl 6159 // CHECK-LE: store <16 x i8> zeroinitializer 6160 // CHECK-LE: @llvm.ppc.altivec.vperm 6161 6162 res_vsc = vec_lvrx(0, &vsc); 6163 // CHECK: @llvm.ppc.altivec.lvx 6164 // CHECK: @llvm.ppc.altivec.lvsl 6165 // CHECK: store <16 x i8> zeroinitializer 6166 // CHECK: @llvm.ppc.altivec.vperm 6167 // CHECK-LE: @llvm.ppc.altivec.lvx 6168 // CHECK-LE: @llvm.ppc.altivec.lvsl 6169 // CHECK-LE: store <16 x i8> zeroinitializer 6170 // CHECK-LE: @llvm.ppc.altivec.vperm 6171 6172 res_vuc = vec_lvrx(0, ¶m_uc); 6173 // CHECK: @llvm.ppc.altivec.lvx 6174 // CHECK: @llvm.ppc.altivec.lvsl 6175 // CHECK: store <16 x i8> zeroinitializer 6176 // CHECK: @llvm.ppc.altivec.vperm 6177 // CHECK-LE: @llvm.ppc.altivec.lvx 6178 // CHECK-LE: @llvm.ppc.altivec.lvsl 6179 // CHECK-LE: store <16 x i8> zeroinitializer 6180 // CHECK-LE: @llvm.ppc.altivec.vperm 6181 6182 res_vuc = vec_lvrx(0, &vuc); 6183 // CHECK: @llvm.ppc.altivec.lvx 6184 // CHECK: @llvm.ppc.altivec.lvsl 6185 // CHECK: store <16 x i8> zeroinitializer 6186 // CHECK: @llvm.ppc.altivec.vperm 6187 // CHECK-LE: @llvm.ppc.altivec.lvx 6188 // CHECK-LE: @llvm.ppc.altivec.lvsl 6189 // CHECK-LE: store <16 x i8> zeroinitializer 6190 // CHECK-LE: @llvm.ppc.altivec.vperm 6191 6192 res_vbc = vec_lvrx(0, &vbc); 6193 // CHECK: store <16 x i8> zeroinitializer 6194 // CHECK: @llvm.ppc.altivec.lvx 6195 // CHECK: @llvm.ppc.altivec.lvsl 6196 // CHECK: @llvm.ppc.altivec.vperm 6197 // CHECK-LE: store <16 x i8> zeroinitializer 6198 // CHECK-LE: @llvm.ppc.altivec.lvx 6199 // CHECK-LE: @llvm.ppc.altivec.lvsl 6200 // CHECK-LE: @llvm.ppc.altivec.vperm 6201 6202 res_vs = vec_lvrx(0, ¶m_s); 6203 // CHECK: @llvm.ppc.altivec.lvx 6204 // CHECK: @llvm.ppc.altivec.lvsl 6205 // CHECK: store <8 x i16> zeroinitializer 6206 // CHECK: @llvm.ppc.altivec.vperm 6207 // CHECK-LE: @llvm.ppc.altivec.lvx 6208 // CHECK-LE: @llvm.ppc.altivec.lvsl 6209 // CHECK-LE: store <8 x i16> zeroinitializer 6210 // CHECK-LE: @llvm.ppc.altivec.vperm 6211 6212 res_vs = vec_lvrx(0, &vs); 6213 // CHECK: @llvm.ppc.altivec.lvx 6214 // CHECK: @llvm.ppc.altivec.lvsl 6215 // CHECK: store <8 x i16> zeroinitializer 6216 // CHECK: @llvm.ppc.altivec.vperm 6217 // CHECK-LE: @llvm.ppc.altivec.lvx 6218 // CHECK-LE: @llvm.ppc.altivec.lvsl 6219 // CHECK-LE: store <8 x i16> zeroinitializer 6220 // CHECK-LE: @llvm.ppc.altivec.vperm 6221 6222 res_vus = vec_lvrx(0, ¶m_us); 6223 // CHECK: @llvm.ppc.altivec.lvx 6224 // CHECK: @llvm.ppc.altivec.lvsl 6225 // CHECK: store <8 x i16> zeroinitializer 6226 // CHECK: @llvm.ppc.altivec.vperm 6227 // CHECK-LE: @llvm.ppc.altivec.lvx 6228 // CHECK-LE: @llvm.ppc.altivec.lvsl 6229 // CHECK-LE: store <8 x i16> zeroinitializer 6230 // CHECK-LE: @llvm.ppc.altivec.vperm 6231 6232 res_vus = vec_lvrx(0, &vus); 6233 // CHECK: @llvm.ppc.altivec.lvx 6234 // CHECK: @llvm.ppc.altivec.lvsl 6235 // CHECK: store <8 x i16> zeroinitializer 6236 // CHECK: @llvm.ppc.altivec.vperm 6237 // CHECK-LE: @llvm.ppc.altivec.lvx 6238 // CHECK-LE: @llvm.ppc.altivec.lvsl 6239 // CHECK-LE: store <8 x i16> zeroinitializer 6240 // CHECK-LE: @llvm.ppc.altivec.vperm 6241 6242 res_vbs = vec_lvrx(0, &vbs); 6243 // CHECK: store <8 x i16> zeroinitializer 6244 // CHECK: @llvm.ppc.altivec.lvx 6245 // CHECK: @llvm.ppc.altivec.lvsl 6246 // CHECK: @llvm.ppc.altivec.vperm 6247 // CHECK-LE: store <8 x i16> zeroinitializer 6248 // CHECK-LE: @llvm.ppc.altivec.lvx 6249 // CHECK-LE: @llvm.ppc.altivec.lvsl 6250 // CHECK-LE: @llvm.ppc.altivec.vperm 6251 6252 res_vp = vec_lvrx(0, &vp); 6253 // CHECK: store <8 x i16> zeroinitializer 6254 // CHECK: @llvm.ppc.altivec.lvx 6255 // CHECK: @llvm.ppc.altivec.lvsl 6256 // CHECK: @llvm.ppc.altivec.vperm 6257 // CHECK-LE: store <8 x i16> zeroinitializer 6258 // CHECK-LE: @llvm.ppc.altivec.lvx 6259 // CHECK-LE: @llvm.ppc.altivec.lvsl 6260 // CHECK-LE: @llvm.ppc.altivec.vperm 6261 6262 res_vi = vec_lvrx(0, ¶m_i); 6263 // CHECK: @llvm.ppc.altivec.lvx 6264 // CHECK: @llvm.ppc.altivec.lvsl 6265 // CHECK: store <4 x i32> zeroinitializer 6266 // CHECK: @llvm.ppc.altivec.vperm 6267 // CHECK-LE: @llvm.ppc.altivec.lvx 6268 // CHECK-LE: @llvm.ppc.altivec.lvsl 6269 // CHECK-LE: store <4 x i32> zeroinitializer 6270 // CHECK-LE: @llvm.ppc.altivec.vperm 6271 6272 res_vi = vec_lvrx(0, &vi); 6273 // CHECK: @llvm.ppc.altivec.lvx 6274 // CHECK: @llvm.ppc.altivec.lvsl 6275 // CHECK: store <4 x i32> zeroinitializer 6276 // CHECK: @llvm.ppc.altivec.vperm 6277 // CHECK-LE: @llvm.ppc.altivec.lvx 6278 // CHECK-LE: @llvm.ppc.altivec.lvsl 6279 // CHECK-LE: store <4 x i32> zeroinitializer 6280 // CHECK-LE: @llvm.ppc.altivec.vperm 6281 6282 res_vui = vec_lvrx(0, ¶m_ui); 6283 // CHECK: @llvm.ppc.altivec.lvx 6284 // CHECK: @llvm.ppc.altivec.lvsl 6285 // CHECK: store <4 x i32> zeroinitializer 6286 // CHECK: @llvm.ppc.altivec.vperm 6287 // CHECK-LE: @llvm.ppc.altivec.lvx 6288 // CHECK-LE: @llvm.ppc.altivec.lvsl 6289 // CHECK-LE: store <4 x i32> zeroinitializer 6290 // CHECK-LE: @llvm.ppc.altivec.vperm 6291 6292 res_vui = vec_lvrx(0, &vui); 6293 // CHECK: @llvm.ppc.altivec.lvx 6294 // CHECK: @llvm.ppc.altivec.lvsl 6295 // CHECK: store <4 x i32> zeroinitializer 6296 // CHECK: @llvm.ppc.altivec.vperm 6297 // CHECK-LE: @llvm.ppc.altivec.lvx 6298 // CHECK-LE: @llvm.ppc.altivec.lvsl 6299 // CHECK-LE: store <4 x i32> zeroinitializer 6300 // CHECK-LE: @llvm.ppc.altivec.vperm 6301 6302 res_vbi = vec_lvrx(0, &vbi); 6303 // CHECK: store <4 x i32> zeroinitializer 6304 // CHECK: @llvm.ppc.altivec.lvx 6305 // CHECK: @llvm.ppc.altivec.lvsl 6306 // CHECK: @llvm.ppc.altivec.vperm 6307 // CHECK-LE: store <4 x i32> zeroinitializer 6308 // CHECK-LE: @llvm.ppc.altivec.lvx 6309 // CHECK-LE: @llvm.ppc.altivec.lvsl 6310 // CHECK-LE: @llvm.ppc.altivec.vperm 6311 6312 res_vf = vec_lvrx(0, &vf); 6313 // CHECK: @llvm.ppc.altivec.lvx 6314 // CHECK: @llvm.ppc.altivec.lvsl 6315 // CHECK: store <4 x float> zeroinitializer 6316 // CHECK: @llvm.ppc.altivec.vperm 6317 // CHECK-LE: @llvm.ppc.altivec.lvx 6318 // CHECK-LE: @llvm.ppc.altivec.lvsl 6319 // CHECK-LE: store <4 x float> zeroinitializer 6320 // CHECK-LE: @llvm.ppc.altivec.vperm 6321 6322 /* vec_lvrxl */ 6323 res_vsc = vec_lvrxl(0, ¶m_sc); 6324 // CHECK: @llvm.ppc.altivec.lvxl 6325 // CHECK: @llvm.ppc.altivec.lvsl 6326 // CHECK: store <16 x i8> zeroinitializer 6327 // CHECK: @llvm.ppc.altivec.vperm 6328 // CHECK-LE: @llvm.ppc.altivec.lvxl 6329 // CHECK-LE: @llvm.ppc.altivec.lvsl 6330 // CHECK-LE: store <16 x i8> zeroinitializer 6331 // CHECK-LE: @llvm.ppc.altivec.vperm 6332 6333 res_vsc = vec_lvrxl(0, &vsc); 6334 // CHECK: @llvm.ppc.altivec.lvxl 6335 // CHECK: @llvm.ppc.altivec.lvsl 6336 // CHECK: store <16 x i8> zeroinitializer 6337 // CHECK: @llvm.ppc.altivec.vperm 6338 // CHECK-LE: @llvm.ppc.altivec.lvxl 6339 // CHECK-LE: @llvm.ppc.altivec.lvsl 6340 // CHECK-LE: store <16 x i8> zeroinitializer 6341 // CHECK-LE: @llvm.ppc.altivec.vperm 6342 6343 res_vuc = vec_lvrxl(0, ¶m_uc); 6344 // CHECK: @llvm.ppc.altivec.lvxl 6345 // CHECK: @llvm.ppc.altivec.lvsl 6346 // CHECK: store <16 x i8> zeroinitializer 6347 // CHECK: @llvm.ppc.altivec.vperm 6348 // CHECK-LE: @llvm.ppc.altivec.lvxl 6349 // CHECK-LE: @llvm.ppc.altivec.lvsl 6350 // CHECK-LE: store <16 x i8> zeroinitializer 6351 // CHECK-LE: @llvm.ppc.altivec.vperm 6352 6353 res_vuc = vec_lvrxl(0, &vuc); 6354 // CHECK: @llvm.ppc.altivec.lvxl 6355 // CHECK: @llvm.ppc.altivec.lvsl 6356 // CHECK: store <16 x i8> zeroinitializer 6357 // CHECK: @llvm.ppc.altivec.vperm 6358 // CHECK-LE: @llvm.ppc.altivec.lvxl 6359 // CHECK-LE: @llvm.ppc.altivec.lvsl 6360 // CHECK-LE: store <16 x i8> zeroinitializer 6361 // CHECK-LE: @llvm.ppc.altivec.vperm 6362 6363 res_vbc = vec_lvrxl(0, &vbc); 6364 // CHECK: store <16 x i8> zeroinitializer 6365 // CHECK: @llvm.ppc.altivec.lvxl 6366 // CHECK: @llvm.ppc.altivec.lvsl 6367 // CHECK: @llvm.ppc.altivec.vperm 6368 // CHECK-LE: store <16 x i8> zeroinitializer 6369 // CHECK-LE: @llvm.ppc.altivec.lvxl 6370 // CHECK-LE: @llvm.ppc.altivec.lvsl 6371 // CHECK-LE: @llvm.ppc.altivec.vperm 6372 6373 res_vs = vec_lvrxl(0, ¶m_s); 6374 // CHECK: @llvm.ppc.altivec.lvxl 6375 // CHECK: @llvm.ppc.altivec.lvsl 6376 // CHECK: store <8 x i16> zeroinitializer 6377 // CHECK: @llvm.ppc.altivec.vperm 6378 // CHECK-LE: @llvm.ppc.altivec.lvxl 6379 // CHECK-LE: @llvm.ppc.altivec.lvsl 6380 // CHECK-LE: store <8 x i16> zeroinitializer 6381 // CHECK-LE: @llvm.ppc.altivec.vperm 6382 6383 res_vs = vec_lvrxl(0, &vs); 6384 // CHECK: @llvm.ppc.altivec.lvxl 6385 // CHECK: @llvm.ppc.altivec.lvsl 6386 // CHECK: store <8 x i16> zeroinitializer 6387 // CHECK: @llvm.ppc.altivec.vperm 6388 // CHECK-LE: @llvm.ppc.altivec.lvxl 6389 // CHECK-LE: @llvm.ppc.altivec.lvsl 6390 // CHECK-LE: store <8 x i16> zeroinitializer 6391 // CHECK-LE: @llvm.ppc.altivec.vperm 6392 6393 res_vus = vec_lvrxl(0, ¶m_us); 6394 // CHECK: @llvm.ppc.altivec.lvxl 6395 // CHECK: @llvm.ppc.altivec.lvsl 6396 // CHECK: store <8 x i16> zeroinitializer 6397 // CHECK: @llvm.ppc.altivec.vperm 6398 // CHECK-LE: @llvm.ppc.altivec.lvxl 6399 // CHECK-LE: @llvm.ppc.altivec.lvsl 6400 // CHECK-LE: store <8 x i16> zeroinitializer 6401 // CHECK-LE: @llvm.ppc.altivec.vperm 6402 6403 res_vus = vec_lvrxl(0, &vus); 6404 // CHECK: @llvm.ppc.altivec.lvxl 6405 // CHECK: @llvm.ppc.altivec.lvsl 6406 // CHECK: store <8 x i16> zeroinitializer 6407 // CHECK: @llvm.ppc.altivec.vperm 6408 // CHECK-LE: @llvm.ppc.altivec.lvxl 6409 // CHECK-LE: @llvm.ppc.altivec.lvsl 6410 // CHECK-LE: store <8 x i16> zeroinitializer 6411 // CHECK-LE: @llvm.ppc.altivec.vperm 6412 6413 res_vbs = vec_lvrxl(0, &vbs); 6414 // CHECK: store <8 x i16> zeroinitializer 6415 // CHECK: @llvm.ppc.altivec.lvxl 6416 // CHECK: @llvm.ppc.altivec.lvsl 6417 // CHECK: @llvm.ppc.altivec.vperm 6418 // CHECK-LE: store <8 x i16> zeroinitializer 6419 // CHECK-LE: @llvm.ppc.altivec.lvxl 6420 // CHECK-LE: @llvm.ppc.altivec.lvsl 6421 // CHECK-LE: @llvm.ppc.altivec.vperm 6422 6423 res_vp = vec_lvrxl(0, &vp); 6424 // CHECK: store <8 x i16> zeroinitializer 6425 // CHECK: @llvm.ppc.altivec.lvxl 6426 // CHECK: @llvm.ppc.altivec.lvsl 6427 // CHECK: @llvm.ppc.altivec.vperm 6428 // CHECK-LE: store <8 x i16> zeroinitializer 6429 // CHECK-LE: @llvm.ppc.altivec.lvxl 6430 // CHECK-LE: @llvm.ppc.altivec.lvsl 6431 // CHECK-LE: @llvm.ppc.altivec.vperm 6432 6433 res_vi = vec_lvrxl(0, ¶m_i); 6434 // CHECK: @llvm.ppc.altivec.lvxl 6435 // CHECK: @llvm.ppc.altivec.lvsl 6436 // CHECK: store <4 x i32> zeroinitializer 6437 // CHECK: @llvm.ppc.altivec.vperm 6438 // CHECK-LE: @llvm.ppc.altivec.lvxl 6439 // CHECK-LE: @llvm.ppc.altivec.lvsl 6440 // CHECK-LE: store <4 x i32> zeroinitializer 6441 // CHECK-LE: @llvm.ppc.altivec.vperm 6442 6443 res_vi = vec_lvrxl(0, &vi); 6444 // CHECK: @llvm.ppc.altivec.lvxl 6445 // CHECK: @llvm.ppc.altivec.lvsl 6446 // CHECK: store <4 x i32> zeroinitializer 6447 // CHECK: @llvm.ppc.altivec.vperm 6448 // CHECK-LE: @llvm.ppc.altivec.lvxl 6449 // CHECK-LE: @llvm.ppc.altivec.lvsl 6450 // CHECK-LE: store <4 x i32> zeroinitializer 6451 // CHECK-LE: @llvm.ppc.altivec.vperm 6452 6453 res_vui = vec_lvrxl(0, ¶m_ui); 6454 // CHECK: @llvm.ppc.altivec.lvxl 6455 // CHECK: @llvm.ppc.altivec.lvsl 6456 // CHECK: store <4 x i32> zeroinitializer 6457 // CHECK: @llvm.ppc.altivec.vperm 6458 // CHECK-LE: @llvm.ppc.altivec.lvxl 6459 // CHECK-LE: @llvm.ppc.altivec.lvsl 6460 // CHECK-LE: store <4 x i32> zeroinitializer 6461 // CHECK-LE: @llvm.ppc.altivec.vperm 6462 6463 res_vui = vec_lvrxl(0, &vui); 6464 // CHECK: @llvm.ppc.altivec.lvxl 6465 // CHECK: @llvm.ppc.altivec.lvsl 6466 // CHECK: store <4 x i32> zeroinitializer 6467 // CHECK: @llvm.ppc.altivec.vperm 6468 // CHECK-LE: @llvm.ppc.altivec.lvxl 6469 // CHECK-LE: @llvm.ppc.altivec.lvsl 6470 // CHECK-LE: store <4 x i32> zeroinitializer 6471 // CHECK-LE: @llvm.ppc.altivec.vperm 6472 6473 res_vbi = vec_lvrxl(0, &vbi); 6474 // CHECK: store <4 x i32> zeroinitializer 6475 // CHECK: @llvm.ppc.altivec.lvxl 6476 // CHECK: @llvm.ppc.altivec.lvsl 6477 // CHECK: @llvm.ppc.altivec.vperm 6478 // CHECK-LE: store <4 x i32> zeroinitializer 6479 // CHECK-LE: @llvm.ppc.altivec.lvxl 6480 // CHECK-LE: @llvm.ppc.altivec.lvsl 6481 // CHECK-LE: @llvm.ppc.altivec.vperm 6482 6483 res_vf = vec_lvrxl(0, &vf); 6484 // CHECK: @llvm.ppc.altivec.lvxl 6485 // CHECK: @llvm.ppc.altivec.lvsl 6486 // CHECK: store <4 x float> zeroinitializer 6487 // CHECK: @llvm.ppc.altivec.vperm 6488 // CHECK-LE: @llvm.ppc.altivec.lvxl 6489 // CHECK-LE: @llvm.ppc.altivec.lvsl 6490 // CHECK-LE: store <4 x float> zeroinitializer 6491 // CHECK-LE: @llvm.ppc.altivec.vperm 6492 6493 /* vec_stvlx */ 6494 vec_stvlx(vsc, 0, ¶m_sc); 6495 // CHECK: @llvm.ppc.altivec.lvx 6496 // CHECK: @llvm.ppc.altivec.lvsl 6497 // CHECK: store <16 x i8> zeroinitializer 6498 // CHECK: @llvm.ppc.altivec.vperm 6499 // CHECK: @llvm.ppc.altivec.lvsr 6500 // CHECK: @llvm.ppc.altivec.vperm 6501 // CHECK: @llvm.ppc.altivec.stvx 6502 // CHECK-LE: @llvm.ppc.altivec.lvx 6503 // CHECK-LE: @llvm.ppc.altivec.lvsl 6504 // CHECK-LE: store <16 x i8> zeroinitializer 6505 // CHECK-LE: @llvm.ppc.altivec.vperm 6506 // CHECK-LE: @llvm.ppc.altivec.lvsr 6507 // CHECK-LE: @llvm.ppc.altivec.vperm 6508 // CHECK-LE: @llvm.ppc.altivec.stvx 6509 6510 vec_stvlx(vsc, 0, &vsc); 6511 // CHECK: @llvm.ppc.altivec.lvx 6512 // CHECK: @llvm.ppc.altivec.lvsl 6513 // CHECK: store <16 x i8> zeroinitializer 6514 // CHECK: @llvm.ppc.altivec.vperm 6515 // CHECK: @llvm.ppc.altivec.lvsr 6516 // CHECK: @llvm.ppc.altivec.vperm 6517 // CHECK: @llvm.ppc.altivec.stvx 6518 // CHECK-LE: @llvm.ppc.altivec.lvx 6519 // CHECK-LE: @llvm.ppc.altivec.lvsl 6520 // CHECK-LE: store <16 x i8> zeroinitializer 6521 // CHECK-LE: @llvm.ppc.altivec.vperm 6522 // CHECK-LE: @llvm.ppc.altivec.lvsr 6523 // CHECK-LE: @llvm.ppc.altivec.vperm 6524 // CHECK-LE: @llvm.ppc.altivec.stvx 6525 6526 vec_stvlx(vuc, 0, ¶m_uc); 6527 // CHECK: @llvm.ppc.altivec.lvx 6528 // CHECK: @llvm.ppc.altivec.lvsl 6529 // CHECK: store <16 x i8> zeroinitializer 6530 // CHECK: @llvm.ppc.altivec.vperm 6531 // CHECK: @llvm.ppc.altivec.lvsr 6532 // CHECK: @llvm.ppc.altivec.vperm 6533 // CHECK: @llvm.ppc.altivec.stvx 6534 // CHECK-LE: @llvm.ppc.altivec.lvx 6535 // CHECK-LE: @llvm.ppc.altivec.lvsl 6536 // CHECK-LE: store <16 x i8> zeroinitializer 6537 // CHECK-LE: @llvm.ppc.altivec.vperm 6538 // CHECK-LE: @llvm.ppc.altivec.lvsr 6539 // CHECK-LE: @llvm.ppc.altivec.vperm 6540 // CHECK-LE: @llvm.ppc.altivec.stvx 6541 6542 vec_stvlx(vuc, 0, &vuc); 6543 // CHECK: @llvm.ppc.altivec.lvx 6544 // CHECK: @llvm.ppc.altivec.lvsl 6545 // CHECK: store <16 x i8> zeroinitializer 6546 // CHECK: @llvm.ppc.altivec.vperm 6547 // CHECK: @llvm.ppc.altivec.lvsr 6548 // CHECK: @llvm.ppc.altivec.vperm 6549 // CHECK: @llvm.ppc.altivec.stvx 6550 // CHECK-LE: @llvm.ppc.altivec.lvx 6551 // CHECK-LE: @llvm.ppc.altivec.lvsl 6552 // CHECK-LE: store <16 x i8> zeroinitializer 6553 // CHECK-LE: @llvm.ppc.altivec.vperm 6554 // CHECK-LE: @llvm.ppc.altivec.lvsr 6555 // CHECK-LE: @llvm.ppc.altivec.vperm 6556 // CHECK-LE: @llvm.ppc.altivec.stvx 6557 6558 vec_stvlx(vbc, 0, &vbc); 6559 // CHECK: store <16 x i8> zeroinitializer 6560 // CHECK: @llvm.ppc.altivec.lvx 6561 // CHECK: @llvm.ppc.altivec.lvsl 6562 // CHECK: @llvm.ppc.altivec.vperm 6563 // CHECK: @llvm.ppc.altivec.lvsr 6564 // CHECK: @llvm.ppc.altivec.vperm 6565 // CHECK: @llvm.ppc.altivec.stvx 6566 // CHECK-LE: store <16 x i8> zeroinitializer 6567 // CHECK-LE: @llvm.ppc.altivec.lvx 6568 // CHECK-LE: @llvm.ppc.altivec.lvsl 6569 // CHECK-LE: @llvm.ppc.altivec.vperm 6570 // CHECK-LE: @llvm.ppc.altivec.lvsr 6571 // CHECK-LE: @llvm.ppc.altivec.vperm 6572 // CHECK-LE: @llvm.ppc.altivec.stvx 6573 6574 vec_stvlx(vs, 0, ¶m_s); 6575 // CHECK: @llvm.ppc.altivec.lvx 6576 // CHECK: @llvm.ppc.altivec.lvsl 6577 // CHECK: store <8 x i16> zeroinitializer 6578 // CHECK: @llvm.ppc.altivec.vperm 6579 // CHECK: @llvm.ppc.altivec.lvsr 6580 // CHECK: @llvm.ppc.altivec.vperm 6581 // CHECK: @llvm.ppc.altivec.stvx 6582 // CHECK-LE: @llvm.ppc.altivec.lvx 6583 // CHECK-LE: @llvm.ppc.altivec.lvsl 6584 // CHECK-LE: store <8 x i16> zeroinitializer 6585 // CHECK-LE: @llvm.ppc.altivec.vperm 6586 // CHECK-LE: @llvm.ppc.altivec.lvsr 6587 // CHECK-LE: @llvm.ppc.altivec.vperm 6588 // CHECK-LE: @llvm.ppc.altivec.stvx 6589 6590 vec_stvlx(vs, 0, &vs); 6591 // CHECK: @llvm.ppc.altivec.lvx 6592 // CHECK: @llvm.ppc.altivec.lvsl 6593 // CHECK: store <8 x i16> zeroinitializer 6594 // CHECK: @llvm.ppc.altivec.vperm 6595 // CHECK: @llvm.ppc.altivec.lvsr 6596 // CHECK: @llvm.ppc.altivec.vperm 6597 // CHECK: @llvm.ppc.altivec.stvx 6598 // CHECK-LE: @llvm.ppc.altivec.lvx 6599 // CHECK-LE: @llvm.ppc.altivec.lvsl 6600 // CHECK-LE: store <8 x i16> zeroinitializer 6601 // CHECK-LE: @llvm.ppc.altivec.vperm 6602 // CHECK-LE: @llvm.ppc.altivec.lvsr 6603 // CHECK-LE: @llvm.ppc.altivec.vperm 6604 // CHECK-LE: @llvm.ppc.altivec.stvx 6605 6606 vec_stvlx(vus, 0, ¶m_us); 6607 // CHECK: @llvm.ppc.altivec.lvx 6608 // CHECK: @llvm.ppc.altivec.lvsl 6609 // CHECK: store <8 x i16> zeroinitializer 6610 // CHECK: @llvm.ppc.altivec.vperm 6611 // CHECK: @llvm.ppc.altivec.lvsr 6612 // CHECK: @llvm.ppc.altivec.vperm 6613 // CHECK: @llvm.ppc.altivec.stvx 6614 // CHECK-LE: @llvm.ppc.altivec.lvx 6615 // CHECK-LE: @llvm.ppc.altivec.lvsl 6616 // CHECK-LE: store <8 x i16> zeroinitializer 6617 // CHECK-LE: @llvm.ppc.altivec.vperm 6618 // CHECK-LE: @llvm.ppc.altivec.lvsr 6619 // CHECK-LE: @llvm.ppc.altivec.vperm 6620 // CHECK-LE: @llvm.ppc.altivec.stvx 6621 6622 vec_stvlx(vus, 0, &vus); 6623 // CHECK: @llvm.ppc.altivec.lvx 6624 // CHECK: @llvm.ppc.altivec.lvsl 6625 // CHECK: store <8 x i16> zeroinitializer 6626 // CHECK: @llvm.ppc.altivec.vperm 6627 // CHECK: @llvm.ppc.altivec.lvsr 6628 // CHECK: @llvm.ppc.altivec.vperm 6629 // CHECK: @llvm.ppc.altivec.stvx 6630 // CHECK-LE: @llvm.ppc.altivec.lvx 6631 // CHECK-LE: @llvm.ppc.altivec.lvsl 6632 // CHECK-LE: store <8 x i16> zeroinitializer 6633 // CHECK-LE: @llvm.ppc.altivec.vperm 6634 // CHECK-LE: @llvm.ppc.altivec.lvsr 6635 // CHECK-LE: @llvm.ppc.altivec.vperm 6636 // CHECK-LE: @llvm.ppc.altivec.stvx 6637 6638 vec_stvlx(vbs, 0, &vbs); 6639 // CHECK: store <8 x i16> zeroinitializer 6640 // CHECK: @llvm.ppc.altivec.lvx 6641 // CHECK: @llvm.ppc.altivec.lvsl 6642 // CHECK: @llvm.ppc.altivec.vperm 6643 // CHECK: @llvm.ppc.altivec.lvsr 6644 // CHECK: @llvm.ppc.altivec.vperm 6645 // CHECK: @llvm.ppc.altivec.stvx 6646 // CHECK-LE: store <8 x i16> zeroinitializer 6647 // CHECK-LE: @llvm.ppc.altivec.lvx 6648 // CHECK-LE: @llvm.ppc.altivec.lvsl 6649 // CHECK-LE: @llvm.ppc.altivec.vperm 6650 // CHECK-LE: @llvm.ppc.altivec.lvsr 6651 // CHECK-LE: @llvm.ppc.altivec.vperm 6652 // CHECK-LE: @llvm.ppc.altivec.stvx 6653 6654 vec_stvlx(vp, 0, &vp); 6655 // CHECK: store <8 x i16> zeroinitializer 6656 // CHECK: @llvm.ppc.altivec.lvx 6657 // CHECK: @llvm.ppc.altivec.lvsl 6658 // CHECK: @llvm.ppc.altivec.vperm 6659 // CHECK: @llvm.ppc.altivec.lvsr 6660 // CHECK: @llvm.ppc.altivec.vperm 6661 // CHECK: @llvm.ppc.altivec.stvx 6662 // CHECK-LE: store <8 x i16> zeroinitializer 6663 // CHECK-LE: @llvm.ppc.altivec.lvx 6664 // CHECK-LE: @llvm.ppc.altivec.lvsl 6665 // CHECK-LE: @llvm.ppc.altivec.vperm 6666 // CHECK-LE: @llvm.ppc.altivec.lvsr 6667 // CHECK-LE: @llvm.ppc.altivec.vperm 6668 // CHECK-LE: @llvm.ppc.altivec.stvx 6669 6670 vec_stvlx(vi, 0, ¶m_i); 6671 // CHECK: @llvm.ppc.altivec.lvx 6672 // CHECK: @llvm.ppc.altivec.lvsl 6673 // CHECK: store <4 x i32> zeroinitializer 6674 // CHECK: @llvm.ppc.altivec.vperm 6675 // CHECK: @llvm.ppc.altivec.lvsr 6676 // CHECK: @llvm.ppc.altivec.vperm 6677 // CHECK: @llvm.ppc.altivec.stvx 6678 // CHECK-LE: @llvm.ppc.altivec.lvx 6679 // CHECK-LE: @llvm.ppc.altivec.lvsl 6680 // CHECK-LE: store <4 x i32> zeroinitializer 6681 // CHECK-LE: @llvm.ppc.altivec.vperm 6682 // CHECK-LE: @llvm.ppc.altivec.lvsr 6683 // CHECK-LE: @llvm.ppc.altivec.vperm 6684 // CHECK-LE: @llvm.ppc.altivec.stvx 6685 6686 vec_stvlx(vi, 0, &vi); 6687 // CHECK: @llvm.ppc.altivec.lvx 6688 // CHECK: @llvm.ppc.altivec.lvsl 6689 // CHECK: store <4 x i32> zeroinitializer 6690 // CHECK: @llvm.ppc.altivec.vperm 6691 // CHECK: @llvm.ppc.altivec.lvsr 6692 // CHECK: @llvm.ppc.altivec.vperm 6693 // CHECK: @llvm.ppc.altivec.stvx 6694 // CHECK-LE: @llvm.ppc.altivec.lvx 6695 // CHECK-LE: @llvm.ppc.altivec.lvsl 6696 // CHECK-LE: store <4 x i32> zeroinitializer 6697 // CHECK-LE: @llvm.ppc.altivec.vperm 6698 // CHECK-LE: @llvm.ppc.altivec.lvsr 6699 // CHECK-LE: @llvm.ppc.altivec.vperm 6700 // CHECK-LE: @llvm.ppc.altivec.stvx 6701 6702 vec_stvlx(vui, 0, ¶m_ui); 6703 // CHECK: @llvm.ppc.altivec.lvx 6704 // CHECK: @llvm.ppc.altivec.lvsl 6705 // CHECK: store <4 x i32> zeroinitializer 6706 // CHECK: @llvm.ppc.altivec.vperm 6707 // CHECK: @llvm.ppc.altivec.lvsr 6708 // CHECK: @llvm.ppc.altivec.vperm 6709 // CHECK: @llvm.ppc.altivec.stvx 6710 // CHECK-LE: @llvm.ppc.altivec.lvx 6711 // CHECK-LE: @llvm.ppc.altivec.lvsl 6712 // CHECK-LE: store <4 x i32> zeroinitializer 6713 // CHECK-LE: @llvm.ppc.altivec.vperm 6714 // CHECK-LE: @llvm.ppc.altivec.lvsr 6715 // CHECK-LE: @llvm.ppc.altivec.vperm 6716 // CHECK-LE: @llvm.ppc.altivec.stvx 6717 6718 vec_stvlx(vui, 0, &vui); 6719 // CHECK: @llvm.ppc.altivec.lvx 6720 // CHECK: @llvm.ppc.altivec.lvsl 6721 // CHECK: store <4 x i32> zeroinitializer 6722 // CHECK: @llvm.ppc.altivec.vperm 6723 // CHECK: @llvm.ppc.altivec.lvsr 6724 // CHECK: @llvm.ppc.altivec.vperm 6725 // CHECK: @llvm.ppc.altivec.stvx 6726 // CHECK-LE: @llvm.ppc.altivec.lvx 6727 // CHECK-LE: @llvm.ppc.altivec.lvsl 6728 // CHECK-LE: store <4 x i32> zeroinitializer 6729 // CHECK-LE: @llvm.ppc.altivec.vperm 6730 // CHECK-LE: @llvm.ppc.altivec.lvsr 6731 // CHECK-LE: @llvm.ppc.altivec.vperm 6732 // CHECK-LE: @llvm.ppc.altivec.stvx 6733 6734 vec_stvlx(vbi, 0, &vbi); 6735 // CHECK: store <4 x i32> zeroinitializer 6736 // CHECK: @llvm.ppc.altivec.lvx 6737 // CHECK: @llvm.ppc.altivec.lvsl 6738 // CHECK: @llvm.ppc.altivec.vperm 6739 // CHECK: @llvm.ppc.altivec.lvsr 6740 // CHECK: @llvm.ppc.altivec.vperm 6741 // CHECK: @llvm.ppc.altivec.stvx 6742 // CHECK-LE: store <4 x i32> zeroinitializer 6743 // CHECK-LE: @llvm.ppc.altivec.lvx 6744 // CHECK-LE: @llvm.ppc.altivec.lvsl 6745 // CHECK-LE: @llvm.ppc.altivec.vperm 6746 // CHECK-LE: @llvm.ppc.altivec.lvsr 6747 // CHECK-LE: @llvm.ppc.altivec.vperm 6748 // CHECK-LE: @llvm.ppc.altivec.stvx 6749 6750 vec_stvlx(vf, 0, &vf); 6751 // CHECK: @llvm.ppc.altivec.lvx 6752 // CHECK: @llvm.ppc.altivec.lvsl 6753 // CHECK: store <4 x float> zeroinitializer 6754 // CHECK: @llvm.ppc.altivec.vperm 6755 // CHECK: @llvm.ppc.altivec.lvsr 6756 // CHECK: @llvm.ppc.altivec.vperm 6757 // CHECK: @llvm.ppc.altivec.stvx 6758 // CHECK-LE: @llvm.ppc.altivec.lvx 6759 // CHECK-LE: @llvm.ppc.altivec.lvsl 6760 // CHECK-LE: store <4 x float> zeroinitializer 6761 // CHECK-LE: @llvm.ppc.altivec.vperm 6762 // CHECK-LE: @llvm.ppc.altivec.lvsr 6763 // CHECK-LE: @llvm.ppc.altivec.vperm 6764 // CHECK-LE: @llvm.ppc.altivec.stvx 6765 6766 /* vec_stvlxl */ 6767 vec_stvlxl(vsc, 0, ¶m_sc); 6768 // CHECK: @llvm.ppc.altivec.lvx 6769 // CHECK: @llvm.ppc.altivec.lvsl 6770 // CHECK: store <16 x i8> zeroinitializer 6771 // CHECK: @llvm.ppc.altivec.vperm 6772 // CHECK: @llvm.ppc.altivec.lvsr 6773 // CHECK: @llvm.ppc.altivec.vperm 6774 // CHECK: @llvm.ppc.altivec.stvxl 6775 // CHECK-LE: @llvm.ppc.altivec.lvx 6776 // CHECK-LE: @llvm.ppc.altivec.lvsl 6777 // CHECK-LE: store <16 x i8> zeroinitializer 6778 // CHECK-LE: @llvm.ppc.altivec.vperm 6779 // CHECK-LE: @llvm.ppc.altivec.lvsr 6780 // CHECK-LE: @llvm.ppc.altivec.vperm 6781 // CHECK-LE: @llvm.ppc.altivec.stvxl 6782 6783 vec_stvlxl(vsc, 0, &vsc); 6784 // CHECK: @llvm.ppc.altivec.lvx 6785 // CHECK: @llvm.ppc.altivec.lvsl 6786 // CHECK: store <16 x i8> zeroinitializer 6787 // CHECK: @llvm.ppc.altivec.vperm 6788 // CHECK: @llvm.ppc.altivec.lvsr 6789 // CHECK: @llvm.ppc.altivec.vperm 6790 // CHECK: @llvm.ppc.altivec.stvxl 6791 // CHECK-LE: @llvm.ppc.altivec.lvx 6792 // CHECK-LE: @llvm.ppc.altivec.lvsl 6793 // CHECK-LE: store <16 x i8> zeroinitializer 6794 // CHECK-LE: @llvm.ppc.altivec.vperm 6795 // CHECK-LE: @llvm.ppc.altivec.lvsr 6796 // CHECK-LE: @llvm.ppc.altivec.vperm 6797 // CHECK-LE: @llvm.ppc.altivec.stvxl 6798 6799 vec_stvlxl(vuc, 0, ¶m_uc); 6800 // CHECK: @llvm.ppc.altivec.lvx 6801 // CHECK: @llvm.ppc.altivec.lvsl 6802 // CHECK: store <16 x i8> zeroinitializer 6803 // CHECK: @llvm.ppc.altivec.vperm 6804 // CHECK: @llvm.ppc.altivec.lvsr 6805 // CHECK: @llvm.ppc.altivec.vperm 6806 // CHECK: @llvm.ppc.altivec.stvxl 6807 // CHECK-LE: @llvm.ppc.altivec.lvx 6808 // CHECK-LE: @llvm.ppc.altivec.lvsl 6809 // CHECK-LE: store <16 x i8> zeroinitializer 6810 // CHECK-LE: @llvm.ppc.altivec.vperm 6811 // CHECK-LE: @llvm.ppc.altivec.lvsr 6812 // CHECK-LE: @llvm.ppc.altivec.vperm 6813 // CHECK-LE: @llvm.ppc.altivec.stvxl 6814 6815 vec_stvlxl(vuc, 0, &vuc); 6816 // CHECK: @llvm.ppc.altivec.lvx 6817 // CHECK: @llvm.ppc.altivec.lvsl 6818 // CHECK: store <16 x i8> zeroinitializer 6819 // CHECK: @llvm.ppc.altivec.vperm 6820 // CHECK: @llvm.ppc.altivec.lvsr 6821 // CHECK: @llvm.ppc.altivec.vperm 6822 // CHECK: @llvm.ppc.altivec.stvxl 6823 // CHECK-LE: @llvm.ppc.altivec.lvx 6824 // CHECK-LE: @llvm.ppc.altivec.lvsl 6825 // CHECK-LE: store <16 x i8> zeroinitializer 6826 // CHECK-LE: @llvm.ppc.altivec.vperm 6827 // CHECK-LE: @llvm.ppc.altivec.lvsr 6828 // CHECK-LE: @llvm.ppc.altivec.vperm 6829 // CHECK-LE: @llvm.ppc.altivec.stvxl 6830 6831 vec_stvlxl(vbc, 0, &vbc); 6832 // CHECK: store <16 x i8> zeroinitializer 6833 // CHECK: @llvm.ppc.altivec.lvx 6834 // CHECK: @llvm.ppc.altivec.lvsl 6835 // CHECK: @llvm.ppc.altivec.vperm 6836 // CHECK: @llvm.ppc.altivec.lvsr 6837 // CHECK: @llvm.ppc.altivec.vperm 6838 // CHECK: @llvm.ppc.altivec.stvxl 6839 // CHECK-LE: store <16 x i8> zeroinitializer 6840 // CHECK-LE: @llvm.ppc.altivec.lvx 6841 // CHECK-LE: @llvm.ppc.altivec.lvsl 6842 // CHECK-LE: @llvm.ppc.altivec.vperm 6843 // CHECK-LE: @llvm.ppc.altivec.lvsr 6844 // CHECK-LE: @llvm.ppc.altivec.vperm 6845 // CHECK-LE: @llvm.ppc.altivec.stvxl 6846 6847 vec_stvlxl(vs, 0, ¶m_s); 6848 // CHECK: @llvm.ppc.altivec.lvx 6849 // CHECK: @llvm.ppc.altivec.lvsl 6850 // CHECK: store <8 x i16> zeroinitializer 6851 // CHECK: @llvm.ppc.altivec.vperm 6852 // CHECK: @llvm.ppc.altivec.lvsr 6853 // CHECK: @llvm.ppc.altivec.vperm 6854 // CHECK: @llvm.ppc.altivec.stvxl 6855 // CHECK-LE: @llvm.ppc.altivec.lvx 6856 // CHECK-LE: @llvm.ppc.altivec.lvsl 6857 // CHECK-LE: store <8 x i16> zeroinitializer 6858 // CHECK-LE: @llvm.ppc.altivec.vperm 6859 // CHECK-LE: @llvm.ppc.altivec.lvsr 6860 // CHECK-LE: @llvm.ppc.altivec.vperm 6861 // CHECK-LE: @llvm.ppc.altivec.stvxl 6862 6863 vec_stvlxl(vs, 0, &vs); 6864 // CHECK: @llvm.ppc.altivec.lvx 6865 // CHECK: @llvm.ppc.altivec.lvsl 6866 // CHECK: store <8 x i16> zeroinitializer 6867 // CHECK: @llvm.ppc.altivec.vperm 6868 // CHECK: @llvm.ppc.altivec.lvsr 6869 // CHECK: @llvm.ppc.altivec.vperm 6870 // CHECK: @llvm.ppc.altivec.stvxl 6871 // CHECK-LE: @llvm.ppc.altivec.lvx 6872 // CHECK-LE: @llvm.ppc.altivec.lvsl 6873 // CHECK-LE: store <8 x i16> zeroinitializer 6874 // CHECK-LE: @llvm.ppc.altivec.vperm 6875 // CHECK-LE: @llvm.ppc.altivec.lvsr 6876 // CHECK-LE: @llvm.ppc.altivec.vperm 6877 // CHECK-LE: @llvm.ppc.altivec.stvxl 6878 6879 vec_stvlxl(vus, 0, ¶m_us); 6880 // CHECK: @llvm.ppc.altivec.lvx 6881 // CHECK: @llvm.ppc.altivec.lvsl 6882 // CHECK: store <8 x i16> zeroinitializer 6883 // CHECK: @llvm.ppc.altivec.vperm 6884 // CHECK: @llvm.ppc.altivec.lvsr 6885 // CHECK: @llvm.ppc.altivec.vperm 6886 // CHECK: @llvm.ppc.altivec.stvxl 6887 // CHECK-LE: @llvm.ppc.altivec.lvx 6888 // CHECK-LE: @llvm.ppc.altivec.lvsl 6889 // CHECK-LE: store <8 x i16> zeroinitializer 6890 // CHECK-LE: @llvm.ppc.altivec.vperm 6891 // CHECK-LE: @llvm.ppc.altivec.lvsr 6892 // CHECK-LE: @llvm.ppc.altivec.vperm 6893 // CHECK-LE: @llvm.ppc.altivec.stvxl 6894 6895 vec_stvlxl(vus, 0, &vus); 6896 // CHECK: @llvm.ppc.altivec.lvx 6897 // CHECK: @llvm.ppc.altivec.lvsl 6898 // CHECK: store <8 x i16> zeroinitializer 6899 // CHECK: @llvm.ppc.altivec.vperm 6900 // CHECK: @llvm.ppc.altivec.lvsr 6901 // CHECK: @llvm.ppc.altivec.vperm 6902 // CHECK: @llvm.ppc.altivec.stvxl 6903 // CHECK-LE: @llvm.ppc.altivec.lvx 6904 // CHECK-LE: @llvm.ppc.altivec.lvsl 6905 // CHECK-LE: store <8 x i16> zeroinitializer 6906 // CHECK-LE: @llvm.ppc.altivec.vperm 6907 // CHECK-LE: @llvm.ppc.altivec.lvsr 6908 // CHECK-LE: @llvm.ppc.altivec.vperm 6909 // CHECK-LE: @llvm.ppc.altivec.stvxl 6910 6911 vec_stvlxl(vbs, 0, &vbs); 6912 // CHECK: store <8 x i16> zeroinitializer 6913 // CHECK: @llvm.ppc.altivec.lvx 6914 // CHECK: @llvm.ppc.altivec.lvsl 6915 // CHECK: @llvm.ppc.altivec.vperm 6916 // CHECK: @llvm.ppc.altivec.lvsr 6917 // CHECK: @llvm.ppc.altivec.vperm 6918 // CHECK: @llvm.ppc.altivec.stvxl 6919 // CHECK-LE: store <8 x i16> zeroinitializer 6920 // CHECK-LE: @llvm.ppc.altivec.lvx 6921 // CHECK-LE: @llvm.ppc.altivec.lvsl 6922 // CHECK-LE: @llvm.ppc.altivec.vperm 6923 // CHECK-LE: @llvm.ppc.altivec.lvsr 6924 // CHECK-LE: @llvm.ppc.altivec.vperm 6925 // CHECK-LE: @llvm.ppc.altivec.stvxl 6926 6927 vec_stvlxl(vp, 0, &vp); 6928 // CHECK: store <8 x i16> zeroinitializer 6929 // CHECK: @llvm.ppc.altivec.lvx 6930 // CHECK: @llvm.ppc.altivec.lvsl 6931 // CHECK: @llvm.ppc.altivec.vperm 6932 // CHECK: @llvm.ppc.altivec.lvsr 6933 // CHECK: @llvm.ppc.altivec.vperm 6934 // CHECK: @llvm.ppc.altivec.stvxl 6935 // CHECK-LE: store <8 x i16> zeroinitializer 6936 // CHECK-LE: @llvm.ppc.altivec.lvx 6937 // CHECK-LE: @llvm.ppc.altivec.lvsl 6938 // CHECK-LE: @llvm.ppc.altivec.vperm 6939 // CHECK-LE: @llvm.ppc.altivec.lvsr 6940 // CHECK-LE: @llvm.ppc.altivec.vperm 6941 // CHECK-LE: @llvm.ppc.altivec.stvxl 6942 6943 vec_stvlxl(vi, 0, ¶m_i); 6944 // CHECK: @llvm.ppc.altivec.lvx 6945 // CHECK: @llvm.ppc.altivec.lvsl 6946 // CHECK: store <4 x i32> zeroinitializer 6947 // CHECK: @llvm.ppc.altivec.vperm 6948 // CHECK: @llvm.ppc.altivec.lvsr 6949 // CHECK: @llvm.ppc.altivec.vperm 6950 // CHECK: @llvm.ppc.altivec.stvxl 6951 // CHECK-LE: @llvm.ppc.altivec.lvx 6952 // CHECK-LE: @llvm.ppc.altivec.lvsl 6953 // CHECK-LE: store <4 x i32> zeroinitializer 6954 // CHECK-LE: @llvm.ppc.altivec.vperm 6955 // CHECK-LE: @llvm.ppc.altivec.lvsr 6956 // CHECK-LE: @llvm.ppc.altivec.vperm 6957 // CHECK-LE: @llvm.ppc.altivec.stvxl 6958 6959 vec_stvlxl(vi, 0, &vi); 6960 // CHECK: @llvm.ppc.altivec.lvx 6961 // CHECK: @llvm.ppc.altivec.lvsl 6962 // CHECK: store <4 x i32> zeroinitializer 6963 // CHECK: @llvm.ppc.altivec.vperm 6964 // CHECK: @llvm.ppc.altivec.lvsr 6965 // CHECK: @llvm.ppc.altivec.vperm 6966 // CHECK: @llvm.ppc.altivec.stvxl 6967 // CHECK-LE: @llvm.ppc.altivec.lvx 6968 // CHECK-LE: @llvm.ppc.altivec.lvsl 6969 // CHECK-LE: store <4 x i32> zeroinitializer 6970 // CHECK-LE: @llvm.ppc.altivec.vperm 6971 // CHECK-LE: @llvm.ppc.altivec.lvsr 6972 // CHECK-LE: @llvm.ppc.altivec.vperm 6973 // CHECK-LE: @llvm.ppc.altivec.stvxl 6974 6975 vec_stvlxl(vui, 0, ¶m_ui); 6976 // CHECK: @llvm.ppc.altivec.lvx 6977 // CHECK: @llvm.ppc.altivec.lvsl 6978 // CHECK: store <4 x i32> zeroinitializer 6979 // CHECK: @llvm.ppc.altivec.vperm 6980 // CHECK: @llvm.ppc.altivec.lvsr 6981 // CHECK: @llvm.ppc.altivec.vperm 6982 // CHECK: @llvm.ppc.altivec.stvxl 6983 // CHECK-LE: @llvm.ppc.altivec.lvx 6984 // CHECK-LE: @llvm.ppc.altivec.lvsl 6985 // CHECK-LE: store <4 x i32> zeroinitializer 6986 // CHECK-LE: @llvm.ppc.altivec.vperm 6987 // CHECK-LE: @llvm.ppc.altivec.lvsr 6988 // CHECK-LE: @llvm.ppc.altivec.vperm 6989 // CHECK-LE: @llvm.ppc.altivec.stvxl 6990 6991 vec_stvlxl(vui, 0, &vui); 6992 // CHECK: @llvm.ppc.altivec.lvx 6993 // CHECK: @llvm.ppc.altivec.lvsl 6994 // CHECK: store <4 x i32> zeroinitializer 6995 // CHECK: @llvm.ppc.altivec.vperm 6996 // CHECK: @llvm.ppc.altivec.lvsr 6997 // CHECK: @llvm.ppc.altivec.vperm 6998 // CHECK: @llvm.ppc.altivec.stvxl 6999 // CHECK-LE: @llvm.ppc.altivec.lvx 7000 // CHECK-LE: @llvm.ppc.altivec.lvsl 7001 // CHECK-LE: store <4 x i32> zeroinitializer 7002 // CHECK-LE: @llvm.ppc.altivec.vperm 7003 // CHECK-LE: @llvm.ppc.altivec.lvsr 7004 // CHECK-LE: @llvm.ppc.altivec.vperm 7005 // CHECK-LE: @llvm.ppc.altivec.stvxl 7006 7007 vec_stvlxl(vbi, 0, &vbi); 7008 // CHECK: store <4 x i32> zeroinitializer 7009 // CHECK: @llvm.ppc.altivec.lvx 7010 // CHECK: @llvm.ppc.altivec.lvsl 7011 // CHECK: @llvm.ppc.altivec.vperm 7012 // CHECK: @llvm.ppc.altivec.lvsr 7013 // CHECK: @llvm.ppc.altivec.vperm 7014 // CHECK: @llvm.ppc.altivec.stvxl 7015 // CHECK-LE: store <4 x i32> zeroinitializer 7016 // CHECK-LE: @llvm.ppc.altivec.lvx 7017 // CHECK-LE: @llvm.ppc.altivec.lvsl 7018 // CHECK-LE: @llvm.ppc.altivec.vperm 7019 // CHECK-LE: @llvm.ppc.altivec.lvsr 7020 // CHECK-LE: @llvm.ppc.altivec.vperm 7021 // CHECK-LE: @llvm.ppc.altivec.stvxl 7022 7023 vec_stvlxl(vf, 0, &vf); 7024 // CHECK: @llvm.ppc.altivec.lvx 7025 // CHECK: @llvm.ppc.altivec.lvsl 7026 // CHECK: store <4 x float> zeroinitializer 7027 // CHECK: @llvm.ppc.altivec.vperm 7028 // CHECK: @llvm.ppc.altivec.lvsr 7029 // CHECK: @llvm.ppc.altivec.vperm 7030 // CHECK: @llvm.ppc.altivec.stvxl 7031 // CHECK-LE: @llvm.ppc.altivec.lvx 7032 // CHECK-LE: @llvm.ppc.altivec.lvsl 7033 // CHECK-LE: store <4 x float> zeroinitializer 7034 // CHECK-LE: @llvm.ppc.altivec.vperm 7035 // CHECK-LE: @llvm.ppc.altivec.lvsr 7036 // CHECK-LE: @llvm.ppc.altivec.vperm 7037 // CHECK-LE: @llvm.ppc.altivec.stvxl 7038 7039 /* vec_stvrx */ 7040 vec_stvrx(vsc, 0, ¶m_sc); 7041 // CHECK: @llvm.ppc.altivec.lvx 7042 // CHECK: @llvm.ppc.altivec.lvsl 7043 // CHECK: store <16 x i8> zeroinitializer 7044 // CHECK: @llvm.ppc.altivec.vperm 7045 // CHECK: @llvm.ppc.altivec.lvsr 7046 // CHECK: @llvm.ppc.altivec.vperm 7047 // CHECK: @llvm.ppc.altivec.stvx 7048 // CHECK-LE: @llvm.ppc.altivec.lvx 7049 // CHECK-LE: @llvm.ppc.altivec.lvsl 7050 // CHECK-LE: store <16 x i8> zeroinitializer 7051 // CHECK-LE: @llvm.ppc.altivec.vperm 7052 // CHECK-LE: @llvm.ppc.altivec.lvsr 7053 // CHECK-LE: @llvm.ppc.altivec.vperm 7054 // CHECK-LE: @llvm.ppc.altivec.stvx 7055 7056 vec_stvrx(vsc, 0, &vsc); 7057 // CHECK: @llvm.ppc.altivec.lvx 7058 // CHECK: @llvm.ppc.altivec.lvsl 7059 // CHECK: store <16 x i8> zeroinitializer 7060 // CHECK: @llvm.ppc.altivec.vperm 7061 // CHECK: @llvm.ppc.altivec.lvsr 7062 // CHECK: @llvm.ppc.altivec.vperm 7063 // CHECK: @llvm.ppc.altivec.stvx 7064 // CHECK-LE: @llvm.ppc.altivec.lvx 7065 // CHECK-LE: @llvm.ppc.altivec.lvsl 7066 // CHECK-LE: store <16 x i8> zeroinitializer 7067 // CHECK-LE: @llvm.ppc.altivec.vperm 7068 // CHECK-LE: @llvm.ppc.altivec.lvsr 7069 // CHECK-LE: @llvm.ppc.altivec.vperm 7070 // CHECK-LE: @llvm.ppc.altivec.stvx 7071 7072 vec_stvrx(vuc, 0, ¶m_uc); 7073 // CHECK: @llvm.ppc.altivec.lvx 7074 // CHECK: @llvm.ppc.altivec.lvsl 7075 // CHECK: store <16 x i8> zeroinitializer 7076 // CHECK: @llvm.ppc.altivec.vperm 7077 // CHECK: @llvm.ppc.altivec.lvsr 7078 // CHECK: @llvm.ppc.altivec.vperm 7079 // CHECK: @llvm.ppc.altivec.stvx 7080 // CHECK-LE: @llvm.ppc.altivec.lvx 7081 // CHECK-LE: @llvm.ppc.altivec.lvsl 7082 // CHECK-LE: store <16 x i8> zeroinitializer 7083 // CHECK-LE: @llvm.ppc.altivec.vperm 7084 // CHECK-LE: @llvm.ppc.altivec.lvsr 7085 // CHECK-LE: @llvm.ppc.altivec.vperm 7086 // CHECK-LE: @llvm.ppc.altivec.stvx 7087 7088 vec_stvrx(vuc, 0, &vuc); 7089 // CHECK: @llvm.ppc.altivec.lvx 7090 // CHECK: @llvm.ppc.altivec.lvsl 7091 // CHECK: store <16 x i8> zeroinitializer 7092 // CHECK: @llvm.ppc.altivec.vperm 7093 // CHECK: @llvm.ppc.altivec.lvsr 7094 // CHECK: @llvm.ppc.altivec.vperm 7095 // CHECK: @llvm.ppc.altivec.stvx 7096 // CHECK-LE: @llvm.ppc.altivec.lvx 7097 // CHECK-LE: @llvm.ppc.altivec.lvsl 7098 // CHECK-LE: store <16 x i8> zeroinitializer 7099 // CHECK-LE: @llvm.ppc.altivec.vperm 7100 // CHECK-LE: @llvm.ppc.altivec.lvsr 7101 // CHECK-LE: @llvm.ppc.altivec.vperm 7102 // CHECK-LE: @llvm.ppc.altivec.stvx 7103 7104 vec_stvrx(vbc, 0, &vbc); 7105 // CHECK: @llvm.ppc.altivec.lvx 7106 // CHECK: store <16 x i8> zeroinitializer 7107 // CHECK: @llvm.ppc.altivec.lvsl 7108 // CHECK: @llvm.ppc.altivec.vperm 7109 // CHECK: @llvm.ppc.altivec.lvsr 7110 // CHECK: @llvm.ppc.altivec.vperm 7111 // CHECK: @llvm.ppc.altivec.stvx 7112 // CHECK-LE: @llvm.ppc.altivec.lvx 7113 // CHECK-LE: store <16 x i8> zeroinitializer 7114 // CHECK-LE: @llvm.ppc.altivec.lvsl 7115 // CHECK-LE: @llvm.ppc.altivec.vperm 7116 // CHECK-LE: @llvm.ppc.altivec.lvsr 7117 // CHECK-LE: @llvm.ppc.altivec.vperm 7118 // CHECK-LE: @llvm.ppc.altivec.stvx 7119 7120 vec_stvrx(vs, 0, ¶m_s); 7121 // CHECK: @llvm.ppc.altivec.lvx 7122 // CHECK: @llvm.ppc.altivec.lvsl 7123 // CHECK: store <8 x i16> zeroinitializer 7124 // CHECK: @llvm.ppc.altivec.vperm 7125 // CHECK: @llvm.ppc.altivec.lvsr 7126 // CHECK: @llvm.ppc.altivec.vperm 7127 // CHECK: @llvm.ppc.altivec.stvx 7128 // CHECK-LE: @llvm.ppc.altivec.lvx 7129 // CHECK-LE: @llvm.ppc.altivec.lvsl 7130 // CHECK-LE: store <8 x i16> zeroinitializer 7131 // CHECK-LE: @llvm.ppc.altivec.vperm 7132 // CHECK-LE: @llvm.ppc.altivec.lvsr 7133 // CHECK-LE: @llvm.ppc.altivec.vperm 7134 // CHECK-LE: @llvm.ppc.altivec.stvx 7135 7136 vec_stvrx(vs, 0, &vs); 7137 // CHECK: @llvm.ppc.altivec.lvx 7138 // CHECK: @llvm.ppc.altivec.lvsl 7139 // CHECK: store <8 x i16> zeroinitializer 7140 // CHECK: @llvm.ppc.altivec.vperm 7141 // CHECK: @llvm.ppc.altivec.lvsr 7142 // CHECK: @llvm.ppc.altivec.vperm 7143 // CHECK: @llvm.ppc.altivec.stvx 7144 // CHECK-LE: @llvm.ppc.altivec.lvx 7145 // CHECK-LE: @llvm.ppc.altivec.lvsl 7146 // CHECK-LE: store <8 x i16> zeroinitializer 7147 // CHECK-LE: @llvm.ppc.altivec.vperm 7148 // CHECK-LE: @llvm.ppc.altivec.lvsr 7149 // CHECK-LE: @llvm.ppc.altivec.vperm 7150 // CHECK-LE: @llvm.ppc.altivec.stvx 7151 7152 vec_stvrx(vus, 0, ¶m_us); 7153 // CHECK: @llvm.ppc.altivec.lvx 7154 // CHECK: @llvm.ppc.altivec.lvsl 7155 // CHECK: store <8 x i16> zeroinitializer 7156 // CHECK: @llvm.ppc.altivec.vperm 7157 // CHECK: @llvm.ppc.altivec.lvsr 7158 // CHECK: @llvm.ppc.altivec.vperm 7159 // CHECK: @llvm.ppc.altivec.stvx 7160 // CHECK-LE: @llvm.ppc.altivec.lvx 7161 // CHECK-LE: @llvm.ppc.altivec.lvsl 7162 // CHECK-LE: store <8 x i16> zeroinitializer 7163 // CHECK-LE: @llvm.ppc.altivec.vperm 7164 // CHECK-LE: @llvm.ppc.altivec.lvsr 7165 // CHECK-LE: @llvm.ppc.altivec.vperm 7166 // CHECK-LE: @llvm.ppc.altivec.stvx 7167 7168 vec_stvrx(vus, 0, &vus); 7169 // CHECK: @llvm.ppc.altivec.lvx 7170 // CHECK: @llvm.ppc.altivec.lvsl 7171 // CHECK: store <8 x i16> zeroinitializer 7172 // CHECK: @llvm.ppc.altivec.vperm 7173 // CHECK: @llvm.ppc.altivec.lvsr 7174 // CHECK: @llvm.ppc.altivec.vperm 7175 // CHECK: @llvm.ppc.altivec.stvx 7176 // CHECK-LE: @llvm.ppc.altivec.lvx 7177 // CHECK-LE: @llvm.ppc.altivec.lvsl 7178 // CHECK-LE: store <8 x i16> zeroinitializer 7179 // CHECK-LE: @llvm.ppc.altivec.vperm 7180 // CHECK-LE: @llvm.ppc.altivec.lvsr 7181 // CHECK-LE: @llvm.ppc.altivec.vperm 7182 // CHECK-LE: @llvm.ppc.altivec.stvx 7183 7184 vec_stvrx(vbs, 0, &vbs); 7185 // CHECK: @llvm.ppc.altivec.lvx 7186 // CHECK: store <8 x i16> zeroinitializer 7187 // CHECK: @llvm.ppc.altivec.lvsl 7188 // CHECK: @llvm.ppc.altivec.vperm 7189 // CHECK: @llvm.ppc.altivec.lvsr 7190 // CHECK: @llvm.ppc.altivec.vperm 7191 // CHECK: @llvm.ppc.altivec.stvx 7192 // CHECK-LE: @llvm.ppc.altivec.lvx 7193 // CHECK-LE: store <8 x i16> zeroinitializer 7194 // CHECK-LE: @llvm.ppc.altivec.lvsl 7195 // CHECK-LE: @llvm.ppc.altivec.vperm 7196 // CHECK-LE: @llvm.ppc.altivec.lvsr 7197 // CHECK-LE: @llvm.ppc.altivec.vperm 7198 // CHECK-LE: @llvm.ppc.altivec.stvx 7199 7200 vec_stvrx(vp, 0, &vp); 7201 // CHECK: @llvm.ppc.altivec.lvx 7202 // CHECK: store <8 x i16> zeroinitializer 7203 // CHECK: @llvm.ppc.altivec.lvsl 7204 // CHECK: @llvm.ppc.altivec.vperm 7205 // CHECK: @llvm.ppc.altivec.lvsr 7206 // CHECK: @llvm.ppc.altivec.vperm 7207 // CHECK: @llvm.ppc.altivec.stvx 7208 // CHECK-LE: @llvm.ppc.altivec.lvx 7209 // CHECK-LE: store <8 x i16> zeroinitializer 7210 // CHECK-LE: @llvm.ppc.altivec.lvsl 7211 // CHECK-LE: @llvm.ppc.altivec.vperm 7212 // CHECK-LE: @llvm.ppc.altivec.lvsr 7213 // CHECK-LE: @llvm.ppc.altivec.vperm 7214 // CHECK-LE: @llvm.ppc.altivec.stvx 7215 7216 vec_stvrx(vi, 0, ¶m_i); 7217 // CHECK: @llvm.ppc.altivec.lvx 7218 // CHECK: @llvm.ppc.altivec.lvsl 7219 // CHECK: store <4 x i32> zeroinitializer 7220 // CHECK: @llvm.ppc.altivec.vperm 7221 // CHECK: @llvm.ppc.altivec.lvsr 7222 // CHECK: @llvm.ppc.altivec.vperm 7223 // CHECK: @llvm.ppc.altivec.stvx 7224 // CHECK-LE: @llvm.ppc.altivec.lvx 7225 // CHECK-LE: @llvm.ppc.altivec.lvsl 7226 // CHECK-LE: store <4 x i32> zeroinitializer 7227 // CHECK-LE: @llvm.ppc.altivec.vperm 7228 // CHECK-LE: @llvm.ppc.altivec.lvsr 7229 // CHECK-LE: @llvm.ppc.altivec.vperm 7230 // CHECK-LE: @llvm.ppc.altivec.stvx 7231 7232 vec_stvrx(vi, 0, &vi); 7233 // CHECK: @llvm.ppc.altivec.lvx 7234 // CHECK: @llvm.ppc.altivec.lvsl 7235 // CHECK: store <4 x i32> zeroinitializer 7236 // CHECK: @llvm.ppc.altivec.vperm 7237 // CHECK: @llvm.ppc.altivec.lvsr 7238 // CHECK: @llvm.ppc.altivec.vperm 7239 // CHECK: @llvm.ppc.altivec.stvx 7240 // CHECK-LE: @llvm.ppc.altivec.lvx 7241 // CHECK-LE: @llvm.ppc.altivec.lvsl 7242 // CHECK-LE: store <4 x i32> zeroinitializer 7243 // CHECK-LE: @llvm.ppc.altivec.vperm 7244 // CHECK-LE: @llvm.ppc.altivec.lvsr 7245 // CHECK-LE: @llvm.ppc.altivec.vperm 7246 // CHECK-LE: @llvm.ppc.altivec.stvx 7247 7248 vec_stvrx(vui, 0, ¶m_ui); 7249 // CHECK: @llvm.ppc.altivec.lvx 7250 // CHECK: @llvm.ppc.altivec.lvsl 7251 // CHECK: store <4 x i32> zeroinitializer 7252 // CHECK: @llvm.ppc.altivec.vperm 7253 // CHECK: @llvm.ppc.altivec.lvsr 7254 // CHECK: @llvm.ppc.altivec.vperm 7255 // CHECK: @llvm.ppc.altivec.stvx 7256 // CHECK-LE: @llvm.ppc.altivec.lvx 7257 // CHECK-LE: @llvm.ppc.altivec.lvsl 7258 // CHECK-LE: store <4 x i32> zeroinitializer 7259 // CHECK-LE: @llvm.ppc.altivec.vperm 7260 // CHECK-LE: @llvm.ppc.altivec.lvsr 7261 // CHECK-LE: @llvm.ppc.altivec.vperm 7262 // CHECK-LE: @llvm.ppc.altivec.stvx 7263 7264 vec_stvrx(vui, 0, &vui); 7265 // CHECK: @llvm.ppc.altivec.lvx 7266 // CHECK: @llvm.ppc.altivec.lvsl 7267 // CHECK: store <4 x i32> zeroinitializer 7268 // CHECK: @llvm.ppc.altivec.vperm 7269 // CHECK: @llvm.ppc.altivec.lvsr 7270 // CHECK: @llvm.ppc.altivec.vperm 7271 // CHECK: @llvm.ppc.altivec.stvx 7272 // CHECK-LE: @llvm.ppc.altivec.lvx 7273 // CHECK-LE: @llvm.ppc.altivec.lvsl 7274 // CHECK-LE: store <4 x i32> zeroinitializer 7275 // CHECK-LE: @llvm.ppc.altivec.vperm 7276 // CHECK-LE: @llvm.ppc.altivec.lvsr 7277 // CHECK-LE: @llvm.ppc.altivec.vperm 7278 // CHECK-LE: @llvm.ppc.altivec.stvx 7279 7280 vec_stvrx(vbi, 0, &vbi); 7281 // CHECK: @llvm.ppc.altivec.lvx 7282 // CHECK: store <4 x i32> zeroinitializer 7283 // CHECK: @llvm.ppc.altivec.lvsl 7284 // CHECK: @llvm.ppc.altivec.vperm 7285 // CHECK: @llvm.ppc.altivec.lvsr 7286 // CHECK: @llvm.ppc.altivec.vperm 7287 // CHECK: @llvm.ppc.altivec.stvx 7288 // CHECK-LE: @llvm.ppc.altivec.lvx 7289 // CHECK-LE: store <4 x i32> zeroinitializer 7290 // CHECK-LE: @llvm.ppc.altivec.lvsl 7291 // CHECK-LE: @llvm.ppc.altivec.vperm 7292 // CHECK-LE: @llvm.ppc.altivec.lvsr 7293 // CHECK-LE: @llvm.ppc.altivec.vperm 7294 // CHECK-LE: @llvm.ppc.altivec.stvx 7295 7296 vec_stvrx(vf, 0, &vf); 7297 // CHECK: @llvm.ppc.altivec.lvx 7298 // CHECK: @llvm.ppc.altivec.lvsl 7299 // CHECK: store <4 x float> zeroinitializer 7300 // CHECK: @llvm.ppc.altivec.vperm 7301 // CHECK: @llvm.ppc.altivec.lvsr 7302 // CHECK: @llvm.ppc.altivec.vperm 7303 // CHECK: @llvm.ppc.altivec.stvx 7304 // CHECK-LE: @llvm.ppc.altivec.lvx 7305 // CHECK-LE: @llvm.ppc.altivec.lvsl 7306 // CHECK-LE: store <4 x float> zeroinitializer 7307 // CHECK-LE: @llvm.ppc.altivec.vperm 7308 // CHECK-LE: @llvm.ppc.altivec.lvsr 7309 // CHECK-LE: @llvm.ppc.altivec.vperm 7310 // CHECK-LE: @llvm.ppc.altivec.stvx 7311 7312 /* vec_stvrxl */ 7313 vec_stvrxl(vsc, 0, ¶m_sc); 7314 // CHECK: @llvm.ppc.altivec.lvx 7315 // CHECK: @llvm.ppc.altivec.lvsl 7316 // CHECK: store <16 x i8> zeroinitializer 7317 // CHECK: @llvm.ppc.altivec.vperm 7318 // CHECK: @llvm.ppc.altivec.lvsr 7319 // CHECK: @llvm.ppc.altivec.vperm 7320 // CHECK: @llvm.ppc.altivec.stvxl 7321 // CHECK-LE: @llvm.ppc.altivec.lvx 7322 // CHECK-LE: @llvm.ppc.altivec.lvsl 7323 // CHECK-LE: store <16 x i8> zeroinitializer 7324 // CHECK-LE: @llvm.ppc.altivec.vperm 7325 // CHECK-LE: @llvm.ppc.altivec.lvsr 7326 // CHECK-LE: @llvm.ppc.altivec.vperm 7327 // CHECK-LE: @llvm.ppc.altivec.stvxl 7328 7329 vec_stvrxl(vsc, 0, &vsc); 7330 // CHECK: @llvm.ppc.altivec.lvx 7331 // CHECK: @llvm.ppc.altivec.lvsl 7332 // CHECK: store <16 x i8> zeroinitializer 7333 // CHECK: @llvm.ppc.altivec.vperm 7334 // CHECK: @llvm.ppc.altivec.lvsr 7335 // CHECK: @llvm.ppc.altivec.vperm 7336 // CHECK: @llvm.ppc.altivec.stvxl 7337 // CHECK-LE: @llvm.ppc.altivec.lvx 7338 // CHECK-LE: @llvm.ppc.altivec.lvsl 7339 // CHECK-LE: store <16 x i8> zeroinitializer 7340 // CHECK-LE: @llvm.ppc.altivec.vperm 7341 // CHECK-LE: @llvm.ppc.altivec.lvsr 7342 // CHECK-LE: @llvm.ppc.altivec.vperm 7343 // CHECK-LE: @llvm.ppc.altivec.stvxl 7344 7345 vec_stvrxl(vuc, 0, ¶m_uc); 7346 // CHECK: @llvm.ppc.altivec.lvx 7347 // CHECK: @llvm.ppc.altivec.lvsl 7348 // CHECK: store <16 x i8> zeroinitializer 7349 // CHECK: @llvm.ppc.altivec.vperm 7350 // CHECK: @llvm.ppc.altivec.lvsr 7351 // CHECK: @llvm.ppc.altivec.vperm 7352 // CHECK: @llvm.ppc.altivec.stvxl 7353 // CHECK-LE: @llvm.ppc.altivec.lvx 7354 // CHECK-LE: @llvm.ppc.altivec.lvsl 7355 // CHECK-LE: store <16 x i8> zeroinitializer 7356 // CHECK-LE: @llvm.ppc.altivec.vperm 7357 // CHECK-LE: @llvm.ppc.altivec.lvsr 7358 // CHECK-LE: @llvm.ppc.altivec.vperm 7359 // CHECK-LE: @llvm.ppc.altivec.stvxl 7360 7361 vec_stvrxl(vuc, 0, &vuc); 7362 // CHECK: @llvm.ppc.altivec.lvx 7363 // CHECK: @llvm.ppc.altivec.lvsl 7364 // CHECK: store <16 x i8> zeroinitializer 7365 // CHECK: @llvm.ppc.altivec.vperm 7366 // CHECK: @llvm.ppc.altivec.lvsr 7367 // CHECK: @llvm.ppc.altivec.vperm 7368 // CHECK: @llvm.ppc.altivec.stvxl 7369 // CHECK-LE: @llvm.ppc.altivec.lvx 7370 // CHECK-LE: @llvm.ppc.altivec.lvsl 7371 // CHECK-LE: store <16 x i8> zeroinitializer 7372 // CHECK-LE: @llvm.ppc.altivec.vperm 7373 // CHECK-LE: @llvm.ppc.altivec.lvsr 7374 // CHECK-LE: @llvm.ppc.altivec.vperm 7375 // CHECK-LE: @llvm.ppc.altivec.stvxl 7376 7377 vec_stvrxl(vbc, 0, &vbc); 7378 // CHECK: @llvm.ppc.altivec.lvx 7379 // CHECK: store <16 x i8> zeroinitializer 7380 // CHECK: @llvm.ppc.altivec.lvsl 7381 // CHECK: @llvm.ppc.altivec.vperm 7382 // CHECK: @llvm.ppc.altivec.lvsr 7383 // CHECK: @llvm.ppc.altivec.vperm 7384 // CHECK: @llvm.ppc.altivec.stvxl 7385 // CHECK-LE: @llvm.ppc.altivec.lvx 7386 // CHECK-LE: store <16 x i8> zeroinitializer 7387 // CHECK-LE: @llvm.ppc.altivec.lvsl 7388 // CHECK-LE: @llvm.ppc.altivec.vperm 7389 // CHECK-LE: @llvm.ppc.altivec.lvsr 7390 // CHECK-LE: @llvm.ppc.altivec.vperm 7391 // CHECK-LE: @llvm.ppc.altivec.stvxl 7392 7393 vec_stvrxl(vs, 0, ¶m_s); 7394 // CHECK: @llvm.ppc.altivec.lvx 7395 // CHECK: @llvm.ppc.altivec.lvsl 7396 // CHECK: store <8 x i16> zeroinitializer 7397 // CHECK: @llvm.ppc.altivec.vperm 7398 // CHECK: @llvm.ppc.altivec.lvsr 7399 // CHECK: @llvm.ppc.altivec.vperm 7400 // CHECK: @llvm.ppc.altivec.stvxl 7401 // CHECK-LE: @llvm.ppc.altivec.lvx 7402 // CHECK-LE: @llvm.ppc.altivec.lvsl 7403 // CHECK-LE: store <8 x i16> zeroinitializer 7404 // CHECK-LE: @llvm.ppc.altivec.vperm 7405 // CHECK-LE: @llvm.ppc.altivec.lvsr 7406 // CHECK-LE: @llvm.ppc.altivec.vperm 7407 // CHECK-LE: @llvm.ppc.altivec.stvxl 7408 7409 vec_stvrxl(vs, 0, &vs); 7410 // CHECK: @llvm.ppc.altivec.lvx 7411 // CHECK: @llvm.ppc.altivec.lvsl 7412 // CHECK: store <8 x i16> zeroinitializer 7413 // CHECK: @llvm.ppc.altivec.vperm 7414 // CHECK: @llvm.ppc.altivec.lvsr 7415 // CHECK: @llvm.ppc.altivec.vperm 7416 // CHECK: @llvm.ppc.altivec.stvxl 7417 // CHECK-LE: @llvm.ppc.altivec.lvx 7418 // CHECK-LE: @llvm.ppc.altivec.lvsl 7419 // CHECK-LE: store <8 x i16> zeroinitializer 7420 // CHECK-LE: @llvm.ppc.altivec.vperm 7421 // CHECK-LE: @llvm.ppc.altivec.lvsr 7422 // CHECK-LE: @llvm.ppc.altivec.vperm 7423 // CHECK-LE: @llvm.ppc.altivec.stvxl 7424 7425 vec_stvrxl(vus, 0, ¶m_us); 7426 // CHECK: @llvm.ppc.altivec.lvx 7427 // CHECK: @llvm.ppc.altivec.lvsl 7428 // CHECK: store <8 x i16> zeroinitializer 7429 // CHECK: @llvm.ppc.altivec.vperm 7430 // CHECK: @llvm.ppc.altivec.lvsr 7431 // CHECK: @llvm.ppc.altivec.vperm 7432 // CHECK: @llvm.ppc.altivec.stvxl 7433 // CHECK-LE: @llvm.ppc.altivec.lvx 7434 // CHECK-LE: @llvm.ppc.altivec.lvsl 7435 // CHECK-LE: store <8 x i16> zeroinitializer 7436 // CHECK-LE: @llvm.ppc.altivec.vperm 7437 // CHECK-LE: @llvm.ppc.altivec.lvsr 7438 // CHECK-LE: @llvm.ppc.altivec.vperm 7439 // CHECK-LE: @llvm.ppc.altivec.stvxl 7440 7441 vec_stvrxl(vus, 0, &vus); 7442 // CHECK: @llvm.ppc.altivec.lvx 7443 // CHECK: @llvm.ppc.altivec.lvsl 7444 // CHECK: store <8 x i16> zeroinitializer 7445 // CHECK: @llvm.ppc.altivec.vperm 7446 // CHECK: @llvm.ppc.altivec.lvsr 7447 // CHECK: @llvm.ppc.altivec.vperm 7448 // CHECK: @llvm.ppc.altivec.stvxl 7449 // CHECK-LE: @llvm.ppc.altivec.lvx 7450 // CHECK-LE: @llvm.ppc.altivec.lvsl 7451 // CHECK-LE: store <8 x i16> zeroinitializer 7452 // CHECK-LE: @llvm.ppc.altivec.vperm 7453 // CHECK-LE: @llvm.ppc.altivec.lvsr 7454 // CHECK-LE: @llvm.ppc.altivec.vperm 7455 // CHECK-LE: @llvm.ppc.altivec.stvxl 7456 7457 vec_stvrxl(vbs, 0, &vbs); 7458 // CHECK: @llvm.ppc.altivec.lvx 7459 // CHECK: store <8 x i16> zeroinitializer 7460 // CHECK: @llvm.ppc.altivec.lvsl 7461 // CHECK: @llvm.ppc.altivec.vperm 7462 // CHECK: @llvm.ppc.altivec.lvsr 7463 // CHECK: @llvm.ppc.altivec.vperm 7464 // CHECK: @llvm.ppc.altivec.stvxl 7465 // CHECK-LE: @llvm.ppc.altivec.lvx 7466 // CHECK-LE: store <8 x i16> zeroinitializer 7467 // CHECK-LE: @llvm.ppc.altivec.lvsl 7468 // CHECK-LE: @llvm.ppc.altivec.vperm 7469 // CHECK-LE: @llvm.ppc.altivec.lvsr 7470 // CHECK-LE: @llvm.ppc.altivec.vperm 7471 // CHECK-LE: @llvm.ppc.altivec.stvxl 7472 7473 vec_stvrxl(vp, 0, &vp); 7474 // CHECK: @llvm.ppc.altivec.lvx 7475 // CHECK: store <8 x i16> zeroinitializer 7476 // CHECK: @llvm.ppc.altivec.lvsl 7477 // CHECK: @llvm.ppc.altivec.vperm 7478 // CHECK: @llvm.ppc.altivec.lvsr 7479 // CHECK: @llvm.ppc.altivec.vperm 7480 // CHECK: @llvm.ppc.altivec.stvxl 7481 // CHECK-LE: @llvm.ppc.altivec.lvx 7482 // CHECK-LE: store <8 x i16> zeroinitializer 7483 // CHECK-LE: @llvm.ppc.altivec.lvsl 7484 // CHECK-LE: @llvm.ppc.altivec.vperm 7485 // CHECK-LE: @llvm.ppc.altivec.lvsr 7486 // CHECK-LE: @llvm.ppc.altivec.vperm 7487 // CHECK-LE: @llvm.ppc.altivec.stvxl 7488 7489 vec_stvrxl(vi, 0, ¶m_i); 7490 // CHECK: @llvm.ppc.altivec.lvx 7491 // CHECK: @llvm.ppc.altivec.lvsl 7492 // CHECK: store <4 x i32> zeroinitializer 7493 // CHECK: @llvm.ppc.altivec.vperm 7494 // CHECK: @llvm.ppc.altivec.lvsr 7495 // CHECK: @llvm.ppc.altivec.vperm 7496 // CHECK: @llvm.ppc.altivec.stvxl 7497 // CHECK-LE: @llvm.ppc.altivec.lvx 7498 // CHECK-LE: @llvm.ppc.altivec.lvsl 7499 // CHECK-LE: store <4 x i32> zeroinitializer 7500 // CHECK-LE: @llvm.ppc.altivec.vperm 7501 // CHECK-LE: @llvm.ppc.altivec.lvsr 7502 // CHECK-LE: @llvm.ppc.altivec.vperm 7503 // CHECK-LE: @llvm.ppc.altivec.stvxl 7504 7505 vec_stvrxl(vi, 0, &vi); 7506 // CHECK: @llvm.ppc.altivec.lvx 7507 // CHECK: @llvm.ppc.altivec.lvsl 7508 // CHECK: store <4 x i32> zeroinitializer 7509 // CHECK: @llvm.ppc.altivec.vperm 7510 // CHECK: @llvm.ppc.altivec.lvsr 7511 // CHECK: @llvm.ppc.altivec.vperm 7512 // CHECK: @llvm.ppc.altivec.stvxl 7513 // CHECK-LE: @llvm.ppc.altivec.lvx 7514 // CHECK-LE: @llvm.ppc.altivec.lvsl 7515 // CHECK-LE: store <4 x i32> zeroinitializer 7516 // CHECK-LE: @llvm.ppc.altivec.vperm 7517 // CHECK-LE: @llvm.ppc.altivec.lvsr 7518 // CHECK-LE: @llvm.ppc.altivec.vperm 7519 // CHECK-LE: @llvm.ppc.altivec.stvxl 7520 7521 vec_stvrxl(vui, 0, ¶m_ui); 7522 // CHECK: @llvm.ppc.altivec.lvx 7523 // CHECK: @llvm.ppc.altivec.lvsl 7524 // CHECK: store <4 x i32> zeroinitializer 7525 // CHECK: @llvm.ppc.altivec.vperm 7526 // CHECK: @llvm.ppc.altivec.lvsr 7527 // CHECK: @llvm.ppc.altivec.vperm 7528 // CHECK: @llvm.ppc.altivec.stvxl 7529 // CHECK-LE: @llvm.ppc.altivec.lvx 7530 // CHECK-LE: @llvm.ppc.altivec.lvsl 7531 // CHECK-LE: store <4 x i32> zeroinitializer 7532 // CHECK-LE: @llvm.ppc.altivec.vperm 7533 // CHECK-LE: @llvm.ppc.altivec.lvsr 7534 // CHECK-LE: @llvm.ppc.altivec.vperm 7535 // CHECK-LE: @llvm.ppc.altivec.stvxl 7536 7537 vec_stvrxl(vui, 0, &vui); 7538 // CHECK: @llvm.ppc.altivec.lvx 7539 // CHECK: @llvm.ppc.altivec.lvsl 7540 // CHECK: store <4 x i32> zeroinitializer 7541 // CHECK: @llvm.ppc.altivec.vperm 7542 // CHECK: @llvm.ppc.altivec.lvsr 7543 // CHECK: @llvm.ppc.altivec.vperm 7544 // CHECK: @llvm.ppc.altivec.stvxl 7545 // CHECK-LE: @llvm.ppc.altivec.lvx 7546 // CHECK-LE: @llvm.ppc.altivec.lvsl 7547 // CHECK-LE: store <4 x i32> zeroinitializer 7548 // CHECK-LE: @llvm.ppc.altivec.vperm 7549 // CHECK-LE: @llvm.ppc.altivec.lvsr 7550 // CHECK-LE: @llvm.ppc.altivec.vperm 7551 // CHECK-LE: @llvm.ppc.altivec.stvxl 7552 7553 vec_stvrxl(vbi, 0, &vbi); 7554 // CHECK: @llvm.ppc.altivec.lvx 7555 // CHECK: store <4 x i32> zeroinitializer 7556 // CHECK: @llvm.ppc.altivec.lvsl 7557 // CHECK: @llvm.ppc.altivec.vperm 7558 // CHECK: @llvm.ppc.altivec.lvsr 7559 // CHECK: @llvm.ppc.altivec.vperm 7560 // CHECK: @llvm.ppc.altivec.stvxl 7561 // CHECK-LE: @llvm.ppc.altivec.lvx 7562 // CHECK-LE: store <4 x i32> zeroinitializer 7563 // CHECK-LE: @llvm.ppc.altivec.lvsl 7564 // CHECK-LE: @llvm.ppc.altivec.vperm 7565 // CHECK-LE: @llvm.ppc.altivec.lvsr 7566 // CHECK-LE: @llvm.ppc.altivec.vperm 7567 // CHECK-LE: @llvm.ppc.altivec.stvxl 7568 7569 vec_stvrxl(vf, 0, &vf); 7570 // CHECK: @llvm.ppc.altivec.lvx 7571 // CHECK: @llvm.ppc.altivec.lvsl 7572 // CHECK: store <4 x float> zeroinitializer 7573 // CHECK: @llvm.ppc.altivec.vperm 7574 // CHECK: @llvm.ppc.altivec.lvsr 7575 // CHECK: @llvm.ppc.altivec.vperm 7576 // CHECK: @llvm.ppc.altivec.stvxl 7577 // CHECK-LE: @llvm.ppc.altivec.lvx 7578 // CHECK-LE: @llvm.ppc.altivec.lvsl 7579 // CHECK-LE: store <4 x float> zeroinitializer 7580 // CHECK-LE: @llvm.ppc.altivec.vperm 7581 // CHECK-LE: @llvm.ppc.altivec.lvsr 7582 // CHECK-LE: @llvm.ppc.altivec.vperm 7583 // CHECK-LE: @llvm.ppc.altivec.stvxl 7584 7585 /* vec_promote */ 7586 res_vsc = vec_promote(param_sc, 0); 7587 // CHECK: store <16 x i8> zeroinitializer 7588 // CHECK: insertelement <16 x i8> 7589 // CHECK-LE: store <16 x i8> zeroinitializer 7590 // CHECK-LE: insertelement <16 x i8> 7591 7592 res_vuc = vec_promote(param_uc, 0); 7593 // CHECK: store <16 x i8> zeroinitializer 7594 // CHECK: insertelement <16 x i8> 7595 // CHECK-LE: store <16 x i8> zeroinitializer 7596 // CHECK-LE: insertelement <16 x i8> 7597 7598 res_vs = vec_promote(param_s, 0); 7599 // CHECK: store <8 x i16> zeroinitializer 7600 // CHECK: insertelement <8 x i16> 7601 // CHECK-LE: store <8 x i16> zeroinitializer 7602 // CHECK-LE: insertelement <8 x i16> 7603 7604 res_vus = vec_promote(param_us, 0); 7605 // CHECK: store <8 x i16> zeroinitializer 7606 // CHECK: insertelement <8 x i16> 7607 // CHECK-LE: store <8 x i16> zeroinitializer 7608 // CHECK-LE: insertelement <8 x i16> 7609 7610 res_vi = vec_promote(param_i, 0); 7611 // CHECK: store <4 x i32> zeroinitializer 7612 // CHECK: insertelement <4 x i32> 7613 // CHECK-LE: store <4 x i32> zeroinitializer 7614 // CHECK-LE: insertelement <4 x i32> 7615 7616 res_vui = vec_promote(param_ui, 0); 7617 // CHECK: store <4 x i32> zeroinitializer 7618 // CHECK: insertelement <4 x i32> 7619 // CHECK-LE: store <4 x i32> zeroinitializer 7620 // CHECK-LE: insertelement <4 x i32> 7621 7622 res_vf = vec_promote(param_f, 0); 7623 // CHECK: store <4 x float> zeroinitializer 7624 // CHECK: insertelement <4 x float> 7625 // CHECK-LE: store <4 x float> zeroinitializer 7626 // CHECK-LE: insertelement <4 x float> 7627 7628 /* vec_splats */ 7629 res_vsc = vec_splats(param_sc); 7630 // CHECK: insertelement <16 x i8> 7631 // CHECK-LE: insertelement <16 x i8> 7632 7633 res_vuc = vec_splats(param_uc); 7634 // CHECK: insertelement <16 x i8> 7635 // CHECK-LE: insertelement <16 x i8> 7636 7637 res_vs = vec_splats(param_s); 7638 // CHECK: insertelement <8 x i16> 7639 // CHECK-LE: insertelement <8 x i16> 7640 7641 res_vus = vec_splats(param_us); 7642 // CHECK: insertelement <8 x i16> 7643 // CHECK-LE: insertelement <8 x i16> 7644 7645 res_vi = vec_splats(param_i); 7646 // CHECK: insertelement <4 x i32> 7647 // CHECK-LE: insertelement <4 x i32> 7648 7649 res_vui = vec_splats(param_ui); 7650 // CHECK: insertelement <4 x i32> 7651 // CHECK-LE: insertelement <4 x i32> 7652 7653 res_vf = vec_splats(param_f); 7654 // CHECK: insertelement <4 x float> 7655 // CHECK-LE: insertelement <4 x float> 7656 7657 /* ------------------------------ predicates -------------------------------------- */ 7658 7659 /* vec_all_eq */ 7660 res_i = vec_all_eq(vsc, vsc); 7661 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7662 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7663 7664 res_i = vec_all_eq(vsc, vbc); 7665 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7666 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7667 7668 res_i = vec_all_eq(vuc, vuc); 7669 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7670 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7671 7672 res_i = vec_all_eq(vuc, vbc); 7673 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7674 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7675 7676 res_i = vec_all_eq(vbc, vsc); 7677 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7678 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7679 7680 res_i = vec_all_eq(vbc, vuc); 7681 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7682 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7683 7684 res_i = vec_all_eq(vbc, vbc); 7685 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7686 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7687 7688 res_i = vec_all_eq(vs, vs); 7689 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7690 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7691 7692 res_i = vec_all_eq(vs, vbs); 7693 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7694 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7695 7696 res_i = vec_all_eq(vus, vus); 7697 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7698 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7699 7700 res_i = vec_all_eq(vus, vbs); 7701 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7702 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7703 7704 res_i = vec_all_eq(vbs, vs); 7705 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7706 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7707 7708 res_i = vec_all_eq(vbs, vus); 7709 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7710 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7711 7712 res_i = vec_all_eq(vbs, vbs); 7713 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7714 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7715 7716 res_i = vec_all_eq(vp, vp); 7717 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7718 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7719 7720 res_i = vec_all_eq(vi, vi); 7721 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7722 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7723 7724 res_i = vec_all_eq(vi, vbi); 7725 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7726 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7727 7728 res_i = vec_all_eq(vui, vui); 7729 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7730 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7731 7732 res_i = vec_all_eq(vui, vbi); 7733 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7734 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7735 7736 res_i = vec_all_eq(vbi, vi); 7737 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7738 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7739 7740 res_i = vec_all_eq(vbi, vui); 7741 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7742 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7743 7744 res_i = vec_all_eq(vbi, vbi); 7745 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7746 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7747 7748 res_i = vec_all_eq(vf, vf); 7749 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 7750 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 7751 7752 /* vec_all_ge */ 7753 res_i = vec_all_ge(vsc, vsc); 7754 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7755 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7756 7757 res_i = vec_all_ge(vsc, vbc); 7758 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7759 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7760 7761 res_i = vec_all_ge(vuc, vuc); 7762 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7763 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7764 7765 res_i = vec_all_ge(vuc, vbc); 7766 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7767 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7768 7769 res_i = vec_all_ge(vbc, vsc); 7770 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7771 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7772 7773 res_i = vec_all_ge(vbc, vuc); 7774 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7775 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7776 7777 res_i = vec_all_ge(vbc, vbc); 7778 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7779 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7780 7781 res_i = vec_all_ge(vs, vs); 7782 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7783 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7784 7785 res_i = vec_all_ge(vs, vbs); 7786 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7787 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7788 7789 res_i = vec_all_ge(vus, vus); 7790 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7791 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7792 7793 res_i = vec_all_ge(vus, vbs); 7794 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7795 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7796 7797 res_i = vec_all_ge(vbs, vs); 7798 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7799 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7800 7801 res_i = vec_all_ge(vbs, vus); 7802 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7803 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7804 7805 res_i = vec_all_ge(vbs, vbs); 7806 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7807 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7808 7809 res_i = vec_all_ge(vi, vi); 7810 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7811 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7812 7813 res_i = vec_all_ge(vi, vbi); 7814 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7815 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7816 7817 res_i = vec_all_ge(vui, vui); 7818 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7819 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7820 7821 res_i = vec_all_ge(vui, vbi); 7822 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7823 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7824 7825 res_i = vec_all_ge(vbi, vi); 7826 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7827 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7828 7829 res_i = vec_all_ge(vbi, vui); 7830 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7831 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7832 7833 res_i = vec_all_ge(vbi, vbi); 7834 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7835 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7836 7837 res_i = vec_all_ge(vf, vf); 7838 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 7839 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 7840 7841 /* vec_all_gt */ 7842 res_i = vec_all_gt(vsc, vsc); 7843 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7844 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7845 7846 res_i = vec_all_gt(vsc, vbc); 7847 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7848 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7849 7850 res_i = vec_all_gt(vuc, vuc); 7851 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7852 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7853 7854 res_i = vec_all_gt(vuc, vbc); 7855 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7856 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7857 7858 res_i = vec_all_gt(vbc, vsc); 7859 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7860 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7861 7862 res_i = vec_all_gt(vbc, vuc); 7863 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7864 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7865 7866 res_i = vec_all_gt(vbc, vbc); 7867 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7868 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7869 7870 res_i = vec_all_gt(vs, vs); 7871 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7872 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7873 7874 res_i = vec_all_gt(vs, vbs); 7875 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7876 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7877 7878 res_i = vec_all_gt(vus, vus); 7879 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7880 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7881 7882 res_i = vec_all_gt(vus, vbs); 7883 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7884 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7885 7886 res_i = vec_all_gt(vbs, vs); 7887 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7888 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7889 7890 res_i = vec_all_gt(vbs, vus); 7891 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7892 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7893 7894 res_i = vec_all_gt(vbs, vbs); 7895 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7896 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7897 7898 res_i = vec_all_gt(vi, vi); 7899 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7900 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7901 7902 res_i = vec_all_gt(vi, vbi); 7903 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7904 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7905 7906 res_i = vec_all_gt(vui, vui); 7907 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7908 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7909 7910 res_i = vec_all_gt(vui, vbi); 7911 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7912 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7913 7914 res_i = vec_all_gt(vbi, vi); 7915 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7916 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7917 7918 res_i = vec_all_gt(vbi, vui); 7919 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7920 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7921 7922 res_i = vec_all_gt(vbi, vbi); 7923 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7924 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7925 7926 res_i = vec_all_gt(vf, vf); 7927 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 7928 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 7929 7930 /* vec_all_in */ 7931 res_i = vec_all_in(vf, vf); 7932 // CHECK: @llvm.ppc.altivec.vcmpbfp.p 7933 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p 7934 7935 /* vec_all_le */ 7936 res_i = vec_all_le(vsc, vsc); 7937 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7938 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7939 7940 res_i = vec_all_le(vsc, vbc); 7941 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7942 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7943 7944 res_i = vec_all_le(vuc, vuc); 7945 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7946 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7947 7948 res_i = vec_all_le(vuc, vbc); 7949 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7950 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7951 7952 res_i = vec_all_le(vbc, vsc); 7953 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7954 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7955 7956 res_i = vec_all_le(vbc, vuc); 7957 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7958 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7959 7960 res_i = vec_all_le(vbc, vbc); 7961 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7962 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7963 7964 res_i = vec_all_le(vs, vs); 7965 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7966 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7967 7968 res_i = vec_all_le(vs, vbs); 7969 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7970 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7971 7972 res_i = vec_all_le(vus, vus); 7973 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7974 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7975 7976 res_i = vec_all_le(vus, vbs); 7977 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7978 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7979 7980 res_i = vec_all_le(vbs, vs); 7981 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7982 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7983 7984 res_i = vec_all_le(vbs, vus); 7985 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7986 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7987 7988 res_i = vec_all_le(vbs, vbs); 7989 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7990 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7991 7992 res_i = vec_all_le(vi, vi); 7993 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7994 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7995 7996 res_i = vec_all_le(vi, vbi); 7997 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7998 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7999 8000 res_i = vec_all_le(vui, vui); 8001 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8002 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8003 8004 res_i = vec_all_le(vui, vbi); 8005 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8006 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8007 8008 res_i = vec_all_le(vbi, vi); 8009 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8010 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8011 8012 res_i = vec_all_le(vbi, vui); 8013 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8014 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8015 8016 res_i = vec_all_le(vbi, vbi); 8017 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8018 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8019 8020 res_i = vec_all_le(vf, vf); 8021 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8022 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8023 8024 /* vec_all_lt */ 8025 res_i = vec_all_lt(vsc, vsc); 8026 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8027 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8028 8029 res_i = vec_all_lt(vsc, vbc); 8030 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8031 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8032 8033 res_i = vec_all_lt(vuc, vuc); 8034 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8035 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8036 8037 res_i = vec_all_lt(vuc, vbc); 8038 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8039 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8040 8041 res_i = vec_all_lt(vbc, vsc); 8042 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8043 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8044 8045 res_i = vec_all_lt(vbc, vuc); 8046 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8047 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8048 8049 res_i = vec_all_lt(vbc, vbc); 8050 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8051 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8052 8053 res_i = vec_all_lt(vs, vs); 8054 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8055 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8056 8057 res_i = vec_all_lt(vs, vbs); 8058 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8059 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8060 8061 res_i = vec_all_lt(vus, vus); 8062 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8063 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8064 8065 res_i = vec_all_lt(vus, vbs); 8066 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8067 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8068 8069 res_i = vec_all_lt(vbs, vs); 8070 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8071 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8072 8073 res_i = vec_all_lt(vbs, vus); 8074 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8075 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8076 8077 res_i = vec_all_lt(vbs, vbs); 8078 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8079 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8080 8081 res_i = vec_all_lt(vi, vi); 8082 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8083 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8084 8085 res_i = vec_all_lt(vi, vbi); 8086 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8087 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8088 8089 res_i = vec_all_lt(vui, vui); 8090 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8091 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8092 8093 res_i = vec_all_lt(vui, vbi); 8094 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8095 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8096 8097 res_i = vec_all_lt(vbi, vi); 8098 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8099 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8100 8101 res_i = vec_all_lt(vbi, vui); 8102 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8103 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8104 8105 res_i = vec_all_lt(vbi, vbi); 8106 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8107 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8108 8109 res_i = vec_all_lt(vf, vf); 8110 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8111 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8112 8113 /* vec_all_nan */ 8114 res_i = vec_all_nan(vf); 8115 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8116 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8117 8118 /* vec_all_ne */ 8119 res_i = vec_all_ne(vsc, vsc); 8120 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8121 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8122 8123 res_i = vec_all_ne(vsc, vbc); 8124 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8125 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8126 8127 res_i = vec_all_ne(vuc, vuc); 8128 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8129 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8130 8131 res_i = vec_all_ne(vuc, vbc); 8132 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8133 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8134 8135 res_i = vec_all_ne(vbc, vsc); 8136 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8137 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8138 8139 res_i = vec_all_ne(vbc, vuc); 8140 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8141 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8142 8143 res_i = vec_all_ne(vbc, vbc); 8144 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8145 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8146 8147 res_i = vec_all_ne(vs, vs); 8148 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8149 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8150 8151 res_i = vec_all_ne(vs, vbs); 8152 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8153 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8154 8155 res_i = vec_all_ne(vus, vus); 8156 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8157 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8158 8159 res_i = vec_all_ne(vus, vbs); 8160 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8161 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8162 8163 res_i = vec_all_ne(vbs, vs); 8164 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8165 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8166 8167 res_i = vec_all_ne(vbs, vus); 8168 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8169 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8170 8171 res_i = vec_all_ne(vbs, vbs); 8172 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8173 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8174 8175 res_i = vec_all_ne(vp, vp); 8176 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8177 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8178 8179 res_i = vec_all_ne(vi, vi); 8180 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8181 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8182 8183 res_i = vec_all_ne(vi, vbi); 8184 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8185 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8186 8187 res_i = vec_all_ne(vui, vui); 8188 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8189 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8190 8191 res_i = vec_all_ne(vui, vbi); 8192 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8193 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8194 8195 res_i = vec_all_ne(vbi, vi); 8196 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8197 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8198 8199 res_i = vec_all_ne(vbi, vui); 8200 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8201 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8202 8203 res_i = vec_all_ne(vbi, vbi); 8204 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8205 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8206 8207 res_i = vec_all_ne(vf, vf); 8208 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8209 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8210 8211 /* vec_all_nge */ 8212 res_i = vec_all_nge(vf, vf); 8213 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8214 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8215 8216 /* vec_all_ngt */ 8217 res_i = vec_all_ngt(vf, vf); 8218 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8219 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8220 8221 /* vec_all_nle */ 8222 res_i = vec_all_nle(vf, vf); 8223 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8224 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8225 8226 /* vec_all_nlt */ 8227 res_i = vec_all_nlt(vf, vf); 8228 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8229 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8230 8231 /* vec_all_numeric */ 8232 res_i = vec_all_numeric(vf); 8233 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8234 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8235 8236 /* vec_any_eq */ 8237 res_i = vec_any_eq(vsc, vsc); 8238 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8239 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8240 8241 res_i = vec_any_eq(vsc, vbc); 8242 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8243 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8244 8245 res_i = vec_any_eq(vuc, vuc); 8246 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8247 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8248 8249 res_i = vec_any_eq(vuc, vbc); 8250 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8251 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8252 8253 res_i = vec_any_eq(vbc, vsc); 8254 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8255 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8256 8257 res_i = vec_any_eq(vbc, vuc); 8258 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8259 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8260 8261 res_i = vec_any_eq(vbc, vbc); 8262 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8263 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8264 8265 res_i = vec_any_eq(vs, vs); 8266 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8267 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8268 8269 res_i = vec_any_eq(vs, vbs); 8270 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8271 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8272 8273 res_i = vec_any_eq(vus, vus); 8274 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8275 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8276 8277 res_i = vec_any_eq(vus, vbs); 8278 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8279 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8280 8281 res_i = vec_any_eq(vbs, vs); 8282 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8283 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8284 8285 res_i = vec_any_eq(vbs, vus); 8286 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8287 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8288 8289 res_i = vec_any_eq(vbs, vbs); 8290 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8291 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8292 8293 res_i = vec_any_eq(vp, vp); 8294 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8295 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8296 8297 res_i = vec_any_eq(vi, vi); 8298 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8299 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8300 8301 res_i = vec_any_eq(vi, vbi); 8302 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8303 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8304 8305 res_i = vec_any_eq(vui, vui); 8306 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8307 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8308 8309 res_i = vec_any_eq(vui, vbi); 8310 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8311 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8312 8313 res_i = vec_any_eq(vbi, vi); 8314 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8315 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8316 8317 res_i = vec_any_eq(vbi, vui); 8318 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8319 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8320 8321 res_i = vec_any_eq(vbi, vbi); 8322 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8323 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8324 8325 res_i = vec_any_eq(vf, vf); 8326 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8327 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8328 8329 /* vec_any_ge */ 8330 res_i = vec_any_ge(vsc, vsc); 8331 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8332 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8333 8334 res_i = vec_any_ge(vsc, vbc); 8335 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8336 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8337 8338 res_i = vec_any_ge(vuc, vuc); 8339 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8340 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8341 8342 res_i = vec_any_ge(vuc, vbc); 8343 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8344 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8345 8346 res_i = vec_any_ge(vbc, vsc); 8347 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8348 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8349 8350 res_i = vec_any_ge(vbc, vuc); 8351 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8352 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8353 8354 res_i = vec_any_ge(vbc, vbc); 8355 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8356 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8357 8358 res_i = vec_any_ge(vs, vs); 8359 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8360 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8361 8362 res_i = vec_any_ge(vs, vbs); 8363 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8364 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8365 8366 res_i = vec_any_ge(vus, vus); 8367 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8368 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8369 8370 res_i = vec_any_ge(vus, vbs); 8371 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8372 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8373 8374 res_i = vec_any_ge(vbs, vs); 8375 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8376 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8377 8378 res_i = vec_any_ge(vbs, vus); 8379 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8380 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8381 8382 res_i = vec_any_ge(vbs, vbs); 8383 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8384 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8385 8386 res_i = vec_any_ge(vi, vi); 8387 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8388 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8389 8390 res_i = vec_any_ge(vi, vbi); 8391 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8392 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8393 8394 res_i = vec_any_ge(vui, vui); 8395 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8396 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8397 8398 res_i = vec_any_ge(vui, vbi); 8399 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8400 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8401 8402 res_i = vec_any_ge(vbi, vi); 8403 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8404 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8405 8406 res_i = vec_any_ge(vbi, vui); 8407 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8408 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8409 8410 res_i = vec_any_ge(vbi, vbi); 8411 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8412 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8413 8414 res_i = vec_any_ge(vf, vf); 8415 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8416 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8417 8418 /* vec_any_gt */ 8419 res_i = vec_any_gt(vsc, vsc); 8420 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8421 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8422 8423 res_i = vec_any_gt(vsc, vbc); 8424 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8425 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8426 8427 res_i = vec_any_gt(vuc, vuc); 8428 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8429 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8430 8431 res_i = vec_any_gt(vuc, vbc); 8432 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8433 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8434 8435 res_i = vec_any_gt(vbc, vsc); 8436 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8437 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8438 8439 res_i = vec_any_gt(vbc, vuc); 8440 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8441 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8442 8443 res_i = vec_any_gt(vbc, vbc); 8444 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8445 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8446 8447 res_i = vec_any_gt(vs, vs); 8448 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8449 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8450 8451 res_i = vec_any_gt(vs, vbs); 8452 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8453 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8454 8455 res_i = vec_any_gt(vus, vus); 8456 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8457 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8458 8459 res_i = vec_any_gt(vus, vbs); 8460 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8461 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8462 8463 res_i = vec_any_gt(vbs, vs); 8464 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8465 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8466 8467 res_i = vec_any_gt(vbs, vus); 8468 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8469 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8470 8471 res_i = vec_any_gt(vbs, vbs); 8472 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8473 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8474 8475 res_i = vec_any_gt(vi, vi); 8476 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8477 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8478 8479 res_i = vec_any_gt(vi, vbi); 8480 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8481 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8482 8483 res_i = vec_any_gt(vui, vui); 8484 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8485 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8486 8487 res_i = vec_any_gt(vui, vbi); 8488 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8489 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8490 8491 res_i = vec_any_gt(vbi, vi); 8492 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8493 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8494 8495 res_i = vec_any_gt(vbi, vui); 8496 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8497 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8498 8499 res_i = vec_any_gt(vbi, vbi); 8500 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8501 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8502 8503 res_i = vec_any_gt(vf, vf); 8504 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8505 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8506 8507 /* vec_any_le */ 8508 res_i = vec_any_le(vsc, vsc); 8509 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8510 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8511 8512 res_i = vec_any_le(vsc, vbc); 8513 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8514 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8515 8516 res_i = vec_any_le(vuc, vuc); 8517 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8518 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8519 8520 res_i = vec_any_le(vuc, vbc); 8521 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8522 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8523 8524 res_i = vec_any_le(vbc, vsc); 8525 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8526 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8527 8528 res_i = vec_any_le(vbc, vuc); 8529 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8530 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8531 8532 res_i = vec_any_le(vbc, vbc); 8533 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8534 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8535 8536 res_i = vec_any_le(vs, vs); 8537 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8538 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8539 8540 res_i = vec_any_le(vs, vbs); 8541 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8542 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8543 8544 res_i = vec_any_le(vus, vus); 8545 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8546 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8547 8548 res_i = vec_any_le(vus, vbs); 8549 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8550 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8551 8552 res_i = vec_any_le(vbs, vs); 8553 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8554 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8555 8556 res_i = vec_any_le(vbs, vus); 8557 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8558 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8559 8560 res_i = vec_any_le(vbs, vbs); 8561 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8562 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8563 8564 res_i = vec_any_le(vi, vi); 8565 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8566 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8567 8568 res_i = vec_any_le(vi, vbi); 8569 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8570 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8571 8572 res_i = vec_any_le(vui, vui); 8573 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8574 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8575 8576 res_i = vec_any_le(vui, vbi); 8577 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8578 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8579 8580 res_i = vec_any_le(vbi, vi); 8581 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8582 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8583 8584 res_i = vec_any_le(vbi, vui); 8585 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8586 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8587 8588 res_i = vec_any_le(vbi, vbi); 8589 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8590 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8591 8592 res_i = vec_any_le(vf, vf); 8593 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8594 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8595 8596 /* vec_any_lt */ 8597 res_i = vec_any_lt(vsc, vsc); 8598 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8599 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8600 8601 res_i = vec_any_lt(vsc, vbc); 8602 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8603 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8604 8605 res_i = vec_any_lt(vuc, vuc); 8606 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8607 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8608 8609 res_i = vec_any_lt(vuc, vbc); 8610 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8611 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8612 8613 res_i = vec_any_lt(vbc, vsc); 8614 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8615 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8616 8617 res_i = vec_any_lt(vbc, vuc); 8618 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8619 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8620 8621 res_i = vec_any_lt(vbc, vbc); 8622 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8623 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8624 8625 res_i = vec_any_lt(vs, vs); 8626 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8627 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8628 8629 res_i = vec_any_lt(vs, vbs); 8630 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8631 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8632 8633 res_i = vec_any_lt(vus, vus); 8634 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8635 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8636 8637 res_i = vec_any_lt(vus, vbs); 8638 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8639 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8640 8641 res_i = vec_any_lt(vbs, vs); 8642 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8643 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8644 8645 res_i = vec_any_lt(vbs, vus); 8646 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8647 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8648 8649 res_i = vec_any_lt(vbs, vbs); 8650 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8651 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8652 8653 res_i = vec_any_lt(vi, vi); 8654 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8655 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8656 8657 res_i = vec_any_lt(vi, vbi); 8658 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8659 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8660 8661 res_i = vec_any_lt(vui, vui); 8662 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8663 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8664 8665 res_i = vec_any_lt(vui, vbi); 8666 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8667 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8668 8669 res_i = vec_any_lt(vbi, vi); 8670 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8671 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8672 8673 res_i = vec_any_lt(vbi, vui); 8674 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8675 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8676 8677 res_i = vec_any_lt(vbi, vbi); 8678 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8679 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8680 8681 res_i = vec_any_lt(vf, vf); 8682 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8683 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8684 8685 /* vec_any_nan */ 8686 res_i = vec_any_nan(vf); 8687 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8688 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8689 8690 /* vec_any_ne */ 8691 res_i = vec_any_ne(vsc, vsc); 8692 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8693 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8694 8695 res_i = vec_any_ne(vsc, vbc); 8696 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8697 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8698 8699 res_i = vec_any_ne(vuc, vuc); 8700 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8701 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8702 8703 res_i = vec_any_ne(vuc, vbc); 8704 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8705 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8706 8707 res_i = vec_any_ne(vbc, vsc); 8708 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8709 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8710 8711 res_i = vec_any_ne(vbc, vuc); 8712 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8713 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8714 8715 res_i = vec_any_ne(vbc, vbc); 8716 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8717 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8718 8719 res_i = vec_any_ne(vs, vs); 8720 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8721 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8722 8723 res_i = vec_any_ne(vs, vbs); 8724 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8725 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8726 8727 res_i = vec_any_ne(vus, vus); 8728 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8729 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8730 8731 res_i = vec_any_ne(vus, vbs); 8732 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8733 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8734 8735 res_i = vec_any_ne(vbs, vs); 8736 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8737 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8738 8739 res_i = vec_any_ne(vbs, vus); 8740 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8741 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8742 8743 res_i = vec_any_ne(vbs, vbs); 8744 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8745 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8746 8747 res_i = vec_any_ne(vp, vp); 8748 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8749 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8750 8751 res_i = vec_any_ne(vi, vi); 8752 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8753 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8754 8755 res_i = vec_any_ne(vi, vbi); 8756 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8757 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8758 8759 res_i = vec_any_ne(vui, vui); 8760 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8761 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8762 8763 res_i = vec_any_ne(vui, vbi); 8764 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8765 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8766 8767 res_i = vec_any_ne(vbi, vi); 8768 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8769 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8770 8771 res_i = vec_any_ne(vbi, vui); 8772 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8773 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8774 8775 res_i = vec_any_ne(vbi, vbi); 8776 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8777 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8778 8779 res_i = vec_any_ne(vf, vf); 8780 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8781 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8782 8783 /* vec_any_nge */ 8784 res_i = vec_any_nge(vf, vf); 8785 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8786 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8787 8788 /* vec_any_ngt */ 8789 res_i = vec_any_ngt(vf, vf); 8790 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8791 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8792 8793 /* vec_any_nle */ 8794 res_i = vec_any_nle(vf, vf); 8795 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8796 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8797 8798 /* vec_any_nlt */ 8799 res_i = vec_any_nlt(vf, vf); 8800 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8801 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8802 8803 /* vec_any_numeric */ 8804 res_i = vec_any_numeric(vf); 8805 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8806 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8807 8808 /* vec_any_out */ 8809 res_i = vec_any_out(vf, vf); 8810 // CHECK: @llvm.ppc.altivec.vcmpbfp.p 8811 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p 8812 } 8813 8814 /* ------------------------------ Relational Operators ------------------------------ */ 8815 // CHECK-LABEL: define void @test7 8816 void test7() { 8817 vector signed char vsc1 = (vector signed char)(-1); 8818 vector signed char vsc2 = (vector signed char)(-2); 8819 res_i = (vsc1 == vsc2); 8820 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 8821 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2 8822 8823 res_i = (vsc1 != vsc2); 8824 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 8825 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0 8826 8827 res_i = (vsc1 < vsc2); 8828 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8829 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8830 8831 res_i = (vsc1 > vsc2); 8832 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8833 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8834 8835 res_i = (vsc1 <= vsc2); 8836 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8837 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8838 8839 res_i = (vsc1 >= vsc2); 8840 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8841 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8842 8843 vector unsigned char vuc1 = (vector unsigned char)(1); 8844 vector unsigned char vuc2 = (vector unsigned char)(2); 8845 res_i = (vuc1 == vuc2); 8846 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 8847 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2 8848 8849 res_i = (vuc1 != vuc2); 8850 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 8851 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0 8852 8853 res_i = (vuc1 < vuc2); 8854 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8855 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8856 8857 res_i = (vuc1 > vuc2); 8858 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8859 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8860 8861 res_i = (vuc1 <= vuc2); 8862 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8863 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8864 8865 res_i = (vuc1 >= vuc2); 8866 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8867 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8868 8869 vector short vs1 = (vector short)(-1); 8870 vector short vs2 = (vector short)(-2); 8871 res_i = (vs1 == vs2); 8872 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 8873 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2 8874 8875 res_i = (vs1 != vs2); 8876 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 8877 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0 8878 8879 res_i = (vs1 < vs2); 8880 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8881 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8882 8883 res_i = (vs1 > vs2); 8884 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8885 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8886 8887 res_i = (vs1 <= vs2); 8888 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8889 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8890 8891 res_i = (vs1 >= vs2); 8892 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8893 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8894 8895 vector unsigned short vus1 = (vector unsigned short)(1); 8896 vector unsigned short vus2 = (vector unsigned short)(2); 8897 res_i = (vus1 == vus2); 8898 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 8899 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2 8900 8901 res_i = (vus1 != vus2); 8902 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 8903 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0 8904 8905 res_i = (vus1 < vus2); 8906 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8907 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8908 8909 res_i = (vus1 > vus2); 8910 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8911 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8912 8913 res_i = (vus1 <= vus2); 8914 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8915 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8916 8917 res_i = (vus1 >= vus2); 8918 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8919 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8920 8921 vector int vi1 = (vector int)(-1); 8922 vector int vi2 = (vector int)(-2); 8923 res_i = (vi1 == vi2); 8924 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 8925 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2 8926 8927 res_i = (vi1 != vi2); 8928 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 8929 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0 8930 8931 res_i = (vi1 < vi2); 8932 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8933 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8934 8935 res_i = (vi1 > vi2); 8936 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8937 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8938 8939 res_i = (vi1 <= vi2); 8940 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8941 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8942 8943 res_i = (vi1 >= vi2); 8944 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8945 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8946 8947 vector unsigned int vui1 = (vector unsigned int)(1); 8948 vector unsigned int vui2 = (vector unsigned int)(2); 8949 res_i = (vui1 == vui2); 8950 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 8951 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2 8952 8953 res_i = (vui1 != vui2); 8954 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 8955 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0 8956 8957 res_i = (vui1 < vui2); 8958 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8959 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8960 8961 res_i = (vui1 > vui2); 8962 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8963 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8964 8965 res_i = (vui1 <= vui2); 8966 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8967 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8968 8969 res_i = (vui1 >= vui2); 8970 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8971 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8972 8973 vector float vf1 = (vector float)(1.0); 8974 vector float vf2 = (vector float)(2.0); 8975 res_i = (vf1 == vf2); 8976 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 8977 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 8978 8979 res_i = (vf1 != vf2); 8980 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 8981 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 8982 8983 res_i = (vf1 < vf2); 8984 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8985 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8986 8987 res_i = (vf1 > vf2); 8988 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8989 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8990 8991 res_i = (vf1 <= vf2); 8992 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8993 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8994 8995 res_i = (vf1 >= vf2); 8996 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8997 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8998 } 8999