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, 0); 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(0); 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: @llvm.ppc.altivec.vperm 3262 3263 res_vuc = vec_sld(vuc, vuc, 0); 3264 // CHECK: @llvm.ppc.altivec.vperm 3265 // CHECK-LE: @llvm.ppc.altivec.vperm 3266 3267 res_vs = vec_sld(vs, vs, 0); 3268 // CHECK: @llvm.ppc.altivec.vperm 3269 // CHECK-LE: @llvm.ppc.altivec.vperm 3270 3271 res_vus = vec_sld(vus, vus, 0); 3272 // CHECK: @llvm.ppc.altivec.vperm 3273 // CHECK-LE: @llvm.ppc.altivec.vperm 3274 3275 res_vp = vec_sld(vp, vp, 0); 3276 // CHECK: @llvm.ppc.altivec.vperm 3277 // CHECK-LE: @llvm.ppc.altivec.vperm 3278 3279 res_vi = vec_sld(vi, vi, 0); 3280 // CHECK: @llvm.ppc.altivec.vperm 3281 // CHECK-LE: @llvm.ppc.altivec.vperm 3282 3283 res_vui = vec_sld(vui, vui, 0); 3284 // CHECK: @llvm.ppc.altivec.vperm 3285 // CHECK-LE: @llvm.ppc.altivec.vperm 3286 3287 res_vf = vec_sld(vf, vf, 0); 3288 // CHECK: @llvm.ppc.altivec.vperm 3289 // CHECK-LE: @llvm.ppc.altivec.vperm 3290 3291 res_vsc = vec_vsldoi(vsc, vsc, 0); 3292 // CHECK: @llvm.ppc.altivec.vperm 3293 // CHECK-LE: @llvm.ppc.altivec.vperm 3294 3295 res_vuc = vec_vsldoi(vuc, vuc, 0); 3296 // CHECK: @llvm.ppc.altivec.vperm 3297 // CHECK-LE: @llvm.ppc.altivec.vperm 3298 3299 res_vs = vec_vsldoi(vs, vs, 0); 3300 // CHECK: @llvm.ppc.altivec.vperm 3301 // CHECK-LE: @llvm.ppc.altivec.vperm 3302 3303 res_vus = vec_vsldoi(vus, vus, 0); 3304 // CHECK: @llvm.ppc.altivec.vperm 3305 // CHECK-LE: @llvm.ppc.altivec.vperm 3306 3307 res_vp = vec_vsldoi(vp, vp, 0); 3308 // CHECK: @llvm.ppc.altivec.vperm 3309 // CHECK-LE: @llvm.ppc.altivec.vperm 3310 3311 res_vi = vec_vsldoi(vi, vi, 0); 3312 // CHECK: @llvm.ppc.altivec.vperm 3313 // CHECK-LE: @llvm.ppc.altivec.vperm 3314 3315 res_vui = vec_vsldoi(vui, vui, 0); 3316 // CHECK: @llvm.ppc.altivec.vperm 3317 // CHECK-LE: @llvm.ppc.altivec.vperm 3318 3319 res_vf = vec_vsldoi(vf, vf, 0); 3320 // CHECK: @llvm.ppc.altivec.vperm 3321 // CHECK-LE: @llvm.ppc.altivec.vperm 3322 3323 /* vec_sll */ 3324 res_vsc = vec_sll(vsc, vuc); 3325 // CHECK: @llvm.ppc.altivec.vsl 3326 // CHECK-LE: @llvm.ppc.altivec.vsl 3327 3328 res_vsc = vec_sll(vsc, vus); 3329 // CHECK: @llvm.ppc.altivec.vsl 3330 // CHECK-LE: @llvm.ppc.altivec.vsl 3331 3332 res_vsc = vec_sll(vsc, vui); 3333 // CHECK: @llvm.ppc.altivec.vsl 3334 // CHECK-LE: @llvm.ppc.altivec.vsl 3335 3336 res_vuc = vec_sll(vuc, vuc); 3337 // CHECK: @llvm.ppc.altivec.vsl 3338 // CHECK-LE: @llvm.ppc.altivec.vsl 3339 3340 res_vuc = vec_sll(vuc, vus); 3341 // CHECK: @llvm.ppc.altivec.vsl 3342 // CHECK-LE: @llvm.ppc.altivec.vsl 3343 3344 res_vuc = vec_sll(vuc, vui); 3345 // CHECK: @llvm.ppc.altivec.vsl 3346 // CHECK-LE: @llvm.ppc.altivec.vsl 3347 3348 res_vbc = vec_sll(vbc, vuc); 3349 // CHECK: @llvm.ppc.altivec.vsl 3350 // CHECK-LE: @llvm.ppc.altivec.vsl 3351 3352 res_vbc = vec_sll(vbc, vus); 3353 // CHECK: @llvm.ppc.altivec.vsl 3354 // CHECK-LE: @llvm.ppc.altivec.vsl 3355 3356 res_vbc = vec_sll(vbc, vui); 3357 // CHECK: @llvm.ppc.altivec.vsl 3358 // CHECK-LE: @llvm.ppc.altivec.vsl 3359 3360 res_vs = vec_sll(vs, vuc); 3361 // CHECK: @llvm.ppc.altivec.vsl 3362 // CHECK-LE: @llvm.ppc.altivec.vsl 3363 3364 res_vs = vec_sll(vs, vus); 3365 // CHECK: @llvm.ppc.altivec.vsl 3366 // CHECK-LE: @llvm.ppc.altivec.vsl 3367 3368 res_vs = vec_sll(vs, vui); 3369 // CHECK: @llvm.ppc.altivec.vsl 3370 // CHECK-LE: @llvm.ppc.altivec.vsl 3371 3372 res_vus = vec_sll(vus, vuc); 3373 // CHECK: @llvm.ppc.altivec.vsl 3374 // CHECK-LE: @llvm.ppc.altivec.vsl 3375 3376 res_vus = vec_sll(vus, vus); 3377 // CHECK: @llvm.ppc.altivec.vsl 3378 // CHECK-LE: @llvm.ppc.altivec.vsl 3379 3380 res_vus = vec_sll(vus, vui); 3381 // CHECK: @llvm.ppc.altivec.vsl 3382 // CHECK-LE: @llvm.ppc.altivec.vsl 3383 3384 res_vbs = vec_sll(vbs, vuc); 3385 // CHECK: @llvm.ppc.altivec.vsl 3386 // CHECK-LE: @llvm.ppc.altivec.vsl 3387 3388 res_vbs = vec_sll(vbs, vus); 3389 // CHECK: @llvm.ppc.altivec.vsl 3390 // CHECK-LE: @llvm.ppc.altivec.vsl 3391 3392 res_vbs = vec_sll(vbs, vui); 3393 // CHECK: @llvm.ppc.altivec.vsl 3394 // CHECK-LE: @llvm.ppc.altivec.vsl 3395 3396 res_vp = vec_sll(vp, vuc); 3397 // CHECK: @llvm.ppc.altivec.vsl 3398 // CHECK-LE: @llvm.ppc.altivec.vsl 3399 3400 res_vp = vec_sll(vp, vus); 3401 // CHECK: @llvm.ppc.altivec.vsl 3402 // CHECK-LE: @llvm.ppc.altivec.vsl 3403 3404 res_vp = vec_sll(vp, vui); 3405 // CHECK: @llvm.ppc.altivec.vsl 3406 // CHECK-LE: @llvm.ppc.altivec.vsl 3407 3408 res_vi = vec_sll(vi, vuc); 3409 // CHECK: @llvm.ppc.altivec.vsl 3410 // CHECK-LE: @llvm.ppc.altivec.vsl 3411 3412 res_vi = vec_sll(vi, vus); 3413 // CHECK: @llvm.ppc.altivec.vsl 3414 // CHECK-LE: @llvm.ppc.altivec.vsl 3415 3416 res_vi = vec_sll(vi, vui); 3417 // CHECK: @llvm.ppc.altivec.vsl 3418 // CHECK-LE: @llvm.ppc.altivec.vsl 3419 3420 res_vui = vec_sll(vui, vuc); 3421 // CHECK: @llvm.ppc.altivec.vsl 3422 // CHECK-LE: @llvm.ppc.altivec.vsl 3423 3424 res_vui = vec_sll(vui, vus); 3425 // CHECK: @llvm.ppc.altivec.vsl 3426 // CHECK-LE: @llvm.ppc.altivec.vsl 3427 3428 res_vui = vec_sll(vui, vui); 3429 // CHECK: @llvm.ppc.altivec.vsl 3430 // CHECK-LE: @llvm.ppc.altivec.vsl 3431 3432 res_vbi = vec_sll(vbi, vuc); 3433 // CHECK: @llvm.ppc.altivec.vsl 3434 // CHECK-LE: @llvm.ppc.altivec.vsl 3435 3436 res_vbi = vec_sll(vbi, vus); 3437 // CHECK: @llvm.ppc.altivec.vsl 3438 // CHECK-LE: @llvm.ppc.altivec.vsl 3439 3440 res_vbi = vec_sll(vbi, vui); 3441 // CHECK: @llvm.ppc.altivec.vsl 3442 // CHECK-LE: @llvm.ppc.altivec.vsl 3443 3444 res_vsc = vec_vsl(vsc, vuc); 3445 // CHECK: @llvm.ppc.altivec.vsl 3446 // CHECK-LE: @llvm.ppc.altivec.vsl 3447 3448 res_vsc = vec_vsl(vsc, vus); 3449 // CHECK: @llvm.ppc.altivec.vsl 3450 // CHECK-LE: @llvm.ppc.altivec.vsl 3451 3452 res_vsc = vec_vsl(vsc, vui); 3453 // CHECK: @llvm.ppc.altivec.vsl 3454 // CHECK-LE: @llvm.ppc.altivec.vsl 3455 3456 res_vuc = vec_vsl(vuc, vuc); 3457 // CHECK: @llvm.ppc.altivec.vsl 3458 // CHECK-LE: @llvm.ppc.altivec.vsl 3459 3460 res_vuc = vec_vsl(vuc, vus); 3461 // CHECK: @llvm.ppc.altivec.vsl 3462 // CHECK-LE: @llvm.ppc.altivec.vsl 3463 3464 res_vuc = vec_vsl(vuc, vui); 3465 // CHECK: @llvm.ppc.altivec.vsl 3466 // CHECK-LE: @llvm.ppc.altivec.vsl 3467 3468 res_vbc = vec_vsl(vbc, vuc); 3469 // CHECK: @llvm.ppc.altivec.vsl 3470 // CHECK-LE: @llvm.ppc.altivec.vsl 3471 3472 res_vbc = vec_vsl(vbc, vus); 3473 // CHECK: @llvm.ppc.altivec.vsl 3474 // CHECK-LE: @llvm.ppc.altivec.vsl 3475 3476 res_vbc = vec_vsl(vbc, vui); 3477 // CHECK: @llvm.ppc.altivec.vsl 3478 // CHECK-LE: @llvm.ppc.altivec.vsl 3479 3480 res_vs = vec_vsl(vs, vuc); 3481 // CHECK: @llvm.ppc.altivec.vsl 3482 // CHECK-LE: @llvm.ppc.altivec.vsl 3483 3484 res_vs = vec_vsl(vs, vus); 3485 // CHECK: @llvm.ppc.altivec.vsl 3486 // CHECK-LE: @llvm.ppc.altivec.vsl 3487 3488 res_vs = vec_vsl(vs, vui); 3489 // CHECK: @llvm.ppc.altivec.vsl 3490 // CHECK-LE: @llvm.ppc.altivec.vsl 3491 3492 res_vus = vec_vsl(vus, vuc); 3493 // CHECK: @llvm.ppc.altivec.vsl 3494 // CHECK-LE: @llvm.ppc.altivec.vsl 3495 3496 res_vus = vec_vsl(vus, vus); 3497 // CHECK: @llvm.ppc.altivec.vsl 3498 // CHECK-LE: @llvm.ppc.altivec.vsl 3499 3500 res_vus = vec_vsl(vus, vui); 3501 // CHECK: @llvm.ppc.altivec.vsl 3502 // CHECK-LE: @llvm.ppc.altivec.vsl 3503 3504 res_vbs = vec_vsl(vbs, vuc); 3505 // CHECK: @llvm.ppc.altivec.vsl 3506 // CHECK-LE: @llvm.ppc.altivec.vsl 3507 3508 res_vbs = vec_vsl(vbs, vus); 3509 // CHECK: @llvm.ppc.altivec.vsl 3510 // CHECK-LE: @llvm.ppc.altivec.vsl 3511 3512 res_vbs = vec_vsl(vbs, vui); 3513 // CHECK: @llvm.ppc.altivec.vsl 3514 // CHECK-LE: @llvm.ppc.altivec.vsl 3515 3516 res_vp = vec_vsl(vp, vuc); 3517 // CHECK: @llvm.ppc.altivec.vsl 3518 // CHECK-LE: @llvm.ppc.altivec.vsl 3519 3520 res_vp = vec_vsl(vp, vus); 3521 // CHECK: @llvm.ppc.altivec.vsl 3522 // CHECK-LE: @llvm.ppc.altivec.vsl 3523 3524 res_vp = vec_vsl(vp, vui); 3525 // CHECK: @llvm.ppc.altivec.vsl 3526 // CHECK-LE: @llvm.ppc.altivec.vsl 3527 3528 res_vi = vec_vsl(vi, vuc); 3529 // CHECK: @llvm.ppc.altivec.vsl 3530 // CHECK-LE: @llvm.ppc.altivec.vsl 3531 3532 res_vi = vec_vsl(vi, vus); 3533 // CHECK: @llvm.ppc.altivec.vsl 3534 // CHECK-LE: @llvm.ppc.altivec.vsl 3535 3536 res_vi = vec_vsl(vi, vui); 3537 // CHECK: @llvm.ppc.altivec.vsl 3538 // CHECK-LE: @llvm.ppc.altivec.vsl 3539 3540 res_vui = vec_vsl(vui, vuc); 3541 // CHECK: @llvm.ppc.altivec.vsl 3542 // CHECK-LE: @llvm.ppc.altivec.vsl 3543 3544 res_vui = vec_vsl(vui, vus); 3545 // CHECK: @llvm.ppc.altivec.vsl 3546 // CHECK-LE: @llvm.ppc.altivec.vsl 3547 3548 res_vui = vec_vsl(vui, vui); 3549 // CHECK: @llvm.ppc.altivec.vsl 3550 // CHECK-LE: @llvm.ppc.altivec.vsl 3551 3552 res_vbi = vec_vsl(vbi, vuc); 3553 // CHECK: @llvm.ppc.altivec.vsl 3554 // CHECK-LE: @llvm.ppc.altivec.vsl 3555 3556 res_vbi = vec_vsl(vbi, vus); 3557 // CHECK: @llvm.ppc.altivec.vsl 3558 // CHECK-LE: @llvm.ppc.altivec.vsl 3559 3560 res_vbi = vec_vsl(vbi, vui); 3561 // CHECK: @llvm.ppc.altivec.vsl 3562 // CHECK-LE: @llvm.ppc.altivec.vsl 3563 3564 /* vec_slo */ 3565 res_vsc = vec_slo(vsc, vsc); 3566 // CHECK: @llvm.ppc.altivec.vslo 3567 // CHECK-LE: @llvm.ppc.altivec.vslo 3568 3569 res_vsc = vec_slo(vsc, vuc); 3570 // CHECK: @llvm.ppc.altivec.vslo 3571 // CHECK-LE: @llvm.ppc.altivec.vslo 3572 3573 res_vuc = vec_slo(vuc, vsc); 3574 // CHECK: @llvm.ppc.altivec.vslo 3575 // CHECK-LE: @llvm.ppc.altivec.vslo 3576 3577 res_vuc = vec_slo(vuc, vuc); 3578 // CHECK: @llvm.ppc.altivec.vslo 3579 // CHECK-LE: @llvm.ppc.altivec.vslo 3580 3581 res_vs = vec_slo(vs, vsc); 3582 // CHECK: @llvm.ppc.altivec.vslo 3583 // CHECK-LE: @llvm.ppc.altivec.vslo 3584 3585 res_vs = vec_slo(vs, vuc); 3586 // CHECK: @llvm.ppc.altivec.vslo 3587 // CHECK-LE: @llvm.ppc.altivec.vslo 3588 3589 res_vus = vec_slo(vus, vsc); 3590 // CHECK: @llvm.ppc.altivec.vslo 3591 // CHECK-LE: @llvm.ppc.altivec.vslo 3592 3593 res_vus = vec_slo(vus, vuc); 3594 // CHECK: @llvm.ppc.altivec.vslo 3595 // CHECK-LE: @llvm.ppc.altivec.vslo 3596 3597 res_vp = vec_slo(vp, vsc); 3598 // CHECK: @llvm.ppc.altivec.vslo 3599 // CHECK-LE: @llvm.ppc.altivec.vslo 3600 3601 res_vp = vec_slo(vp, vuc); 3602 // CHECK: @llvm.ppc.altivec.vslo 3603 // CHECK-LE: @llvm.ppc.altivec.vslo 3604 3605 res_vi = vec_slo(vi, vsc); 3606 // CHECK: @llvm.ppc.altivec.vslo 3607 // CHECK-LE: @llvm.ppc.altivec.vslo 3608 3609 res_vi = vec_slo(vi, vuc); 3610 // CHECK: @llvm.ppc.altivec.vslo 3611 // CHECK-LE: @llvm.ppc.altivec.vslo 3612 3613 res_vui = vec_slo(vui, vsc); 3614 // CHECK: @llvm.ppc.altivec.vslo 3615 // CHECK-LE: @llvm.ppc.altivec.vslo 3616 3617 res_vui = vec_slo(vui, vuc); 3618 // CHECK: @llvm.ppc.altivec.vslo 3619 // CHECK-LE: @llvm.ppc.altivec.vslo 3620 3621 res_vf = vec_slo(vf, vsc); 3622 // CHECK: @llvm.ppc.altivec.vslo 3623 // CHECK-LE: @llvm.ppc.altivec.vslo 3624 3625 res_vf = vec_slo(vf, vuc); 3626 // CHECK: @llvm.ppc.altivec.vslo 3627 // CHECK-LE: @llvm.ppc.altivec.vslo 3628 3629 res_vsc = vec_vslo(vsc, vsc); 3630 // CHECK: @llvm.ppc.altivec.vslo 3631 // CHECK-LE: @llvm.ppc.altivec.vslo 3632 3633 res_vsc = vec_vslo(vsc, vuc); 3634 // CHECK: @llvm.ppc.altivec.vslo 3635 // CHECK-LE: @llvm.ppc.altivec.vslo 3636 3637 res_vuc = vec_vslo(vuc, vsc); 3638 // CHECK: @llvm.ppc.altivec.vslo 3639 // CHECK-LE: @llvm.ppc.altivec.vslo 3640 3641 res_vuc = vec_vslo(vuc, vuc); 3642 // CHECK: @llvm.ppc.altivec.vslo 3643 // CHECK-LE: @llvm.ppc.altivec.vslo 3644 3645 res_vs = vec_vslo(vs, vsc); 3646 // CHECK: @llvm.ppc.altivec.vslo 3647 // CHECK-LE: @llvm.ppc.altivec.vslo 3648 3649 res_vs = vec_vslo(vs, vuc); 3650 // CHECK: @llvm.ppc.altivec.vslo 3651 // CHECK-LE: @llvm.ppc.altivec.vslo 3652 3653 res_vus = vec_vslo(vus, vsc); 3654 // CHECK: @llvm.ppc.altivec.vslo 3655 // CHECK-LE: @llvm.ppc.altivec.vslo 3656 3657 res_vus = vec_vslo(vus, vuc); 3658 // CHECK: @llvm.ppc.altivec.vslo 3659 // CHECK-LE: @llvm.ppc.altivec.vslo 3660 3661 res_vp = vec_vslo(vp, vsc); 3662 // CHECK: @llvm.ppc.altivec.vslo 3663 // CHECK-LE: @llvm.ppc.altivec.vslo 3664 3665 res_vp = vec_vslo(vp, vuc); 3666 // CHECK: @llvm.ppc.altivec.vslo 3667 // CHECK-LE: @llvm.ppc.altivec.vslo 3668 3669 res_vi = vec_vslo(vi, vsc); 3670 // CHECK: @llvm.ppc.altivec.vslo 3671 // CHECK-LE: @llvm.ppc.altivec.vslo 3672 3673 res_vi = vec_vslo(vi, vuc); 3674 // CHECK: @llvm.ppc.altivec.vslo 3675 // CHECK-LE: @llvm.ppc.altivec.vslo 3676 3677 res_vui = vec_vslo(vui, vsc); 3678 // CHECK: @llvm.ppc.altivec.vslo 3679 // CHECK-LE: @llvm.ppc.altivec.vslo 3680 3681 res_vui = vec_vslo(vui, vuc); 3682 // CHECK: @llvm.ppc.altivec.vslo 3683 // CHECK-LE: @llvm.ppc.altivec.vslo 3684 3685 res_vf = vec_vslo(vf, vsc); 3686 // CHECK: @llvm.ppc.altivec.vslo 3687 // CHECK-LE: @llvm.ppc.altivec.vslo 3688 3689 res_vf = vec_vslo(vf, vuc); 3690 // CHECK: @llvm.ppc.altivec.vslo 3691 // CHECK-LE: @llvm.ppc.altivec.vslo 3692 3693 /* vec_splat */ 3694 res_vsc = vec_splat(vsc, 0); 3695 // CHECK: @llvm.ppc.altivec.vperm 3696 // CHECK-LE: @llvm.ppc.altivec.vperm 3697 3698 res_vuc = vec_splat(vuc, 0); 3699 // CHECK: @llvm.ppc.altivec.vperm 3700 // CHECK-LE: @llvm.ppc.altivec.vperm 3701 3702 res_vbc = vec_splat(vbc, 0); 3703 // CHECK: @llvm.ppc.altivec.vperm 3704 // CHECK-LE: @llvm.ppc.altivec.vperm 3705 3706 res_vs = vec_splat(vs, 0); 3707 // CHECK: @llvm.ppc.altivec.vperm 3708 // CHECK-LE: @llvm.ppc.altivec.vperm 3709 3710 res_vus = vec_splat(vus, 0); 3711 // CHECK: @llvm.ppc.altivec.vperm 3712 // CHECK-LE: @llvm.ppc.altivec.vperm 3713 3714 res_vbs = vec_splat(vbs, 0); 3715 // CHECK: @llvm.ppc.altivec.vperm 3716 // CHECK-LE: @llvm.ppc.altivec.vperm 3717 3718 res_vp = vec_splat(vp, 0); 3719 // CHECK: @llvm.ppc.altivec.vperm 3720 // CHECK-LE: @llvm.ppc.altivec.vperm 3721 3722 res_vi = vec_splat(vi, 0); 3723 // CHECK: @llvm.ppc.altivec.vperm 3724 // CHECK-LE: @llvm.ppc.altivec.vperm 3725 3726 res_vui = vec_splat(vui, 0); 3727 // CHECK: @llvm.ppc.altivec.vperm 3728 // CHECK-LE: @llvm.ppc.altivec.vperm 3729 3730 res_vbi = vec_splat(vbi, 0); 3731 // CHECK: @llvm.ppc.altivec.vperm 3732 // CHECK-LE: @llvm.ppc.altivec.vperm 3733 3734 res_vf = vec_splat(vf, 0); 3735 // CHECK: @llvm.ppc.altivec.vperm 3736 // CHECK-LE: @llvm.ppc.altivec.vperm 3737 3738 res_vsc = vec_vspltb(vsc, 0); 3739 // CHECK: @llvm.ppc.altivec.vperm 3740 // CHECK-LE: @llvm.ppc.altivec.vperm 3741 3742 res_vuc = vec_vspltb(vuc, 0); 3743 // CHECK: @llvm.ppc.altivec.vperm 3744 // CHECK-LE: @llvm.ppc.altivec.vperm 3745 3746 res_vbc = vec_vspltb(vbc, 0); 3747 // CHECK: @llvm.ppc.altivec.vperm 3748 // CHECK-LE: @llvm.ppc.altivec.vperm 3749 3750 res_vs = vec_vsplth(vs, 0); 3751 // CHECK: @llvm.ppc.altivec.vperm 3752 // CHECK-LE: @llvm.ppc.altivec.vperm 3753 3754 res_vus = vec_vsplth(vus, 0); 3755 // CHECK: @llvm.ppc.altivec.vperm 3756 // CHECK-LE: @llvm.ppc.altivec.vperm 3757 3758 res_vbs = vec_vsplth(vbs, 0); 3759 // CHECK: @llvm.ppc.altivec.vperm 3760 // CHECK-LE: @llvm.ppc.altivec.vperm 3761 3762 res_vp = vec_vsplth(vp, 0); 3763 // CHECK: @llvm.ppc.altivec.vperm 3764 // CHECK-LE: @llvm.ppc.altivec.vperm 3765 3766 res_vi = vec_vspltw(vi, 0); 3767 // CHECK: @llvm.ppc.altivec.vperm 3768 // CHECK-LE: @llvm.ppc.altivec.vperm 3769 3770 res_vui = vec_vspltw(vui, 0); 3771 // CHECK: @llvm.ppc.altivec.vperm 3772 // CHECK-LE: @llvm.ppc.altivec.vperm 3773 3774 res_vbi = vec_vspltw(vbi, 0); 3775 // CHECK: @llvm.ppc.altivec.vperm 3776 // CHECK-LE: @llvm.ppc.altivec.vperm 3777 3778 res_vf = vec_vspltw(vf, 0); 3779 // CHECK: @llvm.ppc.altivec.vperm 3780 // CHECK-LE: @llvm.ppc.altivec.vperm 3781 3782 /* vec_splat_s8 */ 3783 res_vsc = vec_splat_s8(0x09); // TODO: add check 3784 res_vsc = vec_vspltisb(0x09); // TODO: add check 3785 3786 /* vec_splat_s16 */ 3787 res_vs = vec_splat_s16(0x09); // TODO: add check 3788 res_vs = vec_vspltish(0x09); // TODO: add check 3789 3790 /* vec_splat_s32 */ 3791 res_vi = vec_splat_s32(0x09); // TODO: add check 3792 res_vi = vec_vspltisw(0x09); // TODO: add check 3793 3794 /* vec_splat_u8 */ 3795 res_vuc = vec_splat_u8(0x09); // TODO: add check 3796 3797 /* vec_splat_u16 */ 3798 res_vus = vec_splat_u16(0x09); // TODO: add check 3799 3800 /* vec_splat_u32 */ 3801 res_vui = vec_splat_u32(0x09); // TODO: add check 3802 3803 /* vec_sr */ 3804 res_vsc = vec_sr(vsc, vuc); 3805 // CHECK: shr <16 x i8> 3806 // CHECK-LE: shr <16 x i8> 3807 3808 res_vuc = vec_sr(vuc, vuc); 3809 // CHECK: shr <16 x i8> 3810 // CHECK-LE: shr <16 x i8> 3811 3812 res_vs = vec_sr(vs, vus); 3813 // CHECK: shr <8 x i16> 3814 // CHECK-LE: shr <8 x i16> 3815 3816 res_vus = vec_sr(vus, vus); 3817 // CHECK: shr <8 x i16> 3818 // CHECK-LE: shr <8 x i16> 3819 3820 res_vi = vec_sr(vi, vui); 3821 // CHECK: shr <4 x i32> 3822 // CHECK-LE: shr <4 x i32> 3823 3824 res_vui = vec_sr(vui, vui); 3825 // CHECK: shr <4 x i32> 3826 // CHECK-LE: shr <4 x i32> 3827 3828 res_vsc = vec_vsrb(vsc, vuc); 3829 // CHECK: shr <16 x i8> 3830 // CHECK-LE: shr <16 x i8> 3831 3832 res_vuc = vec_vsrb(vuc, vuc); 3833 // CHECK: shr <16 x i8> 3834 // CHECK-LE: shr <16 x i8> 3835 3836 res_vs = vec_vsrh(vs, vus); 3837 // CHECK: shr <8 x i16> 3838 // CHECK-LE: shr <8 x i16> 3839 3840 res_vus = vec_vsrh(vus, vus); 3841 // CHECK: shr <8 x i16> 3842 // CHECK-LE: shr <8 x i16> 3843 3844 res_vi = vec_vsrw(vi, vui); 3845 // CHECK: shr <4 x i32> 3846 // CHECK-LE: shr <4 x i32> 3847 3848 res_vui = vec_vsrw(vui, vui); 3849 // CHECK: shr <4 x i32> 3850 // CHECK-LE: shr <4 x i32> 3851 3852 /* vec_sra */ 3853 res_vsc = vec_sra(vsc, vuc); 3854 // CHECK: @llvm.ppc.altivec.vsrab 3855 // CHECK-LE: @llvm.ppc.altivec.vsrab 3856 3857 res_vuc = vec_sra(vuc, vuc); 3858 // CHECK: @llvm.ppc.altivec.vsrab 3859 // CHECK-LE: @llvm.ppc.altivec.vsrab 3860 3861 res_vs = vec_sra(vs, vus); 3862 // CHECK: @llvm.ppc.altivec.vsrah 3863 // CHECK-LE: @llvm.ppc.altivec.vsrah 3864 3865 res_vus = vec_sra(vus, vus); 3866 // CHECK: @llvm.ppc.altivec.vsrah 3867 // CHECK-LE: @llvm.ppc.altivec.vsrah 3868 3869 res_vi = vec_sra(vi, vui); 3870 // CHECK: @llvm.ppc.altivec.vsraw 3871 // CHECK-LE: @llvm.ppc.altivec.vsraw 3872 3873 res_vui = vec_sra(vui, vui); 3874 // CHECK: @llvm.ppc.altivec.vsraw 3875 // CHECK-LE: @llvm.ppc.altivec.vsraw 3876 3877 res_vsc = vec_vsrab(vsc, vuc); 3878 // CHECK: @llvm.ppc.altivec.vsrab 3879 // CHECK-LE: @llvm.ppc.altivec.vsrab 3880 3881 res_vuc = vec_vsrab(vuc, vuc); 3882 // CHECK: @llvm.ppc.altivec.vsrab 3883 // CHECK-LE: @llvm.ppc.altivec.vsrab 3884 3885 res_vs = vec_vsrah(vs, vus); 3886 // CHECK: @llvm.ppc.altivec.vsrah 3887 // CHECK-LE: @llvm.ppc.altivec.vsrah 3888 3889 res_vus = vec_vsrah(vus, vus); 3890 // CHECK: @llvm.ppc.altivec.vsrah 3891 // CHECK-LE: @llvm.ppc.altivec.vsrah 3892 3893 res_vi = vec_vsraw(vi, vui); 3894 // CHECK: @llvm.ppc.altivec.vsraw 3895 // CHECK-LE: @llvm.ppc.altivec.vsraw 3896 3897 res_vui = vec_vsraw(vui, vui); 3898 // CHECK: @llvm.ppc.altivec.vsraw 3899 // CHECK-LE: @llvm.ppc.altivec.vsraw 3900 3901 /* vec_srl */ 3902 res_vsc = vec_srl(vsc, vuc); 3903 // CHECK: @llvm.ppc.altivec.vsr 3904 // CHECK-LE: @llvm.ppc.altivec.vsr 3905 3906 res_vsc = vec_srl(vsc, vus); 3907 // CHECK: @llvm.ppc.altivec.vsr 3908 // CHECK-LE: @llvm.ppc.altivec.vsr 3909 3910 res_vsc = vec_srl(vsc, vui); 3911 // CHECK: @llvm.ppc.altivec.vsr 3912 // CHECK-LE: @llvm.ppc.altivec.vsr 3913 3914 res_vuc = vec_srl(vuc, vuc); 3915 // CHECK: @llvm.ppc.altivec.vsr 3916 // CHECK-LE: @llvm.ppc.altivec.vsr 3917 3918 res_vuc = vec_srl(vuc, vus); 3919 // CHECK: @llvm.ppc.altivec.vsr 3920 // CHECK-LE: @llvm.ppc.altivec.vsr 3921 3922 res_vuc = vec_srl(vuc, vui); 3923 // CHECK: @llvm.ppc.altivec.vsr 3924 // CHECK-LE: @llvm.ppc.altivec.vsr 3925 3926 res_vbc = vec_srl(vbc, vuc); 3927 // CHECK: @llvm.ppc.altivec.vsr 3928 // CHECK-LE: @llvm.ppc.altivec.vsr 3929 3930 res_vbc = vec_srl(vbc, vus); 3931 // CHECK: @llvm.ppc.altivec.vsr 3932 // CHECK-LE: @llvm.ppc.altivec.vsr 3933 3934 res_vbc = vec_srl(vbc, vui); 3935 // CHECK: @llvm.ppc.altivec.vsr 3936 // CHECK-LE: @llvm.ppc.altivec.vsr 3937 3938 res_vs = vec_srl(vs, vuc); 3939 // CHECK: @llvm.ppc.altivec.vsr 3940 // CHECK-LE: @llvm.ppc.altivec.vsr 3941 3942 res_vs = vec_srl(vs, vus); 3943 // CHECK: @llvm.ppc.altivec.vsr 3944 // CHECK-LE: @llvm.ppc.altivec.vsr 3945 3946 res_vs = vec_srl(vs, vui); 3947 // CHECK: @llvm.ppc.altivec.vsr 3948 // CHECK-LE: @llvm.ppc.altivec.vsr 3949 3950 res_vus = vec_srl(vus, vuc); 3951 // CHECK: @llvm.ppc.altivec.vsr 3952 // CHECK-LE: @llvm.ppc.altivec.vsr 3953 3954 res_vus = vec_srl(vus, vus); 3955 // CHECK: @llvm.ppc.altivec.vsr 3956 // CHECK-LE: @llvm.ppc.altivec.vsr 3957 3958 res_vus = vec_srl(vus, vui); 3959 // CHECK: @llvm.ppc.altivec.vsr 3960 // CHECK-LE: @llvm.ppc.altivec.vsr 3961 3962 res_vbs = vec_srl(vbs, vuc); 3963 // CHECK: @llvm.ppc.altivec.vsr 3964 // CHECK-LE: @llvm.ppc.altivec.vsr 3965 3966 res_vbs = vec_srl(vbs, vus); 3967 // CHECK: @llvm.ppc.altivec.vsr 3968 // CHECK-LE: @llvm.ppc.altivec.vsr 3969 3970 res_vbs = vec_srl(vbs, vui); 3971 // CHECK: @llvm.ppc.altivec.vsr 3972 // CHECK-LE: @llvm.ppc.altivec.vsr 3973 3974 res_vp = vec_srl(vp, vuc); 3975 // CHECK: @llvm.ppc.altivec.vsr 3976 // CHECK-LE: @llvm.ppc.altivec.vsr 3977 3978 res_vp = vec_srl(vp, vus); 3979 // CHECK: @llvm.ppc.altivec.vsr 3980 // CHECK-LE: @llvm.ppc.altivec.vsr 3981 3982 res_vp = vec_srl(vp, vui); 3983 // CHECK: @llvm.ppc.altivec.vsr 3984 // CHECK-LE: @llvm.ppc.altivec.vsr 3985 3986 res_vi = vec_srl(vi, vuc); 3987 // CHECK: @llvm.ppc.altivec.vsr 3988 // CHECK-LE: @llvm.ppc.altivec.vsr 3989 3990 res_vi = vec_srl(vi, vus); 3991 // CHECK: @llvm.ppc.altivec.vsr 3992 // CHECK-LE: @llvm.ppc.altivec.vsr 3993 3994 res_vi = vec_srl(vi, vui); 3995 // CHECK: @llvm.ppc.altivec.vsr 3996 // CHECK-LE: @llvm.ppc.altivec.vsr 3997 3998 res_vui = vec_srl(vui, vuc); 3999 // CHECK: @llvm.ppc.altivec.vsr 4000 // CHECK-LE: @llvm.ppc.altivec.vsr 4001 4002 res_vui = vec_srl(vui, vus); 4003 // CHECK: @llvm.ppc.altivec.vsr 4004 // CHECK-LE: @llvm.ppc.altivec.vsr 4005 4006 res_vui = vec_srl(vui, vui); 4007 // CHECK: @llvm.ppc.altivec.vsr 4008 // CHECK-LE: @llvm.ppc.altivec.vsr 4009 4010 res_vbi = vec_srl(vbi, vuc); 4011 // CHECK: @llvm.ppc.altivec.vsr 4012 // CHECK-LE: @llvm.ppc.altivec.vsr 4013 4014 res_vbi = vec_srl(vbi, vus); 4015 // CHECK: @llvm.ppc.altivec.vsr 4016 // CHECK-LE: @llvm.ppc.altivec.vsr 4017 4018 res_vbi = vec_srl(vbi, vui); 4019 // CHECK: @llvm.ppc.altivec.vsr 4020 // CHECK-LE: @llvm.ppc.altivec.vsr 4021 4022 res_vsc = vec_vsr(vsc, vuc); 4023 // CHECK: @llvm.ppc.altivec.vsr 4024 // CHECK-LE: @llvm.ppc.altivec.vsr 4025 4026 res_vsc = vec_vsr(vsc, vus); 4027 // CHECK: @llvm.ppc.altivec.vsr 4028 // CHECK-LE: @llvm.ppc.altivec.vsr 4029 4030 res_vsc = vec_vsr(vsc, vui); 4031 // CHECK: @llvm.ppc.altivec.vsr 4032 // CHECK-LE: @llvm.ppc.altivec.vsr 4033 4034 res_vuc = vec_vsr(vuc, vuc); 4035 // CHECK: @llvm.ppc.altivec.vsr 4036 // CHECK-LE: @llvm.ppc.altivec.vsr 4037 4038 res_vuc = vec_vsr(vuc, vus); 4039 // CHECK: @llvm.ppc.altivec.vsr 4040 // CHECK-LE: @llvm.ppc.altivec.vsr 4041 4042 res_vuc = vec_vsr(vuc, vui); 4043 // CHECK: @llvm.ppc.altivec.vsr 4044 // CHECK-LE: @llvm.ppc.altivec.vsr 4045 4046 res_vbc = vec_vsr(vbc, vuc); 4047 // CHECK: @llvm.ppc.altivec.vsr 4048 // CHECK-LE: @llvm.ppc.altivec.vsr 4049 4050 res_vbc = vec_vsr(vbc, vus); 4051 // CHECK: @llvm.ppc.altivec.vsr 4052 // CHECK-LE: @llvm.ppc.altivec.vsr 4053 4054 res_vbc = vec_vsr(vbc, vui); 4055 // CHECK: @llvm.ppc.altivec.vsr 4056 // CHECK-LE: @llvm.ppc.altivec.vsr 4057 4058 res_vs = vec_vsr(vs, vuc); 4059 // CHECK: @llvm.ppc.altivec.vsr 4060 // CHECK-LE: @llvm.ppc.altivec.vsr 4061 4062 res_vs = vec_vsr(vs, vus); 4063 // CHECK: @llvm.ppc.altivec.vsr 4064 // CHECK-LE: @llvm.ppc.altivec.vsr 4065 4066 res_vs = vec_vsr(vs, vui); 4067 // CHECK: @llvm.ppc.altivec.vsr 4068 // CHECK-LE: @llvm.ppc.altivec.vsr 4069 4070 res_vus = vec_vsr(vus, vuc); 4071 // CHECK: @llvm.ppc.altivec.vsr 4072 // CHECK-LE: @llvm.ppc.altivec.vsr 4073 4074 res_vus = vec_vsr(vus, vus); 4075 // CHECK: @llvm.ppc.altivec.vsr 4076 // CHECK-LE: @llvm.ppc.altivec.vsr 4077 4078 res_vus = vec_vsr(vus, vui); 4079 // CHECK: @llvm.ppc.altivec.vsr 4080 // CHECK-LE: @llvm.ppc.altivec.vsr 4081 4082 res_vbs = vec_vsr(vbs, vuc); 4083 // CHECK: @llvm.ppc.altivec.vsr 4084 // CHECK-LE: @llvm.ppc.altivec.vsr 4085 4086 res_vbs = vec_vsr(vbs, vus); 4087 // CHECK: @llvm.ppc.altivec.vsr 4088 // CHECK-LE: @llvm.ppc.altivec.vsr 4089 4090 res_vbs = vec_vsr(vbs, vui); 4091 // CHECK: @llvm.ppc.altivec.vsr 4092 // CHECK-LE: @llvm.ppc.altivec.vsr 4093 4094 res_vp = vec_vsr(vp, vuc); 4095 // CHECK: @llvm.ppc.altivec.vsr 4096 // CHECK-LE: @llvm.ppc.altivec.vsr 4097 4098 res_vp = vec_vsr(vp, vus); 4099 // CHECK: @llvm.ppc.altivec.vsr 4100 // CHECK-LE: @llvm.ppc.altivec.vsr 4101 4102 res_vp = vec_vsr(vp, vui); 4103 // CHECK: @llvm.ppc.altivec.vsr 4104 // CHECK-LE: @llvm.ppc.altivec.vsr 4105 4106 res_vi = vec_vsr(vi, vuc); 4107 // CHECK: @llvm.ppc.altivec.vsr 4108 // CHECK-LE: @llvm.ppc.altivec.vsr 4109 4110 res_vi = vec_vsr(vi, vus); 4111 // CHECK: @llvm.ppc.altivec.vsr 4112 // CHECK-LE: @llvm.ppc.altivec.vsr 4113 4114 res_vi = vec_vsr(vi, vui); 4115 // CHECK: @llvm.ppc.altivec.vsr 4116 // CHECK-LE: @llvm.ppc.altivec.vsr 4117 4118 res_vui = vec_vsr(vui, vuc); 4119 // CHECK: @llvm.ppc.altivec.vsr 4120 // CHECK-LE: @llvm.ppc.altivec.vsr 4121 4122 res_vui = vec_vsr(vui, vus); 4123 // CHECK: @llvm.ppc.altivec.vsr 4124 // CHECK-LE: @llvm.ppc.altivec.vsr 4125 4126 res_vui = vec_vsr(vui, vui); 4127 // CHECK: @llvm.ppc.altivec.vsr 4128 // CHECK-LE: @llvm.ppc.altivec.vsr 4129 4130 res_vbi = vec_vsr(vbi, vuc); 4131 // CHECK: @llvm.ppc.altivec.vsr 4132 // CHECK-LE: @llvm.ppc.altivec.vsr 4133 4134 res_vbi = vec_vsr(vbi, vus); 4135 // CHECK: @llvm.ppc.altivec.vsr 4136 // CHECK-LE: @llvm.ppc.altivec.vsr 4137 4138 res_vbi = vec_vsr(vbi, vui); 4139 // CHECK: @llvm.ppc.altivec.vsr 4140 // CHECK-LE: @llvm.ppc.altivec.vsr 4141 4142 /* vec_sro */ 4143 res_vsc = vec_sro(vsc, vsc); 4144 // CHECK: @llvm.ppc.altivec.vsro 4145 // CHECK-LE: @llvm.ppc.altivec.vsro 4146 4147 res_vsc = vec_sro(vsc, vuc); 4148 // CHECK: @llvm.ppc.altivec.vsro 4149 // CHECK-LE: @llvm.ppc.altivec.vsro 4150 4151 res_vuc = vec_sro(vuc, vsc); 4152 // CHECK: @llvm.ppc.altivec.vsro 4153 // CHECK-LE: @llvm.ppc.altivec.vsro 4154 4155 res_vuc = vec_sro(vuc, vuc); 4156 // CHECK: @llvm.ppc.altivec.vsro 4157 // CHECK-LE: @llvm.ppc.altivec.vsro 4158 4159 res_vs = vec_sro(vs, vsc); 4160 // CHECK: @llvm.ppc.altivec.vsro 4161 // CHECK-LE: @llvm.ppc.altivec.vsro 4162 4163 res_vs = vec_sro(vs, vuc); 4164 // CHECK: @llvm.ppc.altivec.vsro 4165 // CHECK-LE: @llvm.ppc.altivec.vsro 4166 4167 res_vus = vec_sro(vus, vsc); 4168 // CHECK: @llvm.ppc.altivec.vsro 4169 // CHECK-LE: @llvm.ppc.altivec.vsro 4170 4171 res_vus = vec_sro(vus, vuc); 4172 // CHECK: @llvm.ppc.altivec.vsro 4173 // CHECK-LE: @llvm.ppc.altivec.vsro 4174 4175 res_vp = vec_sro(vp, vsc); 4176 // CHECK: @llvm.ppc.altivec.vsro 4177 // CHECK-LE: @llvm.ppc.altivec.vsro 4178 4179 res_vp = vec_sro(vp, vuc); 4180 // CHECK: @llvm.ppc.altivec.vsro 4181 // CHECK-LE: @llvm.ppc.altivec.vsro 4182 4183 res_vi = vec_sro(vi, vsc); 4184 // CHECK: @llvm.ppc.altivec.vsro 4185 // CHECK-LE: @llvm.ppc.altivec.vsro 4186 4187 res_vi = vec_sro(vi, vuc); 4188 // CHECK: @llvm.ppc.altivec.vsro 4189 // CHECK-LE: @llvm.ppc.altivec.vsro 4190 4191 res_vui = vec_sro(vui, vsc); 4192 // CHECK: @llvm.ppc.altivec.vsro 4193 // CHECK-LE: @llvm.ppc.altivec.vsro 4194 4195 res_vui = vec_sro(vui, vuc); 4196 // CHECK: @llvm.ppc.altivec.vsro 4197 // CHECK-LE: @llvm.ppc.altivec.vsro 4198 4199 res_vf = vec_sro(vf, vsc); 4200 // CHECK: @llvm.ppc.altivec.vsro 4201 // CHECK-LE: @llvm.ppc.altivec.vsro 4202 4203 res_vf = vec_sro(vf, vuc); 4204 // CHECK: @llvm.ppc.altivec.vsro 4205 // CHECK-LE: @llvm.ppc.altivec.vsro 4206 4207 res_vsc = vec_vsro(vsc, vsc); 4208 // CHECK: @llvm.ppc.altivec.vsro 4209 // CHECK-LE: @llvm.ppc.altivec.vsro 4210 4211 res_vsc = vec_vsro(vsc, vuc); 4212 // CHECK: @llvm.ppc.altivec.vsro 4213 // CHECK-LE: @llvm.ppc.altivec.vsro 4214 4215 res_vuc = vec_vsro(vuc, vsc); 4216 // CHECK: @llvm.ppc.altivec.vsro 4217 // CHECK-LE: @llvm.ppc.altivec.vsro 4218 4219 res_vuc = vec_vsro(vuc, vuc); 4220 // CHECK: @llvm.ppc.altivec.vsro 4221 // CHECK-LE: @llvm.ppc.altivec.vsro 4222 4223 res_vs = vec_vsro(vs, vsc); 4224 // CHECK: @llvm.ppc.altivec.vsro 4225 // CHECK-LE: @llvm.ppc.altivec.vsro 4226 4227 res_vs = vec_vsro(vs, vuc); 4228 // CHECK: @llvm.ppc.altivec.vsro 4229 // CHECK-LE: @llvm.ppc.altivec.vsro 4230 4231 res_vus = vec_vsro(vus, vsc); 4232 // CHECK: @llvm.ppc.altivec.vsro 4233 // CHECK-LE: @llvm.ppc.altivec.vsro 4234 4235 res_vus = vec_vsro(vus, vuc); 4236 // CHECK: @llvm.ppc.altivec.vsro 4237 // CHECK-LE: @llvm.ppc.altivec.vsro 4238 4239 res_vp = vec_vsro(vp, vsc); 4240 // CHECK: @llvm.ppc.altivec.vsro 4241 // CHECK-LE: @llvm.ppc.altivec.vsro 4242 4243 res_vp = vec_vsro(vp, vuc); 4244 // CHECK: @llvm.ppc.altivec.vsro 4245 // CHECK-LE: @llvm.ppc.altivec.vsro 4246 4247 res_vi = vec_vsro(vi, vsc); 4248 // CHECK: @llvm.ppc.altivec.vsro 4249 // CHECK-LE: @llvm.ppc.altivec.vsro 4250 4251 res_vi = vec_vsro(vi, vuc); 4252 // CHECK: @llvm.ppc.altivec.vsro 4253 // CHECK-LE: @llvm.ppc.altivec.vsro 4254 4255 res_vui = vec_vsro(vui, vsc); 4256 // CHECK: @llvm.ppc.altivec.vsro 4257 // CHECK-LE: @llvm.ppc.altivec.vsro 4258 4259 res_vui = vec_vsro(vui, vuc); 4260 // CHECK: @llvm.ppc.altivec.vsro 4261 // CHECK-LE: @llvm.ppc.altivec.vsro 4262 4263 res_vf = vec_vsro(vf, vsc); 4264 // CHECK: @llvm.ppc.altivec.vsro 4265 // CHECK-LE: @llvm.ppc.altivec.vsro 4266 4267 res_vf = vec_vsro(vf, vuc); 4268 // CHECK: @llvm.ppc.altivec.vsro 4269 // CHECK-LE: @llvm.ppc.altivec.vsro 4270 4271 /* vec_st */ 4272 vec_st(vsc, 0, &vsc); 4273 // CHECK: @llvm.ppc.altivec.stvx 4274 // CHECK-LE: @llvm.ppc.altivec.stvx 4275 4276 vec_st(vsc, 0, ¶m_sc); 4277 // CHECK: @llvm.ppc.altivec.stvx 4278 // CHECK-LE: @llvm.ppc.altivec.stvx 4279 4280 vec_st(vuc, 0, &vuc); 4281 // CHECK: @llvm.ppc.altivec.stvx 4282 // CHECK-LE: @llvm.ppc.altivec.stvx 4283 4284 vec_st(vuc, 0, ¶m_uc); 4285 // CHECK: @llvm.ppc.altivec.stvx 4286 // CHECK-LE: @llvm.ppc.altivec.stvx 4287 4288 vec_st(vbc, 0, ¶m_uc); 4289 // CHECK: @llvm.ppc.altivec.stvx 4290 // CHECK-LE: @llvm.ppc.altivec.stvx 4291 4292 vec_st(vbc, 0, ¶m_uc); 4293 // CHECK: @llvm.ppc.altivec.stvx 4294 // CHECK-LE: @llvm.ppc.altivec.stvx 4295 4296 vec_st(vbc, 0, &vbc); 4297 // CHECK: @llvm.ppc.altivec.stvx 4298 // CHECK-LE: @llvm.ppc.altivec.stvx 4299 4300 vec_st(vs, 0, &vs); 4301 // CHECK: @llvm.ppc.altivec.stvx 4302 // CHECK-LE: @llvm.ppc.altivec.stvx 4303 4304 vec_st(vs, 0, ¶m_s); 4305 // CHECK: @llvm.ppc.altivec.stvx 4306 // CHECK-LE: @llvm.ppc.altivec.stvx 4307 4308 vec_st(vus, 0, &vus); 4309 // CHECK: @llvm.ppc.altivec.stvx 4310 // CHECK-LE: @llvm.ppc.altivec.stvx 4311 4312 vec_st(vus, 0, ¶m_us); 4313 // CHECK: @llvm.ppc.altivec.stvx 4314 // CHECK-LE: @llvm.ppc.altivec.stvx 4315 4316 vec_st(vbs, 0, ¶m_s); 4317 // CHECK: @llvm.ppc.altivec.stvx 4318 // CHECK-LE: @llvm.ppc.altivec.stvx 4319 4320 vec_st(vbs, 0, ¶m_us); 4321 // CHECK: @llvm.ppc.altivec.stvx 4322 // CHECK-LE: @llvm.ppc.altivec.stvx 4323 4324 vec_st(vbs, 0, &vbs); 4325 // CHECK: @llvm.ppc.altivec.stvx 4326 // CHECK-LE: @llvm.ppc.altivec.stvx 4327 4328 vec_st(vp, 0, ¶m_s); 4329 // CHECK: @llvm.ppc.altivec.stvx 4330 // CHECK-LE: @llvm.ppc.altivec.stvx 4331 4332 vec_st(vp, 0, ¶m_us); 4333 // CHECK: @llvm.ppc.altivec.stvx 4334 // CHECK-LE: @llvm.ppc.altivec.stvx 4335 4336 vec_st(vp, 0, &vp); 4337 // CHECK: @llvm.ppc.altivec.stvx 4338 // CHECK-LE: @llvm.ppc.altivec.stvx 4339 4340 vec_st(vi, 0, &vi); 4341 // CHECK: @llvm.ppc.altivec.stvx 4342 // CHECK-LE: @llvm.ppc.altivec.stvx 4343 4344 vec_st(vi, 0, ¶m_i); 4345 // CHECK: @llvm.ppc.altivec.stvx 4346 // CHECK-LE: @llvm.ppc.altivec.stvx 4347 4348 vec_st(vui, 0, &vui); 4349 // CHECK: @llvm.ppc.altivec.stvx 4350 // CHECK-LE: @llvm.ppc.altivec.stvx 4351 4352 vec_st(vui, 0, ¶m_ui); 4353 // CHECK: @llvm.ppc.altivec.stvx 4354 // CHECK-LE: @llvm.ppc.altivec.stvx 4355 4356 vec_st(vbi, 0, ¶m_i); 4357 // CHECK: @llvm.ppc.altivec.stvx 4358 // CHECK-LE: @llvm.ppc.altivec.stvx 4359 4360 vec_st(vbi, 0, ¶m_ui); 4361 // CHECK: @llvm.ppc.altivec.stvx 4362 // CHECK-LE: @llvm.ppc.altivec.stvx 4363 4364 vec_st(vbi, 0, &vbi); 4365 // CHECK: @llvm.ppc.altivec.stvx 4366 // CHECK-LE: @llvm.ppc.altivec.stvx 4367 4368 vec_st(vf, 0, &vf); 4369 // CHECK: @llvm.ppc.altivec.stvx 4370 // CHECK-LE: @llvm.ppc.altivec.stvx 4371 4372 vec_st(vf, 0, ¶m_f); 4373 // CHECK: @llvm.ppc.altivec.stvx 4374 // CHECK-LE: @llvm.ppc.altivec.stvx 4375 4376 vec_stvx(vsc, 0, &vsc); 4377 // CHECK: @llvm.ppc.altivec.stvx 4378 // CHECK-LE: @llvm.ppc.altivec.stvx 4379 4380 vec_stvx(vsc, 0, ¶m_sc); 4381 // CHECK: @llvm.ppc.altivec.stvx 4382 // CHECK-LE: @llvm.ppc.altivec.stvx 4383 4384 vec_stvx(vuc, 0, &vuc); 4385 // CHECK: @llvm.ppc.altivec.stvx 4386 // CHECK-LE: @llvm.ppc.altivec.stvx 4387 4388 vec_stvx(vuc, 0, ¶m_uc); 4389 // CHECK: @llvm.ppc.altivec.stvx 4390 // CHECK-LE: @llvm.ppc.altivec.stvx 4391 4392 vec_stvx(vbc, 0, ¶m_uc); 4393 // CHECK: @llvm.ppc.altivec.stvx 4394 // CHECK-LE: @llvm.ppc.altivec.stvx 4395 4396 vec_stvx(vbc, 0, ¶m_uc); 4397 // CHECK: @llvm.ppc.altivec.stvx 4398 // CHECK-LE: @llvm.ppc.altivec.stvx 4399 4400 vec_stvx(vbc, 0, &vbc); 4401 // CHECK: @llvm.ppc.altivec.stvx 4402 // CHECK-LE: @llvm.ppc.altivec.stvx 4403 4404 vec_stvx(vs, 0, &vs); 4405 // CHECK: @llvm.ppc.altivec.stvx 4406 // CHECK-LE: @llvm.ppc.altivec.stvx 4407 4408 vec_stvx(vs, 0, ¶m_s); 4409 // CHECK: @llvm.ppc.altivec.stvx 4410 // CHECK-LE: @llvm.ppc.altivec.stvx 4411 4412 vec_stvx(vus, 0, &vus); 4413 // CHECK: @llvm.ppc.altivec.stvx 4414 // CHECK-LE: @llvm.ppc.altivec.stvx 4415 4416 vec_stvx(vus, 0, ¶m_us); 4417 // CHECK: @llvm.ppc.altivec.stvx 4418 // CHECK-LE: @llvm.ppc.altivec.stvx 4419 4420 vec_stvx(vbs, 0, ¶m_s); 4421 // CHECK: @llvm.ppc.altivec.stvx 4422 // CHECK-LE: @llvm.ppc.altivec.stvx 4423 4424 vec_stvx(vbs, 0, ¶m_us); 4425 // CHECK: @llvm.ppc.altivec.stvx 4426 // CHECK-LE: @llvm.ppc.altivec.stvx 4427 4428 vec_stvx(vbs, 0, &vbs); 4429 // CHECK: @llvm.ppc.altivec.stvx 4430 // CHECK-LE: @llvm.ppc.altivec.stvx 4431 4432 vec_stvx(vp, 0, ¶m_s); 4433 // CHECK: @llvm.ppc.altivec.stvx 4434 // CHECK-LE: @llvm.ppc.altivec.stvx 4435 4436 vec_stvx(vp, 0, ¶m_us); 4437 // CHECK: @llvm.ppc.altivec.stvx 4438 // CHECK-LE: @llvm.ppc.altivec.stvx 4439 4440 vec_stvx(vp, 0, &vp); 4441 // CHECK: @llvm.ppc.altivec.stvx 4442 // CHECK-LE: @llvm.ppc.altivec.stvx 4443 4444 vec_stvx(vi, 0, &vi); 4445 // CHECK: @llvm.ppc.altivec.stvx 4446 // CHECK-LE: @llvm.ppc.altivec.stvx 4447 4448 vec_stvx(vi, 0, ¶m_i); 4449 // CHECK: @llvm.ppc.altivec.stvx 4450 // CHECK-LE: @llvm.ppc.altivec.stvx 4451 4452 vec_stvx(vui, 0, &vui); 4453 // CHECK: @llvm.ppc.altivec.stvx 4454 // CHECK-LE: @llvm.ppc.altivec.stvx 4455 4456 vec_stvx(vui, 0, ¶m_ui); 4457 // CHECK: @llvm.ppc.altivec.stvx 4458 // CHECK-LE: @llvm.ppc.altivec.stvx 4459 4460 vec_stvx(vbi, 0, ¶m_i); 4461 // CHECK: @llvm.ppc.altivec.stvx 4462 // CHECK-LE: @llvm.ppc.altivec.stvx 4463 4464 vec_stvx(vbi, 0, ¶m_ui); 4465 // CHECK: @llvm.ppc.altivec.stvx 4466 // CHECK-LE: @llvm.ppc.altivec.stvx 4467 4468 vec_stvx(vbi, 0, &vbi); 4469 // CHECK: @llvm.ppc.altivec.stvx 4470 // CHECK-LE: @llvm.ppc.altivec.stvx 4471 4472 vec_stvx(vf, 0, &vf); 4473 // CHECK: @llvm.ppc.altivec.stvx 4474 // CHECK-LE: @llvm.ppc.altivec.stvx 4475 4476 vec_stvx(vf, 0, ¶m_f); 4477 // CHECK: @llvm.ppc.altivec.stvx 4478 // CHECK-LE: @llvm.ppc.altivec.stvx 4479 4480 /* vec_ste */ 4481 vec_ste(vsc, 0, ¶m_sc); 4482 // CHECK: @llvm.ppc.altivec.stvebx 4483 // CHECK-LE: @llvm.ppc.altivec.stvebx 4484 4485 vec_ste(vuc, 0, ¶m_uc); 4486 // CHECK: @llvm.ppc.altivec.stvebx 4487 // CHECK-LE: @llvm.ppc.altivec.stvebx 4488 4489 vec_ste(vbc, 0, ¶m_sc); 4490 // CHECK: @llvm.ppc.altivec.stvebx 4491 // CHECK-LE: @llvm.ppc.altivec.stvebx 4492 4493 vec_ste(vbc, 0, ¶m_uc); 4494 // CHECK: @llvm.ppc.altivec.stvebx 4495 // CHECK-LE: @llvm.ppc.altivec.stvebx 4496 4497 vec_ste(vs, 0, ¶m_s); 4498 // CHECK: @llvm.ppc.altivec.stvehx 4499 // CHECK-LE: @llvm.ppc.altivec.stvehx 4500 4501 vec_ste(vus, 0, ¶m_us); 4502 // CHECK: @llvm.ppc.altivec.stvehx 4503 // CHECK-LE: @llvm.ppc.altivec.stvehx 4504 4505 vec_ste(vbs, 0, ¶m_s); 4506 // CHECK: @llvm.ppc.altivec.stvehx 4507 // CHECK-LE: @llvm.ppc.altivec.stvehx 4508 4509 vec_ste(vbs, 0, ¶m_us); 4510 // CHECK: @llvm.ppc.altivec.stvehx 4511 // CHECK-LE: @llvm.ppc.altivec.stvehx 4512 4513 vec_ste(vp, 0, ¶m_s); 4514 // CHECK: @llvm.ppc.altivec.stvehx 4515 // CHECK-LE: @llvm.ppc.altivec.stvehx 4516 4517 vec_ste(vp, 0, ¶m_us); 4518 // CHECK: @llvm.ppc.altivec.stvehx 4519 // CHECK-LE: @llvm.ppc.altivec.stvehx 4520 4521 vec_ste(vi, 0, ¶m_i); 4522 // CHECK: @llvm.ppc.altivec.stvewx 4523 // CHECK-LE: @llvm.ppc.altivec.stvewx 4524 4525 vec_ste(vui, 0, ¶m_ui); 4526 // CHECK: @llvm.ppc.altivec.stvewx 4527 // CHECK-LE: @llvm.ppc.altivec.stvewx 4528 4529 vec_ste(vbi, 0, ¶m_i); 4530 // CHECK: @llvm.ppc.altivec.stvewx 4531 // CHECK-LE: @llvm.ppc.altivec.stvewx 4532 4533 vec_ste(vbi, 0, ¶m_ui); 4534 // CHECK: @llvm.ppc.altivec.stvewx 4535 // CHECK-LE: @llvm.ppc.altivec.stvewx 4536 4537 vec_ste(vf, 0, ¶m_f); 4538 // CHECK: @llvm.ppc.altivec.stvewx 4539 // CHECK-LE: @llvm.ppc.altivec.stvewx 4540 4541 vec_stvebx(vsc, 0, ¶m_sc); 4542 // CHECK: @llvm.ppc.altivec.stvebx 4543 // CHECK-LE: @llvm.ppc.altivec.stvebx 4544 4545 vec_stvebx(vuc, 0, ¶m_uc); 4546 // CHECK: @llvm.ppc.altivec.stvebx 4547 // CHECK-LE: @llvm.ppc.altivec.stvebx 4548 4549 vec_stvebx(vbc, 0, ¶m_sc); 4550 // CHECK: @llvm.ppc.altivec.stvebx 4551 // CHECK-LE: @llvm.ppc.altivec.stvebx 4552 4553 vec_stvebx(vbc, 0, ¶m_uc); 4554 // CHECK: @llvm.ppc.altivec.stvebx 4555 // CHECK-LE: @llvm.ppc.altivec.stvebx 4556 4557 vec_stvehx(vs, 0, ¶m_s); 4558 // CHECK: @llvm.ppc.altivec.stvehx 4559 // CHECK-LE: @llvm.ppc.altivec.stvehx 4560 4561 vec_stvehx(vus, 0, ¶m_us); 4562 // CHECK: @llvm.ppc.altivec.stvehx 4563 // CHECK-LE: @llvm.ppc.altivec.stvehx 4564 4565 vec_stvehx(vbs, 0, ¶m_s); 4566 // CHECK: @llvm.ppc.altivec.stvehx 4567 // CHECK-LE: @llvm.ppc.altivec.stvehx 4568 4569 vec_stvehx(vbs, 0, ¶m_us); 4570 // CHECK: @llvm.ppc.altivec.stvehx 4571 // CHECK-LE: @llvm.ppc.altivec.stvehx 4572 4573 vec_stvehx(vp, 0, ¶m_s); 4574 // CHECK: @llvm.ppc.altivec.stvehx 4575 // CHECK-LE: @llvm.ppc.altivec.stvehx 4576 4577 vec_stvehx(vp, 0, ¶m_us); 4578 // CHECK: @llvm.ppc.altivec.stvehx 4579 // CHECK-LE: @llvm.ppc.altivec.stvehx 4580 4581 vec_stvewx(vi, 0, ¶m_i); 4582 // CHECK: @llvm.ppc.altivec.stvewx 4583 // CHECK-LE: @llvm.ppc.altivec.stvewx 4584 4585 vec_stvewx(vui, 0, ¶m_ui); 4586 // CHECK: @llvm.ppc.altivec.stvewx 4587 // CHECK-LE: @llvm.ppc.altivec.stvewx 4588 4589 vec_stvewx(vbi, 0, ¶m_i); 4590 // CHECK: @llvm.ppc.altivec.stvewx 4591 // CHECK-LE: @llvm.ppc.altivec.stvewx 4592 4593 vec_stvewx(vbi, 0, ¶m_ui); 4594 // CHECK: @llvm.ppc.altivec.stvewx 4595 // CHECK-LE: @llvm.ppc.altivec.stvewx 4596 4597 vec_stvewx(vf, 0, ¶m_f); 4598 // CHECK: @llvm.ppc.altivec.stvewx 4599 // CHECK-LE: @llvm.ppc.altivec.stvewx 4600 4601 /* vec_stl */ 4602 vec_stl(vsc, 0, &vsc); 4603 // CHECK: @llvm.ppc.altivec.stvxl 4604 // CHECK-LE: @llvm.ppc.altivec.stvxl 4605 4606 vec_stl(vsc, 0, ¶m_sc); 4607 // CHECK: @llvm.ppc.altivec.stvxl 4608 // CHECK-LE: @llvm.ppc.altivec.stvxl 4609 4610 vec_stl(vuc, 0, &vuc); 4611 // CHECK: @llvm.ppc.altivec.stvxl 4612 // CHECK-LE: @llvm.ppc.altivec.stvxl 4613 4614 vec_stl(vuc, 0, ¶m_uc); 4615 // CHECK: @llvm.ppc.altivec.stvxl 4616 // CHECK-LE: @llvm.ppc.altivec.stvxl 4617 4618 vec_stl(vbc, 0, ¶m_sc); 4619 // CHECK: @llvm.ppc.altivec.stvxl 4620 // CHECK-LE: @llvm.ppc.altivec.stvxl 4621 4622 vec_stl(vbc, 0, ¶m_uc); 4623 // CHECK: @llvm.ppc.altivec.stvxl 4624 // CHECK-LE: @llvm.ppc.altivec.stvxl 4625 4626 vec_stl(vbc, 0, &vbc); 4627 // CHECK: @llvm.ppc.altivec.stvxl 4628 // CHECK-LE: @llvm.ppc.altivec.stvxl 4629 4630 vec_stl(vs, 0, &vs); 4631 // CHECK: @llvm.ppc.altivec.stvxl 4632 // CHECK-LE: @llvm.ppc.altivec.stvxl 4633 4634 vec_stl(vs, 0, ¶m_s); 4635 // CHECK: @llvm.ppc.altivec.stvxl 4636 // CHECK-LE: @llvm.ppc.altivec.stvxl 4637 4638 vec_stl(vus, 0, &vus); 4639 // CHECK: @llvm.ppc.altivec.stvxl 4640 // CHECK-LE: @llvm.ppc.altivec.stvxl 4641 4642 vec_stl(vus, 0, ¶m_us); 4643 // CHECK: @llvm.ppc.altivec.stvxl 4644 // CHECK-LE: @llvm.ppc.altivec.stvxl 4645 4646 vec_stl(vbs, 0, ¶m_s); 4647 // CHECK: @llvm.ppc.altivec.stvxl 4648 // CHECK-LE: @llvm.ppc.altivec.stvxl 4649 4650 vec_stl(vbs, 0, ¶m_us); 4651 // CHECK: @llvm.ppc.altivec.stvxl 4652 // CHECK-LE: @llvm.ppc.altivec.stvxl 4653 4654 vec_stl(vbs, 0, &vbs); 4655 // CHECK: @llvm.ppc.altivec.stvxl 4656 // CHECK-LE: @llvm.ppc.altivec.stvxl 4657 4658 vec_stl(vp, 0, ¶m_s); 4659 // CHECK: @llvm.ppc.altivec.stvxl 4660 // CHECK-LE: @llvm.ppc.altivec.stvxl 4661 4662 vec_stl(vp, 0, ¶m_us); 4663 // CHECK: @llvm.ppc.altivec.stvxl 4664 // CHECK-LE: @llvm.ppc.altivec.stvxl 4665 4666 vec_stl(vp, 0, &vp); 4667 // CHECK: @llvm.ppc.altivec.stvxl 4668 // CHECK-LE: @llvm.ppc.altivec.stvxl 4669 4670 vec_stl(vi, 0, &vi); 4671 // CHECK: @llvm.ppc.altivec.stvxl 4672 // CHECK-LE: @llvm.ppc.altivec.stvxl 4673 4674 vec_stl(vi, 0, ¶m_i); 4675 // CHECK: @llvm.ppc.altivec.stvxl 4676 // CHECK-LE: @llvm.ppc.altivec.stvxl 4677 4678 vec_stl(vui, 0, &vui); 4679 // CHECK: @llvm.ppc.altivec.stvxl 4680 // CHECK-LE: @llvm.ppc.altivec.stvxl 4681 4682 vec_stl(vui, 0, ¶m_ui); 4683 // CHECK: @llvm.ppc.altivec.stvxl 4684 // CHECK-LE: @llvm.ppc.altivec.stvxl 4685 4686 vec_stl(vbi, 0, ¶m_i); 4687 // CHECK: @llvm.ppc.altivec.stvxl 4688 // CHECK-LE: @llvm.ppc.altivec.stvxl 4689 4690 vec_stl(vbi, 0, ¶m_ui); 4691 // CHECK: @llvm.ppc.altivec.stvxl 4692 // CHECK-LE: @llvm.ppc.altivec.stvxl 4693 4694 vec_stl(vbi, 0, &vbi); 4695 // CHECK: @llvm.ppc.altivec.stvxl 4696 // CHECK-LE: @llvm.ppc.altivec.stvxl 4697 4698 vec_stl(vf, 0, &vf); 4699 // CHECK: @llvm.ppc.altivec.stvxl 4700 // CHECK-LE: @llvm.ppc.altivec.stvxl 4701 4702 vec_stl(vf, 0, ¶m_f); 4703 // CHECK: @llvm.ppc.altivec.stvxl 4704 // CHECK-LE: @llvm.ppc.altivec.stvxl 4705 4706 vec_stvxl(vsc, 0, &vsc); 4707 // CHECK: @llvm.ppc.altivec.stvxl 4708 // CHECK-LE: @llvm.ppc.altivec.stvxl 4709 4710 vec_stvxl(vsc, 0, ¶m_sc); 4711 // CHECK: @llvm.ppc.altivec.stvxl 4712 // CHECK-LE: @llvm.ppc.altivec.stvxl 4713 4714 vec_stvxl(vuc, 0, &vuc); 4715 // CHECK: @llvm.ppc.altivec.stvxl 4716 // CHECK-LE: @llvm.ppc.altivec.stvxl 4717 4718 vec_stvxl(vuc, 0, ¶m_uc); 4719 // CHECK: @llvm.ppc.altivec.stvxl 4720 // CHECK-LE: @llvm.ppc.altivec.stvxl 4721 4722 vec_stvxl(vbc, 0, ¶m_sc); 4723 // CHECK: @llvm.ppc.altivec.stvxl 4724 // CHECK-LE: @llvm.ppc.altivec.stvxl 4725 4726 vec_stvxl(vbc, 0, ¶m_uc); 4727 // CHECK: @llvm.ppc.altivec.stvxl 4728 // CHECK-LE: @llvm.ppc.altivec.stvxl 4729 4730 vec_stvxl(vbc, 0, &vbc); 4731 // CHECK: @llvm.ppc.altivec.stvxl 4732 // CHECK-LE: @llvm.ppc.altivec.stvxl 4733 4734 vec_stvxl(vs, 0, &vs); 4735 // CHECK: @llvm.ppc.altivec.stvxl 4736 // CHECK-LE: @llvm.ppc.altivec.stvxl 4737 4738 vec_stvxl(vs, 0, ¶m_s); 4739 // CHECK: @llvm.ppc.altivec.stvxl 4740 // CHECK-LE: @llvm.ppc.altivec.stvxl 4741 4742 vec_stvxl(vus, 0, &vus); 4743 // CHECK: @llvm.ppc.altivec.stvxl 4744 // CHECK-LE: @llvm.ppc.altivec.stvxl 4745 4746 vec_stvxl(vus, 0, ¶m_us); 4747 // CHECK: @llvm.ppc.altivec.stvxl 4748 // CHECK-LE: @llvm.ppc.altivec.stvxl 4749 4750 vec_stvxl(vbs, 0, ¶m_s); 4751 // CHECK: @llvm.ppc.altivec.stvxl 4752 // CHECK-LE: @llvm.ppc.altivec.stvxl 4753 4754 vec_stvxl(vbs, 0, ¶m_us); 4755 // CHECK: @llvm.ppc.altivec.stvxl 4756 // CHECK-LE: @llvm.ppc.altivec.stvxl 4757 4758 vec_stvxl(vbs, 0, &vbs); 4759 // CHECK: @llvm.ppc.altivec.stvxl 4760 // CHECK-LE: @llvm.ppc.altivec.stvxl 4761 4762 vec_stvxl(vp, 0, ¶m_s); 4763 // CHECK: @llvm.ppc.altivec.stvxl 4764 // CHECK-LE: @llvm.ppc.altivec.stvxl 4765 4766 vec_stvxl(vp, 0, ¶m_us); 4767 // CHECK: @llvm.ppc.altivec.stvxl 4768 // CHECK-LE: @llvm.ppc.altivec.stvxl 4769 4770 vec_stvxl(vp, 0, &vp); 4771 // CHECK: @llvm.ppc.altivec.stvxl 4772 // CHECK-LE: @llvm.ppc.altivec.stvxl 4773 4774 vec_stvxl(vi, 0, &vi); 4775 // CHECK: @llvm.ppc.altivec.stvxl 4776 // CHECK-LE: @llvm.ppc.altivec.stvxl 4777 4778 vec_stvxl(vi, 0, ¶m_i); 4779 // CHECK: @llvm.ppc.altivec.stvxl 4780 // CHECK-LE: @llvm.ppc.altivec.stvxl 4781 4782 vec_stvxl(vui, 0, &vui); 4783 // CHECK: @llvm.ppc.altivec.stvxl 4784 // CHECK-LE: @llvm.ppc.altivec.stvxl 4785 4786 vec_stvxl(vui, 0, ¶m_ui); 4787 // CHECK: @llvm.ppc.altivec.stvxl 4788 // CHECK-LE: @llvm.ppc.altivec.stvxl 4789 4790 vec_stvxl(vbi, 0, ¶m_i); 4791 // CHECK: @llvm.ppc.altivec.stvxl 4792 // CHECK-LE: @llvm.ppc.altivec.stvxl 4793 4794 vec_stvxl(vbi, 0, ¶m_ui); 4795 // CHECK: @llvm.ppc.altivec.stvxl 4796 // CHECK-LE: @llvm.ppc.altivec.stvxl 4797 4798 vec_stvxl(vbi, 0, &vbi); 4799 // CHECK: @llvm.ppc.altivec.stvxl 4800 // CHECK-LE: @llvm.ppc.altivec.stvxl 4801 4802 vec_stvxl(vf, 0, &vf); 4803 // CHECK: @llvm.ppc.altivec.stvxl 4804 // CHECK-LE: @llvm.ppc.altivec.stvxl 4805 4806 vec_stvxl(vf, 0, ¶m_f); 4807 // CHECK: @llvm.ppc.altivec.stvxl 4808 // CHECK-LE: @llvm.ppc.altivec.stvxl 4809 4810 /* vec_sub */ 4811 res_vsc = vec_sub(vsc, vsc); 4812 // CHECK: sub <16 x i8> 4813 // CHECK-LE: sub <16 x i8> 4814 4815 res_vsc = vec_sub(vbc, vsc); 4816 // CHECK: sub <16 x i8> 4817 // CHECK-LE: sub <16 x i8> 4818 4819 res_vsc = vec_sub(vsc, vbc); 4820 // CHECK: sub <16 x i8> 4821 // CHECK-LE: sub <16 x i8> 4822 4823 res_vuc = vec_sub(vuc, vuc); 4824 // CHECK: sub <16 x i8> 4825 // CHECK-LE: sub <16 x i8> 4826 4827 res_vuc = vec_sub(vbc, vuc); 4828 // CHECK: sub <16 x i8> 4829 // CHECK-LE: sub <16 x i8> 4830 4831 res_vuc = vec_sub(vuc, vbc); 4832 // CHECK: sub <16 x i8> 4833 // CHECK-LE: sub <16 x i8> 4834 4835 res_vs = vec_sub(vs, vs); 4836 // CHECK: sub <8 x i16> 4837 // CHECK-LE: sub <8 x i16> 4838 4839 res_vs = vec_sub(vbs, vs); 4840 // CHECK: sub <8 x i16> 4841 // CHECK-LE: sub <8 x i16> 4842 4843 res_vs = vec_sub(vs, vbs); 4844 // CHECK: sub <8 x i16> 4845 // CHECK-LE: sub <8 x i16> 4846 4847 res_vus = vec_sub(vus, vus); 4848 // CHECK: sub <8 x i16> 4849 // CHECK-LE: sub <8 x i16> 4850 4851 res_vus = vec_sub(vbs, vus); 4852 // CHECK: sub <8 x i16> 4853 // CHECK-LE: sub <8 x i16> 4854 4855 res_vus = vec_sub(vus, vbs); 4856 // CHECK: sub <8 x i16> 4857 // CHECK-LE: sub <8 x i16> 4858 4859 res_vi = vec_sub(vi, vi); 4860 // CHECK: sub <4 x i32> 4861 // CHECK-LE: sub <4 x i32> 4862 4863 res_vi = vec_sub(vbi, vi); 4864 // CHECK: sub <4 x i32> 4865 // CHECK-LE: sub <4 x i32> 4866 4867 res_vi = vec_sub(vi, vbi); 4868 // CHECK: sub <4 x i32> 4869 // CHECK-LE: sub <4 x i32> 4870 4871 res_vui = vec_sub(vui, vui); 4872 // CHECK: sub <4 x i32> 4873 // CHECK-LE: sub <4 x i32> 4874 4875 res_vui = vec_sub(vbi, vui); 4876 // CHECK: sub <4 x i32> 4877 // CHECK-LE: sub <4 x i32> 4878 4879 res_vui = vec_sub(vui, vbi); 4880 // CHECK: sub <4 x i32> 4881 // CHECK-LE: sub <4 x i32> 4882 4883 res_vf = vec_sub(vf, vf); 4884 // CHECK: fsub <4 x float> 4885 // CHECK-LE: fsub <4 x float> 4886 4887 res_vsc = vec_vsububm(vsc, vsc); 4888 // CHECK: sub <16 x i8> 4889 // CHECK-LE: sub <16 x i8> 4890 4891 res_vsc = vec_vsububm(vbc, vsc); 4892 // CHECK: sub <16 x i8> 4893 // CHECK-LE: sub <16 x i8> 4894 4895 res_vsc = vec_vsububm(vsc, vbc); 4896 // CHECK: sub <16 x i8> 4897 // CHECK-LE: sub <16 x i8> 4898 4899 res_vuc = vec_vsububm(vuc, vuc); 4900 // CHECK: sub <16 x i8> 4901 // CHECK-LE: sub <16 x i8> 4902 4903 res_vuc = vec_vsububm(vbc, vuc); 4904 // CHECK: sub <16 x i8> 4905 // CHECK-LE: sub <16 x i8> 4906 4907 res_vuc = vec_vsububm(vuc, vbc); 4908 // CHECK: sub <16 x i8> 4909 // CHECK-LE: sub <16 x i8> 4910 4911 res_vs = vec_vsubuhm(vs, vs); 4912 // CHECK: sub <8 x i16> 4913 // CHECK-LE: sub <8 x i16> 4914 4915 res_vs = vec_vsubuhm(vbs, vus); 4916 // CHECK: sub <8 x i16> 4917 // CHECK-LE: sub <8 x i16> 4918 4919 res_vs = vec_vsubuhm(vus, vbs); 4920 // CHECK: sub <8 x i16> 4921 // CHECK-LE: sub <8 x i16> 4922 4923 res_vus = vec_vsubuhm(vus, vus); 4924 // CHECK: sub <8 x i16> 4925 // CHECK-LE: sub <8 x i16> 4926 4927 res_vus = vec_vsubuhm(vbs, vus); 4928 // CHECK: sub <8 x i16> 4929 // CHECK-LE: sub <8 x i16> 4930 4931 res_vus = vec_vsubuhm(vus, vbs); 4932 // CHECK: sub <8 x i16> 4933 // CHECK-LE: sub <8 x i16> 4934 4935 res_vi = vec_vsubuwm(vi, vi); 4936 // CHECK: sub <4 x i32> 4937 // CHECK-LE: sub <4 x i32> 4938 4939 res_vi = vec_vsubuwm(vbi, vi); 4940 // CHECK: sub <4 x i32> 4941 // CHECK-LE: sub <4 x i32> 4942 4943 res_vi = vec_vsubuwm(vi, vbi); 4944 // CHECK: sub <4 x i32> 4945 // CHECK-LE: sub <4 x i32> 4946 4947 res_vui = vec_vsubuwm(vui, vui); 4948 // CHECK: sub <4 x i32> 4949 // CHECK-LE: sub <4 x i32> 4950 4951 res_vui = vec_vsubuwm(vbi, vui); 4952 // CHECK: sub <4 x i32> 4953 // CHECK-LE: sub <4 x i32> 4954 4955 res_vui = vec_vsubuwm(vui, vbi); 4956 // CHECK: sub <4 x i32> 4957 // CHECK-LE: sub <4 x i32> 4958 4959 res_vf = vec_vsubfp(vf, vf); 4960 // CHECK: fsub <4 x float> 4961 // CHECK-LE: fsub <4 x float> 4962 4963 /* vec_subc */ 4964 res_vui = vec_subc(vui, vui); 4965 // CHECK: @llvm.ppc.altivec.vsubcuw 4966 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 4967 4968 res_vui = vec_vsubcuw(vui, vui); 4969 // CHECK: @llvm.ppc.altivec.vsubcuw 4970 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 4971 4972 /* vec_subs */ 4973 res_vsc = vec_subs(vsc, vsc); 4974 // CHECK: @llvm.ppc.altivec.vsubsbs 4975 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 4976 4977 res_vsc = vec_subs(vbc, vsc); 4978 // CHECK: @llvm.ppc.altivec.vsubsbs 4979 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 4980 4981 res_vsc = vec_subs(vsc, vbc); 4982 // CHECK: @llvm.ppc.altivec.vsubsbs 4983 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 4984 4985 res_vuc = vec_subs(vuc, vuc); 4986 // CHECK: @llvm.ppc.altivec.vsububs 4987 // CHECK-LE: @llvm.ppc.altivec.vsububs 4988 4989 res_vuc = vec_subs(vbc, vuc); 4990 // CHECK: @llvm.ppc.altivec.vsububs 4991 // CHECK-LE: @llvm.ppc.altivec.vsububs 4992 4993 res_vuc = vec_subs(vuc, vbc); 4994 // CHECK: @llvm.ppc.altivec.vsububs 4995 // CHECK-LE: @llvm.ppc.altivec.vsububs 4996 4997 res_vs = vec_subs(vs, vs); 4998 // CHECK: @llvm.ppc.altivec.vsubshs 4999 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5000 5001 res_vs = vec_subs(vbs, vs); 5002 // CHECK: @llvm.ppc.altivec.vsubshs 5003 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5004 5005 res_vs = vec_subs(vs, vbs); 5006 // CHECK: @llvm.ppc.altivec.vsubshs 5007 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5008 5009 res_vus = vec_subs(vus, vus); 5010 // CHECK: @llvm.ppc.altivec.vsubuhs 5011 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5012 5013 res_vus = vec_subs(vbs, vus); 5014 // CHECK: @llvm.ppc.altivec.vsubuhs 5015 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5016 5017 res_vus = vec_subs(vus, vbs); 5018 // CHECK: @llvm.ppc.altivec.vsubuhs 5019 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5020 5021 res_vi = vec_subs(vi, vi); 5022 // CHECK: @llvm.ppc.altivec.vsubsws 5023 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5024 5025 res_vi = vec_subs(vbi, vi); 5026 // CHECK: @llvm.ppc.altivec.vsubsws 5027 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5028 5029 res_vi = vec_subs(vi, vbi); 5030 // CHECK: @llvm.ppc.altivec.vsubsws 5031 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5032 5033 res_vui = vec_subs(vui, vui); 5034 // CHECK: @llvm.ppc.altivec.vsubuws 5035 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5036 5037 res_vui = vec_subs(vbi, vui); 5038 // CHECK: @llvm.ppc.altivec.vsubuws 5039 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5040 5041 res_vui = vec_subs(vui, vbi); 5042 // CHECK: @llvm.ppc.altivec.vsubuws 5043 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5044 5045 res_vsc = vec_vsubsbs(vsc, vsc); 5046 // CHECK: @llvm.ppc.altivec.vsubsbs 5047 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5048 5049 res_vsc = vec_vsubsbs(vbc, vsc); 5050 // CHECK: @llvm.ppc.altivec.vsubsbs 5051 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5052 5053 res_vsc = vec_vsubsbs(vsc, vbc); 5054 // CHECK: @llvm.ppc.altivec.vsubsbs 5055 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5056 5057 res_vuc = vec_vsububs(vuc, vuc); 5058 // CHECK: @llvm.ppc.altivec.vsububs 5059 // CHECK-LE: @llvm.ppc.altivec.vsububs 5060 5061 res_vuc = vec_vsububs(vbc, vuc); 5062 // CHECK: @llvm.ppc.altivec.vsububs 5063 // CHECK-LE: @llvm.ppc.altivec.vsububs 5064 5065 res_vuc = vec_vsububs(vuc, vbc); 5066 // CHECK: @llvm.ppc.altivec.vsububs 5067 // CHECK-LE: @llvm.ppc.altivec.vsububs 5068 5069 res_vs = vec_vsubshs(vs, vs); 5070 // CHECK: @llvm.ppc.altivec.vsubshs 5071 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5072 5073 res_vs = vec_vsubshs(vbs, vs); 5074 // CHECK: @llvm.ppc.altivec.vsubshs 5075 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5076 5077 res_vs = vec_vsubshs(vs, vbs); 5078 // CHECK: @llvm.ppc.altivec.vsubshs 5079 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5080 5081 res_vus = vec_vsubuhs(vus, vus); 5082 // CHECK: @llvm.ppc.altivec.vsubuhs 5083 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5084 5085 res_vus = vec_vsubuhs(vbs, vus); 5086 // CHECK: @llvm.ppc.altivec.vsubuhs 5087 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5088 5089 res_vus = vec_vsubuhs(vus, vbs); 5090 // CHECK: @llvm.ppc.altivec.vsubuhs 5091 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5092 5093 res_vi = vec_vsubsws(vi, vi); 5094 // CHECK: @llvm.ppc.altivec.vsubsws 5095 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5096 5097 res_vi = vec_vsubsws(vbi, vi); 5098 // CHECK: @llvm.ppc.altivec.vsubsws 5099 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5100 5101 res_vi = vec_vsubsws(vi, vbi); 5102 // CHECK: @llvm.ppc.altivec.vsubsws 5103 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5104 5105 res_vui = vec_vsubuws(vui, vui); 5106 // CHECK: @llvm.ppc.altivec.vsubuws 5107 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5108 5109 res_vui = vec_vsubuws(vbi, vui); 5110 // CHECK: @llvm.ppc.altivec.vsubuws 5111 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5112 5113 res_vui = vec_vsubuws(vui, vbi); 5114 // CHECK: @llvm.ppc.altivec.vsubuws 5115 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5116 5117 /* vec_sum4s */ 5118 res_vi = vec_sum4s(vsc, vi); 5119 // CHECK: @llvm.ppc.altivec.vsum4sbs 5120 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs 5121 5122 res_vui = vec_sum4s(vuc, vui); 5123 // CHECK: @llvm.ppc.altivec.vsum4ubs 5124 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs 5125 5126 res_vi = vec_sum4s(vs, vi); 5127 // CHECK: @llvm.ppc.altivec.vsum4shs 5128 // CHECK-LE: @llvm.ppc.altivec.vsum4shs 5129 5130 res_vi = vec_vsum4sbs(vsc, vi); 5131 // CHECK: @llvm.ppc.altivec.vsum4sbs 5132 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs 5133 5134 res_vui = vec_vsum4ubs(vuc, vui); 5135 // CHECK: @llvm.ppc.altivec.vsum4ubs 5136 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs 5137 5138 res_vi = vec_vsum4shs(vs, vi); 5139 // CHECK: @llvm.ppc.altivec.vsum4shs 5140 // CHECK-LE: @llvm.ppc.altivec.vsum4shs 5141 5142 /* vec_sum2s */ 5143 res_vi = vec_sum2s(vi, vi); 5144 // CHECK: @llvm.ppc.altivec.vsum2sws 5145 // CHECK-LE: @llvm.ppc.altivec.vperm 5146 // CHECK-LE: @llvm.ppc.altivec.vsum2sws 5147 // CHECK-LE: @llvm.ppc.altivec.vperm 5148 5149 res_vi = vec_vsum2sws(vi, vi); 5150 // CHECK: @llvm.ppc.altivec.vsum2sws 5151 // CHECK-LE: @llvm.ppc.altivec.vperm 5152 // CHECK-LE: @llvm.ppc.altivec.vsum2sws 5153 // CHECK-LE: @llvm.ppc.altivec.vperm 5154 5155 /* vec_sums */ 5156 res_vi = vec_sums(vi, vi); 5157 // CHECK: @llvm.ppc.altivec.vsumsws 5158 // CHECK-LE: @llvm.ppc.altivec.vperm 5159 // CHECK-LE: @llvm.ppc.altivec.vsumsws 5160 5161 res_vi = vec_vsumsws(vi, vi); 5162 // CHECK: @llvm.ppc.altivec.vsumsws 5163 // CHECK-LE: @llvm.ppc.altivec.vperm 5164 // CHECK-LE: @llvm.ppc.altivec.vsumsws 5165 5166 /* vec_trunc */ 5167 res_vf = vec_trunc(vf); 5168 // CHECK: @llvm.ppc.altivec.vrfiz 5169 // CHECK-LE: @llvm.ppc.altivec.vrfiz 5170 5171 res_vf = vec_vrfiz(vf); 5172 // CHECK: @llvm.ppc.altivec.vrfiz 5173 // CHECK-LE: @llvm.ppc.altivec.vrfiz 5174 5175 /* vec_unpackh */ 5176 res_vs = vec_unpackh(vsc); 5177 // CHECK: @llvm.ppc.altivec.vupkhsb 5178 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5179 5180 res_vbs = vec_unpackh(vbc); 5181 // CHECK: @llvm.ppc.altivec.vupkhsb 5182 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5183 5184 res_vi = vec_unpackh(vs); 5185 // CHECK: @llvm.ppc.altivec.vupkhsh 5186 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5187 5188 res_vbi = vec_unpackh(vbs); 5189 // CHECK: @llvm.ppc.altivec.vupkhsh 5190 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5191 5192 res_vui = vec_unpackh(vp); 5193 // CHECK: @llvm.ppc.altivec.vupkhpx 5194 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5195 5196 res_vs = vec_vupkhsb(vsc); 5197 // CHECK: @llvm.ppc.altivec.vupkhsb 5198 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5199 5200 res_vbs = vec_vupkhsb(vbc); 5201 // CHECK: @llvm.ppc.altivec.vupkhsb 5202 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5203 5204 res_vi = vec_vupkhsh(vs); 5205 // CHECK: @llvm.ppc.altivec.vupkhsh 5206 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5207 5208 res_vbi = vec_vupkhsh(vbs); 5209 // CHECK: @llvm.ppc.altivec.vupkhsh 5210 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5211 5212 res_vui = vec_vupkhsh(vp); 5213 // CHECK: @llvm.ppc.altivec.vupkhpx 5214 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5215 5216 /* vec_unpackl */ 5217 res_vs = vec_unpackl(vsc); 5218 // CHECK: @llvm.ppc.altivec.vupklsb 5219 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5220 5221 res_vbs = vec_unpackl(vbc); 5222 // CHECK: @llvm.ppc.altivec.vupklsb 5223 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5224 5225 res_vi = vec_unpackl(vs); 5226 // CHECK: @llvm.ppc.altivec.vupklsh 5227 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5228 5229 res_vbi = vec_unpackl(vbs); 5230 // CHECK: @llvm.ppc.altivec.vupklsh 5231 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5232 5233 res_vui = vec_unpackl(vp); 5234 // CHECK: @llvm.ppc.altivec.vupklpx 5235 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5236 5237 res_vs = vec_vupklsb(vsc); 5238 // CHECK: @llvm.ppc.altivec.vupklsb 5239 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5240 5241 res_vbs = vec_vupklsb(vbc); 5242 // CHECK: @llvm.ppc.altivec.vupklsb 5243 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5244 5245 res_vi = vec_vupklsh(vs); 5246 // CHECK: @llvm.ppc.altivec.vupklsh 5247 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5248 5249 res_vbi = vec_vupklsh(vbs); 5250 // CHECK: @llvm.ppc.altivec.vupklsh 5251 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5252 5253 res_vui = vec_vupklsh(vp); 5254 // CHECK: @llvm.ppc.altivec.vupklpx 5255 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5256 5257 /* vec_xor */ 5258 res_vsc = vec_xor(vsc, vsc); 5259 // CHECK: xor <16 x i8> 5260 // CHECK-LE: xor <16 x i8> 5261 5262 res_vsc = vec_xor(vbc, vsc); 5263 // CHECK: xor <16 x i8> 5264 // CHECK-LE: xor <16 x i8> 5265 5266 res_vsc = vec_xor(vsc, vbc); 5267 // CHECK: xor <16 x i8> 5268 // CHECK-LE: xor <16 x i8> 5269 5270 res_vuc = vec_xor(vuc, vuc); 5271 // CHECK: xor <16 x i8> 5272 // CHECK-LE: xor <16 x i8> 5273 5274 res_vuc = vec_xor(vbc, vuc); 5275 // CHECK: xor <16 x i8> 5276 // CHECK-LE: xor <16 x i8> 5277 5278 res_vuc = vec_xor(vuc, vbc); 5279 // CHECK: xor <16 x i8> 5280 // CHECK-LE: xor <16 x i8> 5281 5282 res_vbc = vec_xor(vbc, vbc); 5283 // CHECK: xor <16 x i8> 5284 // CHECK-LE: xor <16 x i8> 5285 5286 res_vs = vec_xor(vs, vs); 5287 // CHECK: xor <8 x i16> 5288 // CHECK-LE: xor <8 x i16> 5289 5290 res_vs = vec_xor(vbs, vs); 5291 // CHECK: xor <8 x i16> 5292 // CHECK-LE: xor <8 x i16> 5293 5294 res_vs = vec_xor(vs, vbs); 5295 // CHECK: xor <8 x i16> 5296 // CHECK-LE: xor <8 x i16> 5297 5298 res_vus = vec_xor(vus, vus); 5299 // CHECK: xor <8 x i16> 5300 // CHECK-LE: xor <8 x i16> 5301 5302 res_vus = vec_xor(vbs, vus); 5303 // CHECK: xor <8 x i16> 5304 // CHECK-LE: xor <8 x i16> 5305 5306 res_vus = vec_xor(vus, vbs); 5307 // CHECK: xor <8 x i16> 5308 // CHECK-LE: xor <8 x i16> 5309 5310 res_vbs = vec_xor(vbs, vbs); 5311 // CHECK: xor <8 x i16> 5312 // CHECK-LE: xor <8 x i16> 5313 5314 res_vi = vec_xor(vi, vi); 5315 // CHECK: xor <4 x i32> 5316 // CHECK-LE: xor <4 x i32> 5317 5318 res_vi = vec_xor(vbi, vi); 5319 // CHECK: xor <4 x i32> 5320 // CHECK-LE: xor <4 x i32> 5321 5322 res_vi = vec_xor(vi, vbi); 5323 // CHECK: xor <4 x i32> 5324 // CHECK-LE: xor <4 x i32> 5325 5326 res_vui = vec_xor(vui, vui); 5327 // CHECK: xor <4 x i32> 5328 // CHECK-LE: xor <4 x i32> 5329 5330 res_vui = vec_xor(vbi, vui); 5331 // CHECK: xor <4 x i32> 5332 // CHECK-LE: xor <4 x i32> 5333 5334 res_vui = vec_xor(vui, vbi); 5335 // CHECK: xor <4 x i32> 5336 // CHECK-LE: xor <4 x i32> 5337 5338 res_vbi = vec_xor(vbi, vbi); 5339 // CHECK: xor <4 x i32> 5340 // CHECK-LE: xor <4 x i32> 5341 5342 res_vf = vec_xor(vf, vf); 5343 // CHECK: xor <4 x i32> 5344 // CHECK-LE: xor <4 x i32> 5345 5346 res_vf = vec_xor(vbi, vf); 5347 // CHECK: xor <4 x i32> 5348 // CHECK-LE: xor <4 x i32> 5349 5350 res_vf = vec_xor(vf, vbi); 5351 // CHECK: xor <4 x i32> 5352 // CHECK-LE: xor <4 x i32> 5353 5354 res_vsc = vec_vxor(vsc, vsc); 5355 // CHECK: xor <16 x i8> 5356 // CHECK-LE: xor <16 x i8> 5357 5358 res_vsc = vec_vxor(vbc, vsc); 5359 // CHECK: xor <16 x i8> 5360 // CHECK-LE: xor <16 x i8> 5361 5362 res_vsc = vec_vxor(vsc, vbc); 5363 // CHECK: xor <16 x i8> 5364 // CHECK-LE: xor <16 x i8> 5365 5366 res_vuc = vec_vxor(vuc, vuc); 5367 // CHECK: xor <16 x i8> 5368 // CHECK-LE: xor <16 x i8> 5369 5370 res_vuc = vec_vxor(vbc, vuc); 5371 // CHECK: xor <16 x i8> 5372 // CHECK-LE: xor <16 x i8> 5373 5374 res_vuc = vec_vxor(vuc, vbc); 5375 // CHECK: xor <16 x i8> 5376 // CHECK-LE: xor <16 x i8> 5377 5378 res_vbc = vec_vxor(vbc, vbc); 5379 // CHECK: xor <16 x i8> 5380 // CHECK-LE: xor <16 x i8> 5381 5382 res_vs = vec_vxor(vs, vs); 5383 // CHECK: xor <8 x i16> 5384 // CHECK-LE: xor <8 x i16> 5385 5386 res_vs = vec_vxor(vbs, vs); 5387 // CHECK: xor <8 x i16> 5388 // CHECK-LE: xor <8 x i16> 5389 5390 res_vs = vec_vxor(vs, vbs); 5391 // CHECK: xor <8 x i16> 5392 // CHECK-LE: xor <8 x i16> 5393 5394 res_vus = vec_vxor(vus, vus); 5395 // CHECK: xor <8 x i16> 5396 // CHECK-LE: xor <8 x i16> 5397 5398 res_vus = vec_vxor(vbs, vus); 5399 // CHECK: xor <8 x i16> 5400 // CHECK-LE: xor <8 x i16> 5401 5402 res_vus = vec_vxor(vus, vbs); 5403 // CHECK: xor <8 x i16> 5404 // CHECK-LE: xor <8 x i16> 5405 5406 res_vbs = vec_vxor(vbs, vbs); 5407 // CHECK: xor <8 x i16> 5408 // CHECK-LE: xor <8 x i16> 5409 5410 res_vi = vec_vxor(vi, vi); 5411 // CHECK: xor <4 x i32> 5412 // CHECK-LE: xor <4 x i32> 5413 5414 res_vi = vec_vxor(vbi, vi); 5415 // CHECK: xor <4 x i32> 5416 // CHECK-LE: xor <4 x i32> 5417 5418 res_vi = vec_vxor(vi, vbi); 5419 // CHECK: xor <4 x i32> 5420 // CHECK-LE: xor <4 x i32> 5421 5422 res_vui = vec_vxor(vui, vui); 5423 // CHECK: xor <4 x i32> 5424 // CHECK-LE: xor <4 x i32> 5425 5426 res_vui = vec_vxor(vbi, vui); 5427 // CHECK: xor <4 x i32> 5428 // CHECK-LE: xor <4 x i32> 5429 5430 res_vui = vec_vxor(vui, vbi); 5431 // CHECK: xor <4 x i32> 5432 // CHECK-LE: xor <4 x i32> 5433 5434 res_vbi = vec_vxor(vbi, vbi); 5435 // CHECK: xor <4 x i32> 5436 // CHECK-LE: xor <4 x i32> 5437 5438 res_vf = vec_vxor(vf, vf); 5439 // CHECK: xor <4 x i32> 5440 // CHECK-LE: xor <4 x i32> 5441 5442 res_vf = vec_vxor(vbi, vf); 5443 // CHECK: xor <4 x i32> 5444 // CHECK-LE: xor <4 x i32> 5445 5446 res_vf = vec_vxor(vf, vbi); 5447 // CHECK: xor <4 x i32> 5448 // CHECK-LE: xor <4 x i32> 5449 5450 /* ------------------------------ extensions -------------------------------------- */ 5451 5452 /* vec_extract */ 5453 res_sc = vec_extract(vsc, param_i); 5454 // CHECK: extractelement <16 x i8> 5455 // CHECK-LE: extractelement <16 x i8> 5456 5457 res_uc = vec_extract(vuc, param_i); 5458 // CHECK: extractelement <16 x i8> 5459 // CHECK-LE: extractelement <16 x i8> 5460 5461 res_s = vec_extract(vs, param_i); 5462 // CHECK: extractelement <8 x i16> 5463 // CHECK-LE: extractelement <8 x i16> 5464 5465 res_us = vec_extract(vus, param_i); 5466 // CHECK: extractelement <8 x i16> 5467 // CHECK-LE: extractelement <8 x i16> 5468 5469 res_i = vec_extract(vi, param_i); 5470 // CHECK: extractelement <4 x i32> 5471 // CHECK-LE: extractelement <4 x i32> 5472 5473 res_ui = vec_extract(vui, param_i); 5474 // CHECK: extractelement <4 x i32> 5475 // CHECK-LE: extractelement <4 x i32> 5476 5477 res_f = vec_extract(vf, param_i); 5478 // CHECK: extractelement <4 x float> 5479 // CHECK-LE: extractelement <4 x float> 5480 5481 /* vec_insert */ 5482 res_vsc = vec_insert(param_sc, vsc, param_i); 5483 // CHECK: insertelement <16 x i8> 5484 // CHECK-LE: insertelement <16 x i8> 5485 5486 res_vuc = vec_insert(param_uc, vuc, param_i); 5487 // CHECK: insertelement <16 x i8> 5488 // CHECK-LE: insertelement <16 x i8> 5489 5490 res_vs = vec_insert(param_s, vs, param_i); 5491 // CHECK: insertelement <8 x i16> 5492 // CHECK-LE: insertelement <8 x i16> 5493 5494 res_vus = vec_insert(param_us, vus, param_i); 5495 // CHECK: insertelement <8 x i16> 5496 // CHECK-LE: insertelement <8 x i16> 5497 5498 res_vi = vec_insert(param_i, vi, param_i); 5499 // CHECK: insertelement <4 x i32> 5500 // CHECK-LE: insertelement <4 x i32> 5501 5502 res_vui = vec_insert(param_ui, vui, param_i); 5503 // CHECK: insertelement <4 x i32> 5504 // CHECK-LE: insertelement <4 x i32> 5505 5506 res_vf = vec_insert(param_f, vf, param_i); 5507 // CHECK: insertelement <4 x float> 5508 // CHECK-LE: insertelement <4 x float> 5509 5510 /* vec_lvlx */ 5511 res_vsc = vec_lvlx(0, ¶m_sc); 5512 // CHECK: @llvm.ppc.altivec.lvx 5513 // CHECK: @llvm.ppc.altivec.lvsl 5514 // CHECK: store <16 x i8> zeroinitializer 5515 // CHECK: @llvm.ppc.altivec.vperm 5516 // CHECK-LE: @llvm.ppc.altivec.lvx 5517 // CHECK-LE: @llvm.ppc.altivec.lvsl 5518 // CHECK-LE: store <16 x i8> zeroinitializer 5519 // CHECK-LE: @llvm.ppc.altivec.vperm 5520 5521 res_vsc = vec_lvlx(0, &vsc); 5522 // CHECK: @llvm.ppc.altivec.lvx 5523 // CHECK: @llvm.ppc.altivec.lvsl 5524 // CHECK: store <16 x i8> zeroinitializer 5525 // CHECK: @llvm.ppc.altivec.vperm 5526 // CHECK-LE: @llvm.ppc.altivec.lvx 5527 // CHECK-LE: @llvm.ppc.altivec.lvsl 5528 // CHECK-LE: store <16 x i8> zeroinitializer 5529 // CHECK-LE: @llvm.ppc.altivec.vperm 5530 5531 res_vuc = vec_lvlx(0, ¶m_uc); 5532 // CHECK: @llvm.ppc.altivec.lvx 5533 // CHECK: @llvm.ppc.altivec.lvsl 5534 // CHECK: store <16 x i8> zeroinitializer 5535 // CHECK: @llvm.ppc.altivec.vperm 5536 // CHECK-LE: @llvm.ppc.altivec.lvx 5537 // CHECK-LE: @llvm.ppc.altivec.lvsl 5538 // CHECK-LE: store <16 x i8> zeroinitializer 5539 // CHECK-LE: @llvm.ppc.altivec.vperm 5540 5541 res_vuc = vec_lvlx(0, &vuc); 5542 // CHECK: @llvm.ppc.altivec.lvx 5543 // CHECK: @llvm.ppc.altivec.lvsl 5544 // CHECK: store <16 x i8> zeroinitializer 5545 // CHECK: @llvm.ppc.altivec.vperm 5546 // CHECK-LE: @llvm.ppc.altivec.lvx 5547 // CHECK-LE: @llvm.ppc.altivec.lvsl 5548 // CHECK-LE: store <16 x i8> zeroinitializer 5549 // CHECK-LE: @llvm.ppc.altivec.vperm 5550 5551 res_vbc = vec_lvlx(0, &vbc); 5552 // CHECK: @llvm.ppc.altivec.lvx 5553 // CHECK: store <16 x i8> zeroinitializer 5554 // CHECK: @llvm.ppc.altivec.lvsl 5555 // CHECK: @llvm.ppc.altivec.vperm 5556 // CHECK-LE: @llvm.ppc.altivec.lvx 5557 // CHECK-LE: store <16 x i8> zeroinitializer 5558 // CHECK-LE: @llvm.ppc.altivec.lvsl 5559 // CHECK-LE: @llvm.ppc.altivec.vperm 5560 5561 res_vs = vec_lvlx(0, ¶m_s); 5562 // CHECK: @llvm.ppc.altivec.lvx 5563 // CHECK: @llvm.ppc.altivec.lvsl 5564 // CHECK: store <8 x i16> zeroinitializer 5565 // CHECK: @llvm.ppc.altivec.vperm 5566 // CHECK-LE: @llvm.ppc.altivec.lvx 5567 // CHECK-LE: @llvm.ppc.altivec.lvsl 5568 // CHECK-LE: store <8 x i16> zeroinitializer 5569 // CHECK-LE: @llvm.ppc.altivec.vperm 5570 5571 res_vs = vec_lvlx(0, &vs); 5572 // CHECK: @llvm.ppc.altivec.lvx 5573 // CHECK: @llvm.ppc.altivec.lvsl 5574 // CHECK: store <8 x i16> zeroinitializer 5575 // CHECK: @llvm.ppc.altivec.vperm 5576 // CHECK-LE: @llvm.ppc.altivec.lvx 5577 // CHECK-LE: @llvm.ppc.altivec.lvsl 5578 // CHECK-LE: store <8 x i16> zeroinitializer 5579 // CHECK-LE: @llvm.ppc.altivec.vperm 5580 5581 res_vus = vec_lvlx(0, ¶m_us); 5582 // CHECK: @llvm.ppc.altivec.lvx 5583 // CHECK: @llvm.ppc.altivec.lvsl 5584 // CHECK: store <8 x i16> zeroinitializer 5585 // CHECK: @llvm.ppc.altivec.vperm 5586 // CHECK-LE: @llvm.ppc.altivec.lvx 5587 // CHECK-LE: @llvm.ppc.altivec.lvsl 5588 // CHECK-LE: store <8 x i16> zeroinitializer 5589 // CHECK-LE: @llvm.ppc.altivec.vperm 5590 5591 res_vus = vec_lvlx(0, &vus); 5592 // CHECK: @llvm.ppc.altivec.lvx 5593 // CHECK: @llvm.ppc.altivec.lvsl 5594 // CHECK: store <8 x i16> zeroinitializer 5595 // CHECK: @llvm.ppc.altivec.vperm 5596 // CHECK-LE: @llvm.ppc.altivec.lvx 5597 // CHECK-LE: @llvm.ppc.altivec.lvsl 5598 // CHECK-LE: store <8 x i16> zeroinitializer 5599 // CHECK-LE: @llvm.ppc.altivec.vperm 5600 5601 res_vbs = vec_lvlx(0, &vbs); 5602 // CHECK: @llvm.ppc.altivec.lvx 5603 // CHECK: store <8 x i16> zeroinitializer 5604 // CHECK: @llvm.ppc.altivec.lvsl 5605 // CHECK: @llvm.ppc.altivec.vperm 5606 // CHECK-LE: @llvm.ppc.altivec.lvx 5607 // CHECK-LE: store <8 x i16> zeroinitializer 5608 // CHECK-LE: @llvm.ppc.altivec.lvsl 5609 // CHECK-LE: @llvm.ppc.altivec.vperm 5610 5611 res_vp = vec_lvlx(0, &vp); 5612 // CHECK: @llvm.ppc.altivec.lvx 5613 // CHECK: store <8 x i16> zeroinitializer 5614 // CHECK: @llvm.ppc.altivec.lvsl 5615 // CHECK: @llvm.ppc.altivec.vperm 5616 // CHECK-LE: @llvm.ppc.altivec.lvx 5617 // CHECK-LE: store <8 x i16> zeroinitializer 5618 // CHECK-LE: @llvm.ppc.altivec.lvsl 5619 // CHECK-LE: @llvm.ppc.altivec.vperm 5620 5621 res_vi = vec_lvlx(0, ¶m_i); 5622 // CHECK: @llvm.ppc.altivec.lvx 5623 // CHECK: @llvm.ppc.altivec.lvsl 5624 // CHECK: store <4 x i32> zeroinitializer 5625 // CHECK: @llvm.ppc.altivec.vperm 5626 // CHECK-LE: @llvm.ppc.altivec.lvx 5627 // CHECK-LE: @llvm.ppc.altivec.lvsl 5628 // CHECK-LE: store <4 x i32> zeroinitializer 5629 // CHECK-LE: @llvm.ppc.altivec.vperm 5630 5631 res_vi = vec_lvlx(0, &vi); 5632 // CHECK: @llvm.ppc.altivec.lvx 5633 // CHECK: @llvm.ppc.altivec.lvsl 5634 // CHECK: store <4 x i32> zeroinitializer 5635 // CHECK: @llvm.ppc.altivec.vperm 5636 // CHECK-LE: @llvm.ppc.altivec.lvx 5637 // CHECK-LE: @llvm.ppc.altivec.lvsl 5638 // CHECK-LE: store <4 x i32> zeroinitializer 5639 // CHECK-LE: @llvm.ppc.altivec.vperm 5640 5641 res_vui = vec_lvlx(0, ¶m_ui); 5642 // CHECK: @llvm.ppc.altivec.lvx 5643 // CHECK: @llvm.ppc.altivec.lvsl 5644 // CHECK: store <4 x i32> zeroinitializer 5645 // CHECK: @llvm.ppc.altivec.vperm 5646 // CHECK-LE: @llvm.ppc.altivec.lvx 5647 // CHECK-LE: @llvm.ppc.altivec.lvsl 5648 // CHECK-LE: store <4 x i32> zeroinitializer 5649 // CHECK-LE: @llvm.ppc.altivec.vperm 5650 5651 res_vui = vec_lvlx(0, &vui); 5652 // CHECK: @llvm.ppc.altivec.lvx 5653 // CHECK: @llvm.ppc.altivec.lvsl 5654 // CHECK: store <4 x i32> zeroinitializer 5655 // CHECK: @llvm.ppc.altivec.vperm 5656 // CHECK-LE: @llvm.ppc.altivec.lvx 5657 // CHECK-LE: @llvm.ppc.altivec.lvsl 5658 // CHECK-LE: store <4 x i32> zeroinitializer 5659 // CHECK-LE: @llvm.ppc.altivec.vperm 5660 5661 res_vbi = vec_lvlx(0, &vbi); 5662 // CHECK: @llvm.ppc.altivec.lvx 5663 // CHECK: store <4 x i32> zeroinitializer 5664 // CHECK: @llvm.ppc.altivec.lvsl 5665 // CHECK: @llvm.ppc.altivec.vperm 5666 // CHECK-LE: @llvm.ppc.altivec.lvx 5667 // CHECK-LE: store <4 x i32> zeroinitializer 5668 // CHECK-LE: @llvm.ppc.altivec.lvsl 5669 // CHECK-LE: @llvm.ppc.altivec.vperm 5670 5671 res_vf = vec_lvlx(0, &vf); 5672 // CHECK: @llvm.ppc.altivec.lvx 5673 // CHECK: @llvm.ppc.altivec.lvsl 5674 // CHECK: store <4 x float> zeroinitializer 5675 // CHECK: @llvm.ppc.altivec.vperm 5676 // CHECK-LE: @llvm.ppc.altivec.lvx 5677 // CHECK-LE: @llvm.ppc.altivec.lvsl 5678 // CHECK-LE: store <4 x float> zeroinitializer 5679 // CHECK-LE: @llvm.ppc.altivec.vperm 5680 5681 /* vec_lvlxl */ 5682 res_vsc = vec_lvlxl(0, ¶m_sc); 5683 // CHECK: @llvm.ppc.altivec.lvxl 5684 // CHECK: @llvm.ppc.altivec.lvsl 5685 // CHECK: store <16 x i8> zeroinitializer 5686 // CHECK: @llvm.ppc.altivec.vperm 5687 // CHECK-LE: @llvm.ppc.altivec.lvxl 5688 // CHECK-LE: @llvm.ppc.altivec.lvsl 5689 // CHECK-LE: store <16 x i8> zeroinitializer 5690 // CHECK-LE: @llvm.ppc.altivec.vperm 5691 5692 res_vsc = vec_lvlxl(0, &vsc); 5693 // CHECK: @llvm.ppc.altivec.lvxl 5694 // CHECK: @llvm.ppc.altivec.lvsl 5695 // CHECK: store <16 x i8> zeroinitializer 5696 // CHECK: @llvm.ppc.altivec.vperm 5697 // CHECK-LE: @llvm.ppc.altivec.lvxl 5698 // CHECK-LE: @llvm.ppc.altivec.lvsl 5699 // CHECK-LE: store <16 x i8> zeroinitializer 5700 // CHECK-LE: @llvm.ppc.altivec.vperm 5701 5702 res_vuc = vec_lvlxl(0, ¶m_uc); 5703 // CHECK: @llvm.ppc.altivec.lvxl 5704 // CHECK: @llvm.ppc.altivec.lvsl 5705 // CHECK: store <16 x i8> zeroinitializer 5706 // CHECK: @llvm.ppc.altivec.vperm 5707 // CHECK-LE: @llvm.ppc.altivec.lvxl 5708 // CHECK-LE: @llvm.ppc.altivec.lvsl 5709 // CHECK-LE: store <16 x i8> zeroinitializer 5710 // CHECK-LE: @llvm.ppc.altivec.vperm 5711 5712 res_vuc = vec_lvlxl(0, &vuc); 5713 // CHECK: @llvm.ppc.altivec.lvxl 5714 // CHECK: @llvm.ppc.altivec.lvsl 5715 // CHECK: store <16 x i8> zeroinitializer 5716 // CHECK: @llvm.ppc.altivec.vperm 5717 // CHECK-LE: @llvm.ppc.altivec.lvxl 5718 // CHECK-LE: @llvm.ppc.altivec.lvsl 5719 // CHECK-LE: store <16 x i8> zeroinitializer 5720 // CHECK-LE: @llvm.ppc.altivec.vperm 5721 5722 res_vbc = vec_lvlxl(0, &vbc); 5723 // CHECK: @llvm.ppc.altivec.lvxl 5724 // CHECK: store <16 x i8> zeroinitializer 5725 // CHECK: @llvm.ppc.altivec.lvsl 5726 // CHECK: @llvm.ppc.altivec.vperm 5727 // CHECK-LE: @llvm.ppc.altivec.lvxl 5728 // CHECK-LE: store <16 x i8> zeroinitializer 5729 // CHECK-LE: @llvm.ppc.altivec.lvsl 5730 // CHECK-LE: @llvm.ppc.altivec.vperm 5731 5732 res_vs = vec_lvlxl(0, ¶m_s); 5733 // CHECK: @llvm.ppc.altivec.lvxl 5734 // CHECK: @llvm.ppc.altivec.lvsl 5735 // CHECK: store <8 x i16> zeroinitializer 5736 // CHECK: @llvm.ppc.altivec.vperm 5737 // CHECK-LE: @llvm.ppc.altivec.lvxl 5738 // CHECK-LE: @llvm.ppc.altivec.lvsl 5739 // CHECK-LE: store <8 x i16> zeroinitializer 5740 // CHECK-LE: @llvm.ppc.altivec.vperm 5741 5742 res_vs = vec_lvlxl(0, &vs); 5743 // CHECK: @llvm.ppc.altivec.lvxl 5744 // CHECK: @llvm.ppc.altivec.lvsl 5745 // CHECK: store <8 x i16> zeroinitializer 5746 // CHECK: @llvm.ppc.altivec.vperm 5747 // CHECK-LE: @llvm.ppc.altivec.lvxl 5748 // CHECK-LE: @llvm.ppc.altivec.lvsl 5749 // CHECK-LE: store <8 x i16> zeroinitializer 5750 // CHECK-LE: @llvm.ppc.altivec.vperm 5751 5752 res_vus = vec_lvlxl(0, ¶m_us); 5753 // CHECK: @llvm.ppc.altivec.lvxl 5754 // CHECK: @llvm.ppc.altivec.lvsl 5755 // CHECK: store <8 x i16> zeroinitializer 5756 // CHECK: @llvm.ppc.altivec.vperm 5757 // CHECK-LE: @llvm.ppc.altivec.lvxl 5758 // CHECK-LE: @llvm.ppc.altivec.lvsl 5759 // CHECK-LE: store <8 x i16> zeroinitializer 5760 // CHECK-LE: @llvm.ppc.altivec.vperm 5761 5762 res_vus = vec_lvlxl(0, &vus); 5763 // CHECK: @llvm.ppc.altivec.lvxl 5764 // CHECK: @llvm.ppc.altivec.lvsl 5765 // CHECK: store <8 x i16> zeroinitializer 5766 // CHECK: @llvm.ppc.altivec.vperm 5767 // CHECK-LE: @llvm.ppc.altivec.lvxl 5768 // CHECK-LE: @llvm.ppc.altivec.lvsl 5769 // CHECK-LE: store <8 x i16> zeroinitializer 5770 // CHECK-LE: @llvm.ppc.altivec.vperm 5771 5772 res_vbs = vec_lvlxl(0, &vbs); 5773 // CHECK: @llvm.ppc.altivec.lvxl 5774 // CHECK: store <8 x i16> zeroinitializer 5775 // CHECK: @llvm.ppc.altivec.lvsl 5776 // CHECK: @llvm.ppc.altivec.vperm 5777 // CHECK-LE: @llvm.ppc.altivec.lvxl 5778 // CHECK-LE: store <8 x i16> zeroinitializer 5779 // CHECK-LE: @llvm.ppc.altivec.lvsl 5780 // CHECK-LE: @llvm.ppc.altivec.vperm 5781 5782 res_vp = vec_lvlxl(0, &vp); 5783 // CHECK: @llvm.ppc.altivec.lvxl 5784 // CHECK: store <8 x i16> zeroinitializer 5785 // CHECK: @llvm.ppc.altivec.lvsl 5786 // CHECK: @llvm.ppc.altivec.vperm 5787 // CHECK-LE: @llvm.ppc.altivec.lvxl 5788 // CHECK-LE: store <8 x i16> zeroinitializer 5789 // CHECK-LE: @llvm.ppc.altivec.lvsl 5790 // CHECK-LE: @llvm.ppc.altivec.vperm 5791 5792 res_vi = vec_lvlxl(0, ¶m_i); 5793 // CHECK: @llvm.ppc.altivec.lvxl 5794 // CHECK: @llvm.ppc.altivec.lvsl 5795 // CHECK: store <4 x i32> zeroinitializer 5796 // CHECK: @llvm.ppc.altivec.vperm 5797 // CHECK-LE: @llvm.ppc.altivec.lvxl 5798 // CHECK-LE: @llvm.ppc.altivec.lvsl 5799 // CHECK-LE: store <4 x i32> zeroinitializer 5800 // CHECK-LE: @llvm.ppc.altivec.vperm 5801 5802 res_vi = vec_lvlxl(0, &vi); 5803 // CHECK: @llvm.ppc.altivec.lvxl 5804 // CHECK: @llvm.ppc.altivec.lvsl 5805 // CHECK: store <4 x i32> zeroinitializer 5806 // CHECK: @llvm.ppc.altivec.vperm 5807 // CHECK-LE: @llvm.ppc.altivec.lvxl 5808 // CHECK-LE: @llvm.ppc.altivec.lvsl 5809 // CHECK-LE: store <4 x i32> zeroinitializer 5810 // CHECK-LE: @llvm.ppc.altivec.vperm 5811 5812 res_vui = vec_lvlxl(0, ¶m_ui); 5813 // CHECK: @llvm.ppc.altivec.lvxl 5814 // CHECK: @llvm.ppc.altivec.lvsl 5815 // CHECK: store <4 x i32> zeroinitializer 5816 // CHECK: @llvm.ppc.altivec.vperm 5817 // CHECK-LE: @llvm.ppc.altivec.lvxl 5818 // CHECK-LE: @llvm.ppc.altivec.lvsl 5819 // CHECK-LE: store <4 x i32> zeroinitializer 5820 // CHECK-LE: @llvm.ppc.altivec.vperm 5821 5822 res_vui = vec_lvlxl(0, &vui); 5823 // CHECK: @llvm.ppc.altivec.lvxl 5824 // CHECK: @llvm.ppc.altivec.lvsl 5825 // CHECK: store <4 x i32> zeroinitializer 5826 // CHECK: @llvm.ppc.altivec.vperm 5827 // CHECK-LE: @llvm.ppc.altivec.lvxl 5828 // CHECK-LE: @llvm.ppc.altivec.lvsl 5829 // CHECK-LE: store <4 x i32> zeroinitializer 5830 // CHECK-LE: @llvm.ppc.altivec.vperm 5831 5832 res_vbi = vec_lvlxl(0, &vbi); 5833 // CHECK: @llvm.ppc.altivec.lvxl 5834 // CHECK: store <4 x i32> zeroinitializer 5835 // CHECK: @llvm.ppc.altivec.lvsl 5836 // CHECK: @llvm.ppc.altivec.vperm 5837 // CHECK-LE: @llvm.ppc.altivec.lvxl 5838 // CHECK-LE: store <4 x i32> zeroinitializer 5839 // CHECK-LE: @llvm.ppc.altivec.lvsl 5840 // CHECK-LE: @llvm.ppc.altivec.vperm 5841 5842 res_vf = vec_lvlxl(0, &vf); 5843 // CHECK: @llvm.ppc.altivec.lvxl 5844 // CHECK: @llvm.ppc.altivec.lvsl 5845 // CHECK: store <4 x float> zeroinitializer 5846 // CHECK: @llvm.ppc.altivec.vperm 5847 // CHECK-LE: @llvm.ppc.altivec.lvxl 5848 // CHECK-LE: @llvm.ppc.altivec.lvsl 5849 // CHECK-LE: store <4 x float> zeroinitializer 5850 // CHECK-LE: @llvm.ppc.altivec.vperm 5851 5852 /* vec_lvrx */ 5853 res_vsc = vec_lvrx(0, ¶m_sc); 5854 // CHECK: @llvm.ppc.altivec.lvx 5855 // CHECK: @llvm.ppc.altivec.lvsl 5856 // CHECK: store <16 x i8> zeroinitializer 5857 // CHECK: @llvm.ppc.altivec.vperm 5858 // CHECK-LE: @llvm.ppc.altivec.lvx 5859 // CHECK-LE: @llvm.ppc.altivec.lvsl 5860 // CHECK-LE: store <16 x i8> zeroinitializer 5861 // CHECK-LE: @llvm.ppc.altivec.vperm 5862 5863 res_vsc = vec_lvrx(0, &vsc); 5864 // CHECK: @llvm.ppc.altivec.lvx 5865 // CHECK: @llvm.ppc.altivec.lvsl 5866 // CHECK: store <16 x i8> zeroinitializer 5867 // CHECK: @llvm.ppc.altivec.vperm 5868 // CHECK-LE: @llvm.ppc.altivec.lvx 5869 // CHECK-LE: @llvm.ppc.altivec.lvsl 5870 // CHECK-LE: store <16 x i8> zeroinitializer 5871 // CHECK-LE: @llvm.ppc.altivec.vperm 5872 5873 res_vuc = vec_lvrx(0, ¶m_uc); 5874 // CHECK: @llvm.ppc.altivec.lvx 5875 // CHECK: @llvm.ppc.altivec.lvsl 5876 // CHECK: store <16 x i8> zeroinitializer 5877 // CHECK: @llvm.ppc.altivec.vperm 5878 // CHECK-LE: @llvm.ppc.altivec.lvx 5879 // CHECK-LE: @llvm.ppc.altivec.lvsl 5880 // CHECK-LE: store <16 x i8> zeroinitializer 5881 // CHECK-LE: @llvm.ppc.altivec.vperm 5882 5883 res_vuc = vec_lvrx(0, &vuc); 5884 // CHECK: @llvm.ppc.altivec.lvx 5885 // CHECK: @llvm.ppc.altivec.lvsl 5886 // CHECK: store <16 x i8> zeroinitializer 5887 // CHECK: @llvm.ppc.altivec.vperm 5888 // CHECK-LE: @llvm.ppc.altivec.lvx 5889 // CHECK-LE: @llvm.ppc.altivec.lvsl 5890 // CHECK-LE: store <16 x i8> zeroinitializer 5891 // CHECK-LE: @llvm.ppc.altivec.vperm 5892 5893 res_vbc = vec_lvrx(0, &vbc); 5894 // CHECK: store <16 x i8> zeroinitializer 5895 // CHECK: @llvm.ppc.altivec.lvx 5896 // CHECK: @llvm.ppc.altivec.lvsl 5897 // CHECK: @llvm.ppc.altivec.vperm 5898 // CHECK-LE: store <16 x i8> zeroinitializer 5899 // CHECK-LE: @llvm.ppc.altivec.lvx 5900 // CHECK-LE: @llvm.ppc.altivec.lvsl 5901 // CHECK-LE: @llvm.ppc.altivec.vperm 5902 5903 res_vs = vec_lvrx(0, ¶m_s); 5904 // CHECK: @llvm.ppc.altivec.lvx 5905 // CHECK: @llvm.ppc.altivec.lvsl 5906 // CHECK: store <8 x i16> zeroinitializer 5907 // CHECK: @llvm.ppc.altivec.vperm 5908 // CHECK-LE: @llvm.ppc.altivec.lvx 5909 // CHECK-LE: @llvm.ppc.altivec.lvsl 5910 // CHECK-LE: store <8 x i16> zeroinitializer 5911 // CHECK-LE: @llvm.ppc.altivec.vperm 5912 5913 res_vs = vec_lvrx(0, &vs); 5914 // CHECK: @llvm.ppc.altivec.lvx 5915 // CHECK: @llvm.ppc.altivec.lvsl 5916 // CHECK: store <8 x i16> zeroinitializer 5917 // CHECK: @llvm.ppc.altivec.vperm 5918 // CHECK-LE: @llvm.ppc.altivec.lvx 5919 // CHECK-LE: @llvm.ppc.altivec.lvsl 5920 // CHECK-LE: store <8 x i16> zeroinitializer 5921 // CHECK-LE: @llvm.ppc.altivec.vperm 5922 5923 res_vus = vec_lvrx(0, ¶m_us); 5924 // CHECK: @llvm.ppc.altivec.lvx 5925 // CHECK: @llvm.ppc.altivec.lvsl 5926 // CHECK: store <8 x i16> zeroinitializer 5927 // CHECK: @llvm.ppc.altivec.vperm 5928 // CHECK-LE: @llvm.ppc.altivec.lvx 5929 // CHECK-LE: @llvm.ppc.altivec.lvsl 5930 // CHECK-LE: store <8 x i16> zeroinitializer 5931 // CHECK-LE: @llvm.ppc.altivec.vperm 5932 5933 res_vus = vec_lvrx(0, &vus); 5934 // CHECK: @llvm.ppc.altivec.lvx 5935 // CHECK: @llvm.ppc.altivec.lvsl 5936 // CHECK: store <8 x i16> zeroinitializer 5937 // CHECK: @llvm.ppc.altivec.vperm 5938 // CHECK-LE: @llvm.ppc.altivec.lvx 5939 // CHECK-LE: @llvm.ppc.altivec.lvsl 5940 // CHECK-LE: store <8 x i16> zeroinitializer 5941 // CHECK-LE: @llvm.ppc.altivec.vperm 5942 5943 res_vbs = vec_lvrx(0, &vbs); 5944 // CHECK: store <8 x i16> zeroinitializer 5945 // CHECK: @llvm.ppc.altivec.lvx 5946 // CHECK: @llvm.ppc.altivec.lvsl 5947 // CHECK: @llvm.ppc.altivec.vperm 5948 // CHECK-LE: store <8 x i16> zeroinitializer 5949 // CHECK-LE: @llvm.ppc.altivec.lvx 5950 // CHECK-LE: @llvm.ppc.altivec.lvsl 5951 // CHECK-LE: @llvm.ppc.altivec.vperm 5952 5953 res_vp = vec_lvrx(0, &vp); 5954 // CHECK: store <8 x i16> zeroinitializer 5955 // CHECK: @llvm.ppc.altivec.lvx 5956 // CHECK: @llvm.ppc.altivec.lvsl 5957 // CHECK: @llvm.ppc.altivec.vperm 5958 // CHECK-LE: store <8 x i16> zeroinitializer 5959 // CHECK-LE: @llvm.ppc.altivec.lvx 5960 // CHECK-LE: @llvm.ppc.altivec.lvsl 5961 // CHECK-LE: @llvm.ppc.altivec.vperm 5962 5963 res_vi = vec_lvrx(0, ¶m_i); 5964 // CHECK: @llvm.ppc.altivec.lvx 5965 // CHECK: @llvm.ppc.altivec.lvsl 5966 // CHECK: store <4 x i32> zeroinitializer 5967 // CHECK: @llvm.ppc.altivec.vperm 5968 // CHECK-LE: @llvm.ppc.altivec.lvx 5969 // CHECK-LE: @llvm.ppc.altivec.lvsl 5970 // CHECK-LE: store <4 x i32> zeroinitializer 5971 // CHECK-LE: @llvm.ppc.altivec.vperm 5972 5973 res_vi = vec_lvrx(0, &vi); 5974 // CHECK: @llvm.ppc.altivec.lvx 5975 // CHECK: @llvm.ppc.altivec.lvsl 5976 // CHECK: store <4 x i32> zeroinitializer 5977 // CHECK: @llvm.ppc.altivec.vperm 5978 // CHECK-LE: @llvm.ppc.altivec.lvx 5979 // CHECK-LE: @llvm.ppc.altivec.lvsl 5980 // CHECK-LE: store <4 x i32> zeroinitializer 5981 // CHECK-LE: @llvm.ppc.altivec.vperm 5982 5983 res_vui = vec_lvrx(0, ¶m_ui); 5984 // CHECK: @llvm.ppc.altivec.lvx 5985 // CHECK: @llvm.ppc.altivec.lvsl 5986 // CHECK: store <4 x i32> zeroinitializer 5987 // CHECK: @llvm.ppc.altivec.vperm 5988 // CHECK-LE: @llvm.ppc.altivec.lvx 5989 // CHECK-LE: @llvm.ppc.altivec.lvsl 5990 // CHECK-LE: store <4 x i32> zeroinitializer 5991 // CHECK-LE: @llvm.ppc.altivec.vperm 5992 5993 res_vui = vec_lvrx(0, &vui); 5994 // CHECK: @llvm.ppc.altivec.lvx 5995 // CHECK: @llvm.ppc.altivec.lvsl 5996 // CHECK: store <4 x i32> zeroinitializer 5997 // CHECK: @llvm.ppc.altivec.vperm 5998 // CHECK-LE: @llvm.ppc.altivec.lvx 5999 // CHECK-LE: @llvm.ppc.altivec.lvsl 6000 // CHECK-LE: store <4 x i32> zeroinitializer 6001 // CHECK-LE: @llvm.ppc.altivec.vperm 6002 6003 res_vbi = vec_lvrx(0, &vbi); 6004 // CHECK: store <4 x i32> zeroinitializer 6005 // CHECK: @llvm.ppc.altivec.lvx 6006 // CHECK: @llvm.ppc.altivec.lvsl 6007 // CHECK: @llvm.ppc.altivec.vperm 6008 // CHECK-LE: store <4 x i32> zeroinitializer 6009 // CHECK-LE: @llvm.ppc.altivec.lvx 6010 // CHECK-LE: @llvm.ppc.altivec.lvsl 6011 // CHECK-LE: @llvm.ppc.altivec.vperm 6012 6013 res_vf = vec_lvrx(0, &vf); 6014 // CHECK: @llvm.ppc.altivec.lvx 6015 // CHECK: @llvm.ppc.altivec.lvsl 6016 // CHECK: store <4 x float> zeroinitializer 6017 // CHECK: @llvm.ppc.altivec.vperm 6018 // CHECK-LE: @llvm.ppc.altivec.lvx 6019 // CHECK-LE: @llvm.ppc.altivec.lvsl 6020 // CHECK-LE: store <4 x float> zeroinitializer 6021 // CHECK-LE: @llvm.ppc.altivec.vperm 6022 6023 /* vec_lvrxl */ 6024 res_vsc = vec_lvrxl(0, ¶m_sc); 6025 // CHECK: @llvm.ppc.altivec.lvxl 6026 // CHECK: @llvm.ppc.altivec.lvsl 6027 // CHECK: store <16 x i8> zeroinitializer 6028 // CHECK: @llvm.ppc.altivec.vperm 6029 // CHECK-LE: @llvm.ppc.altivec.lvxl 6030 // CHECK-LE: @llvm.ppc.altivec.lvsl 6031 // CHECK-LE: store <16 x i8> zeroinitializer 6032 // CHECK-LE: @llvm.ppc.altivec.vperm 6033 6034 res_vsc = vec_lvrxl(0, &vsc); 6035 // CHECK: @llvm.ppc.altivec.lvxl 6036 // CHECK: @llvm.ppc.altivec.lvsl 6037 // CHECK: store <16 x i8> zeroinitializer 6038 // CHECK: @llvm.ppc.altivec.vperm 6039 // CHECK-LE: @llvm.ppc.altivec.lvxl 6040 // CHECK-LE: @llvm.ppc.altivec.lvsl 6041 // CHECK-LE: store <16 x i8> zeroinitializer 6042 // CHECK-LE: @llvm.ppc.altivec.vperm 6043 6044 res_vuc = vec_lvrxl(0, ¶m_uc); 6045 // CHECK: @llvm.ppc.altivec.lvxl 6046 // CHECK: @llvm.ppc.altivec.lvsl 6047 // CHECK: store <16 x i8> zeroinitializer 6048 // CHECK: @llvm.ppc.altivec.vperm 6049 // CHECK-LE: @llvm.ppc.altivec.lvxl 6050 // CHECK-LE: @llvm.ppc.altivec.lvsl 6051 // CHECK-LE: store <16 x i8> zeroinitializer 6052 // CHECK-LE: @llvm.ppc.altivec.vperm 6053 6054 res_vuc = vec_lvrxl(0, &vuc); 6055 // CHECK: @llvm.ppc.altivec.lvxl 6056 // CHECK: @llvm.ppc.altivec.lvsl 6057 // CHECK: store <16 x i8> zeroinitializer 6058 // CHECK: @llvm.ppc.altivec.vperm 6059 // CHECK-LE: @llvm.ppc.altivec.lvxl 6060 // CHECK-LE: @llvm.ppc.altivec.lvsl 6061 // CHECK-LE: store <16 x i8> zeroinitializer 6062 // CHECK-LE: @llvm.ppc.altivec.vperm 6063 6064 res_vbc = vec_lvrxl(0, &vbc); 6065 // CHECK: store <16 x i8> zeroinitializer 6066 // CHECK: @llvm.ppc.altivec.lvxl 6067 // CHECK: @llvm.ppc.altivec.lvsl 6068 // CHECK: @llvm.ppc.altivec.vperm 6069 // CHECK-LE: store <16 x i8> zeroinitializer 6070 // CHECK-LE: @llvm.ppc.altivec.lvxl 6071 // CHECK-LE: @llvm.ppc.altivec.lvsl 6072 // CHECK-LE: @llvm.ppc.altivec.vperm 6073 6074 res_vs = vec_lvrxl(0, ¶m_s); 6075 // CHECK: @llvm.ppc.altivec.lvxl 6076 // CHECK: @llvm.ppc.altivec.lvsl 6077 // CHECK: store <8 x i16> zeroinitializer 6078 // CHECK: @llvm.ppc.altivec.vperm 6079 // CHECK-LE: @llvm.ppc.altivec.lvxl 6080 // CHECK-LE: @llvm.ppc.altivec.lvsl 6081 // CHECK-LE: store <8 x i16> zeroinitializer 6082 // CHECK-LE: @llvm.ppc.altivec.vperm 6083 6084 res_vs = vec_lvrxl(0, &vs); 6085 // CHECK: @llvm.ppc.altivec.lvxl 6086 // CHECK: @llvm.ppc.altivec.lvsl 6087 // CHECK: store <8 x i16> zeroinitializer 6088 // CHECK: @llvm.ppc.altivec.vperm 6089 // CHECK-LE: @llvm.ppc.altivec.lvxl 6090 // CHECK-LE: @llvm.ppc.altivec.lvsl 6091 // CHECK-LE: store <8 x i16> zeroinitializer 6092 // CHECK-LE: @llvm.ppc.altivec.vperm 6093 6094 res_vus = vec_lvrxl(0, ¶m_us); 6095 // CHECK: @llvm.ppc.altivec.lvxl 6096 // CHECK: @llvm.ppc.altivec.lvsl 6097 // CHECK: store <8 x i16> zeroinitializer 6098 // CHECK: @llvm.ppc.altivec.vperm 6099 // CHECK-LE: @llvm.ppc.altivec.lvxl 6100 // CHECK-LE: @llvm.ppc.altivec.lvsl 6101 // CHECK-LE: store <8 x i16> zeroinitializer 6102 // CHECK-LE: @llvm.ppc.altivec.vperm 6103 6104 res_vus = vec_lvrxl(0, &vus); 6105 // CHECK: @llvm.ppc.altivec.lvxl 6106 // CHECK: @llvm.ppc.altivec.lvsl 6107 // CHECK: store <8 x i16> zeroinitializer 6108 // CHECK: @llvm.ppc.altivec.vperm 6109 // CHECK-LE: @llvm.ppc.altivec.lvxl 6110 // CHECK-LE: @llvm.ppc.altivec.lvsl 6111 // CHECK-LE: store <8 x i16> zeroinitializer 6112 // CHECK-LE: @llvm.ppc.altivec.vperm 6113 6114 res_vbs = vec_lvrxl(0, &vbs); 6115 // CHECK: store <8 x i16> zeroinitializer 6116 // CHECK: @llvm.ppc.altivec.lvxl 6117 // CHECK: @llvm.ppc.altivec.lvsl 6118 // CHECK: @llvm.ppc.altivec.vperm 6119 // CHECK-LE: store <8 x i16> zeroinitializer 6120 // CHECK-LE: @llvm.ppc.altivec.lvxl 6121 // CHECK-LE: @llvm.ppc.altivec.lvsl 6122 // CHECK-LE: @llvm.ppc.altivec.vperm 6123 6124 res_vp = vec_lvrxl(0, &vp); 6125 // CHECK: store <8 x i16> zeroinitializer 6126 // CHECK: @llvm.ppc.altivec.lvxl 6127 // CHECK: @llvm.ppc.altivec.lvsl 6128 // CHECK: @llvm.ppc.altivec.vperm 6129 // CHECK-LE: store <8 x i16> zeroinitializer 6130 // CHECK-LE: @llvm.ppc.altivec.lvxl 6131 // CHECK-LE: @llvm.ppc.altivec.lvsl 6132 // CHECK-LE: @llvm.ppc.altivec.vperm 6133 6134 res_vi = vec_lvrxl(0, ¶m_i); 6135 // CHECK: @llvm.ppc.altivec.lvxl 6136 // CHECK: @llvm.ppc.altivec.lvsl 6137 // CHECK: store <4 x i32> zeroinitializer 6138 // CHECK: @llvm.ppc.altivec.vperm 6139 // CHECK-LE: @llvm.ppc.altivec.lvxl 6140 // CHECK-LE: @llvm.ppc.altivec.lvsl 6141 // CHECK-LE: store <4 x i32> zeroinitializer 6142 // CHECK-LE: @llvm.ppc.altivec.vperm 6143 6144 res_vi = vec_lvrxl(0, &vi); 6145 // CHECK: @llvm.ppc.altivec.lvxl 6146 // CHECK: @llvm.ppc.altivec.lvsl 6147 // CHECK: store <4 x i32> zeroinitializer 6148 // CHECK: @llvm.ppc.altivec.vperm 6149 // CHECK-LE: @llvm.ppc.altivec.lvxl 6150 // CHECK-LE: @llvm.ppc.altivec.lvsl 6151 // CHECK-LE: store <4 x i32> zeroinitializer 6152 // CHECK-LE: @llvm.ppc.altivec.vperm 6153 6154 res_vui = vec_lvrxl(0, ¶m_ui); 6155 // CHECK: @llvm.ppc.altivec.lvxl 6156 // CHECK: @llvm.ppc.altivec.lvsl 6157 // CHECK: store <4 x i32> zeroinitializer 6158 // CHECK: @llvm.ppc.altivec.vperm 6159 // CHECK-LE: @llvm.ppc.altivec.lvxl 6160 // CHECK-LE: @llvm.ppc.altivec.lvsl 6161 // CHECK-LE: store <4 x i32> zeroinitializer 6162 // CHECK-LE: @llvm.ppc.altivec.vperm 6163 6164 res_vui = vec_lvrxl(0, &vui); 6165 // CHECK: @llvm.ppc.altivec.lvxl 6166 // CHECK: @llvm.ppc.altivec.lvsl 6167 // CHECK: store <4 x i32> zeroinitializer 6168 // CHECK: @llvm.ppc.altivec.vperm 6169 // CHECK-LE: @llvm.ppc.altivec.lvxl 6170 // CHECK-LE: @llvm.ppc.altivec.lvsl 6171 // CHECK-LE: store <4 x i32> zeroinitializer 6172 // CHECK-LE: @llvm.ppc.altivec.vperm 6173 6174 res_vbi = vec_lvrxl(0, &vbi); 6175 // CHECK: store <4 x i32> zeroinitializer 6176 // CHECK: @llvm.ppc.altivec.lvxl 6177 // CHECK: @llvm.ppc.altivec.lvsl 6178 // CHECK: @llvm.ppc.altivec.vperm 6179 // CHECK-LE: store <4 x i32> zeroinitializer 6180 // CHECK-LE: @llvm.ppc.altivec.lvxl 6181 // CHECK-LE: @llvm.ppc.altivec.lvsl 6182 // CHECK-LE: @llvm.ppc.altivec.vperm 6183 6184 res_vf = vec_lvrxl(0, &vf); 6185 // CHECK: @llvm.ppc.altivec.lvxl 6186 // CHECK: @llvm.ppc.altivec.lvsl 6187 // CHECK: store <4 x float> zeroinitializer 6188 // CHECK: @llvm.ppc.altivec.vperm 6189 // CHECK-LE: @llvm.ppc.altivec.lvxl 6190 // CHECK-LE: @llvm.ppc.altivec.lvsl 6191 // CHECK-LE: store <4 x float> zeroinitializer 6192 // CHECK-LE: @llvm.ppc.altivec.vperm 6193 6194 /* vec_stvlx */ 6195 vec_stvlx(vsc, 0, ¶m_sc); 6196 // CHECK: @llvm.ppc.altivec.lvx 6197 // CHECK: @llvm.ppc.altivec.lvsl 6198 // CHECK: store <16 x i8> zeroinitializer 6199 // CHECK: @llvm.ppc.altivec.vperm 6200 // CHECK: @llvm.ppc.altivec.lvsr 6201 // CHECK: @llvm.ppc.altivec.vperm 6202 // CHECK: @llvm.ppc.altivec.stvx 6203 // CHECK-LE: @llvm.ppc.altivec.lvx 6204 // CHECK-LE: @llvm.ppc.altivec.lvsl 6205 // CHECK-LE: store <16 x i8> zeroinitializer 6206 // CHECK-LE: @llvm.ppc.altivec.vperm 6207 // CHECK-LE: @llvm.ppc.altivec.lvsr 6208 // CHECK-LE: @llvm.ppc.altivec.vperm 6209 // CHECK-LE: @llvm.ppc.altivec.stvx 6210 6211 vec_stvlx(vsc, 0, &vsc); 6212 // CHECK: @llvm.ppc.altivec.lvx 6213 // CHECK: @llvm.ppc.altivec.lvsl 6214 // CHECK: store <16 x i8> zeroinitializer 6215 // CHECK: @llvm.ppc.altivec.vperm 6216 // CHECK: @llvm.ppc.altivec.lvsr 6217 // CHECK: @llvm.ppc.altivec.vperm 6218 // CHECK: @llvm.ppc.altivec.stvx 6219 // CHECK-LE: @llvm.ppc.altivec.lvx 6220 // CHECK-LE: @llvm.ppc.altivec.lvsl 6221 // CHECK-LE: store <16 x i8> zeroinitializer 6222 // CHECK-LE: @llvm.ppc.altivec.vperm 6223 // CHECK-LE: @llvm.ppc.altivec.lvsr 6224 // CHECK-LE: @llvm.ppc.altivec.vperm 6225 // CHECK-LE: @llvm.ppc.altivec.stvx 6226 6227 vec_stvlx(vuc, 0, ¶m_uc); 6228 // CHECK: @llvm.ppc.altivec.lvx 6229 // CHECK: @llvm.ppc.altivec.lvsl 6230 // CHECK: store <16 x i8> zeroinitializer 6231 // CHECK: @llvm.ppc.altivec.vperm 6232 // CHECK: @llvm.ppc.altivec.lvsr 6233 // CHECK: @llvm.ppc.altivec.vperm 6234 // CHECK: @llvm.ppc.altivec.stvx 6235 // CHECK-LE: @llvm.ppc.altivec.lvx 6236 // CHECK-LE: @llvm.ppc.altivec.lvsl 6237 // CHECK-LE: store <16 x i8> zeroinitializer 6238 // CHECK-LE: @llvm.ppc.altivec.vperm 6239 // CHECK-LE: @llvm.ppc.altivec.lvsr 6240 // CHECK-LE: @llvm.ppc.altivec.vperm 6241 // CHECK-LE: @llvm.ppc.altivec.stvx 6242 6243 vec_stvlx(vuc, 0, &vuc); 6244 // CHECK: @llvm.ppc.altivec.lvx 6245 // CHECK: @llvm.ppc.altivec.lvsl 6246 // CHECK: store <16 x i8> zeroinitializer 6247 // CHECK: @llvm.ppc.altivec.vperm 6248 // CHECK: @llvm.ppc.altivec.lvsr 6249 // CHECK: @llvm.ppc.altivec.vperm 6250 // CHECK: @llvm.ppc.altivec.stvx 6251 // CHECK-LE: @llvm.ppc.altivec.lvx 6252 // CHECK-LE: @llvm.ppc.altivec.lvsl 6253 // CHECK-LE: store <16 x i8> zeroinitializer 6254 // CHECK-LE: @llvm.ppc.altivec.vperm 6255 // CHECK-LE: @llvm.ppc.altivec.lvsr 6256 // CHECK-LE: @llvm.ppc.altivec.vperm 6257 // CHECK-LE: @llvm.ppc.altivec.stvx 6258 6259 vec_stvlx(vbc, 0, &vbc); 6260 // CHECK: store <16 x i8> zeroinitializer 6261 // CHECK: @llvm.ppc.altivec.lvx 6262 // CHECK: @llvm.ppc.altivec.lvsl 6263 // CHECK: @llvm.ppc.altivec.vperm 6264 // CHECK: @llvm.ppc.altivec.lvsr 6265 // CHECK: @llvm.ppc.altivec.vperm 6266 // CHECK: @llvm.ppc.altivec.stvx 6267 // CHECK-LE: store <16 x i8> zeroinitializer 6268 // CHECK-LE: @llvm.ppc.altivec.lvx 6269 // CHECK-LE: @llvm.ppc.altivec.lvsl 6270 // CHECK-LE: @llvm.ppc.altivec.vperm 6271 // CHECK-LE: @llvm.ppc.altivec.lvsr 6272 // CHECK-LE: @llvm.ppc.altivec.vperm 6273 // CHECK-LE: @llvm.ppc.altivec.stvx 6274 6275 vec_stvlx(vs, 0, ¶m_s); 6276 // CHECK: @llvm.ppc.altivec.lvx 6277 // CHECK: @llvm.ppc.altivec.lvsl 6278 // CHECK: store <8 x i16> zeroinitializer 6279 // CHECK: @llvm.ppc.altivec.vperm 6280 // CHECK: @llvm.ppc.altivec.lvsr 6281 // CHECK: @llvm.ppc.altivec.vperm 6282 // CHECK: @llvm.ppc.altivec.stvx 6283 // CHECK-LE: @llvm.ppc.altivec.lvx 6284 // CHECK-LE: @llvm.ppc.altivec.lvsl 6285 // CHECK-LE: store <8 x i16> zeroinitializer 6286 // CHECK-LE: @llvm.ppc.altivec.vperm 6287 // CHECK-LE: @llvm.ppc.altivec.lvsr 6288 // CHECK-LE: @llvm.ppc.altivec.vperm 6289 // CHECK-LE: @llvm.ppc.altivec.stvx 6290 6291 vec_stvlx(vs, 0, &vs); 6292 // CHECK: @llvm.ppc.altivec.lvx 6293 // CHECK: @llvm.ppc.altivec.lvsl 6294 // CHECK: store <8 x i16> zeroinitializer 6295 // CHECK: @llvm.ppc.altivec.vperm 6296 // CHECK: @llvm.ppc.altivec.lvsr 6297 // CHECK: @llvm.ppc.altivec.vperm 6298 // CHECK: @llvm.ppc.altivec.stvx 6299 // CHECK-LE: @llvm.ppc.altivec.lvx 6300 // CHECK-LE: @llvm.ppc.altivec.lvsl 6301 // CHECK-LE: store <8 x i16> zeroinitializer 6302 // CHECK-LE: @llvm.ppc.altivec.vperm 6303 // CHECK-LE: @llvm.ppc.altivec.lvsr 6304 // CHECK-LE: @llvm.ppc.altivec.vperm 6305 // CHECK-LE: @llvm.ppc.altivec.stvx 6306 6307 vec_stvlx(vus, 0, ¶m_us); 6308 // CHECK: @llvm.ppc.altivec.lvx 6309 // CHECK: @llvm.ppc.altivec.lvsl 6310 // CHECK: store <8 x i16> zeroinitializer 6311 // CHECK: @llvm.ppc.altivec.vperm 6312 // CHECK: @llvm.ppc.altivec.lvsr 6313 // CHECK: @llvm.ppc.altivec.vperm 6314 // CHECK: @llvm.ppc.altivec.stvx 6315 // CHECK-LE: @llvm.ppc.altivec.lvx 6316 // CHECK-LE: @llvm.ppc.altivec.lvsl 6317 // CHECK-LE: store <8 x i16> zeroinitializer 6318 // CHECK-LE: @llvm.ppc.altivec.vperm 6319 // CHECK-LE: @llvm.ppc.altivec.lvsr 6320 // CHECK-LE: @llvm.ppc.altivec.vperm 6321 // CHECK-LE: @llvm.ppc.altivec.stvx 6322 6323 vec_stvlx(vus, 0, &vus); 6324 // CHECK: @llvm.ppc.altivec.lvx 6325 // CHECK: @llvm.ppc.altivec.lvsl 6326 // CHECK: store <8 x i16> zeroinitializer 6327 // CHECK: @llvm.ppc.altivec.vperm 6328 // CHECK: @llvm.ppc.altivec.lvsr 6329 // CHECK: @llvm.ppc.altivec.vperm 6330 // CHECK: @llvm.ppc.altivec.stvx 6331 // CHECK-LE: @llvm.ppc.altivec.lvx 6332 // CHECK-LE: @llvm.ppc.altivec.lvsl 6333 // CHECK-LE: store <8 x i16> zeroinitializer 6334 // CHECK-LE: @llvm.ppc.altivec.vperm 6335 // CHECK-LE: @llvm.ppc.altivec.lvsr 6336 // CHECK-LE: @llvm.ppc.altivec.vperm 6337 // CHECK-LE: @llvm.ppc.altivec.stvx 6338 6339 vec_stvlx(vbs, 0, &vbs); 6340 // CHECK: store <8 x i16> zeroinitializer 6341 // CHECK: @llvm.ppc.altivec.lvx 6342 // CHECK: @llvm.ppc.altivec.lvsl 6343 // CHECK: @llvm.ppc.altivec.vperm 6344 // CHECK: @llvm.ppc.altivec.lvsr 6345 // CHECK: @llvm.ppc.altivec.vperm 6346 // CHECK: @llvm.ppc.altivec.stvx 6347 // CHECK-LE: store <8 x i16> zeroinitializer 6348 // CHECK-LE: @llvm.ppc.altivec.lvx 6349 // CHECK-LE: @llvm.ppc.altivec.lvsl 6350 // CHECK-LE: @llvm.ppc.altivec.vperm 6351 // CHECK-LE: @llvm.ppc.altivec.lvsr 6352 // CHECK-LE: @llvm.ppc.altivec.vperm 6353 // CHECK-LE: @llvm.ppc.altivec.stvx 6354 6355 vec_stvlx(vp, 0, &vp); 6356 // CHECK: store <8 x i16> zeroinitializer 6357 // CHECK: @llvm.ppc.altivec.lvx 6358 // CHECK: @llvm.ppc.altivec.lvsl 6359 // CHECK: @llvm.ppc.altivec.vperm 6360 // CHECK: @llvm.ppc.altivec.lvsr 6361 // CHECK: @llvm.ppc.altivec.vperm 6362 // CHECK: @llvm.ppc.altivec.stvx 6363 // CHECK-LE: store <8 x i16> zeroinitializer 6364 // CHECK-LE: @llvm.ppc.altivec.lvx 6365 // CHECK-LE: @llvm.ppc.altivec.lvsl 6366 // CHECK-LE: @llvm.ppc.altivec.vperm 6367 // CHECK-LE: @llvm.ppc.altivec.lvsr 6368 // CHECK-LE: @llvm.ppc.altivec.vperm 6369 // CHECK-LE: @llvm.ppc.altivec.stvx 6370 6371 vec_stvlx(vi, 0, ¶m_i); 6372 // CHECK: @llvm.ppc.altivec.lvx 6373 // CHECK: @llvm.ppc.altivec.lvsl 6374 // CHECK: store <4 x i32> zeroinitializer 6375 // CHECK: @llvm.ppc.altivec.vperm 6376 // CHECK: @llvm.ppc.altivec.lvsr 6377 // CHECK: @llvm.ppc.altivec.vperm 6378 // CHECK: @llvm.ppc.altivec.stvx 6379 // CHECK-LE: @llvm.ppc.altivec.lvx 6380 // CHECK-LE: @llvm.ppc.altivec.lvsl 6381 // CHECK-LE: store <4 x i32> zeroinitializer 6382 // CHECK-LE: @llvm.ppc.altivec.vperm 6383 // CHECK-LE: @llvm.ppc.altivec.lvsr 6384 // CHECK-LE: @llvm.ppc.altivec.vperm 6385 // CHECK-LE: @llvm.ppc.altivec.stvx 6386 6387 vec_stvlx(vi, 0, &vi); 6388 // CHECK: @llvm.ppc.altivec.lvx 6389 // CHECK: @llvm.ppc.altivec.lvsl 6390 // CHECK: store <4 x i32> zeroinitializer 6391 // CHECK: @llvm.ppc.altivec.vperm 6392 // CHECK: @llvm.ppc.altivec.lvsr 6393 // CHECK: @llvm.ppc.altivec.vperm 6394 // CHECK: @llvm.ppc.altivec.stvx 6395 // CHECK-LE: @llvm.ppc.altivec.lvx 6396 // CHECK-LE: @llvm.ppc.altivec.lvsl 6397 // CHECK-LE: store <4 x i32> zeroinitializer 6398 // CHECK-LE: @llvm.ppc.altivec.vperm 6399 // CHECK-LE: @llvm.ppc.altivec.lvsr 6400 // CHECK-LE: @llvm.ppc.altivec.vperm 6401 // CHECK-LE: @llvm.ppc.altivec.stvx 6402 6403 vec_stvlx(vui, 0, ¶m_ui); 6404 // CHECK: @llvm.ppc.altivec.lvx 6405 // CHECK: @llvm.ppc.altivec.lvsl 6406 // CHECK: store <4 x i32> zeroinitializer 6407 // CHECK: @llvm.ppc.altivec.vperm 6408 // CHECK: @llvm.ppc.altivec.lvsr 6409 // CHECK: @llvm.ppc.altivec.vperm 6410 // CHECK: @llvm.ppc.altivec.stvx 6411 // CHECK-LE: @llvm.ppc.altivec.lvx 6412 // CHECK-LE: @llvm.ppc.altivec.lvsl 6413 // CHECK-LE: store <4 x i32> zeroinitializer 6414 // CHECK-LE: @llvm.ppc.altivec.vperm 6415 // CHECK-LE: @llvm.ppc.altivec.lvsr 6416 // CHECK-LE: @llvm.ppc.altivec.vperm 6417 // CHECK-LE: @llvm.ppc.altivec.stvx 6418 6419 vec_stvlx(vui, 0, &vui); 6420 // CHECK: @llvm.ppc.altivec.lvx 6421 // CHECK: @llvm.ppc.altivec.lvsl 6422 // CHECK: store <4 x i32> zeroinitializer 6423 // CHECK: @llvm.ppc.altivec.vperm 6424 // CHECK: @llvm.ppc.altivec.lvsr 6425 // CHECK: @llvm.ppc.altivec.vperm 6426 // CHECK: @llvm.ppc.altivec.stvx 6427 // CHECK-LE: @llvm.ppc.altivec.lvx 6428 // CHECK-LE: @llvm.ppc.altivec.lvsl 6429 // CHECK-LE: store <4 x i32> zeroinitializer 6430 // CHECK-LE: @llvm.ppc.altivec.vperm 6431 // CHECK-LE: @llvm.ppc.altivec.lvsr 6432 // CHECK-LE: @llvm.ppc.altivec.vperm 6433 // CHECK-LE: @llvm.ppc.altivec.stvx 6434 6435 vec_stvlx(vbi, 0, &vbi); 6436 // CHECK: store <4 x i32> zeroinitializer 6437 // CHECK: @llvm.ppc.altivec.lvx 6438 // CHECK: @llvm.ppc.altivec.lvsl 6439 // CHECK: @llvm.ppc.altivec.vperm 6440 // CHECK: @llvm.ppc.altivec.lvsr 6441 // CHECK: @llvm.ppc.altivec.vperm 6442 // CHECK: @llvm.ppc.altivec.stvx 6443 // CHECK-LE: store <4 x i32> zeroinitializer 6444 // CHECK-LE: @llvm.ppc.altivec.lvx 6445 // CHECK-LE: @llvm.ppc.altivec.lvsl 6446 // CHECK-LE: @llvm.ppc.altivec.vperm 6447 // CHECK-LE: @llvm.ppc.altivec.lvsr 6448 // CHECK-LE: @llvm.ppc.altivec.vperm 6449 // CHECK-LE: @llvm.ppc.altivec.stvx 6450 6451 vec_stvlx(vf, 0, &vf); 6452 // CHECK: @llvm.ppc.altivec.lvx 6453 // CHECK: @llvm.ppc.altivec.lvsl 6454 // CHECK: store <4 x float> zeroinitializer 6455 // CHECK: @llvm.ppc.altivec.vperm 6456 // CHECK: @llvm.ppc.altivec.lvsr 6457 // CHECK: @llvm.ppc.altivec.vperm 6458 // CHECK: @llvm.ppc.altivec.stvx 6459 // CHECK-LE: @llvm.ppc.altivec.lvx 6460 // CHECK-LE: @llvm.ppc.altivec.lvsl 6461 // CHECK-LE: store <4 x float> zeroinitializer 6462 // CHECK-LE: @llvm.ppc.altivec.vperm 6463 // CHECK-LE: @llvm.ppc.altivec.lvsr 6464 // CHECK-LE: @llvm.ppc.altivec.vperm 6465 // CHECK-LE: @llvm.ppc.altivec.stvx 6466 6467 /* vec_stvlxl */ 6468 vec_stvlxl(vsc, 0, ¶m_sc); 6469 // CHECK: @llvm.ppc.altivec.lvx 6470 // CHECK: @llvm.ppc.altivec.lvsl 6471 // CHECK: store <16 x i8> zeroinitializer 6472 // CHECK: @llvm.ppc.altivec.vperm 6473 // CHECK: @llvm.ppc.altivec.lvsr 6474 // CHECK: @llvm.ppc.altivec.vperm 6475 // CHECK: @llvm.ppc.altivec.stvxl 6476 // CHECK-LE: @llvm.ppc.altivec.lvx 6477 // CHECK-LE: @llvm.ppc.altivec.lvsl 6478 // CHECK-LE: store <16 x i8> zeroinitializer 6479 // CHECK-LE: @llvm.ppc.altivec.vperm 6480 // CHECK-LE: @llvm.ppc.altivec.lvsr 6481 // CHECK-LE: @llvm.ppc.altivec.vperm 6482 // CHECK-LE: @llvm.ppc.altivec.stvxl 6483 6484 vec_stvlxl(vsc, 0, &vsc); 6485 // CHECK: @llvm.ppc.altivec.lvx 6486 // CHECK: @llvm.ppc.altivec.lvsl 6487 // CHECK: store <16 x i8> zeroinitializer 6488 // CHECK: @llvm.ppc.altivec.vperm 6489 // CHECK: @llvm.ppc.altivec.lvsr 6490 // CHECK: @llvm.ppc.altivec.vperm 6491 // CHECK: @llvm.ppc.altivec.stvxl 6492 // CHECK-LE: @llvm.ppc.altivec.lvx 6493 // CHECK-LE: @llvm.ppc.altivec.lvsl 6494 // CHECK-LE: store <16 x i8> zeroinitializer 6495 // CHECK-LE: @llvm.ppc.altivec.vperm 6496 // CHECK-LE: @llvm.ppc.altivec.lvsr 6497 // CHECK-LE: @llvm.ppc.altivec.vperm 6498 // CHECK-LE: @llvm.ppc.altivec.stvxl 6499 6500 vec_stvlxl(vuc, 0, ¶m_uc); 6501 // CHECK: @llvm.ppc.altivec.lvx 6502 // CHECK: @llvm.ppc.altivec.lvsl 6503 // CHECK: store <16 x i8> zeroinitializer 6504 // CHECK: @llvm.ppc.altivec.vperm 6505 // CHECK: @llvm.ppc.altivec.lvsr 6506 // CHECK: @llvm.ppc.altivec.vperm 6507 // CHECK: @llvm.ppc.altivec.stvxl 6508 // CHECK-LE: @llvm.ppc.altivec.lvx 6509 // CHECK-LE: @llvm.ppc.altivec.lvsl 6510 // CHECK-LE: store <16 x i8> zeroinitializer 6511 // CHECK-LE: @llvm.ppc.altivec.vperm 6512 // CHECK-LE: @llvm.ppc.altivec.lvsr 6513 // CHECK-LE: @llvm.ppc.altivec.vperm 6514 // CHECK-LE: @llvm.ppc.altivec.stvxl 6515 6516 vec_stvlxl(vuc, 0, &vuc); 6517 // CHECK: @llvm.ppc.altivec.lvx 6518 // CHECK: @llvm.ppc.altivec.lvsl 6519 // CHECK: store <16 x i8> zeroinitializer 6520 // CHECK: @llvm.ppc.altivec.vperm 6521 // CHECK: @llvm.ppc.altivec.lvsr 6522 // CHECK: @llvm.ppc.altivec.vperm 6523 // CHECK: @llvm.ppc.altivec.stvxl 6524 // CHECK-LE: @llvm.ppc.altivec.lvx 6525 // CHECK-LE: @llvm.ppc.altivec.lvsl 6526 // CHECK-LE: store <16 x i8> zeroinitializer 6527 // CHECK-LE: @llvm.ppc.altivec.vperm 6528 // CHECK-LE: @llvm.ppc.altivec.lvsr 6529 // CHECK-LE: @llvm.ppc.altivec.vperm 6530 // CHECK-LE: @llvm.ppc.altivec.stvxl 6531 6532 vec_stvlxl(vbc, 0, &vbc); 6533 // CHECK: store <16 x i8> zeroinitializer 6534 // CHECK: @llvm.ppc.altivec.lvx 6535 // CHECK: @llvm.ppc.altivec.lvsl 6536 // CHECK: @llvm.ppc.altivec.vperm 6537 // CHECK: @llvm.ppc.altivec.lvsr 6538 // CHECK: @llvm.ppc.altivec.vperm 6539 // CHECK: @llvm.ppc.altivec.stvxl 6540 // CHECK-LE: store <16 x i8> zeroinitializer 6541 // CHECK-LE: @llvm.ppc.altivec.lvx 6542 // CHECK-LE: @llvm.ppc.altivec.lvsl 6543 // CHECK-LE: @llvm.ppc.altivec.vperm 6544 // CHECK-LE: @llvm.ppc.altivec.lvsr 6545 // CHECK-LE: @llvm.ppc.altivec.vperm 6546 // CHECK-LE: @llvm.ppc.altivec.stvxl 6547 6548 vec_stvlxl(vs, 0, ¶m_s); 6549 // CHECK: @llvm.ppc.altivec.lvx 6550 // CHECK: @llvm.ppc.altivec.lvsl 6551 // CHECK: store <8 x i16> zeroinitializer 6552 // CHECK: @llvm.ppc.altivec.vperm 6553 // CHECK: @llvm.ppc.altivec.lvsr 6554 // CHECK: @llvm.ppc.altivec.vperm 6555 // CHECK: @llvm.ppc.altivec.stvxl 6556 // CHECK-LE: @llvm.ppc.altivec.lvx 6557 // CHECK-LE: @llvm.ppc.altivec.lvsl 6558 // CHECK-LE: store <8 x i16> zeroinitializer 6559 // CHECK-LE: @llvm.ppc.altivec.vperm 6560 // CHECK-LE: @llvm.ppc.altivec.lvsr 6561 // CHECK-LE: @llvm.ppc.altivec.vperm 6562 // CHECK-LE: @llvm.ppc.altivec.stvxl 6563 6564 vec_stvlxl(vs, 0, &vs); 6565 // CHECK: @llvm.ppc.altivec.lvx 6566 // CHECK: @llvm.ppc.altivec.lvsl 6567 // CHECK: store <8 x i16> zeroinitializer 6568 // CHECK: @llvm.ppc.altivec.vperm 6569 // CHECK: @llvm.ppc.altivec.lvsr 6570 // CHECK: @llvm.ppc.altivec.vperm 6571 // CHECK: @llvm.ppc.altivec.stvxl 6572 // CHECK-LE: @llvm.ppc.altivec.lvx 6573 // CHECK-LE: @llvm.ppc.altivec.lvsl 6574 // CHECK-LE: store <8 x i16> zeroinitializer 6575 // CHECK-LE: @llvm.ppc.altivec.vperm 6576 // CHECK-LE: @llvm.ppc.altivec.lvsr 6577 // CHECK-LE: @llvm.ppc.altivec.vperm 6578 // CHECK-LE: @llvm.ppc.altivec.stvxl 6579 6580 vec_stvlxl(vus, 0, ¶m_us); 6581 // CHECK: @llvm.ppc.altivec.lvx 6582 // CHECK: @llvm.ppc.altivec.lvsl 6583 // CHECK: store <8 x i16> zeroinitializer 6584 // CHECK: @llvm.ppc.altivec.vperm 6585 // CHECK: @llvm.ppc.altivec.lvsr 6586 // CHECK: @llvm.ppc.altivec.vperm 6587 // CHECK: @llvm.ppc.altivec.stvxl 6588 // CHECK-LE: @llvm.ppc.altivec.lvx 6589 // CHECK-LE: @llvm.ppc.altivec.lvsl 6590 // CHECK-LE: store <8 x i16> zeroinitializer 6591 // CHECK-LE: @llvm.ppc.altivec.vperm 6592 // CHECK-LE: @llvm.ppc.altivec.lvsr 6593 // CHECK-LE: @llvm.ppc.altivec.vperm 6594 // CHECK-LE: @llvm.ppc.altivec.stvxl 6595 6596 vec_stvlxl(vus, 0, &vus); 6597 // CHECK: @llvm.ppc.altivec.lvx 6598 // CHECK: @llvm.ppc.altivec.lvsl 6599 // CHECK: store <8 x i16> zeroinitializer 6600 // CHECK: @llvm.ppc.altivec.vperm 6601 // CHECK: @llvm.ppc.altivec.lvsr 6602 // CHECK: @llvm.ppc.altivec.vperm 6603 // CHECK: @llvm.ppc.altivec.stvxl 6604 // CHECK-LE: @llvm.ppc.altivec.lvx 6605 // CHECK-LE: @llvm.ppc.altivec.lvsl 6606 // CHECK-LE: store <8 x i16> zeroinitializer 6607 // CHECK-LE: @llvm.ppc.altivec.vperm 6608 // CHECK-LE: @llvm.ppc.altivec.lvsr 6609 // CHECK-LE: @llvm.ppc.altivec.vperm 6610 // CHECK-LE: @llvm.ppc.altivec.stvxl 6611 6612 vec_stvlxl(vbs, 0, &vbs); 6613 // CHECK: store <8 x i16> zeroinitializer 6614 // CHECK: @llvm.ppc.altivec.lvx 6615 // CHECK: @llvm.ppc.altivec.lvsl 6616 // CHECK: @llvm.ppc.altivec.vperm 6617 // CHECK: @llvm.ppc.altivec.lvsr 6618 // CHECK: @llvm.ppc.altivec.vperm 6619 // CHECK: @llvm.ppc.altivec.stvxl 6620 // CHECK-LE: store <8 x i16> zeroinitializer 6621 // CHECK-LE: @llvm.ppc.altivec.lvx 6622 // CHECK-LE: @llvm.ppc.altivec.lvsl 6623 // CHECK-LE: @llvm.ppc.altivec.vperm 6624 // CHECK-LE: @llvm.ppc.altivec.lvsr 6625 // CHECK-LE: @llvm.ppc.altivec.vperm 6626 // CHECK-LE: @llvm.ppc.altivec.stvxl 6627 6628 vec_stvlxl(vp, 0, &vp); 6629 // CHECK: store <8 x i16> zeroinitializer 6630 // CHECK: @llvm.ppc.altivec.lvx 6631 // CHECK: @llvm.ppc.altivec.lvsl 6632 // CHECK: @llvm.ppc.altivec.vperm 6633 // CHECK: @llvm.ppc.altivec.lvsr 6634 // CHECK: @llvm.ppc.altivec.vperm 6635 // CHECK: @llvm.ppc.altivec.stvxl 6636 // CHECK-LE: store <8 x i16> zeroinitializer 6637 // CHECK-LE: @llvm.ppc.altivec.lvx 6638 // CHECK-LE: @llvm.ppc.altivec.lvsl 6639 // CHECK-LE: @llvm.ppc.altivec.vperm 6640 // CHECK-LE: @llvm.ppc.altivec.lvsr 6641 // CHECK-LE: @llvm.ppc.altivec.vperm 6642 // CHECK-LE: @llvm.ppc.altivec.stvxl 6643 6644 vec_stvlxl(vi, 0, ¶m_i); 6645 // CHECK: @llvm.ppc.altivec.lvx 6646 // CHECK: @llvm.ppc.altivec.lvsl 6647 // CHECK: store <4 x i32> zeroinitializer 6648 // CHECK: @llvm.ppc.altivec.vperm 6649 // CHECK: @llvm.ppc.altivec.lvsr 6650 // CHECK: @llvm.ppc.altivec.vperm 6651 // CHECK: @llvm.ppc.altivec.stvxl 6652 // CHECK-LE: @llvm.ppc.altivec.lvx 6653 // CHECK-LE: @llvm.ppc.altivec.lvsl 6654 // CHECK-LE: store <4 x i32> zeroinitializer 6655 // CHECK-LE: @llvm.ppc.altivec.vperm 6656 // CHECK-LE: @llvm.ppc.altivec.lvsr 6657 // CHECK-LE: @llvm.ppc.altivec.vperm 6658 // CHECK-LE: @llvm.ppc.altivec.stvxl 6659 6660 vec_stvlxl(vi, 0, &vi); 6661 // CHECK: @llvm.ppc.altivec.lvx 6662 // CHECK: @llvm.ppc.altivec.lvsl 6663 // CHECK: store <4 x i32> zeroinitializer 6664 // CHECK: @llvm.ppc.altivec.vperm 6665 // CHECK: @llvm.ppc.altivec.lvsr 6666 // CHECK: @llvm.ppc.altivec.vperm 6667 // CHECK: @llvm.ppc.altivec.stvxl 6668 // CHECK-LE: @llvm.ppc.altivec.lvx 6669 // CHECK-LE: @llvm.ppc.altivec.lvsl 6670 // CHECK-LE: store <4 x i32> zeroinitializer 6671 // CHECK-LE: @llvm.ppc.altivec.vperm 6672 // CHECK-LE: @llvm.ppc.altivec.lvsr 6673 // CHECK-LE: @llvm.ppc.altivec.vperm 6674 // CHECK-LE: @llvm.ppc.altivec.stvxl 6675 6676 vec_stvlxl(vui, 0, ¶m_ui); 6677 // CHECK: @llvm.ppc.altivec.lvx 6678 // CHECK: @llvm.ppc.altivec.lvsl 6679 // CHECK: store <4 x i32> zeroinitializer 6680 // CHECK: @llvm.ppc.altivec.vperm 6681 // CHECK: @llvm.ppc.altivec.lvsr 6682 // CHECK: @llvm.ppc.altivec.vperm 6683 // CHECK: @llvm.ppc.altivec.stvxl 6684 // CHECK-LE: @llvm.ppc.altivec.lvx 6685 // CHECK-LE: @llvm.ppc.altivec.lvsl 6686 // CHECK-LE: store <4 x i32> zeroinitializer 6687 // CHECK-LE: @llvm.ppc.altivec.vperm 6688 // CHECK-LE: @llvm.ppc.altivec.lvsr 6689 // CHECK-LE: @llvm.ppc.altivec.vperm 6690 // CHECK-LE: @llvm.ppc.altivec.stvxl 6691 6692 vec_stvlxl(vui, 0, &vui); 6693 // CHECK: @llvm.ppc.altivec.lvx 6694 // CHECK: @llvm.ppc.altivec.lvsl 6695 // CHECK: store <4 x i32> zeroinitializer 6696 // CHECK: @llvm.ppc.altivec.vperm 6697 // CHECK: @llvm.ppc.altivec.lvsr 6698 // CHECK: @llvm.ppc.altivec.vperm 6699 // CHECK: @llvm.ppc.altivec.stvxl 6700 // CHECK-LE: @llvm.ppc.altivec.lvx 6701 // CHECK-LE: @llvm.ppc.altivec.lvsl 6702 // CHECK-LE: store <4 x i32> zeroinitializer 6703 // CHECK-LE: @llvm.ppc.altivec.vperm 6704 // CHECK-LE: @llvm.ppc.altivec.lvsr 6705 // CHECK-LE: @llvm.ppc.altivec.vperm 6706 // CHECK-LE: @llvm.ppc.altivec.stvxl 6707 6708 vec_stvlxl(vbi, 0, &vbi); 6709 // CHECK: store <4 x i32> zeroinitializer 6710 // CHECK: @llvm.ppc.altivec.lvx 6711 // CHECK: @llvm.ppc.altivec.lvsl 6712 // CHECK: @llvm.ppc.altivec.vperm 6713 // CHECK: @llvm.ppc.altivec.lvsr 6714 // CHECK: @llvm.ppc.altivec.vperm 6715 // CHECK: @llvm.ppc.altivec.stvxl 6716 // CHECK-LE: store <4 x i32> zeroinitializer 6717 // CHECK-LE: @llvm.ppc.altivec.lvx 6718 // CHECK-LE: @llvm.ppc.altivec.lvsl 6719 // CHECK-LE: @llvm.ppc.altivec.vperm 6720 // CHECK-LE: @llvm.ppc.altivec.lvsr 6721 // CHECK-LE: @llvm.ppc.altivec.vperm 6722 // CHECK-LE: @llvm.ppc.altivec.stvxl 6723 6724 vec_stvlxl(vf, 0, &vf); 6725 // CHECK: @llvm.ppc.altivec.lvx 6726 // CHECK: @llvm.ppc.altivec.lvsl 6727 // CHECK: store <4 x float> zeroinitializer 6728 // CHECK: @llvm.ppc.altivec.vperm 6729 // CHECK: @llvm.ppc.altivec.lvsr 6730 // CHECK: @llvm.ppc.altivec.vperm 6731 // CHECK: @llvm.ppc.altivec.stvxl 6732 // CHECK-LE: @llvm.ppc.altivec.lvx 6733 // CHECK-LE: @llvm.ppc.altivec.lvsl 6734 // CHECK-LE: store <4 x float> zeroinitializer 6735 // CHECK-LE: @llvm.ppc.altivec.vperm 6736 // CHECK-LE: @llvm.ppc.altivec.lvsr 6737 // CHECK-LE: @llvm.ppc.altivec.vperm 6738 // CHECK-LE: @llvm.ppc.altivec.stvxl 6739 6740 /* vec_stvrx */ 6741 vec_stvrx(vsc, 0, ¶m_sc); 6742 // CHECK: @llvm.ppc.altivec.lvx 6743 // CHECK: @llvm.ppc.altivec.lvsl 6744 // CHECK: store <16 x i8> zeroinitializer 6745 // CHECK: @llvm.ppc.altivec.vperm 6746 // CHECK: @llvm.ppc.altivec.lvsr 6747 // CHECK: @llvm.ppc.altivec.vperm 6748 // CHECK: @llvm.ppc.altivec.stvx 6749 // CHECK-LE: @llvm.ppc.altivec.lvx 6750 // CHECK-LE: @llvm.ppc.altivec.lvsl 6751 // CHECK-LE: store <16 x i8> zeroinitializer 6752 // CHECK-LE: @llvm.ppc.altivec.vperm 6753 // CHECK-LE: @llvm.ppc.altivec.lvsr 6754 // CHECK-LE: @llvm.ppc.altivec.vperm 6755 // CHECK-LE: @llvm.ppc.altivec.stvx 6756 6757 vec_stvrx(vsc, 0, &vsc); 6758 // CHECK: @llvm.ppc.altivec.lvx 6759 // CHECK: @llvm.ppc.altivec.lvsl 6760 // CHECK: store <16 x i8> zeroinitializer 6761 // CHECK: @llvm.ppc.altivec.vperm 6762 // CHECK: @llvm.ppc.altivec.lvsr 6763 // CHECK: @llvm.ppc.altivec.vperm 6764 // CHECK: @llvm.ppc.altivec.stvx 6765 // CHECK-LE: @llvm.ppc.altivec.lvx 6766 // CHECK-LE: @llvm.ppc.altivec.lvsl 6767 // CHECK-LE: store <16 x i8> zeroinitializer 6768 // CHECK-LE: @llvm.ppc.altivec.vperm 6769 // CHECK-LE: @llvm.ppc.altivec.lvsr 6770 // CHECK-LE: @llvm.ppc.altivec.vperm 6771 // CHECK-LE: @llvm.ppc.altivec.stvx 6772 6773 vec_stvrx(vuc, 0, ¶m_uc); 6774 // CHECK: @llvm.ppc.altivec.lvx 6775 // CHECK: @llvm.ppc.altivec.lvsl 6776 // CHECK: store <16 x i8> zeroinitializer 6777 // CHECK: @llvm.ppc.altivec.vperm 6778 // CHECK: @llvm.ppc.altivec.lvsr 6779 // CHECK: @llvm.ppc.altivec.vperm 6780 // CHECK: @llvm.ppc.altivec.stvx 6781 // CHECK-LE: @llvm.ppc.altivec.lvx 6782 // CHECK-LE: @llvm.ppc.altivec.lvsl 6783 // CHECK-LE: store <16 x i8> zeroinitializer 6784 // CHECK-LE: @llvm.ppc.altivec.vperm 6785 // CHECK-LE: @llvm.ppc.altivec.lvsr 6786 // CHECK-LE: @llvm.ppc.altivec.vperm 6787 // CHECK-LE: @llvm.ppc.altivec.stvx 6788 6789 vec_stvrx(vuc, 0, &vuc); 6790 // CHECK: @llvm.ppc.altivec.lvx 6791 // CHECK: @llvm.ppc.altivec.lvsl 6792 // CHECK: store <16 x i8> zeroinitializer 6793 // CHECK: @llvm.ppc.altivec.vperm 6794 // CHECK: @llvm.ppc.altivec.lvsr 6795 // CHECK: @llvm.ppc.altivec.vperm 6796 // CHECK: @llvm.ppc.altivec.stvx 6797 // CHECK-LE: @llvm.ppc.altivec.lvx 6798 // CHECK-LE: @llvm.ppc.altivec.lvsl 6799 // CHECK-LE: store <16 x i8> zeroinitializer 6800 // CHECK-LE: @llvm.ppc.altivec.vperm 6801 // CHECK-LE: @llvm.ppc.altivec.lvsr 6802 // CHECK-LE: @llvm.ppc.altivec.vperm 6803 // CHECK-LE: @llvm.ppc.altivec.stvx 6804 6805 vec_stvrx(vbc, 0, &vbc); 6806 // CHECK: @llvm.ppc.altivec.lvx 6807 // CHECK: store <16 x i8> zeroinitializer 6808 // CHECK: @llvm.ppc.altivec.lvsl 6809 // CHECK: @llvm.ppc.altivec.vperm 6810 // CHECK: @llvm.ppc.altivec.lvsr 6811 // CHECK: @llvm.ppc.altivec.vperm 6812 // CHECK: @llvm.ppc.altivec.stvx 6813 // CHECK-LE: @llvm.ppc.altivec.lvx 6814 // CHECK-LE: store <16 x i8> zeroinitializer 6815 // CHECK-LE: @llvm.ppc.altivec.lvsl 6816 // CHECK-LE: @llvm.ppc.altivec.vperm 6817 // CHECK-LE: @llvm.ppc.altivec.lvsr 6818 // CHECK-LE: @llvm.ppc.altivec.vperm 6819 // CHECK-LE: @llvm.ppc.altivec.stvx 6820 6821 vec_stvrx(vs, 0, ¶m_s); 6822 // CHECK: @llvm.ppc.altivec.lvx 6823 // CHECK: @llvm.ppc.altivec.lvsl 6824 // CHECK: store <8 x i16> zeroinitializer 6825 // CHECK: @llvm.ppc.altivec.vperm 6826 // CHECK: @llvm.ppc.altivec.lvsr 6827 // CHECK: @llvm.ppc.altivec.vperm 6828 // CHECK: @llvm.ppc.altivec.stvx 6829 // CHECK-LE: @llvm.ppc.altivec.lvx 6830 // CHECK-LE: @llvm.ppc.altivec.lvsl 6831 // CHECK-LE: store <8 x i16> zeroinitializer 6832 // CHECK-LE: @llvm.ppc.altivec.vperm 6833 // CHECK-LE: @llvm.ppc.altivec.lvsr 6834 // CHECK-LE: @llvm.ppc.altivec.vperm 6835 // CHECK-LE: @llvm.ppc.altivec.stvx 6836 6837 vec_stvrx(vs, 0, &vs); 6838 // CHECK: @llvm.ppc.altivec.lvx 6839 // CHECK: @llvm.ppc.altivec.lvsl 6840 // CHECK: store <8 x i16> zeroinitializer 6841 // CHECK: @llvm.ppc.altivec.vperm 6842 // CHECK: @llvm.ppc.altivec.lvsr 6843 // CHECK: @llvm.ppc.altivec.vperm 6844 // CHECK: @llvm.ppc.altivec.stvx 6845 // CHECK-LE: @llvm.ppc.altivec.lvx 6846 // CHECK-LE: @llvm.ppc.altivec.lvsl 6847 // CHECK-LE: store <8 x i16> zeroinitializer 6848 // CHECK-LE: @llvm.ppc.altivec.vperm 6849 // CHECK-LE: @llvm.ppc.altivec.lvsr 6850 // CHECK-LE: @llvm.ppc.altivec.vperm 6851 // CHECK-LE: @llvm.ppc.altivec.stvx 6852 6853 vec_stvrx(vus, 0, ¶m_us); 6854 // CHECK: @llvm.ppc.altivec.lvx 6855 // CHECK: @llvm.ppc.altivec.lvsl 6856 // CHECK: store <8 x i16> zeroinitializer 6857 // CHECK: @llvm.ppc.altivec.vperm 6858 // CHECK: @llvm.ppc.altivec.lvsr 6859 // CHECK: @llvm.ppc.altivec.vperm 6860 // CHECK: @llvm.ppc.altivec.stvx 6861 // CHECK-LE: @llvm.ppc.altivec.lvx 6862 // CHECK-LE: @llvm.ppc.altivec.lvsl 6863 // CHECK-LE: store <8 x i16> zeroinitializer 6864 // CHECK-LE: @llvm.ppc.altivec.vperm 6865 // CHECK-LE: @llvm.ppc.altivec.lvsr 6866 // CHECK-LE: @llvm.ppc.altivec.vperm 6867 // CHECK-LE: @llvm.ppc.altivec.stvx 6868 6869 vec_stvrx(vus, 0, &vus); 6870 // CHECK: @llvm.ppc.altivec.lvx 6871 // CHECK: @llvm.ppc.altivec.lvsl 6872 // CHECK: store <8 x i16> zeroinitializer 6873 // CHECK: @llvm.ppc.altivec.vperm 6874 // CHECK: @llvm.ppc.altivec.lvsr 6875 // CHECK: @llvm.ppc.altivec.vperm 6876 // CHECK: @llvm.ppc.altivec.stvx 6877 // CHECK-LE: @llvm.ppc.altivec.lvx 6878 // CHECK-LE: @llvm.ppc.altivec.lvsl 6879 // CHECK-LE: store <8 x i16> zeroinitializer 6880 // CHECK-LE: @llvm.ppc.altivec.vperm 6881 // CHECK-LE: @llvm.ppc.altivec.lvsr 6882 // CHECK-LE: @llvm.ppc.altivec.vperm 6883 // CHECK-LE: @llvm.ppc.altivec.stvx 6884 6885 vec_stvrx(vbs, 0, &vbs); 6886 // CHECK: @llvm.ppc.altivec.lvx 6887 // CHECK: store <8 x i16> zeroinitializer 6888 // CHECK: @llvm.ppc.altivec.lvsl 6889 // CHECK: @llvm.ppc.altivec.vperm 6890 // CHECK: @llvm.ppc.altivec.lvsr 6891 // CHECK: @llvm.ppc.altivec.vperm 6892 // CHECK: @llvm.ppc.altivec.stvx 6893 // CHECK-LE: @llvm.ppc.altivec.lvx 6894 // CHECK-LE: store <8 x i16> zeroinitializer 6895 // CHECK-LE: @llvm.ppc.altivec.lvsl 6896 // CHECK-LE: @llvm.ppc.altivec.vperm 6897 // CHECK-LE: @llvm.ppc.altivec.lvsr 6898 // CHECK-LE: @llvm.ppc.altivec.vperm 6899 // CHECK-LE: @llvm.ppc.altivec.stvx 6900 6901 vec_stvrx(vp, 0, &vp); 6902 // CHECK: @llvm.ppc.altivec.lvx 6903 // CHECK: store <8 x i16> zeroinitializer 6904 // CHECK: @llvm.ppc.altivec.lvsl 6905 // CHECK: @llvm.ppc.altivec.vperm 6906 // CHECK: @llvm.ppc.altivec.lvsr 6907 // CHECK: @llvm.ppc.altivec.vperm 6908 // CHECK: @llvm.ppc.altivec.stvx 6909 // CHECK-LE: @llvm.ppc.altivec.lvx 6910 // CHECK-LE: store <8 x i16> zeroinitializer 6911 // CHECK-LE: @llvm.ppc.altivec.lvsl 6912 // CHECK-LE: @llvm.ppc.altivec.vperm 6913 // CHECK-LE: @llvm.ppc.altivec.lvsr 6914 // CHECK-LE: @llvm.ppc.altivec.vperm 6915 // CHECK-LE: @llvm.ppc.altivec.stvx 6916 6917 vec_stvrx(vi, 0, ¶m_i); 6918 // CHECK: @llvm.ppc.altivec.lvx 6919 // CHECK: @llvm.ppc.altivec.lvsl 6920 // CHECK: store <4 x i32> zeroinitializer 6921 // CHECK: @llvm.ppc.altivec.vperm 6922 // CHECK: @llvm.ppc.altivec.lvsr 6923 // CHECK: @llvm.ppc.altivec.vperm 6924 // CHECK: @llvm.ppc.altivec.stvx 6925 // CHECK-LE: @llvm.ppc.altivec.lvx 6926 // CHECK-LE: @llvm.ppc.altivec.lvsl 6927 // CHECK-LE: store <4 x i32> zeroinitializer 6928 // CHECK-LE: @llvm.ppc.altivec.vperm 6929 // CHECK-LE: @llvm.ppc.altivec.lvsr 6930 // CHECK-LE: @llvm.ppc.altivec.vperm 6931 // CHECK-LE: @llvm.ppc.altivec.stvx 6932 6933 vec_stvrx(vi, 0, &vi); 6934 // CHECK: @llvm.ppc.altivec.lvx 6935 // CHECK: @llvm.ppc.altivec.lvsl 6936 // CHECK: store <4 x i32> zeroinitializer 6937 // CHECK: @llvm.ppc.altivec.vperm 6938 // CHECK: @llvm.ppc.altivec.lvsr 6939 // CHECK: @llvm.ppc.altivec.vperm 6940 // CHECK: @llvm.ppc.altivec.stvx 6941 // CHECK-LE: @llvm.ppc.altivec.lvx 6942 // CHECK-LE: @llvm.ppc.altivec.lvsl 6943 // CHECK-LE: store <4 x i32> zeroinitializer 6944 // CHECK-LE: @llvm.ppc.altivec.vperm 6945 // CHECK-LE: @llvm.ppc.altivec.lvsr 6946 // CHECK-LE: @llvm.ppc.altivec.vperm 6947 // CHECK-LE: @llvm.ppc.altivec.stvx 6948 6949 vec_stvrx(vui, 0, ¶m_ui); 6950 // CHECK: @llvm.ppc.altivec.lvx 6951 // CHECK: @llvm.ppc.altivec.lvsl 6952 // CHECK: store <4 x i32> zeroinitializer 6953 // CHECK: @llvm.ppc.altivec.vperm 6954 // CHECK: @llvm.ppc.altivec.lvsr 6955 // CHECK: @llvm.ppc.altivec.vperm 6956 // CHECK: @llvm.ppc.altivec.stvx 6957 // CHECK-LE: @llvm.ppc.altivec.lvx 6958 // CHECK-LE: @llvm.ppc.altivec.lvsl 6959 // CHECK-LE: store <4 x i32> zeroinitializer 6960 // CHECK-LE: @llvm.ppc.altivec.vperm 6961 // CHECK-LE: @llvm.ppc.altivec.lvsr 6962 // CHECK-LE: @llvm.ppc.altivec.vperm 6963 // CHECK-LE: @llvm.ppc.altivec.stvx 6964 6965 vec_stvrx(vui, 0, &vui); 6966 // CHECK: @llvm.ppc.altivec.lvx 6967 // CHECK: @llvm.ppc.altivec.lvsl 6968 // CHECK: store <4 x i32> zeroinitializer 6969 // CHECK: @llvm.ppc.altivec.vperm 6970 // CHECK: @llvm.ppc.altivec.lvsr 6971 // CHECK: @llvm.ppc.altivec.vperm 6972 // CHECK: @llvm.ppc.altivec.stvx 6973 // CHECK-LE: @llvm.ppc.altivec.lvx 6974 // CHECK-LE: @llvm.ppc.altivec.lvsl 6975 // CHECK-LE: store <4 x i32> zeroinitializer 6976 // CHECK-LE: @llvm.ppc.altivec.vperm 6977 // CHECK-LE: @llvm.ppc.altivec.lvsr 6978 // CHECK-LE: @llvm.ppc.altivec.vperm 6979 // CHECK-LE: @llvm.ppc.altivec.stvx 6980 6981 vec_stvrx(vbi, 0, &vbi); 6982 // CHECK: @llvm.ppc.altivec.lvx 6983 // CHECK: store <4 x i32> zeroinitializer 6984 // CHECK: @llvm.ppc.altivec.lvsl 6985 // CHECK: @llvm.ppc.altivec.vperm 6986 // CHECK: @llvm.ppc.altivec.lvsr 6987 // CHECK: @llvm.ppc.altivec.vperm 6988 // CHECK: @llvm.ppc.altivec.stvx 6989 // CHECK-LE: @llvm.ppc.altivec.lvx 6990 // CHECK-LE: store <4 x i32> zeroinitializer 6991 // CHECK-LE: @llvm.ppc.altivec.lvsl 6992 // CHECK-LE: @llvm.ppc.altivec.vperm 6993 // CHECK-LE: @llvm.ppc.altivec.lvsr 6994 // CHECK-LE: @llvm.ppc.altivec.vperm 6995 // CHECK-LE: @llvm.ppc.altivec.stvx 6996 6997 vec_stvrx(vf, 0, &vf); 6998 // CHECK: @llvm.ppc.altivec.lvx 6999 // CHECK: @llvm.ppc.altivec.lvsl 7000 // CHECK: store <4 x float> zeroinitializer 7001 // CHECK: @llvm.ppc.altivec.vperm 7002 // CHECK: @llvm.ppc.altivec.lvsr 7003 // CHECK: @llvm.ppc.altivec.vperm 7004 // CHECK: @llvm.ppc.altivec.stvx 7005 // CHECK-LE: @llvm.ppc.altivec.lvx 7006 // CHECK-LE: @llvm.ppc.altivec.lvsl 7007 // CHECK-LE: store <4 x float> zeroinitializer 7008 // CHECK-LE: @llvm.ppc.altivec.vperm 7009 // CHECK-LE: @llvm.ppc.altivec.lvsr 7010 // CHECK-LE: @llvm.ppc.altivec.vperm 7011 // CHECK-LE: @llvm.ppc.altivec.stvx 7012 7013 /* vec_stvrxl */ 7014 vec_stvrxl(vsc, 0, ¶m_sc); 7015 // CHECK: @llvm.ppc.altivec.lvx 7016 // CHECK: @llvm.ppc.altivec.lvsl 7017 // CHECK: store <16 x i8> zeroinitializer 7018 // CHECK: @llvm.ppc.altivec.vperm 7019 // CHECK: @llvm.ppc.altivec.lvsr 7020 // CHECK: @llvm.ppc.altivec.vperm 7021 // CHECK: @llvm.ppc.altivec.stvxl 7022 // CHECK-LE: @llvm.ppc.altivec.lvx 7023 // CHECK-LE: @llvm.ppc.altivec.lvsl 7024 // CHECK-LE: store <16 x i8> zeroinitializer 7025 // CHECK-LE: @llvm.ppc.altivec.vperm 7026 // CHECK-LE: @llvm.ppc.altivec.lvsr 7027 // CHECK-LE: @llvm.ppc.altivec.vperm 7028 // CHECK-LE: @llvm.ppc.altivec.stvxl 7029 7030 vec_stvrxl(vsc, 0, &vsc); 7031 // CHECK: @llvm.ppc.altivec.lvx 7032 // CHECK: @llvm.ppc.altivec.lvsl 7033 // CHECK: store <16 x i8> zeroinitializer 7034 // CHECK: @llvm.ppc.altivec.vperm 7035 // CHECK: @llvm.ppc.altivec.lvsr 7036 // CHECK: @llvm.ppc.altivec.vperm 7037 // CHECK: @llvm.ppc.altivec.stvxl 7038 // CHECK-LE: @llvm.ppc.altivec.lvx 7039 // CHECK-LE: @llvm.ppc.altivec.lvsl 7040 // CHECK-LE: store <16 x i8> zeroinitializer 7041 // CHECK-LE: @llvm.ppc.altivec.vperm 7042 // CHECK-LE: @llvm.ppc.altivec.lvsr 7043 // CHECK-LE: @llvm.ppc.altivec.vperm 7044 // CHECK-LE: @llvm.ppc.altivec.stvxl 7045 7046 vec_stvrxl(vuc, 0, ¶m_uc); 7047 // CHECK: @llvm.ppc.altivec.lvx 7048 // CHECK: @llvm.ppc.altivec.lvsl 7049 // CHECK: store <16 x i8> zeroinitializer 7050 // CHECK: @llvm.ppc.altivec.vperm 7051 // CHECK: @llvm.ppc.altivec.lvsr 7052 // CHECK: @llvm.ppc.altivec.vperm 7053 // CHECK: @llvm.ppc.altivec.stvxl 7054 // CHECK-LE: @llvm.ppc.altivec.lvx 7055 // CHECK-LE: @llvm.ppc.altivec.lvsl 7056 // CHECK-LE: store <16 x i8> zeroinitializer 7057 // CHECK-LE: @llvm.ppc.altivec.vperm 7058 // CHECK-LE: @llvm.ppc.altivec.lvsr 7059 // CHECK-LE: @llvm.ppc.altivec.vperm 7060 // CHECK-LE: @llvm.ppc.altivec.stvxl 7061 7062 vec_stvrxl(vuc, 0, &vuc); 7063 // CHECK: @llvm.ppc.altivec.lvx 7064 // CHECK: @llvm.ppc.altivec.lvsl 7065 // CHECK: store <16 x i8> zeroinitializer 7066 // CHECK: @llvm.ppc.altivec.vperm 7067 // CHECK: @llvm.ppc.altivec.lvsr 7068 // CHECK: @llvm.ppc.altivec.vperm 7069 // CHECK: @llvm.ppc.altivec.stvxl 7070 // CHECK-LE: @llvm.ppc.altivec.lvx 7071 // CHECK-LE: @llvm.ppc.altivec.lvsl 7072 // CHECK-LE: store <16 x i8> zeroinitializer 7073 // CHECK-LE: @llvm.ppc.altivec.vperm 7074 // CHECK-LE: @llvm.ppc.altivec.lvsr 7075 // CHECK-LE: @llvm.ppc.altivec.vperm 7076 // CHECK-LE: @llvm.ppc.altivec.stvxl 7077 7078 vec_stvrxl(vbc, 0, &vbc); 7079 // CHECK: @llvm.ppc.altivec.lvx 7080 // CHECK: store <16 x i8> zeroinitializer 7081 // CHECK: @llvm.ppc.altivec.lvsl 7082 // CHECK: @llvm.ppc.altivec.vperm 7083 // CHECK: @llvm.ppc.altivec.lvsr 7084 // CHECK: @llvm.ppc.altivec.vperm 7085 // CHECK: @llvm.ppc.altivec.stvxl 7086 // CHECK-LE: @llvm.ppc.altivec.lvx 7087 // CHECK-LE: store <16 x i8> zeroinitializer 7088 // CHECK-LE: @llvm.ppc.altivec.lvsl 7089 // CHECK-LE: @llvm.ppc.altivec.vperm 7090 // CHECK-LE: @llvm.ppc.altivec.lvsr 7091 // CHECK-LE: @llvm.ppc.altivec.vperm 7092 // CHECK-LE: @llvm.ppc.altivec.stvxl 7093 7094 vec_stvrxl(vs, 0, ¶m_s); 7095 // CHECK: @llvm.ppc.altivec.lvx 7096 // CHECK: @llvm.ppc.altivec.lvsl 7097 // CHECK: store <8 x i16> zeroinitializer 7098 // CHECK: @llvm.ppc.altivec.vperm 7099 // CHECK: @llvm.ppc.altivec.lvsr 7100 // CHECK: @llvm.ppc.altivec.vperm 7101 // CHECK: @llvm.ppc.altivec.stvxl 7102 // CHECK-LE: @llvm.ppc.altivec.lvx 7103 // CHECK-LE: @llvm.ppc.altivec.lvsl 7104 // CHECK-LE: store <8 x i16> zeroinitializer 7105 // CHECK-LE: @llvm.ppc.altivec.vperm 7106 // CHECK-LE: @llvm.ppc.altivec.lvsr 7107 // CHECK-LE: @llvm.ppc.altivec.vperm 7108 // CHECK-LE: @llvm.ppc.altivec.stvxl 7109 7110 vec_stvrxl(vs, 0, &vs); 7111 // CHECK: @llvm.ppc.altivec.lvx 7112 // CHECK: @llvm.ppc.altivec.lvsl 7113 // CHECK: store <8 x i16> zeroinitializer 7114 // CHECK: @llvm.ppc.altivec.vperm 7115 // CHECK: @llvm.ppc.altivec.lvsr 7116 // CHECK: @llvm.ppc.altivec.vperm 7117 // CHECK: @llvm.ppc.altivec.stvxl 7118 // CHECK-LE: @llvm.ppc.altivec.lvx 7119 // CHECK-LE: @llvm.ppc.altivec.lvsl 7120 // CHECK-LE: store <8 x i16> zeroinitializer 7121 // CHECK-LE: @llvm.ppc.altivec.vperm 7122 // CHECK-LE: @llvm.ppc.altivec.lvsr 7123 // CHECK-LE: @llvm.ppc.altivec.vperm 7124 // CHECK-LE: @llvm.ppc.altivec.stvxl 7125 7126 vec_stvrxl(vus, 0, ¶m_us); 7127 // CHECK: @llvm.ppc.altivec.lvx 7128 // CHECK: @llvm.ppc.altivec.lvsl 7129 // CHECK: store <8 x i16> zeroinitializer 7130 // CHECK: @llvm.ppc.altivec.vperm 7131 // CHECK: @llvm.ppc.altivec.lvsr 7132 // CHECK: @llvm.ppc.altivec.vperm 7133 // CHECK: @llvm.ppc.altivec.stvxl 7134 // CHECK-LE: @llvm.ppc.altivec.lvx 7135 // CHECK-LE: @llvm.ppc.altivec.lvsl 7136 // CHECK-LE: store <8 x i16> zeroinitializer 7137 // CHECK-LE: @llvm.ppc.altivec.vperm 7138 // CHECK-LE: @llvm.ppc.altivec.lvsr 7139 // CHECK-LE: @llvm.ppc.altivec.vperm 7140 // CHECK-LE: @llvm.ppc.altivec.stvxl 7141 7142 vec_stvrxl(vus, 0, &vus); 7143 // CHECK: @llvm.ppc.altivec.lvx 7144 // CHECK: @llvm.ppc.altivec.lvsl 7145 // CHECK: store <8 x i16> zeroinitializer 7146 // CHECK: @llvm.ppc.altivec.vperm 7147 // CHECK: @llvm.ppc.altivec.lvsr 7148 // CHECK: @llvm.ppc.altivec.vperm 7149 // CHECK: @llvm.ppc.altivec.stvxl 7150 // CHECK-LE: @llvm.ppc.altivec.lvx 7151 // CHECK-LE: @llvm.ppc.altivec.lvsl 7152 // CHECK-LE: store <8 x i16> zeroinitializer 7153 // CHECK-LE: @llvm.ppc.altivec.vperm 7154 // CHECK-LE: @llvm.ppc.altivec.lvsr 7155 // CHECK-LE: @llvm.ppc.altivec.vperm 7156 // CHECK-LE: @llvm.ppc.altivec.stvxl 7157 7158 vec_stvrxl(vbs, 0, &vbs); 7159 // CHECK: @llvm.ppc.altivec.lvx 7160 // CHECK: store <8 x i16> zeroinitializer 7161 // CHECK: @llvm.ppc.altivec.lvsl 7162 // CHECK: @llvm.ppc.altivec.vperm 7163 // CHECK: @llvm.ppc.altivec.lvsr 7164 // CHECK: @llvm.ppc.altivec.vperm 7165 // CHECK: @llvm.ppc.altivec.stvxl 7166 // CHECK-LE: @llvm.ppc.altivec.lvx 7167 // CHECK-LE: store <8 x i16> zeroinitializer 7168 // CHECK-LE: @llvm.ppc.altivec.lvsl 7169 // CHECK-LE: @llvm.ppc.altivec.vperm 7170 // CHECK-LE: @llvm.ppc.altivec.lvsr 7171 // CHECK-LE: @llvm.ppc.altivec.vperm 7172 // CHECK-LE: @llvm.ppc.altivec.stvxl 7173 7174 vec_stvrxl(vp, 0, &vp); 7175 // CHECK: @llvm.ppc.altivec.lvx 7176 // CHECK: store <8 x i16> zeroinitializer 7177 // CHECK: @llvm.ppc.altivec.lvsl 7178 // CHECK: @llvm.ppc.altivec.vperm 7179 // CHECK: @llvm.ppc.altivec.lvsr 7180 // CHECK: @llvm.ppc.altivec.vperm 7181 // CHECK: @llvm.ppc.altivec.stvxl 7182 // CHECK-LE: @llvm.ppc.altivec.lvx 7183 // CHECK-LE: store <8 x i16> zeroinitializer 7184 // CHECK-LE: @llvm.ppc.altivec.lvsl 7185 // CHECK-LE: @llvm.ppc.altivec.vperm 7186 // CHECK-LE: @llvm.ppc.altivec.lvsr 7187 // CHECK-LE: @llvm.ppc.altivec.vperm 7188 // CHECK-LE: @llvm.ppc.altivec.stvxl 7189 7190 vec_stvrxl(vi, 0, ¶m_i); 7191 // CHECK: @llvm.ppc.altivec.lvx 7192 // CHECK: @llvm.ppc.altivec.lvsl 7193 // CHECK: store <4 x i32> zeroinitializer 7194 // CHECK: @llvm.ppc.altivec.vperm 7195 // CHECK: @llvm.ppc.altivec.lvsr 7196 // CHECK: @llvm.ppc.altivec.vperm 7197 // CHECK: @llvm.ppc.altivec.stvxl 7198 // CHECK-LE: @llvm.ppc.altivec.lvx 7199 // CHECK-LE: @llvm.ppc.altivec.lvsl 7200 // CHECK-LE: store <4 x i32> zeroinitializer 7201 // CHECK-LE: @llvm.ppc.altivec.vperm 7202 // CHECK-LE: @llvm.ppc.altivec.lvsr 7203 // CHECK-LE: @llvm.ppc.altivec.vperm 7204 // CHECK-LE: @llvm.ppc.altivec.stvxl 7205 7206 vec_stvrxl(vi, 0, &vi); 7207 // CHECK: @llvm.ppc.altivec.lvx 7208 // CHECK: @llvm.ppc.altivec.lvsl 7209 // CHECK: store <4 x i32> zeroinitializer 7210 // CHECK: @llvm.ppc.altivec.vperm 7211 // CHECK: @llvm.ppc.altivec.lvsr 7212 // CHECK: @llvm.ppc.altivec.vperm 7213 // CHECK: @llvm.ppc.altivec.stvxl 7214 // CHECK-LE: @llvm.ppc.altivec.lvx 7215 // CHECK-LE: @llvm.ppc.altivec.lvsl 7216 // CHECK-LE: store <4 x i32> zeroinitializer 7217 // CHECK-LE: @llvm.ppc.altivec.vperm 7218 // CHECK-LE: @llvm.ppc.altivec.lvsr 7219 // CHECK-LE: @llvm.ppc.altivec.vperm 7220 // CHECK-LE: @llvm.ppc.altivec.stvxl 7221 7222 vec_stvrxl(vui, 0, ¶m_ui); 7223 // CHECK: @llvm.ppc.altivec.lvx 7224 // CHECK: @llvm.ppc.altivec.lvsl 7225 // CHECK: store <4 x i32> zeroinitializer 7226 // CHECK: @llvm.ppc.altivec.vperm 7227 // CHECK: @llvm.ppc.altivec.lvsr 7228 // CHECK: @llvm.ppc.altivec.vperm 7229 // CHECK: @llvm.ppc.altivec.stvxl 7230 // CHECK-LE: @llvm.ppc.altivec.lvx 7231 // CHECK-LE: @llvm.ppc.altivec.lvsl 7232 // CHECK-LE: store <4 x i32> zeroinitializer 7233 // CHECK-LE: @llvm.ppc.altivec.vperm 7234 // CHECK-LE: @llvm.ppc.altivec.lvsr 7235 // CHECK-LE: @llvm.ppc.altivec.vperm 7236 // CHECK-LE: @llvm.ppc.altivec.stvxl 7237 7238 vec_stvrxl(vui, 0, &vui); 7239 // CHECK: @llvm.ppc.altivec.lvx 7240 // CHECK: @llvm.ppc.altivec.lvsl 7241 // CHECK: store <4 x i32> zeroinitializer 7242 // CHECK: @llvm.ppc.altivec.vperm 7243 // CHECK: @llvm.ppc.altivec.lvsr 7244 // CHECK: @llvm.ppc.altivec.vperm 7245 // CHECK: @llvm.ppc.altivec.stvxl 7246 // CHECK-LE: @llvm.ppc.altivec.lvx 7247 // CHECK-LE: @llvm.ppc.altivec.lvsl 7248 // CHECK-LE: store <4 x i32> zeroinitializer 7249 // CHECK-LE: @llvm.ppc.altivec.vperm 7250 // CHECK-LE: @llvm.ppc.altivec.lvsr 7251 // CHECK-LE: @llvm.ppc.altivec.vperm 7252 // CHECK-LE: @llvm.ppc.altivec.stvxl 7253 7254 vec_stvrxl(vbi, 0, &vbi); 7255 // CHECK: @llvm.ppc.altivec.lvx 7256 // CHECK: store <4 x i32> zeroinitializer 7257 // CHECK: @llvm.ppc.altivec.lvsl 7258 // CHECK: @llvm.ppc.altivec.vperm 7259 // CHECK: @llvm.ppc.altivec.lvsr 7260 // CHECK: @llvm.ppc.altivec.vperm 7261 // CHECK: @llvm.ppc.altivec.stvxl 7262 // CHECK-LE: @llvm.ppc.altivec.lvx 7263 // CHECK-LE: store <4 x i32> zeroinitializer 7264 // CHECK-LE: @llvm.ppc.altivec.lvsl 7265 // CHECK-LE: @llvm.ppc.altivec.vperm 7266 // CHECK-LE: @llvm.ppc.altivec.lvsr 7267 // CHECK-LE: @llvm.ppc.altivec.vperm 7268 // CHECK-LE: @llvm.ppc.altivec.stvxl 7269 7270 vec_stvrxl(vf, 0, &vf); 7271 // CHECK: @llvm.ppc.altivec.lvx 7272 // CHECK: @llvm.ppc.altivec.lvsl 7273 // CHECK: store <4 x float> zeroinitializer 7274 // CHECK: @llvm.ppc.altivec.vperm 7275 // CHECK: @llvm.ppc.altivec.lvsr 7276 // CHECK: @llvm.ppc.altivec.vperm 7277 // CHECK: @llvm.ppc.altivec.stvxl 7278 // CHECK-LE: @llvm.ppc.altivec.lvx 7279 // CHECK-LE: @llvm.ppc.altivec.lvsl 7280 // CHECK-LE: store <4 x float> zeroinitializer 7281 // CHECK-LE: @llvm.ppc.altivec.vperm 7282 // CHECK-LE: @llvm.ppc.altivec.lvsr 7283 // CHECK-LE: @llvm.ppc.altivec.vperm 7284 // CHECK-LE: @llvm.ppc.altivec.stvxl 7285 7286 /* vec_promote */ 7287 res_vsc = vec_promote(param_sc, 0); 7288 // CHECK: store <16 x i8> zeroinitializer 7289 // CHECK: insertelement <16 x i8> 7290 // CHECK-LE: store <16 x i8> zeroinitializer 7291 // CHECK-LE: insertelement <16 x i8> 7292 7293 res_vuc = vec_promote(param_uc, 0); 7294 // CHECK: store <16 x i8> zeroinitializer 7295 // CHECK: insertelement <16 x i8> 7296 // CHECK-LE: store <16 x i8> zeroinitializer 7297 // CHECK-LE: insertelement <16 x i8> 7298 7299 res_vs = vec_promote(param_s, 0); 7300 // CHECK: store <8 x i16> zeroinitializer 7301 // CHECK: insertelement <8 x i16> 7302 // CHECK-LE: store <8 x i16> zeroinitializer 7303 // CHECK-LE: insertelement <8 x i16> 7304 7305 res_vus = vec_promote(param_us, 0); 7306 // CHECK: store <8 x i16> zeroinitializer 7307 // CHECK: insertelement <8 x i16> 7308 // CHECK-LE: store <8 x i16> zeroinitializer 7309 // CHECK-LE: insertelement <8 x i16> 7310 7311 res_vi = vec_promote(param_i, 0); 7312 // CHECK: store <4 x i32> zeroinitializer 7313 // CHECK: insertelement <4 x i32> 7314 // CHECK-LE: store <4 x i32> zeroinitializer 7315 // CHECK-LE: insertelement <4 x i32> 7316 7317 res_vui = vec_promote(param_ui, 0); 7318 // CHECK: store <4 x i32> zeroinitializer 7319 // CHECK: insertelement <4 x i32> 7320 // CHECK-LE: store <4 x i32> zeroinitializer 7321 // CHECK-LE: insertelement <4 x i32> 7322 7323 res_vf = vec_promote(param_f, 0); 7324 // CHECK: store <4 x float> zeroinitializer 7325 // CHECK: insertelement <4 x float> 7326 // CHECK-LE: store <4 x float> zeroinitializer 7327 // CHECK-LE: insertelement <4 x float> 7328 7329 /* vec_splats */ 7330 res_vsc = vec_splats(param_sc); 7331 // CHECK: insertelement <16 x i8> 7332 // CHECK-LE: insertelement <16 x i8> 7333 7334 res_vuc = vec_splats(param_uc); 7335 // CHECK: insertelement <16 x i8> 7336 // CHECK-LE: insertelement <16 x i8> 7337 7338 res_vs = vec_splats(param_s); 7339 // CHECK: insertelement <8 x i16> 7340 // CHECK-LE: insertelement <8 x i16> 7341 7342 res_vus = vec_splats(param_us); 7343 // CHECK: insertelement <8 x i16> 7344 // CHECK-LE: insertelement <8 x i16> 7345 7346 res_vi = vec_splats(param_i); 7347 // CHECK: insertelement <4 x i32> 7348 // CHECK-LE: insertelement <4 x i32> 7349 7350 res_vui = vec_splats(param_ui); 7351 // CHECK: insertelement <4 x i32> 7352 // CHECK-LE: insertelement <4 x i32> 7353 7354 res_vf = vec_splats(param_f); 7355 // CHECK: insertelement <4 x float> 7356 // CHECK-LE: insertelement <4 x float> 7357 7358 /* ------------------------------ predicates -------------------------------------- */ 7359 7360 /* vec_all_eq */ 7361 res_i = vec_all_eq(vsc, vsc); 7362 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7363 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7364 7365 res_i = vec_all_eq(vsc, vbc); 7366 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7367 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7368 7369 res_i = vec_all_eq(vuc, vuc); 7370 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7371 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7372 7373 res_i = vec_all_eq(vuc, vbc); 7374 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7375 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7376 7377 res_i = vec_all_eq(vbc, vsc); 7378 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7379 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7380 7381 res_i = vec_all_eq(vbc, vuc); 7382 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7383 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7384 7385 res_i = vec_all_eq(vbc, vbc); 7386 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7387 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7388 7389 res_i = vec_all_eq(vs, vs); 7390 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7391 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7392 7393 res_i = vec_all_eq(vs, vbs); 7394 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7395 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7396 7397 res_i = vec_all_eq(vus, vus); 7398 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7399 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7400 7401 res_i = vec_all_eq(vus, vbs); 7402 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7403 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7404 7405 res_i = vec_all_eq(vbs, vs); 7406 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7407 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7408 7409 res_i = vec_all_eq(vbs, vus); 7410 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7411 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7412 7413 res_i = vec_all_eq(vbs, vbs); 7414 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7415 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7416 7417 res_i = vec_all_eq(vp, vp); 7418 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7419 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7420 7421 res_i = vec_all_eq(vi, vi); 7422 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7423 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7424 7425 res_i = vec_all_eq(vi, vbi); 7426 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7427 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7428 7429 res_i = vec_all_eq(vui, vui); 7430 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7431 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7432 7433 res_i = vec_all_eq(vui, vbi); 7434 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7435 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7436 7437 res_i = vec_all_eq(vbi, vi); 7438 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7439 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7440 7441 res_i = vec_all_eq(vbi, vui); 7442 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7443 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7444 7445 res_i = vec_all_eq(vbi, vbi); 7446 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7447 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7448 7449 res_i = vec_all_eq(vf, vf); 7450 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 7451 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 7452 7453 /* vec_all_ge */ 7454 res_i = vec_all_ge(vsc, vsc); 7455 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7456 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7457 7458 res_i = vec_all_ge(vsc, vbc); 7459 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7460 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7461 7462 res_i = vec_all_ge(vuc, vuc); 7463 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7464 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7465 7466 res_i = vec_all_ge(vuc, vbc); 7467 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7468 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7469 7470 res_i = vec_all_ge(vbc, vsc); 7471 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7472 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7473 7474 res_i = vec_all_ge(vbc, vuc); 7475 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7476 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7477 7478 res_i = vec_all_ge(vbc, vbc); 7479 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7480 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7481 7482 res_i = vec_all_ge(vs, vs); 7483 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7484 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7485 7486 res_i = vec_all_ge(vs, vbs); 7487 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7488 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7489 7490 res_i = vec_all_ge(vus, vus); 7491 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7492 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7493 7494 res_i = vec_all_ge(vus, vbs); 7495 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7496 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7497 7498 res_i = vec_all_ge(vbs, vs); 7499 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7500 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7501 7502 res_i = vec_all_ge(vbs, vus); 7503 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7504 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7505 7506 res_i = vec_all_ge(vbs, vbs); 7507 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7508 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7509 7510 res_i = vec_all_ge(vi, vi); 7511 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7512 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7513 7514 res_i = vec_all_ge(vi, vbi); 7515 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7516 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7517 7518 res_i = vec_all_ge(vui, vui); 7519 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7520 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7521 7522 res_i = vec_all_ge(vui, vbi); 7523 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7524 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7525 7526 res_i = vec_all_ge(vbi, vi); 7527 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7528 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7529 7530 res_i = vec_all_ge(vbi, vui); 7531 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7532 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7533 7534 res_i = vec_all_ge(vbi, vbi); 7535 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7536 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7537 7538 res_i = vec_all_ge(vf, vf); 7539 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 7540 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 7541 7542 /* vec_all_gt */ 7543 res_i = vec_all_gt(vsc, vsc); 7544 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7545 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7546 7547 res_i = vec_all_gt(vsc, vbc); 7548 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7549 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7550 7551 res_i = vec_all_gt(vuc, vuc); 7552 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7553 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7554 7555 res_i = vec_all_gt(vuc, vbc); 7556 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7557 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7558 7559 res_i = vec_all_gt(vbc, vsc); 7560 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7561 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7562 7563 res_i = vec_all_gt(vbc, vuc); 7564 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7565 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7566 7567 res_i = vec_all_gt(vbc, vbc); 7568 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7569 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7570 7571 res_i = vec_all_gt(vs, vs); 7572 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7573 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7574 7575 res_i = vec_all_gt(vs, vbs); 7576 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7577 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7578 7579 res_i = vec_all_gt(vus, vus); 7580 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7581 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7582 7583 res_i = vec_all_gt(vus, vbs); 7584 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7585 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7586 7587 res_i = vec_all_gt(vbs, vs); 7588 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7589 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7590 7591 res_i = vec_all_gt(vbs, vus); 7592 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7593 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7594 7595 res_i = vec_all_gt(vbs, vbs); 7596 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7597 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7598 7599 res_i = vec_all_gt(vi, vi); 7600 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7601 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7602 7603 res_i = vec_all_gt(vi, vbi); 7604 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7605 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7606 7607 res_i = vec_all_gt(vui, vui); 7608 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7609 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7610 7611 res_i = vec_all_gt(vui, vbi); 7612 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7613 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7614 7615 res_i = vec_all_gt(vbi, vi); 7616 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7617 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7618 7619 res_i = vec_all_gt(vbi, vui); 7620 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7621 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7622 7623 res_i = vec_all_gt(vbi, vbi); 7624 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7625 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7626 7627 res_i = vec_all_gt(vf, vf); 7628 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 7629 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 7630 7631 /* vec_all_in */ 7632 res_i = vec_all_in(vf, vf); 7633 // CHECK: @llvm.ppc.altivec.vcmpbfp.p 7634 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p 7635 7636 /* vec_all_le */ 7637 res_i = vec_all_le(vsc, vsc); 7638 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7639 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7640 7641 res_i = vec_all_le(vsc, vbc); 7642 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7643 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7644 7645 res_i = vec_all_le(vuc, vuc); 7646 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7647 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7648 7649 res_i = vec_all_le(vuc, vbc); 7650 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7651 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7652 7653 res_i = vec_all_le(vbc, vsc); 7654 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7655 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7656 7657 res_i = vec_all_le(vbc, vuc); 7658 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7659 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7660 7661 res_i = vec_all_le(vbc, vbc); 7662 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7663 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7664 7665 res_i = vec_all_le(vs, vs); 7666 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7667 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7668 7669 res_i = vec_all_le(vs, vbs); 7670 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7671 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7672 7673 res_i = vec_all_le(vus, vus); 7674 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7675 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7676 7677 res_i = vec_all_le(vus, vbs); 7678 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7679 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7680 7681 res_i = vec_all_le(vbs, vs); 7682 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7683 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7684 7685 res_i = vec_all_le(vbs, vus); 7686 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7687 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7688 7689 res_i = vec_all_le(vbs, vbs); 7690 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7691 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7692 7693 res_i = vec_all_le(vi, vi); 7694 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7695 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7696 7697 res_i = vec_all_le(vi, vbi); 7698 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7699 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7700 7701 res_i = vec_all_le(vui, vui); 7702 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7703 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7704 7705 res_i = vec_all_le(vui, vbi); 7706 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7707 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7708 7709 res_i = vec_all_le(vbi, vi); 7710 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7711 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7712 7713 res_i = vec_all_le(vbi, vui); 7714 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7715 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7716 7717 res_i = vec_all_le(vbi, vbi); 7718 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7719 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7720 7721 res_i = vec_all_le(vf, vf); 7722 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 7723 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 7724 7725 /* vec_all_lt */ 7726 res_i = vec_all_lt(vsc, vsc); 7727 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7728 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7729 7730 res_i = vec_all_lt(vsc, vbc); 7731 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 7732 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 7733 7734 res_i = vec_all_lt(vuc, vuc); 7735 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7736 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7737 7738 res_i = vec_all_lt(vuc, vbc); 7739 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7740 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7741 7742 res_i = vec_all_lt(vbc, vsc); 7743 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7744 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7745 7746 res_i = vec_all_lt(vbc, vuc); 7747 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7748 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7749 7750 res_i = vec_all_lt(vbc, vbc); 7751 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 7752 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 7753 7754 res_i = vec_all_lt(vs, vs); 7755 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7756 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7757 7758 res_i = vec_all_lt(vs, vbs); 7759 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 7760 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 7761 7762 res_i = vec_all_lt(vus, vus); 7763 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7764 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7765 7766 res_i = vec_all_lt(vus, vbs); 7767 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7768 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7769 7770 res_i = vec_all_lt(vbs, vs); 7771 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7772 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7773 7774 res_i = vec_all_lt(vbs, vus); 7775 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7776 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7777 7778 res_i = vec_all_lt(vbs, vbs); 7779 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 7780 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 7781 7782 res_i = vec_all_lt(vi, vi); 7783 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7784 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7785 7786 res_i = vec_all_lt(vi, vbi); 7787 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 7788 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 7789 7790 res_i = vec_all_lt(vui, vui); 7791 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7792 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7793 7794 res_i = vec_all_lt(vui, vbi); 7795 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7796 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7797 7798 res_i = vec_all_lt(vbi, vi); 7799 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7800 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7801 7802 res_i = vec_all_lt(vbi, vui); 7803 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7804 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7805 7806 res_i = vec_all_lt(vbi, vbi); 7807 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 7808 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 7809 7810 res_i = vec_all_lt(vf, vf); 7811 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 7812 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 7813 7814 /* vec_all_nan */ 7815 res_i = vec_all_nan(vf); 7816 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 7817 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 7818 7819 /* vec_all_ne */ 7820 res_i = vec_all_ne(vsc, vsc); 7821 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7822 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7823 7824 res_i = vec_all_ne(vsc, vbc); 7825 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7826 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7827 7828 res_i = vec_all_ne(vuc, vuc); 7829 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7830 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7831 7832 res_i = vec_all_ne(vuc, vbc); 7833 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7834 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7835 7836 res_i = vec_all_ne(vbc, vsc); 7837 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7838 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7839 7840 res_i = vec_all_ne(vbc, vuc); 7841 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7842 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7843 7844 res_i = vec_all_ne(vbc, vbc); 7845 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7846 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7847 7848 res_i = vec_all_ne(vs, vs); 7849 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7850 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7851 7852 res_i = vec_all_ne(vs, vbs); 7853 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7854 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7855 7856 res_i = vec_all_ne(vus, vus); 7857 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7858 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7859 7860 res_i = vec_all_ne(vus, vbs); 7861 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7862 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7863 7864 res_i = vec_all_ne(vbs, vs); 7865 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7866 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7867 7868 res_i = vec_all_ne(vbs, vus); 7869 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7870 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7871 7872 res_i = vec_all_ne(vbs, vbs); 7873 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7874 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7875 7876 res_i = vec_all_ne(vp, vp); 7877 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7878 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7879 7880 res_i = vec_all_ne(vi, vi); 7881 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7882 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7883 7884 res_i = vec_all_ne(vi, vbi); 7885 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7886 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7887 7888 res_i = vec_all_ne(vui, vui); 7889 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7890 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7891 7892 res_i = vec_all_ne(vui, vbi); 7893 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7894 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7895 7896 res_i = vec_all_ne(vbi, vi); 7897 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7898 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7899 7900 res_i = vec_all_ne(vbi, vui); 7901 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7902 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7903 7904 res_i = vec_all_ne(vbi, vbi); 7905 // CHECK: @llvm.ppc.altivec.vcmpequw.p 7906 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 7907 7908 res_i = vec_all_ne(vf, vf); 7909 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 7910 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 7911 7912 /* vec_all_nge */ 7913 res_i = vec_all_nge(vf, vf); 7914 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 7915 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 7916 7917 /* vec_all_ngt */ 7918 res_i = vec_all_ngt(vf, vf); 7919 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 7920 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 7921 7922 /* vec_all_nle */ 7923 res_i = vec_all_nle(vf, vf); 7924 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 7925 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 7926 7927 /* vec_all_nlt */ 7928 res_i = vec_all_nlt(vf, vf); 7929 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 7930 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 7931 7932 /* vec_all_numeric */ 7933 res_i = vec_all_numeric(vf); 7934 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 7935 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 7936 7937 /* vec_any_eq */ 7938 res_i = vec_any_eq(vsc, vsc); 7939 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7940 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7941 7942 res_i = vec_any_eq(vsc, vbc); 7943 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7944 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7945 7946 res_i = vec_any_eq(vuc, vuc); 7947 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7948 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7949 7950 res_i = vec_any_eq(vuc, vbc); 7951 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7952 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7953 7954 res_i = vec_any_eq(vbc, vsc); 7955 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7956 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7957 7958 res_i = vec_any_eq(vbc, vuc); 7959 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7960 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7961 7962 res_i = vec_any_eq(vbc, vbc); 7963 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7964 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7965 7966 res_i = vec_any_eq(vs, vs); 7967 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7968 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7969 7970 res_i = vec_any_eq(vs, vbs); 7971 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7972 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7973 7974 res_i = vec_any_eq(vus, vus); 7975 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7976 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7977 7978 res_i = vec_any_eq(vus, vbs); 7979 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7980 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7981 7982 res_i = vec_any_eq(vbs, vs); 7983 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7984 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7985 7986 res_i = vec_any_eq(vbs, vus); 7987 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7988 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7989 7990 res_i = vec_any_eq(vbs, vbs); 7991 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7992 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7993 7994 res_i = vec_any_eq(vp, vp); 7995 // CHECK: @llvm.ppc.altivec.vcmpequh.p 7996 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 7997 7998 res_i = vec_any_eq(vi, vi); 7999 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8000 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8001 8002 res_i = vec_any_eq(vi, vbi); 8003 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8004 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8005 8006 res_i = vec_any_eq(vui, vui); 8007 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8008 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8009 8010 res_i = vec_any_eq(vui, vbi); 8011 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8012 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8013 8014 res_i = vec_any_eq(vbi, vi); 8015 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8016 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8017 8018 res_i = vec_any_eq(vbi, vui); 8019 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8020 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8021 8022 res_i = vec_any_eq(vbi, vbi); 8023 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8024 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8025 8026 res_i = vec_any_eq(vf, vf); 8027 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8028 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8029 8030 /* vec_any_ge */ 8031 res_i = vec_any_ge(vsc, vsc); 8032 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8033 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8034 8035 res_i = vec_any_ge(vsc, vbc); 8036 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8037 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8038 8039 res_i = vec_any_ge(vuc, vuc); 8040 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8041 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8042 8043 res_i = vec_any_ge(vuc, vbc); 8044 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8045 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8046 8047 res_i = vec_any_ge(vbc, vsc); 8048 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8049 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8050 8051 res_i = vec_any_ge(vbc, vuc); 8052 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8053 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8054 8055 res_i = vec_any_ge(vbc, vbc); 8056 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8057 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8058 8059 res_i = vec_any_ge(vs, vs); 8060 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8061 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8062 8063 res_i = vec_any_ge(vs, vbs); 8064 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8065 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8066 8067 res_i = vec_any_ge(vus, vus); 8068 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8069 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8070 8071 res_i = vec_any_ge(vus, vbs); 8072 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8073 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8074 8075 res_i = vec_any_ge(vbs, vs); 8076 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8077 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8078 8079 res_i = vec_any_ge(vbs, vus); 8080 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8081 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8082 8083 res_i = vec_any_ge(vbs, vbs); 8084 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8085 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8086 8087 res_i = vec_any_ge(vi, vi); 8088 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8089 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8090 8091 res_i = vec_any_ge(vi, vbi); 8092 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8093 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8094 8095 res_i = vec_any_ge(vui, vui); 8096 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8097 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8098 8099 res_i = vec_any_ge(vui, vbi); 8100 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8101 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8102 8103 res_i = vec_any_ge(vbi, vi); 8104 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8105 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8106 8107 res_i = vec_any_ge(vbi, vui); 8108 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8109 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8110 8111 res_i = vec_any_ge(vbi, vbi); 8112 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8113 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8114 8115 res_i = vec_any_ge(vf, vf); 8116 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8117 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8118 8119 /* vec_any_gt */ 8120 res_i = vec_any_gt(vsc, vsc); 8121 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8122 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8123 8124 res_i = vec_any_gt(vsc, vbc); 8125 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8126 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8127 8128 res_i = vec_any_gt(vuc, vuc); 8129 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8130 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8131 8132 res_i = vec_any_gt(vuc, vbc); 8133 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8134 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8135 8136 res_i = vec_any_gt(vbc, vsc); 8137 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8138 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8139 8140 res_i = vec_any_gt(vbc, vuc); 8141 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8142 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8143 8144 res_i = vec_any_gt(vbc, vbc); 8145 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8146 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8147 8148 res_i = vec_any_gt(vs, vs); 8149 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8150 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8151 8152 res_i = vec_any_gt(vs, vbs); 8153 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8154 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8155 8156 res_i = vec_any_gt(vus, vus); 8157 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8158 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8159 8160 res_i = vec_any_gt(vus, vbs); 8161 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8162 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8163 8164 res_i = vec_any_gt(vbs, vs); 8165 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8166 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8167 8168 res_i = vec_any_gt(vbs, vus); 8169 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8170 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8171 8172 res_i = vec_any_gt(vbs, vbs); 8173 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8174 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8175 8176 res_i = vec_any_gt(vi, vi); 8177 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8178 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8179 8180 res_i = vec_any_gt(vi, vbi); 8181 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8182 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8183 8184 res_i = vec_any_gt(vui, vui); 8185 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8186 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8187 8188 res_i = vec_any_gt(vui, vbi); 8189 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8190 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8191 8192 res_i = vec_any_gt(vbi, vi); 8193 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8194 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8195 8196 res_i = vec_any_gt(vbi, vui); 8197 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8198 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8199 8200 res_i = vec_any_gt(vbi, vbi); 8201 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8202 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8203 8204 res_i = vec_any_gt(vf, vf); 8205 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8206 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8207 8208 /* vec_any_le */ 8209 res_i = vec_any_le(vsc, vsc); 8210 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8211 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8212 8213 res_i = vec_any_le(vsc, vbc); 8214 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8215 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8216 8217 res_i = vec_any_le(vuc, vuc); 8218 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8219 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8220 8221 res_i = vec_any_le(vuc, vbc); 8222 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8223 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8224 8225 res_i = vec_any_le(vbc, vsc); 8226 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8227 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8228 8229 res_i = vec_any_le(vbc, vuc); 8230 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8231 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8232 8233 res_i = vec_any_le(vbc, vbc); 8234 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8235 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8236 8237 res_i = vec_any_le(vs, vs); 8238 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8239 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8240 8241 res_i = vec_any_le(vs, vbs); 8242 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8243 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8244 8245 res_i = vec_any_le(vus, vus); 8246 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8247 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8248 8249 res_i = vec_any_le(vus, vbs); 8250 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8251 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8252 8253 res_i = vec_any_le(vbs, vs); 8254 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8255 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8256 8257 res_i = vec_any_le(vbs, vus); 8258 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8259 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8260 8261 res_i = vec_any_le(vbs, vbs); 8262 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8263 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8264 8265 res_i = vec_any_le(vi, vi); 8266 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8267 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8268 8269 res_i = vec_any_le(vi, vbi); 8270 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8271 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8272 8273 res_i = vec_any_le(vui, vui); 8274 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8275 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8276 8277 res_i = vec_any_le(vui, vbi); 8278 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8279 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8280 8281 res_i = vec_any_le(vbi, vi); 8282 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8283 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8284 8285 res_i = vec_any_le(vbi, vui); 8286 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8287 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8288 8289 res_i = vec_any_le(vbi, vbi); 8290 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8291 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8292 8293 res_i = vec_any_le(vf, vf); 8294 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8295 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8296 8297 /* vec_any_lt */ 8298 res_i = vec_any_lt(vsc, vsc); 8299 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8300 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8301 8302 res_i = vec_any_lt(vsc, vbc); 8303 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8304 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8305 8306 res_i = vec_any_lt(vuc, vuc); 8307 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8308 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8309 8310 res_i = vec_any_lt(vuc, vbc); 8311 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8312 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8313 8314 res_i = vec_any_lt(vbc, vsc); 8315 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8316 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8317 8318 res_i = vec_any_lt(vbc, vuc); 8319 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8320 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8321 8322 res_i = vec_any_lt(vbc, vbc); 8323 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8324 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8325 8326 res_i = vec_any_lt(vs, vs); 8327 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8328 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8329 8330 res_i = vec_any_lt(vs, vbs); 8331 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8332 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8333 8334 res_i = vec_any_lt(vus, vus); 8335 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8336 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8337 8338 res_i = vec_any_lt(vus, vbs); 8339 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8340 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8341 8342 res_i = vec_any_lt(vbs, vs); 8343 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8344 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8345 8346 res_i = vec_any_lt(vbs, vus); 8347 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8348 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8349 8350 res_i = vec_any_lt(vbs, vbs); 8351 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8352 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8353 8354 res_i = vec_any_lt(vi, vi); 8355 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8356 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8357 8358 res_i = vec_any_lt(vi, vbi); 8359 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8360 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8361 8362 res_i = vec_any_lt(vui, vui); 8363 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8364 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8365 8366 res_i = vec_any_lt(vui, vbi); 8367 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8368 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8369 8370 res_i = vec_any_lt(vbi, vi); 8371 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8372 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8373 8374 res_i = vec_any_lt(vbi, vui); 8375 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8376 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8377 8378 res_i = vec_any_lt(vbi, vbi); 8379 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8380 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8381 8382 res_i = vec_any_lt(vf, vf); 8383 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8384 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8385 8386 /* vec_any_nan */ 8387 res_i = vec_any_nan(vf); 8388 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8389 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8390 8391 /* vec_any_ne */ 8392 res_i = vec_any_ne(vsc, vsc); 8393 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8394 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8395 8396 res_i = vec_any_ne(vsc, vbc); 8397 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8398 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8399 8400 res_i = vec_any_ne(vuc, vuc); 8401 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8402 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8403 8404 res_i = vec_any_ne(vuc, vbc); 8405 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8406 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8407 8408 res_i = vec_any_ne(vbc, vsc); 8409 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8410 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8411 8412 res_i = vec_any_ne(vbc, vuc); 8413 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8414 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8415 8416 res_i = vec_any_ne(vbc, vbc); 8417 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8418 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8419 8420 res_i = vec_any_ne(vs, vs); 8421 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8422 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8423 8424 res_i = vec_any_ne(vs, vbs); 8425 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8426 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8427 8428 res_i = vec_any_ne(vus, vus); 8429 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8430 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8431 8432 res_i = vec_any_ne(vus, vbs); 8433 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8434 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8435 8436 res_i = vec_any_ne(vbs, vs); 8437 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8438 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8439 8440 res_i = vec_any_ne(vbs, vus); 8441 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8442 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8443 8444 res_i = vec_any_ne(vbs, vbs); 8445 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8446 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8447 8448 res_i = vec_any_ne(vp, vp); 8449 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8450 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8451 8452 res_i = vec_any_ne(vi, vi); 8453 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8454 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8455 8456 res_i = vec_any_ne(vi, vbi); 8457 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8458 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8459 8460 res_i = vec_any_ne(vui, vui); 8461 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8462 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8463 8464 res_i = vec_any_ne(vui, vbi); 8465 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8466 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8467 8468 res_i = vec_any_ne(vbi, vi); 8469 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8470 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8471 8472 res_i = vec_any_ne(vbi, vui); 8473 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8474 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8475 8476 res_i = vec_any_ne(vbi, vbi); 8477 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8478 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8479 8480 res_i = vec_any_ne(vf, vf); 8481 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8482 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8483 8484 /* vec_any_nge */ 8485 res_i = vec_any_nge(vf, vf); 8486 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8487 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8488 8489 /* vec_any_ngt */ 8490 res_i = vec_any_ngt(vf, vf); 8491 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8492 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8493 8494 /* vec_any_nle */ 8495 res_i = vec_any_nle(vf, vf); 8496 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8497 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8498 8499 /* vec_any_nlt */ 8500 res_i = vec_any_nlt(vf, vf); 8501 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8502 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8503 8504 /* vec_any_numeric */ 8505 res_i = vec_any_numeric(vf); 8506 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8507 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8508 8509 /* vec_any_out */ 8510 res_i = vec_any_out(vf, vf); 8511 // CHECK: @llvm.ppc.altivec.vcmpbfp.p 8512 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p 8513 } 8514 8515 /* ------------------------------ Relational Operators ------------------------------ */ 8516 // CHECK-LABEL: define void @test7 8517 void test7() { 8518 vector signed char vsc1 = (vector signed char)(-1); 8519 vector signed char vsc2 = (vector signed char)(-2); 8520 res_i = (vsc1 == vsc2); 8521 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 8522 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2 8523 8524 res_i = (vsc1 != vsc2); 8525 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 8526 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0 8527 8528 res_i = (vsc1 < vsc2); 8529 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8530 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8531 8532 res_i = (vsc1 > vsc2); 8533 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8534 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 8535 8536 res_i = (vsc1 <= vsc2); 8537 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8538 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8539 8540 res_i = (vsc1 >= vsc2); 8541 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8542 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 8543 8544 vector unsigned char vuc1 = (vector unsigned char)(1); 8545 vector unsigned char vuc2 = (vector unsigned char)(2); 8546 res_i = (vuc1 == vuc2); 8547 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 8548 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2 8549 8550 res_i = (vuc1 != vuc2); 8551 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 8552 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0 8553 8554 res_i = (vuc1 < vuc2); 8555 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8556 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8557 8558 res_i = (vuc1 > vuc2); 8559 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8560 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2 8561 8562 res_i = (vuc1 <= vuc2); 8563 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8564 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8565 8566 res_i = (vuc1 >= vuc2); 8567 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8568 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0 8569 8570 vector short vs1 = (vector short)(-1); 8571 vector short vs2 = (vector short)(-2); 8572 res_i = (vs1 == vs2); 8573 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 8574 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2 8575 8576 res_i = (vs1 != vs2); 8577 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 8578 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0 8579 8580 res_i = (vs1 < vs2); 8581 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8582 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8583 8584 res_i = (vs1 > vs2); 8585 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8586 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 8587 8588 res_i = (vs1 <= vs2); 8589 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8590 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8591 8592 res_i = (vs1 >= vs2); 8593 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8594 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 8595 8596 vector unsigned short vus1 = (vector unsigned short)(1); 8597 vector unsigned short vus2 = (vector unsigned short)(2); 8598 res_i = (vus1 == vus2); 8599 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 8600 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2 8601 8602 res_i = (vus1 != vus2); 8603 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 8604 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0 8605 8606 res_i = (vus1 < vus2); 8607 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8608 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8609 8610 res_i = (vus1 > vus2); 8611 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8612 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 8613 8614 res_i = (vus1 <= vus2); 8615 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8616 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8617 8618 res_i = (vus1 >= vus2); 8619 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8620 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 8621 8622 vector int vi1 = (vector int)(-1); 8623 vector int vi2 = (vector int)(-2); 8624 res_i = (vi1 == vi2); 8625 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 8626 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2 8627 8628 res_i = (vi1 != vi2); 8629 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 8630 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0 8631 8632 res_i = (vi1 < vi2); 8633 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8634 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8635 8636 res_i = (vi1 > vi2); 8637 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8638 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 8639 8640 res_i = (vi1 <= vi2); 8641 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8642 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8643 8644 res_i = (vi1 >= vi2); 8645 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8646 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 8647 8648 vector unsigned int vui1 = (vector unsigned int)(1); 8649 vector unsigned int vui2 = (vector unsigned int)(2); 8650 res_i = (vui1 == vui2); 8651 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 8652 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2 8653 8654 res_i = (vui1 != vui2); 8655 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 8656 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0 8657 8658 res_i = (vui1 < vui2); 8659 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8660 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8661 8662 res_i = (vui1 > vui2); 8663 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8664 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 8665 8666 res_i = (vui1 <= vui2); 8667 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8668 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8669 8670 res_i = (vui1 >= vui2); 8671 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8672 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 8673 8674 vector float vf1 = (vector float)(1.0); 8675 vector float vf2 = (vector float)(2.0); 8676 res_i = (vf1 == vf2); 8677 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 8678 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 8679 8680 res_i = (vf1 != vf2); 8681 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 8682 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 8683 8684 res_i = (vf1 < vf2); 8685 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8686 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8687 8688 res_i = (vf1 > vf2); 8689 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8690 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 8691 8692 res_i = (vf1 <= vf2); 8693 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8694 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8695 8696 res_i = (vf1 >= vf2); 8697 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8698 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2 8699 } 8700