1 // REQUIRES: powerpc-registered-target 2 // RUN: %clang_cc1 -target-feature +altivec -triple powerpc-unknown-unknown -emit-llvm %s \ 3 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \ 4 // RUN: -o - | FileCheck %s 5 // RUN: %clang_cc1 -target-feature +altivec -triple powerpcle-unknown-unknown -emit-llvm %s \ 6 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \ 7 // RUN: -o - | FileCheck %s -check-prefix=CHECK-LE 8 // RUN: %clang_cc1 -target-feature +altivec -triple powerpc64-unknown-unknown -emit-llvm %s \ 9 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \ 10 // RUN: -o - | FileCheck %s 11 // RUN: %clang_cc1 -target-feature +altivec -triple powerpc64le-unknown-unknown -emit-llvm %s \ 12 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \ 13 // RUN: -o - | FileCheck %s -check-prefix=CHECK-LE 14 // RUN: not %clang_cc1 -triple powerpc64le-unknown-unknown -emit-llvm %s \ 15 // RUN: -ferror-limit 0 -DNO_ALTIVEC -o - 2>&1 \ 16 // RUN: | FileCheck %s -check-prefix=CHECK-NOALTIVEC 17 #ifndef NO_ALTIVEC 18 #include <altivec.h> 19 #endif 20 21 vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 }; 22 vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 }; 23 vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; 24 vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 }; 25 vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 }; 26 vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 }; 27 vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 }; 28 vector bool int vbi = { 1, 0, 1, 0 }; 29 vector int vi = { -1, 2, -3, 4 }; 30 vector unsigned int vui = { 1, 2, 3, 4 }; 31 vector float vf = { -1.5, 2.5, -3.5, 4.5 }; 32 33 vector bool char res_vbc; 34 vector signed char res_vsc; 35 vector unsigned char res_vuc; 36 vector bool short res_vbs; 37 vector short res_vs; 38 vector unsigned short res_vus; 39 vector pixel res_vp; 40 vector bool int res_vbi; 41 vector int res_vi; 42 vector unsigned int res_vui; 43 vector float res_vf; 44 45 // CHECK-NOALTIVEC: error: unknown type name 'vector' 46 // CHECK-NOALTIVEC-NOT: '(error)' 47 const signed char *param_sc_ld; 48 const unsigned char *param_uc_ld; 49 const short *param_s_ld; 50 const unsigned short *param_us_ld; 51 const int *param_i_ld; 52 const unsigned int *param_ui_ld; 53 const float *param_f_ld; 54 55 signed char param_sc; 56 unsigned char param_uc; 57 short param_s; 58 unsigned short param_us; 59 int param_i; 60 unsigned int param_ui; 61 float param_f; 62 signed long long param_sll; 63 64 int res_sc; 65 int res_uc; 66 int res_s; 67 int res_us; 68 int res_i; 69 int res_ui; 70 int res_f; 71 72 // CHECK-LABEL: define{{.*}} void @test1 73 void test1() { 74 75 /* vec_abs */ 76 vsc = vec_abs(vsc); 77 // CHECK: sub <16 x i8> zeroinitializer 78 // CHECK: @llvm.ppc.altivec.vmaxsb 79 // CHECK-LE: sub <16 x i8> zeroinitializer 80 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 81 82 vs = vec_abs(vs); 83 // CHECK: sub <8 x i16> zeroinitializer 84 // CHECK: @llvm.ppc.altivec.vmaxsh 85 // CHECK-LE: sub <8 x i16> zeroinitializer 86 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 87 88 vi = vec_abs(vi); 89 // CHECK: sub <4 x i32> zeroinitializer 90 // CHECK: @llvm.ppc.altivec.vmaxsw 91 // CHECK-LE: sub <4 x i32> zeroinitializer 92 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 93 94 vf = vec_abs(vf); 95 // CHECK: and <4 x i32> {{.*}}, splat (i32 2147483647) 96 // CHECK: store <4 x float> %{{.*}}, ptr @vf 97 // CHECK-LE: bitcast <4 x float> %{{.*}} to <4 x i32> 98 // CHECK-LE: and <4 x i32> {{.*}}, splat (i32 2147483647) 99 // CHECK-LE: bitcast <4 x i32> %{{.*}} to <4 x float> 100 // CHECK-LE: store <4 x float> %{{.*}}, ptr @vf 101 102 vsc = vec_nabs(vsc); 103 // CHECK: sub <16 x i8> zeroinitializer 104 // CHECK: @llvm.ppc.altivec.vminsb 105 // CHECK-LE: sub <16 x i8> zeroinitializer 106 // CHECK-LE: @llvm.ppc.altivec.vminsb 107 108 vs = vec_nabs(vs); 109 // CHECK: sub <8 x i16> zeroinitializer 110 // CHECK: @llvm.ppc.altivec.vminsh 111 // CHECK-LE: sub <8 x i16> zeroinitializer 112 // CHECK-LE: @llvm.ppc.altivec.vminsh 113 114 vi = vec_nabs(vi); 115 // CHECK: sub <4 x i32> zeroinitializer 116 // CHECK: @llvm.ppc.altivec.vminsw 117 // CHECK-LE: sub <4 x i32> zeroinitializer 118 // CHECK-LE: @llvm.ppc.altivec.vminsw 119 120 res_vi = vec_neg(vi); 121 // CHECK: sub <4 x i32> zeroinitializer, {{%[0-9]+}} 122 // CHECK-LE: sub <4 x i32> zeroinitializer, {{%[0-9]+}} 123 124 res_vs = vec_neg(vs); 125 // CHECK: sub <8 x i16> zeroinitializer, {{%[0-9]+}} 126 // CHECK-LE: sub <8 x i16> zeroinitializer, {{%[0-9]+}} 127 128 res_vsc = vec_neg(vsc); 129 // CHECK: sub <16 x i8> zeroinitializer, {{%[0-9]+}} 130 // CHECK-LE: sub <16 x i8> zeroinitializer, {{%[0-9]+}} 131 132 133 /* vec_abs */ 134 vsc = vec_abss(vsc); 135 // CHECK: @llvm.ppc.altivec.vsubsbs 136 // CHECK: @llvm.ppc.altivec.vmaxsb 137 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 138 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 139 140 vs = vec_abss(vs); 141 // CHECK: @llvm.ppc.altivec.vsubshs 142 // CHECK: @llvm.ppc.altivec.vmaxsh 143 // CHECK-LE: @llvm.ppc.altivec.vsubshs 144 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 145 146 vi = vec_abss(vi); 147 // CHECK: @llvm.ppc.altivec.vsubsws 148 // CHECK: @llvm.ppc.altivec.vmaxsw 149 // CHECK-LE: @llvm.ppc.altivec.vsubsws 150 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 151 152 /* vec_add */ 153 res_vsc = vec_add(vsc, vsc); 154 // CHECK: add <16 x i8> 155 // CHECK-LE: add <16 x i8> 156 157 res_vsc = vec_add(vbc, vsc); 158 // CHECK: add <16 x i8> 159 // CHECK-LE: add <16 x i8> 160 161 res_vsc = vec_add(vsc, vbc); 162 // CHECK: add <16 x i8> 163 // CHECK-LE: add <16 x i8> 164 165 res_vuc = vec_add(vuc, vuc); 166 // CHECK: add <16 x i8> 167 // CHECK-LE: add <16 x i8> 168 169 res_vuc = vec_add(vbc, vuc); 170 // CHECK: add <16 x i8> 171 // CHECK-LE: add <16 x i8> 172 173 res_vuc = vec_add(vuc, vbc); 174 // CHECK: add <16 x i8> 175 // CHECK-LE: add <16 x i8> 176 177 res_vs = vec_add(vs, vs); 178 // CHECK: add <8 x i16> 179 // CHECK-LE: add <8 x i16> 180 181 res_vs = vec_add(vbs, vs); 182 // CHECK: add <8 x i16> 183 // CHECK-LE: add <8 x i16> 184 185 res_vs = vec_add(vs, vbs); 186 // CHECK: add <8 x i16> 187 // CHECK-LE: add <8 x i16> 188 189 res_vus = vec_add(vus, vus); 190 // CHECK: add <8 x i16> 191 // CHECK-LE: add <8 x i16> 192 193 res_vus = vec_add(vbs, vus); 194 // CHECK: add <8 x i16> 195 // CHECK-LE: add <8 x i16> 196 197 res_vus = vec_add(vus, vbs); 198 // CHECK: add <8 x i16> 199 // CHECK-LE: add <8 x i16> 200 201 res_vi = vec_add(vi, vi); 202 // CHECK: add <4 x i32> 203 // CHECK-LE: add <4 x i32> 204 205 res_vi = vec_add(vbi, vi); 206 // CHECK: add <4 x i32> 207 // CHECK-LE: add <4 x i32> 208 209 res_vi = vec_add(vi, vbi); 210 // CHECK: add <4 x i32> 211 // CHECK-LE: add <4 x i32> 212 213 res_vui = vec_add(vui, vui); 214 // CHECK: add <4 x i32> 215 // CHECK-LE: add <4 x i32> 216 217 res_vui = vec_add(vbi, vui); 218 // CHECK: add <4 x i32> 219 // CHECK-LE: add <4 x i32> 220 221 res_vui = vec_add(vui, vbi); 222 // CHECK: add <4 x i32> 223 // CHECK-LE: add <4 x i32> 224 225 res_vf = vec_add(vf, vf); 226 // CHECK: fadd <4 x float> 227 // CHECK-LE: fadd <4 x float> 228 229 res_vi = vec_adde(vi, vi, vi); 230 // CHECK: and <4 x i32> 231 // CHECK: add <4 x i32> 232 // CHECK: add <4 x i32> 233 // CHECK-LE: and <4 x i32> 234 // CHECK-LE: add <4 x i32> 235 // CHECK-LE: add <4 x i32> 236 237 res_vui = vec_adde(vui, vui, vui); 238 // CHECK: and <4 x i32> 239 // CHECK: add <4 x i32> 240 // CHECK: add <4 x i32> 241 // CHECK-LE: and <4 x i32> 242 // CHECK-LE: add <4 x i32> 243 // CHECK-LE: add <4 x i32> 244 245 res_vsc = vec_vaddubm(vsc, vsc); 246 // CHECK: add <16 x i8> 247 // CHECK-LE: add <16 x i8> 248 249 res_vsc = vec_vaddubm(vbc, vsc); 250 // CHECK: add <16 x i8> 251 // CHECK-LE: add <16 x i8> 252 253 res_vsc = vec_vaddubm(vsc, vbc); 254 // CHECK: add <16 x i8> 255 // CHECK-LE: add <16 x i8> 256 257 res_vuc = vec_vaddubm(vuc, vuc); 258 // CHECK: add <16 x i8> 259 // CHECK-LE: add <16 x i8> 260 261 res_vuc = vec_vaddubm(vbc, vuc); 262 // CHECK: add <16 x i8> 263 // CHECK-LE: add <16 x i8> 264 265 res_vuc = vec_vaddubm(vuc, vbc); 266 // CHECK: add <16 x i8> 267 // CHECK-LE: add <16 x i8> 268 269 res_vs = vec_vadduhm(vs, vs); 270 // CHECK: add <8 x i16> 271 // CHECK-LE: add <8 x i16> 272 273 res_vs = vec_vadduhm(vbs, vs); 274 // CHECK: add <8 x i16> 275 // CHECK-LE: add <8 x i16> 276 277 res_vs = vec_vadduhm(vs, vbs); 278 // CHECK: add <8 x i16> 279 // CHECK-LE: add <8 x i16> 280 281 res_vus = vec_vadduhm(vus, vus); 282 // CHECK: add <8 x i16> 283 // CHECK-LE: add <8 x i16> 284 285 res_vus = vec_vadduhm(vbs, vus); 286 // CHECK: add <8 x i16> 287 // CHECK-LE: add <8 x i16> 288 289 res_vus = vec_vadduhm(vus, vbs); 290 // CHECK: add <8 x i16> 291 // CHECK-LE: add <8 x i16> 292 293 res_vi = vec_vadduwm(vi, vi); 294 // CHECK: add <4 x i32> 295 // CHECK-LE: add <4 x i32> 296 297 res_vi = vec_vadduwm(vbi, vi); 298 // CHECK: add <4 x i32> 299 // CHECK-LE: add <4 x i32> 300 301 res_vi = vec_vadduwm(vi, vbi); 302 // CHECK: add <4 x i32> 303 // CHECK-LE: add <4 x i32> 304 305 res_vui = vec_vadduwm(vui, vui); 306 // CHECK: add <4 x i32> 307 // CHECK-LE: add <4 x i32> 308 309 res_vui = vec_vadduwm(vbi, vui); 310 // CHECK: add <4 x i32> 311 // CHECK-LE: add <4 x i32> 312 313 res_vui = vec_vadduwm(vui, vbi); 314 // CHECK: add <4 x i32> 315 // CHECK-LE: add <4 x i32> 316 317 res_vf = vec_vaddfp(vf, vf); 318 // CHECK: fadd <4 x float> 319 // CHECK-LE: fadd <4 x float> 320 321 /* vec_addc */ 322 res_vui = vec_addc(vui, vui); 323 // CHECK: @llvm.ppc.altivec.vaddcuw 324 // CHECK-LE: @llvm.ppc.altivec.vaddcuw 325 326 res_vui = vec_vaddcuw(vui, vui); 327 // CHECK: @llvm.ppc.altivec.vaddcuw 328 // CHECK-LE: @llvm.ppc.altivec.vaddcuw 329 330 /* vec_adds */ 331 res_vsc = vec_adds(vsc, vsc); 332 // CHECK: @llvm.ppc.altivec.vaddsbs 333 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 334 335 res_vsc = vec_adds(vbc, vsc); 336 // CHECK: @llvm.ppc.altivec.vaddsbs 337 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 338 339 res_vsc = vec_adds(vsc, vbc); 340 // CHECK: @llvm.ppc.altivec.vaddsbs 341 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 342 343 res_vuc = vec_adds(vuc, vuc); 344 // CHECK: @llvm.ppc.altivec.vaddubs 345 // CHECK-LE: @llvm.ppc.altivec.vaddubs 346 347 res_vuc = vec_adds(vbc, vuc); 348 // CHECK: @llvm.ppc.altivec.vaddubs 349 // CHECK-LE: @llvm.ppc.altivec.vaddubs 350 351 res_vuc = vec_adds(vuc, vbc); 352 // CHECK: @llvm.ppc.altivec.vaddubs 353 // CHECK-LE: @llvm.ppc.altivec.vaddubs 354 355 res_vs = vec_adds(vs, vs); 356 // CHECK: @llvm.ppc.altivec.vaddshs 357 // CHECK-LE: @llvm.ppc.altivec.vaddshs 358 359 res_vs = vec_adds(vbs, vs); 360 // CHECK: @llvm.ppc.altivec.vaddshs 361 // CHECK-LE: @llvm.ppc.altivec.vaddshs 362 363 res_vs = vec_adds(vs, vbs); 364 // CHECK: @llvm.ppc.altivec.vaddshs 365 // CHECK-LE: @llvm.ppc.altivec.vaddshs 366 367 res_vus = vec_adds(vus, vus); 368 // CHECK: @llvm.ppc.altivec.vadduhs 369 // CHECK-LE: @llvm.ppc.altivec.vadduhs 370 371 res_vus = vec_adds(vbs, vus); 372 // CHECK: @llvm.ppc.altivec.vadduhs 373 // CHECK-LE: @llvm.ppc.altivec.vadduhs 374 375 res_vus = vec_adds(vus, vbs); 376 // CHECK: @llvm.ppc.altivec.vadduhs 377 // CHECK-LE: @llvm.ppc.altivec.vadduhs 378 379 res_vi = vec_adds(vi, vi); 380 // CHECK: @llvm.ppc.altivec.vaddsws 381 // CHECK-LE: @llvm.ppc.altivec.vaddsws 382 383 res_vi = vec_adds(vbi, vi); 384 // CHECK: @llvm.ppc.altivec.vaddsws 385 // CHECK-LE: @llvm.ppc.altivec.vaddsws 386 387 res_vi = vec_adds(vi, vbi); 388 // CHECK: @llvm.ppc.altivec.vaddsws 389 // CHECK-LE: @llvm.ppc.altivec.vaddsws 390 391 res_vui = vec_adds(vui, vui); 392 // CHECK: @llvm.ppc.altivec.vadduws 393 // CHECK-LE: @llvm.ppc.altivec.vadduws 394 395 res_vui = vec_adds(vbi, vui); 396 // CHECK: @llvm.ppc.altivec.vadduws 397 // CHECK-LE: @llvm.ppc.altivec.vadduws 398 399 res_vui = vec_adds(vui, vbi); 400 // CHECK: @llvm.ppc.altivec.vadduws 401 // CHECK-LE: @llvm.ppc.altivec.vadduws 402 403 res_vsc = vec_vaddsbs(vsc, vsc); 404 // CHECK: @llvm.ppc.altivec.vaddsbs 405 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 406 407 res_vsc = vec_vaddsbs(vbc, vsc); 408 // CHECK: @llvm.ppc.altivec.vaddsbs 409 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 410 411 res_vsc = vec_vaddsbs(vsc, vbc); 412 // CHECK: @llvm.ppc.altivec.vaddsbs 413 // CHECK-LE: @llvm.ppc.altivec.vaddsbs 414 415 res_vuc = vec_vaddubs(vuc, vuc); 416 // CHECK: @llvm.ppc.altivec.vaddubs 417 // CHECK-LE: @llvm.ppc.altivec.vaddubs 418 419 res_vuc = vec_vaddubs(vbc, vuc); 420 // CHECK: @llvm.ppc.altivec.vaddubs 421 // CHECK-LE: @llvm.ppc.altivec.vaddubs 422 423 res_vuc = vec_vaddubs(vuc, vbc); 424 // CHECK: @llvm.ppc.altivec.vaddubs 425 // CHECK-LE: @llvm.ppc.altivec.vaddubs 426 427 res_vs = vec_vaddshs(vs, vs); 428 // CHECK: @llvm.ppc.altivec.vaddshs 429 // CHECK-LE: @llvm.ppc.altivec.vaddshs 430 431 res_vs = vec_vaddshs(vbs, vs); 432 // CHECK: @llvm.ppc.altivec.vaddshs 433 // CHECK-LE: @llvm.ppc.altivec.vaddshs 434 435 res_vs = vec_vaddshs(vs, vbs); 436 // CHECK: @llvm.ppc.altivec.vaddshs 437 // CHECK-LE: @llvm.ppc.altivec.vaddshs 438 439 res_vus = vec_vadduhs(vus, vus); 440 // CHECK: @llvm.ppc.altivec.vadduhs 441 // CHECK-LE: @llvm.ppc.altivec.vadduhs 442 443 res_vus = vec_vadduhs(vbs, vus); 444 // CHECK: @llvm.ppc.altivec.vadduhs 445 // CHECK-LE: @llvm.ppc.altivec.vadduhs 446 447 res_vus = vec_vadduhs(vus, vbs); 448 // CHECK: @llvm.ppc.altivec.vadduhs 449 // CHECK-LE: @llvm.ppc.altivec.vadduhs 450 451 res_vi = vec_vaddsws(vi, vi); 452 // CHECK: @llvm.ppc.altivec.vaddsws 453 // CHECK-LE: @llvm.ppc.altivec.vaddsws 454 455 res_vi = vec_vaddsws(vbi, vi); 456 // CHECK: @llvm.ppc.altivec.vaddsws 457 // CHECK-LE: @llvm.ppc.altivec.vaddsws 458 459 res_vi = vec_vaddsws(vi, vbi); 460 // CHECK: @llvm.ppc.altivec.vaddsws 461 // CHECK-LE: @llvm.ppc.altivec.vaddsws 462 463 res_vui = vec_vadduws(vui, vui); 464 // CHECK: @llvm.ppc.altivec.vadduws 465 // CHECK-LE: @llvm.ppc.altivec.vadduws 466 467 res_vui = vec_vadduws(vbi, vui); 468 // CHECK: @llvm.ppc.altivec.vadduws 469 // CHECK-LE: @llvm.ppc.altivec.vadduws 470 471 res_vui = vec_vadduws(vui, vbi); 472 // CHECK: @llvm.ppc.altivec.vadduws 473 // CHECK-LE: @llvm.ppc.altivec.vadduws 474 475 /* vec_and */ 476 res_vsc = vec_and(vsc, vsc); 477 // CHECK: and <16 x i8> 478 // CHECK-LE: and <16 x i8> 479 480 res_vsc = vec_and(vbc, vsc); 481 // CHECK: and <16 x i8> 482 // CHECK-LE: and <16 x i8> 483 484 res_vsc = vec_and(vsc, vbc); 485 // CHECK: and <16 x i8> 486 // CHECK-LE: and <16 x i8> 487 488 res_vuc = vec_and(vuc, vuc); 489 // CHECK: and <16 x i8> 490 // CHECK-LE: and <16 x i8> 491 492 res_vuc = vec_and(vbc, vuc); 493 // CHECK: and <16 x i8> 494 // CHECK-LE: and <16 x i8> 495 496 res_vuc = vec_and(vuc, vbc); 497 // CHECK: and <16 x i8> 498 // CHECK-LE: and <16 x i8> 499 500 res_vbc = vec_and(vbc, vbc); 501 // CHECK: and <16 x i8> 502 // CHECK-LE: and <16 x i8> 503 504 res_vs = vec_and(vs, vs); 505 // CHECK: and <8 x i16> 506 // CHECK-LE: and <8 x i16> 507 508 res_vs = vec_and(vbs, vs); 509 // CHECK: and <8 x i16> 510 // CHECK-LE: and <8 x i16> 511 512 res_vs = vec_and(vs, vbs); 513 // CHECK: and <8 x i16> 514 // CHECK-LE: and <8 x i16> 515 516 res_vus = vec_and(vus, vus); 517 // CHECK: and <8 x i16> 518 // CHECK-LE: and <8 x i16> 519 520 res_vus = vec_and(vbs, vus); 521 // CHECK: and <8 x i16> 522 // CHECK-LE: and <8 x i16> 523 524 res_vus = vec_and(vus, vbs); 525 // CHECK: and <8 x i16> 526 // CHECK-LE: and <8 x i16> 527 528 res_vbs = vec_and(vbs, vbs); 529 // CHECK: and <8 x i16> 530 // CHECK-LE: and <8 x i16> 531 532 res_vi = vec_and(vi, vi); 533 // CHECK: and <4 x i32> 534 // CHECK-LE: and <4 x i32> 535 536 res_vi = vec_and(vbi, vi); 537 // CHECK: and <4 x i32> 538 // CHECK-le: and <4 x i32> 539 540 res_vi = vec_and(vi, vbi); 541 // CHECK: and <4 x i32> 542 // CHECK-LE: and <4 x i32> 543 544 res_vui = vec_and(vui, vui); 545 // CHECK: and <4 x i32> 546 // CHECK-LE: and <4 x i32> 547 548 res_vui = vec_and(vbi, vui); 549 // CHECK: and <4 x i32> 550 // CHECK-LE: and <4 x i32> 551 552 res_vui = vec_and(vui, vbi); 553 // CHECK: and <4 x i32> 554 // CHECK-LE: and <4 x i32> 555 556 res_vbi = vec_and(vbi, vbi); 557 // CHECK: and <4 x i32> 558 // CHECK-LE: and <4 x i32> 559 560 res_vsc = vec_vand(vsc, vsc); 561 // CHECK: and <16 x i8> 562 // CHECK-LE: and <16 x i8> 563 564 res_vsc = vec_vand(vbc, vsc); 565 // CHECK: and <16 x i8> 566 // CHECK-LE: and <16 x i8> 567 568 res_vsc = vec_vand(vsc, vbc); 569 // CHECK: and <16 x i8> 570 // CHECK-LE: and <16 x i8> 571 572 res_vuc = vec_vand(vuc, vuc); 573 // CHECK: and <16 x i8> 574 // CHECK-LE: and <16 x i8> 575 576 res_vuc = vec_vand(vbc, vuc); 577 // CHECK: and <16 x i8> 578 // CHECK-LE: and <16 x i8> 579 580 res_vuc = vec_vand(vuc, vbc); 581 // CHECK: and <16 x i8> 582 // CHECK-LE: and <16 x i8> 583 584 res_vbc = vec_vand(vbc, vbc); 585 // CHECK: and <16 x i8> 586 // CHECK-LE: and <16 x i8> 587 588 res_vs = vec_vand(vs, vs); 589 // CHECK: and <8 x i16> 590 // CHECK-LE: and <8 x i16> 591 592 res_vs = vec_vand(vbs, vs); 593 // CHECK: and <8 x i16> 594 // CHECK-LE: and <8 x i16> 595 596 res_vs = vec_vand(vs, vbs); 597 // CHECK: and <8 x i16> 598 // CHECK-LE: and <8 x i16> 599 600 res_vus = vec_vand(vus, vus); 601 // CHECK: and <8 x i16> 602 // CHECK-LE: and <8 x i16> 603 604 res_vus = vec_vand(vbs, vus); 605 // CHECK: and <8 x i16> 606 // CHECK-LE: and <8 x i16> 607 608 res_vus = vec_vand(vus, vbs); 609 // CHECK: and <8 x i16> 610 // CHECK-LE: and <8 x i16> 611 612 res_vbs = vec_vand(vbs, vbs); 613 // CHECK: and <8 x i16> 614 // CHECK-LE: and <8 x i16> 615 616 res_vi = vec_vand(vi, vi); 617 // CHECK: and <4 x i32> 618 // CHECK-LE: and <4 x i32> 619 620 res_vi = vec_vand(vbi, vi); 621 // CHECK: and <4 x i32> 622 // CHECK-LE: and <4 x i32> 623 624 res_vi = vec_vand(vi, vbi); 625 // CHECK: and <4 x i32> 626 // CHECK-LE: and <4 x i32> 627 628 res_vui = vec_vand(vui, vui); 629 // CHECK: and <4 x i32> 630 // CHECK-LE: and <4 x i32> 631 632 res_vui = vec_vand(vbi, vui); 633 // CHECK: and <4 x i32> 634 // CHECK-LE: and <4 x i32> 635 636 res_vui = vec_vand(vui, vbi); 637 // CHECK: and <4 x i32> 638 // CHECK-LE: and <4 x i32> 639 640 res_vbi = vec_vand(vbi, vbi); 641 // CHECK: and <4 x i32> 642 // CHECK-LE: and <4 x i32> 643 644 /* vec_andc */ 645 res_vsc = vec_andc(vsc, vsc); 646 // CHECK: xor <16 x i8> 647 // CHECK: and <16 x i8> 648 // CHECK-LE: xor <16 x i8> 649 // CHECK-LE: and <16 x i8> 650 651 res_vsc = vec_andc(vbc, vsc); 652 // CHECK: xor <16 x i8> 653 // CHECK: and <16 x i8> 654 // CHECK-LE: xor <16 x i8> 655 // CHECK-LE: and <16 x i8> 656 657 res_vsc = vec_andc(vsc, vbc); 658 // CHECK: xor <16 x i8> 659 // CHECK: and <16 x i8> 660 // CHECK-LE: xor <16 x i8> 661 // CHECK-LE: and <16 x i8> 662 663 res_vuc = vec_andc(vuc, vuc); 664 // CHECK: xor <16 x i8> 665 // CHECK: and <16 x i8> 666 // CHECK-LE: xor <16 x i8> 667 // CHECK-LE: and <16 x i8> 668 669 res_vuc = vec_andc(vbc, vuc); 670 // CHECK: xor <16 x i8> 671 // CHECK: and <16 x i8> 672 // CHECK-LE: xor <16 x i8> 673 // CHECK-LE: and <16 x i8> 674 675 res_vuc = vec_andc(vuc, vbc); 676 // CHECK-LE: xor <16 x i8> 677 // CHECK-LE: and <16 x i8> 678 679 res_vbc = vec_andc(vbc, vbc); 680 // CHECK: xor <16 x i8> 681 // CHECK: and <16 x i8> 682 // CHECK-LE: xor <16 x i8> 683 // CHECK-LE: and <16 x i8> 684 685 res_vs = vec_andc(vs, vs); 686 // CHECK: xor <8 x i16> 687 // CHECK: and <8 x i16> 688 // CHECK-LE: xor <8 x i16> 689 // CHECK-LE: and <8 x i16> 690 691 res_vs = vec_andc(vbs, vs); 692 // CHECK: xor <8 x i16> 693 // CHECK: and <8 x i16> 694 // CHECK-LE: xor <8 x i16> 695 // CHECK-LE: and <8 x i16> 696 697 res_vs = vec_andc(vs, vbs); 698 // CHECK: xor <8 x i16> 699 // CHECK: and <8 x i16> 700 // CHECK-LE: xor <8 x i16> 701 // CHECK-LE: and <8 x i16> 702 703 res_vus = vec_andc(vus, vus); 704 // CHECK: xor <8 x i16> 705 // CHECK: and <8 x i16> 706 // CHECK-LE: xor <8 x i16> 707 // CHECK-LE: and <8 x i16> 708 709 res_vus = vec_andc(vbs, vus); 710 // CHECK: xor <8 x i16> 711 // CHECK: and <8 x i16> 712 // CHECK-LE: xor <8 x i16> 713 // CHECK-LE: and <8 x i16> 714 715 res_vus = vec_andc(vus, vbs); 716 // CHECK: xor <8 x i16> 717 // CHECK: and <8 x i16> 718 // CHECK-LE: xor <8 x i16> 719 // CHECK-LE: and <8 x i16> 720 721 res_vbs = vec_andc(vbs, vbs); 722 // CHECK: xor <8 x i16> 723 // CHECK: and <8 x i16> 724 // CHECK-LE: xor <8 x i16> 725 // CHECK-LE: and <8 x i16> 726 727 res_vi = vec_andc(vi, vi); 728 // CHECK: xor <4 x i32> 729 // CHECK: and <4 x i32> 730 // CHECK-LE: xor <4 x i32> 731 // CHECK-LE: and <4 x i32> 732 733 res_vi = vec_andc(vbi, vi); 734 // CHECK: xor <4 x i32> 735 // CHECK: and <4 x i32> 736 // CHECK-LE: xor <4 x i32> 737 // CHECK-LE: and <4 x i32> 738 739 res_vi = vec_andc(vi, vbi); 740 // CHECK: xor <4 x i32> 741 // CHECK: and <4 x i32> 742 // CHECK-LE: xor <4 x i32> 743 // CHECK-LE: and <4 x i32> 744 745 res_vui = vec_andc(vui, vui); 746 // CHECK: xor <4 x i32> 747 // CHECK: and <4 x i32> 748 // CHECK-LE: xor <4 x i32> 749 // CHECK-LE: and <4 x i32> 750 751 res_vui = vec_andc(vbi, vui); 752 // CHECK: xor <4 x i32> 753 // CHECK: and <4 x i32> 754 // CHECK-LE: xor <4 x i32> 755 // CHECK-LE: and <4 x i32> 756 757 res_vui = vec_andc(vui, vbi); 758 // CHECK: xor <4 x i32> 759 // CHECK: and <4 x i32> 760 // CHECK-LE: xor <4 x i32> 761 // CHECK-LE: and <4 x i32> 762 763 res_vf = vec_andc(vf, vf); 764 // CHECK: xor <4 x i32> 765 // CHECK: and <4 x i32> 766 // CHECK-LE: xor <4 x i32> 767 // CHECK-LE: and <4 x i32> 768 769 res_vf = vec_andc(vbi, vf); 770 // CHECK: xor <4 x i32> 771 // CHECK: and <4 x i32> 772 // CHECK-LE: xor <4 x i32> 773 // CHECK-LE: and <4 x i32> 774 775 res_vf = vec_andc(vf, vbi); 776 // CHECK: xor <4 x i32> 777 // CHECK: and <4 x i32> 778 // CHECK-LE: xor <4 x i32> 779 // CHECK-LE: and <4 x i32> 780 781 res_vsc = vec_vandc(vsc, vsc); 782 // CHECK: xor <16 x i8> 783 // CHECK: and <16 x i8> 784 // CHECK-LE: xor <16 x i8> 785 // CHECK-LE: and <16 x i8> 786 787 res_vsc = vec_vandc(vbc, vsc); 788 // CHECK: xor <16 x i8> 789 // CHECK: and <16 x i8> 790 // CHECK-LE: xor <16 x i8> 791 // CHECK-LE: and <16 x i8> 792 793 res_vsc = vec_vandc(vsc, vbc); 794 // CHECK: xor <16 x i8> 795 // CHECK: and <16 x i8> 796 // CHECK-LE: xor <16 x i8> 797 // CHECK-LE: and <16 x i8> 798 799 res_vuc = vec_vandc(vuc, vuc); 800 // CHECK: xor <16 x i8> 801 // CHECK: and <16 x i8> 802 // CHECK-LE: xor <16 x i8> 803 // CHECK-LE: and <16 x i8> 804 805 res_vuc = vec_vandc(vbc, vuc); 806 // CHECK: xor <16 x i8> 807 // CHECK: and <16 x i8> 808 // CHECK-LE: xor <16 x i8> 809 // CHECK-LE: and <16 x i8> 810 811 res_vuc = vec_vandc(vuc, vbc); 812 // CHECK: xor <16 x i8> 813 // CHECK: and <16 x i8> 814 // CHECK-LE: xor <16 x i8> 815 // CHECK-LE: and <16 x i8> 816 817 res_vbc = vec_vandc(vbc, vbc); 818 // CHECK: xor <16 x i8> 819 // CHECK: and <16 x i8> 820 // CHECK-LE: xor <16 x i8> 821 // CHECK-LE: and <16 x i8> 822 823 res_vs = vec_vandc(vs, vs); 824 // CHECK: xor <8 x i16> 825 // CHECK: and <8 x i16> 826 // CHECK-LE: xor <8 x i16> 827 // CHECK-LE: and <8 x i16> 828 829 res_vs = vec_vandc(vbs, vs); 830 // CHECK: xor <8 x i16> 831 // CHECK: and <8 x i16> 832 // CHECK-LE: xor <8 x i16> 833 // CHECK-LE: and <8 x i16> 834 835 res_vs = vec_vandc(vs, vbs); 836 // CHECK: xor <8 x i16> 837 // CHECK: and <8 x i16> 838 // CHECK-LE: xor <8 x i16> 839 // CHECK-LE: and <8 x i16> 840 841 res_vus = vec_vandc(vus, vus); 842 // CHECK: xor <8 x i16> 843 // CHECK: and <8 x i16> 844 // CHECK-LE: xor <8 x i16> 845 // CHECK-LE: and <8 x i16> 846 847 res_vus = vec_vandc(vbs, vus); 848 // CHECK: xor <8 x i16> 849 // CHECK: and <8 x i16> 850 // CHECK-LE: xor <8 x i16> 851 // CHECK-LE: and <8 x i16> 852 853 res_vus = vec_vandc(vus, vbs); 854 // CHECK: xor <8 x i16> 855 // CHECK: and <8 x i16> 856 // CHECK-LE: xor <8 x i16> 857 // CHECK-LE: and <8 x i16> 858 859 res_vbs = vec_vandc(vbs, vbs); 860 // CHECK: xor <8 x i16> 861 // CHECK: and <8 x i16> 862 // CHECK-LE: xor <8 x i16> 863 // CHECK-LE: and <8 x i16> 864 865 res_vi = vec_vandc(vi, vi); 866 // CHECK: xor <4 x i32> 867 // CHECK: and <4 x i32> 868 // CHECK-LE: xor <4 x i32> 869 // CHECK-LE: and <4 x i32> 870 871 res_vi = vec_vandc(vbi, vi); 872 // CHECK: xor <4 x i32> 873 // CHECK: and <4 x i32> 874 // CHECK-LE: xor <4 x i32> 875 // CHECK-LE: and <4 x i32> 876 877 res_vi = vec_vandc(vi, vbi); 878 // CHECK: xor <4 x i32> 879 // CHECK: and <4 x i32> 880 // CHECK-LE: xor <4 x i32> 881 // CHECK-LE: and <4 x i32> 882 883 res_vui = vec_vandc(vui, vui); 884 // CHECK: xor <4 x i32> 885 // CHECK: and <4 x i32> 886 // CHECK-LE: xor <4 x i32> 887 // CHECK-LE: and <4 x i32> 888 889 res_vui = vec_vandc(vbi, vui); 890 // CHECK: xor <4 x i32> 891 // CHECK: and <4 x i32> 892 // CHECK-LE: xor <4 x i32> 893 // CHECK-LE: and <4 x i32> 894 895 res_vui = vec_vandc(vui, vbi); 896 // CHECK: xor <4 x i32> 897 // CHECK: and <4 x i32> 898 // CHECK-LE: xor <4 x i32> 899 // CHECK-LE: and <4 x i32> 900 901 res_vf = vec_vandc(vf, vf); 902 // CHECK: xor <4 x i32> 903 // CHECK: and <4 x i32> 904 // CHECK-LE: xor <4 x i32> 905 // CHECK-LE: and <4 x i32> 906 907 res_vf = vec_vandc(vbi, vf); 908 // CHECK: xor <4 x i32> 909 // CHECK: and <4 x i32> 910 // CHECK-LE: xor <4 x i32> 911 // CHECK-LE: and <4 x i32> 912 913 res_vf = vec_vandc(vf, vbi); 914 // CHECK: xor <4 x i32> 915 // CHECK: and <4 x i32> 916 // CHECK-LE: xor <4 x i32> 917 // CHECK-LE: and <4 x i32> 918 919 } 920 921 // CHECK-LABEL: define{{.*}} void @test2 922 void test2() { 923 /* vec_avg */ 924 res_vsc = vec_avg(vsc, vsc); 925 // CHECK: @llvm.ppc.altivec.vavgsb 926 // CHECK-LE: @llvm.ppc.altivec.vavgsb 927 928 res_vuc = vec_avg(vuc, vuc); 929 // CHECK: @llvm.ppc.altivec.vavgub 930 // CHECK-LE: @llvm.ppc.altivec.vavgub 931 932 res_vs = vec_avg(vs, vs); 933 // CHECK: @llvm.ppc.altivec.vavgsh 934 // CHECK-LE: @llvm.ppc.altivec.vavgsh 935 936 res_vus = vec_avg(vus, vus); 937 // CHECK: @llvm.ppc.altivec.vavguh 938 // CHECK-LE: @llvm.ppc.altivec.vavguh 939 940 res_vi = vec_avg(vi, vi); 941 // CHECK: @llvm.ppc.altivec.vavgsw 942 // CHECK-LE: @llvm.ppc.altivec.vavgsw 943 944 res_vui = vec_avg(vui, vui); 945 // CHECK: @llvm.ppc.altivec.vavguw 946 // CHECK-LE: @llvm.ppc.altivec.vavguw 947 948 res_vsc = vec_vavgsb(vsc, vsc); 949 // CHECK: @llvm.ppc.altivec.vavgsb 950 // CHECK-LE: @llvm.ppc.altivec.vavgsb 951 952 res_vuc = vec_vavgub(vuc, vuc); 953 // CHECK: @llvm.ppc.altivec.vavgub 954 // CHECK-LE: @llvm.ppc.altivec.vavgub 955 956 res_vs = vec_vavgsh(vs, vs); 957 // CHECK: @llvm.ppc.altivec.vavgsh 958 // CHECK-LE: @llvm.ppc.altivec.vavgsh 959 960 res_vus = vec_vavguh(vus, vus); 961 // CHECK: @llvm.ppc.altivec.vavguh 962 // CHECK-LE: @llvm.ppc.altivec.vavguh 963 964 res_vi = vec_vavgsw(vi, vi); 965 // CHECK: @llvm.ppc.altivec.vavgsw 966 // CHECK-LE: @llvm.ppc.altivec.vavgsw 967 968 res_vui = vec_vavguw(vui, vui); 969 // CHECK: @llvm.ppc.altivec.vavguw 970 // CHECK-LE: @llvm.ppc.altivec.vavguw 971 972 /* vec_ceil */ 973 res_vf = vec_ceil(vf); 974 // CHECK: @llvm.ppc.altivec.vrfip 975 // CHECK-LE: @llvm.ppc.altivec.vrfip 976 977 res_vf = vec_vrfip(vf); 978 // CHECK: @llvm.ppc.altivec.vrfip 979 // CHECK-LE: @llvm.ppc.altivec.vrfip 980 981 /* vec_cmpb */ 982 res_vi = vec_cmpb(vf, vf); 983 // CHECK: @llvm.ppc.altivec.vcmpbfp 984 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp 985 986 res_vi = vec_vcmpbfp(vf, vf); 987 // CHECK: @llvm.ppc.altivec.vcmpbfp 988 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp 989 990 /* vec_cmpeq */ 991 res_vbc = vec_cmpeq(vsc, vsc); 992 // CHECK: @llvm.ppc.altivec.vcmpequb 993 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 994 995 res_vbc = vec_cmpeq(vuc, vuc); 996 // CHECK: @llvm.ppc.altivec.vcmpequb 997 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 998 999 res_vbc = vec_cmpeq(vbc, vbc); 1000 // CHECK: @llvm.ppc.altivec.vcmpequb 1001 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 1002 1003 res_vbc = vec_cmpeq(vbc, vbc); 1004 // CHECK: @llvm.ppc.altivec.vcmpequb 1005 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 1006 1007 res_vbs = vec_cmpeq(vs, vs); 1008 // CHECK: @llvm.ppc.altivec.vcmpequh 1009 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1010 1011 res_vbs = vec_cmpeq(vus, vus); 1012 // CHECK: @llvm.ppc.altivec.vcmpequh 1013 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1014 1015 res_vbs = vec_cmpeq(vbs, vbs); 1016 // CHECK: @llvm.ppc.altivec.vcmpequh 1017 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1018 1019 res_vbs = vec_cmpeq(vbs, vbs); 1020 // CHECK: @llvm.ppc.altivec.vcmpequh 1021 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1022 1023 res_vbi = vec_cmpeq(vi, vi); 1024 // CHECK: @llvm.ppc.altivec.vcmpequw 1025 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1026 1027 res_vbi = vec_cmpeq(vui, vui); 1028 // CHECK: @llvm.ppc.altivec.vcmpequw 1029 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1030 1031 res_vbi = vec_cmpeq(vbi, vbi); 1032 // CHECK: @llvm.ppc.altivec.vcmpequw 1033 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1034 1035 res_vbi = vec_cmpeq(vbi, vbi); 1036 // CHECK: @llvm.ppc.altivec.vcmpequw 1037 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1038 1039 res_vbi = vec_cmpeq(vf, vf); 1040 // CHECK: @llvm.ppc.altivec.vcmpeqfp 1041 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp 1042 1043 /* vec_cmpne */ 1044 res_vbc = vec_cmpne(vsc, vsc); 1045 // CHECK: @llvm.ppc.altivec.vcmpequb 1046 // CHECK: xor 1047 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 1048 // CHECK-LE: xor 1049 1050 res_vbc = vec_cmpne(vuc, vuc); 1051 // CHECK: @llvm.ppc.altivec.vcmpequb 1052 // CHECK: xor 1053 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 1054 // CHECK-LE: xor 1055 1056 res_vbc = vec_cmpne(vbc, vbc); 1057 // CHECK: @llvm.ppc.altivec.vcmpequb 1058 // CHECK: xor 1059 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 1060 // CHECK-LE: xor 1061 1062 res_vbc = vec_cmpne(vbc, vbc); 1063 // CHECK: @llvm.ppc.altivec.vcmpequb 1064 // CHECK: xor 1065 // CHECK-LE: @llvm.ppc.altivec.vcmpequb 1066 // CHECK-LE: xor 1067 1068 res_vbs = vec_cmpne(vs, vs); 1069 // CHECK: @llvm.ppc.altivec.vcmpequh 1070 // CHECK: xor 1071 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1072 // CHECK-LE: xor 1073 1074 res_vbs = vec_cmpne(vus, vus); 1075 // CHECK: @llvm.ppc.altivec.vcmpequh 1076 // CHECK: xor 1077 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1078 // CHECK-LE: xor 1079 1080 res_vbs = vec_cmpne(vbs, vbs); 1081 // CHECK: @llvm.ppc.altivec.vcmpequh 1082 // CHECK: xor 1083 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1084 // CHECK-LE: xor 1085 1086 res_vbs = vec_cmpne(vbs, vbs); 1087 // CHECK: @llvm.ppc.altivec.vcmpequh 1088 // CHECK: xor 1089 // CHECK-LE: @llvm.ppc.altivec.vcmpequh 1090 // CHECK-LE: xor 1091 1092 res_vbi = vec_cmpne(vi, vi); 1093 // CHECK: @llvm.ppc.altivec.vcmpequw 1094 // CHECK: xor 1095 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1096 // CHECK-LE: xor 1097 1098 res_vbi = vec_cmpne(vui, vui); 1099 // CHECK: @llvm.ppc.altivec.vcmpequw 1100 // CHECK: xor 1101 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1102 // CHECK-LE: xor 1103 1104 res_vbi = vec_cmpne(vbi, vbi); 1105 // CHECK: @llvm.ppc.altivec.vcmpequw 1106 // CHECK: xor 1107 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1108 // CHECK-LE: xor 1109 1110 res_vbi = vec_cmpne(vbi, vbi); 1111 // CHECK: @llvm.ppc.altivec.vcmpequw 1112 // CHECK: xor 1113 // CHECK-LE: @llvm.ppc.altivec.vcmpequw 1114 // CHECK-LE: xor 1115 1116 res_vbi = vec_cmpne(vf, vf); 1117 // CHECK: @llvm.ppc.altivec.vcmpeqfp 1118 // CHECK: xor 1119 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp 1120 // CHECK-LE: xor 1121 1122 /* vec_cmpge */ 1123 res_vbc = vec_cmpge(vsc, vsc); 1124 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1125 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1126 1127 res_vbc = vec_cmpge(vuc, vuc); 1128 // CHECK: @llvm.ppc.altivec.vcmpgtub 1129 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1130 1131 res_vbs = vec_cmpge(vs, vs); 1132 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1133 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1134 1135 res_vbs = vec_cmpge(vus, vus); 1136 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1137 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1138 1139 res_vbi = vec_cmpge(vi, vi); 1140 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1141 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1142 1143 res_vbi = vec_cmpge(vui, vui); 1144 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1145 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1146 1147 res_vbi = vec_cmpge(vf, vf); 1148 // CHECK: @llvm.ppc.altivec.vcmpgefp 1149 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp 1150 1151 res_vbi = vec_vcmpgefp(vf, vf); 1152 // CHECK: @llvm.ppc.altivec.vcmpgefp 1153 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp 1154 } 1155 1156 // CHECK-LABEL: define{{.*}} void @test5 1157 void test5() { 1158 1159 /* vec_cmpgt */ 1160 res_vbc = vec_cmpgt(vsc, vsc); 1161 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1162 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1163 1164 res_vbc = vec_cmpgt(vuc, vuc); 1165 // CHECK: @llvm.ppc.altivec.vcmpgtub 1166 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1167 1168 res_vbs = vec_cmpgt(vs, vs); 1169 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1170 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1171 1172 res_vbs = vec_cmpgt(vus, vus); 1173 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1174 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1175 1176 res_vbi = vec_cmpgt(vi, vi); 1177 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1178 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1179 1180 res_vbi = vec_cmpgt(vui, vui); 1181 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1182 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1183 1184 res_vbi = vec_cmpgt(vf, vf); 1185 // CHECK: @llvm.ppc.altivec.vcmpgtfp 1186 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp 1187 1188 res_vbc = vec_vcmpgtsb(vsc, vsc); 1189 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1190 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1191 1192 res_vbc = vec_vcmpgtub(vuc, vuc); 1193 // CHECK: @llvm.ppc.altivec.vcmpgtub 1194 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1195 1196 res_vbs = vec_vcmpgtsh(vs, vs); 1197 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1198 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1199 1200 res_vbs = vec_vcmpgtuh(vus, vus); 1201 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1202 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1203 1204 res_vbi = vec_vcmpgtsw(vi, vi); 1205 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1206 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1207 1208 res_vbi = vec_vcmpgtuw(vui, vui); 1209 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1210 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1211 1212 res_vbi = vec_vcmpgtfp(vf, vf); 1213 // CHECK: @llvm.ppc.altivec.vcmpgtfp 1214 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp 1215 1216 /* vec_cmple */ 1217 res_vbc = vec_cmple(vsc, vsc); 1218 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1219 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1220 1221 res_vbc = vec_cmple(vuc, vuc); 1222 // CHECK: @llvm.ppc.altivec.vcmpgtub 1223 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1224 1225 res_vbs = vec_cmple(vs, vs); 1226 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1227 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1228 1229 res_vbs = vec_cmple(vus, vus); 1230 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1231 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1232 1233 res_vbi = vec_cmple(vi, vi); 1234 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1235 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1236 1237 res_vbi = vec_cmple(vui, vui); 1238 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1239 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1240 1241 res_vbi = vec_cmple(vf, vf); 1242 // CHECK: @llvm.ppc.altivec.vcmpgefp 1243 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp 1244 } 1245 1246 // CHECK-LABEL: define{{.*}} void @test6 1247 void test6() { 1248 /* vec_cmplt */ 1249 res_vbc = vec_cmplt(vsc, vsc); 1250 // CHECK: @llvm.ppc.altivec.vcmpgtsb 1251 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb 1252 1253 res_vbc = vec_cmplt(vuc, vuc); 1254 // CHECK: @llvm.ppc.altivec.vcmpgtub 1255 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub 1256 1257 res_vbs = vec_cmplt(vs, vs); 1258 // CHECK: @llvm.ppc.altivec.vcmpgtsh 1259 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh 1260 1261 res_vbs = vec_cmplt(vus, vus); 1262 // CHECK: @llvm.ppc.altivec.vcmpgtuh 1263 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh 1264 1265 res_vbi = vec_cmplt(vi, vi); 1266 // CHECK: @llvm.ppc.altivec.vcmpgtsw 1267 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw 1268 1269 res_vbi = vec_cmplt(vui, vui); 1270 // CHECK: @llvm.ppc.altivec.vcmpgtuw 1271 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw 1272 1273 res_vbi = vec_cmplt(vf, vf); 1274 // CHECK: @llvm.ppc.altivec.vcmpgtfp 1275 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp 1276 1277 /* vec_ctf */ 1278 res_vf = vec_ctf(vi, 0); 1279 // CHECK: @llvm.ppc.altivec.vcfsx 1280 // CHECK-LE: @llvm.ppc.altivec.vcfsx 1281 1282 res_vf = vec_ctf(vui, 0); 1283 // CHECK: @llvm.ppc.altivec.vcfux 1284 // CHECK-LE: @llvm.ppc.altivec.vcfux 1285 1286 res_vf = vec_vcfsx(vi, 0); 1287 // CHECK: @llvm.ppc.altivec.vcfsx 1288 // CHECK-LE: @llvm.ppc.altivec.vcfsx 1289 1290 res_vf = vec_vcfux(vui, 0); 1291 // CHECK: @llvm.ppc.altivec.vcfux 1292 // CHECK-LE: @llvm.ppc.altivec.vcfux 1293 1294 /* vec_cts */ 1295 res_vi = vec_cts(vf, 0); 1296 // CHECK: @llvm.ppc.altivec.vctsxs 1297 // CHECK-LE: @llvm.ppc.altivec.vctsxs 1298 1299 res_vi = vec_vctsxs(vf, 0); 1300 // CHECK: @llvm.ppc.altivec.vctsxs 1301 // CHECK-LE: @llvm.ppc.altivec.vctsxs 1302 1303 /* vec_ctu */ 1304 res_vui = vec_ctu(vf, 0); 1305 // CHECK: @llvm.ppc.altivec.vctuxs 1306 // CHECK-LE: @llvm.ppc.altivec.vctuxs 1307 1308 res_vui = vec_vctuxs(vf, 0); 1309 // CHECK: @llvm.ppc.altivec.vctuxs 1310 // CHECK-LE: @llvm.ppc.altivec.vctuxs 1311 1312 res_vi = vec_signed(vf); 1313 // CHECK: fptosi <4 x float> 1314 // CHECK-LE: fptosi <4 x float> 1315 1316 res_vui = vec_unsigned(vf); 1317 // CHECK: fptoui <4 x float> 1318 // CHECK-LE: fptoui <4 x float> 1319 1320 res_vf = vec_float(vi); 1321 // CHECK: sitofp <4 x i32> 1322 // CHECK-LE: sitofp <4 x i32> 1323 1324 res_vf = vec_float(vui); 1325 // CHECK: uitofp <4 x i32> 1326 // CHECK-LE: uitofp <4 x i32> 1327 1328 /* vec_div */ 1329 res_vsc = vec_div(vsc, vsc); 1330 // CHECK: sdiv <16 x i8> 1331 // CHECK-LE: sdiv <16 x i8> 1332 1333 res_vuc = vec_div(vuc, vuc); 1334 // CHECK: udiv <16 x i8> 1335 // CHECK-LE: udiv <16 x i8> 1336 1337 res_vs = vec_div(vs, vs); 1338 // CHECK: sdiv <8 x i16> 1339 // CHECK-LE: sdiv <8 x i16> 1340 1341 res_vus = vec_div(vus, vus); 1342 // CHECK: udiv <8 x i16> 1343 // CHECK-LE: udiv <8 x i16> 1344 1345 res_vi = vec_div(vi, vi); 1346 // CHECK: sdiv <4 x i32> 1347 // CHECK-LE: sdiv <4 x i32> 1348 1349 res_vui = vec_div(vui, vui); 1350 // CHECK: udiv <4 x i32> 1351 // CHECK-LE: udiv <4 x i32> 1352 1353 /* vec_dss */ 1354 vec_dss(0); 1355 // CHECK: @llvm.ppc.altivec.dss 1356 // CHECK-LE: @llvm.ppc.altivec.dss 1357 1358 /* vec_dssall */ 1359 vec_dssall(); 1360 // CHECK: @llvm.ppc.altivec.dssall 1361 // CHECK-LE: @llvm.ppc.altivec.dssall 1362 1363 /* vec_dst */ 1364 vec_dst(&vsc, 0, 0); 1365 // CHECK: @llvm.ppc.altivec.dst 1366 // CHECK-LE: @llvm.ppc.altivec.dst 1367 1368 /* vec_dstst */ 1369 vec_dstst(&vs, 0, 0); 1370 // CHECK: @llvm.ppc.altivec.dstst 1371 // CHECK-LE: @llvm.ppc.altivec.dstst 1372 1373 /* vec_dststt */ 1374 vec_dststt(¶m_i, 0, 0); 1375 // CHECK: @llvm.ppc.altivec.dststt 1376 // CHECK-LE: @llvm.ppc.altivec.dststt 1377 1378 /* vec_dstt */ 1379 vec_dstt(&vf, 0, 0); 1380 // CHECK: @llvm.ppc.altivec.dstt 1381 // CHECK-LE: @llvm.ppc.altivec.dstt 1382 1383 /* vec_expte */ 1384 res_vf = vec_expte(vf); 1385 // CHECK: @llvm.ppc.altivec.vexptefp 1386 // CHECK-LE: @llvm.ppc.altivec.vexptefp 1387 1388 res_vf = vec_vexptefp(vf); 1389 // CHECK: @llvm.ppc.altivec.vexptefp 1390 // CHECK-LE: @llvm.ppc.altivec.vexptefp 1391 1392 /* vec_floor */ 1393 res_vf = vec_floor(vf); 1394 // CHECK: @llvm.ppc.altivec.vrfim 1395 // CHECK-LE: @llvm.ppc.altivec.vrfim 1396 1397 res_vf = vec_vrfim(vf); 1398 // CHECK: @llvm.ppc.altivec.vrfim 1399 // CHECK-LE: @llvm.ppc.altivec.vrfim 1400 1401 /* vec_ld */ 1402 res_vsc = vec_ld(0, &vsc); 1403 // CHECK: @llvm.ppc.altivec.lvx 1404 // CHECK-LE: @llvm.ppc.altivec.lvx 1405 1406 res_vsc = vec_ld(0, param_sc_ld); 1407 // CHECK: @llvm.ppc.altivec.lvx 1408 // CHECK-LE: @llvm.ppc.altivec.lvx 1409 1410 res_vuc = vec_ld(0, &vuc); 1411 // CHECK: @llvm.ppc.altivec.lvx 1412 // CHECK-LE: @llvm.ppc.altivec.lvx 1413 1414 res_vuc = vec_ld(0, param_uc_ld); 1415 // CHECK: @llvm.ppc.altivec.lvx 1416 // CHECK-LE: @llvm.ppc.altivec.lvx 1417 1418 res_vbc = vec_ld(0, &vbc); 1419 // CHECK: @llvm.ppc.altivec.lvx 1420 // CHECK-LE: @llvm.ppc.altivec.lvx 1421 1422 res_vs = vec_ld(0, &vs); 1423 // CHECK: @llvm.ppc.altivec.lvx 1424 // CHECK-LE: @llvm.ppc.altivec.lvx 1425 1426 res_vs = vec_ld(0, param_s_ld); 1427 // CHECK: @llvm.ppc.altivec.lvx 1428 // CHECK-LE: @llvm.ppc.altivec.lvx 1429 1430 res_vus = vec_ld(0, &vus); 1431 // CHECK: @llvm.ppc.altivec.lvx 1432 // CHECK-LE: @llvm.ppc.altivec.lvx 1433 1434 res_vus = vec_ld(0, param_us_ld); 1435 // CHECK: @llvm.ppc.altivec.lvx 1436 // CHECK-LE: @llvm.ppc.altivec.lvx 1437 1438 res_vbs = vec_ld(0, &vbs); 1439 // CHECK: @llvm.ppc.altivec.lvx 1440 // CHECK-LE: @llvm.ppc.altivec.lvx 1441 1442 res_vp = vec_ld(0, &vp); 1443 // CHECK: @llvm.ppc.altivec.lvx 1444 // CHECK-LE: @llvm.ppc.altivec.lvx 1445 1446 res_vi = vec_ld(0, &vi); 1447 // CHECK: @llvm.ppc.altivec.lvx 1448 // CHECK-LE: @llvm.ppc.altivec.lvx 1449 1450 res_vi = vec_ld(0, param_i_ld); 1451 // CHECK: @llvm.ppc.altivec.lvx 1452 // CHECK-LE: @llvm.ppc.altivec.lvx 1453 1454 res_vui = vec_ld(0, &vui); 1455 // CHECK: @llvm.ppc.altivec.lvx 1456 // CHECK-LE: @llvm.ppc.altivec.lvx 1457 1458 res_vui = vec_ld(0, param_ui_ld); 1459 // CHECK: @llvm.ppc.altivec.lvx 1460 // CHECK-LE: @llvm.ppc.altivec.lvx 1461 1462 res_vbi = vec_ld(0, &vbi); 1463 // CHECK: @llvm.ppc.altivec.lvx 1464 // CHECK-LE: @llvm.ppc.altivec.lvx 1465 1466 res_vf = vec_ld(0, &vf); 1467 // CHECK: @llvm.ppc.altivec.lvx 1468 // CHECK-LE: @llvm.ppc.altivec.lvx 1469 1470 res_vf = vec_ld(0, param_f_ld); 1471 // CHECK: @llvm.ppc.altivec.lvx 1472 // CHECK-LE: @llvm.ppc.altivec.lvx 1473 1474 res_vsc = vec_lvx(0, &vsc); 1475 // CHECK: @llvm.ppc.altivec.lvx 1476 // CHECK-LE: @llvm.ppc.altivec.lvx 1477 1478 res_vsc = vec_lvx(0, param_sc_ld); 1479 // CHECK: @llvm.ppc.altivec.lvx 1480 // CHECK-LE: @llvm.ppc.altivec.lvx 1481 1482 res_vuc = vec_lvx(0, &vuc); 1483 // CHECK: @llvm.ppc.altivec.lvx 1484 // CHECK-LE: @llvm.ppc.altivec.lvx 1485 1486 res_vuc = vec_lvx(0, param_uc_ld); 1487 // CHECK: @llvm.ppc.altivec.lvx 1488 // CHECK-LE: @llvm.ppc.altivec.lvx 1489 1490 res_vbc = vec_lvx(0, &vbc); 1491 // CHECK: @llvm.ppc.altivec.lvx 1492 // CHECK-LE: @llvm.ppc.altivec.lvx 1493 1494 res_vs = vec_lvx(0, &vs); 1495 // CHECK: @llvm.ppc.altivec.lvx 1496 // CHECK-LE: @llvm.ppc.altivec.lvx 1497 1498 res_vs = vec_lvx(0, param_s_ld); 1499 // CHECK: @llvm.ppc.altivec.lvx 1500 // CHECK-LE: @llvm.ppc.altivec.lvx 1501 1502 res_vus = vec_lvx(0, &vus); 1503 // CHECK: @llvm.ppc.altivec.lvx 1504 // CHECK-LE: @llvm.ppc.altivec.lvx 1505 1506 res_vus = vec_lvx(0, param_us_ld); 1507 // CHECK: @llvm.ppc.altivec.lvx 1508 // CHECK-LE: @llvm.ppc.altivec.lvx 1509 1510 res_vbs = vec_lvx(0, &vbs); 1511 // CHECK: @llvm.ppc.altivec.lvx 1512 // CHECK-LE: @llvm.ppc.altivec.lvx 1513 1514 res_vp = vec_lvx(0, &vp); 1515 // CHECK: @llvm.ppc.altivec.lvx 1516 // CHECK-LE: @llvm.ppc.altivec.lvx 1517 1518 res_vi = vec_lvx(0, &vi); 1519 // CHECK: @llvm.ppc.altivec.lvx 1520 // CHECK-LE: @llvm.ppc.altivec.lvx 1521 1522 res_vi = vec_lvx(0, param_i_ld); 1523 // CHECK: @llvm.ppc.altivec.lvx 1524 // CHECK-LE: @llvm.ppc.altivec.lvx 1525 1526 res_vui = vec_lvx(0, &vui); 1527 // CHECK: @llvm.ppc.altivec.lvx 1528 // CHECK-LE: @llvm.ppc.altivec.lvx 1529 1530 res_vui = vec_lvx(0, param_ui_ld); 1531 // CHECK: @llvm.ppc.altivec.lvx 1532 // CHECK-LE: @llvm.ppc.altivec.lvx 1533 1534 res_vbi = vec_lvx(0, &vbi); 1535 // CHECK: @llvm.ppc.altivec.lvx 1536 // CHECK-LE: @llvm.ppc.altivec.lvx 1537 1538 res_vf = vec_lvx(0, &vf); 1539 // CHECK: @llvm.ppc.altivec.lvx 1540 // CHECK-LE: @llvm.ppc.altivec.lvx 1541 1542 res_vf = vec_lvx(0, param_f_ld); 1543 // CHECK: @llvm.ppc.altivec.lvx 1544 // CHECK-LE: @llvm.ppc.altivec.lvx 1545 1546 /* vec_lde */ 1547 res_vsc = vec_lde(0, param_sc_ld); 1548 // CHECK: @llvm.ppc.altivec.lvebx 1549 // CHECK-LE: @llvm.ppc.altivec.lvebx 1550 1551 res_vuc = vec_lde(0, param_uc_ld); 1552 // CHECK: @llvm.ppc.altivec.lvebx 1553 // CHECK-LE: @llvm.ppc.altivec.lvebx 1554 1555 res_vs = vec_lde(0, param_s_ld); 1556 // CHECK: @llvm.ppc.altivec.lvehx 1557 // CHECK-LE: @llvm.ppc.altivec.lvehx 1558 1559 res_vus = vec_lde(0, param_us_ld); 1560 // CHECK: @llvm.ppc.altivec.lvehx 1561 // CHECK-LE: @llvm.ppc.altivec.lvehx 1562 1563 res_vi = vec_lde(0, param_i_ld); 1564 // CHECK: @llvm.ppc.altivec.lvewx 1565 // CHECK-LE: @llvm.ppc.altivec.lvewx 1566 1567 res_vui = vec_lde(0, param_ui_ld); 1568 // CHECK: @llvm.ppc.altivec.lvewx 1569 // CHECK-LE: @llvm.ppc.altivec.lvewx 1570 1571 res_vf = vec_lde(0, param_f_ld); 1572 // CHECK: @llvm.ppc.altivec.lvewx 1573 // CHECK-LE: @llvm.ppc.altivec.lvewx 1574 1575 res_vsc = vec_lvebx(0, param_sc_ld); 1576 // CHECK: @llvm.ppc.altivec.lvebx 1577 // CHECK-LE: @llvm.ppc.altivec.lvebx 1578 1579 res_vuc = vec_lvebx(0, param_uc_ld); 1580 // CHECK: @llvm.ppc.altivec.lvebx 1581 // CHECK-LE: @llvm.ppc.altivec.lvebx 1582 1583 res_vs = vec_lvehx(0, param_s_ld); 1584 // CHECK: @llvm.ppc.altivec.lvehx 1585 // CHECK-LE: @llvm.ppc.altivec.lvehx 1586 1587 res_vus = vec_lvehx(0, param_us_ld); 1588 // CHECK: @llvm.ppc.altivec.lvehx 1589 // CHECK-LE: @llvm.ppc.altivec.lvehx 1590 1591 res_vi = vec_lvewx(0, param_i_ld); 1592 // CHECK: @llvm.ppc.altivec.lvewx 1593 // CHECK-LE: @llvm.ppc.altivec.lvewx 1594 1595 res_vui = vec_lvewx(0, param_ui_ld); 1596 // CHECK: @llvm.ppc.altivec.lvewx 1597 // CHECK-LE: @llvm.ppc.altivec.lvewx 1598 1599 res_vf = vec_lvewx(0, param_f_ld); 1600 // CHECK: @llvm.ppc.altivec.lvewx 1601 // CHECK-LE: @llvm.ppc.altivec.lvewx 1602 1603 /* vec_ldl */ 1604 res_vsc = vec_ldl(0, &vsc); 1605 // CHECK: @llvm.ppc.altivec.lvxl 1606 // CHECK-LE: @llvm.ppc.altivec.lvxl 1607 1608 res_vsc = vec_ldl(0, param_sc_ld); 1609 // CHECK: @llvm.ppc.altivec.lvxl 1610 // CHECK-LE: @llvm.ppc.altivec.lvxl 1611 1612 res_vuc = vec_ldl(0, &vuc); 1613 // CHECK: @llvm.ppc.altivec.lvxl 1614 // CHECK-LE: @llvm.ppc.altivec.lvxl 1615 1616 res_vuc = vec_ldl(0, param_uc_ld); 1617 // CHECK: @llvm.ppc.altivec.lvxl 1618 // CHECK-LE: @llvm.ppc.altivec.lvxl 1619 1620 res_vbc = vec_ldl(0, &vbc); 1621 // CHECK: @llvm.ppc.altivec.lvxl 1622 // CHECK-LE: @llvm.ppc.altivec.lvxl 1623 1624 res_vs = vec_ldl(0, &vs); 1625 // CHECK: @llvm.ppc.altivec.lvxl 1626 // CHECK-LE: @llvm.ppc.altivec.lvxl 1627 1628 res_vs = vec_ldl(0, param_s_ld); 1629 // CHECK: @llvm.ppc.altivec.lvxl 1630 // CHECK-LE: @llvm.ppc.altivec.lvxl 1631 1632 res_vus = vec_ldl(0, &vus); 1633 // CHECK: @llvm.ppc.altivec.lvxl 1634 // CHECK-LE: @llvm.ppc.altivec.lvxl 1635 1636 res_vus = vec_ldl(0, param_us_ld); 1637 // CHECK: @llvm.ppc.altivec.lvxl 1638 // CHECK-LE: @llvm.ppc.altivec.lvxl 1639 1640 res_vbs = vec_ldl(0, &vbs); 1641 // CHECK: @llvm.ppc.altivec.lvxl 1642 // CHECK-LE: @llvm.ppc.altivec.lvxl 1643 1644 res_vp = vec_ldl(0, &vp); 1645 // CHECK: @llvm.ppc.altivec.lvxl 1646 // CHECK-LE: @llvm.ppc.altivec.lvxl 1647 1648 res_vi = vec_ldl(0, &vi); 1649 // CHECK: @llvm.ppc.altivec.lvxl 1650 // CHECK-LE: @llvm.ppc.altivec.lvxl 1651 1652 res_vi = vec_ldl(0, param_i_ld); 1653 // CHECK: @llvm.ppc.altivec.lvxl 1654 // CHECK-LE: @llvm.ppc.altivec.lvxl 1655 1656 res_vui = vec_ldl(0, &vui); 1657 // CHECK: @llvm.ppc.altivec.lvxl 1658 // CHECK-LE: @llvm.ppc.altivec.lvxl 1659 1660 res_vui = vec_ldl(0, param_ui_ld); 1661 // CHECK: @llvm.ppc.altivec.lvxl 1662 // CHECK-LE: @llvm.ppc.altivec.lvxl 1663 1664 res_vbi = vec_ldl(0, &vbi); 1665 // CHECK: @llvm.ppc.altivec.lvxl 1666 // CHECK-LE: @llvm.ppc.altivec.lvxl 1667 1668 res_vf = vec_ldl(0, &vf); 1669 // CHECK: @llvm.ppc.altivec.lvxl 1670 // CHECK-LE: @llvm.ppc.altivec.lvxl 1671 1672 res_vf = vec_ldl(0, param_f_ld); 1673 // CHECK: @llvm.ppc.altivec.lvxl 1674 // CHECK-LE: @llvm.ppc.altivec.lvxl 1675 1676 res_vsc = vec_lvxl(0, &vsc); 1677 // CHECK: @llvm.ppc.altivec.lvxl 1678 // CHECK-LE: @llvm.ppc.altivec.lvxl 1679 1680 res_vsc = vec_lvxl(0, param_sc_ld); 1681 // CHECK: @llvm.ppc.altivec.lvxl 1682 // CHECK-LE: @llvm.ppc.altivec.lvxl 1683 1684 res_vuc = vec_lvxl(0, &vuc); 1685 // CHECK: @llvm.ppc.altivec.lvxl 1686 // CHECK-LE: @llvm.ppc.altivec.lvxl 1687 1688 res_vbc = vec_lvxl(0, &vbc); 1689 // CHECK: @llvm.ppc.altivec.lvxl 1690 // CHECK-LE: @llvm.ppc.altivec.lvxl 1691 1692 res_vuc = vec_lvxl(0, param_uc_ld); 1693 // CHECK: @llvm.ppc.altivec.lvxl 1694 // CHECK-LE: @llvm.ppc.altivec.lvxl 1695 1696 res_vs = vec_lvxl(0, &vs); 1697 // CHECK: @llvm.ppc.altivec.lvxl 1698 // CHECK-LE: @llvm.ppc.altivec.lvxl 1699 1700 res_vs = vec_lvxl(0, param_s_ld); 1701 // CHECK: @llvm.ppc.altivec.lvxl 1702 // CHECK-LE: @llvm.ppc.altivec.lvxl 1703 1704 res_vus = vec_lvxl(0, &vus); 1705 // CHECK: @llvm.ppc.altivec.lvxl 1706 // CHECK-LE: @llvm.ppc.altivec.lvxl 1707 1708 res_vus = vec_lvxl(0, param_us_ld); 1709 // CHECK: @llvm.ppc.altivec.lvxl 1710 // CHECK-LE: @llvm.ppc.altivec.lvxl 1711 1712 res_vbs = vec_lvxl(0, &vbs); 1713 // CHECK: @llvm.ppc.altivec.lvxl 1714 // CHECK-LE: @llvm.ppc.altivec.lvxl 1715 1716 res_vp = vec_lvxl(0, &vp); 1717 // CHECK: @llvm.ppc.altivec.lvxl 1718 // CHECK-LE: @llvm.ppc.altivec.lvxl 1719 1720 res_vi = vec_lvxl(0, &vi); 1721 // CHECK: @llvm.ppc.altivec.lvxl 1722 // CHECK-LE: @llvm.ppc.altivec.lvxl 1723 1724 res_vi = vec_lvxl(0, param_i_ld); 1725 // CHECK: @llvm.ppc.altivec.lvxl 1726 // CHECK-LE: @llvm.ppc.altivec.lvxl 1727 1728 res_vui = vec_lvxl(0, &vui); 1729 // CHECK: @llvm.ppc.altivec.lvxl 1730 // CHECK-LE: @llvm.ppc.altivec.lvxl 1731 1732 res_vui = vec_lvxl(0, param_ui_ld); 1733 // CHECK: @llvm.ppc.altivec.lvxl 1734 // CHECK-LE: @llvm.ppc.altivec.lvxl 1735 1736 res_vbi = vec_lvxl(0, &vbi); 1737 // CHECK: @llvm.ppc.altivec.lvxl 1738 // CHECK-LE: @llvm.ppc.altivec.lvxl 1739 1740 res_vf = vec_lvxl(0, &vf); 1741 // CHECK: @llvm.ppc.altivec.lvxl 1742 // CHECK-LE: @llvm.ppc.altivec.lvxl 1743 1744 res_vf = vec_lvxl(0, param_f_ld); 1745 // CHECK: @llvm.ppc.altivec.lvxl 1746 // CHECK-LE: @llvm.ppc.altivec.lvxl 1747 1748 /* vec_loge */ 1749 res_vf = vec_loge(vf); 1750 // CHECK: @llvm.ppc.altivec.vlogefp 1751 // CHECK-LE: @llvm.ppc.altivec.vlogefp 1752 1753 res_vf = vec_vlogefp(vf); 1754 // CHECK: @llvm.ppc.altivec.vlogefp 1755 // CHECK-LE: @llvm.ppc.altivec.vlogefp 1756 1757 /* vec_lvsl */ 1758 res_vuc = vec_lvsl(0, param_i_ld); 1759 // CHECK: @llvm.ppc.altivec.lvsl 1760 // CHECK-LE: @llvm.ppc.altivec.lvsl 1761 1762 /* vec_lvsr */ 1763 res_vuc = vec_lvsr(0, param_i_ld); 1764 // CHECK: @llvm.ppc.altivec.lvsr 1765 // CHECK-LE: @llvm.ppc.altivec.lvsr 1766 1767 /* vec_madd */ 1768 res_vf =vec_madd(vf, vf, vf); 1769 // CHECK: @llvm.ppc.altivec.vmaddfp 1770 // CHECK-LE: @llvm.ppc.altivec.vmaddfp 1771 1772 res_vf = vec_vmaddfp(vf, vf, vf); 1773 // CHECK: @llvm.ppc.altivec.vmaddfp 1774 // CHECK-LE: @llvm.ppc.altivec.vmaddfp 1775 1776 /* vec_madds */ 1777 res_vs = vec_madds(vs, vs, vs); 1778 // CHECK: @llvm.ppc.altivec.vmhaddshs 1779 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs 1780 1781 res_vs = vec_vmhaddshs(vs, vs, vs); 1782 // CHECK: @llvm.ppc.altivec.vmhaddshs 1783 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs 1784 1785 /* vec_max */ 1786 res_vsc = vec_max(vsc, vsc); 1787 // CHECK: @llvm.ppc.altivec.vmaxsb 1788 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1789 1790 res_vsc = vec_max(vbc, vsc); 1791 // CHECK: @llvm.ppc.altivec.vmaxsb 1792 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1793 1794 res_vsc = vec_max(vsc, vbc); 1795 // CHECK: @llvm.ppc.altivec.vmaxsb 1796 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1797 1798 res_vuc = vec_max(vuc, vuc); 1799 // CHECK: @llvm.ppc.altivec.vmaxub 1800 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1801 1802 res_vuc = vec_max(vbc, vuc); 1803 // CHECK: @llvm.ppc.altivec.vmaxub 1804 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1805 1806 res_vuc = vec_max(vuc, vbc); 1807 // CHECK: @llvm.ppc.altivec.vmaxub 1808 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1809 1810 res_vs = vec_max(vs, vs); 1811 // CHECK: @llvm.ppc.altivec.vmaxsh 1812 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1813 1814 res_vs = vec_max(vbs, vs); 1815 // CHECK: @llvm.ppc.altivec.vmaxsh 1816 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1817 1818 res_vs = vec_max(vs, vbs); 1819 // CHECK: @llvm.ppc.altivec.vmaxsh 1820 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1821 1822 res_vus = vec_max(vus, vus); 1823 // CHECK: @llvm.ppc.altivec.vmaxuh 1824 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1825 1826 res_vus = vec_max(vbs, vus); 1827 // CHECK: @llvm.ppc.altivec.vmaxuh 1828 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1829 1830 res_vus = vec_max(vus, vbs); 1831 // CHECK: @llvm.ppc.altivec.vmaxuh 1832 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1833 1834 res_vi = vec_max(vi, vi); 1835 // CHECK: @llvm.ppc.altivec.vmaxsw 1836 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1837 1838 res_vi = vec_max(vbi, vi); 1839 // CHECK: @llvm.ppc.altivec.vmaxsw 1840 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1841 1842 res_vi = vec_max(vi, vbi); 1843 // CHECK: @llvm.ppc.altivec.vmaxsw 1844 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1845 1846 res_vui = vec_max(vui, vui); 1847 // CHECK: @llvm.ppc.altivec.vmaxuw 1848 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1849 1850 res_vui = vec_max(vbi, vui); 1851 // CHECK: @llvm.ppc.altivec.vmaxuw 1852 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1853 1854 res_vui = vec_max(vui, vbi); 1855 // CHECK: @llvm.ppc.altivec.vmaxuw 1856 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1857 1858 res_vf = vec_max(vf, vf); 1859 // CHECK: @llvm.ppc.altivec.vmaxfp 1860 // CHECK-LE: @llvm.ppc.altivec.vmaxfp 1861 1862 res_vsc = vec_vmaxsb(vsc, vsc); 1863 // CHECK: @llvm.ppc.altivec.vmaxsb 1864 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1865 1866 res_vsc = vec_vmaxsb(vbc, vsc); 1867 // CHECK: @llvm.ppc.altivec.vmaxsb 1868 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1869 1870 res_vsc = vec_vmaxsb(vsc, vbc); 1871 // CHECK: @llvm.ppc.altivec.vmaxsb 1872 // CHECK-LE: @llvm.ppc.altivec.vmaxsb 1873 1874 res_vuc = vec_vmaxub(vuc, vuc); 1875 // CHECK: @llvm.ppc.altivec.vmaxub 1876 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1877 1878 res_vuc = vec_vmaxub(vbc, vuc); 1879 // CHECK: @llvm.ppc.altivec.vmaxub 1880 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1881 1882 res_vuc = vec_vmaxub(vuc, vbc); 1883 // CHECK: @llvm.ppc.altivec.vmaxub 1884 // CHECK-LE: @llvm.ppc.altivec.vmaxub 1885 1886 res_vs = vec_vmaxsh(vs, vs); 1887 // CHECK: @llvm.ppc.altivec.vmaxsh 1888 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1889 1890 res_vs = vec_vmaxsh(vbs, vs); 1891 // CHECK: @llvm.ppc.altivec.vmaxsh 1892 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1893 1894 res_vs = vec_vmaxsh(vs, vbs); 1895 // CHECK: @llvm.ppc.altivec.vmaxsh 1896 // CHECK-LE: @llvm.ppc.altivec.vmaxsh 1897 1898 res_vus = vec_vmaxuh(vus, vus); 1899 // CHECK: @llvm.ppc.altivec.vmaxuh 1900 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1901 1902 res_vus = vec_vmaxuh(vbs, vus); 1903 // CHECK: @llvm.ppc.altivec.vmaxuh 1904 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1905 1906 res_vus = vec_vmaxuh(vus, vbs); 1907 // CHECK: @llvm.ppc.altivec.vmaxuh 1908 // CHECK-LE: @llvm.ppc.altivec.vmaxuh 1909 1910 res_vi = vec_vmaxsw(vi, vi); 1911 // CHECK: @llvm.ppc.altivec.vmaxsw 1912 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1913 1914 res_vi = vec_vmaxsw(vbi, vi); 1915 // CHECK: @llvm.ppc.altivec.vmaxsw 1916 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1917 1918 res_vi = vec_vmaxsw(vi, vbi); 1919 // CHECK: @llvm.ppc.altivec.vmaxsw 1920 // CHECK-LE: @llvm.ppc.altivec.vmaxsw 1921 1922 res_vui = vec_vmaxuw(vui, vui); 1923 // CHECK: @llvm.ppc.altivec.vmaxuw 1924 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1925 1926 res_vui = vec_vmaxuw(vbi, vui); 1927 // CHECK: @llvm.ppc.altivec.vmaxuw 1928 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1929 1930 res_vui = vec_vmaxuw(vui, vbi); 1931 // CHECK: @llvm.ppc.altivec.vmaxuw 1932 // CHECK-LE: @llvm.ppc.altivec.vmaxuw 1933 1934 res_vf = vec_vmaxfp(vf, vf); 1935 // CHECK: @llvm.ppc.altivec.vmaxfp 1936 // CHECK-LE: @llvm.ppc.altivec.vmaxfp 1937 1938 /* vec_mergeh */ 1939 res_vsc = vec_mergeh(vsc, vsc); 1940 // CHECK: @llvm.ppc.altivec.vperm 1941 // CHECK-LE: @llvm.ppc.altivec.vperm 1942 1943 res_vuc = vec_mergeh(vuc, vuc); 1944 // CHECK: @llvm.ppc.altivec.vperm 1945 // CHECK-LE: @llvm.ppc.altivec.vperm 1946 1947 res_vbc = vec_mergeh(vbc, vbc); 1948 // CHECK: @llvm.ppc.altivec.vperm 1949 // CHECK-LE: @llvm.ppc.altivec.vperm 1950 1951 res_vs = vec_mergeh(vs, vs); 1952 // CHECK: @llvm.ppc.altivec.vperm 1953 // CHECK-LE: @llvm.ppc.altivec.vperm 1954 1955 res_vp = vec_mergeh(vp, vp); 1956 // CHECK: @llvm.ppc.altivec.vperm 1957 // CHECK-LE: @llvm.ppc.altivec.vperm 1958 1959 res_vus = vec_mergeh(vus, vus); 1960 // CHECK: @llvm.ppc.altivec.vperm 1961 // CHECK-LE: @llvm.ppc.altivec.vperm 1962 1963 res_vbs = vec_mergeh(vbs, vbs); 1964 // CHECK: @llvm.ppc.altivec.vperm 1965 // CHECK-LE: @llvm.ppc.altivec.vperm 1966 1967 res_vi = vec_mergeh(vi, vi); 1968 // CHECK: @llvm.ppc.altivec.vperm 1969 // CHECK-LE: @llvm.ppc.altivec.vperm 1970 1971 res_vui = vec_mergeh(vui, vui); 1972 // CHECK: @llvm.ppc.altivec.vperm 1973 // CHECK-LE: @llvm.ppc.altivec.vperm 1974 1975 res_vbi = vec_mergeh(vbi, vbi); 1976 // CHECK: @llvm.ppc.altivec.vperm 1977 // CHECK-LE: @llvm.ppc.altivec.vperm 1978 1979 res_vf = vec_mergeh(vf, vf); 1980 // CHECK: @llvm.ppc.altivec.vperm 1981 // CHECK-LE: @llvm.ppc.altivec.vperm 1982 1983 res_vsc = vec_vmrghb(vsc, vsc); 1984 // CHECK: @llvm.ppc.altivec.vperm 1985 // CHECK-LE: @llvm.ppc.altivec.vperm 1986 1987 res_vuc = vec_vmrghb(vuc, vuc); 1988 // CHECK: @llvm.ppc.altivec.vperm 1989 // CHECK-LE: @llvm.ppc.altivec.vperm 1990 1991 res_vbc = vec_vmrghb(vbc, vbc); 1992 // CHECK: @llvm.ppc.altivec.vperm 1993 // CHECK-LE: @llvm.ppc.altivec.vperm 1994 1995 res_vs = vec_vmrghh(vs, vs); 1996 // CHECK: @llvm.ppc.altivec.vperm 1997 // CHECK-LE: @llvm.ppc.altivec.vperm 1998 1999 res_vp = vec_vmrghh(vp, vp); 2000 // CHECK: @llvm.ppc.altivec.vperm 2001 // CHECK-LE: @llvm.ppc.altivec.vperm 2002 2003 res_vus = vec_vmrghh(vus, vus); 2004 // CHECK: @llvm.ppc.altivec.vperm 2005 // CHECK-LE: @llvm.ppc.altivec.vperm 2006 2007 res_vbs = vec_vmrghh(vbs, vbs); 2008 // CHECK: @llvm.ppc.altivec.vperm 2009 // CHECK-LE: @llvm.ppc.altivec.vperm 2010 2011 res_vi = vec_vmrghw(vi, vi); 2012 // CHECK: @llvm.ppc.altivec.vperm 2013 // CHECK-LE: @llvm.ppc.altivec.vperm 2014 2015 res_vui = vec_vmrghw(vui, vui); 2016 // CHECK: @llvm.ppc.altivec.vperm 2017 // CHECK-LE: @llvm.ppc.altivec.vperm 2018 2019 res_vbi = vec_vmrghw(vbi, vbi); 2020 // CHECK: @llvm.ppc.altivec.vperm 2021 // CHECK-LE: @llvm.ppc.altivec.vperm 2022 2023 res_vf = vec_vmrghw(vf, vf); 2024 // CHECK: @llvm.ppc.altivec.vperm 2025 // CHECK-LE: @llvm.ppc.altivec.vperm 2026 2027 /* vec_mergel */ 2028 res_vsc = vec_mergel(vsc, vsc); 2029 // CHECK: @llvm.ppc.altivec.vperm 2030 // CHECK-LE: @llvm.ppc.altivec.vperm 2031 2032 res_vuc = vec_mergel(vuc, vuc); 2033 // CHECK: @llvm.ppc.altivec.vperm 2034 // CHECK-LE: @llvm.ppc.altivec.vperm 2035 2036 res_vbc = vec_mergel(vbc, vbc); 2037 // CHECK: @llvm.ppc.altivec.vperm 2038 // CHECK-LE: @llvm.ppc.altivec.vperm 2039 2040 res_vs = vec_mergel(vs, vs); 2041 // CHECK: @llvm.ppc.altivec.vperm 2042 // CHECK-LE: @llvm.ppc.altivec.vperm 2043 2044 res_vp = vec_mergeh(vp, vp); 2045 // CHECK: @llvm.ppc.altivec.vperm 2046 // CHECK-LE: @llvm.ppc.altivec.vperm 2047 2048 res_vus = vec_mergel(vus, vus); 2049 // CHECK: @llvm.ppc.altivec.vperm 2050 // CHECK-LE: @llvm.ppc.altivec.vperm 2051 2052 res_vbs = vec_mergel(vbs, vbs); 2053 // CHECK: @llvm.ppc.altivec.vperm 2054 // CHECK-LE: @llvm.ppc.altivec.vperm 2055 2056 res_vi = vec_mergel(vi, vi); 2057 // CHECK: @llvm.ppc.altivec.vperm 2058 // CHECK-LE: @llvm.ppc.altivec.vperm 2059 2060 res_vui = vec_mergel(vui, vui); 2061 // CHECK: @llvm.ppc.altivec.vperm 2062 // CHECK-LE: @llvm.ppc.altivec.vperm 2063 2064 res_vbi = vec_mergel(vbi, vbi); 2065 // CHECK: @llvm.ppc.altivec.vperm 2066 // CHECK-LE: @llvm.ppc.altivec.vperm 2067 2068 res_vf = vec_mergel(vf, vf); 2069 // CHECK: @llvm.ppc.altivec.vperm 2070 // CHECK-LE: @llvm.ppc.altivec.vperm 2071 2072 res_vsc = vec_vmrglb(vsc, vsc); 2073 // CHECK: @llvm.ppc.altivec.vperm 2074 // CHECK-LE: @llvm.ppc.altivec.vperm 2075 2076 res_vuc = vec_vmrglb(vuc, vuc); 2077 // CHECK: @llvm.ppc.altivec.vperm 2078 // CHECK-LE: @llvm.ppc.altivec.vperm 2079 2080 res_vbc = vec_vmrglb(vbc, vbc); 2081 // CHECK: @llvm.ppc.altivec.vperm 2082 // CHECK-LE: @llvm.ppc.altivec.vperm 2083 2084 res_vs = vec_vmrglh(vs, vs); 2085 // CHECK: @llvm.ppc.altivec.vperm 2086 // CHECK-LE: @llvm.ppc.altivec.vperm 2087 2088 res_vp = vec_vmrglh(vp, vp); 2089 // CHECK: @llvm.ppc.altivec.vperm 2090 // CHECK-LE: @llvm.ppc.altivec.vperm 2091 2092 res_vus = vec_vmrglh(vus, vus); 2093 // CHECK: @llvm.ppc.altivec.vperm 2094 // CHECK-LE: @llvm.ppc.altivec.vperm 2095 2096 res_vbs = vec_vmrglh(vbs, vbs); 2097 // CHECK: @llvm.ppc.altivec.vperm 2098 // CHECK-LE: @llvm.ppc.altivec.vperm 2099 2100 res_vi = vec_vmrglw(vi, vi); 2101 // CHECK: @llvm.ppc.altivec.vperm 2102 // CHECK-LE: @llvm.ppc.altivec.vperm 2103 2104 res_vui = vec_vmrglw(vui, vui); 2105 // CHECK: @llvm.ppc.altivec.vperm 2106 // CHECK-LE: @llvm.ppc.altivec.vperm 2107 2108 res_vbi = vec_vmrglw(vbi, vbi); 2109 // CHECK: @llvm.ppc.altivec.vperm 2110 // CHECK-LE: @llvm.ppc.altivec.vperm 2111 2112 res_vf = vec_vmrglw(vf, vf); 2113 // CHECK: @llvm.ppc.altivec.vperm 2114 // CHECK-LE: @llvm.ppc.altivec.vperm 2115 2116 /* vec_mfvscr */ 2117 vus = vec_mfvscr(); 2118 // CHECK: @llvm.ppc.altivec.mfvscr 2119 // CHECK-LE: @llvm.ppc.altivec.mfvscr 2120 2121 /* vec_min */ 2122 res_vsc = vec_min(vsc, vsc); 2123 // CHECK: @llvm.ppc.altivec.vminsb 2124 // CHECK-LE: @llvm.ppc.altivec.vminsb 2125 2126 res_vsc = vec_min(vbc, vsc); 2127 // CHECK: @llvm.ppc.altivec.vminsb 2128 // CHECK-LE: @llvm.ppc.altivec.vminsb 2129 2130 res_vsc = vec_min(vsc, vbc); 2131 // CHECK: @llvm.ppc.altivec.vminsb 2132 // CHECK-LE: @llvm.ppc.altivec.vminsb 2133 2134 res_vuc = vec_min(vuc, vuc); 2135 // CHECK: @llvm.ppc.altivec.vminub 2136 // CHECK-LE: @llvm.ppc.altivec.vminub 2137 2138 res_vuc = vec_min(vbc, vuc); 2139 // CHECK: @llvm.ppc.altivec.vminub 2140 // CHECK-LE: @llvm.ppc.altivec.vminub 2141 2142 res_vuc = vec_min(vuc, vbc); 2143 // CHECK: @llvm.ppc.altivec.vminub 2144 // CHECK-LE: @llvm.ppc.altivec.vminub 2145 2146 res_vs = vec_min(vs, vs); 2147 // CHECK: @llvm.ppc.altivec.vminsh 2148 // CHECK-LE: @llvm.ppc.altivec.vminsh 2149 2150 res_vs = vec_min(vbs, vs); 2151 // CHECK: @llvm.ppc.altivec.vminsh 2152 // CHECK-LE: @llvm.ppc.altivec.vminsh 2153 2154 res_vs = vec_min(vs, vbs); 2155 // CHECK: @llvm.ppc.altivec.vminsh 2156 // CHECK-LE: @llvm.ppc.altivec.vminsh 2157 2158 res_vus = vec_min(vus, vus); 2159 // CHECK: @llvm.ppc.altivec.vminuh 2160 // CHECK-LE: @llvm.ppc.altivec.vminuh 2161 2162 res_vus = vec_min(vbs, vus); 2163 // CHECK: @llvm.ppc.altivec.vminuh 2164 // CHECK-LE: @llvm.ppc.altivec.vminuh 2165 2166 res_vus = vec_min(vus, vbs); 2167 // CHECK: @llvm.ppc.altivec.vminuh 2168 // CHECK-LE: @llvm.ppc.altivec.vminuh 2169 2170 res_vi = vec_min(vi, vi); 2171 // CHECK: @llvm.ppc.altivec.vminsw 2172 // CHECK-LE: @llvm.ppc.altivec.vminsw 2173 2174 res_vi = vec_min(vbi, vi); 2175 // CHECK: @llvm.ppc.altivec.vminsw 2176 // CHECK-LE: @llvm.ppc.altivec.vminsw 2177 2178 res_vi = vec_min(vi, vbi); 2179 // CHECK: @llvm.ppc.altivec.vminsw 2180 // CHECK-LE: @llvm.ppc.altivec.vminsw 2181 2182 res_vui = vec_min(vui, vui); 2183 // CHECK: @llvm.ppc.altivec.vminuw 2184 // CHECK-LE: @llvm.ppc.altivec.vminuw 2185 2186 res_vui = vec_min(vbi, vui); 2187 // CHECK: @llvm.ppc.altivec.vminuw 2188 // CHECK-LE: @llvm.ppc.altivec.vminuw 2189 2190 res_vui = vec_min(vui, vbi); 2191 // CHECK: @llvm.ppc.altivec.vminuw 2192 // CHECK-LE: @llvm.ppc.altivec.vminuw 2193 2194 res_vf = vec_min(vf, vf); 2195 // CHECK: @llvm.ppc.altivec.vminfp 2196 // CHECK-LE: @llvm.ppc.altivec.vminfp 2197 2198 res_vsc = vec_vminsb(vsc, vsc); 2199 // CHECK: @llvm.ppc.altivec.vminsb 2200 // CHECK-LE: @llvm.ppc.altivec.vminsb 2201 2202 res_vsc = vec_vminsb(vbc, vsc); 2203 // CHECK: @llvm.ppc.altivec.vminsb 2204 // CHECK-LE: @llvm.ppc.altivec.vminsb 2205 2206 res_vsc = vec_vminsb(vsc, vbc); 2207 // CHECK: @llvm.ppc.altivec.vminsb 2208 // CHECK-LE: @llvm.ppc.altivec.vminsb 2209 2210 res_vuc = vec_vminub(vuc, vuc); 2211 // CHECK: @llvm.ppc.altivec.vminub 2212 // CHECK-LE: @llvm.ppc.altivec.vminub 2213 2214 res_vuc = vec_vminub(vbc, vuc); 2215 // CHECK: @llvm.ppc.altivec.vminub 2216 // CHECK-LE: @llvm.ppc.altivec.vminub 2217 2218 res_vuc = vec_vminub(vuc, vbc); 2219 // CHECK: @llvm.ppc.altivec.vminub 2220 // CHECK-LE: @llvm.ppc.altivec.vminub 2221 2222 res_vs = vec_vminsh(vs, vs); 2223 // CHECK: @llvm.ppc.altivec.vminsh 2224 // CHECK-LE: @llvm.ppc.altivec.vminsh 2225 2226 res_vs = vec_vminsh(vbs, vs); 2227 // CHECK: @llvm.ppc.altivec.vminsh 2228 // CHECK-LE: @llvm.ppc.altivec.vminsh 2229 2230 res_vs = vec_vminsh(vs, vbs); 2231 // CHECK: @llvm.ppc.altivec.vminsh 2232 // CHECK-LE: @llvm.ppc.altivec.vminsh 2233 2234 res_vus = vec_vminuh(vus, vus); 2235 // CHECK: @llvm.ppc.altivec.vminuh 2236 // CHECK-LE: @llvm.ppc.altivec.vminuh 2237 2238 res_vus = vec_vminuh(vbs, vus); 2239 // CHECK: @llvm.ppc.altivec.vminuh 2240 // CHECK-LE: @llvm.ppc.altivec.vminuh 2241 2242 res_vus = vec_vminuh(vus, vbs); 2243 // CHECK: @llvm.ppc.altivec.vminuh 2244 // CHECK-LE: @llvm.ppc.altivec.vminuh 2245 2246 res_vi = vec_vminsw(vi, vi); 2247 // CHECK: @llvm.ppc.altivec.vminsw 2248 // CHECK-LE: @llvm.ppc.altivec.vminsw 2249 2250 res_vi = vec_vminsw(vbi, vi); 2251 // CHECK: @llvm.ppc.altivec.vminsw 2252 // CHECK-LE: @llvm.ppc.altivec.vminsw 2253 2254 res_vi = vec_vminsw(vi, vbi); 2255 // CHECK: @llvm.ppc.altivec.vminsw 2256 // CHECK-LE: @llvm.ppc.altivec.vminsw 2257 2258 res_vui = vec_vminuw(vui, vui); 2259 // CHECK: @llvm.ppc.altivec.vminuw 2260 // CHECK-LE: @llvm.ppc.altivec.vminuw 2261 2262 res_vui = vec_vminuw(vbi, vui); 2263 // CHECK: @llvm.ppc.altivec.vminuw 2264 // CHECK-LE: @llvm.ppc.altivec.vminuw 2265 2266 res_vui = vec_vminuw(vui, vbi); 2267 // CHECK: @llvm.ppc.altivec.vminuw 2268 // CHECK-LE: @llvm.ppc.altivec.vminuw 2269 2270 res_vf = vec_vminfp(vf, vf); 2271 // CHECK: @llvm.ppc.altivec.vminfp 2272 // CHECK-LE: @llvm.ppc.altivec.vminfp 2273 2274 /* vec_mladd */ 2275 res_vus = vec_mladd(vus, vus, vus); 2276 // CHECK: mul <8 x i16> 2277 // CHECK: add <8 x i16> 2278 // CHECK-LE: mul <8 x i16> 2279 // CHECK-LE: add <8 x i16> 2280 2281 res_vs = vec_mladd(vus, vs, vs); 2282 // CHECK: mul <8 x i16> 2283 // CHECK: add <8 x i16> 2284 // CHECK-LE: mul <8 x i16> 2285 // CHECK-LE: add <8 x i16> 2286 2287 res_vs = vec_mladd(vs, vus, vus); 2288 // CHECK: mul <8 x i16> 2289 // CHECK: add <8 x i16> 2290 // CHECK-LE: mul <8 x i16> 2291 // CHECK-LE: add <8 x i16> 2292 2293 res_vs = vec_mladd(vs, vs, vs); 2294 // CHECK: mul <8 x i16> 2295 // CHECK: add <8 x i16> 2296 // CHECK-LE: mul <8 x i16> 2297 // CHECK-LE: add <8 x i16> 2298 2299 /* vec_mradds */ 2300 res_vs = vec_mradds(vs, vs, vs); 2301 // CHECK: @llvm.ppc.altivec.vmhraddshs 2302 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs 2303 2304 res_vs = vec_vmhraddshs(vs, vs, vs); 2305 // CHECK: @llvm.ppc.altivec.vmhraddshs 2306 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs 2307 2308 /* vec_msum */ 2309 res_vi = vec_msum(vsc, vuc, vi); 2310 // CHECK: @llvm.ppc.altivec.vmsummbm 2311 // CHECK-LE: @llvm.ppc.altivec.vmsummbm 2312 2313 res_vui = vec_msum(vuc, vuc, vui); 2314 // CHECK: @llvm.ppc.altivec.vmsumubm 2315 // CHECK-LE: @llvm.ppc.altivec.vmsumubm 2316 2317 res_vi = vec_msum(vs, vs, vi); 2318 // CHECK: @llvm.ppc.altivec.vmsumshm 2319 // CHECK-LE: @llvm.ppc.altivec.vmsumshm 2320 2321 res_vui = vec_msum(vus, vus, vui); 2322 // CHECK: @llvm.ppc.altivec.vmsumuhm 2323 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm 2324 2325 res_vi = vec_vmsummbm(vsc, vuc, vi); 2326 // CHECK: @llvm.ppc.altivec.vmsummbm 2327 // CHECK-LE: @llvm.ppc.altivec.vmsummbm 2328 2329 res_vui = vec_vmsumubm(vuc, vuc, vui); 2330 // CHECK: @llvm.ppc.altivec.vmsumubm 2331 // CHECK-LE: @llvm.ppc.altivec.vmsumubm 2332 2333 res_vi = vec_vmsumshm(vs, vs, vi); 2334 // CHECK: @llvm.ppc.altivec.vmsumshm 2335 // CHECK-LE: @llvm.ppc.altivec.vmsumshm 2336 2337 res_vui = vec_vmsumuhm(vus, vus, vui); 2338 // CHECK: @llvm.ppc.altivec.vmsumuhm 2339 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm 2340 2341 /* vec_msums */ 2342 res_vi = vec_msums(vs, vs, vi); 2343 // CHECK: @llvm.ppc.altivec.vmsumshs 2344 // CHECK-LE: @llvm.ppc.altivec.vmsumshs 2345 2346 res_vui = vec_msums(vus, vus, vui); 2347 // CHECK: @llvm.ppc.altivec.vmsumuhs 2348 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs 2349 2350 res_vi = vec_vmsumshs(vs, vs, vi); 2351 // CHECK: @llvm.ppc.altivec.vmsumshs 2352 // CHECK-LE: @llvm.ppc.altivec.vmsumshs 2353 2354 res_vui = vec_vmsumuhs(vus, vus, vui); 2355 // CHECK: @llvm.ppc.altivec.vmsumuhs 2356 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs 2357 2358 /* vec_mtvscr */ 2359 vec_mtvscr(vsc); 2360 // CHECK: @llvm.ppc.altivec.mtvscr 2361 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2362 2363 vec_mtvscr(vuc); 2364 // CHECK: @llvm.ppc.altivec.mtvscr 2365 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2366 2367 vec_mtvscr(vbc); 2368 // CHECK: @llvm.ppc.altivec.mtvscr 2369 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2370 2371 vec_mtvscr(vs); 2372 // CHECK: @llvm.ppc.altivec.mtvscr 2373 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2374 2375 vec_mtvscr(vus); 2376 // CHECK: @llvm.ppc.altivec.mtvscr 2377 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2378 2379 vec_mtvscr(vbs); 2380 // CHECK: @llvm.ppc.altivec.mtvscr 2381 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2382 2383 vec_mtvscr(vp); 2384 // CHECK: @llvm.ppc.altivec.mtvscr 2385 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2386 2387 vec_mtvscr(vi); 2388 // CHECK: @llvm.ppc.altivec.mtvscr 2389 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2390 2391 vec_mtvscr(vui); 2392 // CHECK: @llvm.ppc.altivec.mtvscr 2393 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2394 2395 vec_mtvscr(vbi); 2396 // CHECK: @llvm.ppc.altivec.mtvscr 2397 // CHECK-LE: @llvm.ppc.altivec.mtvscr 2398 2399 /* vec_mul */ 2400 res_vsc = vec_mul(vsc, vsc); 2401 // CHECK: mul <16 x i8> 2402 // CHECK-LE: mul <16 x i8> 2403 2404 res_vuc = vec_mul(vuc, vuc); 2405 // CHECK: mul <16 x i8> 2406 // CHECK-LE: mul <16 x i8> 2407 2408 res_vs = vec_mul(vs, vs); 2409 // CHECK: mul <8 x i16> 2410 // CHECK-LE: mul <8 x i16> 2411 2412 res_vus = vec_mul(vus, vus); 2413 // CHECK: mul <8 x i16> 2414 // CHECK-LE: mul <8 x i16> 2415 2416 res_vi = vec_mul(vi, vi); 2417 // CHECK: mul <4 x i32> 2418 // CHECK-LE: mul <4 x i32> 2419 2420 res_vui = vec_mul(vui, vui); 2421 // CHECK: mul <4 x i32> 2422 // CHECK-LE: mul <4 x i32> 2423 2424 /* vec_mule */ 2425 res_vs = vec_mule(vsc, vsc); 2426 // CHECK: @llvm.ppc.altivec.vmulesb 2427 // CHECK-LE: @llvm.ppc.altivec.vmulosb 2428 2429 res_vus = vec_mule(vuc, vuc); 2430 // CHECK: @llvm.ppc.altivec.vmuleub 2431 // CHECK-LE: @llvm.ppc.altivec.vmuloub 2432 2433 res_vi = vec_mule(vs, vs); 2434 // CHECK: @llvm.ppc.altivec.vmulesh 2435 // CHECK-LE: @llvm.ppc.altivec.vmulosh 2436 2437 res_vui = vec_mule(vus, vus); 2438 // CHECK: @llvm.ppc.altivec.vmuleuh 2439 // CHECK-LE: @llvm.ppc.altivec.vmulouh 2440 2441 res_vs = vec_vmulesb(vsc, vsc); 2442 // CHECK: @llvm.ppc.altivec.vmulesb 2443 // CHECK-LE: @llvm.ppc.altivec.vmulosb 2444 2445 res_vus = vec_vmuleub(vuc, vuc); 2446 // CHECK: @llvm.ppc.altivec.vmuleub 2447 // CHECK-LE: @llvm.ppc.altivec.vmuloub 2448 2449 res_vi = vec_vmulesh(vs, vs); 2450 // CHECK: @llvm.ppc.altivec.vmulesh 2451 // CHECK-LE: @llvm.ppc.altivec.vmulosh 2452 2453 res_vui = vec_vmuleuh(vus, vus); 2454 // CHECK: @llvm.ppc.altivec.vmuleuh 2455 // CHECK-LE: @llvm.ppc.altivec.vmulouh 2456 2457 /* vec_mulo */ 2458 res_vs = vec_mulo(vsc, vsc); 2459 // CHECK: @llvm.ppc.altivec.vmulosb 2460 // CHECK-LE: @llvm.ppc.altivec.vmulesb 2461 2462 res_vus = vec_mulo(vuc, vuc); 2463 // CHECK: @llvm.ppc.altivec.vmuloub 2464 // CHECK-LE: @llvm.ppc.altivec.vmuleub 2465 2466 res_vi = vec_mulo(vs, vs); 2467 // CHECK: @llvm.ppc.altivec.vmulosh 2468 // CHECK-LE: @llvm.ppc.altivec.vmulesh 2469 2470 res_vui = vec_mulo(vus, vus); 2471 // CHECK: @llvm.ppc.altivec.vmulouh 2472 // CHECK-LE: @llvm.ppc.altivec.vmuleuh 2473 2474 res_vs = vec_vmulosb(vsc, vsc); 2475 // CHECK: @llvm.ppc.altivec.vmulosb 2476 // CHECK-LE: @llvm.ppc.altivec.vmulesb 2477 2478 res_vus = vec_vmuloub(vuc, vuc); 2479 // CHECK: @llvm.ppc.altivec.vmuloub 2480 // CHECK-LE: @llvm.ppc.altivec.vmuleub 2481 2482 res_vi = vec_vmulosh(vs, vs); 2483 // CHECK: @llvm.ppc.altivec.vmulosh 2484 // CHECK-LE: @llvm.ppc.altivec.vmulesh 2485 2486 res_vui = vec_vmulouh(vus, vus); 2487 // CHECK: @llvm.ppc.altivec.vmulouh 2488 // CHECK-LE: @llvm.ppc.altivec.vmuleuh 2489 2490 /* vec_nmsub */ 2491 res_vf = vec_nmsub(vf, vf, vf); 2492 // CHECK: @llvm.ppc.altivec.vnmsubfp 2493 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp 2494 2495 res_vf = vec_vnmsubfp(vf, vf, vf); 2496 // CHECK: @llvm.ppc.altivec.vnmsubfp 2497 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp 2498 2499 /* vec_nor */ 2500 res_vsc = vec_nor(vsc, vsc); 2501 // CHECK: or <16 x i8> 2502 // CHECK: xor <16 x i8> 2503 // CHECK-LE: or <16 x i8> 2504 // CHECK-LE: xor <16 x i8> 2505 2506 res_vuc = vec_nor(vuc, vuc); 2507 // CHECK: or <16 x i8> 2508 // CHECK: xor <16 x i8> 2509 // CHECK-LE: or <16 x i8> 2510 // CHECK-LE: xor <16 x i8> 2511 2512 res_vbc = vec_nor(vbc, vbc); 2513 // CHECK: or <16 x i8> 2514 // CHECK: xor <16 x i8> 2515 // CHECK-LE: or <16 x i8> 2516 // CHECK-LE: xor <16 x i8> 2517 2518 res_vs = vec_nor(vs, vs); 2519 // CHECK: or <8 x i16> 2520 // CHECK: xor <8 x i16> 2521 // CHECK-LE: or <8 x i16> 2522 // CHECK-LE: xor <8 x i16> 2523 2524 res_vus = vec_nor(vus, vus); 2525 // CHECK: or <8 x i16> 2526 // CHECK: xor <8 x i16> 2527 // CHECK-LE: or <8 x i16> 2528 // CHECK-LE: xor <8 x i16> 2529 2530 res_vbs = vec_nor(vbs, vbs); 2531 // CHECK: or <8 x i16> 2532 // CHECK: xor <8 x i16> 2533 // CHECK-LE: or <8 x i16> 2534 // CHECK-LE: xor <8 x i16> 2535 2536 res_vi = vec_nor(vi, vi); 2537 // CHECK: or <4 x i32> 2538 // CHECK: xor <4 x i32> 2539 // CHECK-LE: or <4 x i32> 2540 // CHECK-LE: xor <4 x i32> 2541 2542 res_vui = vec_nor(vui, vui); 2543 // CHECK: or <4 x i32> 2544 // CHECK: xor <4 x i32> 2545 // CHECK-LE: or <4 x i32> 2546 // CHECK-LE: xor <4 x i32> 2547 2548 res_vbi = vec_nor(vbi, vbi); 2549 // CHECK: or <4 x i32> 2550 // CHECK: xor <4 x i32> 2551 // CHECK-LE: or <4 x i32> 2552 // CHECK-LE: xor <4 x i32> 2553 2554 res_vf = vec_nor(vf, vf); 2555 // CHECK: or <4 x i32> 2556 // CHECK: xor <4 x i32> 2557 // CHECK-LE: or <4 x i32> 2558 // CHECK-LE: xor <4 x i32> 2559 2560 res_vsc = vec_vnor(vsc, vsc); 2561 // CHECK: or <16 x i8> 2562 // CHECK: xor <16 x i8> 2563 // CHECK-LE: or <16 x i8> 2564 // CHECK-LE: xor <16 x i8> 2565 2566 res_vuc = vec_vnor(vuc, vuc); 2567 // CHECK: or <16 x i8> 2568 // CHECK: xor <16 x i8> 2569 // CHECK-LE: or <16 x i8> 2570 // CHECK-LE: xor <16 x i8> 2571 2572 res_vbc = vec_vnor(vbc, vbc); 2573 // CHECK: or <16 x i8> 2574 // CHECK: xor <16 x i8> 2575 // CHECK-LE: or <16 x i8> 2576 // CHECK-LE: xor <16 x i8> 2577 2578 res_vs = vec_vnor(vs, vs); 2579 // CHECK: or <8 x i16> 2580 // CHECK: xor <8 x i16> 2581 // CHECK-LE: or <8 x i16> 2582 // CHECK-LE: xor <8 x i16> 2583 2584 res_vus = vec_vnor(vus, vus); 2585 // CHECK: or <8 x i16> 2586 // CHECK: xor <8 x i16> 2587 // CHECK-LE: or <8 x i16> 2588 // CHECK-LE: xor <8 x i16> 2589 2590 res_vbs = vec_vnor(vbs, vbs); 2591 // CHECK: or <8 x i16> 2592 // CHECK: xor <8 x i16> 2593 // CHECK-LE: or <8 x i16> 2594 // CHECK-LE: xor <8 x i16> 2595 2596 res_vi = vec_vnor(vi, vi); 2597 // CHECK: or <4 x i32> 2598 // CHECK: xor <4 x i32> 2599 // CHECK-LE: or <4 x i32> 2600 // CHECK-LE: xor <4 x i32> 2601 2602 res_vui = vec_vnor(vui, vui); 2603 // CHECK: or <4 x i32> 2604 // CHECK: xor <4 x i32> 2605 // CHECK-LE: or <4 x i32> 2606 // CHECK-LE: xor <4 x i32> 2607 2608 res_vbi = vec_vnor(vbi, vbi); 2609 // CHECK: or <4 x i32> 2610 // CHECK: xor <4 x i32> 2611 // CHECK-LE: or <4 x i32> 2612 // CHECK-LE: xor <4 x i32> 2613 2614 res_vf = vec_vnor(vf, vf); 2615 // CHECK: or <4 x i32> 2616 // CHECK: xor <4 x i32> 2617 // CHECK-LE: or <4 x i32> 2618 // CHECK-LE: xor <4 x i32> 2619 2620 /* vec_or */ 2621 res_vsc = vec_or(vsc, vsc); 2622 // CHECK: or <16 x i8> 2623 // CHECK-LE: or <16 x i8> 2624 2625 res_vsc = vec_or(vbc, vsc); 2626 // CHECK: or <16 x i8> 2627 // CHECK-LE: or <16 x i8> 2628 2629 res_vsc = vec_or(vsc, vbc); 2630 // CHECK: or <16 x i8> 2631 // CHECK-LE: or <16 x i8> 2632 2633 res_vuc = vec_or(vuc, vuc); 2634 // CHECK: or <16 x i8> 2635 // CHECK-LE: or <16 x i8> 2636 2637 res_vuc = vec_or(vbc, vuc); 2638 // CHECK: or <16 x i8> 2639 // CHECK-LE: or <16 x i8> 2640 2641 res_vuc = vec_or(vuc, vbc); 2642 // CHECK: or <16 x i8> 2643 // CHECK-LE: or <16 x i8> 2644 2645 res_vbc = vec_or(vbc, vbc); 2646 // CHECK: or <16 x i8> 2647 // CHECK-LE: or <16 x i8> 2648 2649 res_vs = vec_or(vs, vs); 2650 // CHECK: or <8 x i16> 2651 // CHECK-LE: or <8 x i16> 2652 2653 res_vs = vec_or(vbs, vs); 2654 // CHECK: or <8 x i16> 2655 // CHECK-LE: or <8 x i16> 2656 2657 res_vs = vec_or(vs, vbs); 2658 // CHECK: or <8 x i16> 2659 // CHECK-LE: or <8 x i16> 2660 2661 res_vus = vec_or(vus, vus); 2662 // CHECK: or <8 x i16> 2663 // CHECK-LE: or <8 x i16> 2664 2665 res_vus = vec_or(vbs, vus); 2666 // CHECK: or <8 x i16> 2667 // CHECK-LE: or <8 x i16> 2668 2669 res_vus = vec_or(vus, vbs); 2670 // CHECK: or <8 x i16> 2671 // CHECK-LE: or <8 x i16> 2672 2673 res_vbs = vec_or(vbs, vbs); 2674 // CHECK: or <8 x i16> 2675 // CHECK-LE: or <8 x i16> 2676 2677 res_vi = vec_or(vi, vi); 2678 // CHECK: or <4 x i32> 2679 // CHECK-LE: or <4 x i32> 2680 2681 res_vi = vec_or(vbi, vi); 2682 // CHECK: or <4 x i32> 2683 // CHECK-LE: or <4 x i32> 2684 2685 res_vi = vec_or(vi, vbi); 2686 // CHECK: or <4 x i32> 2687 // CHECK-LE: or <4 x i32> 2688 2689 res_vui = vec_or(vui, vui); 2690 // CHECK: or <4 x i32> 2691 // CHECK-LE: or <4 x i32> 2692 2693 res_vui = vec_or(vbi, vui); 2694 // CHECK: or <4 x i32> 2695 // CHECK-LE: or <4 x i32> 2696 2697 res_vui = vec_or(vui, vbi); 2698 // CHECK: or <4 x i32> 2699 // CHECK-LE: or <4 x i32> 2700 2701 res_vbi = vec_or(vbi, vbi); 2702 // CHECK: or <4 x i32> 2703 // CHECK-LE: or <4 x i32> 2704 2705 res_vf = vec_or(vf, vf); 2706 // CHECK: or <4 x i32> 2707 // CHECK-LE: or <4 x i32> 2708 2709 res_vf = vec_or(vbi, vf); 2710 // CHECK: or <4 x i32> 2711 // CHECK-LE: or <4 x i32> 2712 2713 res_vf = vec_or(vf, vbi); 2714 // CHECK: or <4 x i32> 2715 // CHECK-LE: or <4 x i32> 2716 2717 res_vsc = vec_vor(vsc, vsc); 2718 // CHECK: or <16 x i8> 2719 // CHECK-LE: or <16 x i8> 2720 2721 res_vsc = vec_vor(vbc, vsc); 2722 // CHECK: or <16 x i8> 2723 // CHECK-LE: or <16 x i8> 2724 2725 res_vsc = vec_vor(vsc, vbc); 2726 // CHECK: or <16 x i8> 2727 // CHECK-LE: or <16 x i8> 2728 2729 res_vuc = vec_vor(vuc, vuc); 2730 // CHECK: or <16 x i8> 2731 // CHECK-LE: or <16 x i8> 2732 2733 res_vuc = vec_vor(vbc, vuc); 2734 // CHECK: or <16 x i8> 2735 // CHECK-LE: or <16 x i8> 2736 2737 res_vuc = vec_vor(vuc, vbc); 2738 // CHECK: or <16 x i8> 2739 // CHECK-LE: or <16 x i8> 2740 2741 res_vbc = vec_vor(vbc, vbc); 2742 // CHECK: or <16 x i8> 2743 // CHECK-LE: or <16 x i8> 2744 2745 res_vs = vec_vor(vs, vs); 2746 // CHECK: or <8 x i16> 2747 // CHECK-LE: or <8 x i16> 2748 2749 res_vs = vec_vor(vbs, vs); 2750 // CHECK: or <8 x i16> 2751 // CHECK-LE: or <8 x i16> 2752 2753 res_vs = vec_vor(vs, vbs); 2754 // CHECK: or <8 x i16> 2755 // CHECK-LE: or <8 x i16> 2756 2757 res_vus = vec_vor(vus, vus); 2758 // CHECK: or <8 x i16> 2759 // CHECK-LE: or <8 x i16> 2760 2761 res_vus = vec_vor(vbs, vus); 2762 // CHECK: or <8 x i16> 2763 // CHECK-LE: or <8 x i16> 2764 2765 res_vus = vec_vor(vus, vbs); 2766 // CHECK: or <8 x i16> 2767 // CHECK-LE: or <8 x i16> 2768 2769 res_vbs = vec_vor(vbs, vbs); 2770 // CHECK: or <8 x i16> 2771 // CHECK-LE: or <8 x i16> 2772 2773 res_vi = vec_vor(vi, vi); 2774 // CHECK: or <4 x i32> 2775 // CHECK-LE: or <4 x i32> 2776 2777 res_vi = vec_vor(vbi, vi); 2778 // CHECK: or <4 x i32> 2779 // CHECK-LE: or <4 x i32> 2780 2781 res_vi = vec_vor(vi, vbi); 2782 // CHECK: or <4 x i32> 2783 // CHECK-LE: or <4 x i32> 2784 2785 res_vui = vec_vor(vui, vui); 2786 // CHECK: or <4 x i32> 2787 // CHECK-LE: or <4 x i32> 2788 2789 res_vui = vec_vor(vbi, vui); 2790 // CHECK: or <4 x i32> 2791 // CHECK-LE: or <4 x i32> 2792 2793 res_vui = vec_vor(vui, vbi); 2794 // CHECK: or <4 x i32> 2795 // CHECK-LE: or <4 x i32> 2796 2797 res_vbi = vec_vor(vbi, vbi); 2798 // CHECK: or <4 x i32> 2799 // CHECK-LE: or <4 x i32> 2800 2801 res_vf = vec_vor(vf, vf); 2802 // CHECK: or <4 x i32> 2803 // CHECK-LE: or <4 x i32> 2804 2805 res_vf = vec_vor(vbi, vf); 2806 // CHECK: or <4 x i32> 2807 // CHECK-LE: or <4 x i32> 2808 2809 res_vf = vec_vor(vf, vbi); 2810 // CHECK: or <4 x i32> 2811 // CHECK-LE: or <4 x i32> 2812 2813 /* vec_pack */ 2814 res_vsc = vec_pack(vs, vs); 2815 // CHECK: @llvm.ppc.altivec.vperm 2816 // CHECK-LE: @llvm.ppc.altivec.vperm 2817 2818 res_vuc = vec_pack(vus, vus); 2819 // CHECK: @llvm.ppc.altivec.vperm 2820 // CHECK-LE: @llvm.ppc.altivec.vperm 2821 2822 res_vbc = vec_pack(vbs, vbs); 2823 // CHECK: @llvm.ppc.altivec.vperm 2824 // CHECK-LE: @llvm.ppc.altivec.vperm 2825 2826 res_vs = vec_pack(vi, vi); 2827 // CHECK: @llvm.ppc.altivec.vperm 2828 // CHECK-LE: @llvm.ppc.altivec.vperm 2829 2830 res_vus = vec_pack(vui, vui); 2831 // CHECK: @llvm.ppc.altivec.vperm 2832 // CHECK-LE: @llvm.ppc.altivec.vperm 2833 2834 res_vbs = vec_pack(vbi, vbi); 2835 // CHECK: @llvm.ppc.altivec.vperm 2836 // CHECK-LE: @llvm.ppc.altivec.vperm 2837 2838 res_vsc = vec_vpkuhum(vs, vs); 2839 // CHECK: @llvm.ppc.altivec.vperm 2840 // CHECK-LE: @llvm.ppc.altivec.vperm 2841 2842 res_vuc = vec_vpkuhum(vus, vus); 2843 // CHECK: @llvm.ppc.altivec.vperm 2844 // CHECK-LE: @llvm.ppc.altivec.vperm 2845 2846 res_vbc = vec_vpkuhum(vbs, vbs); 2847 // CHECK: @llvm.ppc.altivec.vperm 2848 // CHECK-LE: @llvm.ppc.altivec.vperm 2849 2850 res_vs = vec_vpkuwum(vi, vi); 2851 // CHECK: @llvm.ppc.altivec.vperm 2852 // CHECK-LE: @llvm.ppc.altivec.vperm 2853 2854 res_vus = vec_vpkuwum(vui, vui); 2855 // CHECK: @llvm.ppc.altivec.vperm 2856 // CHECK-LE: @llvm.ppc.altivec.vperm 2857 2858 res_vbs = vec_vpkuwum(vbi, vbi); 2859 // CHECK: @llvm.ppc.altivec.vperm 2860 // CHECK-LE: @llvm.ppc.altivec.vperm 2861 2862 /* vec_packpx */ 2863 res_vp = vec_packpx(vui, vui); 2864 // CHECK: @llvm.ppc.altivec.vpkpx 2865 // CHECK-LE: @llvm.ppc.altivec.vpkpx 2866 2867 res_vp = vec_vpkpx(vui, vui); 2868 // CHECK: @llvm.ppc.altivec.vpkpx 2869 // CHECK-LE: @llvm.ppc.altivec.vpkpx 2870 2871 /* vec_packs */ 2872 res_vsc = vec_packs(vs, vs); 2873 // CHECK: @llvm.ppc.altivec.vpkshss 2874 // CHECK-LE: @llvm.ppc.altivec.vpkshss 2875 2876 res_vuc = vec_packs(vus, vus); 2877 // CHECK: @llvm.ppc.altivec.vpkuhus 2878 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2879 2880 res_vs = vec_packs(vi, vi); 2881 // CHECK: @llvm.ppc.altivec.vpkswss 2882 // CHECK-LE: @llvm.ppc.altivec.vpkswss 2883 2884 res_vus = vec_packs(vui, vui); 2885 // CHECK: @llvm.ppc.altivec.vpkuwus 2886 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2887 2888 res_vsc = vec_vpkshss(vs, vs); 2889 // CHECK: @llvm.ppc.altivec.vpkshss 2890 // CHECK-LE: @llvm.ppc.altivec.vpkshss 2891 2892 res_vuc = vec_vpkuhus(vus, vus); 2893 // CHECK: @llvm.ppc.altivec.vpkuhus 2894 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2895 2896 res_vs = vec_vpkswss(vi, vi); 2897 // CHECK: @llvm.ppc.altivec.vpkswss 2898 // CHECK-LE: @llvm.ppc.altivec.vpkswss 2899 2900 res_vus = vec_vpkuwus(vui, vui); 2901 // CHECK: @llvm.ppc.altivec.vpkuwus 2902 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2903 2904 /* vec_packsu */ 2905 res_vuc = vec_packsu(vs, vs); 2906 // CHECK: @llvm.ppc.altivec.vpkshus 2907 // CHECK-LE: @llvm.ppc.altivec.vpkshus 2908 2909 res_vuc = vec_packsu(vus, vus); 2910 // CHECK: @llvm.ppc.altivec.vpkuhus 2911 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2912 2913 res_vus = vec_packsu(vi, vi); 2914 // CHECK: @llvm.ppc.altivec.vpkswus 2915 // CHECK-LE: @llvm.ppc.altivec.vpkswus 2916 2917 res_vus = vec_packsu(vui, vui); 2918 // CHECK: @llvm.ppc.altivec.vpkuwus 2919 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2920 2921 res_vuc = vec_vpkshus(vs, vs); 2922 // CHECK: @llvm.ppc.altivec.vpkshus 2923 // CHECK-LE: @llvm.ppc.altivec.vpkshus 2924 2925 res_vuc = vec_vpkshus(vus, vus); 2926 // CHECK: @llvm.ppc.altivec.vpkuhus 2927 // CHECK-LE: @llvm.ppc.altivec.vpkuhus 2928 2929 res_vus = vec_vpkswus(vi, vi); 2930 // CHECK: @llvm.ppc.altivec.vpkswus 2931 // CHECK-LE: @llvm.ppc.altivec.vpkswus 2932 2933 res_vus = vec_vpkswus(vui, vui); 2934 // CHECK: @llvm.ppc.altivec.vpkuwus 2935 // CHECK-LE: @llvm.ppc.altivec.vpkuwus 2936 2937 /* vec_perm */ 2938 res_vsc = vec_perm(vsc, vsc, vuc); 2939 // CHECK: @llvm.ppc.altivec.vperm 2940 // CHECK-LE: @llvm.ppc.altivec.vperm 2941 2942 res_vuc = vec_perm(vuc, vuc, vuc); 2943 // CHECK: @llvm.ppc.altivec.vperm 2944 // CHECK-LE: @llvm.ppc.altivec.vperm 2945 2946 res_vbc = vec_perm(vbc, vbc, vuc); 2947 // CHECK: @llvm.ppc.altivec.vperm 2948 // CHECK-LE: @llvm.ppc.altivec.vperm 2949 2950 res_vs = vec_perm(vs, vs, vuc); 2951 // CHECK: @llvm.ppc.altivec.vperm 2952 // CHECK-LE: @llvm.ppc.altivec.vperm 2953 2954 res_vus = vec_perm(vus, vus, vuc); 2955 // CHECK: @llvm.ppc.altivec.vperm 2956 // CHECK-LE: @llvm.ppc.altivec.vperm 2957 2958 res_vbs = vec_perm(vbs, vbs, vuc); 2959 // CHECK: @llvm.ppc.altivec.vperm 2960 // CHECK-LE: @llvm.ppc.altivec.vperm 2961 2962 res_vp = vec_perm(vp, vp, vuc); 2963 // CHECK: @llvm.ppc.altivec.vperm 2964 // CHECK-LE: @llvm.ppc.altivec.vperm 2965 2966 res_vi = vec_perm(vi, vi, vuc); 2967 // CHECK: @llvm.ppc.altivec.vperm 2968 // CHECK-LE: @llvm.ppc.altivec.vperm 2969 2970 res_vui = vec_perm(vui, vui, vuc); 2971 // CHECK: @llvm.ppc.altivec.vperm 2972 // CHECK-LE: @llvm.ppc.altivec.vperm 2973 2974 res_vbi = vec_perm(vbi, vbi, vuc); 2975 // CHECK: @llvm.ppc.altivec.vperm 2976 // CHECK-LE: @llvm.ppc.altivec.vperm 2977 2978 res_vf = vec_perm(vf, vf, vuc); 2979 // CHECK: @llvm.ppc.altivec.vperm 2980 // CHECK-LE: @llvm.ppc.altivec.vperm 2981 2982 res_vsc = vec_vperm(vsc, vsc, vuc); 2983 // CHECK: @llvm.ppc.altivec.vperm 2984 // CHECK-LE: @llvm.ppc.altivec.vperm 2985 2986 res_vuc = vec_vperm(vuc, vuc, vuc); 2987 // CHECK: @llvm.ppc.altivec.vperm 2988 // CHECK-LE: @llvm.ppc.altivec.vperm 2989 2990 res_vbc = vec_vperm(vbc, vbc, vuc); 2991 // CHECK: @llvm.ppc.altivec.vperm 2992 // CHECK-LE: @llvm.ppc.altivec.vperm 2993 2994 res_vs = vec_vperm(vs, vs, vuc); 2995 // CHECK: @llvm.ppc.altivec.vperm 2996 // CHECK-LE: @llvm.ppc.altivec.vperm 2997 2998 res_vus = vec_vperm(vus, vus, vuc); 2999 // CHECK: @llvm.ppc.altivec.vperm 3000 // CHECK-LE: @llvm.ppc.altivec.vperm 3001 3002 res_vbs = vec_vperm(vbs, vbs, vuc); 3003 // CHECK: @llvm.ppc.altivec.vperm 3004 // CHECK-LE: @llvm.ppc.altivec.vperm 3005 3006 res_vp = vec_vperm(vp, vp, vuc); 3007 // CHECK: @llvm.ppc.altivec.vperm 3008 // CHECK-LE: @llvm.ppc.altivec.vperm 3009 3010 res_vi = vec_vperm(vi, vi, vuc); 3011 // CHECK: @llvm.ppc.altivec.vperm 3012 // CHECK-LE: @llvm.ppc.altivec.vperm 3013 3014 res_vui = vec_vperm(vui, vui, vuc); 3015 // CHECK: @llvm.ppc.altivec.vperm 3016 // CHECK-LE: @llvm.ppc.altivec.vperm 3017 3018 res_vbi = vec_vperm(vbi, vbi, vuc); 3019 // CHECK: @llvm.ppc.altivec.vperm 3020 // CHECK-LE: @llvm.ppc.altivec.vperm 3021 3022 res_vf = vec_vperm(vf, vf, vuc); 3023 // CHECK: @llvm.ppc.altivec.vperm 3024 // CHECK-LE: @llvm.ppc.altivec.vperm 3025 3026 /* vec_re */ 3027 res_vf = vec_re(vf); 3028 // CHECK: @llvm.ppc.altivec.vrefp 3029 // CHECK-LE: @llvm.ppc.altivec.vrefp 3030 3031 res_vf = vec_vrefp(vf); 3032 // CHECK: @llvm.ppc.altivec.vrefp 3033 // CHECK-LE: @llvm.ppc.altivec.vrefp 3034 3035 /* vec_rl */ 3036 res_vsc = vec_rl(vsc, vuc); 3037 // CHECK: @llvm.ppc.altivec.vrlb 3038 // CHECK-LE: @llvm.ppc.altivec.vrlb 3039 3040 res_vuc = vec_rl(vuc, vuc); 3041 // CHECK: @llvm.ppc.altivec.vrlb 3042 // CHECK-LE: @llvm.ppc.altivec.vrlb 3043 3044 res_vs = vec_rl(vs, vus); 3045 // CHECK: @llvm.ppc.altivec.vrlh 3046 // CHECK-LE: @llvm.ppc.altivec.vrlh 3047 3048 res_vus = vec_rl(vus, vus); 3049 // CHECK: @llvm.ppc.altivec.vrlh 3050 // CHECK-LE: @llvm.ppc.altivec.vrlh 3051 3052 res_vi = vec_rl(vi, vui); 3053 // CHECK: @llvm.ppc.altivec.vrlw 3054 // CHECK-LE: @llvm.ppc.altivec.vrlw 3055 3056 res_vui = vec_rl(vui, vui); 3057 // CHECK: @llvm.ppc.altivec.vrlw 3058 // CHECK-LE: @llvm.ppc.altivec.vrlw 3059 3060 res_vsc = vec_vrlb(vsc, vuc); 3061 // CHECK: @llvm.ppc.altivec.vrlb 3062 // CHECK-LE: @llvm.ppc.altivec.vrlb 3063 3064 res_vuc = vec_vrlb(vuc, vuc); 3065 // CHECK: @llvm.ppc.altivec.vrlb 3066 // CHECK-LE: @llvm.ppc.altivec.vrlb 3067 3068 res_vs = vec_vrlh(vs, vus); 3069 // CHECK: @llvm.ppc.altivec.vrlh 3070 // CHECK-LE: @llvm.ppc.altivec.vrlh 3071 3072 res_vus = vec_vrlh(vus, vus); 3073 // CHECK: @llvm.ppc.altivec.vrlh 3074 // CHECK-LE: @llvm.ppc.altivec.vrlh 3075 3076 res_vi = vec_vrlw(vi, vui); 3077 // CHECK: @llvm.ppc.altivec.vrlw 3078 // CHECK-LE: @llvm.ppc.altivec.vrlw 3079 3080 res_vui = vec_vrlw(vui, vui); 3081 // CHECK: @llvm.ppc.altivec.vrlw 3082 // CHECK-LE: @llvm.ppc.altivec.vrlw 3083 3084 /* vec_round */ 3085 res_vf = vec_round(vf); 3086 // CHECK: @llvm.ppc.altivec.vrfin 3087 // CHECK-LE: @llvm.ppc.altivec.vrfin 3088 3089 res_vf = vec_vrfin(vf); 3090 // CHECK: @llvm.ppc.altivec.vrfin 3091 // CHECK-LE: @llvm.ppc.altivec.vrfin 3092 3093 /* vec_rsqrte */ 3094 res_vf = vec_rsqrte(vf); 3095 // CHECK: @llvm.ppc.altivec.vrsqrtefp 3096 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp 3097 3098 res_vf = vec_vrsqrtefp(vf); 3099 // CHECK: @llvm.ppc.altivec.vrsqrtefp 3100 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp 3101 3102 /* vec_sel */ 3103 res_vsc = vec_sel(vsc, vsc, vuc); 3104 // CHECK: xor <16 x i8> 3105 // CHECK: and <16 x i8> 3106 // CHECK: and <16 x i8> 3107 // CHECK: or <16 x i8> 3108 // CHECK-LE: xor <16 x i8> 3109 // CHECK-LE: and <16 x i8> 3110 // CHECK-LE: and <16 x i8> 3111 // CHECK-LE: or <16 x i8> 3112 3113 res_vsc = vec_sel(vsc, vsc, vbc); 3114 // CHECK: xor <16 x i8> 3115 // CHECK: and <16 x i8> 3116 // CHECK: and <16 x i8> 3117 // CHECK: or <16 x i8> 3118 // CHECK-LE: xor <16 x i8> 3119 // CHECK-LE: and <16 x i8> 3120 // CHECK-LE: and <16 x i8> 3121 // CHECK-LE: or <16 x i8> 3122 3123 res_vuc = vec_sel(vuc, vuc, vuc); 3124 // CHECK: xor <16 x i8> 3125 // CHECK: and <16 x i8> 3126 // CHECK: and <16 x i8> 3127 // CHECK: or <16 x i8> 3128 // CHECK-LE: xor <16 x i8> 3129 // CHECK-LE: and <16 x i8> 3130 // CHECK-LE: and <16 x i8> 3131 // CHECK-LE: or <16 x i8> 3132 3133 res_vuc = vec_sel(vuc, vuc, vbc); 3134 // CHECK: xor <16 x i8> 3135 // CHECK: and <16 x i8> 3136 // CHECK: and <16 x i8> 3137 // CHECK: or <16 x i8> 3138 // CHECK-LE: xor <16 x i8> 3139 // CHECK-LE: and <16 x i8> 3140 // CHECK-LE: and <16 x i8> 3141 // CHECK-LE: or <16 x i8> 3142 3143 res_vbc = vec_sel(vbc, vbc, vuc); 3144 // CHECK: xor <16 x i8> 3145 // CHECK: and <16 x i8> 3146 // CHECK: and <16 x i8> 3147 // CHECK: or <16 x i8> 3148 // CHECK-LE: xor <16 x i8> 3149 // CHECK-LE: and <16 x i8> 3150 // CHECK-LE: and <16 x i8> 3151 // CHECK-LE: or <16 x i8> 3152 3153 res_vbc = vec_sel(vbc, vbc, vbc); 3154 // CHECK: xor <16 x i8> 3155 // CHECK: and <16 x i8> 3156 // CHECK: and <16 x i8> 3157 // CHECK: or <16 x i8> 3158 // CHECK-LE: xor <16 x i8> 3159 // CHECK-LE: and <16 x i8> 3160 // CHECK-LE: and <16 x i8> 3161 // CHECK-LE: or <16 x i8> 3162 3163 res_vs = vec_sel(vs, vs, vus); 3164 // CHECK: xor <8 x i16> 3165 // CHECK: and <8 x i16> 3166 // CHECK: and <8 x i16> 3167 // CHECK: or <8 x i16> 3168 // CHECK-LE: xor <8 x i16> 3169 // CHECK-LE: and <8 x i16> 3170 // CHECK-LE: and <8 x i16> 3171 // CHECK-LE: or <8 x i16> 3172 3173 res_vs = vec_sel(vs, vs, vbs); 3174 // CHECK: xor <8 x i16> 3175 // CHECK: and <8 x i16> 3176 // CHECK: and <8 x i16> 3177 // CHECK: or <8 x i16> 3178 // CHECK-LE: xor <8 x i16> 3179 // CHECK-LE: and <8 x i16> 3180 // CHECK-LE: and <8 x i16> 3181 // CHECK-LE: or <8 x i16> 3182 3183 res_vus = vec_sel(vus, vus, vus); 3184 // CHECK: xor <8 x i16> 3185 // CHECK: and <8 x i16> 3186 // CHECK: and <8 x i16> 3187 // CHECK: or <8 x i16> 3188 // CHECK-LE: xor <8 x i16> 3189 // CHECK-LE: and <8 x i16> 3190 // CHECK-LE: and <8 x i16> 3191 // CHECK-LE: or <8 x i16> 3192 3193 res_vus = vec_sel(vus, vus, vbs); 3194 // CHECK: xor <8 x i16> 3195 // CHECK: and <8 x i16> 3196 // CHECK: and <8 x i16> 3197 // CHECK: or <8 x i16> 3198 // CHECK-LE: xor <8 x i16> 3199 // CHECK-LE: and <8 x i16> 3200 // CHECK-LE: and <8 x i16> 3201 // CHECK-LE: or <8 x i16> 3202 3203 res_vbs = vec_sel(vbs, vbs, vus); 3204 // CHECK: xor <8 x i16> 3205 // CHECK: and <8 x i16> 3206 // CHECK: and <8 x i16> 3207 // CHECK: or <8 x i16> 3208 // CHECK-LE: xor <8 x i16> 3209 // CHECK-LE: and <8 x i16> 3210 // CHECK-LE: and <8 x i16> 3211 // CHECK-LE: or <8 x i16> 3212 3213 res_vbs = vec_sel(vbs, vbs, vbs); 3214 // CHECK: xor <8 x i16> 3215 // CHECK: and <8 x i16> 3216 // CHECK: and <8 x i16> 3217 // CHECK: or <8 x i16> 3218 // CHECK-LE: xor <8 x i16> 3219 // CHECK-LE: and <8 x i16> 3220 // CHECK-LE: and <8 x i16> 3221 // CHECK-LE: or <8 x i16> 3222 3223 res_vi = vec_sel(vi, vi, vui); 3224 // CHECK: xor <4 x i32> 3225 // CHECK: and <4 x i32> 3226 // CHECK: and <4 x i32> 3227 // CHECK: or <4 x i32> 3228 // CHECK-LE: xor <4 x i32> 3229 // CHECK-LE: and <4 x i32> 3230 // CHECK-LE: and <4 x i32> 3231 // CHECK-LE: or <4 x i32> 3232 3233 res_vi = vec_sel(vi, vi, vbi); 3234 // CHECK: xor <4 x i32> 3235 // CHECK: and <4 x i32> 3236 // CHECK: and <4 x i32> 3237 // CHECK: or <4 x i32> 3238 // CHECK-LE: xor <4 x i32> 3239 // CHECK-LE: and <4 x i32> 3240 // CHECK-LE: and <4 x i32> 3241 // CHECK-LE: or <4 x i32> 3242 3243 res_vui = vec_sel(vui, vui, vui); 3244 // CHECK: xor <4 x i32> 3245 // CHECK: and <4 x i32> 3246 // CHECK: and <4 x i32> 3247 // CHECK: or <4 x i32> 3248 // CHECK-LE: xor <4 x i32> 3249 // CHECK-LE: and <4 x i32> 3250 // CHECK-LE: and <4 x i32> 3251 // CHECK-LE: or <4 x i32> 3252 3253 res_vui = vec_sel(vui, vui, vbi); 3254 // CHECK: xor <4 x i32> 3255 // CHECK: and <4 x i32> 3256 // CHECK: and <4 x i32> 3257 // CHECK: or <4 x i32> 3258 // CHECK-LE: xor <4 x i32> 3259 // CHECK-LE: and <4 x i32> 3260 // CHECK-LE: and <4 x i32> 3261 // CHECK-LE: or <4 x i32> 3262 3263 res_vbi = vec_sel(vbi, vbi, vui); 3264 // CHECK: xor <4 x i32> 3265 // CHECK: and <4 x i32> 3266 // CHECK: and <4 x i32> 3267 // CHECK: or <4 x i32> 3268 // CHECK-LE: xor <4 x i32> 3269 // CHECK-LE: and <4 x i32> 3270 // CHECK-LE: and <4 x i32> 3271 // CHECK-LE: or <4 x i32> 3272 3273 res_vbi = vec_sel(vbi, vbi, vbi); 3274 // CHECK: xor <4 x i32> 3275 // CHECK: and <4 x i32> 3276 // CHECK: and <4 x i32> 3277 // CHECK: or <4 x i32> 3278 // CHECK-LE: xor <4 x i32> 3279 // CHECK-LE: and <4 x i32> 3280 // CHECK-LE: and <4 x i32> 3281 // CHECK-LE: or <4 x i32> 3282 3283 res_vf = vec_sel(vf, vf, vui); 3284 // CHECK: xor <4 x i32> 3285 // CHECK: and <4 x i32> 3286 // CHECK: and <4 x i32> 3287 // CHECK: or <4 x i32> 3288 // CHECK-LE: xor <4 x i32> 3289 // CHECK-LE: and <4 x i32> 3290 // CHECK-LE: and <4 x i32> 3291 // CHECK-LE: or <4 x i32> 3292 3293 res_vf = vec_sel(vf, vf, vbi); 3294 // CHECK: xor <4 x i32> 3295 // CHECK: and <4 x i32> 3296 // CHECK: and <4 x i32> 3297 // CHECK: or <4 x i32> 3298 // CHECK-LE: xor <4 x i32> 3299 // CHECK-LE: and <4 x i32> 3300 // CHECK-LE: and <4 x i32> 3301 // CHECK-LE: or <4 x i32> 3302 3303 res_vsc = vec_vsel(vsc, vsc, vuc); 3304 // CHECK: xor <16 x i8> 3305 // CHECK: and <16 x i8> 3306 // CHECK: and <16 x i8> 3307 // CHECK: or <16 x i8> 3308 // CHECK-LE: xor <16 x i8> 3309 // CHECK-LE: and <16 x i8> 3310 // CHECK-LE: and <16 x i8> 3311 // CHECK-LE: or <16 x i8> 3312 3313 res_vsc = vec_vsel(vsc, vsc, vbc); 3314 // CHECK: xor <16 x i8> 3315 // CHECK: and <16 x i8> 3316 // CHECK: and <16 x i8> 3317 // CHECK: or <16 x i8> 3318 // CHECK-LE: xor <16 x i8> 3319 // CHECK-LE: and <16 x i8> 3320 // CHECK-LE: and <16 x i8> 3321 // CHECK-LE: or <16 x i8> 3322 3323 res_vuc = vec_vsel(vuc, vuc, vuc); 3324 // CHECK: xor <16 x i8> 3325 // CHECK: and <16 x i8> 3326 // CHECK: and <16 x i8> 3327 // CHECK: or <16 x i8> 3328 // CHECK-LE: xor <16 x i8> 3329 // CHECK-LE: and <16 x i8> 3330 // CHECK-LE: and <16 x i8> 3331 // CHECK-LE: or <16 x i8> 3332 3333 res_vuc = vec_vsel(vuc, vuc, vbc); 3334 // CHECK: xor <16 x i8> 3335 // CHECK: and <16 x i8> 3336 // CHECK: and <16 x i8> 3337 // CHECK: or <16 x i8> 3338 // CHECK-LE: xor <16 x i8> 3339 // CHECK-LE: and <16 x i8> 3340 // CHECK-LE: and <16 x i8> 3341 // CHECK-LE: or <16 x i8> 3342 3343 res_vbc = vec_vsel(vbc, vbc, vuc); 3344 // CHECK: xor <16 x i8> 3345 // CHECK: and <16 x i8> 3346 // CHECK: and <16 x i8> 3347 // CHECK: or <16 x i8> 3348 // CHECK-LE: xor <16 x i8> 3349 // CHECK-LE: and <16 x i8> 3350 // CHECK-LE: and <16 x i8> 3351 // CHECK-LE: or <16 x i8> 3352 3353 res_vbc = vec_vsel(vbc, vbc, vbc); 3354 // CHECK: xor <16 x i8> 3355 // CHECK: and <16 x i8> 3356 // CHECK: and <16 x i8> 3357 // CHECK: or <16 x i8> 3358 // CHECK-LE: xor <16 x i8> 3359 // CHECK-LE: and <16 x i8> 3360 // CHECK-LE: and <16 x i8> 3361 // CHECK-LE: or <16 x i8> 3362 3363 res_vs = vec_vsel(vs, vs, vus); 3364 // CHECK: xor <8 x i16> 3365 // CHECK: and <8 x i16> 3366 // CHECK: and <8 x i16> 3367 // CHECK: or <8 x i16> 3368 // CHECK-LE: xor <8 x i16> 3369 // CHECK-LE: and <8 x i16> 3370 // CHECK-LE: and <8 x i16> 3371 // CHECK-LE: or <8 x i16> 3372 3373 res_vs = vec_vsel(vs, vs, vbs); 3374 // CHECK: xor <8 x i16> 3375 // CHECK: and <8 x i16> 3376 // CHECK: and <8 x i16> 3377 // CHECK: or <8 x i16> 3378 // CHECK-LE: xor <8 x i16> 3379 // CHECK-LE: and <8 x i16> 3380 // CHECK-LE: and <8 x i16> 3381 // CHECK-LE: or <8 x i16> 3382 3383 res_vus = vec_vsel(vus, vus, vus); 3384 // CHECK: xor <8 x i16> 3385 // CHECK: and <8 x i16> 3386 // CHECK: and <8 x i16> 3387 // CHECK: or <8 x i16> 3388 // CHECK-LE: xor <8 x i16> 3389 // CHECK-LE: and <8 x i16> 3390 // CHECK-LE: and <8 x i16> 3391 // CHECK-LE: or <8 x i16> 3392 3393 res_vus = vec_vsel(vus, vus, vbs); 3394 // CHECK: xor <8 x i16> 3395 // CHECK: and <8 x i16> 3396 // CHECK: and <8 x i16> 3397 // CHECK: or <8 x i16> 3398 // CHECK-LE: xor <8 x i16> 3399 // CHECK-LE: and <8 x i16> 3400 // CHECK-LE: and <8 x i16> 3401 // CHECK-LE: or <8 x i16> 3402 3403 res_vbs = vec_vsel(vbs, vbs, vus); 3404 // CHECK: xor <8 x i16> 3405 // CHECK: and <8 x i16> 3406 // CHECK: and <8 x i16> 3407 // CHECK: or <8 x i16> 3408 // CHECK-LE: xor <8 x i16> 3409 // CHECK-LE: and <8 x i16> 3410 // CHECK-LE: and <8 x i16> 3411 // CHECK-LE: or <8 x i16> 3412 3413 res_vbs = vec_vsel(vbs, vbs, vbs); 3414 // CHECK: xor <8 x i16> 3415 // CHECK: and <8 x i16> 3416 // CHECK: and <8 x i16> 3417 // CHECK: or <8 x i16> 3418 // CHECK-LE: xor <8 x i16> 3419 // CHECK-LE: and <8 x i16> 3420 // CHECK-LE: and <8 x i16> 3421 // CHECK-LE: or <8 x i16> 3422 3423 res_vi = vec_vsel(vi, vi, vui); 3424 // CHECK: xor <4 x i32> 3425 // CHECK: and <4 x i32> 3426 // CHECK: and <4 x i32> 3427 // CHECK: or <4 x i32> 3428 // CHECK-LE: xor <4 x i32> 3429 // CHECK-LE: and <4 x i32> 3430 // CHECK-LE: and <4 x i32> 3431 // CHECK-LE: or <4 x i32> 3432 3433 res_vi = vec_vsel(vi, vi, vbi); 3434 // CHECK: xor <4 x i32> 3435 // CHECK: and <4 x i32> 3436 // CHECK: and <4 x i32> 3437 // CHECK: or <4 x i32> 3438 // CHECK-LE: xor <4 x i32> 3439 // CHECK-LE: and <4 x i32> 3440 // CHECK-LE: and <4 x i32> 3441 // CHECK-LE: or <4 x i32> 3442 3443 res_vui = vec_vsel(vui, vui, vui); 3444 // CHECK: xor <4 x i32> 3445 // CHECK: and <4 x i32> 3446 // CHECK: and <4 x i32> 3447 // CHECK: or <4 x i32> 3448 // CHECK-LE: xor <4 x i32> 3449 // CHECK-LE: and <4 x i32> 3450 // CHECK-LE: and <4 x i32> 3451 // CHECK-LE: or <4 x i32> 3452 3453 res_vui = vec_vsel(vui, vui, vbi); 3454 // CHECK: xor <4 x i32> 3455 // CHECK: and <4 x i32> 3456 // CHECK: and <4 x i32> 3457 // CHECK: or <4 x i32> 3458 // CHECK-LE: xor <4 x i32> 3459 // CHECK-LE: and <4 x i32> 3460 // CHECK-LE: and <4 x i32> 3461 // CHECK-LE: or <4 x i32> 3462 3463 res_vbi = vec_vsel(vbi, vbi, vui); 3464 // CHECK: xor <4 x i32> 3465 // CHECK: and <4 x i32> 3466 // CHECK: and <4 x i32> 3467 // CHECK: or <4 x i32> 3468 // CHECK-LE: xor <4 x i32> 3469 // CHECK-LE: and <4 x i32> 3470 // CHECK-LE: and <4 x i32> 3471 // CHECK-LE: or <4 x i32> 3472 3473 res_vbi = vec_vsel(vbi, vbi, vbi); 3474 // CHECK: xor <4 x i32> 3475 // CHECK: and <4 x i32> 3476 // CHECK: and <4 x i32> 3477 // CHECK: or <4 x i32> 3478 // CHECK-LE: xor <4 x i32> 3479 // CHECK-LE: and <4 x i32> 3480 // CHECK-LE: and <4 x i32> 3481 // CHECK-LE: or <4 x i32> 3482 3483 res_vf = vec_vsel(vf, vf, vui); 3484 // CHECK: xor <4 x i32> 3485 // CHECK: and <4 x i32> 3486 // CHECK: and <4 x i32> 3487 // CHECK: or <4 x i32> 3488 // CHECK-LE: xor <4 x i32> 3489 // CHECK-LE: and <4 x i32> 3490 // CHECK-LE: and <4 x i32> 3491 // CHECK-LE: or <4 x i32> 3492 3493 res_vf = vec_vsel(vf, vf, vbi); 3494 // CHECK: xor <4 x i32> 3495 // CHECK: and <4 x i32> 3496 // CHECK: and <4 x i32> 3497 // CHECK: or <4 x i32> 3498 // CHECK-LE: xor <4 x i32> 3499 // CHECK-LE: and <4 x i32> 3500 // CHECK-LE: and <4 x i32> 3501 // CHECK-LE: or <4 x i32> 3502 3503 /* vec_sl */ 3504 res_vsc = vec_sl(vsc, vuc); 3505 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 3506 // CHECK: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3507 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 3508 // CHECK-LE: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3509 3510 res_vuc = vec_sl(vuc, vuc); 3511 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 3512 // CHECK: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3513 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 3514 // CHECK-LE: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3515 3516 res_vs = vec_sl(vs, vus); 3517 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 3518 // CHECK: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3519 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 3520 // CHECK-LE: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3521 3522 res_vus = vec_sl(vus, vus); 3523 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 3524 // CHECK: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3525 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 3526 // CHECK-LE: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3527 3528 res_vi = vec_sl(vi, vui); 3529 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 3530 // CHECK: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3531 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 3532 // CHECK-LE: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3533 3534 res_vui = vec_sl(vui, vui); 3535 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 3536 // CHECK: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3537 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 3538 // CHECK-LE: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 3539 3540 res_vsc = vec_vslb(vsc, vuc); 3541 // CHECK: shl <16 x i8> 3542 // CHECK-LE: shl <16 x i8> 3543 3544 res_vuc = vec_vslb(vuc, vuc); 3545 // CHECK: shl <16 x i8> 3546 // CHECK-LE: shl <16 x i8> 3547 3548 res_vs = vec_vslh(vs, vus); 3549 // CHECK: shl <8 x i16> 3550 // CHECK-LE: shl <8 x i16> 3551 3552 res_vus = vec_vslh(vus, vus); 3553 // CHECK: shl <8 x i16> 3554 // CHECK-LE: shl <8 x i16> 3555 3556 res_vi = vec_vslw(vi, vui); 3557 // CHECK: shl <4 x i32> 3558 // CHECK-LE: shl <4 x i32> 3559 3560 res_vui = vec_vslw(vui, vui); 3561 // CHECK: shl <4 x i32> 3562 // CHECK-LE: shl <4 x i32> 3563 3564 /* vec_sld */ 3565 res_vsc = vec_sld(vsc, vsc, 0); 3566 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3567 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3568 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3569 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3570 // CHECK: @llvm.ppc.altivec.vperm 3571 // CHECK-LE: sub nsw i32 16 3572 // CHECK-LE: sub nsw i32 17 3573 // CHECK-LE: sub nsw i32 18 3574 // CHECK-LE: sub nsw i32 31 3575 // CHECK-LE: @llvm.ppc.altivec.vperm 3576 3577 res_vuc = vec_sld(vuc, vuc, 0); 3578 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3579 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3580 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3581 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3582 // CHECK: @llvm.ppc.altivec.vperm 3583 // CHECK-LE: sub nsw i32 16 3584 // CHECK-LE: sub nsw i32 17 3585 // CHECK-LE: sub nsw i32 18 3586 // CHECK-LE: sub nsw i32 31 3587 // CHECK-LE: @llvm.ppc.altivec.vperm 3588 3589 res_vs = vec_sld(vs, vs, 0); 3590 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3591 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3592 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3593 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3594 // CHECK: @llvm.ppc.altivec.vperm 3595 // CHECK-LE: sub nsw i32 16 3596 // CHECK-LE: sub nsw i32 17 3597 // CHECK-LE: sub nsw i32 18 3598 // CHECK-LE: sub nsw i32 31 3599 // CHECK-LE: @llvm.ppc.altivec.vperm 3600 3601 res_vus = vec_sld(vus, vus, 0); 3602 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3603 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3604 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3605 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3606 // CHECK: @llvm.ppc.altivec.vperm 3607 // CHECK-LE: sub nsw i32 16 3608 // CHECK-LE: sub nsw i32 17 3609 // CHECK-LE: sub nsw i32 18 3610 // CHECK-LE: sub nsw i32 31 3611 // CHECK-LE: @llvm.ppc.altivec.vperm 3612 3613 res_vbs = vec_sld(vbs, vbs, 0); 3614 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3615 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3616 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3617 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3618 // CHECK: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3619 // CHECK: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3620 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8> 3621 // CHECK-LE: sub nsw i32 16 3622 // CHECK-LE: sub nsw i32 17 3623 // CHECK-LE: sub nsw i32 18 3624 // CHECK-LE: sub nsw i32 31 3625 // CHECK-LE: xor <16 x i8> 3626 // CHECK-LE: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3627 // CHECK-LE: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32> 3628 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8> 3629 3630 res_vp = vec_sld(vp, vp, 0); 3631 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3632 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3633 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3634 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3635 // CHECK: @llvm.ppc.altivec.vperm 3636 // CHECK-LE: sub nsw i32 16 3637 // CHECK-LE: sub nsw i32 17 3638 // CHECK-LE: sub nsw i32 18 3639 // CHECK-LE: sub nsw i32 31 3640 // CHECK-LE: @llvm.ppc.altivec.vperm 3641 3642 res_vi = vec_sld(vi, vi, 0); 3643 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3644 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3645 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3646 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3647 // CHECK: @llvm.ppc.altivec.vperm 3648 // CHECK-LE: sub nsw i32 16 3649 // CHECK-LE: sub nsw i32 17 3650 // CHECK-LE: sub nsw i32 18 3651 // CHECK-LE: sub nsw i32 31 3652 // CHECK-LE: @llvm.ppc.altivec.vperm 3653 3654 res_vui = vec_sld(vui, vui, 0); 3655 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3656 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3657 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3658 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3659 // CHECK: @llvm.ppc.altivec.vperm 3660 // CHECK-LE: sub nsw i32 16 3661 // CHECK-LE: sub nsw i32 17 3662 // CHECK-LE: sub nsw i32 18 3663 // CHECK-LE: sub nsw i32 31 3664 // CHECK-LE: @llvm.ppc.altivec.vperm 3665 3666 res_vbi = vec_sld(vbi, vbi, 0); 3667 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3668 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3669 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3670 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3671 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8> 3672 // CHECK-LE: sub nsw i32 16 3673 // CHECK-LE: sub nsw i32 17 3674 // CHECK-LE: sub nsw i32 18 3675 // CHECK-LE: sub nsw i32 31 3676 // CHECK-LE: xor <16 x i8> 3677 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8> 3678 3679 res_vf = vec_sld(vf, vf, 0); 3680 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3681 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3682 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3683 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3684 // CHECK: @llvm.ppc.altivec.vperm 3685 // CHECK-LE: sub nsw i32 16 3686 // CHECK-LE: sub nsw i32 17 3687 // CHECK-LE: sub nsw i32 18 3688 // CHECK-LE: sub nsw i32 31 3689 // CHECK-LE: @llvm.ppc.altivec.vperm 3690 3691 /* vec_sldw */ 3692 res_vsc = vec_sldw(vsc, vsc, 0); 3693 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3694 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3695 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3696 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3697 // CHECK: @llvm.ppc.altivec.vperm 3698 // CHECK-LE: sub nsw i32 16 3699 // CHECK-LE: sub nsw i32 17 3700 // CHECK-LE: sub nsw i32 18 3701 // CHECK-LE: sub nsw i32 31 3702 // CHECK-LE: @llvm.ppc.altivec.vperm 3703 3704 res_vuc = vec_sldw(vuc, vuc, 0); 3705 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3706 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3707 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3708 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3709 // CHECK: @llvm.ppc.altivec.vperm 3710 // CHECK-LE: sub nsw i32 16 3711 // CHECK-LE: sub nsw i32 17 3712 // CHECK-LE: sub nsw i32 18 3713 // CHECK-LE: sub nsw i32 31 3714 // CHECK-LE: @llvm.ppc.altivec.vperm 3715 3716 res_vi = vec_sldw(vi, vi, 0); 3717 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3718 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3719 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3720 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3721 // CHECK: @llvm.ppc.altivec.vperm 3722 // CHECK-LE: sub nsw i32 16 3723 // CHECK-LE: sub nsw i32 17 3724 // CHECK-LE: sub nsw i32 18 3725 // CHECK-LE: sub nsw i32 31 3726 // CHECK-LE: @llvm.ppc.altivec.vperm 3727 3728 res_vui = vec_sldw(vui, vui, 0); 3729 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3730 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3731 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3732 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3733 // CHECK: @llvm.ppc.altivec.vperm 3734 // CHECK-LE: sub nsw i32 16 3735 // CHECK-LE: sub nsw i32 17 3736 // CHECK-LE: sub nsw i32 18 3737 // CHECK-LE: sub nsw i32 31 3738 // CHECK-LE: @llvm.ppc.altivec.vperm 3739 3740 res_vs = vec_sldw(vs, vs, 0); 3741 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3742 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3743 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3744 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3745 // CHECK: @llvm.ppc.altivec.vperm 3746 // CHECK-LE: sub nsw i32 16 3747 // CHECK-LE: sub nsw i32 17 3748 // CHECK-LE: sub nsw i32 18 3749 // CHECK-LE: sub nsw i32 31 3750 // CHECK-LE: @llvm.ppc.altivec.vperm 3751 3752 res_vus = vec_sldw(vus, vus, 0); 3753 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3754 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3755 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3756 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3757 // CHECK: @llvm.ppc.altivec.vperm 3758 // CHECK-LE: sub nsw i32 16 3759 // CHECK-LE: sub nsw i32 17 3760 // CHECK-LE: sub nsw i32 18 3761 // CHECK-LE: sub nsw i32 31 3762 // CHECK-LE: @llvm.ppc.altivec.vperm 3763 3764 res_vf = vec_sldw(vf, vf, 0); 3765 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3766 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3767 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3768 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3769 // CHECK: @llvm.ppc.altivec.vperm 3770 // CHECK-LE: sub nsw i32 16 3771 // CHECK-LE: sub nsw i32 17 3772 // CHECK-LE: sub nsw i32 18 3773 // CHECK-LE: sub nsw i32 31 3774 // CHECK-LE: @llvm.ppc.altivec.vperm 3775 3776 res_vsc = vec_vsldoi(vsc, vsc, 0); 3777 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3778 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3779 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3780 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3781 // CHECK: @llvm.ppc.altivec.vperm 3782 // CHECK-LE: sub nsw i32 16 3783 // CHECK-LE: sub nsw i32 17 3784 // CHECK-LE: sub nsw i32 18 3785 // CHECK-LE: sub nsw i32 31 3786 // CHECK-LE: @llvm.ppc.altivec.vperm 3787 3788 res_vuc = vec_vsldoi(vuc, vuc, 0); 3789 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3790 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3791 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3792 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3793 // CHECK: @llvm.ppc.altivec.vperm 3794 // CHECK-LE: sub nsw i32 16 3795 // CHECK-LE: sub nsw i32 17 3796 // CHECK-LE: sub nsw i32 18 3797 // CHECK-LE: sub nsw i32 31 3798 // CHECK-LE: @llvm.ppc.altivec.vperm 3799 3800 res_vs = vec_vsldoi(vs, vs, 0); 3801 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3802 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3803 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3804 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3805 // CHECK: @llvm.ppc.altivec.vperm 3806 // CHECK-LE: sub nsw i32 16 3807 // CHECK-LE: sub nsw i32 17 3808 // CHECK-LE: sub nsw i32 18 3809 // CHECK-LE: sub nsw i32 31 3810 // CHECK-LE: @llvm.ppc.altivec.vperm 3811 3812 res_vus = vec_vsldoi(vus, vus, 0); 3813 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3814 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3815 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3816 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3817 // CHECK: @llvm.ppc.altivec.vperm 3818 // CHECK-LE: sub nsw i32 16 3819 // CHECK-LE: sub nsw i32 17 3820 // CHECK-LE: sub nsw i32 18 3821 // CHECK-LE: sub nsw i32 31 3822 // CHECK-LE: @llvm.ppc.altivec.vperm 3823 3824 res_vp = vec_vsldoi(vp, vp, 0); 3825 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3826 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3827 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3828 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3829 // CHECK: @llvm.ppc.altivec.vperm 3830 // CHECK-LE: sub nsw i32 16 3831 // CHECK-LE: sub nsw i32 17 3832 // CHECK-LE: sub nsw i32 18 3833 // CHECK-LE: sub nsw i32 31 3834 // CHECK-LE: @llvm.ppc.altivec.vperm 3835 3836 res_vi = vec_vsldoi(vi, vi, 0); 3837 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3838 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3839 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3840 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3841 // CHECK: @llvm.ppc.altivec.vperm 3842 // CHECK-LE: sub nsw i32 16 3843 // CHECK-LE: sub nsw i32 17 3844 // CHECK-LE: sub nsw i32 18 3845 // CHECK-LE: sub nsw i32 31 3846 // CHECK-LE: @llvm.ppc.altivec.vperm 3847 3848 res_vui = vec_vsldoi(vui, vui, 0); 3849 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3850 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3851 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3852 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3853 // CHECK: @llvm.ppc.altivec.vperm 3854 // CHECK-LE: sub nsw i32 16 3855 // CHECK-LE: sub nsw i32 17 3856 // CHECK-LE: sub nsw i32 18 3857 // CHECK-LE: sub nsw i32 31 3858 // CHECK-LE: @llvm.ppc.altivec.vperm 3859 3860 res_vf = vec_vsldoi(vf, vf, 0); 3861 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1 3862 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2 3863 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3 3864 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15 3865 // CHECK: @llvm.ppc.altivec.vperm 3866 // CHECK-LE: sub nsw i32 16 3867 // CHECK-LE: sub nsw i32 17 3868 // CHECK-LE: sub nsw i32 18 3869 // CHECK-LE: sub nsw i32 31 3870 // CHECK-LE: @llvm.ppc.altivec.vperm 3871 3872 /* vec_sll */ 3873 res_vsc = vec_sll(vsc, vuc); 3874 // CHECK: @llvm.ppc.altivec.vsl 3875 // CHECK-LE: @llvm.ppc.altivec.vsl 3876 3877 res_vsc = vec_sll(vsc, vus); 3878 // CHECK: @llvm.ppc.altivec.vsl 3879 // CHECK-LE: @llvm.ppc.altivec.vsl 3880 3881 res_vsc = vec_sll(vsc, vui); 3882 // CHECK: @llvm.ppc.altivec.vsl 3883 // CHECK-LE: @llvm.ppc.altivec.vsl 3884 3885 res_vuc = vec_sll(vuc, vuc); 3886 // CHECK: @llvm.ppc.altivec.vsl 3887 // CHECK-LE: @llvm.ppc.altivec.vsl 3888 3889 res_vuc = vec_sll(vuc, vus); 3890 // CHECK: @llvm.ppc.altivec.vsl 3891 // CHECK-LE: @llvm.ppc.altivec.vsl 3892 3893 res_vuc = vec_sll(vuc, vui); 3894 // CHECK: @llvm.ppc.altivec.vsl 3895 // CHECK-LE: @llvm.ppc.altivec.vsl 3896 3897 res_vbc = vec_sll(vbc, vuc); 3898 // CHECK: @llvm.ppc.altivec.vsl 3899 // CHECK-LE: @llvm.ppc.altivec.vsl 3900 3901 res_vbc = vec_sll(vbc, vus); 3902 // CHECK: @llvm.ppc.altivec.vsl 3903 // CHECK-LE: @llvm.ppc.altivec.vsl 3904 3905 res_vbc = vec_sll(vbc, vui); 3906 // CHECK: @llvm.ppc.altivec.vsl 3907 // CHECK-LE: @llvm.ppc.altivec.vsl 3908 3909 res_vs = vec_sll(vs, vuc); 3910 // CHECK: @llvm.ppc.altivec.vsl 3911 // CHECK-LE: @llvm.ppc.altivec.vsl 3912 3913 res_vs = vec_sll(vs, vus); 3914 // CHECK: @llvm.ppc.altivec.vsl 3915 // CHECK-LE: @llvm.ppc.altivec.vsl 3916 3917 res_vs = vec_sll(vs, vui); 3918 // CHECK: @llvm.ppc.altivec.vsl 3919 // CHECK-LE: @llvm.ppc.altivec.vsl 3920 3921 res_vus = vec_sll(vus, vuc); 3922 // CHECK: @llvm.ppc.altivec.vsl 3923 // CHECK-LE: @llvm.ppc.altivec.vsl 3924 3925 res_vus = vec_sll(vus, vus); 3926 // CHECK: @llvm.ppc.altivec.vsl 3927 // CHECK-LE: @llvm.ppc.altivec.vsl 3928 3929 res_vus = vec_sll(vus, vui); 3930 // CHECK: @llvm.ppc.altivec.vsl 3931 // CHECK-LE: @llvm.ppc.altivec.vsl 3932 3933 res_vbs = vec_sll(vbs, vuc); 3934 // CHECK: @llvm.ppc.altivec.vsl 3935 // CHECK-LE: @llvm.ppc.altivec.vsl 3936 3937 res_vbs = vec_sll(vbs, vus); 3938 // CHECK: @llvm.ppc.altivec.vsl 3939 // CHECK-LE: @llvm.ppc.altivec.vsl 3940 3941 res_vbs = vec_sll(vbs, vui); 3942 // CHECK: @llvm.ppc.altivec.vsl 3943 // CHECK-LE: @llvm.ppc.altivec.vsl 3944 3945 res_vp = vec_sll(vp, vuc); 3946 // CHECK: @llvm.ppc.altivec.vsl 3947 // CHECK-LE: @llvm.ppc.altivec.vsl 3948 3949 res_vp = vec_sll(vp, vus); 3950 // CHECK: @llvm.ppc.altivec.vsl 3951 // CHECK-LE: @llvm.ppc.altivec.vsl 3952 3953 res_vp = vec_sll(vp, vui); 3954 // CHECK: @llvm.ppc.altivec.vsl 3955 // CHECK-LE: @llvm.ppc.altivec.vsl 3956 3957 res_vi = vec_sll(vi, vuc); 3958 // CHECK: @llvm.ppc.altivec.vsl 3959 // CHECK-LE: @llvm.ppc.altivec.vsl 3960 3961 res_vi = vec_sll(vi, vus); 3962 // CHECK: @llvm.ppc.altivec.vsl 3963 // CHECK-LE: @llvm.ppc.altivec.vsl 3964 3965 res_vi = vec_sll(vi, vui); 3966 // CHECK: @llvm.ppc.altivec.vsl 3967 // CHECK-LE: @llvm.ppc.altivec.vsl 3968 3969 res_vui = vec_sll(vui, vuc); 3970 // CHECK: @llvm.ppc.altivec.vsl 3971 // CHECK-LE: @llvm.ppc.altivec.vsl 3972 3973 res_vui = vec_sll(vui, vus); 3974 // CHECK: @llvm.ppc.altivec.vsl 3975 // CHECK-LE: @llvm.ppc.altivec.vsl 3976 3977 res_vui = vec_sll(vui, vui); 3978 // CHECK: @llvm.ppc.altivec.vsl 3979 // CHECK-LE: @llvm.ppc.altivec.vsl 3980 3981 res_vbi = vec_sll(vbi, vuc); 3982 // CHECK: @llvm.ppc.altivec.vsl 3983 // CHECK-LE: @llvm.ppc.altivec.vsl 3984 3985 res_vbi = vec_sll(vbi, vus); 3986 // CHECK: @llvm.ppc.altivec.vsl 3987 // CHECK-LE: @llvm.ppc.altivec.vsl 3988 3989 res_vbi = vec_sll(vbi, vui); 3990 // CHECK: @llvm.ppc.altivec.vsl 3991 // CHECK-LE: @llvm.ppc.altivec.vsl 3992 3993 res_vsc = vec_vsl(vsc, vuc); 3994 // CHECK: @llvm.ppc.altivec.vsl 3995 // CHECK-LE: @llvm.ppc.altivec.vsl 3996 3997 res_vsc = vec_vsl(vsc, vus); 3998 // CHECK: @llvm.ppc.altivec.vsl 3999 // CHECK-LE: @llvm.ppc.altivec.vsl 4000 4001 res_vsc = vec_vsl(vsc, vui); 4002 // CHECK: @llvm.ppc.altivec.vsl 4003 // CHECK-LE: @llvm.ppc.altivec.vsl 4004 4005 res_vuc = vec_vsl(vuc, vuc); 4006 // CHECK: @llvm.ppc.altivec.vsl 4007 // CHECK-LE: @llvm.ppc.altivec.vsl 4008 4009 res_vuc = vec_vsl(vuc, vus); 4010 // CHECK: @llvm.ppc.altivec.vsl 4011 // CHECK-LE: @llvm.ppc.altivec.vsl 4012 4013 res_vuc = vec_vsl(vuc, vui); 4014 // CHECK: @llvm.ppc.altivec.vsl 4015 // CHECK-LE: @llvm.ppc.altivec.vsl 4016 4017 res_vbc = vec_vsl(vbc, vuc); 4018 // CHECK: @llvm.ppc.altivec.vsl 4019 // CHECK-LE: @llvm.ppc.altivec.vsl 4020 4021 res_vbc = vec_vsl(vbc, vus); 4022 // CHECK: @llvm.ppc.altivec.vsl 4023 // CHECK-LE: @llvm.ppc.altivec.vsl 4024 4025 res_vbc = vec_vsl(vbc, vui); 4026 // CHECK: @llvm.ppc.altivec.vsl 4027 // CHECK-LE: @llvm.ppc.altivec.vsl 4028 4029 res_vs = vec_vsl(vs, vuc); 4030 // CHECK: @llvm.ppc.altivec.vsl 4031 // CHECK-LE: @llvm.ppc.altivec.vsl 4032 4033 res_vs = vec_vsl(vs, vus); 4034 // CHECK: @llvm.ppc.altivec.vsl 4035 // CHECK-LE: @llvm.ppc.altivec.vsl 4036 4037 res_vs = vec_vsl(vs, vui); 4038 // CHECK: @llvm.ppc.altivec.vsl 4039 // CHECK-LE: @llvm.ppc.altivec.vsl 4040 4041 res_vus = vec_vsl(vus, vuc); 4042 // CHECK: @llvm.ppc.altivec.vsl 4043 // CHECK-LE: @llvm.ppc.altivec.vsl 4044 4045 res_vus = vec_vsl(vus, vus); 4046 // CHECK: @llvm.ppc.altivec.vsl 4047 // CHECK-LE: @llvm.ppc.altivec.vsl 4048 4049 res_vus = vec_vsl(vus, vui); 4050 // CHECK: @llvm.ppc.altivec.vsl 4051 // CHECK-LE: @llvm.ppc.altivec.vsl 4052 4053 res_vbs = vec_vsl(vbs, vuc); 4054 // CHECK: @llvm.ppc.altivec.vsl 4055 // CHECK-LE: @llvm.ppc.altivec.vsl 4056 4057 res_vbs = vec_vsl(vbs, vus); 4058 // CHECK: @llvm.ppc.altivec.vsl 4059 // CHECK-LE: @llvm.ppc.altivec.vsl 4060 4061 res_vbs = vec_vsl(vbs, vui); 4062 // CHECK: @llvm.ppc.altivec.vsl 4063 // CHECK-LE: @llvm.ppc.altivec.vsl 4064 4065 res_vp = vec_vsl(vp, vuc); 4066 // CHECK: @llvm.ppc.altivec.vsl 4067 // CHECK-LE: @llvm.ppc.altivec.vsl 4068 4069 res_vp = vec_vsl(vp, vus); 4070 // CHECK: @llvm.ppc.altivec.vsl 4071 // CHECK-LE: @llvm.ppc.altivec.vsl 4072 4073 res_vp = vec_vsl(vp, vui); 4074 // CHECK: @llvm.ppc.altivec.vsl 4075 // CHECK-LE: @llvm.ppc.altivec.vsl 4076 4077 res_vi = vec_vsl(vi, vuc); 4078 // CHECK: @llvm.ppc.altivec.vsl 4079 // CHECK-LE: @llvm.ppc.altivec.vsl 4080 4081 res_vi = vec_vsl(vi, vus); 4082 // CHECK: @llvm.ppc.altivec.vsl 4083 // CHECK-LE: @llvm.ppc.altivec.vsl 4084 4085 res_vi = vec_vsl(vi, vui); 4086 // CHECK: @llvm.ppc.altivec.vsl 4087 // CHECK-LE: @llvm.ppc.altivec.vsl 4088 4089 res_vui = vec_vsl(vui, vuc); 4090 // CHECK: @llvm.ppc.altivec.vsl 4091 // CHECK-LE: @llvm.ppc.altivec.vsl 4092 4093 res_vui = vec_vsl(vui, vus); 4094 // CHECK: @llvm.ppc.altivec.vsl 4095 // CHECK-LE: @llvm.ppc.altivec.vsl 4096 4097 res_vui = vec_vsl(vui, vui); 4098 // CHECK: @llvm.ppc.altivec.vsl 4099 // CHECK-LE: @llvm.ppc.altivec.vsl 4100 4101 res_vbi = vec_vsl(vbi, vuc); 4102 // CHECK: @llvm.ppc.altivec.vsl 4103 // CHECK-LE: @llvm.ppc.altivec.vsl 4104 4105 res_vbi = vec_vsl(vbi, vus); 4106 // CHECK: @llvm.ppc.altivec.vsl 4107 // CHECK-LE: @llvm.ppc.altivec.vsl 4108 4109 res_vbi = vec_vsl(vbi, vui); 4110 // CHECK: @llvm.ppc.altivec.vsl 4111 // CHECK-LE: @llvm.ppc.altivec.vsl 4112 4113 /* vec_slo */ 4114 res_vsc = vec_slo(vsc, vsc); 4115 // CHECK: @llvm.ppc.altivec.vslo 4116 // CHECK-LE: @llvm.ppc.altivec.vslo 4117 4118 res_vsc = vec_slo(vsc, vuc); 4119 // CHECK: @llvm.ppc.altivec.vslo 4120 // CHECK-LE: @llvm.ppc.altivec.vslo 4121 4122 res_vuc = vec_slo(vuc, vsc); 4123 // CHECK: @llvm.ppc.altivec.vslo 4124 // CHECK-LE: @llvm.ppc.altivec.vslo 4125 4126 res_vuc = vec_slo(vuc, vuc); 4127 // CHECK: @llvm.ppc.altivec.vslo 4128 // CHECK-LE: @llvm.ppc.altivec.vslo 4129 4130 res_vs = vec_slo(vs, vsc); 4131 // CHECK: @llvm.ppc.altivec.vslo 4132 // CHECK-LE: @llvm.ppc.altivec.vslo 4133 4134 res_vs = vec_slo(vs, vuc); 4135 // CHECK: @llvm.ppc.altivec.vslo 4136 // CHECK-LE: @llvm.ppc.altivec.vslo 4137 4138 res_vus = vec_slo(vus, vsc); 4139 // CHECK: @llvm.ppc.altivec.vslo 4140 // CHECK-LE: @llvm.ppc.altivec.vslo 4141 4142 res_vus = vec_slo(vus, vuc); 4143 // CHECK: @llvm.ppc.altivec.vslo 4144 // CHECK-LE: @llvm.ppc.altivec.vslo 4145 4146 res_vp = vec_slo(vp, vsc); 4147 // CHECK: @llvm.ppc.altivec.vslo 4148 // CHECK-LE: @llvm.ppc.altivec.vslo 4149 4150 res_vp = vec_slo(vp, vuc); 4151 // CHECK: @llvm.ppc.altivec.vslo 4152 // CHECK-LE: @llvm.ppc.altivec.vslo 4153 4154 res_vi = vec_slo(vi, vsc); 4155 // CHECK: @llvm.ppc.altivec.vslo 4156 // CHECK-LE: @llvm.ppc.altivec.vslo 4157 4158 res_vi = vec_slo(vi, vuc); 4159 // CHECK: @llvm.ppc.altivec.vslo 4160 // CHECK-LE: @llvm.ppc.altivec.vslo 4161 4162 res_vui = vec_slo(vui, vsc); 4163 // CHECK: @llvm.ppc.altivec.vslo 4164 // CHECK-LE: @llvm.ppc.altivec.vslo 4165 4166 res_vui = vec_slo(vui, vuc); 4167 // CHECK: @llvm.ppc.altivec.vslo 4168 // CHECK-LE: @llvm.ppc.altivec.vslo 4169 4170 res_vf = vec_slo(vf, vsc); 4171 // CHECK: @llvm.ppc.altivec.vslo 4172 // CHECK-LE: @llvm.ppc.altivec.vslo 4173 4174 res_vf = vec_slo(vf, vuc); 4175 // CHECK: @llvm.ppc.altivec.vslo 4176 // CHECK-LE: @llvm.ppc.altivec.vslo 4177 4178 res_vsc = vec_vslo(vsc, vsc); 4179 // CHECK: @llvm.ppc.altivec.vslo 4180 // CHECK-LE: @llvm.ppc.altivec.vslo 4181 4182 res_vsc = vec_vslo(vsc, vuc); 4183 // CHECK: @llvm.ppc.altivec.vslo 4184 // CHECK-LE: @llvm.ppc.altivec.vslo 4185 4186 res_vuc = vec_vslo(vuc, vsc); 4187 // CHECK: @llvm.ppc.altivec.vslo 4188 // CHECK-LE: @llvm.ppc.altivec.vslo 4189 4190 res_vuc = vec_vslo(vuc, vuc); 4191 // CHECK: @llvm.ppc.altivec.vslo 4192 // CHECK-LE: @llvm.ppc.altivec.vslo 4193 4194 res_vs = vec_vslo(vs, vsc); 4195 // CHECK: @llvm.ppc.altivec.vslo 4196 // CHECK-LE: @llvm.ppc.altivec.vslo 4197 4198 res_vs = vec_vslo(vs, vuc); 4199 // CHECK: @llvm.ppc.altivec.vslo 4200 // CHECK-LE: @llvm.ppc.altivec.vslo 4201 4202 res_vus = vec_vslo(vus, vsc); 4203 // CHECK: @llvm.ppc.altivec.vslo 4204 // CHECK-LE: @llvm.ppc.altivec.vslo 4205 4206 res_vus = vec_vslo(vus, vuc); 4207 // CHECK: @llvm.ppc.altivec.vslo 4208 // CHECK-LE: @llvm.ppc.altivec.vslo 4209 4210 res_vp = vec_vslo(vp, vsc); 4211 // CHECK: @llvm.ppc.altivec.vslo 4212 // CHECK-LE: @llvm.ppc.altivec.vslo 4213 4214 res_vp = vec_vslo(vp, vuc); 4215 // CHECK: @llvm.ppc.altivec.vslo 4216 // CHECK-LE: @llvm.ppc.altivec.vslo 4217 4218 res_vi = vec_vslo(vi, vsc); 4219 // CHECK: @llvm.ppc.altivec.vslo 4220 // CHECK-LE: @llvm.ppc.altivec.vslo 4221 4222 res_vi = vec_vslo(vi, vuc); 4223 // CHECK: @llvm.ppc.altivec.vslo 4224 // CHECK-LE: @llvm.ppc.altivec.vslo 4225 4226 res_vui = vec_vslo(vui, vsc); 4227 // CHECK: @llvm.ppc.altivec.vslo 4228 // CHECK-LE: @llvm.ppc.altivec.vslo 4229 4230 res_vui = vec_vslo(vui, vuc); 4231 // CHECK: @llvm.ppc.altivec.vslo 4232 // CHECK-LE: @llvm.ppc.altivec.vslo 4233 4234 res_vf = vec_vslo(vf, vsc); 4235 // CHECK: @llvm.ppc.altivec.vslo 4236 // CHECK-LE: @llvm.ppc.altivec.vslo 4237 4238 res_vf = vec_vslo(vf, vuc); 4239 // CHECK: @llvm.ppc.altivec.vslo 4240 // CHECK-LE: @llvm.ppc.altivec.vslo 4241 4242 /* vec_splat */ 4243 res_vsc = vec_splat(vsc, 0); 4244 // CHECK: @llvm.ppc.altivec.vperm 4245 // CHECK-LE: @llvm.ppc.altivec.vperm 4246 4247 res_vuc = vec_splat(vuc, 0); 4248 // CHECK: @llvm.ppc.altivec.vperm 4249 // CHECK-LE: @llvm.ppc.altivec.vperm 4250 4251 res_vbc = vec_splat(vbc, 0); 4252 // CHECK: @llvm.ppc.altivec.vperm 4253 // CHECK-LE: @llvm.ppc.altivec.vperm 4254 4255 res_vs = vec_splat(vs, 0); 4256 // CHECK: @llvm.ppc.altivec.vperm 4257 // CHECK-LE: @llvm.ppc.altivec.vperm 4258 4259 res_vus = vec_splat(vus, 0); 4260 // CHECK: @llvm.ppc.altivec.vperm 4261 // CHECK-LE: @llvm.ppc.altivec.vperm 4262 4263 res_vbs = vec_splat(vbs, 0); 4264 // CHECK: @llvm.ppc.altivec.vperm 4265 // CHECK-LE: @llvm.ppc.altivec.vperm 4266 4267 res_vp = vec_splat(vp, 0); 4268 // CHECK: @llvm.ppc.altivec.vperm 4269 // CHECK-LE: @llvm.ppc.altivec.vperm 4270 4271 res_vi = vec_splat(vi, 0); 4272 // CHECK: @llvm.ppc.altivec.vperm 4273 // CHECK-LE: @llvm.ppc.altivec.vperm 4274 4275 res_vui = vec_splat(vui, 0); 4276 // CHECK: @llvm.ppc.altivec.vperm 4277 // CHECK-LE: @llvm.ppc.altivec.vperm 4278 4279 res_vbi = vec_splat(vbi, 0); 4280 // CHECK: @llvm.ppc.altivec.vperm 4281 // CHECK-LE: @llvm.ppc.altivec.vperm 4282 4283 res_vf = vec_splat(vf, 0); 4284 // CHECK: @llvm.ppc.altivec.vperm 4285 // CHECK-LE: @llvm.ppc.altivec.vperm 4286 4287 res_vsc = vec_vspltb(vsc, 0); 4288 // CHECK: @llvm.ppc.altivec.vperm 4289 // CHECK-LE: @llvm.ppc.altivec.vperm 4290 4291 res_vuc = vec_vspltb(vuc, 0); 4292 // CHECK: @llvm.ppc.altivec.vperm 4293 // CHECK-LE: @llvm.ppc.altivec.vperm 4294 4295 res_vbc = vec_vspltb(vbc, 0); 4296 // CHECK: @llvm.ppc.altivec.vperm 4297 // CHECK-LE: @llvm.ppc.altivec.vperm 4298 4299 res_vs = vec_vsplth(vs, 0); 4300 // CHECK: @llvm.ppc.altivec.vperm 4301 // CHECK-LE: @llvm.ppc.altivec.vperm 4302 4303 res_vus = vec_vsplth(vus, 0); 4304 // CHECK: @llvm.ppc.altivec.vperm 4305 // CHECK-LE: @llvm.ppc.altivec.vperm 4306 4307 res_vbs = vec_vsplth(vbs, 0); 4308 // CHECK: @llvm.ppc.altivec.vperm 4309 // CHECK-LE: @llvm.ppc.altivec.vperm 4310 4311 res_vp = vec_vsplth(vp, 0); 4312 // CHECK: @llvm.ppc.altivec.vperm 4313 // CHECK-LE: @llvm.ppc.altivec.vperm 4314 4315 res_vi = vec_vspltw(vi, 0); 4316 // CHECK: @llvm.ppc.altivec.vperm 4317 // CHECK-LE: @llvm.ppc.altivec.vperm 4318 4319 res_vui = vec_vspltw(vui, 0); 4320 // CHECK: @llvm.ppc.altivec.vperm 4321 // CHECK-LE: @llvm.ppc.altivec.vperm 4322 4323 res_vbi = vec_vspltw(vbi, 0); 4324 // CHECK: @llvm.ppc.altivec.vperm 4325 // CHECK-LE: @llvm.ppc.altivec.vperm 4326 4327 res_vf = vec_vspltw(vf, 0); 4328 // CHECK: @llvm.ppc.altivec.vperm 4329 // CHECK-LE: @llvm.ppc.altivec.vperm 4330 4331 /* vec_splat_s8 */ 4332 res_vsc = vec_splat_s8(0x09); // TODO: add check 4333 res_vsc = vec_vspltisb(0x09); // TODO: add check 4334 4335 /* vec_splat_s16 */ 4336 res_vs = vec_splat_s16(0x09); // TODO: add check 4337 res_vs = vec_vspltish(0x09); // TODO: add check 4338 4339 /* vec_splat_s32 */ 4340 res_vi = vec_splat_s32(0x09); // TODO: add check 4341 res_vi = vec_vspltisw(0x09); // TODO: add check 4342 4343 /* vec_splat_u8 */ 4344 res_vuc = vec_splat_u8(0x09); // TODO: add check 4345 4346 /* vec_splat_u16 */ 4347 res_vus = vec_splat_u16(0x09); // TODO: add check 4348 4349 /* vec_splat_u32 */ 4350 res_vui = vec_splat_u32(0x09); // TODO: add check 4351 4352 /* vec_sr */ 4353 res_vsc = vec_sr(vsc, vuc); 4354 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4355 // CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4356 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4357 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4358 4359 res_vuc = vec_sr(vuc, vuc); 4360 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4361 // CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4362 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4363 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4364 4365 res_vs = vec_sr(vs, vus); 4366 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4367 // CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4368 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4369 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4370 4371 res_vus = vec_sr(vus, vus); 4372 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4373 // CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4374 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4375 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4376 4377 res_vi = vec_sr(vi, vui); 4378 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4379 // CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4380 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4381 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4382 4383 res_vui = vec_sr(vui, vui); 4384 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4385 // CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4386 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4387 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4388 4389 res_vsc = vec_vsrb(vsc, vuc); 4390 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4391 // CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4392 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4393 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4394 4395 res_vuc = vec_vsrb(vuc, vuc); 4396 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4397 // CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4398 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8) 4399 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4400 4401 res_vs = vec_vsrh(vs, vus); 4402 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4403 // CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4404 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4405 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4406 4407 res_vus = vec_vsrh(vus, vus); 4408 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4409 // CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4410 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16) 4411 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4412 4413 res_vi = vec_vsrw(vi, vui); 4414 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4415 // CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4416 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4417 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4418 4419 res_vui = vec_vsrw(vui, vui); 4420 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4421 // CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4422 // CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32) 4423 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]] 4424 4425 /* vec_sra */ 4426 res_vsc = vec_sra(vsc, vuc); 4427 // CHECK: @llvm.ppc.altivec.vsrab 4428 // CHECK-LE: @llvm.ppc.altivec.vsrab 4429 4430 res_vuc = vec_sra(vuc, vuc); 4431 // CHECK: @llvm.ppc.altivec.vsrab 4432 // CHECK-LE: @llvm.ppc.altivec.vsrab 4433 4434 res_vs = vec_sra(vs, vus); 4435 // CHECK: @llvm.ppc.altivec.vsrah 4436 // CHECK-LE: @llvm.ppc.altivec.vsrah 4437 4438 res_vus = vec_sra(vus, vus); 4439 // CHECK: @llvm.ppc.altivec.vsrah 4440 // CHECK-LE: @llvm.ppc.altivec.vsrah 4441 4442 res_vi = vec_sra(vi, vui); 4443 // CHECK: @llvm.ppc.altivec.vsraw 4444 // CHECK-LE: @llvm.ppc.altivec.vsraw 4445 4446 res_vui = vec_sra(vui, vui); 4447 // CHECK: @llvm.ppc.altivec.vsraw 4448 // CHECK-LE: @llvm.ppc.altivec.vsraw 4449 4450 res_vsc = vec_vsrab(vsc, vuc); 4451 // CHECK: @llvm.ppc.altivec.vsrab 4452 // CHECK-LE: @llvm.ppc.altivec.vsrab 4453 4454 res_vuc = vec_vsrab(vuc, vuc); 4455 // CHECK: @llvm.ppc.altivec.vsrab 4456 // CHECK-LE: @llvm.ppc.altivec.vsrab 4457 4458 res_vs = vec_vsrah(vs, vus); 4459 // CHECK: @llvm.ppc.altivec.vsrah 4460 // CHECK-LE: @llvm.ppc.altivec.vsrah 4461 4462 res_vus = vec_vsrah(vus, vus); 4463 // CHECK: @llvm.ppc.altivec.vsrah 4464 // CHECK-LE: @llvm.ppc.altivec.vsrah 4465 4466 res_vi = vec_vsraw(vi, vui); 4467 // CHECK: @llvm.ppc.altivec.vsraw 4468 // CHECK-LE: @llvm.ppc.altivec.vsraw 4469 4470 res_vui = vec_vsraw(vui, vui); 4471 // CHECK: @llvm.ppc.altivec.vsraw 4472 // CHECK-LE: @llvm.ppc.altivec.vsraw 4473 4474 /* vec_srl */ 4475 res_vsc = vec_srl(vsc, vuc); 4476 // CHECK: @llvm.ppc.altivec.vsr 4477 // CHECK-LE: @llvm.ppc.altivec.vsr 4478 4479 res_vsc = vec_srl(vsc, vus); 4480 // CHECK: @llvm.ppc.altivec.vsr 4481 // CHECK-LE: @llvm.ppc.altivec.vsr 4482 4483 res_vsc = vec_srl(vsc, vui); 4484 // CHECK: @llvm.ppc.altivec.vsr 4485 // CHECK-LE: @llvm.ppc.altivec.vsr 4486 4487 res_vuc = vec_srl(vuc, vuc); 4488 // CHECK: @llvm.ppc.altivec.vsr 4489 // CHECK-LE: @llvm.ppc.altivec.vsr 4490 4491 res_vuc = vec_srl(vuc, vus); 4492 // CHECK: @llvm.ppc.altivec.vsr 4493 // CHECK-LE: @llvm.ppc.altivec.vsr 4494 4495 res_vuc = vec_srl(vuc, vui); 4496 // CHECK: @llvm.ppc.altivec.vsr 4497 // CHECK-LE: @llvm.ppc.altivec.vsr 4498 4499 res_vbc = vec_srl(vbc, vuc); 4500 // CHECK: @llvm.ppc.altivec.vsr 4501 // CHECK-LE: @llvm.ppc.altivec.vsr 4502 4503 res_vbc = vec_srl(vbc, vus); 4504 // CHECK: @llvm.ppc.altivec.vsr 4505 // CHECK-LE: @llvm.ppc.altivec.vsr 4506 4507 res_vbc = vec_srl(vbc, vui); 4508 // CHECK: @llvm.ppc.altivec.vsr 4509 // CHECK-LE: @llvm.ppc.altivec.vsr 4510 4511 res_vs = vec_srl(vs, vuc); 4512 // CHECK: @llvm.ppc.altivec.vsr 4513 // CHECK-LE: @llvm.ppc.altivec.vsr 4514 4515 res_vs = vec_srl(vs, vus); 4516 // CHECK: @llvm.ppc.altivec.vsr 4517 // CHECK-LE: @llvm.ppc.altivec.vsr 4518 4519 res_vs = vec_srl(vs, vui); 4520 // CHECK: @llvm.ppc.altivec.vsr 4521 // CHECK-LE: @llvm.ppc.altivec.vsr 4522 4523 res_vus = vec_srl(vus, vuc); 4524 // CHECK: @llvm.ppc.altivec.vsr 4525 // CHECK-LE: @llvm.ppc.altivec.vsr 4526 4527 res_vus = vec_srl(vus, vus); 4528 // CHECK: @llvm.ppc.altivec.vsr 4529 // CHECK-LE: @llvm.ppc.altivec.vsr 4530 4531 res_vus = vec_srl(vus, vui); 4532 // CHECK: @llvm.ppc.altivec.vsr 4533 // CHECK-LE: @llvm.ppc.altivec.vsr 4534 4535 res_vbs = vec_srl(vbs, vuc); 4536 // CHECK: @llvm.ppc.altivec.vsr 4537 // CHECK-LE: @llvm.ppc.altivec.vsr 4538 4539 res_vbs = vec_srl(vbs, vus); 4540 // CHECK: @llvm.ppc.altivec.vsr 4541 // CHECK-LE: @llvm.ppc.altivec.vsr 4542 4543 res_vbs = vec_srl(vbs, vui); 4544 // CHECK: @llvm.ppc.altivec.vsr 4545 // CHECK-LE: @llvm.ppc.altivec.vsr 4546 4547 res_vp = vec_srl(vp, vuc); 4548 // CHECK: @llvm.ppc.altivec.vsr 4549 // CHECK-LE: @llvm.ppc.altivec.vsr 4550 4551 res_vp = vec_srl(vp, vus); 4552 // CHECK: @llvm.ppc.altivec.vsr 4553 // CHECK-LE: @llvm.ppc.altivec.vsr 4554 4555 res_vp = vec_srl(vp, vui); 4556 // CHECK: @llvm.ppc.altivec.vsr 4557 // CHECK-LE: @llvm.ppc.altivec.vsr 4558 4559 res_vi = vec_srl(vi, vuc); 4560 // CHECK: @llvm.ppc.altivec.vsr 4561 // CHECK-LE: @llvm.ppc.altivec.vsr 4562 4563 res_vi = vec_srl(vi, vus); 4564 // CHECK: @llvm.ppc.altivec.vsr 4565 // CHECK-LE: @llvm.ppc.altivec.vsr 4566 4567 res_vi = vec_srl(vi, vui); 4568 // CHECK: @llvm.ppc.altivec.vsr 4569 // CHECK-LE: @llvm.ppc.altivec.vsr 4570 4571 res_vui = vec_srl(vui, vuc); 4572 // CHECK: @llvm.ppc.altivec.vsr 4573 // CHECK-LE: @llvm.ppc.altivec.vsr 4574 4575 res_vui = vec_srl(vui, vus); 4576 // CHECK: @llvm.ppc.altivec.vsr 4577 // CHECK-LE: @llvm.ppc.altivec.vsr 4578 4579 res_vui = vec_srl(vui, vui); 4580 // CHECK: @llvm.ppc.altivec.vsr 4581 // CHECK-LE: @llvm.ppc.altivec.vsr 4582 4583 res_vbi = vec_srl(vbi, vuc); 4584 // CHECK: @llvm.ppc.altivec.vsr 4585 // CHECK-LE: @llvm.ppc.altivec.vsr 4586 4587 res_vbi = vec_srl(vbi, vus); 4588 // CHECK: @llvm.ppc.altivec.vsr 4589 // CHECK-LE: @llvm.ppc.altivec.vsr 4590 4591 res_vbi = vec_srl(vbi, vui); 4592 // CHECK: @llvm.ppc.altivec.vsr 4593 // CHECK-LE: @llvm.ppc.altivec.vsr 4594 4595 res_vsc = vec_vsr(vsc, vuc); 4596 // CHECK: @llvm.ppc.altivec.vsr 4597 // CHECK-LE: @llvm.ppc.altivec.vsr 4598 4599 res_vsc = vec_vsr(vsc, vus); 4600 // CHECK: @llvm.ppc.altivec.vsr 4601 // CHECK-LE: @llvm.ppc.altivec.vsr 4602 4603 res_vsc = vec_vsr(vsc, vui); 4604 // CHECK: @llvm.ppc.altivec.vsr 4605 // CHECK-LE: @llvm.ppc.altivec.vsr 4606 4607 res_vuc = vec_vsr(vuc, vuc); 4608 // CHECK: @llvm.ppc.altivec.vsr 4609 // CHECK-LE: @llvm.ppc.altivec.vsr 4610 4611 res_vuc = vec_vsr(vuc, vus); 4612 // CHECK: @llvm.ppc.altivec.vsr 4613 // CHECK-LE: @llvm.ppc.altivec.vsr 4614 4615 res_vuc = vec_vsr(vuc, vui); 4616 // CHECK: @llvm.ppc.altivec.vsr 4617 // CHECK-LE: @llvm.ppc.altivec.vsr 4618 4619 res_vbc = vec_vsr(vbc, vuc); 4620 // CHECK: @llvm.ppc.altivec.vsr 4621 // CHECK-LE: @llvm.ppc.altivec.vsr 4622 4623 res_vbc = vec_vsr(vbc, vus); 4624 // CHECK: @llvm.ppc.altivec.vsr 4625 // CHECK-LE: @llvm.ppc.altivec.vsr 4626 4627 res_vbc = vec_vsr(vbc, vui); 4628 // CHECK: @llvm.ppc.altivec.vsr 4629 // CHECK-LE: @llvm.ppc.altivec.vsr 4630 4631 res_vs = vec_vsr(vs, vuc); 4632 // CHECK: @llvm.ppc.altivec.vsr 4633 // CHECK-LE: @llvm.ppc.altivec.vsr 4634 4635 res_vs = vec_vsr(vs, vus); 4636 // CHECK: @llvm.ppc.altivec.vsr 4637 // CHECK-LE: @llvm.ppc.altivec.vsr 4638 4639 res_vs = vec_vsr(vs, vui); 4640 // CHECK: @llvm.ppc.altivec.vsr 4641 // CHECK-LE: @llvm.ppc.altivec.vsr 4642 4643 res_vus = vec_vsr(vus, vuc); 4644 // CHECK: @llvm.ppc.altivec.vsr 4645 // CHECK-LE: @llvm.ppc.altivec.vsr 4646 4647 res_vus = vec_vsr(vus, vus); 4648 // CHECK: @llvm.ppc.altivec.vsr 4649 // CHECK-LE: @llvm.ppc.altivec.vsr 4650 4651 res_vus = vec_vsr(vus, vui); 4652 // CHECK: @llvm.ppc.altivec.vsr 4653 // CHECK-LE: @llvm.ppc.altivec.vsr 4654 4655 res_vbs = vec_vsr(vbs, vuc); 4656 // CHECK: @llvm.ppc.altivec.vsr 4657 // CHECK-LE: @llvm.ppc.altivec.vsr 4658 4659 res_vbs = vec_vsr(vbs, vus); 4660 // CHECK: @llvm.ppc.altivec.vsr 4661 // CHECK-LE: @llvm.ppc.altivec.vsr 4662 4663 res_vbs = vec_vsr(vbs, vui); 4664 // CHECK: @llvm.ppc.altivec.vsr 4665 // CHECK-LE: @llvm.ppc.altivec.vsr 4666 4667 res_vp = vec_vsr(vp, vuc); 4668 // CHECK: @llvm.ppc.altivec.vsr 4669 // CHECK-LE: @llvm.ppc.altivec.vsr 4670 4671 res_vp = vec_vsr(vp, vus); 4672 // CHECK: @llvm.ppc.altivec.vsr 4673 // CHECK-LE: @llvm.ppc.altivec.vsr 4674 4675 res_vp = vec_vsr(vp, vui); 4676 // CHECK: @llvm.ppc.altivec.vsr 4677 // CHECK-LE: @llvm.ppc.altivec.vsr 4678 4679 res_vi = vec_vsr(vi, vuc); 4680 // CHECK: @llvm.ppc.altivec.vsr 4681 // CHECK-LE: @llvm.ppc.altivec.vsr 4682 4683 res_vi = vec_vsr(vi, vus); 4684 // CHECK: @llvm.ppc.altivec.vsr 4685 // CHECK-LE: @llvm.ppc.altivec.vsr 4686 4687 res_vi = vec_vsr(vi, vui); 4688 // CHECK: @llvm.ppc.altivec.vsr 4689 // CHECK-LE: @llvm.ppc.altivec.vsr 4690 4691 res_vui = vec_vsr(vui, vuc); 4692 // CHECK: @llvm.ppc.altivec.vsr 4693 // CHECK-LE: @llvm.ppc.altivec.vsr 4694 4695 res_vui = vec_vsr(vui, vus); 4696 // CHECK: @llvm.ppc.altivec.vsr 4697 // CHECK-LE: @llvm.ppc.altivec.vsr 4698 4699 res_vui = vec_vsr(vui, vui); 4700 // CHECK: @llvm.ppc.altivec.vsr 4701 // CHECK-LE: @llvm.ppc.altivec.vsr 4702 4703 res_vbi = vec_vsr(vbi, vuc); 4704 // CHECK: @llvm.ppc.altivec.vsr 4705 // CHECK-LE: @llvm.ppc.altivec.vsr 4706 4707 res_vbi = vec_vsr(vbi, vus); 4708 // CHECK: @llvm.ppc.altivec.vsr 4709 // CHECK-LE: @llvm.ppc.altivec.vsr 4710 4711 res_vbi = vec_vsr(vbi, vui); 4712 // CHECK: @llvm.ppc.altivec.vsr 4713 // CHECK-LE: @llvm.ppc.altivec.vsr 4714 4715 /* vec_sro */ 4716 res_vsc = vec_sro(vsc, vsc); 4717 // CHECK: @llvm.ppc.altivec.vsro 4718 // CHECK-LE: @llvm.ppc.altivec.vsro 4719 4720 res_vsc = vec_sro(vsc, vuc); 4721 // CHECK: @llvm.ppc.altivec.vsro 4722 // CHECK-LE: @llvm.ppc.altivec.vsro 4723 4724 res_vuc = vec_sro(vuc, vsc); 4725 // CHECK: @llvm.ppc.altivec.vsro 4726 // CHECK-LE: @llvm.ppc.altivec.vsro 4727 4728 res_vuc = vec_sro(vuc, vuc); 4729 // CHECK: @llvm.ppc.altivec.vsro 4730 // CHECK-LE: @llvm.ppc.altivec.vsro 4731 4732 res_vs = vec_sro(vs, vsc); 4733 // CHECK: @llvm.ppc.altivec.vsro 4734 // CHECK-LE: @llvm.ppc.altivec.vsro 4735 4736 res_vs = vec_sro(vs, vuc); 4737 // CHECK: @llvm.ppc.altivec.vsro 4738 // CHECK-LE: @llvm.ppc.altivec.vsro 4739 4740 res_vus = vec_sro(vus, vsc); 4741 // CHECK: @llvm.ppc.altivec.vsro 4742 // CHECK-LE: @llvm.ppc.altivec.vsro 4743 4744 res_vus = vec_sro(vus, vuc); 4745 // CHECK: @llvm.ppc.altivec.vsro 4746 // CHECK-LE: @llvm.ppc.altivec.vsro 4747 4748 res_vp = vec_sro(vp, vsc); 4749 // CHECK: @llvm.ppc.altivec.vsro 4750 // CHECK-LE: @llvm.ppc.altivec.vsro 4751 4752 res_vp = vec_sro(vp, vuc); 4753 // CHECK: @llvm.ppc.altivec.vsro 4754 // CHECK-LE: @llvm.ppc.altivec.vsro 4755 4756 res_vi = vec_sro(vi, vsc); 4757 // CHECK: @llvm.ppc.altivec.vsro 4758 // CHECK-LE: @llvm.ppc.altivec.vsro 4759 4760 res_vi = vec_sro(vi, vuc); 4761 // CHECK: @llvm.ppc.altivec.vsro 4762 // CHECK-LE: @llvm.ppc.altivec.vsro 4763 4764 res_vui = vec_sro(vui, vsc); 4765 // CHECK: @llvm.ppc.altivec.vsro 4766 // CHECK-LE: @llvm.ppc.altivec.vsro 4767 4768 res_vui = vec_sro(vui, vuc); 4769 // CHECK: @llvm.ppc.altivec.vsro 4770 // CHECK-LE: @llvm.ppc.altivec.vsro 4771 4772 res_vf = vec_sro(vf, vsc); 4773 // CHECK: @llvm.ppc.altivec.vsro 4774 // CHECK-LE: @llvm.ppc.altivec.vsro 4775 4776 res_vf = vec_sro(vf, vuc); 4777 // CHECK: @llvm.ppc.altivec.vsro 4778 // CHECK-LE: @llvm.ppc.altivec.vsro 4779 4780 res_vsc = vec_vsro(vsc, vsc); 4781 // CHECK: @llvm.ppc.altivec.vsro 4782 // CHECK-LE: @llvm.ppc.altivec.vsro 4783 4784 res_vsc = vec_vsro(vsc, vuc); 4785 // CHECK: @llvm.ppc.altivec.vsro 4786 // CHECK-LE: @llvm.ppc.altivec.vsro 4787 4788 res_vuc = vec_vsro(vuc, vsc); 4789 // CHECK: @llvm.ppc.altivec.vsro 4790 // CHECK-LE: @llvm.ppc.altivec.vsro 4791 4792 res_vuc = vec_vsro(vuc, vuc); 4793 // CHECK: @llvm.ppc.altivec.vsro 4794 // CHECK-LE: @llvm.ppc.altivec.vsro 4795 4796 res_vs = vec_vsro(vs, vsc); 4797 // CHECK: @llvm.ppc.altivec.vsro 4798 // CHECK-LE: @llvm.ppc.altivec.vsro 4799 4800 res_vs = vec_vsro(vs, vuc); 4801 // CHECK: @llvm.ppc.altivec.vsro 4802 // CHECK-LE: @llvm.ppc.altivec.vsro 4803 4804 res_vus = vec_vsro(vus, vsc); 4805 // CHECK: @llvm.ppc.altivec.vsro 4806 // CHECK-LE: @llvm.ppc.altivec.vsro 4807 4808 res_vus = vec_vsro(vus, vuc); 4809 // CHECK: @llvm.ppc.altivec.vsro 4810 // CHECK-LE: @llvm.ppc.altivec.vsro 4811 4812 res_vp = vec_vsro(vp, vsc); 4813 // CHECK: @llvm.ppc.altivec.vsro 4814 // CHECK-LE: @llvm.ppc.altivec.vsro 4815 4816 res_vp = vec_vsro(vp, vuc); 4817 // CHECK: @llvm.ppc.altivec.vsro 4818 // CHECK-LE: @llvm.ppc.altivec.vsro 4819 4820 res_vi = vec_vsro(vi, vsc); 4821 // CHECK: @llvm.ppc.altivec.vsro 4822 // CHECK-LE: @llvm.ppc.altivec.vsro 4823 4824 res_vi = vec_vsro(vi, vuc); 4825 // CHECK: @llvm.ppc.altivec.vsro 4826 // CHECK-LE: @llvm.ppc.altivec.vsro 4827 4828 res_vui = vec_vsro(vui, vsc); 4829 // CHECK: @llvm.ppc.altivec.vsro 4830 // CHECK-LE: @llvm.ppc.altivec.vsro 4831 4832 res_vui = vec_vsro(vui, vuc); 4833 // CHECK: @llvm.ppc.altivec.vsro 4834 // CHECK-LE: @llvm.ppc.altivec.vsro 4835 4836 res_vf = vec_vsro(vf, vsc); 4837 // CHECK: @llvm.ppc.altivec.vsro 4838 // CHECK-LE: @llvm.ppc.altivec.vsro 4839 4840 res_vf = vec_vsro(vf, vuc); 4841 // CHECK: @llvm.ppc.altivec.vsro 4842 // CHECK-LE: @llvm.ppc.altivec.vsro 4843 4844 /* vec_st */ 4845 vec_st(vsc, 0, &vsc); 4846 // CHECK: @llvm.ppc.altivec.stvx 4847 // CHECK-LE: @llvm.ppc.altivec.stvx 4848 4849 vec_st(vsc, 0, ¶m_sc); 4850 // CHECK: @llvm.ppc.altivec.stvx 4851 // CHECK-LE: @llvm.ppc.altivec.stvx 4852 4853 vec_st(vuc, 0, &vuc); 4854 // CHECK: @llvm.ppc.altivec.stvx 4855 // CHECK-LE: @llvm.ppc.altivec.stvx 4856 4857 vec_st(vuc, 0, ¶m_uc); 4858 // CHECK: @llvm.ppc.altivec.stvx 4859 // CHECK-LE: @llvm.ppc.altivec.stvx 4860 4861 vec_st(vbc, 0, ¶m_uc); 4862 // CHECK: @llvm.ppc.altivec.stvx 4863 // CHECK-LE: @llvm.ppc.altivec.stvx 4864 4865 vec_st(vbc, 0, ¶m_uc); 4866 // CHECK: @llvm.ppc.altivec.stvx 4867 // CHECK-LE: @llvm.ppc.altivec.stvx 4868 4869 vec_st(vbc, 0, &vbc); 4870 // CHECK: @llvm.ppc.altivec.stvx 4871 // CHECK-LE: @llvm.ppc.altivec.stvx 4872 4873 vec_st(vs, 0, &vs); 4874 // CHECK: @llvm.ppc.altivec.stvx 4875 // CHECK-LE: @llvm.ppc.altivec.stvx 4876 4877 vec_st(vs, 0, ¶m_s); 4878 // CHECK: @llvm.ppc.altivec.stvx 4879 // CHECK-LE: @llvm.ppc.altivec.stvx 4880 4881 vec_st(vus, 0, &vus); 4882 // CHECK: @llvm.ppc.altivec.stvx 4883 // CHECK-LE: @llvm.ppc.altivec.stvx 4884 4885 vec_st(vus, 0, ¶m_us); 4886 // CHECK: @llvm.ppc.altivec.stvx 4887 // CHECK-LE: @llvm.ppc.altivec.stvx 4888 4889 vec_st(vbs, 0, ¶m_s); 4890 // CHECK: @llvm.ppc.altivec.stvx 4891 // CHECK-LE: @llvm.ppc.altivec.stvx 4892 4893 vec_st(vbs, 0, ¶m_us); 4894 // CHECK: @llvm.ppc.altivec.stvx 4895 // CHECK-LE: @llvm.ppc.altivec.stvx 4896 4897 vec_st(vbs, 0, &vbs); 4898 // CHECK: @llvm.ppc.altivec.stvx 4899 // CHECK-LE: @llvm.ppc.altivec.stvx 4900 4901 vec_st(vp, 0, ¶m_s); 4902 // CHECK: @llvm.ppc.altivec.stvx 4903 // CHECK-LE: @llvm.ppc.altivec.stvx 4904 4905 vec_st(vp, 0, ¶m_us); 4906 // CHECK: @llvm.ppc.altivec.stvx 4907 // CHECK-LE: @llvm.ppc.altivec.stvx 4908 4909 vec_st(vp, 0, &vp); 4910 // CHECK: @llvm.ppc.altivec.stvx 4911 // CHECK-LE: @llvm.ppc.altivec.stvx 4912 4913 vec_st(vi, 0, &vi); 4914 // CHECK: @llvm.ppc.altivec.stvx 4915 // CHECK-LE: @llvm.ppc.altivec.stvx 4916 4917 vec_st(vi, 0, ¶m_i); 4918 // CHECK: @llvm.ppc.altivec.stvx 4919 // CHECK-LE: @llvm.ppc.altivec.stvx 4920 4921 vec_st(vui, 0, &vui); 4922 // CHECK: @llvm.ppc.altivec.stvx 4923 // CHECK-LE: @llvm.ppc.altivec.stvx 4924 4925 vec_st(vui, 0, ¶m_ui); 4926 // CHECK: @llvm.ppc.altivec.stvx 4927 // CHECK-LE: @llvm.ppc.altivec.stvx 4928 4929 vec_st(vbi, 0, ¶m_i); 4930 // CHECK: @llvm.ppc.altivec.stvx 4931 // CHECK-LE: @llvm.ppc.altivec.stvx 4932 4933 vec_st(vbi, 0, ¶m_ui); 4934 // CHECK: @llvm.ppc.altivec.stvx 4935 // CHECK-LE: @llvm.ppc.altivec.stvx 4936 4937 vec_st(vbi, 0, &vbi); 4938 // CHECK: @llvm.ppc.altivec.stvx 4939 // CHECK-LE: @llvm.ppc.altivec.stvx 4940 4941 vec_st(vf, 0, &vf); 4942 // CHECK: @llvm.ppc.altivec.stvx 4943 // CHECK-LE: @llvm.ppc.altivec.stvx 4944 4945 vec_st(vf, 0, ¶m_f); 4946 // CHECK: @llvm.ppc.altivec.stvx 4947 // CHECK-LE: @llvm.ppc.altivec.stvx 4948 4949 vec_stvx(vsc, 0, &vsc); 4950 // CHECK: @llvm.ppc.altivec.stvx 4951 // CHECK-LE: @llvm.ppc.altivec.stvx 4952 4953 vec_stvx(vsc, 0, ¶m_sc); 4954 // CHECK: @llvm.ppc.altivec.stvx 4955 // CHECK-LE: @llvm.ppc.altivec.stvx 4956 4957 vec_stvx(vuc, 0, &vuc); 4958 // CHECK: @llvm.ppc.altivec.stvx 4959 // CHECK-LE: @llvm.ppc.altivec.stvx 4960 4961 vec_stvx(vuc, 0, ¶m_uc); 4962 // CHECK: @llvm.ppc.altivec.stvx 4963 // CHECK-LE: @llvm.ppc.altivec.stvx 4964 4965 vec_stvx(vbc, 0, ¶m_uc); 4966 // CHECK: @llvm.ppc.altivec.stvx 4967 // CHECK-LE: @llvm.ppc.altivec.stvx 4968 4969 vec_stvx(vbc, 0, ¶m_uc); 4970 // CHECK: @llvm.ppc.altivec.stvx 4971 // CHECK-LE: @llvm.ppc.altivec.stvx 4972 4973 vec_stvx(vbc, 0, &vbc); 4974 // CHECK: @llvm.ppc.altivec.stvx 4975 // CHECK-LE: @llvm.ppc.altivec.stvx 4976 4977 vec_stvx(vs, 0, &vs); 4978 // CHECK: @llvm.ppc.altivec.stvx 4979 // CHECK-LE: @llvm.ppc.altivec.stvx 4980 4981 vec_stvx(vs, 0, ¶m_s); 4982 // CHECK: @llvm.ppc.altivec.stvx 4983 // CHECK-LE: @llvm.ppc.altivec.stvx 4984 4985 vec_stvx(vus, 0, &vus); 4986 // CHECK: @llvm.ppc.altivec.stvx 4987 // CHECK-LE: @llvm.ppc.altivec.stvx 4988 4989 vec_stvx(vus, 0, ¶m_us); 4990 // CHECK: @llvm.ppc.altivec.stvx 4991 // CHECK-LE: @llvm.ppc.altivec.stvx 4992 4993 vec_stvx(vbs, 0, ¶m_s); 4994 // CHECK: @llvm.ppc.altivec.stvx 4995 // CHECK-LE: @llvm.ppc.altivec.stvx 4996 4997 vec_stvx(vbs, 0, ¶m_us); 4998 // CHECK: @llvm.ppc.altivec.stvx 4999 // CHECK-LE: @llvm.ppc.altivec.stvx 5000 5001 vec_stvx(vbs, 0, &vbs); 5002 // CHECK: @llvm.ppc.altivec.stvx 5003 // CHECK-LE: @llvm.ppc.altivec.stvx 5004 5005 vec_stvx(vp, 0, ¶m_s); 5006 // CHECK: @llvm.ppc.altivec.stvx 5007 // CHECK-LE: @llvm.ppc.altivec.stvx 5008 5009 vec_stvx(vp, 0, ¶m_us); 5010 // CHECK: @llvm.ppc.altivec.stvx 5011 // CHECK-LE: @llvm.ppc.altivec.stvx 5012 5013 vec_stvx(vp, 0, &vp); 5014 // CHECK: @llvm.ppc.altivec.stvx 5015 // CHECK-LE: @llvm.ppc.altivec.stvx 5016 5017 vec_stvx(vi, 0, &vi); 5018 // CHECK: @llvm.ppc.altivec.stvx 5019 // CHECK-LE: @llvm.ppc.altivec.stvx 5020 5021 vec_stvx(vi, 0, ¶m_i); 5022 // CHECK: @llvm.ppc.altivec.stvx 5023 // CHECK-LE: @llvm.ppc.altivec.stvx 5024 5025 vec_stvx(vui, 0, &vui); 5026 // CHECK: @llvm.ppc.altivec.stvx 5027 // CHECK-LE: @llvm.ppc.altivec.stvx 5028 5029 vec_stvx(vui, 0, ¶m_ui); 5030 // CHECK: @llvm.ppc.altivec.stvx 5031 // CHECK-LE: @llvm.ppc.altivec.stvx 5032 5033 vec_stvx(vbi, 0, ¶m_i); 5034 // CHECK: @llvm.ppc.altivec.stvx 5035 // CHECK-LE: @llvm.ppc.altivec.stvx 5036 5037 vec_stvx(vbi, 0, ¶m_ui); 5038 // CHECK: @llvm.ppc.altivec.stvx 5039 // CHECK-LE: @llvm.ppc.altivec.stvx 5040 5041 vec_stvx(vbi, 0, &vbi); 5042 // CHECK: @llvm.ppc.altivec.stvx 5043 // CHECK-LE: @llvm.ppc.altivec.stvx 5044 5045 vec_stvx(vf, 0, &vf); 5046 // CHECK: @llvm.ppc.altivec.stvx 5047 // CHECK-LE: @llvm.ppc.altivec.stvx 5048 5049 vec_stvx(vf, 0, ¶m_f); 5050 // CHECK: @llvm.ppc.altivec.stvx 5051 // CHECK-LE: @llvm.ppc.altivec.stvx 5052 5053 /* vec_ste */ 5054 vec_ste(vsc, 0, ¶m_sc); 5055 // CHECK: @llvm.ppc.altivec.stvebx 5056 // CHECK-LE: @llvm.ppc.altivec.stvebx 5057 5058 vec_ste(vuc, 0, ¶m_uc); 5059 // CHECK: @llvm.ppc.altivec.stvebx 5060 // CHECK-LE: @llvm.ppc.altivec.stvebx 5061 5062 vec_ste(vbc, 0, ¶m_sc); 5063 // CHECK: @llvm.ppc.altivec.stvebx 5064 // CHECK-LE: @llvm.ppc.altivec.stvebx 5065 5066 vec_ste(vbc, 0, ¶m_uc); 5067 // CHECK: @llvm.ppc.altivec.stvebx 5068 // CHECK-LE: @llvm.ppc.altivec.stvebx 5069 5070 vec_ste(vs, 0, ¶m_s); 5071 // CHECK: @llvm.ppc.altivec.stvehx 5072 // CHECK-LE: @llvm.ppc.altivec.stvehx 5073 5074 vec_ste(vus, 0, ¶m_us); 5075 // CHECK: @llvm.ppc.altivec.stvehx 5076 // CHECK-LE: @llvm.ppc.altivec.stvehx 5077 5078 vec_ste(vbs, 0, ¶m_s); 5079 // CHECK: @llvm.ppc.altivec.stvehx 5080 // CHECK-LE: @llvm.ppc.altivec.stvehx 5081 5082 vec_ste(vbs, 0, ¶m_us); 5083 // CHECK: @llvm.ppc.altivec.stvehx 5084 // CHECK-LE: @llvm.ppc.altivec.stvehx 5085 5086 vec_ste(vp, 0, ¶m_s); 5087 // CHECK: @llvm.ppc.altivec.stvehx 5088 // CHECK-LE: @llvm.ppc.altivec.stvehx 5089 5090 vec_ste(vp, 0, ¶m_us); 5091 // CHECK: @llvm.ppc.altivec.stvehx 5092 // CHECK-LE: @llvm.ppc.altivec.stvehx 5093 5094 vec_ste(vi, 0, ¶m_i); 5095 // CHECK: @llvm.ppc.altivec.stvewx 5096 // CHECK-LE: @llvm.ppc.altivec.stvewx 5097 5098 vec_ste(vui, 0, ¶m_ui); 5099 // CHECK: @llvm.ppc.altivec.stvewx 5100 // CHECK-LE: @llvm.ppc.altivec.stvewx 5101 5102 vec_ste(vbi, 0, ¶m_i); 5103 // CHECK: @llvm.ppc.altivec.stvewx 5104 // CHECK-LE: @llvm.ppc.altivec.stvewx 5105 5106 vec_ste(vbi, 0, ¶m_ui); 5107 // CHECK: @llvm.ppc.altivec.stvewx 5108 // CHECK-LE: @llvm.ppc.altivec.stvewx 5109 5110 vec_ste(vf, 0, ¶m_f); 5111 // CHECK: @llvm.ppc.altivec.stvewx 5112 // CHECK-LE: @llvm.ppc.altivec.stvewx 5113 5114 vec_stvebx(vsc, 0, ¶m_sc); 5115 // CHECK: @llvm.ppc.altivec.stvebx 5116 // CHECK-LE: @llvm.ppc.altivec.stvebx 5117 5118 vec_stvebx(vuc, 0, ¶m_uc); 5119 // CHECK: @llvm.ppc.altivec.stvebx 5120 // CHECK-LE: @llvm.ppc.altivec.stvebx 5121 5122 vec_stvebx(vbc, 0, ¶m_sc); 5123 // CHECK: @llvm.ppc.altivec.stvebx 5124 // CHECK-LE: @llvm.ppc.altivec.stvebx 5125 5126 vec_stvebx(vbc, 0, ¶m_uc); 5127 // CHECK: @llvm.ppc.altivec.stvebx 5128 // CHECK-LE: @llvm.ppc.altivec.stvebx 5129 5130 vec_stvehx(vs, 0, ¶m_s); 5131 // CHECK: @llvm.ppc.altivec.stvehx 5132 // CHECK-LE: @llvm.ppc.altivec.stvehx 5133 5134 vec_stvehx(vus, 0, ¶m_us); 5135 // CHECK: @llvm.ppc.altivec.stvehx 5136 // CHECK-LE: @llvm.ppc.altivec.stvehx 5137 5138 vec_stvehx(vbs, 0, ¶m_s); 5139 // CHECK: @llvm.ppc.altivec.stvehx 5140 // CHECK-LE: @llvm.ppc.altivec.stvehx 5141 5142 vec_stvehx(vbs, 0, ¶m_us); 5143 // CHECK: @llvm.ppc.altivec.stvehx 5144 // CHECK-LE: @llvm.ppc.altivec.stvehx 5145 5146 vec_stvehx(vp, 0, ¶m_s); 5147 // CHECK: @llvm.ppc.altivec.stvehx 5148 // CHECK-LE: @llvm.ppc.altivec.stvehx 5149 5150 vec_stvehx(vp, 0, ¶m_us); 5151 // CHECK: @llvm.ppc.altivec.stvehx 5152 // CHECK-LE: @llvm.ppc.altivec.stvehx 5153 5154 vec_stvewx(vi, 0, ¶m_i); 5155 // CHECK: @llvm.ppc.altivec.stvewx 5156 // CHECK-LE: @llvm.ppc.altivec.stvewx 5157 5158 vec_stvewx(vui, 0, ¶m_ui); 5159 // CHECK: @llvm.ppc.altivec.stvewx 5160 // CHECK-LE: @llvm.ppc.altivec.stvewx 5161 5162 vec_stvewx(vbi, 0, ¶m_i); 5163 // CHECK: @llvm.ppc.altivec.stvewx 5164 // CHECK-LE: @llvm.ppc.altivec.stvewx 5165 5166 vec_stvewx(vbi, 0, ¶m_ui); 5167 // CHECK: @llvm.ppc.altivec.stvewx 5168 // CHECK-LE: @llvm.ppc.altivec.stvewx 5169 5170 vec_stvewx(vf, 0, ¶m_f); 5171 // CHECK: @llvm.ppc.altivec.stvewx 5172 // CHECK-LE: @llvm.ppc.altivec.stvewx 5173 5174 /* vec_stl */ 5175 vec_stl(vsc, 0, &vsc); 5176 // CHECK: @llvm.ppc.altivec.stvxl 5177 // CHECK-LE: @llvm.ppc.altivec.stvxl 5178 5179 vec_stl(vsc, 0, ¶m_sc); 5180 // CHECK: @llvm.ppc.altivec.stvxl 5181 // CHECK-LE: @llvm.ppc.altivec.stvxl 5182 5183 vec_stl(vuc, 0, &vuc); 5184 // CHECK: @llvm.ppc.altivec.stvxl 5185 // CHECK-LE: @llvm.ppc.altivec.stvxl 5186 5187 vec_stl(vuc, 0, ¶m_uc); 5188 // CHECK: @llvm.ppc.altivec.stvxl 5189 // CHECK-LE: @llvm.ppc.altivec.stvxl 5190 5191 vec_stl(vbc, 0, ¶m_sc); 5192 // CHECK: @llvm.ppc.altivec.stvxl 5193 // CHECK-LE: @llvm.ppc.altivec.stvxl 5194 5195 vec_stl(vbc, 0, ¶m_uc); 5196 // CHECK: @llvm.ppc.altivec.stvxl 5197 // CHECK-LE: @llvm.ppc.altivec.stvxl 5198 5199 vec_stl(vbc, 0, &vbc); 5200 // CHECK: @llvm.ppc.altivec.stvxl 5201 // CHECK-LE: @llvm.ppc.altivec.stvxl 5202 5203 vec_stl(vs, 0, &vs); 5204 // CHECK: @llvm.ppc.altivec.stvxl 5205 // CHECK-LE: @llvm.ppc.altivec.stvxl 5206 5207 vec_stl(vs, 0, ¶m_s); 5208 // CHECK: @llvm.ppc.altivec.stvxl 5209 // CHECK-LE: @llvm.ppc.altivec.stvxl 5210 5211 vec_stl(vus, 0, &vus); 5212 // CHECK: @llvm.ppc.altivec.stvxl 5213 // CHECK-LE: @llvm.ppc.altivec.stvxl 5214 5215 vec_stl(vus, 0, ¶m_us); 5216 // CHECK: @llvm.ppc.altivec.stvxl 5217 // CHECK-LE: @llvm.ppc.altivec.stvxl 5218 5219 vec_stl(vbs, 0, ¶m_s); 5220 // CHECK: @llvm.ppc.altivec.stvxl 5221 // CHECK-LE: @llvm.ppc.altivec.stvxl 5222 5223 vec_stl(vbs, 0, ¶m_us); 5224 // CHECK: @llvm.ppc.altivec.stvxl 5225 // CHECK-LE: @llvm.ppc.altivec.stvxl 5226 5227 vec_stl(vbs, 0, &vbs); 5228 // CHECK: @llvm.ppc.altivec.stvxl 5229 // CHECK-LE: @llvm.ppc.altivec.stvxl 5230 5231 vec_stl(vp, 0, ¶m_s); 5232 // CHECK: @llvm.ppc.altivec.stvxl 5233 // CHECK-LE: @llvm.ppc.altivec.stvxl 5234 5235 vec_stl(vp, 0, ¶m_us); 5236 // CHECK: @llvm.ppc.altivec.stvxl 5237 // CHECK-LE: @llvm.ppc.altivec.stvxl 5238 5239 vec_stl(vp, 0, &vp); 5240 // CHECK: @llvm.ppc.altivec.stvxl 5241 // CHECK-LE: @llvm.ppc.altivec.stvxl 5242 5243 vec_stl(vi, 0, &vi); 5244 // CHECK: @llvm.ppc.altivec.stvxl 5245 // CHECK-LE: @llvm.ppc.altivec.stvxl 5246 5247 vec_stl(vi, 0, ¶m_i); 5248 // CHECK: @llvm.ppc.altivec.stvxl 5249 // CHECK-LE: @llvm.ppc.altivec.stvxl 5250 5251 vec_stl(vui, 0, &vui); 5252 // CHECK: @llvm.ppc.altivec.stvxl 5253 // CHECK-LE: @llvm.ppc.altivec.stvxl 5254 5255 vec_stl(vui, 0, ¶m_ui); 5256 // CHECK: @llvm.ppc.altivec.stvxl 5257 // CHECK-LE: @llvm.ppc.altivec.stvxl 5258 5259 vec_stl(vbi, 0, ¶m_i); 5260 // CHECK: @llvm.ppc.altivec.stvxl 5261 // CHECK-LE: @llvm.ppc.altivec.stvxl 5262 5263 vec_stl(vbi, 0, ¶m_ui); 5264 // CHECK: @llvm.ppc.altivec.stvxl 5265 // CHECK-LE: @llvm.ppc.altivec.stvxl 5266 5267 vec_stl(vbi, 0, &vbi); 5268 // CHECK: @llvm.ppc.altivec.stvxl 5269 // CHECK-LE: @llvm.ppc.altivec.stvxl 5270 5271 vec_stl(vf, 0, &vf); 5272 // CHECK: @llvm.ppc.altivec.stvxl 5273 // CHECK-LE: @llvm.ppc.altivec.stvxl 5274 5275 vec_stl(vf, 0, ¶m_f); 5276 // CHECK: @llvm.ppc.altivec.stvxl 5277 // CHECK-LE: @llvm.ppc.altivec.stvxl 5278 5279 vec_stvxl(vsc, 0, &vsc); 5280 // CHECK: @llvm.ppc.altivec.stvxl 5281 // CHECK-LE: @llvm.ppc.altivec.stvxl 5282 5283 vec_stvxl(vsc, 0, ¶m_sc); 5284 // CHECK: @llvm.ppc.altivec.stvxl 5285 // CHECK-LE: @llvm.ppc.altivec.stvxl 5286 5287 vec_stvxl(vuc, 0, &vuc); 5288 // CHECK: @llvm.ppc.altivec.stvxl 5289 // CHECK-LE: @llvm.ppc.altivec.stvxl 5290 5291 vec_stvxl(vuc, 0, ¶m_uc); 5292 // CHECK: @llvm.ppc.altivec.stvxl 5293 // CHECK-LE: @llvm.ppc.altivec.stvxl 5294 5295 vec_stvxl(vbc, 0, ¶m_sc); 5296 // CHECK: @llvm.ppc.altivec.stvxl 5297 // CHECK-LE: @llvm.ppc.altivec.stvxl 5298 5299 vec_stvxl(vbc, 0, ¶m_uc); 5300 // CHECK: @llvm.ppc.altivec.stvxl 5301 // CHECK-LE: @llvm.ppc.altivec.stvxl 5302 5303 vec_stvxl(vbc, 0, &vbc); 5304 // CHECK: @llvm.ppc.altivec.stvxl 5305 // CHECK-LE: @llvm.ppc.altivec.stvxl 5306 5307 vec_stvxl(vs, 0, &vs); 5308 // CHECK: @llvm.ppc.altivec.stvxl 5309 // CHECK-LE: @llvm.ppc.altivec.stvxl 5310 5311 vec_stvxl(vs, 0, ¶m_s); 5312 // CHECK: @llvm.ppc.altivec.stvxl 5313 // CHECK-LE: @llvm.ppc.altivec.stvxl 5314 5315 vec_stvxl(vus, 0, &vus); 5316 // CHECK: @llvm.ppc.altivec.stvxl 5317 // CHECK-LE: @llvm.ppc.altivec.stvxl 5318 5319 vec_stvxl(vus, 0, ¶m_us); 5320 // CHECK: @llvm.ppc.altivec.stvxl 5321 // CHECK-LE: @llvm.ppc.altivec.stvxl 5322 5323 vec_stvxl(vbs, 0, ¶m_s); 5324 // CHECK: @llvm.ppc.altivec.stvxl 5325 // CHECK-LE: @llvm.ppc.altivec.stvxl 5326 5327 vec_stvxl(vbs, 0, ¶m_us); 5328 // CHECK: @llvm.ppc.altivec.stvxl 5329 // CHECK-LE: @llvm.ppc.altivec.stvxl 5330 5331 vec_stvxl(vbs, 0, &vbs); 5332 // CHECK: @llvm.ppc.altivec.stvxl 5333 // CHECK-LE: @llvm.ppc.altivec.stvxl 5334 5335 vec_stvxl(vp, 0, ¶m_s); 5336 // CHECK: @llvm.ppc.altivec.stvxl 5337 // CHECK-LE: @llvm.ppc.altivec.stvxl 5338 5339 vec_stvxl(vp, 0, ¶m_us); 5340 // CHECK: @llvm.ppc.altivec.stvxl 5341 // CHECK-LE: @llvm.ppc.altivec.stvxl 5342 5343 vec_stvxl(vp, 0, &vp); 5344 // CHECK: @llvm.ppc.altivec.stvxl 5345 // CHECK-LE: @llvm.ppc.altivec.stvxl 5346 5347 vec_stvxl(vi, 0, &vi); 5348 // CHECK: @llvm.ppc.altivec.stvxl 5349 // CHECK-LE: @llvm.ppc.altivec.stvxl 5350 5351 vec_stvxl(vi, 0, ¶m_i); 5352 // CHECK: @llvm.ppc.altivec.stvxl 5353 // CHECK-LE: @llvm.ppc.altivec.stvxl 5354 5355 vec_stvxl(vui, 0, &vui); 5356 // CHECK: @llvm.ppc.altivec.stvxl 5357 // CHECK-LE: @llvm.ppc.altivec.stvxl 5358 5359 vec_stvxl(vui, 0, ¶m_ui); 5360 // CHECK: @llvm.ppc.altivec.stvxl 5361 // CHECK-LE: @llvm.ppc.altivec.stvxl 5362 5363 vec_stvxl(vbi, 0, ¶m_i); 5364 // CHECK: @llvm.ppc.altivec.stvxl 5365 // CHECK-LE: @llvm.ppc.altivec.stvxl 5366 5367 vec_stvxl(vbi, 0, ¶m_ui); 5368 // CHECK: @llvm.ppc.altivec.stvxl 5369 // CHECK-LE: @llvm.ppc.altivec.stvxl 5370 5371 vec_stvxl(vbi, 0, &vbi); 5372 // CHECK: @llvm.ppc.altivec.stvxl 5373 // CHECK-LE: @llvm.ppc.altivec.stvxl 5374 5375 vec_stvxl(vf, 0, &vf); 5376 // CHECK: @llvm.ppc.altivec.stvxl 5377 // CHECK-LE: @llvm.ppc.altivec.stvxl 5378 5379 vec_stvxl(vf, 0, ¶m_f); 5380 // CHECK: @llvm.ppc.altivec.stvxl 5381 // CHECK-LE: @llvm.ppc.altivec.stvxl 5382 5383 /* vec_sub */ 5384 res_vsc = vec_sub(vsc, vsc); 5385 // CHECK: sub <16 x i8> 5386 // CHECK-LE: sub <16 x i8> 5387 5388 res_vsc = vec_sub(vbc, vsc); 5389 // CHECK: sub <16 x i8> 5390 // CHECK-LE: sub <16 x i8> 5391 5392 res_vsc = vec_sub(vsc, vbc); 5393 // CHECK: sub <16 x i8> 5394 // CHECK-LE: sub <16 x i8> 5395 5396 res_vuc = vec_sub(vuc, vuc); 5397 // CHECK: sub <16 x i8> 5398 // CHECK-LE: sub <16 x i8> 5399 5400 res_vuc = vec_sub(vbc, vuc); 5401 // CHECK: sub <16 x i8> 5402 // CHECK-LE: sub <16 x i8> 5403 5404 res_vuc = vec_sub(vuc, vbc); 5405 // CHECK: sub <16 x i8> 5406 // CHECK-LE: sub <16 x i8> 5407 5408 res_vs = vec_sub(vs, vs); 5409 // CHECK: sub <8 x i16> 5410 // CHECK-LE: sub <8 x i16> 5411 5412 res_vs = vec_sub(vbs, vs); 5413 // CHECK: sub <8 x i16> 5414 // CHECK-LE: sub <8 x i16> 5415 5416 res_vs = vec_sub(vs, vbs); 5417 // CHECK: sub <8 x i16> 5418 // CHECK-LE: sub <8 x i16> 5419 5420 res_vus = vec_sub(vus, vus); 5421 // CHECK: sub <8 x i16> 5422 // CHECK-LE: sub <8 x i16> 5423 5424 res_vus = vec_sub(vbs, vus); 5425 // CHECK: sub <8 x i16> 5426 // CHECK-LE: sub <8 x i16> 5427 5428 res_vus = vec_sub(vus, vbs); 5429 // CHECK: sub <8 x i16> 5430 // CHECK-LE: sub <8 x i16> 5431 5432 res_vi = vec_sub(vi, vi); 5433 // CHECK: sub <4 x i32> 5434 // CHECK-LE: sub <4 x i32> 5435 5436 res_vi = vec_sub(vbi, vi); 5437 // CHECK: sub <4 x i32> 5438 // CHECK-LE: sub <4 x i32> 5439 5440 res_vi = vec_sub(vi, vbi); 5441 // CHECK: sub <4 x i32> 5442 // CHECK-LE: sub <4 x i32> 5443 5444 res_vui = vec_sub(vui, vui); 5445 // CHECK: sub <4 x i32> 5446 // CHECK-LE: sub <4 x i32> 5447 5448 res_vui = vec_sub(vbi, vui); 5449 // CHECK: sub <4 x i32> 5450 // CHECK-LE: sub <4 x i32> 5451 5452 res_vui = vec_sub(vui, vbi); 5453 // CHECK: sub <4 x i32> 5454 // CHECK-LE: sub <4 x i32> 5455 5456 res_vf = vec_sub(vf, vf); 5457 // CHECK: fsub <4 x float> 5458 // CHECK-LE: fsub <4 x float> 5459 5460 5461 5462 res_vsc = vec_vsububm(vsc, vsc); 5463 // CHECK: sub <16 x i8> 5464 // CHECK-LE: sub <16 x i8> 5465 5466 res_vsc = vec_vsububm(vbc, vsc); 5467 // CHECK: sub <16 x i8> 5468 // CHECK-LE: sub <16 x i8> 5469 5470 res_vsc = vec_vsububm(vsc, vbc); 5471 // CHECK: sub <16 x i8> 5472 // CHECK-LE: sub <16 x i8> 5473 5474 res_vuc = vec_vsububm(vuc, vuc); 5475 // CHECK: sub <16 x i8> 5476 // CHECK-LE: sub <16 x i8> 5477 5478 res_vuc = vec_vsububm(vbc, vuc); 5479 // CHECK: sub <16 x i8> 5480 // CHECK-LE: sub <16 x i8> 5481 5482 res_vuc = vec_vsububm(vuc, vbc); 5483 // CHECK: sub <16 x i8> 5484 // CHECK-LE: sub <16 x i8> 5485 5486 res_vs = vec_vsubuhm(vs, vs); 5487 // CHECK: sub <8 x i16> 5488 // CHECK-LE: sub <8 x i16> 5489 5490 res_vs = vec_vsubuhm(vbs, vs); 5491 // CHECK: sub <8 x i16> 5492 // CHECK-LE: sub <8 x i16> 5493 5494 res_vs = vec_vsubuhm(vs, vbs); 5495 // CHECK: sub <8 x i16> 5496 // CHECK-LE: sub <8 x i16> 5497 5498 res_vus = vec_vsubuhm(vus, vus); 5499 // CHECK: sub <8 x i16> 5500 // CHECK-LE: sub <8 x i16> 5501 5502 res_vus = vec_vsubuhm(vbs, vus); 5503 // CHECK: sub <8 x i16> 5504 // CHECK-LE: sub <8 x i16> 5505 5506 res_vus = vec_vsubuhm(vus, vbs); 5507 // CHECK: sub <8 x i16> 5508 // CHECK-LE: sub <8 x i16> 5509 5510 res_vi = vec_vsubuwm(vi, vi); 5511 // CHECK: sub <4 x i32> 5512 // CHECK-LE: sub <4 x i32> 5513 5514 res_vi = vec_vsubuwm(vbi, vi); 5515 // CHECK: sub <4 x i32> 5516 // CHECK-LE: sub <4 x i32> 5517 5518 res_vi = vec_vsubuwm(vi, vbi); 5519 // CHECK: sub <4 x i32> 5520 // CHECK-LE: sub <4 x i32> 5521 5522 res_vui = vec_vsubuwm(vui, vui); 5523 // CHECK: sub <4 x i32> 5524 // CHECK-LE: sub <4 x i32> 5525 5526 res_vui = vec_vsubuwm(vbi, vui); 5527 // CHECK: sub <4 x i32> 5528 // CHECK-LE: sub <4 x i32> 5529 5530 res_vui = vec_vsubuwm(vui, vbi); 5531 // CHECK: sub <4 x i32> 5532 // CHECK-LE: sub <4 x i32> 5533 5534 res_vf = vec_vsubfp(vf, vf); 5535 // CHECK: fsub <4 x float> 5536 // CHECK-LE: fsub <4 x float> 5537 5538 /* vec_subc */ 5539 res_vui = vec_subc(vui, vui); 5540 // CHECK: @llvm.ppc.altivec.vsubcuw 5541 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 5542 5543 res_vi = vec_subc(vi, vi); 5544 // CHECK: @llvm.ppc.altivec.vsubcuw 5545 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 5546 5547 res_vui = vec_vsubcuw(vui, vui); 5548 // CHECK: @llvm.ppc.altivec.vsubcuw 5549 // CHECK-LE: @llvm.ppc.altivec.vsubcuw 5550 5551 /* vec_subs */ 5552 res_vsc = vec_subs(vsc, vsc); 5553 // CHECK: @llvm.ppc.altivec.vsubsbs 5554 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5555 5556 res_vsc = vec_subs(vbc, vsc); 5557 // CHECK: @llvm.ppc.altivec.vsubsbs 5558 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5559 5560 res_vsc = vec_subs(vsc, vbc); 5561 // CHECK: @llvm.ppc.altivec.vsubsbs 5562 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5563 5564 res_vuc = vec_subs(vuc, vuc); 5565 // CHECK: @llvm.ppc.altivec.vsububs 5566 // CHECK-LE: @llvm.ppc.altivec.vsububs 5567 5568 res_vuc = vec_subs(vbc, vuc); 5569 // CHECK: @llvm.ppc.altivec.vsububs 5570 // CHECK-LE: @llvm.ppc.altivec.vsububs 5571 5572 res_vuc = vec_subs(vuc, vbc); 5573 // CHECK: @llvm.ppc.altivec.vsububs 5574 // CHECK-LE: @llvm.ppc.altivec.vsububs 5575 5576 res_vs = vec_subs(vs, vs); 5577 // CHECK: @llvm.ppc.altivec.vsubshs 5578 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5579 5580 res_vs = vec_subs(vbs, vs); 5581 // CHECK: @llvm.ppc.altivec.vsubshs 5582 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5583 5584 res_vs = vec_subs(vs, vbs); 5585 // CHECK: @llvm.ppc.altivec.vsubshs 5586 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5587 5588 res_vus = vec_subs(vus, vus); 5589 // CHECK: @llvm.ppc.altivec.vsubuhs 5590 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5591 5592 res_vus = vec_subs(vbs, vus); 5593 // CHECK: @llvm.ppc.altivec.vsubuhs 5594 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5595 5596 res_vus = vec_subs(vus, vbs); 5597 // CHECK: @llvm.ppc.altivec.vsubuhs 5598 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5599 5600 res_vi = vec_subs(vi, vi); 5601 // CHECK: @llvm.ppc.altivec.vsubsws 5602 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5603 5604 res_vi = vec_subs(vbi, vi); 5605 // CHECK: @llvm.ppc.altivec.vsubsws 5606 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5607 5608 res_vi = vec_subs(vi, vbi); 5609 // CHECK: @llvm.ppc.altivec.vsubsws 5610 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5611 5612 res_vui = vec_subs(vui, vui); 5613 // CHECK: @llvm.ppc.altivec.vsubuws 5614 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5615 5616 res_vui = vec_subs(vbi, vui); 5617 // CHECK: @llvm.ppc.altivec.vsubuws 5618 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5619 5620 res_vui = vec_subs(vui, vbi); 5621 // CHECK: @llvm.ppc.altivec.vsubuws 5622 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5623 5624 res_vi = vec_sube(vi, vi, vi); 5625 // CHECK: and <4 x i32> 5626 // CHECK: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1) 5627 // CHECK: add <4 x i32> 5628 // CHECK: add <4 x i32> 5629 // CHECK-LE: and <4 x i32> 5630 // CHECK-LE: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1) 5631 // CHECK-LE: add <4 x i32> 5632 // CHECK-LE: add <4 x i32> 5633 5634 res_vui = vec_sube(vui, vui, vui); 5635 // CHECK: and <4 x i32> 5636 // CHECK: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1) 5637 // CHECK: add <4 x i32> 5638 // CHECK: add <4 x i32> 5639 // CHECK-LE: and <4 x i32> 5640 // CHECK-LE: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1) 5641 // CHECK-LE: add <4 x i32> 5642 // CHECK-LE: add <4 x i32> 5643 5644 res_vsc = vec_vsubsbs(vsc, vsc); 5645 // CHECK: @llvm.ppc.altivec.vsubsbs 5646 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5647 5648 res_vsc = vec_vsubsbs(vbc, vsc); 5649 // CHECK: @llvm.ppc.altivec.vsubsbs 5650 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5651 5652 res_vsc = vec_vsubsbs(vsc, vbc); 5653 // CHECK: @llvm.ppc.altivec.vsubsbs 5654 // CHECK-LE: @llvm.ppc.altivec.vsubsbs 5655 5656 res_vuc = vec_vsububs(vuc, vuc); 5657 // CHECK: @llvm.ppc.altivec.vsububs 5658 // CHECK-LE: @llvm.ppc.altivec.vsububs 5659 5660 res_vuc = vec_vsububs(vbc, vuc); 5661 // CHECK: @llvm.ppc.altivec.vsububs 5662 // CHECK-LE: @llvm.ppc.altivec.vsububs 5663 5664 res_vuc = vec_vsububs(vuc, vbc); 5665 // CHECK: @llvm.ppc.altivec.vsububs 5666 // CHECK-LE: @llvm.ppc.altivec.vsububs 5667 5668 res_vs = vec_vsubshs(vs, vs); 5669 // CHECK: @llvm.ppc.altivec.vsubshs 5670 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5671 5672 res_vs = vec_vsubshs(vbs, vs); 5673 // CHECK: @llvm.ppc.altivec.vsubshs 5674 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5675 5676 res_vs = vec_vsubshs(vs, vbs); 5677 // CHECK: @llvm.ppc.altivec.vsubshs 5678 // CHECK-LE: @llvm.ppc.altivec.vsubshs 5679 5680 res_vus = vec_vsubuhs(vus, vus); 5681 // CHECK: @llvm.ppc.altivec.vsubuhs 5682 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5683 5684 res_vus = vec_vsubuhs(vbs, vus); 5685 // CHECK: @llvm.ppc.altivec.vsubuhs 5686 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5687 5688 res_vus = vec_vsubuhs(vus, vbs); 5689 // CHECK: @llvm.ppc.altivec.vsubuhs 5690 // CHECK-LE: @llvm.ppc.altivec.vsubuhs 5691 5692 res_vi = vec_vsubsws(vi, vi); 5693 // CHECK: @llvm.ppc.altivec.vsubsws 5694 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5695 5696 res_vi = vec_vsubsws(vbi, vi); 5697 // CHECK: @llvm.ppc.altivec.vsubsws 5698 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5699 5700 res_vi = vec_vsubsws(vi, vbi); 5701 // CHECK: @llvm.ppc.altivec.vsubsws 5702 // CHECK-LE: @llvm.ppc.altivec.vsubsws 5703 5704 res_vui = vec_vsubuws(vui, vui); 5705 // CHECK: @llvm.ppc.altivec.vsubuws 5706 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5707 5708 res_vui = vec_vsubuws(vbi, vui); 5709 // CHECK: @llvm.ppc.altivec.vsubuws 5710 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5711 5712 res_vui = vec_vsubuws(vui, vbi); 5713 // CHECK: @llvm.ppc.altivec.vsubuws 5714 // CHECK-LE: @llvm.ppc.altivec.vsubuws 5715 5716 /* vec_sum4s */ 5717 res_vi = vec_sum4s(vsc, vi); 5718 // CHECK: @llvm.ppc.altivec.vsum4sbs 5719 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs 5720 5721 res_vui = vec_sum4s(vuc, vui); 5722 // CHECK: @llvm.ppc.altivec.vsum4ubs 5723 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs 5724 5725 res_vi = vec_sum4s(vs, vi); 5726 // CHECK: @llvm.ppc.altivec.vsum4shs 5727 // CHECK-LE: @llvm.ppc.altivec.vsum4shs 5728 5729 res_vi = vec_vsum4sbs(vsc, vi); 5730 // CHECK: @llvm.ppc.altivec.vsum4sbs 5731 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs 5732 5733 res_vui = vec_vsum4ubs(vuc, vui); 5734 // CHECK: @llvm.ppc.altivec.vsum4ubs 5735 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs 5736 5737 res_vi = vec_vsum4shs(vs, vi); 5738 // CHECK: @llvm.ppc.altivec.vsum4shs 5739 // CHECK-LE: @llvm.ppc.altivec.vsum4shs 5740 5741 /* vec_sum2s */ 5742 res_vi = vec_sum2s(vi, vi); 5743 // CHECK: @llvm.ppc.altivec.vsum2sws 5744 // CHECK-LE: @llvm.ppc.altivec.vperm 5745 // CHECK-LE: @llvm.ppc.altivec.vsum2sws 5746 // CHECK-LE: @llvm.ppc.altivec.vperm 5747 5748 res_vi = vec_vsum2sws(vi, vi); 5749 // CHECK: @llvm.ppc.altivec.vsum2sws 5750 // CHECK-LE: @llvm.ppc.altivec.vperm 5751 // CHECK-LE: @llvm.ppc.altivec.vsum2sws 5752 // CHECK-LE: @llvm.ppc.altivec.vperm 5753 5754 /* vec_sums */ 5755 res_vi = vec_sums(vi, vi); 5756 // CHECK: @llvm.ppc.altivec.vsumsws 5757 // CHECK-LE: @llvm.ppc.altivec.vperm 5758 // CHECK-LE: @llvm.ppc.altivec.vsumsws 5759 5760 res_vi = vec_vsumsws(vi, vi); 5761 // CHECK: @llvm.ppc.altivec.vsumsws 5762 // CHECK-LE: @llvm.ppc.altivec.vperm 5763 // CHECK-LE: @llvm.ppc.altivec.vsumsws 5764 5765 /* vec_trunc */ 5766 res_vf = vec_trunc(vf); 5767 // CHECK: @llvm.ppc.altivec.vrfiz 5768 // CHECK-LE: @llvm.ppc.altivec.vrfiz 5769 5770 res_vf = vec_vrfiz(vf); 5771 // CHECK: @llvm.ppc.altivec.vrfiz 5772 // CHECK-LE: @llvm.ppc.altivec.vrfiz 5773 5774 /* vec_unpackh */ 5775 res_vs = vec_unpackh(vsc); 5776 // CHECK: @llvm.ppc.altivec.vupkhsb 5777 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5778 5779 res_vbs = vec_unpackh(vbc); 5780 // CHECK: @llvm.ppc.altivec.vupkhsb 5781 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5782 5783 res_vi = vec_unpackh(vs); 5784 // CHECK: @llvm.ppc.altivec.vupkhsh 5785 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5786 5787 res_vbi = vec_unpackh(vbs); 5788 // CHECK: @llvm.ppc.altivec.vupkhsh 5789 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5790 5791 res_vui = vec_unpackh(vp); 5792 // CHECK: @llvm.ppc.altivec.vupkhpx 5793 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5794 5795 res_vui = vec_vupkhpx(vp); 5796 // CHECK: @llvm.ppc.altivec.vupkhpx 5797 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5798 5799 res_vs = vec_vupkhsb(vsc); 5800 // CHECK: @llvm.ppc.altivec.vupkhsb 5801 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5802 5803 res_vbs = vec_vupkhsb(vbc); 5804 // CHECK: @llvm.ppc.altivec.vupkhsb 5805 // CHECK-LE: @llvm.ppc.altivec.vupklsb 5806 5807 res_vi = vec_vupkhsh(vs); 5808 // CHECK: @llvm.ppc.altivec.vupkhsh 5809 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5810 5811 res_vbi = vec_vupkhsh(vbs); 5812 // CHECK: @llvm.ppc.altivec.vupkhsh 5813 // CHECK-LE: @llvm.ppc.altivec.vupklsh 5814 5815 res_vui = vec_vupkhsh(vp); 5816 // CHECK: @llvm.ppc.altivec.vupkhpx 5817 // CHECK-LE: @llvm.ppc.altivec.vupklpx 5818 5819 /* vec_unpackl */ 5820 res_vs = vec_unpackl(vsc); 5821 // CHECK: @llvm.ppc.altivec.vupklsb 5822 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5823 5824 res_vbs = vec_unpackl(vbc); 5825 // CHECK: @llvm.ppc.altivec.vupklsb 5826 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5827 5828 res_vi = vec_unpackl(vs); 5829 // CHECK: @llvm.ppc.altivec.vupklsh 5830 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5831 5832 res_vbi = vec_unpackl(vbs); 5833 // CHECK: @llvm.ppc.altivec.vupklsh 5834 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5835 5836 res_vui = vec_unpackl(vp); 5837 // CHECK: @llvm.ppc.altivec.vupklpx 5838 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5839 5840 res_vui = vec_vupklpx(vp); 5841 // CHECK: @llvm.ppc.altivec.vupklpx 5842 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5843 5844 res_vs = vec_vupklsb(vsc); 5845 // CHECK: @llvm.ppc.altivec.vupklsb 5846 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5847 5848 res_vbs = vec_vupklsb(vbc); 5849 // CHECK: @llvm.ppc.altivec.vupklsb 5850 // CHECK-LE: @llvm.ppc.altivec.vupkhsb 5851 5852 res_vi = vec_vupklsh(vs); 5853 // CHECK: @llvm.ppc.altivec.vupklsh 5854 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5855 5856 res_vbi = vec_vupklsh(vbs); 5857 // CHECK: @llvm.ppc.altivec.vupklsh 5858 // CHECK-LE: @llvm.ppc.altivec.vupkhsh 5859 5860 res_vui = vec_vupklsh(vp); 5861 // CHECK: @llvm.ppc.altivec.vupklpx 5862 // CHECK-LE: @llvm.ppc.altivec.vupkhpx 5863 5864 /* vec_xor */ 5865 res_vsc = vec_xor(vsc, vsc); 5866 // CHECK: xor <16 x i8> 5867 // CHECK-LE: xor <16 x i8> 5868 5869 res_vsc = vec_xor(vbc, vsc); 5870 // CHECK: xor <16 x i8> 5871 // CHECK-LE: xor <16 x i8> 5872 5873 res_vsc = vec_xor(vsc, vbc); 5874 // CHECK: xor <16 x i8> 5875 // CHECK-LE: xor <16 x i8> 5876 5877 res_vuc = vec_xor(vuc, vuc); 5878 // CHECK: xor <16 x i8> 5879 // CHECK-LE: xor <16 x i8> 5880 5881 res_vuc = vec_xor(vbc, vuc); 5882 // CHECK: xor <16 x i8> 5883 // CHECK-LE: xor <16 x i8> 5884 5885 res_vuc = vec_xor(vuc, vbc); 5886 // CHECK: xor <16 x i8> 5887 // CHECK-LE: xor <16 x i8> 5888 5889 res_vbc = vec_xor(vbc, vbc); 5890 // CHECK: xor <16 x i8> 5891 // CHECK-LE: xor <16 x i8> 5892 5893 res_vs = vec_xor(vs, vs); 5894 // CHECK: xor <8 x i16> 5895 // CHECK-LE: xor <8 x i16> 5896 5897 res_vs = vec_xor(vbs, vs); 5898 // CHECK: xor <8 x i16> 5899 // CHECK-LE: xor <8 x i16> 5900 5901 res_vs = vec_xor(vs, vbs); 5902 // CHECK: xor <8 x i16> 5903 // CHECK-LE: xor <8 x i16> 5904 5905 res_vus = vec_xor(vus, vus); 5906 // CHECK: xor <8 x i16> 5907 // CHECK-LE: xor <8 x i16> 5908 5909 res_vus = vec_xor(vbs, vus); 5910 // CHECK: xor <8 x i16> 5911 // CHECK-LE: xor <8 x i16> 5912 5913 res_vus = vec_xor(vus, vbs); 5914 // CHECK: xor <8 x i16> 5915 // CHECK-LE: xor <8 x i16> 5916 5917 res_vbs = vec_xor(vbs, vbs); 5918 // CHECK: xor <8 x i16> 5919 // CHECK-LE: xor <8 x i16> 5920 5921 res_vi = vec_xor(vi, vi); 5922 // CHECK: xor <4 x i32> 5923 // CHECK-LE: xor <4 x i32> 5924 5925 res_vi = vec_xor(vbi, vi); 5926 // CHECK: xor <4 x i32> 5927 // CHECK-LE: xor <4 x i32> 5928 5929 res_vi = vec_xor(vi, vbi); 5930 // CHECK: xor <4 x i32> 5931 // CHECK-LE: xor <4 x i32> 5932 5933 res_vui = vec_xor(vui, vui); 5934 // CHECK: xor <4 x i32> 5935 // CHECK-LE: xor <4 x i32> 5936 5937 res_vui = vec_xor(vbi, vui); 5938 // CHECK: xor <4 x i32> 5939 // CHECK-LE: xor <4 x i32> 5940 5941 res_vui = vec_xor(vui, vbi); 5942 // CHECK: xor <4 x i32> 5943 // CHECK-LE: xor <4 x i32> 5944 5945 res_vbi = vec_xor(vbi, vbi); 5946 // CHECK: xor <4 x i32> 5947 // CHECK-LE: xor <4 x i32> 5948 5949 res_vf = vec_xor(vf, vf); 5950 // CHECK: xor <4 x i32> 5951 // CHECK-LE: xor <4 x i32> 5952 5953 res_vf = vec_xor(vbi, vf); 5954 // CHECK: xor <4 x i32> 5955 // CHECK-LE: xor <4 x i32> 5956 5957 res_vf = vec_xor(vf, vbi); 5958 // CHECK: xor <4 x i32> 5959 // CHECK-LE: xor <4 x i32> 5960 5961 res_vsc = vec_vxor(vsc, vsc); 5962 // CHECK: xor <16 x i8> 5963 // CHECK-LE: xor <16 x i8> 5964 5965 res_vsc = vec_vxor(vbc, vsc); 5966 // CHECK: xor <16 x i8> 5967 // CHECK-LE: xor <16 x i8> 5968 5969 res_vsc = vec_vxor(vsc, vbc); 5970 // CHECK: xor <16 x i8> 5971 // CHECK-LE: xor <16 x i8> 5972 5973 res_vuc = vec_vxor(vuc, vuc); 5974 // CHECK: xor <16 x i8> 5975 // CHECK-LE: xor <16 x i8> 5976 5977 res_vuc = vec_vxor(vbc, vuc); 5978 // CHECK: xor <16 x i8> 5979 // CHECK-LE: xor <16 x i8> 5980 5981 res_vuc = vec_vxor(vuc, vbc); 5982 // CHECK: xor <16 x i8> 5983 // CHECK-LE: xor <16 x i8> 5984 5985 res_vbc = vec_vxor(vbc, vbc); 5986 // CHECK: xor <16 x i8> 5987 // CHECK-LE: xor <16 x i8> 5988 5989 res_vs = vec_vxor(vs, vs); 5990 // CHECK: xor <8 x i16> 5991 // CHECK-LE: xor <8 x i16> 5992 5993 res_vs = vec_vxor(vbs, vs); 5994 // CHECK: xor <8 x i16> 5995 // CHECK-LE: xor <8 x i16> 5996 5997 res_vs = vec_vxor(vs, vbs); 5998 // CHECK: xor <8 x i16> 5999 // CHECK-LE: xor <8 x i16> 6000 6001 res_vus = vec_vxor(vus, vus); 6002 // CHECK: xor <8 x i16> 6003 // CHECK-LE: xor <8 x i16> 6004 6005 res_vus = vec_vxor(vbs, vus); 6006 // CHECK: xor <8 x i16> 6007 // CHECK-LE: xor <8 x i16> 6008 6009 res_vus = vec_vxor(vus, vbs); 6010 // CHECK: xor <8 x i16> 6011 // CHECK-LE: xor <8 x i16> 6012 6013 res_vbs = vec_vxor(vbs, vbs); 6014 // CHECK: xor <8 x i16> 6015 // CHECK-LE: xor <8 x i16> 6016 6017 res_vi = vec_vxor(vi, vi); 6018 // CHECK: xor <4 x i32> 6019 // CHECK-LE: xor <4 x i32> 6020 6021 res_vi = vec_vxor(vbi, vi); 6022 // CHECK: xor <4 x i32> 6023 // CHECK-LE: xor <4 x i32> 6024 6025 res_vi = vec_vxor(vi, vbi); 6026 // CHECK: xor <4 x i32> 6027 // CHECK-LE: xor <4 x i32> 6028 6029 res_vui = vec_vxor(vui, vui); 6030 // CHECK: xor <4 x i32> 6031 // CHECK-LE: xor <4 x i32> 6032 6033 res_vui = vec_vxor(vbi, vui); 6034 // CHECK: xor <4 x i32> 6035 // CHECK-LE: xor <4 x i32> 6036 6037 res_vui = vec_vxor(vui, vbi); 6038 // CHECK: xor <4 x i32> 6039 // CHECK-LE: xor <4 x i32> 6040 6041 res_vbi = vec_vxor(vbi, vbi); 6042 // CHECK: xor <4 x i32> 6043 // CHECK-LE: xor <4 x i32> 6044 6045 res_vf = vec_vxor(vf, vf); 6046 // CHECK: xor <4 x i32> 6047 // CHECK-LE: xor <4 x i32> 6048 6049 res_vf = vec_vxor(vbi, vf); 6050 // CHECK: xor <4 x i32> 6051 // CHECK-LE: xor <4 x i32> 6052 6053 res_vf = vec_vxor(vf, vbi); 6054 // CHECK: xor <4 x i32> 6055 // CHECK-LE: xor <4 x i32> 6056 6057 /* ------------------------------ extensions -------------------------------------- */ 6058 6059 /* vec_extract */ 6060 res_sc = vec_extract(vsc, param_i); 6061 // CHECK: extractelement <16 x i8> 6062 // CHECK-LE: extractelement <16 x i8> 6063 6064 res_uc = vec_extract(vuc, param_i); 6065 // CHECK: extractelement <16 x i8> 6066 // CHECK-LE: extractelement <16 x i8> 6067 6068 res_uc = vec_extract(vbc, param_i); 6069 // CHECK: extractelement <16 x i8> 6070 // CHECK-LE: extractelement <16 x i8> 6071 6072 res_s = vec_extract(vs, param_i); 6073 // CHECK: extractelement <8 x i16> 6074 // CHECK-LE: extractelement <8 x i16> 6075 6076 res_us = vec_extract(vus, param_i); 6077 // CHECK: extractelement <8 x i16> 6078 // CHECK-LE: extractelement <8 x i16> 6079 6080 res_us = vec_extract(vbs, param_i); 6081 // CHECK: extractelement <8 x i16> 6082 // CHECK-LE: extractelement <8 x i16> 6083 6084 res_i = vec_extract(vi, param_i); 6085 // CHECK: extractelement <4 x i32> 6086 // CHECK-LE: extractelement <4 x i32> 6087 6088 res_ui = vec_extract(vui, param_i); 6089 // CHECK: extractelement <4 x i32> 6090 // CHECK-LE: extractelement <4 x i32> 6091 6092 res_ui = vec_extract(vbi, param_i); 6093 // CHECK: extractelement <4 x i32> 6094 // CHECK-LE: extractelement <4 x i32> 6095 6096 res_f = vec_extract(vf, param_i); 6097 // CHECK: extractelement <4 x float> 6098 // CHECK-LE: extractelement <4 x float> 6099 6100 /* vec_insert */ 6101 res_vsc = vec_insert(param_sc, vsc, param_i); 6102 // CHECK: insertelement <16 x i8> 6103 // CHECK-LE: insertelement <16 x i8> 6104 6105 res_vuc = vec_insert(param_uc, vuc, param_i); 6106 // CHECK: insertelement <16 x i8> 6107 // CHECK-LE: insertelement <16 x i8> 6108 6109 res_vbc = vec_insert(param_uc, vbc, param_i); 6110 // CHECK: insertelement <16 x i8> 6111 // CHECK-LE: insertelement <16 x i8> 6112 6113 res_vs = vec_insert(param_s, vs, param_i); 6114 // CHECK: insertelement <8 x i16> 6115 // CHECK-LE: insertelement <8 x i16> 6116 6117 res_vus = vec_insert(param_us, vus, param_i); 6118 // CHECK: insertelement <8 x i16> 6119 // CHECK-LE: insertelement <8 x i16> 6120 6121 res_vbs = vec_insert(param_us, vbs, param_i); 6122 // CHECK: insertelement <8 x i16> 6123 // CHECK-LE: insertelement <8 x i16> 6124 6125 res_vi = vec_insert(param_i, vi, param_i); 6126 // CHECK: insertelement <4 x i32> 6127 // CHECK-LE: insertelement <4 x i32> 6128 6129 res_vui = vec_insert(param_ui, vui, param_i); 6130 // CHECK: insertelement <4 x i32> 6131 // CHECK-LE: insertelement <4 x i32> 6132 6133 res_vbi = vec_insert(param_ui, vbi, param_i); 6134 // CHECK: insertelement <4 x i32> 6135 // CHECK-LE: insertelement <4 x i32> 6136 6137 res_vf = vec_insert(param_f, vf, param_i); 6138 // CHECK: insertelement <4 x float> 6139 // CHECK-LE: insertelement <4 x float> 6140 6141 /* vec_lvlx */ 6142 res_vsc = vec_lvlx(0, param_sc_ld); 6143 // CHECK: @llvm.ppc.altivec.lvx 6144 // CHECK: @llvm.ppc.altivec.lvsl 6145 // CHECK: store <16 x i8> zeroinitializer 6146 // CHECK: @llvm.ppc.altivec.vperm 6147 // CHECK-LE: @llvm.ppc.altivec.lvx 6148 // CHECK-LE: @llvm.ppc.altivec.lvsl 6149 // CHECK-LE: store <16 x i8> zeroinitializer 6150 // CHECK-LE: @llvm.ppc.altivec.vperm 6151 6152 res_vsc = vec_lvlx(0, &vsc); 6153 // CHECK: @llvm.ppc.altivec.lvx 6154 // CHECK: @llvm.ppc.altivec.lvsl 6155 // CHECK: store <16 x i8> zeroinitializer 6156 // CHECK: @llvm.ppc.altivec.vperm 6157 // CHECK-LE: @llvm.ppc.altivec.lvx 6158 // CHECK-LE: @llvm.ppc.altivec.lvsl 6159 // CHECK-LE: store <16 x i8> zeroinitializer 6160 // CHECK-LE: @llvm.ppc.altivec.vperm 6161 6162 res_vuc = vec_lvlx(0, param_uc_ld); 6163 // CHECK: @llvm.ppc.altivec.lvx 6164 // CHECK: @llvm.ppc.altivec.lvsl 6165 // CHECK: store <16 x i8> zeroinitializer 6166 // CHECK: @llvm.ppc.altivec.vperm 6167 // CHECK-LE: @llvm.ppc.altivec.lvx 6168 // CHECK-LE: @llvm.ppc.altivec.lvsl 6169 // CHECK-LE: store <16 x i8> zeroinitializer 6170 // CHECK-LE: @llvm.ppc.altivec.vperm 6171 6172 res_vuc = vec_lvlx(0, &vuc); 6173 // CHECK: @llvm.ppc.altivec.lvx 6174 // CHECK: @llvm.ppc.altivec.lvsl 6175 // CHECK: store <16 x i8> zeroinitializer 6176 // CHECK: @llvm.ppc.altivec.vperm 6177 // CHECK-LE: @llvm.ppc.altivec.lvx 6178 // CHECK-LE: @llvm.ppc.altivec.lvsl 6179 // CHECK-LE: store <16 x i8> zeroinitializer 6180 // CHECK-LE: @llvm.ppc.altivec.vperm 6181 6182 res_vbc = vec_lvlx(0, &vbc); 6183 // CHECK: @llvm.ppc.altivec.lvx 6184 // CHECK: store <16 x i8> zeroinitializer 6185 // CHECK: @llvm.ppc.altivec.lvsl 6186 // CHECK: @llvm.ppc.altivec.vperm 6187 // CHECK-LE: @llvm.ppc.altivec.lvx 6188 // CHECK-LE: store <16 x i8> zeroinitializer 6189 // CHECK-LE: @llvm.ppc.altivec.lvsl 6190 // CHECK-LE: @llvm.ppc.altivec.vperm 6191 6192 res_vs = vec_lvlx(0, param_s_ld); 6193 // CHECK: @llvm.ppc.altivec.lvx 6194 // CHECK: @llvm.ppc.altivec.lvsl 6195 // CHECK: store <8 x i16> zeroinitializer 6196 // CHECK: @llvm.ppc.altivec.vperm 6197 // CHECK-LE: @llvm.ppc.altivec.lvx 6198 // CHECK-LE: @llvm.ppc.altivec.lvsl 6199 // CHECK-LE: store <8 x i16> zeroinitializer 6200 // CHECK-LE: @llvm.ppc.altivec.vperm 6201 6202 res_vs = vec_lvlx(0, &vs); 6203 // CHECK: @llvm.ppc.altivec.lvx 6204 // CHECK: @llvm.ppc.altivec.lvsl 6205 // CHECK: store <8 x i16> zeroinitializer 6206 // CHECK: @llvm.ppc.altivec.vperm 6207 // CHECK-LE: @llvm.ppc.altivec.lvx 6208 // CHECK-LE: @llvm.ppc.altivec.lvsl 6209 // CHECK-LE: store <8 x i16> zeroinitializer 6210 // CHECK-LE: @llvm.ppc.altivec.vperm 6211 6212 res_vus = vec_lvlx(0, param_us_ld); 6213 // CHECK: @llvm.ppc.altivec.lvx 6214 // CHECK: @llvm.ppc.altivec.lvsl 6215 // CHECK: store <8 x i16> zeroinitializer 6216 // CHECK: @llvm.ppc.altivec.vperm 6217 // CHECK-LE: @llvm.ppc.altivec.lvx 6218 // CHECK-LE: @llvm.ppc.altivec.lvsl 6219 // CHECK-LE: store <8 x i16> zeroinitializer 6220 // CHECK-LE: @llvm.ppc.altivec.vperm 6221 6222 res_vus = vec_lvlx(0, &vus); 6223 // CHECK: @llvm.ppc.altivec.lvx 6224 // CHECK: @llvm.ppc.altivec.lvsl 6225 // CHECK: store <8 x i16> zeroinitializer 6226 // CHECK: @llvm.ppc.altivec.vperm 6227 // CHECK-LE: @llvm.ppc.altivec.lvx 6228 // CHECK-LE: @llvm.ppc.altivec.lvsl 6229 // CHECK-LE: store <8 x i16> zeroinitializer 6230 // CHECK-LE: @llvm.ppc.altivec.vperm 6231 6232 res_vbs = vec_lvlx(0, &vbs); 6233 // CHECK: @llvm.ppc.altivec.lvx 6234 // CHECK: store <8 x i16> zeroinitializer 6235 // CHECK: @llvm.ppc.altivec.lvsl 6236 // CHECK: @llvm.ppc.altivec.vperm 6237 // CHECK-LE: @llvm.ppc.altivec.lvx 6238 // CHECK-LE: store <8 x i16> zeroinitializer 6239 // CHECK-LE: @llvm.ppc.altivec.lvsl 6240 // CHECK-LE: @llvm.ppc.altivec.vperm 6241 6242 res_vp = vec_lvlx(0, &vp); 6243 // CHECK: @llvm.ppc.altivec.lvx 6244 // CHECK: store <8 x i16> zeroinitializer 6245 // CHECK: @llvm.ppc.altivec.lvsl 6246 // CHECK: @llvm.ppc.altivec.vperm 6247 // CHECK-LE: @llvm.ppc.altivec.lvx 6248 // CHECK-LE: store <8 x i16> zeroinitializer 6249 // CHECK-LE: @llvm.ppc.altivec.lvsl 6250 // CHECK-LE: @llvm.ppc.altivec.vperm 6251 6252 res_vi = vec_lvlx(0, param_i_ld); 6253 // CHECK: @llvm.ppc.altivec.lvx 6254 // CHECK: @llvm.ppc.altivec.lvsl 6255 // CHECK: store <4 x i32> zeroinitializer 6256 // CHECK: @llvm.ppc.altivec.vperm 6257 // CHECK-LE: @llvm.ppc.altivec.lvx 6258 // CHECK-LE: @llvm.ppc.altivec.lvsl 6259 // CHECK-LE: store <4 x i32> zeroinitializer 6260 // CHECK-LE: @llvm.ppc.altivec.vperm 6261 6262 res_vi = vec_lvlx(0, &vi); 6263 // CHECK: @llvm.ppc.altivec.lvx 6264 // CHECK: @llvm.ppc.altivec.lvsl 6265 // CHECK: store <4 x i32> zeroinitializer 6266 // CHECK: @llvm.ppc.altivec.vperm 6267 // CHECK-LE: @llvm.ppc.altivec.lvx 6268 // CHECK-LE: @llvm.ppc.altivec.lvsl 6269 // CHECK-LE: store <4 x i32> zeroinitializer 6270 // CHECK-LE: @llvm.ppc.altivec.vperm 6271 6272 res_vui = vec_lvlx(0, param_ui_ld); 6273 // CHECK: @llvm.ppc.altivec.lvx 6274 // CHECK: @llvm.ppc.altivec.lvsl 6275 // CHECK: store <4 x i32> zeroinitializer 6276 // CHECK: @llvm.ppc.altivec.vperm 6277 // CHECK-LE: @llvm.ppc.altivec.lvx 6278 // CHECK-LE: @llvm.ppc.altivec.lvsl 6279 // CHECK-LE: store <4 x i32> zeroinitializer 6280 // CHECK-LE: @llvm.ppc.altivec.vperm 6281 6282 res_vui = vec_lvlx(0, &vui); 6283 // CHECK: @llvm.ppc.altivec.lvx 6284 // CHECK: @llvm.ppc.altivec.lvsl 6285 // CHECK: store <4 x i32> zeroinitializer 6286 // CHECK: @llvm.ppc.altivec.vperm 6287 // CHECK-LE: @llvm.ppc.altivec.lvx 6288 // CHECK-LE: @llvm.ppc.altivec.lvsl 6289 // CHECK-LE: store <4 x i32> zeroinitializer 6290 // CHECK-LE: @llvm.ppc.altivec.vperm 6291 6292 res_vbi = vec_lvlx(0, &vbi); 6293 // CHECK: @llvm.ppc.altivec.lvx 6294 // CHECK: store <4 x i32> zeroinitializer 6295 // CHECK: @llvm.ppc.altivec.lvsl 6296 // CHECK: @llvm.ppc.altivec.vperm 6297 // CHECK-LE: @llvm.ppc.altivec.lvx 6298 // CHECK-LE: store <4 x i32> zeroinitializer 6299 // CHECK-LE: @llvm.ppc.altivec.lvsl 6300 // CHECK-LE: @llvm.ppc.altivec.vperm 6301 6302 res_vf = vec_lvlx(0, &vf); 6303 // CHECK: @llvm.ppc.altivec.lvx 6304 // CHECK: @llvm.ppc.altivec.lvsl 6305 // CHECK: store <4 x float> zeroinitializer 6306 // CHECK: @llvm.ppc.altivec.vperm 6307 // CHECK-LE: @llvm.ppc.altivec.lvx 6308 // CHECK-LE: @llvm.ppc.altivec.lvsl 6309 // CHECK-LE: store <4 x float> zeroinitializer 6310 // CHECK-LE: @llvm.ppc.altivec.vperm 6311 6312 /* vec_lvlxl */ 6313 res_vsc = vec_lvlxl(0, param_sc_ld); 6314 // CHECK: @llvm.ppc.altivec.lvxl 6315 // CHECK: @llvm.ppc.altivec.lvsl 6316 // CHECK: store <16 x i8> zeroinitializer 6317 // CHECK: @llvm.ppc.altivec.vperm 6318 // CHECK-LE: @llvm.ppc.altivec.lvxl 6319 // CHECK-LE: @llvm.ppc.altivec.lvsl 6320 // CHECK-LE: store <16 x i8> zeroinitializer 6321 // CHECK-LE: @llvm.ppc.altivec.vperm 6322 6323 res_vsc = vec_lvlxl(0, &vsc); 6324 // CHECK: @llvm.ppc.altivec.lvxl 6325 // CHECK: @llvm.ppc.altivec.lvsl 6326 // CHECK: store <16 x i8> zeroinitializer 6327 // CHECK: @llvm.ppc.altivec.vperm 6328 // CHECK-LE: @llvm.ppc.altivec.lvxl 6329 // CHECK-LE: @llvm.ppc.altivec.lvsl 6330 // CHECK-LE: store <16 x i8> zeroinitializer 6331 // CHECK-LE: @llvm.ppc.altivec.vperm 6332 6333 res_vuc = vec_lvlxl(0, param_uc_ld); 6334 // CHECK: @llvm.ppc.altivec.lvxl 6335 // CHECK: @llvm.ppc.altivec.lvsl 6336 // CHECK: store <16 x i8> zeroinitializer 6337 // CHECK: @llvm.ppc.altivec.vperm 6338 // CHECK-LE: @llvm.ppc.altivec.lvxl 6339 // CHECK-LE: @llvm.ppc.altivec.lvsl 6340 // CHECK-LE: store <16 x i8> zeroinitializer 6341 // CHECK-LE: @llvm.ppc.altivec.vperm 6342 6343 res_vuc = vec_lvlxl(0, &vuc); 6344 // CHECK: @llvm.ppc.altivec.lvxl 6345 // CHECK: @llvm.ppc.altivec.lvsl 6346 // CHECK: store <16 x i8> zeroinitializer 6347 // CHECK: @llvm.ppc.altivec.vperm 6348 // CHECK-LE: @llvm.ppc.altivec.lvxl 6349 // CHECK-LE: @llvm.ppc.altivec.lvsl 6350 // CHECK-LE: store <16 x i8> zeroinitializer 6351 // CHECK-LE: @llvm.ppc.altivec.vperm 6352 6353 res_vbc = vec_lvlxl(0, &vbc); 6354 // CHECK: @llvm.ppc.altivec.lvxl 6355 // CHECK: store <16 x i8> zeroinitializer 6356 // CHECK: @llvm.ppc.altivec.lvsl 6357 // CHECK: @llvm.ppc.altivec.vperm 6358 // CHECK-LE: @llvm.ppc.altivec.lvxl 6359 // CHECK-LE: store <16 x i8> zeroinitializer 6360 // CHECK-LE: @llvm.ppc.altivec.lvsl 6361 // CHECK-LE: @llvm.ppc.altivec.vperm 6362 6363 res_vs = vec_lvlxl(0, param_s_ld); 6364 // CHECK: @llvm.ppc.altivec.lvxl 6365 // CHECK: @llvm.ppc.altivec.lvsl 6366 // CHECK: store <8 x i16> zeroinitializer 6367 // CHECK: @llvm.ppc.altivec.vperm 6368 // CHECK-LE: @llvm.ppc.altivec.lvxl 6369 // CHECK-LE: @llvm.ppc.altivec.lvsl 6370 // CHECK-LE: store <8 x i16> zeroinitializer 6371 // CHECK-LE: @llvm.ppc.altivec.vperm 6372 6373 res_vs = vec_lvlxl(0, &vs); 6374 // CHECK: @llvm.ppc.altivec.lvxl 6375 // CHECK: @llvm.ppc.altivec.lvsl 6376 // CHECK: store <8 x i16> zeroinitializer 6377 // CHECK: @llvm.ppc.altivec.vperm 6378 // CHECK-LE: @llvm.ppc.altivec.lvxl 6379 // CHECK-LE: @llvm.ppc.altivec.lvsl 6380 // CHECK-LE: store <8 x i16> zeroinitializer 6381 // CHECK-LE: @llvm.ppc.altivec.vperm 6382 6383 res_vus = vec_lvlxl(0, param_us_ld); 6384 // CHECK: @llvm.ppc.altivec.lvxl 6385 // CHECK: @llvm.ppc.altivec.lvsl 6386 // CHECK: store <8 x i16> zeroinitializer 6387 // CHECK: @llvm.ppc.altivec.vperm 6388 // CHECK-LE: @llvm.ppc.altivec.lvxl 6389 // CHECK-LE: @llvm.ppc.altivec.lvsl 6390 // CHECK-LE: store <8 x i16> zeroinitializer 6391 // CHECK-LE: @llvm.ppc.altivec.vperm 6392 6393 res_vus = vec_lvlxl(0, &vus); 6394 // CHECK: @llvm.ppc.altivec.lvxl 6395 // CHECK: @llvm.ppc.altivec.lvsl 6396 // CHECK: store <8 x i16> zeroinitializer 6397 // CHECK: @llvm.ppc.altivec.vperm 6398 // CHECK-LE: @llvm.ppc.altivec.lvxl 6399 // CHECK-LE: @llvm.ppc.altivec.lvsl 6400 // CHECK-LE: store <8 x i16> zeroinitializer 6401 // CHECK-LE: @llvm.ppc.altivec.vperm 6402 6403 res_vbs = vec_lvlxl(0, &vbs); 6404 // CHECK: @llvm.ppc.altivec.lvxl 6405 // CHECK: store <8 x i16> zeroinitializer 6406 // CHECK: @llvm.ppc.altivec.lvsl 6407 // CHECK: @llvm.ppc.altivec.vperm 6408 // CHECK-LE: @llvm.ppc.altivec.lvxl 6409 // CHECK-LE: store <8 x i16> zeroinitializer 6410 // CHECK-LE: @llvm.ppc.altivec.lvsl 6411 // CHECK-LE: @llvm.ppc.altivec.vperm 6412 6413 res_vp = vec_lvlxl(0, &vp); 6414 // CHECK: @llvm.ppc.altivec.lvxl 6415 // CHECK: store <8 x i16> zeroinitializer 6416 // CHECK: @llvm.ppc.altivec.lvsl 6417 // CHECK: @llvm.ppc.altivec.vperm 6418 // CHECK-LE: @llvm.ppc.altivec.lvxl 6419 // CHECK-LE: store <8 x i16> zeroinitializer 6420 // CHECK-LE: @llvm.ppc.altivec.lvsl 6421 // CHECK-LE: @llvm.ppc.altivec.vperm 6422 6423 res_vi = vec_lvlxl(0, param_i_ld); 6424 // CHECK: @llvm.ppc.altivec.lvxl 6425 // CHECK: @llvm.ppc.altivec.lvsl 6426 // CHECK: store <4 x i32> zeroinitializer 6427 // CHECK: @llvm.ppc.altivec.vperm 6428 // CHECK-LE: @llvm.ppc.altivec.lvxl 6429 // CHECK-LE: @llvm.ppc.altivec.lvsl 6430 // CHECK-LE: store <4 x i32> zeroinitializer 6431 // CHECK-LE: @llvm.ppc.altivec.vperm 6432 6433 res_vi = vec_lvlxl(0, &vi); 6434 // CHECK: @llvm.ppc.altivec.lvxl 6435 // CHECK: @llvm.ppc.altivec.lvsl 6436 // CHECK: store <4 x i32> zeroinitializer 6437 // CHECK: @llvm.ppc.altivec.vperm 6438 // CHECK-LE: @llvm.ppc.altivec.lvxl 6439 // CHECK-LE: @llvm.ppc.altivec.lvsl 6440 // CHECK-LE: store <4 x i32> zeroinitializer 6441 // CHECK-LE: @llvm.ppc.altivec.vperm 6442 6443 res_vui = vec_lvlxl(0, param_ui_ld); 6444 // CHECK: @llvm.ppc.altivec.lvxl 6445 // CHECK: @llvm.ppc.altivec.lvsl 6446 // CHECK: store <4 x i32> zeroinitializer 6447 // CHECK: @llvm.ppc.altivec.vperm 6448 // CHECK-LE: @llvm.ppc.altivec.lvxl 6449 // CHECK-LE: @llvm.ppc.altivec.lvsl 6450 // CHECK-LE: store <4 x i32> zeroinitializer 6451 // CHECK-LE: @llvm.ppc.altivec.vperm 6452 6453 res_vui = vec_lvlxl(0, &vui); 6454 // CHECK: @llvm.ppc.altivec.lvxl 6455 // CHECK: @llvm.ppc.altivec.lvsl 6456 // CHECK: store <4 x i32> zeroinitializer 6457 // CHECK: @llvm.ppc.altivec.vperm 6458 // CHECK-LE: @llvm.ppc.altivec.lvxl 6459 // CHECK-LE: @llvm.ppc.altivec.lvsl 6460 // CHECK-LE: store <4 x i32> zeroinitializer 6461 // CHECK-LE: @llvm.ppc.altivec.vperm 6462 6463 res_vbi = vec_lvlxl(0, &vbi); 6464 // CHECK: @llvm.ppc.altivec.lvxl 6465 // CHECK: store <4 x i32> zeroinitializer 6466 // CHECK: @llvm.ppc.altivec.lvsl 6467 // CHECK: @llvm.ppc.altivec.vperm 6468 // CHECK-LE: @llvm.ppc.altivec.lvxl 6469 // CHECK-LE: store <4 x i32> zeroinitializer 6470 // CHECK-LE: @llvm.ppc.altivec.lvsl 6471 // CHECK-LE: @llvm.ppc.altivec.vperm 6472 6473 res_vf = vec_lvlxl(0, &vf); 6474 // CHECK: @llvm.ppc.altivec.lvxl 6475 // CHECK: @llvm.ppc.altivec.lvsl 6476 // CHECK: store <4 x float> zeroinitializer 6477 // CHECK: @llvm.ppc.altivec.vperm 6478 // CHECK-LE: @llvm.ppc.altivec.lvxl 6479 // CHECK-LE: @llvm.ppc.altivec.lvsl 6480 // CHECK-LE: store <4 x float> zeroinitializer 6481 // CHECK-LE: @llvm.ppc.altivec.vperm 6482 6483 /* vec_lvrx */ 6484 res_vsc = vec_lvrx(0, param_sc_ld); 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-LE: @llvm.ppc.altivec.lvx 6490 // CHECK-LE: @llvm.ppc.altivec.lvsl 6491 // CHECK-LE: store <16 x i8> zeroinitializer 6492 // CHECK-LE: @llvm.ppc.altivec.vperm 6493 6494 res_vsc = vec_lvrx(0, &vsc); 6495 // CHECK: @llvm.ppc.altivec.lvx 6496 // CHECK: @llvm.ppc.altivec.lvsl 6497 // CHECK: store <16 x i8> zeroinitializer 6498 // CHECK: @llvm.ppc.altivec.vperm 6499 // CHECK-LE: @llvm.ppc.altivec.lvx 6500 // CHECK-LE: @llvm.ppc.altivec.lvsl 6501 // CHECK-LE: store <16 x i8> zeroinitializer 6502 // CHECK-LE: @llvm.ppc.altivec.vperm 6503 6504 res_vuc = vec_lvrx(0, param_uc_ld); 6505 // CHECK: @llvm.ppc.altivec.lvx 6506 // CHECK: @llvm.ppc.altivec.lvsl 6507 // CHECK: store <16 x i8> zeroinitializer 6508 // CHECK: @llvm.ppc.altivec.vperm 6509 // CHECK-LE: @llvm.ppc.altivec.lvx 6510 // CHECK-LE: @llvm.ppc.altivec.lvsl 6511 // CHECK-LE: store <16 x i8> zeroinitializer 6512 // CHECK-LE: @llvm.ppc.altivec.vperm 6513 6514 res_vuc = vec_lvrx(0, &vuc); 6515 // CHECK: @llvm.ppc.altivec.lvx 6516 // CHECK: @llvm.ppc.altivec.lvsl 6517 // CHECK: store <16 x i8> zeroinitializer 6518 // CHECK: @llvm.ppc.altivec.vperm 6519 // CHECK-LE: @llvm.ppc.altivec.lvx 6520 // CHECK-LE: @llvm.ppc.altivec.lvsl 6521 // CHECK-LE: store <16 x i8> zeroinitializer 6522 // CHECK-LE: @llvm.ppc.altivec.vperm 6523 6524 res_vbc = vec_lvrx(0, &vbc); 6525 // CHECK: store <16 x i8> zeroinitializer 6526 // CHECK: @llvm.ppc.altivec.lvx 6527 // CHECK: @llvm.ppc.altivec.lvsl 6528 // CHECK: @llvm.ppc.altivec.vperm 6529 // CHECK-LE: store <16 x i8> zeroinitializer 6530 // CHECK-LE: @llvm.ppc.altivec.lvx 6531 // CHECK-LE: @llvm.ppc.altivec.lvsl 6532 // CHECK-LE: @llvm.ppc.altivec.vperm 6533 6534 res_vs = vec_lvrx(0, param_s_ld); 6535 // CHECK: @llvm.ppc.altivec.lvx 6536 // CHECK: @llvm.ppc.altivec.lvsl 6537 // CHECK: store <8 x i16> zeroinitializer 6538 // CHECK: @llvm.ppc.altivec.vperm 6539 // CHECK-LE: @llvm.ppc.altivec.lvx 6540 // CHECK-LE: @llvm.ppc.altivec.lvsl 6541 // CHECK-LE: store <8 x i16> zeroinitializer 6542 // CHECK-LE: @llvm.ppc.altivec.vperm 6543 6544 res_vs = vec_lvrx(0, &vs); 6545 // CHECK: @llvm.ppc.altivec.lvx 6546 // CHECK: @llvm.ppc.altivec.lvsl 6547 // CHECK: store <8 x i16> zeroinitializer 6548 // CHECK: @llvm.ppc.altivec.vperm 6549 // CHECK-LE: @llvm.ppc.altivec.lvx 6550 // CHECK-LE: @llvm.ppc.altivec.lvsl 6551 // CHECK-LE: store <8 x i16> zeroinitializer 6552 // CHECK-LE: @llvm.ppc.altivec.vperm 6553 6554 res_vus = vec_lvrx(0, param_us_ld); 6555 // CHECK: @llvm.ppc.altivec.lvx 6556 // CHECK: @llvm.ppc.altivec.lvsl 6557 // CHECK: store <8 x i16> zeroinitializer 6558 // CHECK: @llvm.ppc.altivec.vperm 6559 // CHECK-LE: @llvm.ppc.altivec.lvx 6560 // CHECK-LE: @llvm.ppc.altivec.lvsl 6561 // CHECK-LE: store <8 x i16> zeroinitializer 6562 // CHECK-LE: @llvm.ppc.altivec.vperm 6563 6564 res_vus = vec_lvrx(0, &vus); 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-LE: @llvm.ppc.altivec.lvx 6570 // CHECK-LE: @llvm.ppc.altivec.lvsl 6571 // CHECK-LE: store <8 x i16> zeroinitializer 6572 // CHECK-LE: @llvm.ppc.altivec.vperm 6573 6574 res_vbs = vec_lvrx(0, &vbs); 6575 // CHECK: store <8 x i16> zeroinitializer 6576 // CHECK: @llvm.ppc.altivec.lvx 6577 // CHECK: @llvm.ppc.altivec.lvsl 6578 // CHECK: @llvm.ppc.altivec.vperm 6579 // CHECK-LE: store <8 x i16> zeroinitializer 6580 // CHECK-LE: @llvm.ppc.altivec.lvx 6581 // CHECK-LE: @llvm.ppc.altivec.lvsl 6582 // CHECK-LE: @llvm.ppc.altivec.vperm 6583 6584 res_vp = vec_lvrx(0, &vp); 6585 // CHECK: store <8 x i16> zeroinitializer 6586 // CHECK: @llvm.ppc.altivec.lvx 6587 // CHECK: @llvm.ppc.altivec.lvsl 6588 // CHECK: @llvm.ppc.altivec.vperm 6589 // CHECK-LE: store <8 x i16> zeroinitializer 6590 // CHECK-LE: @llvm.ppc.altivec.lvx 6591 // CHECK-LE: @llvm.ppc.altivec.lvsl 6592 // CHECK-LE: @llvm.ppc.altivec.vperm 6593 6594 res_vi = vec_lvrx(0, param_i_ld); 6595 // CHECK: @llvm.ppc.altivec.lvx 6596 // CHECK: @llvm.ppc.altivec.lvsl 6597 // CHECK: store <4 x i32> zeroinitializer 6598 // CHECK: @llvm.ppc.altivec.vperm 6599 // CHECK-LE: @llvm.ppc.altivec.lvx 6600 // CHECK-LE: @llvm.ppc.altivec.lvsl 6601 // CHECK-LE: store <4 x i32> zeroinitializer 6602 // CHECK-LE: @llvm.ppc.altivec.vperm 6603 6604 res_vi = vec_lvrx(0, &vi); 6605 // CHECK: @llvm.ppc.altivec.lvx 6606 // CHECK: @llvm.ppc.altivec.lvsl 6607 // CHECK: store <4 x i32> zeroinitializer 6608 // CHECK: @llvm.ppc.altivec.vperm 6609 // CHECK-LE: @llvm.ppc.altivec.lvx 6610 // CHECK-LE: @llvm.ppc.altivec.lvsl 6611 // CHECK-LE: store <4 x i32> zeroinitializer 6612 // CHECK-LE: @llvm.ppc.altivec.vperm 6613 6614 res_vui = vec_lvrx(0, param_ui_ld); 6615 // CHECK: @llvm.ppc.altivec.lvx 6616 // CHECK: @llvm.ppc.altivec.lvsl 6617 // CHECK: store <4 x i32> zeroinitializer 6618 // CHECK: @llvm.ppc.altivec.vperm 6619 // CHECK-LE: @llvm.ppc.altivec.lvx 6620 // CHECK-LE: @llvm.ppc.altivec.lvsl 6621 // CHECK-LE: store <4 x i32> zeroinitializer 6622 // CHECK-LE: @llvm.ppc.altivec.vperm 6623 6624 res_vui = vec_lvrx(0, &vui); 6625 // CHECK: @llvm.ppc.altivec.lvx 6626 // CHECK: @llvm.ppc.altivec.lvsl 6627 // CHECK: store <4 x i32> zeroinitializer 6628 // CHECK: @llvm.ppc.altivec.vperm 6629 // CHECK-LE: @llvm.ppc.altivec.lvx 6630 // CHECK-LE: @llvm.ppc.altivec.lvsl 6631 // CHECK-LE: store <4 x i32> zeroinitializer 6632 // CHECK-LE: @llvm.ppc.altivec.vperm 6633 6634 res_vbi = vec_lvrx(0, &vbi); 6635 // CHECK: store <4 x i32> zeroinitializer 6636 // CHECK: @llvm.ppc.altivec.lvx 6637 // CHECK: @llvm.ppc.altivec.lvsl 6638 // CHECK: @llvm.ppc.altivec.vperm 6639 // CHECK-LE: store <4 x i32> zeroinitializer 6640 // CHECK-LE: @llvm.ppc.altivec.lvx 6641 // CHECK-LE: @llvm.ppc.altivec.lvsl 6642 // CHECK-LE: @llvm.ppc.altivec.vperm 6643 6644 res_vf = vec_lvrx(0, &vf); 6645 // CHECK: @llvm.ppc.altivec.lvx 6646 // CHECK: @llvm.ppc.altivec.lvsl 6647 // CHECK: store <4 x float> zeroinitializer 6648 // CHECK: @llvm.ppc.altivec.vperm 6649 // CHECK-LE: @llvm.ppc.altivec.lvx 6650 // CHECK-LE: @llvm.ppc.altivec.lvsl 6651 // CHECK-LE: store <4 x float> zeroinitializer 6652 // CHECK-LE: @llvm.ppc.altivec.vperm 6653 6654 /* vec_lvrxl */ 6655 res_vsc = vec_lvrxl(0, param_sc_ld); 6656 // CHECK: @llvm.ppc.altivec.lvxl 6657 // CHECK: @llvm.ppc.altivec.lvsl 6658 // CHECK: store <16 x i8> zeroinitializer 6659 // CHECK: @llvm.ppc.altivec.vperm 6660 // CHECK-LE: @llvm.ppc.altivec.lvxl 6661 // CHECK-LE: @llvm.ppc.altivec.lvsl 6662 // CHECK-LE: store <16 x i8> zeroinitializer 6663 // CHECK-LE: @llvm.ppc.altivec.vperm 6664 6665 res_vsc = vec_lvrxl(0, &vsc); 6666 // CHECK: @llvm.ppc.altivec.lvxl 6667 // CHECK: @llvm.ppc.altivec.lvsl 6668 // CHECK: store <16 x i8> zeroinitializer 6669 // CHECK: @llvm.ppc.altivec.vperm 6670 // CHECK-LE: @llvm.ppc.altivec.lvxl 6671 // CHECK-LE: @llvm.ppc.altivec.lvsl 6672 // CHECK-LE: store <16 x i8> zeroinitializer 6673 // CHECK-LE: @llvm.ppc.altivec.vperm 6674 6675 res_vuc = vec_lvrxl(0, param_uc_ld); 6676 // CHECK: @llvm.ppc.altivec.lvxl 6677 // CHECK: @llvm.ppc.altivec.lvsl 6678 // CHECK: store <16 x i8> zeroinitializer 6679 // CHECK: @llvm.ppc.altivec.vperm 6680 // CHECK-LE: @llvm.ppc.altivec.lvxl 6681 // CHECK-LE: @llvm.ppc.altivec.lvsl 6682 // CHECK-LE: store <16 x i8> zeroinitializer 6683 // CHECK-LE: @llvm.ppc.altivec.vperm 6684 6685 res_vuc = vec_lvrxl(0, &vuc); 6686 // CHECK: @llvm.ppc.altivec.lvxl 6687 // CHECK: @llvm.ppc.altivec.lvsl 6688 // CHECK: store <16 x i8> zeroinitializer 6689 // CHECK: @llvm.ppc.altivec.vperm 6690 // CHECK-LE: @llvm.ppc.altivec.lvxl 6691 // CHECK-LE: @llvm.ppc.altivec.lvsl 6692 // CHECK-LE: store <16 x i8> zeroinitializer 6693 // CHECK-LE: @llvm.ppc.altivec.vperm 6694 6695 res_vbc = vec_lvrxl(0, &vbc); 6696 // CHECK: store <16 x i8> zeroinitializer 6697 // CHECK: @llvm.ppc.altivec.lvxl 6698 // CHECK: @llvm.ppc.altivec.lvsl 6699 // CHECK: @llvm.ppc.altivec.vperm 6700 // CHECK-LE: store <16 x i8> zeroinitializer 6701 // CHECK-LE: @llvm.ppc.altivec.lvxl 6702 // CHECK-LE: @llvm.ppc.altivec.lvsl 6703 // CHECK-LE: @llvm.ppc.altivec.vperm 6704 6705 res_vs = vec_lvrxl(0, param_s_ld); 6706 // CHECK: @llvm.ppc.altivec.lvxl 6707 // CHECK: @llvm.ppc.altivec.lvsl 6708 // CHECK: store <8 x i16> zeroinitializer 6709 // CHECK: @llvm.ppc.altivec.vperm 6710 // CHECK-LE: @llvm.ppc.altivec.lvxl 6711 // CHECK-LE: @llvm.ppc.altivec.lvsl 6712 // CHECK-LE: store <8 x i16> zeroinitializer 6713 // CHECK-LE: @llvm.ppc.altivec.vperm 6714 6715 res_vs = vec_lvrxl(0, &vs); 6716 // CHECK: @llvm.ppc.altivec.lvxl 6717 // CHECK: @llvm.ppc.altivec.lvsl 6718 // CHECK: store <8 x i16> zeroinitializer 6719 // CHECK: @llvm.ppc.altivec.vperm 6720 // CHECK-LE: @llvm.ppc.altivec.lvxl 6721 // CHECK-LE: @llvm.ppc.altivec.lvsl 6722 // CHECK-LE: store <8 x i16> zeroinitializer 6723 // CHECK-LE: @llvm.ppc.altivec.vperm 6724 6725 res_vus = vec_lvrxl(0, param_us_ld); 6726 // CHECK: @llvm.ppc.altivec.lvxl 6727 // CHECK: @llvm.ppc.altivec.lvsl 6728 // CHECK: store <8 x i16> zeroinitializer 6729 // CHECK: @llvm.ppc.altivec.vperm 6730 // CHECK-LE: @llvm.ppc.altivec.lvxl 6731 // CHECK-LE: @llvm.ppc.altivec.lvsl 6732 // CHECK-LE: store <8 x i16> zeroinitializer 6733 // CHECK-LE: @llvm.ppc.altivec.vperm 6734 6735 res_vus = vec_lvrxl(0, &vus); 6736 // CHECK: @llvm.ppc.altivec.lvxl 6737 // CHECK: @llvm.ppc.altivec.lvsl 6738 // CHECK: store <8 x i16> zeroinitializer 6739 // CHECK: @llvm.ppc.altivec.vperm 6740 // CHECK-LE: @llvm.ppc.altivec.lvxl 6741 // CHECK-LE: @llvm.ppc.altivec.lvsl 6742 // CHECK-LE: store <8 x i16> zeroinitializer 6743 // CHECK-LE: @llvm.ppc.altivec.vperm 6744 6745 res_vbs = vec_lvrxl(0, &vbs); 6746 // CHECK: store <8 x i16> zeroinitializer 6747 // CHECK: @llvm.ppc.altivec.lvxl 6748 // CHECK: @llvm.ppc.altivec.lvsl 6749 // CHECK: @llvm.ppc.altivec.vperm 6750 // CHECK-LE: store <8 x i16> zeroinitializer 6751 // CHECK-LE: @llvm.ppc.altivec.lvxl 6752 // CHECK-LE: @llvm.ppc.altivec.lvsl 6753 // CHECK-LE: @llvm.ppc.altivec.vperm 6754 6755 res_vp = vec_lvrxl(0, &vp); 6756 // CHECK: store <8 x i16> zeroinitializer 6757 // CHECK: @llvm.ppc.altivec.lvxl 6758 // CHECK: @llvm.ppc.altivec.lvsl 6759 // CHECK: @llvm.ppc.altivec.vperm 6760 // CHECK-LE: store <8 x i16> zeroinitializer 6761 // CHECK-LE: @llvm.ppc.altivec.lvxl 6762 // CHECK-LE: @llvm.ppc.altivec.lvsl 6763 // CHECK-LE: @llvm.ppc.altivec.vperm 6764 6765 res_vi = vec_lvrxl(0, param_i_ld); 6766 // CHECK: @llvm.ppc.altivec.lvxl 6767 // CHECK: @llvm.ppc.altivec.lvsl 6768 // CHECK: store <4 x i32> zeroinitializer 6769 // CHECK: @llvm.ppc.altivec.vperm 6770 // CHECK-LE: @llvm.ppc.altivec.lvxl 6771 // CHECK-LE: @llvm.ppc.altivec.lvsl 6772 // CHECK-LE: store <4 x i32> zeroinitializer 6773 // CHECK-LE: @llvm.ppc.altivec.vperm 6774 6775 res_vi = vec_lvrxl(0, &vi); 6776 // CHECK: @llvm.ppc.altivec.lvxl 6777 // CHECK: @llvm.ppc.altivec.lvsl 6778 // CHECK: store <4 x i32> zeroinitializer 6779 // CHECK: @llvm.ppc.altivec.vperm 6780 // CHECK-LE: @llvm.ppc.altivec.lvxl 6781 // CHECK-LE: @llvm.ppc.altivec.lvsl 6782 // CHECK-LE: store <4 x i32> zeroinitializer 6783 // CHECK-LE: @llvm.ppc.altivec.vperm 6784 6785 res_vui = vec_lvrxl(0, param_ui_ld); 6786 // CHECK: @llvm.ppc.altivec.lvxl 6787 // CHECK: @llvm.ppc.altivec.lvsl 6788 // CHECK: store <4 x i32> zeroinitializer 6789 // CHECK: @llvm.ppc.altivec.vperm 6790 // CHECK-LE: @llvm.ppc.altivec.lvxl 6791 // CHECK-LE: @llvm.ppc.altivec.lvsl 6792 // CHECK-LE: store <4 x i32> zeroinitializer 6793 // CHECK-LE: @llvm.ppc.altivec.vperm 6794 6795 res_vui = vec_lvrxl(0, &vui); 6796 // CHECK: @llvm.ppc.altivec.lvxl 6797 // CHECK: @llvm.ppc.altivec.lvsl 6798 // CHECK: store <4 x i32> zeroinitializer 6799 // CHECK: @llvm.ppc.altivec.vperm 6800 // CHECK-LE: @llvm.ppc.altivec.lvxl 6801 // CHECK-LE: @llvm.ppc.altivec.lvsl 6802 // CHECK-LE: store <4 x i32> zeroinitializer 6803 // CHECK-LE: @llvm.ppc.altivec.vperm 6804 6805 res_vbi = vec_lvrxl(0, &vbi); 6806 // CHECK: store <4 x i32> zeroinitializer 6807 // CHECK: @llvm.ppc.altivec.lvxl 6808 // CHECK: @llvm.ppc.altivec.lvsl 6809 // CHECK: @llvm.ppc.altivec.vperm 6810 // CHECK-LE: store <4 x i32> zeroinitializer 6811 // CHECK-LE: @llvm.ppc.altivec.lvxl 6812 // CHECK-LE: @llvm.ppc.altivec.lvsl 6813 // CHECK-LE: @llvm.ppc.altivec.vperm 6814 6815 res_vf = vec_lvrxl(0, &vf); 6816 // CHECK: @llvm.ppc.altivec.lvxl 6817 // CHECK: @llvm.ppc.altivec.lvsl 6818 // CHECK: store <4 x float> zeroinitializer 6819 // CHECK: @llvm.ppc.altivec.vperm 6820 // CHECK-LE: @llvm.ppc.altivec.lvxl 6821 // CHECK-LE: @llvm.ppc.altivec.lvsl 6822 // CHECK-LE: store <4 x float> zeroinitializer 6823 // CHECK-LE: @llvm.ppc.altivec.vperm 6824 6825 /* vec_stvlx */ 6826 vec_stvlx(vsc, 0, ¶m_sc); 6827 // CHECK: @llvm.ppc.altivec.lvx 6828 // CHECK: @llvm.ppc.altivec.lvsl 6829 // CHECK: store <16 x i8> zeroinitializer 6830 // CHECK: @llvm.ppc.altivec.vperm 6831 // CHECK: @llvm.ppc.altivec.lvsr 6832 // CHECK: @llvm.ppc.altivec.vperm 6833 // CHECK: @llvm.ppc.altivec.stvx 6834 // CHECK-LE: @llvm.ppc.altivec.lvx 6835 // CHECK-LE: @llvm.ppc.altivec.lvsl 6836 // CHECK-LE: store <16 x i8> zeroinitializer 6837 // CHECK-LE: @llvm.ppc.altivec.vperm 6838 // CHECK-LE: @llvm.ppc.altivec.lvsr 6839 // CHECK-LE: @llvm.ppc.altivec.vperm 6840 // CHECK-LE: @llvm.ppc.altivec.stvx 6841 6842 vec_stvlx(vsc, 0, &vsc); 6843 // CHECK: @llvm.ppc.altivec.lvx 6844 // CHECK: @llvm.ppc.altivec.lvsl 6845 // CHECK: store <16 x i8> zeroinitializer 6846 // CHECK: @llvm.ppc.altivec.vperm 6847 // CHECK: @llvm.ppc.altivec.lvsr 6848 // CHECK: @llvm.ppc.altivec.vperm 6849 // CHECK: @llvm.ppc.altivec.stvx 6850 // CHECK-LE: @llvm.ppc.altivec.lvx 6851 // CHECK-LE: @llvm.ppc.altivec.lvsl 6852 // CHECK-LE: store <16 x i8> zeroinitializer 6853 // CHECK-LE: @llvm.ppc.altivec.vperm 6854 // CHECK-LE: @llvm.ppc.altivec.lvsr 6855 // CHECK-LE: @llvm.ppc.altivec.vperm 6856 // CHECK-LE: @llvm.ppc.altivec.stvx 6857 6858 vec_stvlx(vuc, 0, ¶m_uc); 6859 // CHECK: @llvm.ppc.altivec.lvx 6860 // CHECK: @llvm.ppc.altivec.lvsl 6861 // CHECK: store <16 x i8> zeroinitializer 6862 // CHECK: @llvm.ppc.altivec.vperm 6863 // CHECK: @llvm.ppc.altivec.lvsr 6864 // CHECK: @llvm.ppc.altivec.vperm 6865 // CHECK: @llvm.ppc.altivec.stvx 6866 // CHECK-LE: @llvm.ppc.altivec.lvx 6867 // CHECK-LE: @llvm.ppc.altivec.lvsl 6868 // CHECK-LE: store <16 x i8> zeroinitializer 6869 // CHECK-LE: @llvm.ppc.altivec.vperm 6870 // CHECK-LE: @llvm.ppc.altivec.lvsr 6871 // CHECK-LE: @llvm.ppc.altivec.vperm 6872 // CHECK-LE: @llvm.ppc.altivec.stvx 6873 6874 vec_stvlx(vuc, 0, &vuc); 6875 // CHECK: @llvm.ppc.altivec.lvx 6876 // CHECK: @llvm.ppc.altivec.lvsl 6877 // CHECK: store <16 x i8> zeroinitializer 6878 // CHECK: @llvm.ppc.altivec.vperm 6879 // CHECK: @llvm.ppc.altivec.lvsr 6880 // CHECK: @llvm.ppc.altivec.vperm 6881 // CHECK: @llvm.ppc.altivec.stvx 6882 // CHECK-LE: @llvm.ppc.altivec.lvx 6883 // CHECK-LE: @llvm.ppc.altivec.lvsl 6884 // CHECK-LE: store <16 x i8> zeroinitializer 6885 // CHECK-LE: @llvm.ppc.altivec.vperm 6886 // CHECK-LE: @llvm.ppc.altivec.lvsr 6887 // CHECK-LE: @llvm.ppc.altivec.vperm 6888 // CHECK-LE: @llvm.ppc.altivec.stvx 6889 6890 vec_stvlx(vbc, 0, &vbc); 6891 // CHECK: store <16 x i8> zeroinitializer 6892 // CHECK: @llvm.ppc.altivec.lvx 6893 // CHECK: @llvm.ppc.altivec.lvsl 6894 // CHECK: @llvm.ppc.altivec.vperm 6895 // CHECK: @llvm.ppc.altivec.lvsr 6896 // CHECK: @llvm.ppc.altivec.vperm 6897 // CHECK: @llvm.ppc.altivec.stvx 6898 // CHECK-LE: store <16 x i8> zeroinitializer 6899 // CHECK-LE: @llvm.ppc.altivec.lvx 6900 // CHECK-LE: @llvm.ppc.altivec.lvsl 6901 // CHECK-LE: @llvm.ppc.altivec.vperm 6902 // CHECK-LE: @llvm.ppc.altivec.lvsr 6903 // CHECK-LE: @llvm.ppc.altivec.vperm 6904 // CHECK-LE: @llvm.ppc.altivec.stvx 6905 6906 vec_stvlx(vs, 0, ¶m_s); 6907 // CHECK: @llvm.ppc.altivec.lvx 6908 // CHECK: @llvm.ppc.altivec.lvsl 6909 // CHECK: store <8 x i16> zeroinitializer 6910 // CHECK: @llvm.ppc.altivec.vperm 6911 // CHECK: @llvm.ppc.altivec.lvsr 6912 // CHECK: @llvm.ppc.altivec.vperm 6913 // CHECK: @llvm.ppc.altivec.stvx 6914 // CHECK-LE: @llvm.ppc.altivec.lvx 6915 // CHECK-LE: @llvm.ppc.altivec.lvsl 6916 // CHECK-LE: store <8 x i16> zeroinitializer 6917 // CHECK-LE: @llvm.ppc.altivec.vperm 6918 // CHECK-LE: @llvm.ppc.altivec.lvsr 6919 // CHECK-LE: @llvm.ppc.altivec.vperm 6920 // CHECK-LE: @llvm.ppc.altivec.stvx 6921 6922 vec_stvlx(vs, 0, &vs); 6923 // CHECK: @llvm.ppc.altivec.lvx 6924 // CHECK: @llvm.ppc.altivec.lvsl 6925 // CHECK: store <8 x i16> zeroinitializer 6926 // CHECK: @llvm.ppc.altivec.vperm 6927 // CHECK: @llvm.ppc.altivec.lvsr 6928 // CHECK: @llvm.ppc.altivec.vperm 6929 // CHECK: @llvm.ppc.altivec.stvx 6930 // CHECK-LE: @llvm.ppc.altivec.lvx 6931 // CHECK-LE: @llvm.ppc.altivec.lvsl 6932 // CHECK-LE: store <8 x i16> zeroinitializer 6933 // CHECK-LE: @llvm.ppc.altivec.vperm 6934 // CHECK-LE: @llvm.ppc.altivec.lvsr 6935 // CHECK-LE: @llvm.ppc.altivec.vperm 6936 // CHECK-LE: @llvm.ppc.altivec.stvx 6937 6938 vec_stvlx(vus, 0, ¶m_us); 6939 // CHECK: @llvm.ppc.altivec.lvx 6940 // CHECK: @llvm.ppc.altivec.lvsl 6941 // CHECK: store <8 x i16> zeroinitializer 6942 // CHECK: @llvm.ppc.altivec.vperm 6943 // CHECK: @llvm.ppc.altivec.lvsr 6944 // CHECK: @llvm.ppc.altivec.vperm 6945 // CHECK: @llvm.ppc.altivec.stvx 6946 // CHECK-LE: @llvm.ppc.altivec.lvx 6947 // CHECK-LE: @llvm.ppc.altivec.lvsl 6948 // CHECK-LE: store <8 x i16> zeroinitializer 6949 // CHECK-LE: @llvm.ppc.altivec.vperm 6950 // CHECK-LE: @llvm.ppc.altivec.lvsr 6951 // CHECK-LE: @llvm.ppc.altivec.vperm 6952 // CHECK-LE: @llvm.ppc.altivec.stvx 6953 6954 vec_stvlx(vus, 0, &vus); 6955 // CHECK: @llvm.ppc.altivec.lvx 6956 // CHECK: @llvm.ppc.altivec.lvsl 6957 // CHECK: store <8 x i16> zeroinitializer 6958 // CHECK: @llvm.ppc.altivec.vperm 6959 // CHECK: @llvm.ppc.altivec.lvsr 6960 // CHECK: @llvm.ppc.altivec.vperm 6961 // CHECK: @llvm.ppc.altivec.stvx 6962 // CHECK-LE: @llvm.ppc.altivec.lvx 6963 // CHECK-LE: @llvm.ppc.altivec.lvsl 6964 // CHECK-LE: store <8 x i16> zeroinitializer 6965 // CHECK-LE: @llvm.ppc.altivec.vperm 6966 // CHECK-LE: @llvm.ppc.altivec.lvsr 6967 // CHECK-LE: @llvm.ppc.altivec.vperm 6968 // CHECK-LE: @llvm.ppc.altivec.stvx 6969 6970 vec_stvlx(vbs, 0, &vbs); 6971 // CHECK: store <8 x i16> zeroinitializer 6972 // CHECK: @llvm.ppc.altivec.lvx 6973 // CHECK: @llvm.ppc.altivec.lvsl 6974 // CHECK: @llvm.ppc.altivec.vperm 6975 // CHECK: @llvm.ppc.altivec.lvsr 6976 // CHECK: @llvm.ppc.altivec.vperm 6977 // CHECK: @llvm.ppc.altivec.stvx 6978 // CHECK-LE: store <8 x i16> zeroinitializer 6979 // CHECK-LE: @llvm.ppc.altivec.lvx 6980 // CHECK-LE: @llvm.ppc.altivec.lvsl 6981 // CHECK-LE: @llvm.ppc.altivec.vperm 6982 // CHECK-LE: @llvm.ppc.altivec.lvsr 6983 // CHECK-LE: @llvm.ppc.altivec.vperm 6984 // CHECK-LE: @llvm.ppc.altivec.stvx 6985 6986 vec_stvlx(vp, 0, &vp); 6987 // CHECK: store <8 x i16> zeroinitializer 6988 // CHECK: @llvm.ppc.altivec.lvx 6989 // CHECK: @llvm.ppc.altivec.lvsl 6990 // CHECK: @llvm.ppc.altivec.vperm 6991 // CHECK: @llvm.ppc.altivec.lvsr 6992 // CHECK: @llvm.ppc.altivec.vperm 6993 // CHECK: @llvm.ppc.altivec.stvx 6994 // CHECK-LE: store <8 x i16> zeroinitializer 6995 // CHECK-LE: @llvm.ppc.altivec.lvx 6996 // CHECK-LE: @llvm.ppc.altivec.lvsl 6997 // CHECK-LE: @llvm.ppc.altivec.vperm 6998 // CHECK-LE: @llvm.ppc.altivec.lvsr 6999 // CHECK-LE: @llvm.ppc.altivec.vperm 7000 // CHECK-LE: @llvm.ppc.altivec.stvx 7001 7002 vec_stvlx(vi, 0, ¶m_i); 7003 // CHECK: @llvm.ppc.altivec.lvx 7004 // CHECK: @llvm.ppc.altivec.lvsl 7005 // CHECK: store <4 x i32> zeroinitializer 7006 // CHECK: @llvm.ppc.altivec.vperm 7007 // CHECK: @llvm.ppc.altivec.lvsr 7008 // CHECK: @llvm.ppc.altivec.vperm 7009 // CHECK: @llvm.ppc.altivec.stvx 7010 // CHECK-LE: @llvm.ppc.altivec.lvx 7011 // CHECK-LE: @llvm.ppc.altivec.lvsl 7012 // CHECK-LE: store <4 x i32> zeroinitializer 7013 // CHECK-LE: @llvm.ppc.altivec.vperm 7014 // CHECK-LE: @llvm.ppc.altivec.lvsr 7015 // CHECK-LE: @llvm.ppc.altivec.vperm 7016 // CHECK-LE: @llvm.ppc.altivec.stvx 7017 7018 vec_stvlx(vi, 0, &vi); 7019 // CHECK: @llvm.ppc.altivec.lvx 7020 // CHECK: @llvm.ppc.altivec.lvsl 7021 // CHECK: store <4 x i32> zeroinitializer 7022 // CHECK: @llvm.ppc.altivec.vperm 7023 // CHECK: @llvm.ppc.altivec.lvsr 7024 // CHECK: @llvm.ppc.altivec.vperm 7025 // CHECK: @llvm.ppc.altivec.stvx 7026 // CHECK-LE: @llvm.ppc.altivec.lvx 7027 // CHECK-LE: @llvm.ppc.altivec.lvsl 7028 // CHECK-LE: store <4 x i32> zeroinitializer 7029 // CHECK-LE: @llvm.ppc.altivec.vperm 7030 // CHECK-LE: @llvm.ppc.altivec.lvsr 7031 // CHECK-LE: @llvm.ppc.altivec.vperm 7032 // CHECK-LE: @llvm.ppc.altivec.stvx 7033 7034 vec_stvlx(vui, 0, ¶m_ui); 7035 // CHECK: @llvm.ppc.altivec.lvx 7036 // CHECK: @llvm.ppc.altivec.lvsl 7037 // CHECK: store <4 x i32> zeroinitializer 7038 // CHECK: @llvm.ppc.altivec.vperm 7039 // CHECK: @llvm.ppc.altivec.lvsr 7040 // CHECK: @llvm.ppc.altivec.vperm 7041 // CHECK: @llvm.ppc.altivec.stvx 7042 // CHECK-LE: @llvm.ppc.altivec.lvx 7043 // CHECK-LE: @llvm.ppc.altivec.lvsl 7044 // CHECK-LE: store <4 x i32> zeroinitializer 7045 // CHECK-LE: @llvm.ppc.altivec.vperm 7046 // CHECK-LE: @llvm.ppc.altivec.lvsr 7047 // CHECK-LE: @llvm.ppc.altivec.vperm 7048 // CHECK-LE: @llvm.ppc.altivec.stvx 7049 7050 vec_stvlx(vui, 0, &vui); 7051 // CHECK: @llvm.ppc.altivec.lvx 7052 // CHECK: @llvm.ppc.altivec.lvsl 7053 // CHECK: store <4 x i32> zeroinitializer 7054 // CHECK: @llvm.ppc.altivec.vperm 7055 // CHECK: @llvm.ppc.altivec.lvsr 7056 // CHECK: @llvm.ppc.altivec.vperm 7057 // CHECK: @llvm.ppc.altivec.stvx 7058 // CHECK-LE: @llvm.ppc.altivec.lvx 7059 // CHECK-LE: @llvm.ppc.altivec.lvsl 7060 // CHECK-LE: store <4 x i32> zeroinitializer 7061 // CHECK-LE: @llvm.ppc.altivec.vperm 7062 // CHECK-LE: @llvm.ppc.altivec.lvsr 7063 // CHECK-LE: @llvm.ppc.altivec.vperm 7064 // CHECK-LE: @llvm.ppc.altivec.stvx 7065 7066 vec_stvlx(vbi, 0, &vbi); 7067 // CHECK: store <4 x i32> zeroinitializer 7068 // CHECK: @llvm.ppc.altivec.lvx 7069 // CHECK: @llvm.ppc.altivec.lvsl 7070 // CHECK: @llvm.ppc.altivec.vperm 7071 // CHECK: @llvm.ppc.altivec.lvsr 7072 // CHECK: @llvm.ppc.altivec.vperm 7073 // CHECK: @llvm.ppc.altivec.stvx 7074 // CHECK-LE: store <4 x i32> zeroinitializer 7075 // CHECK-LE: @llvm.ppc.altivec.lvx 7076 // CHECK-LE: @llvm.ppc.altivec.lvsl 7077 // CHECK-LE: @llvm.ppc.altivec.vperm 7078 // CHECK-LE: @llvm.ppc.altivec.lvsr 7079 // CHECK-LE: @llvm.ppc.altivec.vperm 7080 // CHECK-LE: @llvm.ppc.altivec.stvx 7081 7082 vec_stvlx(vf, 0, &vf); 7083 // CHECK: @llvm.ppc.altivec.lvx 7084 // CHECK: @llvm.ppc.altivec.lvsl 7085 // CHECK: store <4 x float> zeroinitializer 7086 // CHECK: @llvm.ppc.altivec.vperm 7087 // CHECK: @llvm.ppc.altivec.lvsr 7088 // CHECK: @llvm.ppc.altivec.vperm 7089 // CHECK: @llvm.ppc.altivec.stvx 7090 // CHECK-LE: @llvm.ppc.altivec.lvx 7091 // CHECK-LE: @llvm.ppc.altivec.lvsl 7092 // CHECK-LE: store <4 x float> zeroinitializer 7093 // CHECK-LE: @llvm.ppc.altivec.vperm 7094 // CHECK-LE: @llvm.ppc.altivec.lvsr 7095 // CHECK-LE: @llvm.ppc.altivec.vperm 7096 // CHECK-LE: @llvm.ppc.altivec.stvx 7097 7098 /* vec_stvlxl */ 7099 vec_stvlxl(vsc, 0, ¶m_sc); 7100 // CHECK: @llvm.ppc.altivec.lvx 7101 // CHECK: @llvm.ppc.altivec.lvsl 7102 // CHECK: store <16 x i8> zeroinitializer 7103 // CHECK: @llvm.ppc.altivec.vperm 7104 // CHECK: @llvm.ppc.altivec.lvsr 7105 // CHECK: @llvm.ppc.altivec.vperm 7106 // CHECK: @llvm.ppc.altivec.stvxl 7107 // CHECK-LE: @llvm.ppc.altivec.lvx 7108 // CHECK-LE: @llvm.ppc.altivec.lvsl 7109 // CHECK-LE: store <16 x i8> zeroinitializer 7110 // CHECK-LE: @llvm.ppc.altivec.vperm 7111 // CHECK-LE: @llvm.ppc.altivec.lvsr 7112 // CHECK-LE: @llvm.ppc.altivec.vperm 7113 // CHECK-LE: @llvm.ppc.altivec.stvxl 7114 7115 vec_stvlxl(vsc, 0, &vsc); 7116 // CHECK: @llvm.ppc.altivec.lvx 7117 // CHECK: @llvm.ppc.altivec.lvsl 7118 // CHECK: store <16 x i8> zeroinitializer 7119 // CHECK: @llvm.ppc.altivec.vperm 7120 // CHECK: @llvm.ppc.altivec.lvsr 7121 // CHECK: @llvm.ppc.altivec.vperm 7122 // CHECK: @llvm.ppc.altivec.stvxl 7123 // CHECK-LE: @llvm.ppc.altivec.lvx 7124 // CHECK-LE: @llvm.ppc.altivec.lvsl 7125 // CHECK-LE: store <16 x i8> zeroinitializer 7126 // CHECK-LE: @llvm.ppc.altivec.vperm 7127 // CHECK-LE: @llvm.ppc.altivec.lvsr 7128 // CHECK-LE: @llvm.ppc.altivec.vperm 7129 // CHECK-LE: @llvm.ppc.altivec.stvxl 7130 7131 vec_stvlxl(vuc, 0, ¶m_uc); 7132 // CHECK: @llvm.ppc.altivec.lvx 7133 // CHECK: @llvm.ppc.altivec.lvsl 7134 // CHECK: store <16 x i8> zeroinitializer 7135 // CHECK: @llvm.ppc.altivec.vperm 7136 // CHECK: @llvm.ppc.altivec.lvsr 7137 // CHECK: @llvm.ppc.altivec.vperm 7138 // CHECK: @llvm.ppc.altivec.stvxl 7139 // CHECK-LE: @llvm.ppc.altivec.lvx 7140 // CHECK-LE: @llvm.ppc.altivec.lvsl 7141 // CHECK-LE: store <16 x i8> zeroinitializer 7142 // CHECK-LE: @llvm.ppc.altivec.vperm 7143 // CHECK-LE: @llvm.ppc.altivec.lvsr 7144 // CHECK-LE: @llvm.ppc.altivec.vperm 7145 // CHECK-LE: @llvm.ppc.altivec.stvxl 7146 7147 vec_stvlxl(vuc, 0, &vuc); 7148 // CHECK: @llvm.ppc.altivec.lvx 7149 // CHECK: @llvm.ppc.altivec.lvsl 7150 // CHECK: store <16 x i8> zeroinitializer 7151 // CHECK: @llvm.ppc.altivec.vperm 7152 // CHECK: @llvm.ppc.altivec.lvsr 7153 // CHECK: @llvm.ppc.altivec.vperm 7154 // CHECK: @llvm.ppc.altivec.stvxl 7155 // CHECK-LE: @llvm.ppc.altivec.lvx 7156 // CHECK-LE: @llvm.ppc.altivec.lvsl 7157 // CHECK-LE: store <16 x i8> zeroinitializer 7158 // CHECK-LE: @llvm.ppc.altivec.vperm 7159 // CHECK-LE: @llvm.ppc.altivec.lvsr 7160 // CHECK-LE: @llvm.ppc.altivec.vperm 7161 // CHECK-LE: @llvm.ppc.altivec.stvxl 7162 7163 vec_stvlxl(vbc, 0, &vbc); 7164 // CHECK: store <16 x i8> zeroinitializer 7165 // CHECK: @llvm.ppc.altivec.lvx 7166 // CHECK: @llvm.ppc.altivec.lvsl 7167 // CHECK: @llvm.ppc.altivec.vperm 7168 // CHECK: @llvm.ppc.altivec.lvsr 7169 // CHECK: @llvm.ppc.altivec.vperm 7170 // CHECK: @llvm.ppc.altivec.stvxl 7171 // CHECK-LE: store <16 x i8> zeroinitializer 7172 // CHECK-LE: @llvm.ppc.altivec.lvx 7173 // CHECK-LE: @llvm.ppc.altivec.lvsl 7174 // CHECK-LE: @llvm.ppc.altivec.vperm 7175 // CHECK-LE: @llvm.ppc.altivec.lvsr 7176 // CHECK-LE: @llvm.ppc.altivec.vperm 7177 // CHECK-LE: @llvm.ppc.altivec.stvxl 7178 7179 vec_stvlxl(vs, 0, ¶m_s); 7180 // CHECK: @llvm.ppc.altivec.lvx 7181 // CHECK: @llvm.ppc.altivec.lvsl 7182 // CHECK: store <8 x i16> zeroinitializer 7183 // CHECK: @llvm.ppc.altivec.vperm 7184 // CHECK: @llvm.ppc.altivec.lvsr 7185 // CHECK: @llvm.ppc.altivec.vperm 7186 // CHECK: @llvm.ppc.altivec.stvxl 7187 // CHECK-LE: @llvm.ppc.altivec.lvx 7188 // CHECK-LE: @llvm.ppc.altivec.lvsl 7189 // CHECK-LE: store <8 x i16> zeroinitializer 7190 // CHECK-LE: @llvm.ppc.altivec.vperm 7191 // CHECK-LE: @llvm.ppc.altivec.lvsr 7192 // CHECK-LE: @llvm.ppc.altivec.vperm 7193 // CHECK-LE: @llvm.ppc.altivec.stvxl 7194 7195 vec_stvlxl(vs, 0, &vs); 7196 // CHECK: @llvm.ppc.altivec.lvx 7197 // CHECK: @llvm.ppc.altivec.lvsl 7198 // CHECK: store <8 x i16> zeroinitializer 7199 // CHECK: @llvm.ppc.altivec.vperm 7200 // CHECK: @llvm.ppc.altivec.lvsr 7201 // CHECK: @llvm.ppc.altivec.vperm 7202 // CHECK: @llvm.ppc.altivec.stvxl 7203 // CHECK-LE: @llvm.ppc.altivec.lvx 7204 // CHECK-LE: @llvm.ppc.altivec.lvsl 7205 // CHECK-LE: store <8 x i16> zeroinitializer 7206 // CHECK-LE: @llvm.ppc.altivec.vperm 7207 // CHECK-LE: @llvm.ppc.altivec.lvsr 7208 // CHECK-LE: @llvm.ppc.altivec.vperm 7209 // CHECK-LE: @llvm.ppc.altivec.stvxl 7210 7211 vec_stvlxl(vus, 0, ¶m_us); 7212 // CHECK: @llvm.ppc.altivec.lvx 7213 // CHECK: @llvm.ppc.altivec.lvsl 7214 // CHECK: store <8 x i16> zeroinitializer 7215 // CHECK: @llvm.ppc.altivec.vperm 7216 // CHECK: @llvm.ppc.altivec.lvsr 7217 // CHECK: @llvm.ppc.altivec.vperm 7218 // CHECK: @llvm.ppc.altivec.stvxl 7219 // CHECK-LE: @llvm.ppc.altivec.lvx 7220 // CHECK-LE: @llvm.ppc.altivec.lvsl 7221 // CHECK-LE: store <8 x i16> zeroinitializer 7222 // CHECK-LE: @llvm.ppc.altivec.vperm 7223 // CHECK-LE: @llvm.ppc.altivec.lvsr 7224 // CHECK-LE: @llvm.ppc.altivec.vperm 7225 // CHECK-LE: @llvm.ppc.altivec.stvxl 7226 7227 vec_stvlxl(vus, 0, &vus); 7228 // CHECK: @llvm.ppc.altivec.lvx 7229 // CHECK: @llvm.ppc.altivec.lvsl 7230 // CHECK: store <8 x i16> zeroinitializer 7231 // CHECK: @llvm.ppc.altivec.vperm 7232 // CHECK: @llvm.ppc.altivec.lvsr 7233 // CHECK: @llvm.ppc.altivec.vperm 7234 // CHECK: @llvm.ppc.altivec.stvxl 7235 // CHECK-LE: @llvm.ppc.altivec.lvx 7236 // CHECK-LE: @llvm.ppc.altivec.lvsl 7237 // CHECK-LE: store <8 x i16> zeroinitializer 7238 // CHECK-LE: @llvm.ppc.altivec.vperm 7239 // CHECK-LE: @llvm.ppc.altivec.lvsr 7240 // CHECK-LE: @llvm.ppc.altivec.vperm 7241 // CHECK-LE: @llvm.ppc.altivec.stvxl 7242 7243 vec_stvlxl(vbs, 0, &vbs); 7244 // CHECK: store <8 x i16> zeroinitializer 7245 // CHECK: @llvm.ppc.altivec.lvx 7246 // CHECK: @llvm.ppc.altivec.lvsl 7247 // CHECK: @llvm.ppc.altivec.vperm 7248 // CHECK: @llvm.ppc.altivec.lvsr 7249 // CHECK: @llvm.ppc.altivec.vperm 7250 // CHECK: @llvm.ppc.altivec.stvxl 7251 // CHECK-LE: store <8 x i16> zeroinitializer 7252 // CHECK-LE: @llvm.ppc.altivec.lvx 7253 // CHECK-LE: @llvm.ppc.altivec.lvsl 7254 // CHECK-LE: @llvm.ppc.altivec.vperm 7255 // CHECK-LE: @llvm.ppc.altivec.lvsr 7256 // CHECK-LE: @llvm.ppc.altivec.vperm 7257 // CHECK-LE: @llvm.ppc.altivec.stvxl 7258 7259 vec_stvlxl(vp, 0, &vp); 7260 // CHECK: store <8 x i16> zeroinitializer 7261 // CHECK: @llvm.ppc.altivec.lvx 7262 // CHECK: @llvm.ppc.altivec.lvsl 7263 // CHECK: @llvm.ppc.altivec.vperm 7264 // CHECK: @llvm.ppc.altivec.lvsr 7265 // CHECK: @llvm.ppc.altivec.vperm 7266 // CHECK: @llvm.ppc.altivec.stvxl 7267 // CHECK-LE: store <8 x i16> zeroinitializer 7268 // CHECK-LE: @llvm.ppc.altivec.lvx 7269 // CHECK-LE: @llvm.ppc.altivec.lvsl 7270 // CHECK-LE: @llvm.ppc.altivec.vperm 7271 // CHECK-LE: @llvm.ppc.altivec.lvsr 7272 // CHECK-LE: @llvm.ppc.altivec.vperm 7273 // CHECK-LE: @llvm.ppc.altivec.stvxl 7274 7275 vec_stvlxl(vi, 0, ¶m_i); 7276 // CHECK: @llvm.ppc.altivec.lvx 7277 // CHECK: @llvm.ppc.altivec.lvsl 7278 // CHECK: store <4 x i32> zeroinitializer 7279 // CHECK: @llvm.ppc.altivec.vperm 7280 // CHECK: @llvm.ppc.altivec.lvsr 7281 // CHECK: @llvm.ppc.altivec.vperm 7282 // CHECK: @llvm.ppc.altivec.stvxl 7283 // CHECK-LE: @llvm.ppc.altivec.lvx 7284 // CHECK-LE: @llvm.ppc.altivec.lvsl 7285 // CHECK-LE: store <4 x i32> zeroinitializer 7286 // CHECK-LE: @llvm.ppc.altivec.vperm 7287 // CHECK-LE: @llvm.ppc.altivec.lvsr 7288 // CHECK-LE: @llvm.ppc.altivec.vperm 7289 // CHECK-LE: @llvm.ppc.altivec.stvxl 7290 7291 vec_stvlxl(vi, 0, &vi); 7292 // CHECK: @llvm.ppc.altivec.lvx 7293 // CHECK: @llvm.ppc.altivec.lvsl 7294 // CHECK: store <4 x i32> zeroinitializer 7295 // CHECK: @llvm.ppc.altivec.vperm 7296 // CHECK: @llvm.ppc.altivec.lvsr 7297 // CHECK: @llvm.ppc.altivec.vperm 7298 // CHECK: @llvm.ppc.altivec.stvxl 7299 // CHECK-LE: @llvm.ppc.altivec.lvx 7300 // CHECK-LE: @llvm.ppc.altivec.lvsl 7301 // CHECK-LE: store <4 x i32> zeroinitializer 7302 // CHECK-LE: @llvm.ppc.altivec.vperm 7303 // CHECK-LE: @llvm.ppc.altivec.lvsr 7304 // CHECK-LE: @llvm.ppc.altivec.vperm 7305 // CHECK-LE: @llvm.ppc.altivec.stvxl 7306 7307 vec_stvlxl(vui, 0, ¶m_ui); 7308 // CHECK: @llvm.ppc.altivec.lvx 7309 // CHECK: @llvm.ppc.altivec.lvsl 7310 // CHECK: store <4 x i32> zeroinitializer 7311 // CHECK: @llvm.ppc.altivec.vperm 7312 // CHECK: @llvm.ppc.altivec.lvsr 7313 // CHECK: @llvm.ppc.altivec.vperm 7314 // CHECK: @llvm.ppc.altivec.stvxl 7315 // CHECK-LE: @llvm.ppc.altivec.lvx 7316 // CHECK-LE: @llvm.ppc.altivec.lvsl 7317 // CHECK-LE: store <4 x i32> zeroinitializer 7318 // CHECK-LE: @llvm.ppc.altivec.vperm 7319 // CHECK-LE: @llvm.ppc.altivec.lvsr 7320 // CHECK-LE: @llvm.ppc.altivec.vperm 7321 // CHECK-LE: @llvm.ppc.altivec.stvxl 7322 7323 vec_stvlxl(vui, 0, &vui); 7324 // CHECK: @llvm.ppc.altivec.lvx 7325 // CHECK: @llvm.ppc.altivec.lvsl 7326 // CHECK: store <4 x i32> zeroinitializer 7327 // CHECK: @llvm.ppc.altivec.vperm 7328 // CHECK: @llvm.ppc.altivec.lvsr 7329 // CHECK: @llvm.ppc.altivec.vperm 7330 // CHECK: @llvm.ppc.altivec.stvxl 7331 // CHECK-LE: @llvm.ppc.altivec.lvx 7332 // CHECK-LE: @llvm.ppc.altivec.lvsl 7333 // CHECK-LE: store <4 x i32> zeroinitializer 7334 // CHECK-LE: @llvm.ppc.altivec.vperm 7335 // CHECK-LE: @llvm.ppc.altivec.lvsr 7336 // CHECK-LE: @llvm.ppc.altivec.vperm 7337 // CHECK-LE: @llvm.ppc.altivec.stvxl 7338 7339 vec_stvlxl(vbi, 0, &vbi); 7340 // CHECK: store <4 x i32> zeroinitializer 7341 // CHECK: @llvm.ppc.altivec.lvx 7342 // CHECK: @llvm.ppc.altivec.lvsl 7343 // CHECK: @llvm.ppc.altivec.vperm 7344 // CHECK: @llvm.ppc.altivec.lvsr 7345 // CHECK: @llvm.ppc.altivec.vperm 7346 // CHECK: @llvm.ppc.altivec.stvxl 7347 // CHECK-LE: store <4 x i32> zeroinitializer 7348 // CHECK-LE: @llvm.ppc.altivec.lvx 7349 // CHECK-LE: @llvm.ppc.altivec.lvsl 7350 // CHECK-LE: @llvm.ppc.altivec.vperm 7351 // CHECK-LE: @llvm.ppc.altivec.lvsr 7352 // CHECK-LE: @llvm.ppc.altivec.vperm 7353 // CHECK-LE: @llvm.ppc.altivec.stvxl 7354 7355 vec_stvlxl(vf, 0, &vf); 7356 // CHECK: @llvm.ppc.altivec.lvx 7357 // CHECK: @llvm.ppc.altivec.lvsl 7358 // CHECK: store <4 x float> zeroinitializer 7359 // CHECK: @llvm.ppc.altivec.vperm 7360 // CHECK: @llvm.ppc.altivec.lvsr 7361 // CHECK: @llvm.ppc.altivec.vperm 7362 // CHECK: @llvm.ppc.altivec.stvxl 7363 // CHECK-LE: @llvm.ppc.altivec.lvx 7364 // CHECK-LE: @llvm.ppc.altivec.lvsl 7365 // CHECK-LE: store <4 x float> zeroinitializer 7366 // CHECK-LE: @llvm.ppc.altivec.vperm 7367 // CHECK-LE: @llvm.ppc.altivec.lvsr 7368 // CHECK-LE: @llvm.ppc.altivec.vperm 7369 // CHECK-LE: @llvm.ppc.altivec.stvxl 7370 7371 /* vec_stvrx */ 7372 vec_stvrx(vsc, 0, ¶m_sc); 7373 // CHECK: @llvm.ppc.altivec.lvx 7374 // CHECK: @llvm.ppc.altivec.lvsl 7375 // CHECK: store <16 x i8> zeroinitializer 7376 // CHECK: @llvm.ppc.altivec.vperm 7377 // CHECK: @llvm.ppc.altivec.lvsr 7378 // CHECK: @llvm.ppc.altivec.vperm 7379 // CHECK: @llvm.ppc.altivec.stvx 7380 // CHECK-LE: @llvm.ppc.altivec.lvx 7381 // CHECK-LE: @llvm.ppc.altivec.lvsl 7382 // CHECK-LE: store <16 x i8> zeroinitializer 7383 // CHECK-LE: @llvm.ppc.altivec.vperm 7384 // CHECK-LE: @llvm.ppc.altivec.lvsr 7385 // CHECK-LE: @llvm.ppc.altivec.vperm 7386 // CHECK-LE: @llvm.ppc.altivec.stvx 7387 7388 vec_stvrx(vsc, 0, &vsc); 7389 // CHECK: @llvm.ppc.altivec.lvx 7390 // CHECK: @llvm.ppc.altivec.lvsl 7391 // CHECK: store <16 x i8> zeroinitializer 7392 // CHECK: @llvm.ppc.altivec.vperm 7393 // CHECK: @llvm.ppc.altivec.lvsr 7394 // CHECK: @llvm.ppc.altivec.vperm 7395 // CHECK: @llvm.ppc.altivec.stvx 7396 // CHECK-LE: @llvm.ppc.altivec.lvx 7397 // CHECK-LE: @llvm.ppc.altivec.lvsl 7398 // CHECK-LE: store <16 x i8> zeroinitializer 7399 // CHECK-LE: @llvm.ppc.altivec.vperm 7400 // CHECK-LE: @llvm.ppc.altivec.lvsr 7401 // CHECK-LE: @llvm.ppc.altivec.vperm 7402 // CHECK-LE: @llvm.ppc.altivec.stvx 7403 7404 vec_stvrx(vuc, 0, ¶m_uc); 7405 // CHECK: @llvm.ppc.altivec.lvx 7406 // CHECK: @llvm.ppc.altivec.lvsl 7407 // CHECK: store <16 x i8> zeroinitializer 7408 // CHECK: @llvm.ppc.altivec.vperm 7409 // CHECK: @llvm.ppc.altivec.lvsr 7410 // CHECK: @llvm.ppc.altivec.vperm 7411 // CHECK: @llvm.ppc.altivec.stvx 7412 // CHECK-LE: @llvm.ppc.altivec.lvx 7413 // CHECK-LE: @llvm.ppc.altivec.lvsl 7414 // CHECK-LE: store <16 x i8> zeroinitializer 7415 // CHECK-LE: @llvm.ppc.altivec.vperm 7416 // CHECK-LE: @llvm.ppc.altivec.lvsr 7417 // CHECK-LE: @llvm.ppc.altivec.vperm 7418 // CHECK-LE: @llvm.ppc.altivec.stvx 7419 7420 vec_stvrx(vuc, 0, &vuc); 7421 // CHECK: @llvm.ppc.altivec.lvx 7422 // CHECK: @llvm.ppc.altivec.lvsl 7423 // CHECK: store <16 x i8> zeroinitializer 7424 // CHECK: @llvm.ppc.altivec.vperm 7425 // CHECK: @llvm.ppc.altivec.lvsr 7426 // CHECK: @llvm.ppc.altivec.vperm 7427 // CHECK: @llvm.ppc.altivec.stvx 7428 // CHECK-LE: @llvm.ppc.altivec.lvx 7429 // CHECK-LE: @llvm.ppc.altivec.lvsl 7430 // CHECK-LE: store <16 x i8> zeroinitializer 7431 // CHECK-LE: @llvm.ppc.altivec.vperm 7432 // CHECK-LE: @llvm.ppc.altivec.lvsr 7433 // CHECK-LE: @llvm.ppc.altivec.vperm 7434 // CHECK-LE: @llvm.ppc.altivec.stvx 7435 7436 vec_stvrx(vbc, 0, &vbc); 7437 // CHECK: @llvm.ppc.altivec.lvx 7438 // CHECK: store <16 x i8> zeroinitializer 7439 // CHECK: @llvm.ppc.altivec.lvsl 7440 // CHECK: @llvm.ppc.altivec.vperm 7441 // CHECK: @llvm.ppc.altivec.lvsr 7442 // CHECK: @llvm.ppc.altivec.vperm 7443 // CHECK: @llvm.ppc.altivec.stvx 7444 // CHECK-LE: @llvm.ppc.altivec.lvx 7445 // CHECK-LE: store <16 x i8> zeroinitializer 7446 // CHECK-LE: @llvm.ppc.altivec.lvsl 7447 // CHECK-LE: @llvm.ppc.altivec.vperm 7448 // CHECK-LE: @llvm.ppc.altivec.lvsr 7449 // CHECK-LE: @llvm.ppc.altivec.vperm 7450 // CHECK-LE: @llvm.ppc.altivec.stvx 7451 7452 vec_stvrx(vs, 0, ¶m_s); 7453 // CHECK: @llvm.ppc.altivec.lvx 7454 // CHECK: @llvm.ppc.altivec.lvsl 7455 // CHECK: store <8 x i16> zeroinitializer 7456 // CHECK: @llvm.ppc.altivec.vperm 7457 // CHECK: @llvm.ppc.altivec.lvsr 7458 // CHECK: @llvm.ppc.altivec.vperm 7459 // CHECK: @llvm.ppc.altivec.stvx 7460 // CHECK-LE: @llvm.ppc.altivec.lvx 7461 // CHECK-LE: @llvm.ppc.altivec.lvsl 7462 // CHECK-LE: store <8 x i16> zeroinitializer 7463 // CHECK-LE: @llvm.ppc.altivec.vperm 7464 // CHECK-LE: @llvm.ppc.altivec.lvsr 7465 // CHECK-LE: @llvm.ppc.altivec.vperm 7466 // CHECK-LE: @llvm.ppc.altivec.stvx 7467 7468 vec_stvrx(vs, 0, &vs); 7469 // CHECK: @llvm.ppc.altivec.lvx 7470 // CHECK: @llvm.ppc.altivec.lvsl 7471 // CHECK: store <8 x i16> zeroinitializer 7472 // CHECK: @llvm.ppc.altivec.vperm 7473 // CHECK: @llvm.ppc.altivec.lvsr 7474 // CHECK: @llvm.ppc.altivec.vperm 7475 // CHECK: @llvm.ppc.altivec.stvx 7476 // CHECK-LE: @llvm.ppc.altivec.lvx 7477 // CHECK-LE: @llvm.ppc.altivec.lvsl 7478 // CHECK-LE: store <8 x i16> zeroinitializer 7479 // CHECK-LE: @llvm.ppc.altivec.vperm 7480 // CHECK-LE: @llvm.ppc.altivec.lvsr 7481 // CHECK-LE: @llvm.ppc.altivec.vperm 7482 // CHECK-LE: @llvm.ppc.altivec.stvx 7483 7484 vec_stvrx(vus, 0, ¶m_us); 7485 // CHECK: @llvm.ppc.altivec.lvx 7486 // CHECK: @llvm.ppc.altivec.lvsl 7487 // CHECK: store <8 x i16> zeroinitializer 7488 // CHECK: @llvm.ppc.altivec.vperm 7489 // CHECK: @llvm.ppc.altivec.lvsr 7490 // CHECK: @llvm.ppc.altivec.vperm 7491 // CHECK: @llvm.ppc.altivec.stvx 7492 // CHECK-LE: @llvm.ppc.altivec.lvx 7493 // CHECK-LE: @llvm.ppc.altivec.lvsl 7494 // CHECK-LE: store <8 x i16> zeroinitializer 7495 // CHECK-LE: @llvm.ppc.altivec.vperm 7496 // CHECK-LE: @llvm.ppc.altivec.lvsr 7497 // CHECK-LE: @llvm.ppc.altivec.vperm 7498 // CHECK-LE: @llvm.ppc.altivec.stvx 7499 7500 vec_stvrx(vus, 0, &vus); 7501 // CHECK: @llvm.ppc.altivec.lvx 7502 // CHECK: @llvm.ppc.altivec.lvsl 7503 // CHECK: store <8 x i16> zeroinitializer 7504 // CHECK: @llvm.ppc.altivec.vperm 7505 // CHECK: @llvm.ppc.altivec.lvsr 7506 // CHECK: @llvm.ppc.altivec.vperm 7507 // CHECK: @llvm.ppc.altivec.stvx 7508 // CHECK-LE: @llvm.ppc.altivec.lvx 7509 // CHECK-LE: @llvm.ppc.altivec.lvsl 7510 // CHECK-LE: store <8 x i16> zeroinitializer 7511 // CHECK-LE: @llvm.ppc.altivec.vperm 7512 // CHECK-LE: @llvm.ppc.altivec.lvsr 7513 // CHECK-LE: @llvm.ppc.altivec.vperm 7514 // CHECK-LE: @llvm.ppc.altivec.stvx 7515 7516 vec_stvrx(vbs, 0, &vbs); 7517 // CHECK: @llvm.ppc.altivec.lvx 7518 // CHECK: store <8 x i16> zeroinitializer 7519 // CHECK: @llvm.ppc.altivec.lvsl 7520 // CHECK: @llvm.ppc.altivec.vperm 7521 // CHECK: @llvm.ppc.altivec.lvsr 7522 // CHECK: @llvm.ppc.altivec.vperm 7523 // CHECK: @llvm.ppc.altivec.stvx 7524 // CHECK-LE: @llvm.ppc.altivec.lvx 7525 // CHECK-LE: store <8 x i16> zeroinitializer 7526 // CHECK-LE: @llvm.ppc.altivec.lvsl 7527 // CHECK-LE: @llvm.ppc.altivec.vperm 7528 // CHECK-LE: @llvm.ppc.altivec.lvsr 7529 // CHECK-LE: @llvm.ppc.altivec.vperm 7530 // CHECK-LE: @llvm.ppc.altivec.stvx 7531 7532 vec_stvrx(vp, 0, &vp); 7533 // CHECK: @llvm.ppc.altivec.lvx 7534 // CHECK: store <8 x i16> zeroinitializer 7535 // CHECK: @llvm.ppc.altivec.lvsl 7536 // CHECK: @llvm.ppc.altivec.vperm 7537 // CHECK: @llvm.ppc.altivec.lvsr 7538 // CHECK: @llvm.ppc.altivec.vperm 7539 // CHECK: @llvm.ppc.altivec.stvx 7540 // CHECK-LE: @llvm.ppc.altivec.lvx 7541 // CHECK-LE: store <8 x i16> zeroinitializer 7542 // CHECK-LE: @llvm.ppc.altivec.lvsl 7543 // CHECK-LE: @llvm.ppc.altivec.vperm 7544 // CHECK-LE: @llvm.ppc.altivec.lvsr 7545 // CHECK-LE: @llvm.ppc.altivec.vperm 7546 // CHECK-LE: @llvm.ppc.altivec.stvx 7547 7548 vec_stvrx(vi, 0, ¶m_i); 7549 // CHECK: @llvm.ppc.altivec.lvx 7550 // CHECK: @llvm.ppc.altivec.lvsl 7551 // CHECK: store <4 x i32> zeroinitializer 7552 // CHECK: @llvm.ppc.altivec.vperm 7553 // CHECK: @llvm.ppc.altivec.lvsr 7554 // CHECK: @llvm.ppc.altivec.vperm 7555 // CHECK: @llvm.ppc.altivec.stvx 7556 // CHECK-LE: @llvm.ppc.altivec.lvx 7557 // CHECK-LE: @llvm.ppc.altivec.lvsl 7558 // CHECK-LE: store <4 x i32> zeroinitializer 7559 // CHECK-LE: @llvm.ppc.altivec.vperm 7560 // CHECK-LE: @llvm.ppc.altivec.lvsr 7561 // CHECK-LE: @llvm.ppc.altivec.vperm 7562 // CHECK-LE: @llvm.ppc.altivec.stvx 7563 7564 vec_stvrx(vi, 0, &vi); 7565 // CHECK: @llvm.ppc.altivec.lvx 7566 // CHECK: @llvm.ppc.altivec.lvsl 7567 // CHECK: store <4 x i32> zeroinitializer 7568 // CHECK: @llvm.ppc.altivec.vperm 7569 // CHECK: @llvm.ppc.altivec.lvsr 7570 // CHECK: @llvm.ppc.altivec.vperm 7571 // CHECK: @llvm.ppc.altivec.stvx 7572 // CHECK-LE: @llvm.ppc.altivec.lvx 7573 // CHECK-LE: @llvm.ppc.altivec.lvsl 7574 // CHECK-LE: store <4 x i32> zeroinitializer 7575 // CHECK-LE: @llvm.ppc.altivec.vperm 7576 // CHECK-LE: @llvm.ppc.altivec.lvsr 7577 // CHECK-LE: @llvm.ppc.altivec.vperm 7578 // CHECK-LE: @llvm.ppc.altivec.stvx 7579 7580 vec_stvrx(vui, 0, ¶m_ui); 7581 // CHECK: @llvm.ppc.altivec.lvx 7582 // CHECK: @llvm.ppc.altivec.lvsl 7583 // CHECK: store <4 x i32> zeroinitializer 7584 // CHECK: @llvm.ppc.altivec.vperm 7585 // CHECK: @llvm.ppc.altivec.lvsr 7586 // CHECK: @llvm.ppc.altivec.vperm 7587 // CHECK: @llvm.ppc.altivec.stvx 7588 // CHECK-LE: @llvm.ppc.altivec.lvx 7589 // CHECK-LE: @llvm.ppc.altivec.lvsl 7590 // CHECK-LE: store <4 x i32> zeroinitializer 7591 // CHECK-LE: @llvm.ppc.altivec.vperm 7592 // CHECK-LE: @llvm.ppc.altivec.lvsr 7593 // CHECK-LE: @llvm.ppc.altivec.vperm 7594 // CHECK-LE: @llvm.ppc.altivec.stvx 7595 7596 vec_stvrx(vui, 0, &vui); 7597 // CHECK: @llvm.ppc.altivec.lvx 7598 // CHECK: @llvm.ppc.altivec.lvsl 7599 // CHECK: store <4 x i32> zeroinitializer 7600 // CHECK: @llvm.ppc.altivec.vperm 7601 // CHECK: @llvm.ppc.altivec.lvsr 7602 // CHECK: @llvm.ppc.altivec.vperm 7603 // CHECK: @llvm.ppc.altivec.stvx 7604 // CHECK-LE: @llvm.ppc.altivec.lvx 7605 // CHECK-LE: @llvm.ppc.altivec.lvsl 7606 // CHECK-LE: store <4 x i32> zeroinitializer 7607 // CHECK-LE: @llvm.ppc.altivec.vperm 7608 // CHECK-LE: @llvm.ppc.altivec.lvsr 7609 // CHECK-LE: @llvm.ppc.altivec.vperm 7610 // CHECK-LE: @llvm.ppc.altivec.stvx 7611 7612 vec_stvrx(vbi, 0, &vbi); 7613 // CHECK: @llvm.ppc.altivec.lvx 7614 // CHECK: store <4 x i32> zeroinitializer 7615 // CHECK: @llvm.ppc.altivec.lvsl 7616 // CHECK: @llvm.ppc.altivec.vperm 7617 // CHECK: @llvm.ppc.altivec.lvsr 7618 // CHECK: @llvm.ppc.altivec.vperm 7619 // CHECK: @llvm.ppc.altivec.stvx 7620 // CHECK-LE: @llvm.ppc.altivec.lvx 7621 // CHECK-LE: store <4 x i32> zeroinitializer 7622 // CHECK-LE: @llvm.ppc.altivec.lvsl 7623 // CHECK-LE: @llvm.ppc.altivec.vperm 7624 // CHECK-LE: @llvm.ppc.altivec.lvsr 7625 // CHECK-LE: @llvm.ppc.altivec.vperm 7626 // CHECK-LE: @llvm.ppc.altivec.stvx 7627 7628 vec_stvrx(vf, 0, &vf); 7629 // CHECK: @llvm.ppc.altivec.lvx 7630 // CHECK: @llvm.ppc.altivec.lvsl 7631 // CHECK: store <4 x float> zeroinitializer 7632 // CHECK: @llvm.ppc.altivec.vperm 7633 // CHECK: @llvm.ppc.altivec.lvsr 7634 // CHECK: @llvm.ppc.altivec.vperm 7635 // CHECK: @llvm.ppc.altivec.stvx 7636 // CHECK-LE: @llvm.ppc.altivec.lvx 7637 // CHECK-LE: @llvm.ppc.altivec.lvsl 7638 // CHECK-LE: store <4 x float> zeroinitializer 7639 // CHECK-LE: @llvm.ppc.altivec.vperm 7640 // CHECK-LE: @llvm.ppc.altivec.lvsr 7641 // CHECK-LE: @llvm.ppc.altivec.vperm 7642 // CHECK-LE: @llvm.ppc.altivec.stvx 7643 7644 /* vec_stvrxl */ 7645 vec_stvrxl(vsc, 0, ¶m_sc); 7646 // CHECK: @llvm.ppc.altivec.lvx 7647 // CHECK: @llvm.ppc.altivec.lvsl 7648 // CHECK: store <16 x i8> zeroinitializer 7649 // CHECK: @llvm.ppc.altivec.vperm 7650 // CHECK: @llvm.ppc.altivec.lvsr 7651 // CHECK: @llvm.ppc.altivec.vperm 7652 // CHECK: @llvm.ppc.altivec.stvxl 7653 // CHECK-LE: @llvm.ppc.altivec.lvx 7654 // CHECK-LE: @llvm.ppc.altivec.lvsl 7655 // CHECK-LE: store <16 x i8> zeroinitializer 7656 // CHECK-LE: @llvm.ppc.altivec.vperm 7657 // CHECK-LE: @llvm.ppc.altivec.lvsr 7658 // CHECK-LE: @llvm.ppc.altivec.vperm 7659 // CHECK-LE: @llvm.ppc.altivec.stvxl 7660 7661 vec_stvrxl(vsc, 0, &vsc); 7662 // CHECK: @llvm.ppc.altivec.lvx 7663 // CHECK: @llvm.ppc.altivec.lvsl 7664 // CHECK: store <16 x i8> zeroinitializer 7665 // CHECK: @llvm.ppc.altivec.vperm 7666 // CHECK: @llvm.ppc.altivec.lvsr 7667 // CHECK: @llvm.ppc.altivec.vperm 7668 // CHECK: @llvm.ppc.altivec.stvxl 7669 // CHECK-LE: @llvm.ppc.altivec.lvx 7670 // CHECK-LE: @llvm.ppc.altivec.lvsl 7671 // CHECK-LE: store <16 x i8> zeroinitializer 7672 // CHECK-LE: @llvm.ppc.altivec.vperm 7673 // CHECK-LE: @llvm.ppc.altivec.lvsr 7674 // CHECK-LE: @llvm.ppc.altivec.vperm 7675 // CHECK-LE: @llvm.ppc.altivec.stvxl 7676 7677 vec_stvrxl(vuc, 0, ¶m_uc); 7678 // CHECK: @llvm.ppc.altivec.lvx 7679 // CHECK: @llvm.ppc.altivec.lvsl 7680 // CHECK: store <16 x i8> zeroinitializer 7681 // CHECK: @llvm.ppc.altivec.vperm 7682 // CHECK: @llvm.ppc.altivec.lvsr 7683 // CHECK: @llvm.ppc.altivec.vperm 7684 // CHECK: @llvm.ppc.altivec.stvxl 7685 // CHECK-LE: @llvm.ppc.altivec.lvx 7686 // CHECK-LE: @llvm.ppc.altivec.lvsl 7687 // CHECK-LE: store <16 x i8> zeroinitializer 7688 // CHECK-LE: @llvm.ppc.altivec.vperm 7689 // CHECK-LE: @llvm.ppc.altivec.lvsr 7690 // CHECK-LE: @llvm.ppc.altivec.vperm 7691 // CHECK-LE: @llvm.ppc.altivec.stvxl 7692 7693 vec_stvrxl(vuc, 0, &vuc); 7694 // CHECK: @llvm.ppc.altivec.lvx 7695 // CHECK: @llvm.ppc.altivec.lvsl 7696 // CHECK: store <16 x i8> zeroinitializer 7697 // CHECK: @llvm.ppc.altivec.vperm 7698 // CHECK: @llvm.ppc.altivec.lvsr 7699 // CHECK: @llvm.ppc.altivec.vperm 7700 // CHECK: @llvm.ppc.altivec.stvxl 7701 // CHECK-LE: @llvm.ppc.altivec.lvx 7702 // CHECK-LE: @llvm.ppc.altivec.lvsl 7703 // CHECK-LE: store <16 x i8> zeroinitializer 7704 // CHECK-LE: @llvm.ppc.altivec.vperm 7705 // CHECK-LE: @llvm.ppc.altivec.lvsr 7706 // CHECK-LE: @llvm.ppc.altivec.vperm 7707 // CHECK-LE: @llvm.ppc.altivec.stvxl 7708 7709 vec_stvrxl(vbc, 0, &vbc); 7710 // CHECK: @llvm.ppc.altivec.lvx 7711 // CHECK: store <16 x i8> zeroinitializer 7712 // CHECK: @llvm.ppc.altivec.lvsl 7713 // CHECK: @llvm.ppc.altivec.vperm 7714 // CHECK: @llvm.ppc.altivec.lvsr 7715 // CHECK: @llvm.ppc.altivec.vperm 7716 // CHECK: @llvm.ppc.altivec.stvxl 7717 // CHECK-LE: @llvm.ppc.altivec.lvx 7718 // CHECK-LE: store <16 x i8> zeroinitializer 7719 // CHECK-LE: @llvm.ppc.altivec.lvsl 7720 // CHECK-LE: @llvm.ppc.altivec.vperm 7721 // CHECK-LE: @llvm.ppc.altivec.lvsr 7722 // CHECK-LE: @llvm.ppc.altivec.vperm 7723 // CHECK-LE: @llvm.ppc.altivec.stvxl 7724 7725 vec_stvrxl(vs, 0, ¶m_s); 7726 // CHECK: @llvm.ppc.altivec.lvx 7727 // CHECK: @llvm.ppc.altivec.lvsl 7728 // CHECK: store <8 x i16> zeroinitializer 7729 // CHECK: @llvm.ppc.altivec.vperm 7730 // CHECK: @llvm.ppc.altivec.lvsr 7731 // CHECK: @llvm.ppc.altivec.vperm 7732 // CHECK: @llvm.ppc.altivec.stvxl 7733 // CHECK-LE: @llvm.ppc.altivec.lvx 7734 // CHECK-LE: @llvm.ppc.altivec.lvsl 7735 // CHECK-LE: store <8 x i16> zeroinitializer 7736 // CHECK-LE: @llvm.ppc.altivec.vperm 7737 // CHECK-LE: @llvm.ppc.altivec.lvsr 7738 // CHECK-LE: @llvm.ppc.altivec.vperm 7739 // CHECK-LE: @llvm.ppc.altivec.stvxl 7740 7741 vec_stvrxl(vs, 0, &vs); 7742 // CHECK: @llvm.ppc.altivec.lvx 7743 // CHECK: @llvm.ppc.altivec.lvsl 7744 // CHECK: store <8 x i16> zeroinitializer 7745 // CHECK: @llvm.ppc.altivec.vperm 7746 // CHECK: @llvm.ppc.altivec.lvsr 7747 // CHECK: @llvm.ppc.altivec.vperm 7748 // CHECK: @llvm.ppc.altivec.stvxl 7749 // CHECK-LE: @llvm.ppc.altivec.lvx 7750 // CHECK-LE: @llvm.ppc.altivec.lvsl 7751 // CHECK-LE: store <8 x i16> zeroinitializer 7752 // CHECK-LE: @llvm.ppc.altivec.vperm 7753 // CHECK-LE: @llvm.ppc.altivec.lvsr 7754 // CHECK-LE: @llvm.ppc.altivec.vperm 7755 // CHECK-LE: @llvm.ppc.altivec.stvxl 7756 7757 vec_stvrxl(vus, 0, ¶m_us); 7758 // CHECK: @llvm.ppc.altivec.lvx 7759 // CHECK: @llvm.ppc.altivec.lvsl 7760 // CHECK: store <8 x i16> zeroinitializer 7761 // CHECK: @llvm.ppc.altivec.vperm 7762 // CHECK: @llvm.ppc.altivec.lvsr 7763 // CHECK: @llvm.ppc.altivec.vperm 7764 // CHECK: @llvm.ppc.altivec.stvxl 7765 // CHECK-LE: @llvm.ppc.altivec.lvx 7766 // CHECK-LE: @llvm.ppc.altivec.lvsl 7767 // CHECK-LE: store <8 x i16> zeroinitializer 7768 // CHECK-LE: @llvm.ppc.altivec.vperm 7769 // CHECK-LE: @llvm.ppc.altivec.lvsr 7770 // CHECK-LE: @llvm.ppc.altivec.vperm 7771 // CHECK-LE: @llvm.ppc.altivec.stvxl 7772 7773 vec_stvrxl(vus, 0, &vus); 7774 // CHECK: @llvm.ppc.altivec.lvx 7775 // CHECK: @llvm.ppc.altivec.lvsl 7776 // CHECK: store <8 x i16> zeroinitializer 7777 // CHECK: @llvm.ppc.altivec.vperm 7778 // CHECK: @llvm.ppc.altivec.lvsr 7779 // CHECK: @llvm.ppc.altivec.vperm 7780 // CHECK: @llvm.ppc.altivec.stvxl 7781 // CHECK-LE: @llvm.ppc.altivec.lvx 7782 // CHECK-LE: @llvm.ppc.altivec.lvsl 7783 // CHECK-LE: store <8 x i16> zeroinitializer 7784 // CHECK-LE: @llvm.ppc.altivec.vperm 7785 // CHECK-LE: @llvm.ppc.altivec.lvsr 7786 // CHECK-LE: @llvm.ppc.altivec.vperm 7787 // CHECK-LE: @llvm.ppc.altivec.stvxl 7788 7789 vec_stvrxl(vbs, 0, &vbs); 7790 // CHECK: @llvm.ppc.altivec.lvx 7791 // CHECK: store <8 x i16> zeroinitializer 7792 // CHECK: @llvm.ppc.altivec.lvsl 7793 // CHECK: @llvm.ppc.altivec.vperm 7794 // CHECK: @llvm.ppc.altivec.lvsr 7795 // CHECK: @llvm.ppc.altivec.vperm 7796 // CHECK: @llvm.ppc.altivec.stvxl 7797 // CHECK-LE: @llvm.ppc.altivec.lvx 7798 // CHECK-LE: store <8 x i16> zeroinitializer 7799 // CHECK-LE: @llvm.ppc.altivec.lvsl 7800 // CHECK-LE: @llvm.ppc.altivec.vperm 7801 // CHECK-LE: @llvm.ppc.altivec.lvsr 7802 // CHECK-LE: @llvm.ppc.altivec.vperm 7803 // CHECK-LE: @llvm.ppc.altivec.stvxl 7804 7805 vec_stvrxl(vp, 0, &vp); 7806 // CHECK: @llvm.ppc.altivec.lvx 7807 // CHECK: store <8 x i16> zeroinitializer 7808 // CHECK: @llvm.ppc.altivec.lvsl 7809 // CHECK: @llvm.ppc.altivec.vperm 7810 // CHECK: @llvm.ppc.altivec.lvsr 7811 // CHECK: @llvm.ppc.altivec.vperm 7812 // CHECK: @llvm.ppc.altivec.stvxl 7813 // CHECK-LE: @llvm.ppc.altivec.lvx 7814 // CHECK-LE: store <8 x i16> zeroinitializer 7815 // CHECK-LE: @llvm.ppc.altivec.lvsl 7816 // CHECK-LE: @llvm.ppc.altivec.vperm 7817 // CHECK-LE: @llvm.ppc.altivec.lvsr 7818 // CHECK-LE: @llvm.ppc.altivec.vperm 7819 // CHECK-LE: @llvm.ppc.altivec.stvxl 7820 7821 vec_stvrxl(vi, 0, ¶m_i); 7822 // CHECK: @llvm.ppc.altivec.lvx 7823 // CHECK: @llvm.ppc.altivec.lvsl 7824 // CHECK: store <4 x i32> zeroinitializer 7825 // CHECK: @llvm.ppc.altivec.vperm 7826 // CHECK: @llvm.ppc.altivec.lvsr 7827 // CHECK: @llvm.ppc.altivec.vperm 7828 // CHECK: @llvm.ppc.altivec.stvxl 7829 // CHECK-LE: @llvm.ppc.altivec.lvx 7830 // CHECK-LE: @llvm.ppc.altivec.lvsl 7831 // CHECK-LE: store <4 x i32> zeroinitializer 7832 // CHECK-LE: @llvm.ppc.altivec.vperm 7833 // CHECK-LE: @llvm.ppc.altivec.lvsr 7834 // CHECK-LE: @llvm.ppc.altivec.vperm 7835 // CHECK-LE: @llvm.ppc.altivec.stvxl 7836 7837 vec_stvrxl(vi, 0, &vi); 7838 // CHECK: @llvm.ppc.altivec.lvx 7839 // CHECK: @llvm.ppc.altivec.lvsl 7840 // CHECK: store <4 x i32> zeroinitializer 7841 // CHECK: @llvm.ppc.altivec.vperm 7842 // CHECK: @llvm.ppc.altivec.lvsr 7843 // CHECK: @llvm.ppc.altivec.vperm 7844 // CHECK: @llvm.ppc.altivec.stvxl 7845 // CHECK-LE: @llvm.ppc.altivec.lvx 7846 // CHECK-LE: @llvm.ppc.altivec.lvsl 7847 // CHECK-LE: store <4 x i32> zeroinitializer 7848 // CHECK-LE: @llvm.ppc.altivec.vperm 7849 // CHECK-LE: @llvm.ppc.altivec.lvsr 7850 // CHECK-LE: @llvm.ppc.altivec.vperm 7851 // CHECK-LE: @llvm.ppc.altivec.stvxl 7852 7853 vec_stvrxl(vui, 0, ¶m_ui); 7854 // CHECK: @llvm.ppc.altivec.lvx 7855 // CHECK: @llvm.ppc.altivec.lvsl 7856 // CHECK: store <4 x i32> zeroinitializer 7857 // CHECK: @llvm.ppc.altivec.vperm 7858 // CHECK: @llvm.ppc.altivec.lvsr 7859 // CHECK: @llvm.ppc.altivec.vperm 7860 // CHECK: @llvm.ppc.altivec.stvxl 7861 // CHECK-LE: @llvm.ppc.altivec.lvx 7862 // CHECK-LE: @llvm.ppc.altivec.lvsl 7863 // CHECK-LE: store <4 x i32> zeroinitializer 7864 // CHECK-LE: @llvm.ppc.altivec.vperm 7865 // CHECK-LE: @llvm.ppc.altivec.lvsr 7866 // CHECK-LE: @llvm.ppc.altivec.vperm 7867 // CHECK-LE: @llvm.ppc.altivec.stvxl 7868 7869 vec_stvrxl(vui, 0, &vui); 7870 // CHECK: @llvm.ppc.altivec.lvx 7871 // CHECK: @llvm.ppc.altivec.lvsl 7872 // CHECK: store <4 x i32> zeroinitializer 7873 // CHECK: @llvm.ppc.altivec.vperm 7874 // CHECK: @llvm.ppc.altivec.lvsr 7875 // CHECK: @llvm.ppc.altivec.vperm 7876 // CHECK: @llvm.ppc.altivec.stvxl 7877 // CHECK-LE: @llvm.ppc.altivec.lvx 7878 // CHECK-LE: @llvm.ppc.altivec.lvsl 7879 // CHECK-LE: store <4 x i32> zeroinitializer 7880 // CHECK-LE: @llvm.ppc.altivec.vperm 7881 // CHECK-LE: @llvm.ppc.altivec.lvsr 7882 // CHECK-LE: @llvm.ppc.altivec.vperm 7883 // CHECK-LE: @llvm.ppc.altivec.stvxl 7884 7885 vec_stvrxl(vbi, 0, &vbi); 7886 // CHECK: @llvm.ppc.altivec.lvx 7887 // CHECK: store <4 x i32> zeroinitializer 7888 // CHECK: @llvm.ppc.altivec.lvsl 7889 // CHECK: @llvm.ppc.altivec.vperm 7890 // CHECK: @llvm.ppc.altivec.lvsr 7891 // CHECK: @llvm.ppc.altivec.vperm 7892 // CHECK: @llvm.ppc.altivec.stvxl 7893 // CHECK-LE: @llvm.ppc.altivec.lvx 7894 // CHECK-LE: store <4 x i32> zeroinitializer 7895 // CHECK-LE: @llvm.ppc.altivec.lvsl 7896 // CHECK-LE: @llvm.ppc.altivec.vperm 7897 // CHECK-LE: @llvm.ppc.altivec.lvsr 7898 // CHECK-LE: @llvm.ppc.altivec.vperm 7899 // CHECK-LE: @llvm.ppc.altivec.stvxl 7900 7901 vec_stvrxl(vf, 0, &vf); 7902 // CHECK: @llvm.ppc.altivec.lvx 7903 // CHECK: @llvm.ppc.altivec.lvsl 7904 // CHECK: store <4 x float> zeroinitializer 7905 // CHECK: @llvm.ppc.altivec.vperm 7906 // CHECK: @llvm.ppc.altivec.lvsr 7907 // CHECK: @llvm.ppc.altivec.vperm 7908 // CHECK: @llvm.ppc.altivec.stvxl 7909 // CHECK-LE: @llvm.ppc.altivec.lvx 7910 // CHECK-LE: @llvm.ppc.altivec.lvsl 7911 // CHECK-LE: store <4 x float> zeroinitializer 7912 // CHECK-LE: @llvm.ppc.altivec.vperm 7913 // CHECK-LE: @llvm.ppc.altivec.lvsr 7914 // CHECK-LE: @llvm.ppc.altivec.vperm 7915 // CHECK-LE: @llvm.ppc.altivec.stvxl 7916 7917 /* vec_promote */ 7918 res_vsc = vec_promote(param_sc, 0); 7919 // CHECK: store <16 x i8> zeroinitializer 7920 // CHECK: insertelement <16 x i8> 7921 // CHECK-LE: store <16 x i8> zeroinitializer 7922 // CHECK-LE: insertelement <16 x i8> 7923 7924 res_vuc = vec_promote(param_uc, 0); 7925 // CHECK: store <16 x i8> zeroinitializer 7926 // CHECK: insertelement <16 x i8> 7927 // CHECK-LE: store <16 x i8> zeroinitializer 7928 // CHECK-LE: insertelement <16 x i8> 7929 7930 res_vs = vec_promote(param_s, 0); 7931 // CHECK: store <8 x i16> zeroinitializer 7932 // CHECK: insertelement <8 x i16> 7933 // CHECK-LE: store <8 x i16> zeroinitializer 7934 // CHECK-LE: insertelement <8 x i16> 7935 7936 res_vus = vec_promote(param_us, 0); 7937 // CHECK: store <8 x i16> zeroinitializer 7938 // CHECK: insertelement <8 x i16> 7939 // CHECK-LE: store <8 x i16> zeroinitializer 7940 // CHECK-LE: insertelement <8 x i16> 7941 7942 res_vi = vec_promote(param_i, 0); 7943 // CHECK: store <4 x i32> zeroinitializer 7944 // CHECK: insertelement <4 x i32> 7945 // CHECK-LE: store <4 x i32> zeroinitializer 7946 // CHECK-LE: insertelement <4 x i32> 7947 7948 res_vui = vec_promote(param_ui, 0); 7949 // CHECK: store <4 x i32> zeroinitializer 7950 // CHECK: insertelement <4 x i32> 7951 // CHECK-LE: store <4 x i32> zeroinitializer 7952 // CHECK-LE: insertelement <4 x i32> 7953 7954 res_vf = vec_promote(param_f, 0); 7955 // CHECK: store <4 x float> zeroinitializer 7956 // CHECK: insertelement <4 x float> 7957 // CHECK-LE: store <4 x float> zeroinitializer 7958 // CHECK-LE: insertelement <4 x float> 7959 7960 /* vec_splats */ 7961 res_vsc = vec_splats(param_sc); 7962 // CHECK: insertelement <16 x i8> 7963 // CHECK-LE: insertelement <16 x i8> 7964 7965 res_vuc = vec_splats(param_uc); 7966 // CHECK: insertelement <16 x i8> 7967 // CHECK-LE: insertelement <16 x i8> 7968 7969 res_vs = vec_splats(param_s); 7970 // CHECK: insertelement <8 x i16> 7971 // CHECK-LE: insertelement <8 x i16> 7972 7973 res_vus = vec_splats(param_us); 7974 // CHECK: insertelement <8 x i16> 7975 // CHECK-LE: insertelement <8 x i16> 7976 7977 res_vi = vec_splats(param_i); 7978 // CHECK: insertelement <4 x i32> 7979 // CHECK-LE: insertelement <4 x i32> 7980 7981 res_vui = vec_splats(param_ui); 7982 // CHECK: insertelement <4 x i32> 7983 // CHECK-LE: insertelement <4 x i32> 7984 7985 res_vf = vec_splats(param_f); 7986 // CHECK: insertelement <4 x float> 7987 // CHECK-LE: insertelement <4 x float> 7988 7989 /* ------------------------------ predicates -------------------------------------- */ 7990 7991 /* vec_all_eq */ 7992 res_i = vec_all_eq(vsc, vsc); 7993 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7994 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7995 7996 res_i = vec_all_eq(vsc, vbc); 7997 // CHECK: @llvm.ppc.altivec.vcmpequb.p 7998 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 7999 8000 res_i = vec_all_eq(vuc, vuc); 8001 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8002 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8003 8004 res_i = vec_all_eq(vuc, vbc); 8005 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8006 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8007 8008 res_i = vec_all_eq(vbc, vsc); 8009 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8010 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8011 8012 res_i = vec_all_eq(vbc, vuc); 8013 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8014 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8015 8016 res_i = vec_all_eq(vbc, vbc); 8017 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8018 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8019 8020 res_i = vec_all_eq(vs, vs); 8021 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8022 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8023 8024 res_i = vec_all_eq(vs, vbs); 8025 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8026 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8027 8028 res_i = vec_all_eq(vus, vus); 8029 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8030 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8031 8032 res_i = vec_all_eq(vus, vbs); 8033 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8034 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8035 8036 res_i = vec_all_eq(vbs, vs); 8037 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8038 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8039 8040 res_i = vec_all_eq(vbs, vus); 8041 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8042 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8043 8044 res_i = vec_all_eq(vbs, vbs); 8045 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8046 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8047 8048 res_i = vec_all_eq(vp, vp); 8049 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8050 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8051 8052 res_i = vec_all_eq(vi, vi); 8053 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8054 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8055 8056 res_i = vec_all_eq(vi, vbi); 8057 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8058 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8059 8060 res_i = vec_all_eq(vui, vui); 8061 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8062 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8063 8064 res_i = vec_all_eq(vui, vbi); 8065 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8066 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8067 8068 res_i = vec_all_eq(vbi, vi); 8069 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8070 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8071 8072 res_i = vec_all_eq(vbi, vui); 8073 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8074 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8075 8076 res_i = vec_all_eq(vbi, vbi); 8077 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8078 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8079 8080 res_i = vec_all_eq(vf, vf); 8081 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8082 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8083 8084 /* vec_all_ge */ 8085 res_i = vec_all_ge(vsc, vsc); 8086 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8087 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8088 8089 res_i = vec_all_ge(vsc, vbc); 8090 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8091 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8092 8093 res_i = vec_all_ge(vuc, vuc); 8094 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8095 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8096 8097 res_i = vec_all_ge(vuc, vbc); 8098 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8099 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8100 8101 res_i = vec_all_ge(vbc, vsc); 8102 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8103 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8104 8105 res_i = vec_all_ge(vbc, vuc); 8106 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8107 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8108 8109 res_i = vec_all_ge(vbc, vbc); 8110 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8111 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8112 8113 res_i = vec_all_ge(vs, vs); 8114 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8115 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8116 8117 res_i = vec_all_ge(vs, vbs); 8118 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8119 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8120 8121 res_i = vec_all_ge(vus, vus); 8122 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8123 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8124 8125 res_i = vec_all_ge(vus, vbs); 8126 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8127 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8128 8129 res_i = vec_all_ge(vbs, vs); 8130 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8131 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8132 8133 res_i = vec_all_ge(vbs, vus); 8134 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8135 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8136 8137 res_i = vec_all_ge(vbs, vbs); 8138 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8139 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8140 8141 res_i = vec_all_ge(vi, vi); 8142 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8143 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8144 8145 res_i = vec_all_ge(vi, vbi); 8146 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8147 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8148 8149 res_i = vec_all_ge(vui, vui); 8150 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8151 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8152 8153 res_i = vec_all_ge(vui, vbi); 8154 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8155 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8156 8157 res_i = vec_all_ge(vbi, vi); 8158 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8159 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8160 8161 res_i = vec_all_ge(vbi, vui); 8162 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8163 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8164 8165 res_i = vec_all_ge(vbi, vbi); 8166 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8167 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8168 8169 res_i = vec_all_ge(vf, vf); 8170 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8171 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8172 8173 /* vec_all_gt */ 8174 res_i = vec_all_gt(vsc, vsc); 8175 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8176 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8177 8178 res_i = vec_all_gt(vsc, vbc); 8179 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8180 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8181 8182 res_i = vec_all_gt(vuc, vuc); 8183 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8184 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8185 8186 res_i = vec_all_gt(vuc, vbc); 8187 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8188 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8189 8190 res_i = vec_all_gt(vbc, vsc); 8191 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8192 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8193 8194 res_i = vec_all_gt(vbc, vuc); 8195 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8196 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8197 8198 res_i = vec_all_gt(vbc, vbc); 8199 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8200 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8201 8202 res_i = vec_all_gt(vs, vs); 8203 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8204 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8205 8206 res_i = vec_all_gt(vs, vbs); 8207 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8208 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8209 8210 res_i = vec_all_gt(vus, vus); 8211 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8212 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8213 8214 res_i = vec_all_gt(vus, vbs); 8215 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8216 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8217 8218 res_i = vec_all_gt(vbs, vs); 8219 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8220 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8221 8222 res_i = vec_all_gt(vbs, vus); 8223 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8224 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8225 8226 res_i = vec_all_gt(vbs, vbs); 8227 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8228 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8229 8230 res_i = vec_all_gt(vi, vi); 8231 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8232 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8233 8234 res_i = vec_all_gt(vi, vbi); 8235 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8236 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8237 8238 res_i = vec_all_gt(vui, vui); 8239 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8240 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8241 8242 res_i = vec_all_gt(vui, vbi); 8243 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8244 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8245 8246 res_i = vec_all_gt(vbi, vi); 8247 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8248 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8249 8250 res_i = vec_all_gt(vbi, vui); 8251 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8252 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8253 8254 res_i = vec_all_gt(vbi, vbi); 8255 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8256 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8257 8258 res_i = vec_all_gt(vf, vf); 8259 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8260 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8261 8262 /* vec_all_in */ 8263 res_i = vec_all_in(vf, vf); 8264 // CHECK: @llvm.ppc.altivec.vcmpbfp.p 8265 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p 8266 8267 /* vec_all_le */ 8268 res_i = vec_all_le(vsc, vsc); 8269 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8270 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8271 8272 res_i = vec_all_le(vsc, vbc); 8273 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8274 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8275 8276 res_i = vec_all_le(vuc, vuc); 8277 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8278 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8279 8280 res_i = vec_all_le(vuc, vbc); 8281 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8282 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8283 8284 res_i = vec_all_le(vbc, vsc); 8285 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8286 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8287 8288 res_i = vec_all_le(vbc, vuc); 8289 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8290 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8291 8292 res_i = vec_all_le(vbc, vbc); 8293 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8294 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8295 8296 res_i = vec_all_le(vs, vs); 8297 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8298 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8299 8300 res_i = vec_all_le(vs, vbs); 8301 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8302 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8303 8304 res_i = vec_all_le(vus, vus); 8305 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8306 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8307 8308 res_i = vec_all_le(vus, vbs); 8309 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8310 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8311 8312 res_i = vec_all_le(vbs, vs); 8313 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8314 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8315 8316 res_i = vec_all_le(vbs, vus); 8317 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8318 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8319 8320 res_i = vec_all_le(vbs, vbs); 8321 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8322 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8323 8324 res_i = vec_all_le(vi, vi); 8325 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8326 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8327 8328 res_i = vec_all_le(vi, vbi); 8329 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8330 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8331 8332 res_i = vec_all_le(vui, vui); 8333 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8334 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8335 8336 res_i = vec_all_le(vui, vbi); 8337 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8338 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8339 8340 res_i = vec_all_le(vbi, vi); 8341 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8342 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8343 8344 res_i = vec_all_le(vbi, vui); 8345 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8346 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8347 8348 res_i = vec_all_le(vbi, vbi); 8349 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8350 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8351 8352 res_i = vec_all_le(vf, vf); 8353 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8354 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8355 8356 /* vec_all_lt */ 8357 res_i = vec_all_lt(vsc, vsc); 8358 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8359 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8360 8361 res_i = vec_all_lt(vsc, vbc); 8362 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8363 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8364 8365 res_i = vec_all_lt(vuc, vuc); 8366 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8367 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8368 8369 res_i = vec_all_lt(vuc, vbc); 8370 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8371 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8372 8373 res_i = vec_all_lt(vbc, vsc); 8374 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8375 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8376 8377 res_i = vec_all_lt(vbc, vuc); 8378 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8379 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8380 8381 res_i = vec_all_lt(vbc, vbc); 8382 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8383 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8384 8385 res_i = vec_all_lt(vs, vs); 8386 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8387 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8388 8389 res_i = vec_all_lt(vs, vbs); 8390 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8391 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8392 8393 res_i = vec_all_lt(vus, vus); 8394 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8395 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8396 8397 res_i = vec_all_lt(vus, vbs); 8398 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8399 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8400 8401 res_i = vec_all_lt(vbs, vs); 8402 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8403 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8404 8405 res_i = vec_all_lt(vbs, vus); 8406 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8407 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8408 8409 res_i = vec_all_lt(vbs, vbs); 8410 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8411 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8412 8413 res_i = vec_all_lt(vi, vi); 8414 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8415 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8416 8417 res_i = vec_all_lt(vi, vbi); 8418 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8419 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8420 8421 res_i = vec_all_lt(vui, vui); 8422 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8423 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8424 8425 res_i = vec_all_lt(vui, vbi); 8426 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8427 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8428 8429 res_i = vec_all_lt(vbi, vi); 8430 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8431 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8432 8433 res_i = vec_all_lt(vbi, vui); 8434 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8435 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8436 8437 res_i = vec_all_lt(vbi, vbi); 8438 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8439 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8440 8441 res_i = vec_all_lt(vf, vf); 8442 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8443 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8444 8445 /* vec_all_nan */ 8446 res_i = vec_all_nan(vf); 8447 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8448 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8449 8450 /* vec_all_ne */ 8451 res_i = vec_all_ne(vsc, vsc); 8452 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8453 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8454 8455 res_i = vec_all_ne(vsc, vbc); 8456 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8457 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8458 8459 res_i = vec_all_ne(vuc, vuc); 8460 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8461 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8462 8463 res_i = vec_all_ne(vuc, vbc); 8464 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8465 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8466 8467 res_i = vec_all_ne(vbc, vsc); 8468 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8469 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8470 8471 res_i = vec_all_ne(vbc, vuc); 8472 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8473 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8474 8475 res_i = vec_all_ne(vbc, vbc); 8476 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8477 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8478 8479 res_i = vec_all_ne(vs, vs); 8480 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8481 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8482 8483 res_i = vec_all_ne(vs, vbs); 8484 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8485 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8486 8487 res_i = vec_all_ne(vus, vus); 8488 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8489 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8490 8491 res_i = vec_all_ne(vus, vbs); 8492 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8493 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8494 8495 res_i = vec_all_ne(vbs, vs); 8496 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8497 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8498 8499 res_i = vec_all_ne(vbs, vus); 8500 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8501 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8502 8503 res_i = vec_all_ne(vbs, vbs); 8504 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8505 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8506 8507 res_i = vec_all_ne(vp, vp); 8508 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8509 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8510 8511 res_i = vec_all_ne(vi, vi); 8512 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8513 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8514 8515 res_i = vec_all_ne(vi, vbi); 8516 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8517 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8518 8519 res_i = vec_all_ne(vui, vui); 8520 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8521 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8522 8523 res_i = vec_all_ne(vui, vbi); 8524 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8525 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8526 8527 res_i = vec_all_ne(vbi, vi); 8528 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8529 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8530 8531 res_i = vec_all_ne(vbi, vui); 8532 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8533 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8534 8535 res_i = vec_all_ne(vbi, vbi); 8536 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8537 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8538 8539 res_i = vec_all_ne(vf, vf); 8540 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8541 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8542 8543 /* vec_all_nge */ 8544 res_i = vec_all_nge(vf, vf); 8545 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8546 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8547 8548 /* vec_all_ngt */ 8549 res_i = vec_all_ngt(vf, vf); 8550 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8551 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8552 8553 /* vec_all_nle */ 8554 res_i = vec_all_nle(vf, vf); 8555 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8556 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8557 8558 /* vec_all_nlt */ 8559 res_i = vec_all_nlt(vf, vf); 8560 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8561 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8562 8563 /* vec_all_numeric */ 8564 res_i = vec_all_numeric(vf); 8565 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8566 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8567 8568 /* vec_any_eq */ 8569 res_i = vec_any_eq(vsc, vsc); 8570 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8571 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8572 8573 res_i = vec_any_eq(vsc, vbc); 8574 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8575 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8576 8577 res_i = vec_any_eq(vuc, vuc); 8578 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8579 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8580 8581 res_i = vec_any_eq(vuc, vbc); 8582 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8583 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8584 8585 res_i = vec_any_eq(vbc, vsc); 8586 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8587 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8588 8589 res_i = vec_any_eq(vbc, vuc); 8590 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8591 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8592 8593 res_i = vec_any_eq(vbc, vbc); 8594 // CHECK: @llvm.ppc.altivec.vcmpequb.p 8595 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 8596 8597 res_i = vec_any_eq(vs, vs); 8598 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8599 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8600 8601 res_i = vec_any_eq(vs, vbs); 8602 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8603 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8604 8605 res_i = vec_any_eq(vus, vus); 8606 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8607 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8608 8609 res_i = vec_any_eq(vus, vbs); 8610 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8611 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8612 8613 res_i = vec_any_eq(vbs, vs); 8614 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8615 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8616 8617 res_i = vec_any_eq(vbs, vus); 8618 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8619 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8620 8621 res_i = vec_any_eq(vbs, vbs); 8622 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8623 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8624 8625 res_i = vec_any_eq(vp, vp); 8626 // CHECK: @llvm.ppc.altivec.vcmpequh.p 8627 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 8628 8629 res_i = vec_any_eq(vi, vi); 8630 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8631 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8632 8633 res_i = vec_any_eq(vi, vbi); 8634 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8635 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8636 8637 res_i = vec_any_eq(vui, vui); 8638 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8639 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8640 8641 res_i = vec_any_eq(vui, vbi); 8642 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8643 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8644 8645 res_i = vec_any_eq(vbi, vi); 8646 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8647 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8648 8649 res_i = vec_any_eq(vbi, vui); 8650 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8651 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8652 8653 res_i = vec_any_eq(vbi, vbi); 8654 // CHECK: @llvm.ppc.altivec.vcmpequw.p 8655 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 8656 8657 res_i = vec_any_eq(vf, vf); 8658 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 8659 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 8660 8661 /* vec_any_ge */ 8662 res_i = vec_any_ge(vsc, vsc); 8663 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8664 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8665 8666 res_i = vec_any_ge(vsc, vbc); 8667 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8668 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8669 8670 res_i = vec_any_ge(vuc, vuc); 8671 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8672 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8673 8674 res_i = vec_any_ge(vuc, vbc); 8675 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8676 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8677 8678 res_i = vec_any_ge(vbc, vsc); 8679 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8680 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8681 8682 res_i = vec_any_ge(vbc, vuc); 8683 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8684 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8685 8686 res_i = vec_any_ge(vbc, vbc); 8687 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8688 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8689 8690 res_i = vec_any_ge(vs, vs); 8691 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8692 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8693 8694 res_i = vec_any_ge(vs, vbs); 8695 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8696 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8697 8698 res_i = vec_any_ge(vus, vus); 8699 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8700 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8701 8702 res_i = vec_any_ge(vus, vbs); 8703 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8704 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8705 8706 res_i = vec_any_ge(vbs, vs); 8707 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8708 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8709 8710 res_i = vec_any_ge(vbs, vus); 8711 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8712 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8713 8714 res_i = vec_any_ge(vbs, vbs); 8715 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8716 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8717 8718 res_i = vec_any_ge(vi, vi); 8719 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8720 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8721 8722 res_i = vec_any_ge(vi, vbi); 8723 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8724 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8725 8726 res_i = vec_any_ge(vui, vui); 8727 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8728 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8729 8730 res_i = vec_any_ge(vui, vbi); 8731 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8732 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8733 8734 res_i = vec_any_ge(vbi, vi); 8735 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8736 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8737 8738 res_i = vec_any_ge(vbi, vui); 8739 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8740 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8741 8742 res_i = vec_any_ge(vbi, vbi); 8743 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8744 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8745 8746 res_i = vec_any_ge(vf, vf); 8747 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8748 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8749 8750 /* vec_any_gt */ 8751 res_i = vec_any_gt(vsc, vsc); 8752 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8753 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8754 8755 res_i = vec_any_gt(vsc, vbc); 8756 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8757 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8758 8759 res_i = vec_any_gt(vuc, vuc); 8760 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8761 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8762 8763 res_i = vec_any_gt(vuc, vbc); 8764 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8765 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8766 8767 res_i = vec_any_gt(vbc, vsc); 8768 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8769 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8770 8771 res_i = vec_any_gt(vbc, vuc); 8772 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8773 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8774 8775 res_i = vec_any_gt(vbc, vbc); 8776 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8777 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8778 8779 res_i = vec_any_gt(vs, vs); 8780 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8781 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8782 8783 res_i = vec_any_gt(vs, vbs); 8784 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8785 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8786 8787 res_i = vec_any_gt(vus, vus); 8788 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8789 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8790 8791 res_i = vec_any_gt(vus, vbs); 8792 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8793 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8794 8795 res_i = vec_any_gt(vbs, vs); 8796 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8797 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8798 8799 res_i = vec_any_gt(vbs, vus); 8800 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8801 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8802 8803 res_i = vec_any_gt(vbs, vbs); 8804 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8805 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8806 8807 res_i = vec_any_gt(vi, vi); 8808 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8809 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8810 8811 res_i = vec_any_gt(vi, vbi); 8812 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8813 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8814 8815 res_i = vec_any_gt(vui, vui); 8816 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8817 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8818 8819 res_i = vec_any_gt(vui, vbi); 8820 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8821 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8822 8823 res_i = vec_any_gt(vbi, vi); 8824 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8825 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8826 8827 res_i = vec_any_gt(vbi, vui); 8828 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8829 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8830 8831 res_i = vec_any_gt(vbi, vbi); 8832 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8833 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8834 8835 res_i = vec_any_gt(vf, vf); 8836 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 8837 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 8838 8839 /* vec_any_le */ 8840 res_i = vec_any_le(vsc, vsc); 8841 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8842 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8843 8844 res_i = vec_any_le(vsc, vbc); 8845 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8846 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8847 8848 res_i = vec_any_le(vuc, vuc); 8849 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8850 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8851 8852 res_i = vec_any_le(vuc, vbc); 8853 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8854 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8855 8856 res_i = vec_any_le(vbc, vsc); 8857 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8858 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8859 8860 res_i = vec_any_le(vbc, vuc); 8861 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8862 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8863 8864 res_i = vec_any_le(vbc, vbc); 8865 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8866 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8867 8868 res_i = vec_any_le(vs, vs); 8869 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8870 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8871 8872 res_i = vec_any_le(vs, vbs); 8873 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8874 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8875 8876 res_i = vec_any_le(vus, vus); 8877 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8878 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8879 8880 res_i = vec_any_le(vus, vbs); 8881 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8882 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8883 8884 res_i = vec_any_le(vbs, vs); 8885 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8886 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8887 8888 res_i = vec_any_le(vbs, vus); 8889 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8890 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8891 8892 res_i = vec_any_le(vbs, vbs); 8893 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8894 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8895 8896 res_i = vec_any_le(vi, vi); 8897 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8898 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8899 8900 res_i = vec_any_le(vi, vbi); 8901 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8902 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8903 8904 res_i = vec_any_le(vui, vui); 8905 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8906 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8907 8908 res_i = vec_any_le(vui, vbi); 8909 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8910 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8911 8912 res_i = vec_any_le(vbi, vi); 8913 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8914 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8915 8916 res_i = vec_any_le(vbi, vui); 8917 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8918 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8919 8920 res_i = vec_any_le(vbi, vbi); 8921 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8922 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8923 8924 res_i = vec_any_le(vf, vf); 8925 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 8926 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 8927 8928 /* vec_any_lt */ 8929 res_i = vec_any_lt(vsc, vsc); 8930 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8931 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8932 8933 res_i = vec_any_lt(vsc, vbc); 8934 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8935 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8936 8937 res_i = vec_any_lt(vuc, vuc); 8938 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8939 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8940 8941 res_i = vec_any_lt(vuc, vbc); 8942 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8943 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8944 8945 res_i = vec_any_lt(vbc, vsc); 8946 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 8947 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p 8948 8949 res_i = vec_any_lt(vbc, vuc); 8950 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8951 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8952 8953 res_i = vec_any_lt(vbc, vbc); 8954 // CHECK: @llvm.ppc.altivec.vcmpgtub.p 8955 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p 8956 8957 res_i = vec_any_lt(vs, vs); 8958 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8959 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8960 8961 res_i = vec_any_lt(vs, vbs); 8962 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8963 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8964 8965 res_i = vec_any_lt(vus, vus); 8966 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8967 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8968 8969 res_i = vec_any_lt(vus, vbs); 8970 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8971 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8972 8973 res_i = vec_any_lt(vbs, vs); 8974 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 8975 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p 8976 8977 res_i = vec_any_lt(vbs, vus); 8978 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8979 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8980 8981 res_i = vec_any_lt(vbs, vbs); 8982 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 8983 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p 8984 8985 res_i = vec_any_lt(vi, vi); 8986 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8987 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8988 8989 res_i = vec_any_lt(vi, vbi); 8990 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 8991 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 8992 8993 res_i = vec_any_lt(vui, vui); 8994 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8995 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 8996 8997 res_i = vec_any_lt(vui, vbi); 8998 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 8999 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 9000 9001 res_i = vec_any_lt(vbi, vi); 9002 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 9003 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p 9004 9005 res_i = vec_any_lt(vbi, vui); 9006 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 9007 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 9008 9009 res_i = vec_any_lt(vbi, vbi); 9010 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 9011 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p 9012 9013 res_i = vec_any_lt(vf, vf); 9014 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 9015 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 9016 9017 /* vec_any_nan */ 9018 res_i = vec_any_nan(vf); 9019 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 9020 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 9021 9022 /* vec_any_ne */ 9023 res_i = vec_any_ne(vsc, vsc); 9024 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9025 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9026 9027 res_i = vec_any_ne(vsc, vbc); 9028 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9029 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9030 9031 res_i = vec_any_ne(vuc, vuc); 9032 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9033 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9034 9035 res_i = vec_any_ne(vuc, vbc); 9036 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9037 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9038 9039 res_i = vec_any_ne(vbc, vsc); 9040 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9041 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9042 9043 res_i = vec_any_ne(vbc, vuc); 9044 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9045 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9046 9047 res_i = vec_any_ne(vbc, vbc); 9048 // CHECK: @llvm.ppc.altivec.vcmpequb.p 9049 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p 9050 9051 res_i = vec_any_ne(vs, vs); 9052 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9053 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9054 9055 res_i = vec_any_ne(vs, vbs); 9056 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9057 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9058 9059 res_i = vec_any_ne(vus, vus); 9060 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9061 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9062 9063 res_i = vec_any_ne(vus, vbs); 9064 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9065 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9066 9067 res_i = vec_any_ne(vbs, vs); 9068 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9069 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9070 9071 res_i = vec_any_ne(vbs, vus); 9072 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9073 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9074 9075 res_i = vec_any_ne(vbs, vbs); 9076 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9077 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9078 9079 res_i = vec_any_ne(vp, vp); 9080 // CHECK: @llvm.ppc.altivec.vcmpequh.p 9081 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p 9082 9083 res_i = vec_any_ne(vi, vi); 9084 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9085 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9086 9087 res_i = vec_any_ne(vi, vbi); 9088 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9089 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9090 9091 res_i = vec_any_ne(vui, vui); 9092 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9093 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9094 9095 res_i = vec_any_ne(vui, vbi); 9096 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9097 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9098 9099 res_i = vec_any_ne(vbi, vi); 9100 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9101 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9102 9103 res_i = vec_any_ne(vbi, vui); 9104 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9105 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9106 9107 res_i = vec_any_ne(vbi, vbi); 9108 // CHECK: @llvm.ppc.altivec.vcmpequw.p 9109 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p 9110 9111 res_i = vec_any_ne(vf, vf); 9112 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 9113 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 9114 9115 /* vec_any_nge */ 9116 res_i = vec_any_nge(vf, vf); 9117 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 9118 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 9119 9120 /* vec_any_ngt */ 9121 res_i = vec_any_ngt(vf, vf); 9122 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 9123 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 9124 9125 /* vec_any_nle */ 9126 res_i = vec_any_nle(vf, vf); 9127 // CHECK: @llvm.ppc.altivec.vcmpgefp.p 9128 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p 9129 9130 /* vec_any_nlt */ 9131 res_i = vec_any_nlt(vf, vf); 9132 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 9133 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p 9134 9135 /* vec_any_numeric */ 9136 res_i = vec_any_numeric(vf); 9137 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 9138 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p 9139 9140 /* vec_any_out */ 9141 res_i = vec_any_out(vf, vf); 9142 // CHECK: @llvm.ppc.altivec.vcmpbfp.p 9143 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p 9144 } 9145 9146 /* ------------------------------ Relational Operators ------------------------------ */ 9147 // CHECK-LABEL: define{{.*}} void @test7 9148 void test7() { 9149 vector signed char vsc1 = (vector signed char)(-1); 9150 vector signed char vsc2 = (vector signed char)(-2); 9151 res_i = (vsc1 == vsc2); 9152 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 9153 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2 9154 9155 res_i = (vsc1 != vsc2); 9156 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 9157 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0 9158 9159 res_i = (vsc1 < vsc2); 9160 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 9161 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 9162 9163 res_i = (vsc1 > vsc2); 9164 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 9165 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 9166 9167 res_i = (vsc1 <= vsc2); 9168 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 9169 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 9170 9171 res_i = (vsc1 >= vsc2); 9172 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 9173 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 9174 9175 vector unsigned char vuc1 = (vector unsigned char)(1); 9176 vector unsigned char vuc2 = (vector unsigned char)(2); 9177 res_i = (vuc1 == vuc2); 9178 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 9179 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2 9180 9181 res_i = (vuc1 != vuc2); 9182 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 9183 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0 9184 9185 res_i = (vuc1 < vuc2); 9186 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 9187 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2 9188 9189 res_i = (vuc1 > vuc2); 9190 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 9191 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2 9192 9193 res_i = (vuc1 <= vuc2); 9194 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 9195 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0 9196 9197 res_i = (vuc1 >= vuc2); 9198 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 9199 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0 9200 9201 vector short vs1 = (vector short)(-1); 9202 vector short vs2 = (vector short)(-2); 9203 res_i = (vs1 == vs2); 9204 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 9205 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2 9206 9207 res_i = (vs1 != vs2); 9208 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 9209 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0 9210 9211 res_i = (vs1 < vs2); 9212 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 9213 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 9214 9215 res_i = (vs1 > vs2); 9216 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 9217 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 9218 9219 res_i = (vs1 <= vs2); 9220 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 9221 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 9222 9223 res_i = (vs1 >= vs2); 9224 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 9225 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 9226 9227 vector unsigned short vus1 = (vector unsigned short)(1); 9228 vector unsigned short vus2 = (vector unsigned short)(2); 9229 res_i = (vus1 == vus2); 9230 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 9231 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2 9232 9233 res_i = (vus1 != vus2); 9234 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 9235 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0 9236 9237 res_i = (vus1 < vus2); 9238 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 9239 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 9240 9241 res_i = (vus1 > vus2); 9242 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 9243 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 9244 9245 res_i = (vus1 <= vus2); 9246 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 9247 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 9248 9249 res_i = (vus1 >= vus2); 9250 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 9251 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 9252 9253 vector int vi1 = (vector int)(-1); 9254 vector int vi2 = (vector int)(-2); 9255 res_i = (vi1 == vi2); 9256 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 9257 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2 9258 9259 res_i = (vi1 != vi2); 9260 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 9261 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0 9262 9263 res_i = (vi1 < vi2); 9264 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 9265 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 9266 9267 res_i = (vi1 > vi2); 9268 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 9269 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 9270 9271 res_i = (vi1 <= vi2); 9272 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 9273 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 9274 9275 res_i = (vi1 >= vi2); 9276 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 9277 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 9278 9279 vector unsigned int vui1 = (vector unsigned int)(1); 9280 vector unsigned int vui2 = (vector unsigned int)(2); 9281 res_i = (vui1 == vui2); 9282 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 9283 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2 9284 9285 res_i = (vui1 != vui2); 9286 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 9287 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0 9288 9289 res_i = (vui1 < vui2); 9290 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 9291 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 9292 9293 res_i = (vui1 > vui2); 9294 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 9295 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 9296 9297 res_i = (vui1 <= vui2); 9298 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 9299 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 9300 9301 res_i = (vui1 >= vui2); 9302 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 9303 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 9304 9305 vector float vf1 = (vector float)(1.0); 9306 vector float vf2 = (vector float)(2.0); 9307 res_i = (vf1 == vf2); 9308 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 9309 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 9310 9311 res_i = (vf1 != vf2); 9312 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 9313 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 9314 9315 res_i = (vf1 < vf2); 9316 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 9317 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 9318 9319 res_i = (vf1 > vf2); 9320 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 9321 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 9322 9323 res_i = (vf1 <= vf2); 9324 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 9325 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2 9326 9327 res_i = (vf1 >= vf2); 9328 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 9329 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2 9330 } 9331 9332 /* ------------------------------ optional ---------------------------------- */ 9333 void test8() { 9334 // CHECK-LABEL: define{{.*}} void @test8 9335 // CHECK-LE-LABEL: define{{.*}} void @test8 9336 res_vbc = vec_reve(vbc); 9337 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9338 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9339 9340 res_vsc = vec_reve(vsc); 9341 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9342 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9343 9344 res_vuc = vec_reve(vuc); 9345 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9346 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9347 9348 res_vbi = vec_reve(vbi); 9349 // CHECK: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9350 // CHECK-LE: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9351 9352 res_vi = vec_reve(vi); 9353 // CHECK: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9354 // CHECK-LE: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9355 9356 res_vui = vec_reve(vui); 9357 // CHECK: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9358 // CHECK-LE: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9359 9360 res_vbs = vec_reve(vbs); 9361 // CHECK: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9362 // CHECK-LE: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9363 9364 res_vs = vec_reve(vs); 9365 // CHECK: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9366 // CHECK-LE: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9367 9368 res_vus = vec_reve(vus); 9369 // CHECK: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9370 // CHECK-LE: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> 9371 9372 res_vf = vec_reve(vf); 9373 // CHECK: shufflevector <4 x float> %{{[0-9]+}}, <4 x float> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9374 // CHECK-LE: shufflevector <4 x float> %{{[0-9]+}}, <4 x float> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 9375 9376 res_vbc = vec_revb(vbc); 9377 // CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vbc, align 16 9378 // CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16 9379 // CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16 9380 // CHECK: store <16 x i8> [[T3]], ptr @res_vbc, align 16 9381 // CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vbc, align 16 9382 // CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16 9383 // CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16 9384 // CHECK-LE: store <16 x i8> [[T3]], ptr @res_vbc, align 16 9385 9386 res_vsc = vec_revb(vsc); 9387 // CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vsc, align 16 9388 // CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16 9389 // CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16 9390 // CHECK: store <16 x i8> [[T3]], ptr @res_vsc, align 16 9391 // CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vsc, align 16 9392 // CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16 9393 // CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16 9394 // CHECK-LE: store <16 x i8> [[T3]], ptr @res_vsc, align 16 9395 9396 res_vuc = vec_revb(vuc); 9397 // CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vuc, align 16 9398 // CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16 9399 // CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16 9400 // CHECK: store <16 x i8> [[T3]], ptr @res_vuc, align 16 9401 // CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vuc, align 16 9402 // CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16 9403 // CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16 9404 // CHECK-LE: store <16 x i8> [[T3]], ptr @res_vuc, align 16 9405 9406 res_vbs = vec_revb(vbs); 9407 // CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16 9408 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9409 // CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16 9410 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9411 // CHECK-LE: xor <16 x i8> 9412 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9413 9414 res_vs = vec_revb(vs); 9415 // CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16 9416 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9417 // CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16 9418 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9419 // CHECK-LE: xor <16 x i8> 9420 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9421 9422 res_vus = vec_revb(vus); 9423 // CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16 9424 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9425 // CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16 9426 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9427 // CHECK-LE: xor <16 x i8> 9428 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9429 9430 res_vbi = vec_revb(vbi); 9431 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9432 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9433 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9434 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9435 // CHECK-LE: xor <16 x i8> 9436 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9437 9438 res_vi = vec_revb(vi); 9439 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9440 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9441 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9442 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9443 // CHECK-LE: xor <16 x i8> 9444 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9445 9446 res_vui = vec_revb(vui); 9447 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9448 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9449 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9450 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9451 // CHECK-LE: xor <16 x i8> 9452 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9453 9454 res_vf = vec_revb(vf); 9455 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9456 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9457 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16 9458 // CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 16 9459 // CHECK-LE: xor <16 x i8> 9460 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}}) 9461 } 9462 9463 /* ------------------------------ vec_xl ------------------------------------ */ 9464 void test9() { 9465 // CHECK-LABEL: define{{.*}} void @test9 9466 // CHECK-LE-LABEL: define{{.*}} void @test9 9467 res_vsc = vec_xl(param_sll, param_sc_ld); 9468 // CHECK: load <16 x i8>, ptr %{{.+}}, align 1 9469 // CHECK-LE: load <16 x i8>, ptr %{{.+}}, align 1 9470 9471 res_vuc = vec_xl(param_sll, param_uc_ld); 9472 // CHECK: load <16 x i8>, ptr %{{.+}}, align 1 9473 // CHECK-LE: load <16 x i8>, ptr %{{.+}}, align 1 9474 9475 res_vs = vec_xl(param_sll, param_s_ld); 9476 // CHECK: load <8 x i16>, ptr %{{.+}}, align 1 9477 // CHECK-LE: load <8 x i16>, ptr %{{.+}}, align 1 9478 9479 res_vus = vec_xl(param_sll, param_us_ld); 9480 // CHECK: load <8 x i16>, ptr %{{.+}}, align 1 9481 // CHECK-LE: load <8 x i16>, ptr %{{.+}}, align 1 9482 9483 res_vi = vec_xl(param_sll, param_i_ld); 9484 // CHECK: load <4 x i32>, ptr %{{.+}}, align 1 9485 // CHECK-LE: load <4 x i32>, ptr %{{.+}}, align 1 9486 9487 res_vui = vec_xl(param_sll, param_ui_ld); 9488 // CHECK: load <4 x i32>, ptr %{{.+}}, align 1 9489 // CHECK-LE: load <4 x i32>, ptr %{{.+}}, align 1 9490 9491 res_vf = vec_xl(param_sll, param_f_ld); 9492 // CHECK: load <4 x float>, ptr %{{.+}}, align 1 9493 // CHECK-LE: load <4 x float>, ptr %{{.+}}, align 1 9494 } 9495 9496 /* ------------------------------ vec_xst ----------------------------------- */ 9497 void test10() { 9498 // CHECK-LABEL: define{{.*}} void @test10 9499 // CHECK-LE-LABEL: define{{.*}} void @test10 9500 vec_xst(vsc, param_sll, ¶m_sc); 9501 // CHECK: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1 9502 // CHECK-LE: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1 9503 9504 vec_xst(vuc, param_sll, ¶m_uc); 9505 // CHECK: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1 9506 // CHECK-LE: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1 9507 9508 vec_xst(vs, param_sll, ¶m_s); 9509 // CHECK: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1 9510 // CHECK-LE: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1 9511 9512 vec_xst(vus, param_sll, ¶m_us); 9513 // CHECK: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1 9514 // CHECK-LE: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1 9515 9516 vec_xst(vi, param_sll, ¶m_i); 9517 // CHECK: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1 9518 // CHECK-LE: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1 9519 9520 vec_xst(vui, param_sll, ¶m_ui); 9521 // CHECK: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1 9522 // CHECK-LE: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1 9523 9524 vec_xst(vf, param_sll, ¶m_f); 9525 // CHECK: store <4 x float> %{{[0-9]+}}, ptr %{{.+}}, align 1 9526 // CHECK-LE: store <4 x float> %{{[0-9]+}}, ptr %{{.+}}, align 1 9527 } 9528 9529 vector float test_rsqrtf(vector float a, vector float b) { 9530 // CHECK-LABEL: test_rsqrtf 9531 // CHECK: call fast <4 x float> @llvm.sqrt.v4f32 9532 // CHECK: fdiv fast <4 x float> splat (float 1.000000e+00) 9533 // CHECK-LE-LABEL: test_rsqrtf 9534 // CHECK-LE: call fast <4 x float> @llvm.sqrt.v4f32 9535 // CHECK-LE: fdiv fast <4 x float> splat (float 1.000000e+00) 9536 return vec_rsqrt(a); 9537 } 9538 9539 vector float test_recipdivf(vector float a, vector float b) { 9540 // CHECK-LABEL: test_recipdivf 9541 // CHECK: fdiv fast <4 x float> 9542 // CHECK-LE-LABEL: test_recipdivf 9543 // CHECK-LE: fdiv fast <4 x float> 9544 return vec_recipdiv(a, b); 9545 } 9546