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