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