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