9546 lines · c
1// REQUIRES: powerpc-registered-target2// RUN: %clang_cc1 -target-feature +altivec -triple powerpc-unknown-unknown -emit-llvm %s \3// RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \4// RUN: -o - | FileCheck %s5// RUN: %clang_cc1 -target-feature +altivec -triple powerpcle-unknown-unknown -emit-llvm %s \6// RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \7// RUN: -o - | FileCheck %s -check-prefix=CHECK-LE8// RUN: %clang_cc1 -target-feature +altivec -triple powerpc64-unknown-unknown -emit-llvm %s \9// RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \10// RUN: -o - | FileCheck %s11// RUN: %clang_cc1 -target-feature +altivec -triple powerpc64le-unknown-unknown -emit-llvm %s \12// RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \13// RUN: -o - | FileCheck %s -check-prefix=CHECK-LE14// RUN: not %clang_cc1 -triple powerpc64le-unknown-unknown -emit-llvm %s \15// RUN: -ferror-limit 0 -DNO_ALTIVEC -o - 2>&1 \16// RUN: | FileCheck %s -check-prefix=CHECK-NOALTIVEC17#ifndef NO_ALTIVEC18#include <altivec.h>19#endif20 21vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 };22vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 };23vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };24vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 };25vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 };26vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 };27vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 };28vector bool int vbi = { 1, 0, 1, 0 };29vector int vi = { -1, 2, -3, 4 };30vector unsigned int vui = { 1, 2, 3, 4 };31vector float vf = { -1.5, 2.5, -3.5, 4.5 };32 33vector bool char res_vbc;34vector signed char res_vsc;35vector unsigned char res_vuc;36vector bool short res_vbs;37vector short res_vs;38vector unsigned short res_vus;39vector pixel res_vp;40vector bool int res_vbi;41vector int res_vi;42vector unsigned int res_vui;43vector float res_vf;44 45// CHECK-NOALTIVEC: error: unknown type name 'vector'46// CHECK-NOALTIVEC-NOT: '(error)'47const signed char *param_sc_ld;48const unsigned char *param_uc_ld;49const short *param_s_ld;50const unsigned short *param_us_ld;51const int *param_i_ld;52const unsigned int *param_ui_ld;53const float *param_f_ld;54 55signed char param_sc;56unsigned char param_uc;57short param_s;58unsigned short param_us;59int param_i;60unsigned int param_ui;61float param_f;62signed long long param_sll;63 64int res_sc;65int res_uc;66int res_s;67int res_us;68int res_i;69int res_ui;70int res_f;71 72// CHECK-LABEL: define{{.*}} void @test173void test1() {74 75 /* vec_abs */76 vsc = vec_abs(vsc);77// CHECK: sub <16 x i8> zeroinitializer78// CHECK: @llvm.ppc.altivec.vmaxsb79// CHECK-LE: sub <16 x i8> zeroinitializer80// CHECK-LE: @llvm.ppc.altivec.vmaxsb81 82 vs = vec_abs(vs);83// CHECK: sub <8 x i16> zeroinitializer84// CHECK: @llvm.ppc.altivec.vmaxsh85// CHECK-LE: sub <8 x i16> zeroinitializer86// CHECK-LE: @llvm.ppc.altivec.vmaxsh87 88 vi = vec_abs(vi);89// CHECK: sub <4 x i32> zeroinitializer90// CHECK: @llvm.ppc.altivec.vmaxsw91// CHECK-LE: sub <4 x i32> zeroinitializer92// CHECK-LE: @llvm.ppc.altivec.vmaxsw93 94 vf = vec_abs(vf);95// CHECK: and <4 x i32> {{.*}}, splat (i32 2147483647)96// CHECK: store <4 x float> %{{.*}}, ptr @vf97// CHECK-LE: bitcast <4 x float> %{{.*}} to <4 x i32>98// CHECK-LE: and <4 x i32> {{.*}}, splat (i32 2147483647)99// CHECK-LE: bitcast <4 x i32> %{{.*}} to <4 x float>100// CHECK-LE: store <4 x float> %{{.*}}, ptr @vf101 102 vsc = vec_nabs(vsc);103// CHECK: sub <16 x i8> zeroinitializer104// CHECK: @llvm.ppc.altivec.vminsb105// CHECK-LE: sub <16 x i8> zeroinitializer106// CHECK-LE: @llvm.ppc.altivec.vminsb107 108 vs = vec_nabs(vs);109// CHECK: sub <8 x i16> zeroinitializer110// CHECK: @llvm.ppc.altivec.vminsh111// CHECK-LE: sub <8 x i16> zeroinitializer112// CHECK-LE: @llvm.ppc.altivec.vminsh113 114 vi = vec_nabs(vi);115// CHECK: sub <4 x i32> zeroinitializer116// CHECK: @llvm.ppc.altivec.vminsw117// CHECK-LE: sub <4 x i32> zeroinitializer118// CHECK-LE: @llvm.ppc.altivec.vminsw119 120 res_vi = vec_neg(vi);121// CHECK: sub <4 x i32> zeroinitializer, {{%[0-9]+}}122// CHECK-LE: sub <4 x i32> zeroinitializer, {{%[0-9]+}}123 124 res_vs = vec_neg(vs);125// CHECK: sub <8 x i16> zeroinitializer, {{%[0-9]+}}126// CHECK-LE: sub <8 x i16> zeroinitializer, {{%[0-9]+}}127 128 res_vsc = vec_neg(vsc);129// CHECK: sub <16 x i8> zeroinitializer, {{%[0-9]+}}130// CHECK-LE: sub <16 x i8> zeroinitializer, {{%[0-9]+}}131 132 133 /* vec_abs */134 vsc = vec_abss(vsc);135// CHECK: @llvm.ppc.altivec.vsubsbs136// CHECK: @llvm.ppc.altivec.vmaxsb137// CHECK-LE: @llvm.ppc.altivec.vsubsbs138// CHECK-LE: @llvm.ppc.altivec.vmaxsb139 140 vs = vec_abss(vs);141// CHECK: @llvm.ppc.altivec.vsubshs142// CHECK: @llvm.ppc.altivec.vmaxsh143// CHECK-LE: @llvm.ppc.altivec.vsubshs144// CHECK-LE: @llvm.ppc.altivec.vmaxsh145 146 vi = vec_abss(vi);147// CHECK: @llvm.ppc.altivec.vsubsws148// CHECK: @llvm.ppc.altivec.vmaxsw149// CHECK-LE: @llvm.ppc.altivec.vsubsws150// CHECK-LE: @llvm.ppc.altivec.vmaxsw151 152 /* vec_add */153 res_vsc = vec_add(vsc, vsc);154// CHECK: add <16 x i8>155// CHECK-LE: add <16 x i8>156 157 res_vsc = vec_add(vbc, vsc);158// CHECK: add <16 x i8>159// CHECK-LE: add <16 x i8>160 161 res_vsc = vec_add(vsc, vbc);162// CHECK: add <16 x i8>163// CHECK-LE: add <16 x i8>164 165 res_vuc = vec_add(vuc, vuc);166// CHECK: add <16 x i8>167// CHECK-LE: add <16 x i8>168 169 res_vuc = vec_add(vbc, vuc);170// CHECK: add <16 x i8>171// CHECK-LE: add <16 x i8>172 173 res_vuc = vec_add(vuc, vbc);174// CHECK: add <16 x i8>175// CHECK-LE: add <16 x i8>176 177 res_vs = vec_add(vs, vs);178// CHECK: add <8 x i16>179// CHECK-LE: add <8 x i16>180 181 res_vs = vec_add(vbs, vs);182// CHECK: add <8 x i16>183// CHECK-LE: add <8 x i16>184 185 res_vs = vec_add(vs, vbs);186// CHECK: add <8 x i16>187// CHECK-LE: add <8 x i16>188 189 res_vus = vec_add(vus, vus);190// CHECK: add <8 x i16>191// CHECK-LE: add <8 x i16>192 193 res_vus = vec_add(vbs, vus);194// CHECK: add <8 x i16>195// CHECK-LE: add <8 x i16>196 197 res_vus = vec_add(vus, vbs);198// CHECK: add <8 x i16>199// CHECK-LE: add <8 x i16>200 201 res_vi = vec_add(vi, vi);202// CHECK: add <4 x i32>203// CHECK-LE: add <4 x i32>204 205 res_vi = vec_add(vbi, vi);206// CHECK: add <4 x i32>207// CHECK-LE: add <4 x i32>208 209 res_vi = vec_add(vi, vbi);210// CHECK: add <4 x i32>211// CHECK-LE: add <4 x i32>212 213 res_vui = vec_add(vui, vui);214// CHECK: add <4 x i32>215// CHECK-LE: add <4 x i32>216 217 res_vui = vec_add(vbi, vui);218// CHECK: add <4 x i32>219// CHECK-LE: add <4 x i32>220 221 res_vui = vec_add(vui, vbi);222// CHECK: add <4 x i32>223// CHECK-LE: add <4 x i32>224 225 res_vf = vec_add(vf, vf);226// CHECK: fadd <4 x float>227// CHECK-LE: fadd <4 x float>228 229 res_vi = vec_adde(vi, vi, vi);230// CHECK: and <4 x i32>231// CHECK: add <4 x i32>232// CHECK: add <4 x i32>233// CHECK-LE: and <4 x i32>234// CHECK-LE: add <4 x i32>235// CHECK-LE: add <4 x i32>236 237 res_vui = vec_adde(vui, vui, vui);238// CHECK: and <4 x i32>239// CHECK: add <4 x i32>240// CHECK: add <4 x i32>241// CHECK-LE: and <4 x i32>242// CHECK-LE: add <4 x i32>243// CHECK-LE: add <4 x i32>244 245 res_vsc = vec_vaddubm(vsc, vsc);246// CHECK: add <16 x i8>247// CHECK-LE: add <16 x i8>248 249 res_vsc = vec_vaddubm(vbc, vsc);250// CHECK: add <16 x i8>251// CHECK-LE: add <16 x i8>252 253 res_vsc = vec_vaddubm(vsc, vbc);254// CHECK: add <16 x i8>255// CHECK-LE: add <16 x i8>256 257 res_vuc = vec_vaddubm(vuc, vuc);258// CHECK: add <16 x i8>259// CHECK-LE: add <16 x i8>260 261 res_vuc = vec_vaddubm(vbc, vuc);262// CHECK: add <16 x i8>263// CHECK-LE: add <16 x i8>264 265 res_vuc = vec_vaddubm(vuc, vbc);266// CHECK: add <16 x i8>267// CHECK-LE: add <16 x i8>268 269 res_vs = vec_vadduhm(vs, vs);270// CHECK: add <8 x i16>271// CHECK-LE: add <8 x i16>272 273 res_vs = vec_vadduhm(vbs, vs);274// CHECK: add <8 x i16>275// CHECK-LE: add <8 x i16>276 277 res_vs = vec_vadduhm(vs, vbs);278// CHECK: add <8 x i16>279// CHECK-LE: add <8 x i16>280 281 res_vus = vec_vadduhm(vus, vus);282// CHECK: add <8 x i16>283// CHECK-LE: add <8 x i16>284 285 res_vus = vec_vadduhm(vbs, vus);286// CHECK: add <8 x i16>287// CHECK-LE: add <8 x i16>288 289 res_vus = vec_vadduhm(vus, vbs);290// CHECK: add <8 x i16>291// CHECK-LE: add <8 x i16>292 293 res_vi = vec_vadduwm(vi, vi);294// CHECK: add <4 x i32>295// CHECK-LE: add <4 x i32>296 297 res_vi = vec_vadduwm(vbi, vi);298// CHECK: add <4 x i32>299// CHECK-LE: add <4 x i32>300 301 res_vi = vec_vadduwm(vi, vbi);302// CHECK: add <4 x i32>303// CHECK-LE: add <4 x i32>304 305 res_vui = vec_vadduwm(vui, vui);306// CHECK: add <4 x i32>307// CHECK-LE: add <4 x i32>308 309 res_vui = vec_vadduwm(vbi, vui);310// CHECK: add <4 x i32>311// CHECK-LE: add <4 x i32>312 313 res_vui = vec_vadduwm(vui, vbi);314// CHECK: add <4 x i32>315// CHECK-LE: add <4 x i32>316 317 res_vf = vec_vaddfp(vf, vf);318// CHECK: fadd <4 x float>319// CHECK-LE: fadd <4 x float>320 321 /* vec_addc */322 res_vui = vec_addc(vui, vui);323// CHECK: @llvm.ppc.altivec.vaddcuw324// CHECK-LE: @llvm.ppc.altivec.vaddcuw325 326 res_vui = vec_vaddcuw(vui, vui);327// CHECK: @llvm.ppc.altivec.vaddcuw328// CHECK-LE: @llvm.ppc.altivec.vaddcuw329 330 /* vec_adds */331 res_vsc = vec_adds(vsc, vsc);332// CHECK: @llvm.ppc.altivec.vaddsbs333// CHECK-LE: @llvm.ppc.altivec.vaddsbs334 335 res_vsc = vec_adds(vbc, vsc);336// CHECK: @llvm.ppc.altivec.vaddsbs337// CHECK-LE: @llvm.ppc.altivec.vaddsbs338 339 res_vsc = vec_adds(vsc, vbc);340// CHECK: @llvm.ppc.altivec.vaddsbs341// CHECK-LE: @llvm.ppc.altivec.vaddsbs342 343 res_vuc = vec_adds(vuc, vuc);344// CHECK: @llvm.ppc.altivec.vaddubs345// CHECK-LE: @llvm.ppc.altivec.vaddubs346 347 res_vuc = vec_adds(vbc, vuc);348// CHECK: @llvm.ppc.altivec.vaddubs349// CHECK-LE: @llvm.ppc.altivec.vaddubs350 351 res_vuc = vec_adds(vuc, vbc);352// CHECK: @llvm.ppc.altivec.vaddubs353// CHECK-LE: @llvm.ppc.altivec.vaddubs354 355 res_vs = vec_adds(vs, vs);356// CHECK: @llvm.ppc.altivec.vaddshs357// CHECK-LE: @llvm.ppc.altivec.vaddshs358 359 res_vs = vec_adds(vbs, vs);360// CHECK: @llvm.ppc.altivec.vaddshs361// CHECK-LE: @llvm.ppc.altivec.vaddshs362 363 res_vs = vec_adds(vs, vbs);364// CHECK: @llvm.ppc.altivec.vaddshs365// CHECK-LE: @llvm.ppc.altivec.vaddshs366 367 res_vus = vec_adds(vus, vus);368// CHECK: @llvm.ppc.altivec.vadduhs369// CHECK-LE: @llvm.ppc.altivec.vadduhs370 371 res_vus = vec_adds(vbs, vus);372// CHECK: @llvm.ppc.altivec.vadduhs373// CHECK-LE: @llvm.ppc.altivec.vadduhs374 375 res_vus = vec_adds(vus, vbs);376// CHECK: @llvm.ppc.altivec.vadduhs377// CHECK-LE: @llvm.ppc.altivec.vadduhs378 379 res_vi = vec_adds(vi, vi);380// CHECK: @llvm.ppc.altivec.vaddsws381// CHECK-LE: @llvm.ppc.altivec.vaddsws382 383 res_vi = vec_adds(vbi, vi);384// CHECK: @llvm.ppc.altivec.vaddsws385// CHECK-LE: @llvm.ppc.altivec.vaddsws386 387 res_vi = vec_adds(vi, vbi);388// CHECK: @llvm.ppc.altivec.vaddsws389// CHECK-LE: @llvm.ppc.altivec.vaddsws390 391 res_vui = vec_adds(vui, vui);392// CHECK: @llvm.ppc.altivec.vadduws393// CHECK-LE: @llvm.ppc.altivec.vadduws394 395 res_vui = vec_adds(vbi, vui);396// CHECK: @llvm.ppc.altivec.vadduws397// CHECK-LE: @llvm.ppc.altivec.vadduws398 399 res_vui = vec_adds(vui, vbi);400// CHECK: @llvm.ppc.altivec.vadduws401// CHECK-LE: @llvm.ppc.altivec.vadduws402 403 res_vsc = vec_vaddsbs(vsc, vsc);404// CHECK: @llvm.ppc.altivec.vaddsbs405// CHECK-LE: @llvm.ppc.altivec.vaddsbs406 407 res_vsc = vec_vaddsbs(vbc, vsc);408// CHECK: @llvm.ppc.altivec.vaddsbs409// CHECK-LE: @llvm.ppc.altivec.vaddsbs410 411 res_vsc = vec_vaddsbs(vsc, vbc);412// CHECK: @llvm.ppc.altivec.vaddsbs413// CHECK-LE: @llvm.ppc.altivec.vaddsbs414 415 res_vuc = vec_vaddubs(vuc, vuc);416// CHECK: @llvm.ppc.altivec.vaddubs417// CHECK-LE: @llvm.ppc.altivec.vaddubs418 419 res_vuc = vec_vaddubs(vbc, vuc);420// CHECK: @llvm.ppc.altivec.vaddubs421// CHECK-LE: @llvm.ppc.altivec.vaddubs422 423 res_vuc = vec_vaddubs(vuc, vbc);424// CHECK: @llvm.ppc.altivec.vaddubs425// CHECK-LE: @llvm.ppc.altivec.vaddubs426 427 res_vs = vec_vaddshs(vs, vs);428// CHECK: @llvm.ppc.altivec.vaddshs429// CHECK-LE: @llvm.ppc.altivec.vaddshs430 431 res_vs = vec_vaddshs(vbs, vs);432// CHECK: @llvm.ppc.altivec.vaddshs433// CHECK-LE: @llvm.ppc.altivec.vaddshs434 435 res_vs = vec_vaddshs(vs, vbs);436// CHECK: @llvm.ppc.altivec.vaddshs437// CHECK-LE: @llvm.ppc.altivec.vaddshs438 439 res_vus = vec_vadduhs(vus, vus);440// CHECK: @llvm.ppc.altivec.vadduhs441// CHECK-LE: @llvm.ppc.altivec.vadduhs442 443 res_vus = vec_vadduhs(vbs, vus);444// CHECK: @llvm.ppc.altivec.vadduhs445// CHECK-LE: @llvm.ppc.altivec.vadduhs446 447 res_vus = vec_vadduhs(vus, vbs);448// CHECK: @llvm.ppc.altivec.vadduhs449// CHECK-LE: @llvm.ppc.altivec.vadduhs450 451 res_vi = vec_vaddsws(vi, vi);452// CHECK: @llvm.ppc.altivec.vaddsws453// CHECK-LE: @llvm.ppc.altivec.vaddsws454 455 res_vi = vec_vaddsws(vbi, vi);456// CHECK: @llvm.ppc.altivec.vaddsws457// CHECK-LE: @llvm.ppc.altivec.vaddsws458 459 res_vi = vec_vaddsws(vi, vbi);460// CHECK: @llvm.ppc.altivec.vaddsws461// CHECK-LE: @llvm.ppc.altivec.vaddsws462 463 res_vui = vec_vadduws(vui, vui);464// CHECK: @llvm.ppc.altivec.vadduws465// CHECK-LE: @llvm.ppc.altivec.vadduws466 467 res_vui = vec_vadduws(vbi, vui);468// CHECK: @llvm.ppc.altivec.vadduws469// CHECK-LE: @llvm.ppc.altivec.vadduws470 471 res_vui = vec_vadduws(vui, vbi);472// CHECK: @llvm.ppc.altivec.vadduws473// CHECK-LE: @llvm.ppc.altivec.vadduws474 475 /* vec_and */476 res_vsc = vec_and(vsc, vsc);477// CHECK: and <16 x i8>478// CHECK-LE: and <16 x i8>479 480 res_vsc = vec_and(vbc, vsc);481// CHECK: and <16 x i8>482// CHECK-LE: and <16 x i8>483 484 res_vsc = vec_and(vsc, vbc);485// CHECK: and <16 x i8>486// CHECK-LE: and <16 x i8>487 488 res_vuc = vec_and(vuc, vuc);489// CHECK: and <16 x i8>490// CHECK-LE: and <16 x i8>491 492 res_vuc = vec_and(vbc, vuc);493// CHECK: and <16 x i8>494// CHECK-LE: and <16 x i8>495 496 res_vuc = vec_and(vuc, vbc);497// CHECK: and <16 x i8>498// CHECK-LE: and <16 x i8>499 500 res_vbc = vec_and(vbc, vbc);501// CHECK: and <16 x i8>502// CHECK-LE: and <16 x i8>503 504 res_vs = vec_and(vs, vs);505// CHECK: and <8 x i16>506// CHECK-LE: and <8 x i16>507 508 res_vs = vec_and(vbs, vs);509// CHECK: and <8 x i16>510// CHECK-LE: and <8 x i16>511 512 res_vs = vec_and(vs, vbs);513// CHECK: and <8 x i16>514// CHECK-LE: and <8 x i16>515 516 res_vus = vec_and(vus, vus);517// CHECK: and <8 x i16>518// CHECK-LE: and <8 x i16>519 520 res_vus = vec_and(vbs, vus);521// CHECK: and <8 x i16>522// CHECK-LE: and <8 x i16>523 524 res_vus = vec_and(vus, vbs);525// CHECK: and <8 x i16>526// CHECK-LE: and <8 x i16>527 528 res_vbs = vec_and(vbs, vbs);529// CHECK: and <8 x i16>530// CHECK-LE: and <8 x i16>531 532 res_vi = vec_and(vi, vi);533// CHECK: and <4 x i32>534// CHECK-LE: and <4 x i32>535 536 res_vi = vec_and(vbi, vi);537// CHECK: and <4 x i32>538// CHECK-le: and <4 x i32>539 540 res_vi = vec_and(vi, vbi);541// CHECK: and <4 x i32>542// CHECK-LE: and <4 x i32>543 544 res_vui = vec_and(vui, vui);545// CHECK: and <4 x i32>546// CHECK-LE: and <4 x i32>547 548 res_vui = vec_and(vbi, vui);549// CHECK: and <4 x i32>550// CHECK-LE: and <4 x i32>551 552 res_vui = vec_and(vui, vbi);553// CHECK: and <4 x i32>554// CHECK-LE: and <4 x i32>555 556 res_vbi = vec_and(vbi, vbi);557// CHECK: and <4 x i32>558// CHECK-LE: and <4 x i32>559 560 res_vsc = vec_vand(vsc, vsc);561// CHECK: and <16 x i8>562// CHECK-LE: and <16 x i8>563 564 res_vsc = vec_vand(vbc, vsc);565// CHECK: and <16 x i8>566// CHECK-LE: and <16 x i8>567 568 res_vsc = vec_vand(vsc, vbc);569// CHECK: and <16 x i8>570// CHECK-LE: and <16 x i8>571 572 res_vuc = vec_vand(vuc, vuc);573// CHECK: and <16 x i8>574// CHECK-LE: and <16 x i8>575 576 res_vuc = vec_vand(vbc, vuc);577// CHECK: and <16 x i8>578// CHECK-LE: and <16 x i8>579 580 res_vuc = vec_vand(vuc, vbc);581// CHECK: and <16 x i8>582// CHECK-LE: and <16 x i8>583 584 res_vbc = vec_vand(vbc, vbc);585// CHECK: and <16 x i8>586// CHECK-LE: and <16 x i8>587 588 res_vs = vec_vand(vs, vs);589// CHECK: and <8 x i16>590// CHECK-LE: and <8 x i16>591 592 res_vs = vec_vand(vbs, vs);593// CHECK: and <8 x i16>594// CHECK-LE: and <8 x i16>595 596 res_vs = vec_vand(vs, vbs);597// CHECK: and <8 x i16>598// CHECK-LE: and <8 x i16>599 600 res_vus = vec_vand(vus, vus);601// CHECK: and <8 x i16>602// CHECK-LE: and <8 x i16>603 604 res_vus = vec_vand(vbs, vus);605// CHECK: and <8 x i16>606// CHECK-LE: and <8 x i16>607 608 res_vus = vec_vand(vus, vbs);609// CHECK: and <8 x i16>610// CHECK-LE: and <8 x i16>611 612 res_vbs = vec_vand(vbs, vbs);613// CHECK: and <8 x i16>614// CHECK-LE: and <8 x i16>615 616 res_vi = vec_vand(vi, vi);617// CHECK: and <4 x i32>618// CHECK-LE: and <4 x i32>619 620 res_vi = vec_vand(vbi, vi);621// CHECK: and <4 x i32>622// CHECK-LE: and <4 x i32>623 624 res_vi = vec_vand(vi, vbi);625// CHECK: and <4 x i32>626// CHECK-LE: and <4 x i32>627 628 res_vui = vec_vand(vui, vui);629// CHECK: and <4 x i32>630// CHECK-LE: and <4 x i32>631 632 res_vui = vec_vand(vbi, vui);633// CHECK: and <4 x i32>634// CHECK-LE: and <4 x i32>635 636 res_vui = vec_vand(vui, vbi);637// CHECK: and <4 x i32>638// CHECK-LE: and <4 x i32>639 640 res_vbi = vec_vand(vbi, vbi);641// CHECK: and <4 x i32>642// CHECK-LE: and <4 x i32>643 644 /* vec_andc */645 res_vsc = vec_andc(vsc, vsc);646// CHECK: xor <16 x i8>647// CHECK: and <16 x i8>648// CHECK-LE: xor <16 x i8>649// CHECK-LE: and <16 x i8>650 651 res_vsc = vec_andc(vbc, vsc);652// CHECK: xor <16 x i8>653// CHECK: and <16 x i8>654// CHECK-LE: xor <16 x i8>655// CHECK-LE: and <16 x i8>656 657 res_vsc = vec_andc(vsc, vbc);658// CHECK: xor <16 x i8>659// CHECK: and <16 x i8>660// CHECK-LE: xor <16 x i8>661// CHECK-LE: and <16 x i8>662 663 res_vuc = vec_andc(vuc, vuc);664// CHECK: xor <16 x i8>665// CHECK: and <16 x i8>666// CHECK-LE: xor <16 x i8>667// CHECK-LE: and <16 x i8>668 669 res_vuc = vec_andc(vbc, vuc);670// CHECK: xor <16 x i8>671// CHECK: and <16 x i8>672// CHECK-LE: xor <16 x i8>673// CHECK-LE: and <16 x i8>674 675 res_vuc = vec_andc(vuc, vbc);676// CHECK-LE: xor <16 x i8>677// CHECK-LE: and <16 x i8>678 679 res_vbc = vec_andc(vbc, vbc);680// CHECK: xor <16 x i8>681// CHECK: and <16 x i8>682// CHECK-LE: xor <16 x i8>683// CHECK-LE: and <16 x i8>684 685 res_vs = vec_andc(vs, vs);686// CHECK: xor <8 x i16>687// CHECK: and <8 x i16>688// CHECK-LE: xor <8 x i16>689// CHECK-LE: and <8 x i16>690 691 res_vs = vec_andc(vbs, vs);692// CHECK: xor <8 x i16>693// CHECK: and <8 x i16>694// CHECK-LE: xor <8 x i16>695// CHECK-LE: and <8 x i16>696 697 res_vs = vec_andc(vs, vbs);698// CHECK: xor <8 x i16>699// CHECK: and <8 x i16>700// CHECK-LE: xor <8 x i16>701// CHECK-LE: and <8 x i16>702 703 res_vus = vec_andc(vus, vus);704// CHECK: xor <8 x i16>705// CHECK: and <8 x i16>706// CHECK-LE: xor <8 x i16>707// CHECK-LE: and <8 x i16>708 709 res_vus = vec_andc(vbs, vus);710// CHECK: xor <8 x i16>711// CHECK: and <8 x i16>712// CHECK-LE: xor <8 x i16>713// CHECK-LE: and <8 x i16>714 715 res_vus = vec_andc(vus, vbs);716// CHECK: xor <8 x i16>717// CHECK: and <8 x i16>718// CHECK-LE: xor <8 x i16>719// CHECK-LE: and <8 x i16>720 721 res_vbs = vec_andc(vbs, vbs);722// CHECK: xor <8 x i16>723// CHECK: and <8 x i16>724// CHECK-LE: xor <8 x i16>725// CHECK-LE: and <8 x i16>726 727 res_vi = vec_andc(vi, vi);728// CHECK: xor <4 x i32>729// CHECK: and <4 x i32>730// CHECK-LE: xor <4 x i32>731// CHECK-LE: and <4 x i32>732 733 res_vi = vec_andc(vbi, vi);734// CHECK: xor <4 x i32>735// CHECK: and <4 x i32>736// CHECK-LE: xor <4 x i32>737// CHECK-LE: and <4 x i32>738 739 res_vi = vec_andc(vi, vbi);740// CHECK: xor <4 x i32>741// CHECK: and <4 x i32>742// CHECK-LE: xor <4 x i32>743// CHECK-LE: and <4 x i32>744 745 res_vui = vec_andc(vui, vui);746// CHECK: xor <4 x i32>747// CHECK: and <4 x i32>748// CHECK-LE: xor <4 x i32>749// CHECK-LE: and <4 x i32>750 751 res_vui = vec_andc(vbi, vui);752// CHECK: xor <4 x i32>753// CHECK: and <4 x i32>754// CHECK-LE: xor <4 x i32>755// CHECK-LE: and <4 x i32>756 757 res_vui = vec_andc(vui, vbi);758// CHECK: xor <4 x i32>759// CHECK: and <4 x i32>760// CHECK-LE: xor <4 x i32>761// CHECK-LE: and <4 x i32>762 763 res_vf = vec_andc(vf, vf);764// CHECK: xor <4 x i32>765// CHECK: and <4 x i32>766// CHECK-LE: xor <4 x i32>767// CHECK-LE: and <4 x i32>768 769 res_vf = vec_andc(vbi, vf);770// CHECK: xor <4 x i32>771// CHECK: and <4 x i32>772// CHECK-LE: xor <4 x i32>773// CHECK-LE: and <4 x i32>774 775 res_vf = vec_andc(vf, vbi);776// CHECK: xor <4 x i32>777// CHECK: and <4 x i32>778// CHECK-LE: xor <4 x i32>779// CHECK-LE: and <4 x i32>780 781 res_vsc = vec_vandc(vsc, vsc);782// CHECK: xor <16 x i8>783// CHECK: and <16 x i8>784// CHECK-LE: xor <16 x i8>785// CHECK-LE: and <16 x i8>786 787 res_vsc = vec_vandc(vbc, vsc);788// CHECK: xor <16 x i8>789// CHECK: and <16 x i8>790// CHECK-LE: xor <16 x i8>791// CHECK-LE: and <16 x i8>792 793 res_vsc = vec_vandc(vsc, vbc);794// CHECK: xor <16 x i8>795// CHECK: and <16 x i8>796// CHECK-LE: xor <16 x i8>797// CHECK-LE: and <16 x i8>798 799 res_vuc = vec_vandc(vuc, vuc);800// CHECK: xor <16 x i8>801// CHECK: and <16 x i8>802// CHECK-LE: xor <16 x i8>803// CHECK-LE: and <16 x i8>804 805 res_vuc = vec_vandc(vbc, vuc);806// CHECK: xor <16 x i8>807// CHECK: and <16 x i8>808// CHECK-LE: xor <16 x i8>809// CHECK-LE: and <16 x i8>810 811 res_vuc = vec_vandc(vuc, vbc);812// CHECK: xor <16 x i8>813// CHECK: and <16 x i8>814// CHECK-LE: xor <16 x i8>815// CHECK-LE: and <16 x i8>816 817 res_vbc = vec_vandc(vbc, vbc);818// CHECK: xor <16 x i8>819// CHECK: and <16 x i8>820// CHECK-LE: xor <16 x i8>821// CHECK-LE: and <16 x i8>822 823 res_vs = vec_vandc(vs, vs);824// CHECK: xor <8 x i16>825// CHECK: and <8 x i16>826// CHECK-LE: xor <8 x i16>827// CHECK-LE: and <8 x i16>828 829 res_vs = vec_vandc(vbs, vs);830// CHECK: xor <8 x i16>831// CHECK: and <8 x i16>832// CHECK-LE: xor <8 x i16>833// CHECK-LE: and <8 x i16>834 835 res_vs = vec_vandc(vs, vbs);836// CHECK: xor <8 x i16>837// CHECK: and <8 x i16>838// CHECK-LE: xor <8 x i16>839// CHECK-LE: and <8 x i16>840 841 res_vus = vec_vandc(vus, vus);842// CHECK: xor <8 x i16>843// CHECK: and <8 x i16>844// CHECK-LE: xor <8 x i16>845// CHECK-LE: and <8 x i16>846 847 res_vus = vec_vandc(vbs, vus);848// CHECK: xor <8 x i16>849// CHECK: and <8 x i16>850// CHECK-LE: xor <8 x i16>851// CHECK-LE: and <8 x i16>852 853 res_vus = vec_vandc(vus, vbs);854// CHECK: xor <8 x i16>855// CHECK: and <8 x i16>856// CHECK-LE: xor <8 x i16>857// CHECK-LE: and <8 x i16>858 859 res_vbs = vec_vandc(vbs, vbs);860// CHECK: xor <8 x i16>861// CHECK: and <8 x i16>862// CHECK-LE: xor <8 x i16>863// CHECK-LE: and <8 x i16>864 865 res_vi = vec_vandc(vi, vi);866// CHECK: xor <4 x i32>867// CHECK: and <4 x i32>868// CHECK-LE: xor <4 x i32>869// CHECK-LE: and <4 x i32>870 871 res_vi = vec_vandc(vbi, vi);872// CHECK: xor <4 x i32>873// CHECK: and <4 x i32>874// CHECK-LE: xor <4 x i32>875// CHECK-LE: and <4 x i32>876 877 res_vi = vec_vandc(vi, vbi);878// CHECK: xor <4 x i32>879// CHECK: and <4 x i32>880// CHECK-LE: xor <4 x i32>881// CHECK-LE: and <4 x i32>882 883 res_vui = vec_vandc(vui, vui);884// CHECK: xor <4 x i32>885// CHECK: and <4 x i32>886// CHECK-LE: xor <4 x i32>887// CHECK-LE: and <4 x i32>888 889 res_vui = vec_vandc(vbi, vui);890// CHECK: xor <4 x i32>891// CHECK: and <4 x i32>892// CHECK-LE: xor <4 x i32>893// CHECK-LE: and <4 x i32>894 895 res_vui = vec_vandc(vui, vbi);896// CHECK: xor <4 x i32>897// CHECK: and <4 x i32>898// CHECK-LE: xor <4 x i32>899// CHECK-LE: and <4 x i32>900 901 res_vf = vec_vandc(vf, vf);902// CHECK: xor <4 x i32>903// CHECK: and <4 x i32>904// CHECK-LE: xor <4 x i32>905// CHECK-LE: and <4 x i32>906 907 res_vf = vec_vandc(vbi, vf);908// CHECK: xor <4 x i32>909// CHECK: and <4 x i32>910// CHECK-LE: xor <4 x i32>911// CHECK-LE: and <4 x i32>912 913 res_vf = vec_vandc(vf, vbi);914// CHECK: xor <4 x i32>915// CHECK: and <4 x i32>916// CHECK-LE: xor <4 x i32>917// CHECK-LE: and <4 x i32>918 919}920 921// CHECK-LABEL: define{{.*}} void @test2922void test2() {923 /* vec_avg */924 res_vsc = vec_avg(vsc, vsc);925// CHECK: @llvm.ppc.altivec.vavgsb926// CHECK-LE: @llvm.ppc.altivec.vavgsb927 928 res_vuc = vec_avg(vuc, vuc);929// CHECK: @llvm.ppc.altivec.vavgub930// CHECK-LE: @llvm.ppc.altivec.vavgub931 932 res_vs = vec_avg(vs, vs);933// CHECK: @llvm.ppc.altivec.vavgsh934// CHECK-LE: @llvm.ppc.altivec.vavgsh935 936 res_vus = vec_avg(vus, vus);937// CHECK: @llvm.ppc.altivec.vavguh938// CHECK-LE: @llvm.ppc.altivec.vavguh939 940 res_vi = vec_avg(vi, vi);941// CHECK: @llvm.ppc.altivec.vavgsw942// CHECK-LE: @llvm.ppc.altivec.vavgsw943 944 res_vui = vec_avg(vui, vui);945// CHECK: @llvm.ppc.altivec.vavguw946// CHECK-LE: @llvm.ppc.altivec.vavguw947 948 res_vsc = vec_vavgsb(vsc, vsc);949// CHECK: @llvm.ppc.altivec.vavgsb950// CHECK-LE: @llvm.ppc.altivec.vavgsb951 952 res_vuc = vec_vavgub(vuc, vuc);953// CHECK: @llvm.ppc.altivec.vavgub954// CHECK-LE: @llvm.ppc.altivec.vavgub955 956 res_vs = vec_vavgsh(vs, vs);957// CHECK: @llvm.ppc.altivec.vavgsh958// CHECK-LE: @llvm.ppc.altivec.vavgsh959 960 res_vus = vec_vavguh(vus, vus);961// CHECK: @llvm.ppc.altivec.vavguh962// CHECK-LE: @llvm.ppc.altivec.vavguh963 964 res_vi = vec_vavgsw(vi, vi);965// CHECK: @llvm.ppc.altivec.vavgsw966// CHECK-LE: @llvm.ppc.altivec.vavgsw967 968 res_vui = vec_vavguw(vui, vui);969// CHECK: @llvm.ppc.altivec.vavguw970// CHECK-LE: @llvm.ppc.altivec.vavguw971 972 /* vec_ceil */973 res_vf = vec_ceil(vf);974// CHECK: @llvm.ppc.altivec.vrfip975// CHECK-LE: @llvm.ppc.altivec.vrfip976 977 res_vf = vec_vrfip(vf);978// CHECK: @llvm.ppc.altivec.vrfip979// CHECK-LE: @llvm.ppc.altivec.vrfip980 981 /* vec_cmpb */982 res_vi = vec_cmpb(vf, vf);983// CHECK: @llvm.ppc.altivec.vcmpbfp984// CHECK-LE: @llvm.ppc.altivec.vcmpbfp985 986 res_vi = vec_vcmpbfp(vf, vf);987// CHECK: @llvm.ppc.altivec.vcmpbfp988// CHECK-LE: @llvm.ppc.altivec.vcmpbfp989 990 /* vec_cmpeq */991 res_vbc = vec_cmpeq(vsc, vsc);992// CHECK: @llvm.ppc.altivec.vcmpequb993// CHECK-LE: @llvm.ppc.altivec.vcmpequb994 995 res_vbc = vec_cmpeq(vuc, vuc);996// CHECK: @llvm.ppc.altivec.vcmpequb997// CHECK-LE: @llvm.ppc.altivec.vcmpequb998 999 res_vbc = vec_cmpeq(vbc, vbc);1000// CHECK: @llvm.ppc.altivec.vcmpequb1001// CHECK-LE: @llvm.ppc.altivec.vcmpequb1002 1003 res_vbc = vec_cmpeq(vbc, vbc);1004// CHECK: @llvm.ppc.altivec.vcmpequb1005// CHECK-LE: @llvm.ppc.altivec.vcmpequb1006 1007 res_vbs = vec_cmpeq(vs, vs);1008// CHECK: @llvm.ppc.altivec.vcmpequh1009// CHECK-LE: @llvm.ppc.altivec.vcmpequh1010 1011 res_vbs = vec_cmpeq(vus, vus);1012// CHECK: @llvm.ppc.altivec.vcmpequh1013// CHECK-LE: @llvm.ppc.altivec.vcmpequh1014 1015 res_vbs = vec_cmpeq(vbs, vbs);1016// CHECK: @llvm.ppc.altivec.vcmpequh1017// CHECK-LE: @llvm.ppc.altivec.vcmpequh1018 1019 res_vbs = vec_cmpeq(vbs, vbs);1020// CHECK: @llvm.ppc.altivec.vcmpequh1021// CHECK-LE: @llvm.ppc.altivec.vcmpequh1022 1023 res_vbi = vec_cmpeq(vi, vi);1024// CHECK: @llvm.ppc.altivec.vcmpequw1025// CHECK-LE: @llvm.ppc.altivec.vcmpequw1026 1027 res_vbi = vec_cmpeq(vui, vui);1028// CHECK: @llvm.ppc.altivec.vcmpequw1029// CHECK-LE: @llvm.ppc.altivec.vcmpequw1030 1031 res_vbi = vec_cmpeq(vbi, vbi);1032// CHECK: @llvm.ppc.altivec.vcmpequw1033// CHECK-LE: @llvm.ppc.altivec.vcmpequw1034 1035 res_vbi = vec_cmpeq(vbi, vbi);1036// CHECK: @llvm.ppc.altivec.vcmpequw1037// CHECK-LE: @llvm.ppc.altivec.vcmpequw1038 1039 res_vbi = vec_cmpeq(vf, vf);1040// CHECK: @llvm.ppc.altivec.vcmpeqfp1041// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp1042 1043 /* vec_cmpne */1044 res_vbc = vec_cmpne(vsc, vsc);1045// CHECK: @llvm.ppc.altivec.vcmpequb1046// CHECK: xor1047// CHECK-LE: @llvm.ppc.altivec.vcmpequb1048// CHECK-LE: xor1049 1050 res_vbc = vec_cmpne(vuc, vuc);1051// CHECK: @llvm.ppc.altivec.vcmpequb1052// CHECK: xor1053// CHECK-LE: @llvm.ppc.altivec.vcmpequb1054// CHECK-LE: xor1055 1056 res_vbc = vec_cmpne(vbc, vbc);1057// CHECK: @llvm.ppc.altivec.vcmpequb1058// CHECK: xor1059// CHECK-LE: @llvm.ppc.altivec.vcmpequb1060// CHECK-LE: xor1061 1062 res_vbc = vec_cmpne(vbc, vbc);1063// CHECK: @llvm.ppc.altivec.vcmpequb1064// CHECK: xor1065// CHECK-LE: @llvm.ppc.altivec.vcmpequb1066// CHECK-LE: xor1067 1068 res_vbs = vec_cmpne(vs, vs);1069// CHECK: @llvm.ppc.altivec.vcmpequh1070// CHECK: xor1071// CHECK-LE: @llvm.ppc.altivec.vcmpequh1072// CHECK-LE: xor1073 1074 res_vbs = vec_cmpne(vus, vus);1075// CHECK: @llvm.ppc.altivec.vcmpequh1076// CHECK: xor1077// CHECK-LE: @llvm.ppc.altivec.vcmpequh1078// CHECK-LE: xor1079 1080 res_vbs = vec_cmpne(vbs, vbs);1081// CHECK: @llvm.ppc.altivec.vcmpequh1082// CHECK: xor1083// CHECK-LE: @llvm.ppc.altivec.vcmpequh1084// CHECK-LE: xor1085 1086 res_vbs = vec_cmpne(vbs, vbs);1087// CHECK: @llvm.ppc.altivec.vcmpequh1088// CHECK: xor1089// CHECK-LE: @llvm.ppc.altivec.vcmpequh1090// CHECK-LE: xor1091 1092 res_vbi = vec_cmpne(vi, vi);1093// CHECK: @llvm.ppc.altivec.vcmpequw1094// CHECK: xor1095// CHECK-LE: @llvm.ppc.altivec.vcmpequw1096// CHECK-LE: xor1097 1098 res_vbi = vec_cmpne(vui, vui);1099// CHECK: @llvm.ppc.altivec.vcmpequw1100// CHECK: xor1101// CHECK-LE: @llvm.ppc.altivec.vcmpequw1102// CHECK-LE: xor1103 1104 res_vbi = vec_cmpne(vbi, vbi);1105// CHECK: @llvm.ppc.altivec.vcmpequw1106// CHECK: xor1107// CHECK-LE: @llvm.ppc.altivec.vcmpequw1108// CHECK-LE: xor1109 1110 res_vbi = vec_cmpne(vbi, vbi);1111// CHECK: @llvm.ppc.altivec.vcmpequw1112// CHECK: xor1113// CHECK-LE: @llvm.ppc.altivec.vcmpequw1114// CHECK-LE: xor1115 1116 res_vbi = vec_cmpne(vf, vf);1117// CHECK: @llvm.ppc.altivec.vcmpeqfp1118// CHECK: xor1119// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp1120// CHECK-LE: xor1121 1122 /* vec_cmpge */1123 res_vbc = vec_cmpge(vsc, vsc);1124// CHECK: @llvm.ppc.altivec.vcmpgtsb1125// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb1126 1127 res_vbc = vec_cmpge(vuc, vuc);1128// CHECK: @llvm.ppc.altivec.vcmpgtub1129// CHECK-LE: @llvm.ppc.altivec.vcmpgtub1130 1131 res_vbs = vec_cmpge(vs, vs);1132// CHECK: @llvm.ppc.altivec.vcmpgtsh1133// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh1134 1135 res_vbs = vec_cmpge(vus, vus);1136// CHECK: @llvm.ppc.altivec.vcmpgtuh1137// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh1138 1139 res_vbi = vec_cmpge(vi, vi);1140// CHECK: @llvm.ppc.altivec.vcmpgtsw1141// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw1142 1143 res_vbi = vec_cmpge(vui, vui);1144// CHECK: @llvm.ppc.altivec.vcmpgtuw1145// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw1146 1147 res_vbi = vec_cmpge(vf, vf);1148// CHECK: @llvm.ppc.altivec.vcmpgefp1149// CHECK-LE: @llvm.ppc.altivec.vcmpgefp1150 1151 res_vbi = vec_vcmpgefp(vf, vf);1152// CHECK: @llvm.ppc.altivec.vcmpgefp1153// CHECK-LE: @llvm.ppc.altivec.vcmpgefp1154}1155 1156// CHECK-LABEL: define{{.*}} void @test51157void test5() {1158 1159 /* vec_cmpgt */1160 res_vbc = vec_cmpgt(vsc, vsc);1161// CHECK: @llvm.ppc.altivec.vcmpgtsb1162// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb1163 1164 res_vbc = vec_cmpgt(vuc, vuc);1165// CHECK: @llvm.ppc.altivec.vcmpgtub1166// CHECK-LE: @llvm.ppc.altivec.vcmpgtub1167 1168 res_vbs = vec_cmpgt(vs, vs);1169// CHECK: @llvm.ppc.altivec.vcmpgtsh1170// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh1171 1172 res_vbs = vec_cmpgt(vus, vus);1173// CHECK: @llvm.ppc.altivec.vcmpgtuh1174// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh1175 1176 res_vbi = vec_cmpgt(vi, vi);1177// CHECK: @llvm.ppc.altivec.vcmpgtsw1178// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw1179 1180 res_vbi = vec_cmpgt(vui, vui);1181// CHECK: @llvm.ppc.altivec.vcmpgtuw1182// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw1183 1184 res_vbi = vec_cmpgt(vf, vf);1185// CHECK: @llvm.ppc.altivec.vcmpgtfp1186// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp1187 1188 res_vbc = vec_vcmpgtsb(vsc, vsc);1189// CHECK: @llvm.ppc.altivec.vcmpgtsb1190// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb1191 1192 res_vbc = vec_vcmpgtub(vuc, vuc);1193// CHECK: @llvm.ppc.altivec.vcmpgtub1194// CHECK-LE: @llvm.ppc.altivec.vcmpgtub1195 1196 res_vbs = vec_vcmpgtsh(vs, vs);1197// CHECK: @llvm.ppc.altivec.vcmpgtsh1198// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh1199 1200 res_vbs = vec_vcmpgtuh(vus, vus);1201// CHECK: @llvm.ppc.altivec.vcmpgtuh1202// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh1203 1204 res_vbi = vec_vcmpgtsw(vi, vi);1205// CHECK: @llvm.ppc.altivec.vcmpgtsw1206// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw1207 1208 res_vbi = vec_vcmpgtuw(vui, vui);1209// CHECK: @llvm.ppc.altivec.vcmpgtuw1210// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw1211 1212 res_vbi = vec_vcmpgtfp(vf, vf);1213// CHECK: @llvm.ppc.altivec.vcmpgtfp1214// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp1215 1216 /* vec_cmple */1217 res_vbc = vec_cmple(vsc, vsc);1218// CHECK: @llvm.ppc.altivec.vcmpgtsb1219// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb1220 1221 res_vbc = vec_cmple(vuc, vuc);1222// CHECK: @llvm.ppc.altivec.vcmpgtub1223// CHECK-LE: @llvm.ppc.altivec.vcmpgtub1224 1225 res_vbs = vec_cmple(vs, vs);1226// CHECK: @llvm.ppc.altivec.vcmpgtsh1227// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh1228 1229 res_vbs = vec_cmple(vus, vus);1230// CHECK: @llvm.ppc.altivec.vcmpgtuh1231// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh1232 1233 res_vbi = vec_cmple(vi, vi);1234// CHECK: @llvm.ppc.altivec.vcmpgtsw1235// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw1236 1237 res_vbi = vec_cmple(vui, vui);1238// CHECK: @llvm.ppc.altivec.vcmpgtuw1239// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw1240 1241 res_vbi = vec_cmple(vf, vf);1242// CHECK: @llvm.ppc.altivec.vcmpgefp1243// CHECK-LE: @llvm.ppc.altivec.vcmpgefp1244}1245 1246// CHECK-LABEL: define{{.*}} void @test61247void test6() {1248 /* vec_cmplt */1249 res_vbc = vec_cmplt(vsc, vsc);1250// CHECK: @llvm.ppc.altivec.vcmpgtsb1251// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb1252 1253 res_vbc = vec_cmplt(vuc, vuc);1254// CHECK: @llvm.ppc.altivec.vcmpgtub1255// CHECK-LE: @llvm.ppc.altivec.vcmpgtub1256 1257 res_vbs = vec_cmplt(vs, vs);1258// CHECK: @llvm.ppc.altivec.vcmpgtsh1259// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh1260 1261 res_vbs = vec_cmplt(vus, vus);1262// CHECK: @llvm.ppc.altivec.vcmpgtuh1263// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh1264 1265 res_vbi = vec_cmplt(vi, vi);1266// CHECK: @llvm.ppc.altivec.vcmpgtsw1267// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw1268 1269 res_vbi = vec_cmplt(vui, vui);1270// CHECK: @llvm.ppc.altivec.vcmpgtuw1271// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw1272 1273 res_vbi = vec_cmplt(vf, vf);1274// CHECK: @llvm.ppc.altivec.vcmpgtfp1275// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp1276 1277 /* vec_ctf */1278 res_vf = vec_ctf(vi, 0);1279// CHECK: @llvm.ppc.altivec.vcfsx1280// CHECK-LE: @llvm.ppc.altivec.vcfsx1281 1282 res_vf = vec_ctf(vui, 0);1283// CHECK: @llvm.ppc.altivec.vcfux1284// CHECK-LE: @llvm.ppc.altivec.vcfux1285 1286 res_vf = vec_vcfsx(vi, 0);1287// CHECK: @llvm.ppc.altivec.vcfsx1288// CHECK-LE: @llvm.ppc.altivec.vcfsx1289 1290 res_vf = vec_vcfux(vui, 0);1291// CHECK: @llvm.ppc.altivec.vcfux1292// CHECK-LE: @llvm.ppc.altivec.vcfux1293 1294 /* vec_cts */1295 res_vi = vec_cts(vf, 0);1296// CHECK: @llvm.ppc.altivec.vctsxs1297// CHECK-LE: @llvm.ppc.altivec.vctsxs1298 1299 res_vi = vec_vctsxs(vf, 0);1300// CHECK: @llvm.ppc.altivec.vctsxs1301// CHECK-LE: @llvm.ppc.altivec.vctsxs1302 1303 /* vec_ctu */1304 res_vui = vec_ctu(vf, 0);1305// CHECK: @llvm.ppc.altivec.vctuxs1306// CHECK-LE: @llvm.ppc.altivec.vctuxs1307 1308 res_vui = vec_vctuxs(vf, 0);1309// CHECK: @llvm.ppc.altivec.vctuxs1310// CHECK-LE: @llvm.ppc.altivec.vctuxs1311 1312 res_vi = vec_signed(vf);1313// CHECK: fptosi <4 x float>1314// CHECK-LE: fptosi <4 x float>1315 1316 res_vui = vec_unsigned(vf);1317// CHECK: fptoui <4 x float>1318// CHECK-LE: fptoui <4 x float>1319 1320 res_vf = vec_float(vi);1321// CHECK: sitofp <4 x i32>1322// CHECK-LE: sitofp <4 x i32>1323 1324 res_vf = vec_float(vui);1325// CHECK: uitofp <4 x i32>1326// CHECK-LE: uitofp <4 x i32>1327 1328 /* vec_div */1329 res_vsc = vec_div(vsc, vsc);1330// CHECK: sdiv <16 x i8>1331// CHECK-LE: sdiv <16 x i8>1332 1333 res_vuc = vec_div(vuc, vuc);1334// CHECK: udiv <16 x i8>1335// CHECK-LE: udiv <16 x i8>1336 1337 res_vs = vec_div(vs, vs);1338// CHECK: sdiv <8 x i16>1339// CHECK-LE: sdiv <8 x i16>1340 1341 res_vus = vec_div(vus, vus);1342// CHECK: udiv <8 x i16>1343// CHECK-LE: udiv <8 x i16>1344 1345 res_vi = vec_div(vi, vi);1346// CHECK: sdiv <4 x i32>1347// CHECK-LE: sdiv <4 x i32>1348 1349 res_vui = vec_div(vui, vui);1350// CHECK: udiv <4 x i32>1351// CHECK-LE: udiv <4 x i32>1352 1353 /* vec_dss */1354 vec_dss(0);1355// CHECK: @llvm.ppc.altivec.dss1356// CHECK-LE: @llvm.ppc.altivec.dss1357 1358 /* vec_dssall */1359 vec_dssall();1360// CHECK: @llvm.ppc.altivec.dssall1361// CHECK-LE: @llvm.ppc.altivec.dssall1362 1363 /* vec_dst */1364 vec_dst(&vsc, 0, 0);1365// CHECK: @llvm.ppc.altivec.dst1366// CHECK-LE: @llvm.ppc.altivec.dst1367 1368 /* vec_dstst */1369 vec_dstst(&vs, 0, 0);1370// CHECK: @llvm.ppc.altivec.dstst1371// CHECK-LE: @llvm.ppc.altivec.dstst1372 1373 /* vec_dststt */1374 vec_dststt(¶m_i, 0, 0);1375// CHECK: @llvm.ppc.altivec.dststt1376// CHECK-LE: @llvm.ppc.altivec.dststt1377 1378 /* vec_dstt */1379 vec_dstt(&vf, 0, 0);1380// CHECK: @llvm.ppc.altivec.dstt1381// CHECK-LE: @llvm.ppc.altivec.dstt1382 1383 /* vec_expte */1384 res_vf = vec_expte(vf);1385// CHECK: @llvm.ppc.altivec.vexptefp1386// CHECK-LE: @llvm.ppc.altivec.vexptefp1387 1388 res_vf = vec_vexptefp(vf);1389// CHECK: @llvm.ppc.altivec.vexptefp1390// CHECK-LE: @llvm.ppc.altivec.vexptefp1391 1392 /* vec_floor */1393 res_vf = vec_floor(vf);1394// CHECK: @llvm.ppc.altivec.vrfim1395// CHECK-LE: @llvm.ppc.altivec.vrfim1396 1397 res_vf = vec_vrfim(vf);1398// CHECK: @llvm.ppc.altivec.vrfim1399// CHECK-LE: @llvm.ppc.altivec.vrfim1400 1401 /* vec_ld */1402 res_vsc = vec_ld(0, &vsc);1403// CHECK: @llvm.ppc.altivec.lvx1404// CHECK-LE: @llvm.ppc.altivec.lvx1405 1406 res_vsc = vec_ld(0, param_sc_ld);1407// CHECK: @llvm.ppc.altivec.lvx1408// CHECK-LE: @llvm.ppc.altivec.lvx1409 1410 res_vuc = vec_ld(0, &vuc);1411// CHECK: @llvm.ppc.altivec.lvx1412// CHECK-LE: @llvm.ppc.altivec.lvx1413 1414 res_vuc = vec_ld(0, param_uc_ld);1415// CHECK: @llvm.ppc.altivec.lvx1416// CHECK-LE: @llvm.ppc.altivec.lvx1417 1418 res_vbc = vec_ld(0, &vbc);1419// CHECK: @llvm.ppc.altivec.lvx1420// CHECK-LE: @llvm.ppc.altivec.lvx1421 1422 res_vs = vec_ld(0, &vs);1423// CHECK: @llvm.ppc.altivec.lvx1424// CHECK-LE: @llvm.ppc.altivec.lvx1425 1426 res_vs = vec_ld(0, param_s_ld);1427// CHECK: @llvm.ppc.altivec.lvx1428// CHECK-LE: @llvm.ppc.altivec.lvx1429 1430 res_vus = vec_ld(0, &vus);1431// CHECK: @llvm.ppc.altivec.lvx1432// CHECK-LE: @llvm.ppc.altivec.lvx1433 1434 res_vus = vec_ld(0, param_us_ld);1435// CHECK: @llvm.ppc.altivec.lvx1436// CHECK-LE: @llvm.ppc.altivec.lvx1437 1438 res_vbs = vec_ld(0, &vbs);1439// CHECK: @llvm.ppc.altivec.lvx1440// CHECK-LE: @llvm.ppc.altivec.lvx1441 1442 res_vp = vec_ld(0, &vp);1443// CHECK: @llvm.ppc.altivec.lvx1444// CHECK-LE: @llvm.ppc.altivec.lvx1445 1446 res_vi = vec_ld(0, &vi);1447// CHECK: @llvm.ppc.altivec.lvx1448// CHECK-LE: @llvm.ppc.altivec.lvx1449 1450 res_vi = vec_ld(0, param_i_ld);1451// CHECK: @llvm.ppc.altivec.lvx1452// CHECK-LE: @llvm.ppc.altivec.lvx1453 1454 res_vui = vec_ld(0, &vui);1455// CHECK: @llvm.ppc.altivec.lvx1456// CHECK-LE: @llvm.ppc.altivec.lvx1457 1458 res_vui = vec_ld(0, param_ui_ld);1459// CHECK: @llvm.ppc.altivec.lvx1460// CHECK-LE: @llvm.ppc.altivec.lvx1461 1462 res_vbi = vec_ld(0, &vbi);1463// CHECK: @llvm.ppc.altivec.lvx1464// CHECK-LE: @llvm.ppc.altivec.lvx1465 1466 res_vf = vec_ld(0, &vf);1467// CHECK: @llvm.ppc.altivec.lvx1468// CHECK-LE: @llvm.ppc.altivec.lvx1469 1470 res_vf = vec_ld(0, param_f_ld);1471// CHECK: @llvm.ppc.altivec.lvx1472// CHECK-LE: @llvm.ppc.altivec.lvx1473 1474 res_vsc = vec_lvx(0, &vsc);1475// CHECK: @llvm.ppc.altivec.lvx1476// CHECK-LE: @llvm.ppc.altivec.lvx1477 1478 res_vsc = vec_lvx(0, param_sc_ld);1479// CHECK: @llvm.ppc.altivec.lvx1480// CHECK-LE: @llvm.ppc.altivec.lvx1481 1482 res_vuc = vec_lvx(0, &vuc);1483// CHECK: @llvm.ppc.altivec.lvx1484// CHECK-LE: @llvm.ppc.altivec.lvx1485 1486 res_vuc = vec_lvx(0, param_uc_ld);1487// CHECK: @llvm.ppc.altivec.lvx1488// CHECK-LE: @llvm.ppc.altivec.lvx1489 1490 res_vbc = vec_lvx(0, &vbc);1491// CHECK: @llvm.ppc.altivec.lvx1492// CHECK-LE: @llvm.ppc.altivec.lvx1493 1494 res_vs = vec_lvx(0, &vs);1495// CHECK: @llvm.ppc.altivec.lvx1496// CHECK-LE: @llvm.ppc.altivec.lvx1497 1498 res_vs = vec_lvx(0, param_s_ld);1499// CHECK: @llvm.ppc.altivec.lvx1500// CHECK-LE: @llvm.ppc.altivec.lvx1501 1502 res_vus = vec_lvx(0, &vus);1503// CHECK: @llvm.ppc.altivec.lvx1504// CHECK-LE: @llvm.ppc.altivec.lvx1505 1506 res_vus = vec_lvx(0, param_us_ld);1507// CHECK: @llvm.ppc.altivec.lvx1508// CHECK-LE: @llvm.ppc.altivec.lvx1509 1510 res_vbs = vec_lvx(0, &vbs);1511// CHECK: @llvm.ppc.altivec.lvx1512// CHECK-LE: @llvm.ppc.altivec.lvx1513 1514 res_vp = vec_lvx(0, &vp);1515// CHECK: @llvm.ppc.altivec.lvx1516// CHECK-LE: @llvm.ppc.altivec.lvx1517 1518 res_vi = vec_lvx(0, &vi);1519// CHECK: @llvm.ppc.altivec.lvx1520// CHECK-LE: @llvm.ppc.altivec.lvx1521 1522 res_vi = vec_lvx(0, param_i_ld);1523// CHECK: @llvm.ppc.altivec.lvx1524// CHECK-LE: @llvm.ppc.altivec.lvx1525 1526 res_vui = vec_lvx(0, &vui);1527// CHECK: @llvm.ppc.altivec.lvx1528// CHECK-LE: @llvm.ppc.altivec.lvx1529 1530 res_vui = vec_lvx(0, param_ui_ld);1531// CHECK: @llvm.ppc.altivec.lvx1532// CHECK-LE: @llvm.ppc.altivec.lvx1533 1534 res_vbi = vec_lvx(0, &vbi);1535// CHECK: @llvm.ppc.altivec.lvx1536// CHECK-LE: @llvm.ppc.altivec.lvx1537 1538 res_vf = vec_lvx(0, &vf);1539// CHECK: @llvm.ppc.altivec.lvx1540// CHECK-LE: @llvm.ppc.altivec.lvx1541 1542 res_vf = vec_lvx(0, param_f_ld);1543// CHECK: @llvm.ppc.altivec.lvx1544// CHECK-LE: @llvm.ppc.altivec.lvx1545 1546 /* vec_lde */1547 res_vsc = vec_lde(0, param_sc_ld);1548// CHECK: @llvm.ppc.altivec.lvebx1549// CHECK-LE: @llvm.ppc.altivec.lvebx1550 1551 res_vuc = vec_lde(0, param_uc_ld);1552// CHECK: @llvm.ppc.altivec.lvebx1553// CHECK-LE: @llvm.ppc.altivec.lvebx1554 1555 res_vs = vec_lde(0, param_s_ld);1556// CHECK: @llvm.ppc.altivec.lvehx1557// CHECK-LE: @llvm.ppc.altivec.lvehx1558 1559 res_vus = vec_lde(0, param_us_ld);1560// CHECK: @llvm.ppc.altivec.lvehx1561// CHECK-LE: @llvm.ppc.altivec.lvehx1562 1563 res_vi = vec_lde(0, param_i_ld);1564// CHECK: @llvm.ppc.altivec.lvewx1565// CHECK-LE: @llvm.ppc.altivec.lvewx1566 1567 res_vui = vec_lde(0, param_ui_ld);1568// CHECK: @llvm.ppc.altivec.lvewx1569// CHECK-LE: @llvm.ppc.altivec.lvewx1570 1571 res_vf = vec_lde(0, param_f_ld);1572// CHECK: @llvm.ppc.altivec.lvewx1573// CHECK-LE: @llvm.ppc.altivec.lvewx1574 1575 res_vsc = vec_lvebx(0, param_sc_ld);1576// CHECK: @llvm.ppc.altivec.lvebx1577// CHECK-LE: @llvm.ppc.altivec.lvebx1578 1579 res_vuc = vec_lvebx(0, param_uc_ld);1580// CHECK: @llvm.ppc.altivec.lvebx1581// CHECK-LE: @llvm.ppc.altivec.lvebx1582 1583 res_vs = vec_lvehx(0, param_s_ld);1584// CHECK: @llvm.ppc.altivec.lvehx1585// CHECK-LE: @llvm.ppc.altivec.lvehx1586 1587 res_vus = vec_lvehx(0, param_us_ld);1588// CHECK: @llvm.ppc.altivec.lvehx1589// CHECK-LE: @llvm.ppc.altivec.lvehx1590 1591 res_vi = vec_lvewx(0, param_i_ld);1592// CHECK: @llvm.ppc.altivec.lvewx1593// CHECK-LE: @llvm.ppc.altivec.lvewx1594 1595 res_vui = vec_lvewx(0, param_ui_ld);1596// CHECK: @llvm.ppc.altivec.lvewx1597// CHECK-LE: @llvm.ppc.altivec.lvewx1598 1599 res_vf = vec_lvewx(0, param_f_ld);1600// CHECK: @llvm.ppc.altivec.lvewx1601// CHECK-LE: @llvm.ppc.altivec.lvewx1602 1603 /* vec_ldl */1604 res_vsc = vec_ldl(0, &vsc);1605// CHECK: @llvm.ppc.altivec.lvxl1606// CHECK-LE: @llvm.ppc.altivec.lvxl1607 1608 res_vsc = vec_ldl(0, param_sc_ld);1609// CHECK: @llvm.ppc.altivec.lvxl1610// CHECK-LE: @llvm.ppc.altivec.lvxl1611 1612 res_vuc = vec_ldl(0, &vuc);1613// CHECK: @llvm.ppc.altivec.lvxl1614// CHECK-LE: @llvm.ppc.altivec.lvxl1615 1616 res_vuc = vec_ldl(0, param_uc_ld);1617// CHECK: @llvm.ppc.altivec.lvxl1618// CHECK-LE: @llvm.ppc.altivec.lvxl1619 1620 res_vbc = vec_ldl(0, &vbc);1621// CHECK: @llvm.ppc.altivec.lvxl1622// CHECK-LE: @llvm.ppc.altivec.lvxl1623 1624 res_vs = vec_ldl(0, &vs);1625// CHECK: @llvm.ppc.altivec.lvxl1626// CHECK-LE: @llvm.ppc.altivec.lvxl1627 1628 res_vs = vec_ldl(0, param_s_ld);1629// CHECK: @llvm.ppc.altivec.lvxl1630// CHECK-LE: @llvm.ppc.altivec.lvxl1631 1632 res_vus = vec_ldl(0, &vus);1633// CHECK: @llvm.ppc.altivec.lvxl1634// CHECK-LE: @llvm.ppc.altivec.lvxl1635 1636 res_vus = vec_ldl(0, param_us_ld);1637// CHECK: @llvm.ppc.altivec.lvxl1638// CHECK-LE: @llvm.ppc.altivec.lvxl1639 1640 res_vbs = vec_ldl(0, &vbs);1641// CHECK: @llvm.ppc.altivec.lvxl1642// CHECK-LE: @llvm.ppc.altivec.lvxl1643 1644 res_vp = vec_ldl(0, &vp);1645// CHECK: @llvm.ppc.altivec.lvxl1646// CHECK-LE: @llvm.ppc.altivec.lvxl1647 1648 res_vi = vec_ldl(0, &vi);1649// CHECK: @llvm.ppc.altivec.lvxl1650// CHECK-LE: @llvm.ppc.altivec.lvxl1651 1652 res_vi = vec_ldl(0, param_i_ld);1653// CHECK: @llvm.ppc.altivec.lvxl1654// CHECK-LE: @llvm.ppc.altivec.lvxl1655 1656 res_vui = vec_ldl(0, &vui);1657// CHECK: @llvm.ppc.altivec.lvxl1658// CHECK-LE: @llvm.ppc.altivec.lvxl1659 1660 res_vui = vec_ldl(0, param_ui_ld);1661// CHECK: @llvm.ppc.altivec.lvxl1662// CHECK-LE: @llvm.ppc.altivec.lvxl1663 1664 res_vbi = vec_ldl(0, &vbi);1665// CHECK: @llvm.ppc.altivec.lvxl1666// CHECK-LE: @llvm.ppc.altivec.lvxl1667 1668 res_vf = vec_ldl(0, &vf);1669// CHECK: @llvm.ppc.altivec.lvxl1670// CHECK-LE: @llvm.ppc.altivec.lvxl1671 1672 res_vf = vec_ldl(0, param_f_ld);1673// CHECK: @llvm.ppc.altivec.lvxl1674// CHECK-LE: @llvm.ppc.altivec.lvxl1675 1676 res_vsc = vec_lvxl(0, &vsc);1677// CHECK: @llvm.ppc.altivec.lvxl1678// CHECK-LE: @llvm.ppc.altivec.lvxl1679 1680 res_vsc = vec_lvxl(0, param_sc_ld);1681// CHECK: @llvm.ppc.altivec.lvxl1682// CHECK-LE: @llvm.ppc.altivec.lvxl1683 1684 res_vuc = vec_lvxl(0, &vuc);1685// CHECK: @llvm.ppc.altivec.lvxl1686// CHECK-LE: @llvm.ppc.altivec.lvxl1687 1688 res_vbc = vec_lvxl(0, &vbc);1689// CHECK: @llvm.ppc.altivec.lvxl1690// CHECK-LE: @llvm.ppc.altivec.lvxl1691 1692 res_vuc = vec_lvxl(0, param_uc_ld);1693// CHECK: @llvm.ppc.altivec.lvxl1694// CHECK-LE: @llvm.ppc.altivec.lvxl1695 1696 res_vs = vec_lvxl(0, &vs);1697// CHECK: @llvm.ppc.altivec.lvxl1698// CHECK-LE: @llvm.ppc.altivec.lvxl1699 1700 res_vs = vec_lvxl(0, param_s_ld);1701// CHECK: @llvm.ppc.altivec.lvxl1702// CHECK-LE: @llvm.ppc.altivec.lvxl1703 1704 res_vus = vec_lvxl(0, &vus);1705// CHECK: @llvm.ppc.altivec.lvxl1706// CHECK-LE: @llvm.ppc.altivec.lvxl1707 1708 res_vus = vec_lvxl(0, param_us_ld);1709// CHECK: @llvm.ppc.altivec.lvxl1710// CHECK-LE: @llvm.ppc.altivec.lvxl1711 1712 res_vbs = vec_lvxl(0, &vbs);1713// CHECK: @llvm.ppc.altivec.lvxl1714// CHECK-LE: @llvm.ppc.altivec.lvxl1715 1716 res_vp = vec_lvxl(0, &vp);1717// CHECK: @llvm.ppc.altivec.lvxl1718// CHECK-LE: @llvm.ppc.altivec.lvxl1719 1720 res_vi = vec_lvxl(0, &vi);1721// CHECK: @llvm.ppc.altivec.lvxl1722// CHECK-LE: @llvm.ppc.altivec.lvxl1723 1724 res_vi = vec_lvxl(0, param_i_ld);1725// CHECK: @llvm.ppc.altivec.lvxl1726// CHECK-LE: @llvm.ppc.altivec.lvxl1727 1728 res_vui = vec_lvxl(0, &vui);1729// CHECK: @llvm.ppc.altivec.lvxl1730// CHECK-LE: @llvm.ppc.altivec.lvxl1731 1732 res_vui = vec_lvxl(0, param_ui_ld);1733// CHECK: @llvm.ppc.altivec.lvxl1734// CHECK-LE: @llvm.ppc.altivec.lvxl1735 1736 res_vbi = vec_lvxl(0, &vbi);1737// CHECK: @llvm.ppc.altivec.lvxl1738// CHECK-LE: @llvm.ppc.altivec.lvxl1739 1740 res_vf = vec_lvxl(0, &vf);1741// CHECK: @llvm.ppc.altivec.lvxl1742// CHECK-LE: @llvm.ppc.altivec.lvxl1743 1744 res_vf = vec_lvxl(0, param_f_ld);1745// CHECK: @llvm.ppc.altivec.lvxl1746// CHECK-LE: @llvm.ppc.altivec.lvxl1747 1748 /* vec_loge */1749 res_vf = vec_loge(vf);1750// CHECK: @llvm.ppc.altivec.vlogefp1751// CHECK-LE: @llvm.ppc.altivec.vlogefp1752 1753 res_vf = vec_vlogefp(vf);1754// CHECK: @llvm.ppc.altivec.vlogefp1755// CHECK-LE: @llvm.ppc.altivec.vlogefp1756 1757 /* vec_lvsl */1758 res_vuc = vec_lvsl(0, param_i_ld);1759// CHECK: @llvm.ppc.altivec.lvsl1760// CHECK-LE: @llvm.ppc.altivec.lvsl1761 1762 /* vec_lvsr */1763 res_vuc = vec_lvsr(0, param_i_ld);1764// CHECK: @llvm.ppc.altivec.lvsr1765// CHECK-LE: @llvm.ppc.altivec.lvsr1766 1767 /* vec_madd */1768 res_vf =vec_madd(vf, vf, vf);1769// CHECK: @llvm.ppc.altivec.vmaddfp1770// CHECK-LE: @llvm.ppc.altivec.vmaddfp1771 1772 res_vf = vec_vmaddfp(vf, vf, vf);1773// CHECK: @llvm.ppc.altivec.vmaddfp1774// CHECK-LE: @llvm.ppc.altivec.vmaddfp1775 1776 /* vec_madds */1777 res_vs = vec_madds(vs, vs, vs);1778// CHECK: @llvm.ppc.altivec.vmhaddshs1779// CHECK-LE: @llvm.ppc.altivec.vmhaddshs1780 1781 res_vs = vec_vmhaddshs(vs, vs, vs);1782// CHECK: @llvm.ppc.altivec.vmhaddshs1783// CHECK-LE: @llvm.ppc.altivec.vmhaddshs1784 1785 /* vec_max */1786 res_vsc = vec_max(vsc, vsc);1787// CHECK: @llvm.ppc.altivec.vmaxsb1788// CHECK-LE: @llvm.ppc.altivec.vmaxsb1789 1790 res_vsc = vec_max(vbc, vsc);1791// CHECK: @llvm.ppc.altivec.vmaxsb1792// CHECK-LE: @llvm.ppc.altivec.vmaxsb1793 1794 res_vsc = vec_max(vsc, vbc);1795// CHECK: @llvm.ppc.altivec.vmaxsb1796// CHECK-LE: @llvm.ppc.altivec.vmaxsb1797 1798 res_vuc = vec_max(vuc, vuc);1799// CHECK: @llvm.ppc.altivec.vmaxub1800// CHECK-LE: @llvm.ppc.altivec.vmaxub1801 1802 res_vuc = vec_max(vbc, vuc);1803// CHECK: @llvm.ppc.altivec.vmaxub1804// CHECK-LE: @llvm.ppc.altivec.vmaxub1805 1806 res_vuc = vec_max(vuc, vbc);1807// CHECK: @llvm.ppc.altivec.vmaxub1808// CHECK-LE: @llvm.ppc.altivec.vmaxub1809 1810 res_vs = vec_max(vs, vs);1811// CHECK: @llvm.ppc.altivec.vmaxsh1812// CHECK-LE: @llvm.ppc.altivec.vmaxsh1813 1814 res_vs = vec_max(vbs, vs);1815// CHECK: @llvm.ppc.altivec.vmaxsh1816// CHECK-LE: @llvm.ppc.altivec.vmaxsh1817 1818 res_vs = vec_max(vs, vbs);1819// CHECK: @llvm.ppc.altivec.vmaxsh1820// CHECK-LE: @llvm.ppc.altivec.vmaxsh1821 1822 res_vus = vec_max(vus, vus);1823// CHECK: @llvm.ppc.altivec.vmaxuh1824// CHECK-LE: @llvm.ppc.altivec.vmaxuh1825 1826 res_vus = vec_max(vbs, vus);1827// CHECK: @llvm.ppc.altivec.vmaxuh1828// CHECK-LE: @llvm.ppc.altivec.vmaxuh1829 1830 res_vus = vec_max(vus, vbs);1831// CHECK: @llvm.ppc.altivec.vmaxuh1832// CHECK-LE: @llvm.ppc.altivec.vmaxuh1833 1834 res_vi = vec_max(vi, vi);1835// CHECK: @llvm.ppc.altivec.vmaxsw1836// CHECK-LE: @llvm.ppc.altivec.vmaxsw1837 1838 res_vi = vec_max(vbi, vi);1839// CHECK: @llvm.ppc.altivec.vmaxsw1840// CHECK-LE: @llvm.ppc.altivec.vmaxsw1841 1842 res_vi = vec_max(vi, vbi);1843// CHECK: @llvm.ppc.altivec.vmaxsw1844// CHECK-LE: @llvm.ppc.altivec.vmaxsw1845 1846 res_vui = vec_max(vui, vui);1847// CHECK: @llvm.ppc.altivec.vmaxuw1848// CHECK-LE: @llvm.ppc.altivec.vmaxuw1849 1850 res_vui = vec_max(vbi, vui);1851// CHECK: @llvm.ppc.altivec.vmaxuw1852// CHECK-LE: @llvm.ppc.altivec.vmaxuw1853 1854 res_vui = vec_max(vui, vbi);1855// CHECK: @llvm.ppc.altivec.vmaxuw1856// CHECK-LE: @llvm.ppc.altivec.vmaxuw1857 1858 res_vf = vec_max(vf, vf);1859// CHECK: @llvm.ppc.altivec.vmaxfp1860// CHECK-LE: @llvm.ppc.altivec.vmaxfp1861 1862 res_vsc = vec_vmaxsb(vsc, vsc);1863// CHECK: @llvm.ppc.altivec.vmaxsb1864// CHECK-LE: @llvm.ppc.altivec.vmaxsb1865 1866 res_vsc = vec_vmaxsb(vbc, vsc);1867// CHECK: @llvm.ppc.altivec.vmaxsb1868// CHECK-LE: @llvm.ppc.altivec.vmaxsb1869 1870 res_vsc = vec_vmaxsb(vsc, vbc);1871// CHECK: @llvm.ppc.altivec.vmaxsb1872// CHECK-LE: @llvm.ppc.altivec.vmaxsb1873 1874 res_vuc = vec_vmaxub(vuc, vuc);1875// CHECK: @llvm.ppc.altivec.vmaxub1876// CHECK-LE: @llvm.ppc.altivec.vmaxub1877 1878 res_vuc = vec_vmaxub(vbc, vuc);1879// CHECK: @llvm.ppc.altivec.vmaxub1880// CHECK-LE: @llvm.ppc.altivec.vmaxub1881 1882 res_vuc = vec_vmaxub(vuc, vbc);1883// CHECK: @llvm.ppc.altivec.vmaxub1884// CHECK-LE: @llvm.ppc.altivec.vmaxub1885 1886 res_vs = vec_vmaxsh(vs, vs);1887// CHECK: @llvm.ppc.altivec.vmaxsh1888// CHECK-LE: @llvm.ppc.altivec.vmaxsh1889 1890 res_vs = vec_vmaxsh(vbs, vs);1891// CHECK: @llvm.ppc.altivec.vmaxsh1892// CHECK-LE: @llvm.ppc.altivec.vmaxsh1893 1894 res_vs = vec_vmaxsh(vs, vbs);1895// CHECK: @llvm.ppc.altivec.vmaxsh1896// CHECK-LE: @llvm.ppc.altivec.vmaxsh1897 1898 res_vus = vec_vmaxuh(vus, vus);1899// CHECK: @llvm.ppc.altivec.vmaxuh1900// CHECK-LE: @llvm.ppc.altivec.vmaxuh1901 1902 res_vus = vec_vmaxuh(vbs, vus);1903// CHECK: @llvm.ppc.altivec.vmaxuh1904// CHECK-LE: @llvm.ppc.altivec.vmaxuh1905 1906 res_vus = vec_vmaxuh(vus, vbs);1907// CHECK: @llvm.ppc.altivec.vmaxuh1908// CHECK-LE: @llvm.ppc.altivec.vmaxuh1909 1910 res_vi = vec_vmaxsw(vi, vi);1911// CHECK: @llvm.ppc.altivec.vmaxsw1912// CHECK-LE: @llvm.ppc.altivec.vmaxsw1913 1914 res_vi = vec_vmaxsw(vbi, vi);1915// CHECK: @llvm.ppc.altivec.vmaxsw1916// CHECK-LE: @llvm.ppc.altivec.vmaxsw1917 1918 res_vi = vec_vmaxsw(vi, vbi);1919// CHECK: @llvm.ppc.altivec.vmaxsw1920// CHECK-LE: @llvm.ppc.altivec.vmaxsw1921 1922 res_vui = vec_vmaxuw(vui, vui);1923// CHECK: @llvm.ppc.altivec.vmaxuw1924// CHECK-LE: @llvm.ppc.altivec.vmaxuw1925 1926 res_vui = vec_vmaxuw(vbi, vui);1927// CHECK: @llvm.ppc.altivec.vmaxuw1928// CHECK-LE: @llvm.ppc.altivec.vmaxuw1929 1930 res_vui = vec_vmaxuw(vui, vbi);1931// CHECK: @llvm.ppc.altivec.vmaxuw1932// CHECK-LE: @llvm.ppc.altivec.vmaxuw1933 1934 res_vf = vec_vmaxfp(vf, vf);1935// CHECK: @llvm.ppc.altivec.vmaxfp1936// CHECK-LE: @llvm.ppc.altivec.vmaxfp1937 1938 /* vec_mergeh */1939 res_vsc = vec_mergeh(vsc, vsc);1940// CHECK: @llvm.ppc.altivec.vperm1941// CHECK-LE: @llvm.ppc.altivec.vperm1942 1943 res_vuc = vec_mergeh(vuc, vuc);1944// CHECK: @llvm.ppc.altivec.vperm1945// CHECK-LE: @llvm.ppc.altivec.vperm1946 1947 res_vbc = vec_mergeh(vbc, vbc);1948// CHECK: @llvm.ppc.altivec.vperm1949// CHECK-LE: @llvm.ppc.altivec.vperm1950 1951 res_vs = vec_mergeh(vs, vs);1952// CHECK: @llvm.ppc.altivec.vperm1953// CHECK-LE: @llvm.ppc.altivec.vperm1954 1955 res_vp = vec_mergeh(vp, vp);1956// CHECK: @llvm.ppc.altivec.vperm1957// CHECK-LE: @llvm.ppc.altivec.vperm1958 1959 res_vus = vec_mergeh(vus, vus);1960// CHECK: @llvm.ppc.altivec.vperm1961// CHECK-LE: @llvm.ppc.altivec.vperm1962 1963 res_vbs = vec_mergeh(vbs, vbs);1964// CHECK: @llvm.ppc.altivec.vperm1965// CHECK-LE: @llvm.ppc.altivec.vperm1966 1967 res_vi = vec_mergeh(vi, vi);1968// CHECK: @llvm.ppc.altivec.vperm1969// CHECK-LE: @llvm.ppc.altivec.vperm1970 1971 res_vui = vec_mergeh(vui, vui);1972// CHECK: @llvm.ppc.altivec.vperm1973// CHECK-LE: @llvm.ppc.altivec.vperm1974 1975 res_vbi = vec_mergeh(vbi, vbi);1976// CHECK: @llvm.ppc.altivec.vperm1977// CHECK-LE: @llvm.ppc.altivec.vperm1978 1979 res_vf = vec_mergeh(vf, vf);1980// CHECK: @llvm.ppc.altivec.vperm1981// CHECK-LE: @llvm.ppc.altivec.vperm1982 1983 res_vsc = vec_vmrghb(vsc, vsc);1984// CHECK: @llvm.ppc.altivec.vperm1985// CHECK-LE: @llvm.ppc.altivec.vperm1986 1987 res_vuc = vec_vmrghb(vuc, vuc);1988// CHECK: @llvm.ppc.altivec.vperm1989// CHECK-LE: @llvm.ppc.altivec.vperm1990 1991 res_vbc = vec_vmrghb(vbc, vbc);1992// CHECK: @llvm.ppc.altivec.vperm1993// CHECK-LE: @llvm.ppc.altivec.vperm1994 1995 res_vs = vec_vmrghh(vs, vs);1996// CHECK: @llvm.ppc.altivec.vperm1997// CHECK-LE: @llvm.ppc.altivec.vperm1998 1999 res_vp = vec_vmrghh(vp, vp);2000// CHECK: @llvm.ppc.altivec.vperm2001// CHECK-LE: @llvm.ppc.altivec.vperm2002 2003 res_vus = vec_vmrghh(vus, vus);2004// CHECK: @llvm.ppc.altivec.vperm2005// CHECK-LE: @llvm.ppc.altivec.vperm2006 2007 res_vbs = vec_vmrghh(vbs, vbs);2008// CHECK: @llvm.ppc.altivec.vperm2009// CHECK-LE: @llvm.ppc.altivec.vperm2010 2011 res_vi = vec_vmrghw(vi, vi);2012// CHECK: @llvm.ppc.altivec.vperm2013// CHECK-LE: @llvm.ppc.altivec.vperm2014 2015 res_vui = vec_vmrghw(vui, vui);2016// CHECK: @llvm.ppc.altivec.vperm2017// CHECK-LE: @llvm.ppc.altivec.vperm2018 2019 res_vbi = vec_vmrghw(vbi, vbi);2020// CHECK: @llvm.ppc.altivec.vperm2021// CHECK-LE: @llvm.ppc.altivec.vperm2022 2023 res_vf = vec_vmrghw(vf, vf);2024// CHECK: @llvm.ppc.altivec.vperm2025// CHECK-LE: @llvm.ppc.altivec.vperm2026 2027 /* vec_mergel */2028 res_vsc = vec_mergel(vsc, vsc);2029// CHECK: @llvm.ppc.altivec.vperm2030// CHECK-LE: @llvm.ppc.altivec.vperm2031 2032 res_vuc = vec_mergel(vuc, vuc);2033// CHECK: @llvm.ppc.altivec.vperm2034// CHECK-LE: @llvm.ppc.altivec.vperm2035 2036 res_vbc = vec_mergel(vbc, vbc);2037// CHECK: @llvm.ppc.altivec.vperm2038// CHECK-LE: @llvm.ppc.altivec.vperm2039 2040 res_vs = vec_mergel(vs, vs);2041// CHECK: @llvm.ppc.altivec.vperm2042// CHECK-LE: @llvm.ppc.altivec.vperm2043 2044 res_vp = vec_mergeh(vp, vp);2045// CHECK: @llvm.ppc.altivec.vperm2046// CHECK-LE: @llvm.ppc.altivec.vperm2047 2048 res_vus = vec_mergel(vus, vus);2049// CHECK: @llvm.ppc.altivec.vperm2050// CHECK-LE: @llvm.ppc.altivec.vperm2051 2052 res_vbs = vec_mergel(vbs, vbs);2053// CHECK: @llvm.ppc.altivec.vperm2054// CHECK-LE: @llvm.ppc.altivec.vperm2055 2056 res_vi = vec_mergel(vi, vi);2057// CHECK: @llvm.ppc.altivec.vperm2058// CHECK-LE: @llvm.ppc.altivec.vperm2059 2060 res_vui = vec_mergel(vui, vui);2061// CHECK: @llvm.ppc.altivec.vperm2062// CHECK-LE: @llvm.ppc.altivec.vperm2063 2064 res_vbi = vec_mergel(vbi, vbi);2065// CHECK: @llvm.ppc.altivec.vperm2066// CHECK-LE: @llvm.ppc.altivec.vperm2067 2068 res_vf = vec_mergel(vf, vf);2069// CHECK: @llvm.ppc.altivec.vperm2070// CHECK-LE: @llvm.ppc.altivec.vperm2071 2072 res_vsc = vec_vmrglb(vsc, vsc);2073// CHECK: @llvm.ppc.altivec.vperm2074// CHECK-LE: @llvm.ppc.altivec.vperm2075 2076 res_vuc = vec_vmrglb(vuc, vuc);2077// CHECK: @llvm.ppc.altivec.vperm2078// CHECK-LE: @llvm.ppc.altivec.vperm2079 2080 res_vbc = vec_vmrglb(vbc, vbc);2081// CHECK: @llvm.ppc.altivec.vperm2082// CHECK-LE: @llvm.ppc.altivec.vperm2083 2084 res_vs = vec_vmrglh(vs, vs);2085// CHECK: @llvm.ppc.altivec.vperm2086// CHECK-LE: @llvm.ppc.altivec.vperm2087 2088 res_vp = vec_vmrglh(vp, vp);2089// CHECK: @llvm.ppc.altivec.vperm2090// CHECK-LE: @llvm.ppc.altivec.vperm2091 2092 res_vus = vec_vmrglh(vus, vus);2093// CHECK: @llvm.ppc.altivec.vperm2094// CHECK-LE: @llvm.ppc.altivec.vperm2095 2096 res_vbs = vec_vmrglh(vbs, vbs);2097// CHECK: @llvm.ppc.altivec.vperm2098// CHECK-LE: @llvm.ppc.altivec.vperm2099 2100 res_vi = vec_vmrglw(vi, vi);2101// CHECK: @llvm.ppc.altivec.vperm2102// CHECK-LE: @llvm.ppc.altivec.vperm2103 2104 res_vui = vec_vmrglw(vui, vui);2105// CHECK: @llvm.ppc.altivec.vperm2106// CHECK-LE: @llvm.ppc.altivec.vperm2107 2108 res_vbi = vec_vmrglw(vbi, vbi);2109// CHECK: @llvm.ppc.altivec.vperm2110// CHECK-LE: @llvm.ppc.altivec.vperm2111 2112 res_vf = vec_vmrglw(vf, vf);2113// CHECK: @llvm.ppc.altivec.vperm2114// CHECK-LE: @llvm.ppc.altivec.vperm2115 2116 /* vec_mfvscr */2117 vus = vec_mfvscr();2118// CHECK: @llvm.ppc.altivec.mfvscr2119// CHECK-LE: @llvm.ppc.altivec.mfvscr2120 2121 /* vec_min */2122 res_vsc = vec_min(vsc, vsc);2123// CHECK: @llvm.ppc.altivec.vminsb2124// CHECK-LE: @llvm.ppc.altivec.vminsb2125 2126 res_vsc = vec_min(vbc, vsc);2127// CHECK: @llvm.ppc.altivec.vminsb2128// CHECK-LE: @llvm.ppc.altivec.vminsb2129 2130 res_vsc = vec_min(vsc, vbc);2131// CHECK: @llvm.ppc.altivec.vminsb2132// CHECK-LE: @llvm.ppc.altivec.vminsb2133 2134 res_vuc = vec_min(vuc, vuc);2135// CHECK: @llvm.ppc.altivec.vminub2136// CHECK-LE: @llvm.ppc.altivec.vminub2137 2138 res_vuc = vec_min(vbc, vuc);2139// CHECK: @llvm.ppc.altivec.vminub2140// CHECK-LE: @llvm.ppc.altivec.vminub2141 2142 res_vuc = vec_min(vuc, vbc);2143// CHECK: @llvm.ppc.altivec.vminub2144// CHECK-LE: @llvm.ppc.altivec.vminub2145 2146 res_vs = vec_min(vs, vs);2147// CHECK: @llvm.ppc.altivec.vminsh2148// CHECK-LE: @llvm.ppc.altivec.vminsh2149 2150 res_vs = vec_min(vbs, vs);2151// CHECK: @llvm.ppc.altivec.vminsh2152// CHECK-LE: @llvm.ppc.altivec.vminsh2153 2154 res_vs = vec_min(vs, vbs);2155// CHECK: @llvm.ppc.altivec.vminsh2156// CHECK-LE: @llvm.ppc.altivec.vminsh2157 2158 res_vus = vec_min(vus, vus);2159// CHECK: @llvm.ppc.altivec.vminuh2160// CHECK-LE: @llvm.ppc.altivec.vminuh2161 2162 res_vus = vec_min(vbs, vus);2163// CHECK: @llvm.ppc.altivec.vminuh2164// CHECK-LE: @llvm.ppc.altivec.vminuh2165 2166 res_vus = vec_min(vus, vbs);2167// CHECK: @llvm.ppc.altivec.vminuh2168// CHECK-LE: @llvm.ppc.altivec.vminuh2169 2170 res_vi = vec_min(vi, vi);2171// CHECK: @llvm.ppc.altivec.vminsw2172// CHECK-LE: @llvm.ppc.altivec.vminsw2173 2174 res_vi = vec_min(vbi, vi);2175// CHECK: @llvm.ppc.altivec.vminsw2176// CHECK-LE: @llvm.ppc.altivec.vminsw2177 2178 res_vi = vec_min(vi, vbi);2179// CHECK: @llvm.ppc.altivec.vminsw2180// CHECK-LE: @llvm.ppc.altivec.vminsw2181 2182 res_vui = vec_min(vui, vui);2183// CHECK: @llvm.ppc.altivec.vminuw2184// CHECK-LE: @llvm.ppc.altivec.vminuw2185 2186 res_vui = vec_min(vbi, vui);2187// CHECK: @llvm.ppc.altivec.vminuw2188// CHECK-LE: @llvm.ppc.altivec.vminuw2189 2190 res_vui = vec_min(vui, vbi);2191// CHECK: @llvm.ppc.altivec.vminuw2192// CHECK-LE: @llvm.ppc.altivec.vminuw2193 2194 res_vf = vec_min(vf, vf);2195// CHECK: @llvm.ppc.altivec.vminfp2196// CHECK-LE: @llvm.ppc.altivec.vminfp2197 2198 res_vsc = vec_vminsb(vsc, vsc);2199// CHECK: @llvm.ppc.altivec.vminsb2200// CHECK-LE: @llvm.ppc.altivec.vminsb2201 2202 res_vsc = vec_vminsb(vbc, vsc);2203// CHECK: @llvm.ppc.altivec.vminsb2204// CHECK-LE: @llvm.ppc.altivec.vminsb2205 2206 res_vsc = vec_vminsb(vsc, vbc);2207// CHECK: @llvm.ppc.altivec.vminsb2208// CHECK-LE: @llvm.ppc.altivec.vminsb2209 2210 res_vuc = vec_vminub(vuc, vuc);2211// CHECK: @llvm.ppc.altivec.vminub2212// CHECK-LE: @llvm.ppc.altivec.vminub2213 2214 res_vuc = vec_vminub(vbc, vuc);2215// CHECK: @llvm.ppc.altivec.vminub2216// CHECK-LE: @llvm.ppc.altivec.vminub2217 2218 res_vuc = vec_vminub(vuc, vbc);2219// CHECK: @llvm.ppc.altivec.vminub2220// CHECK-LE: @llvm.ppc.altivec.vminub2221 2222 res_vs = vec_vminsh(vs, vs);2223// CHECK: @llvm.ppc.altivec.vminsh2224// CHECK-LE: @llvm.ppc.altivec.vminsh2225 2226 res_vs = vec_vminsh(vbs, vs);2227// CHECK: @llvm.ppc.altivec.vminsh2228// CHECK-LE: @llvm.ppc.altivec.vminsh2229 2230 res_vs = vec_vminsh(vs, vbs);2231// CHECK: @llvm.ppc.altivec.vminsh2232// CHECK-LE: @llvm.ppc.altivec.vminsh2233 2234 res_vus = vec_vminuh(vus, vus);2235// CHECK: @llvm.ppc.altivec.vminuh2236// CHECK-LE: @llvm.ppc.altivec.vminuh2237 2238 res_vus = vec_vminuh(vbs, vus);2239// CHECK: @llvm.ppc.altivec.vminuh2240// CHECK-LE: @llvm.ppc.altivec.vminuh2241 2242 res_vus = vec_vminuh(vus, vbs);2243// CHECK: @llvm.ppc.altivec.vminuh2244// CHECK-LE: @llvm.ppc.altivec.vminuh2245 2246 res_vi = vec_vminsw(vi, vi);2247// CHECK: @llvm.ppc.altivec.vminsw2248// CHECK-LE: @llvm.ppc.altivec.vminsw2249 2250 res_vi = vec_vminsw(vbi, vi);2251// CHECK: @llvm.ppc.altivec.vminsw2252// CHECK-LE: @llvm.ppc.altivec.vminsw2253 2254 res_vi = vec_vminsw(vi, vbi);2255// CHECK: @llvm.ppc.altivec.vminsw2256// CHECK-LE: @llvm.ppc.altivec.vminsw2257 2258 res_vui = vec_vminuw(vui, vui);2259// CHECK: @llvm.ppc.altivec.vminuw2260// CHECK-LE: @llvm.ppc.altivec.vminuw2261 2262 res_vui = vec_vminuw(vbi, vui);2263// CHECK: @llvm.ppc.altivec.vminuw2264// CHECK-LE: @llvm.ppc.altivec.vminuw2265 2266 res_vui = vec_vminuw(vui, vbi);2267// CHECK: @llvm.ppc.altivec.vminuw2268// CHECK-LE: @llvm.ppc.altivec.vminuw2269 2270 res_vf = vec_vminfp(vf, vf);2271// CHECK: @llvm.ppc.altivec.vminfp2272// CHECK-LE: @llvm.ppc.altivec.vminfp2273 2274 /* vec_mladd */2275 res_vus = vec_mladd(vus, vus, vus);2276// CHECK: mul <8 x i16>2277// CHECK: add <8 x i16>2278// CHECK-LE: mul <8 x i16>2279// CHECK-LE: add <8 x i16>2280 2281 res_vs = vec_mladd(vus, vs, vs);2282// CHECK: mul <8 x i16>2283// CHECK: add <8 x i16>2284// CHECK-LE: mul <8 x i16>2285// CHECK-LE: add <8 x i16>2286 2287 res_vs = vec_mladd(vs, vus, vus);2288// CHECK: mul <8 x i16>2289// CHECK: add <8 x i16>2290// CHECK-LE: mul <8 x i16>2291// CHECK-LE: add <8 x i16>2292 2293 res_vs = vec_mladd(vs, vs, vs);2294// CHECK: mul <8 x i16>2295// CHECK: add <8 x i16>2296// CHECK-LE: mul <8 x i16>2297// CHECK-LE: add <8 x i16>2298 2299 /* vec_mradds */2300 res_vs = vec_mradds(vs, vs, vs);2301// CHECK: @llvm.ppc.altivec.vmhraddshs2302// CHECK-LE: @llvm.ppc.altivec.vmhraddshs2303 2304 res_vs = vec_vmhraddshs(vs, vs, vs);2305// CHECK: @llvm.ppc.altivec.vmhraddshs2306// CHECK-LE: @llvm.ppc.altivec.vmhraddshs2307 2308 /* vec_msum */2309 res_vi = vec_msum(vsc, vuc, vi);2310// CHECK: @llvm.ppc.altivec.vmsummbm2311// CHECK-LE: @llvm.ppc.altivec.vmsummbm2312 2313 res_vui = vec_msum(vuc, vuc, vui);2314// CHECK: @llvm.ppc.altivec.vmsumubm2315// CHECK-LE: @llvm.ppc.altivec.vmsumubm2316 2317 res_vi = vec_msum(vs, vs, vi);2318// CHECK: @llvm.ppc.altivec.vmsumshm2319// CHECK-LE: @llvm.ppc.altivec.vmsumshm2320 2321 res_vui = vec_msum(vus, vus, vui);2322// CHECK: @llvm.ppc.altivec.vmsumuhm2323// CHECK-LE: @llvm.ppc.altivec.vmsumuhm2324 2325 res_vi = vec_vmsummbm(vsc, vuc, vi);2326// CHECK: @llvm.ppc.altivec.vmsummbm2327// CHECK-LE: @llvm.ppc.altivec.vmsummbm2328 2329 res_vui = vec_vmsumubm(vuc, vuc, vui);2330// CHECK: @llvm.ppc.altivec.vmsumubm2331// CHECK-LE: @llvm.ppc.altivec.vmsumubm2332 2333 res_vi = vec_vmsumshm(vs, vs, vi);2334// CHECK: @llvm.ppc.altivec.vmsumshm2335// CHECK-LE: @llvm.ppc.altivec.vmsumshm2336 2337 res_vui = vec_vmsumuhm(vus, vus, vui);2338// CHECK: @llvm.ppc.altivec.vmsumuhm2339// CHECK-LE: @llvm.ppc.altivec.vmsumuhm2340 2341 /* vec_msums */2342 res_vi = vec_msums(vs, vs, vi);2343// CHECK: @llvm.ppc.altivec.vmsumshs2344// CHECK-LE: @llvm.ppc.altivec.vmsumshs2345 2346 res_vui = vec_msums(vus, vus, vui);2347// CHECK: @llvm.ppc.altivec.vmsumuhs2348// CHECK-LE: @llvm.ppc.altivec.vmsumuhs2349 2350 res_vi = vec_vmsumshs(vs, vs, vi);2351// CHECK: @llvm.ppc.altivec.vmsumshs2352// CHECK-LE: @llvm.ppc.altivec.vmsumshs2353 2354 res_vui = vec_vmsumuhs(vus, vus, vui);2355// CHECK: @llvm.ppc.altivec.vmsumuhs2356// CHECK-LE: @llvm.ppc.altivec.vmsumuhs2357 2358 /* vec_mtvscr */2359 vec_mtvscr(vsc);2360// CHECK: @llvm.ppc.altivec.mtvscr2361// CHECK-LE: @llvm.ppc.altivec.mtvscr2362 2363 vec_mtvscr(vuc);2364// CHECK: @llvm.ppc.altivec.mtvscr2365// CHECK-LE: @llvm.ppc.altivec.mtvscr2366 2367 vec_mtvscr(vbc);2368// CHECK: @llvm.ppc.altivec.mtvscr2369// CHECK-LE: @llvm.ppc.altivec.mtvscr2370 2371 vec_mtvscr(vs);2372// CHECK: @llvm.ppc.altivec.mtvscr2373// CHECK-LE: @llvm.ppc.altivec.mtvscr2374 2375 vec_mtvscr(vus);2376// CHECK: @llvm.ppc.altivec.mtvscr2377// CHECK-LE: @llvm.ppc.altivec.mtvscr2378 2379 vec_mtvscr(vbs);2380// CHECK: @llvm.ppc.altivec.mtvscr2381// CHECK-LE: @llvm.ppc.altivec.mtvscr2382 2383 vec_mtvscr(vp);2384// CHECK: @llvm.ppc.altivec.mtvscr2385// CHECK-LE: @llvm.ppc.altivec.mtvscr2386 2387 vec_mtvscr(vi);2388// CHECK: @llvm.ppc.altivec.mtvscr2389// CHECK-LE: @llvm.ppc.altivec.mtvscr2390 2391 vec_mtvscr(vui);2392// CHECK: @llvm.ppc.altivec.mtvscr2393// CHECK-LE: @llvm.ppc.altivec.mtvscr2394 2395 vec_mtvscr(vbi);2396// CHECK: @llvm.ppc.altivec.mtvscr2397// CHECK-LE: @llvm.ppc.altivec.mtvscr2398 2399 /* vec_mul */2400 res_vsc = vec_mul(vsc, vsc);2401// CHECK: mul <16 x i8>2402// CHECK-LE: mul <16 x i8>2403 2404 res_vuc = vec_mul(vuc, vuc);2405// CHECK: mul <16 x i8>2406// CHECK-LE: mul <16 x i8>2407 2408 res_vs = vec_mul(vs, vs);2409// CHECK: mul <8 x i16>2410// CHECK-LE: mul <8 x i16>2411 2412 res_vus = vec_mul(vus, vus);2413// CHECK: mul <8 x i16>2414// CHECK-LE: mul <8 x i16>2415 2416 res_vi = vec_mul(vi, vi);2417// CHECK: mul <4 x i32>2418// CHECK-LE: mul <4 x i32>2419 2420 res_vui = vec_mul(vui, vui);2421// CHECK: mul <4 x i32>2422// CHECK-LE: mul <4 x i32>2423 2424 /* vec_mule */2425 res_vs = vec_mule(vsc, vsc);2426// CHECK: @llvm.ppc.altivec.vmulesb2427// CHECK-LE: @llvm.ppc.altivec.vmulosb2428 2429 res_vus = vec_mule(vuc, vuc);2430// CHECK: @llvm.ppc.altivec.vmuleub2431// CHECK-LE: @llvm.ppc.altivec.vmuloub2432 2433 res_vi = vec_mule(vs, vs);2434// CHECK: @llvm.ppc.altivec.vmulesh2435// CHECK-LE: @llvm.ppc.altivec.vmulosh2436 2437 res_vui = vec_mule(vus, vus);2438// CHECK: @llvm.ppc.altivec.vmuleuh2439// CHECK-LE: @llvm.ppc.altivec.vmulouh2440 2441 res_vs = vec_vmulesb(vsc, vsc);2442// CHECK: @llvm.ppc.altivec.vmulesb2443// CHECK-LE: @llvm.ppc.altivec.vmulosb2444 2445 res_vus = vec_vmuleub(vuc, vuc);2446// CHECK: @llvm.ppc.altivec.vmuleub2447// CHECK-LE: @llvm.ppc.altivec.vmuloub2448 2449 res_vi = vec_vmulesh(vs, vs);2450// CHECK: @llvm.ppc.altivec.vmulesh2451// CHECK-LE: @llvm.ppc.altivec.vmulosh2452 2453 res_vui = vec_vmuleuh(vus, vus);2454// CHECK: @llvm.ppc.altivec.vmuleuh2455// CHECK-LE: @llvm.ppc.altivec.vmulouh2456 2457 /* vec_mulo */2458 res_vs = vec_mulo(vsc, vsc);2459// CHECK: @llvm.ppc.altivec.vmulosb2460// CHECK-LE: @llvm.ppc.altivec.vmulesb2461 2462 res_vus = vec_mulo(vuc, vuc);2463// CHECK: @llvm.ppc.altivec.vmuloub2464// CHECK-LE: @llvm.ppc.altivec.vmuleub2465 2466 res_vi = vec_mulo(vs, vs);2467// CHECK: @llvm.ppc.altivec.vmulosh2468// CHECK-LE: @llvm.ppc.altivec.vmulesh2469 2470 res_vui = vec_mulo(vus, vus);2471// CHECK: @llvm.ppc.altivec.vmulouh2472// CHECK-LE: @llvm.ppc.altivec.vmuleuh2473 2474 res_vs = vec_vmulosb(vsc, vsc);2475// CHECK: @llvm.ppc.altivec.vmulosb2476// CHECK-LE: @llvm.ppc.altivec.vmulesb2477 2478 res_vus = vec_vmuloub(vuc, vuc);2479// CHECK: @llvm.ppc.altivec.vmuloub2480// CHECK-LE: @llvm.ppc.altivec.vmuleub2481 2482 res_vi = vec_vmulosh(vs, vs);2483// CHECK: @llvm.ppc.altivec.vmulosh2484// CHECK-LE: @llvm.ppc.altivec.vmulesh2485 2486 res_vui = vec_vmulouh(vus, vus);2487// CHECK: @llvm.ppc.altivec.vmulouh2488// CHECK-LE: @llvm.ppc.altivec.vmuleuh2489 2490 /* vec_nmsub */2491 res_vf = vec_nmsub(vf, vf, vf);2492// CHECK: @llvm.ppc.altivec.vnmsubfp2493// CHECK-LE: @llvm.ppc.altivec.vnmsubfp2494 2495 res_vf = vec_vnmsubfp(vf, vf, vf);2496// CHECK: @llvm.ppc.altivec.vnmsubfp2497// CHECK-LE: @llvm.ppc.altivec.vnmsubfp2498 2499 /* vec_nor */2500 res_vsc = vec_nor(vsc, vsc);2501// CHECK: or <16 x i8>2502// CHECK: xor <16 x i8>2503// CHECK-LE: or <16 x i8>2504// CHECK-LE: xor <16 x i8>2505 2506 res_vuc = vec_nor(vuc, vuc);2507// CHECK: or <16 x i8>2508// CHECK: xor <16 x i8>2509// CHECK-LE: or <16 x i8>2510// CHECK-LE: xor <16 x i8>2511 2512 res_vbc = vec_nor(vbc, vbc);2513// CHECK: or <16 x i8>2514// CHECK: xor <16 x i8>2515// CHECK-LE: or <16 x i8>2516// CHECK-LE: xor <16 x i8>2517 2518 res_vs = vec_nor(vs, vs);2519// CHECK: or <8 x i16>2520// CHECK: xor <8 x i16>2521// CHECK-LE: or <8 x i16>2522// CHECK-LE: xor <8 x i16>2523 2524 res_vus = vec_nor(vus, vus);2525// CHECK: or <8 x i16>2526// CHECK: xor <8 x i16>2527// CHECK-LE: or <8 x i16>2528// CHECK-LE: xor <8 x i16>2529 2530 res_vbs = vec_nor(vbs, vbs);2531// CHECK: or <8 x i16>2532// CHECK: xor <8 x i16>2533// CHECK-LE: or <8 x i16>2534// CHECK-LE: xor <8 x i16>2535 2536 res_vi = vec_nor(vi, vi);2537// CHECK: or <4 x i32>2538// CHECK: xor <4 x i32>2539// CHECK-LE: or <4 x i32>2540// CHECK-LE: xor <4 x i32>2541 2542 res_vui = vec_nor(vui, vui);2543// CHECK: or <4 x i32>2544// CHECK: xor <4 x i32>2545// CHECK-LE: or <4 x i32>2546// CHECK-LE: xor <4 x i32>2547 2548 res_vbi = vec_nor(vbi, vbi);2549// CHECK: or <4 x i32>2550// CHECK: xor <4 x i32>2551// CHECK-LE: or <4 x i32>2552// CHECK-LE: xor <4 x i32>2553 2554 res_vf = vec_nor(vf, vf);2555// CHECK: or <4 x i32>2556// CHECK: xor <4 x i32>2557// CHECK-LE: or <4 x i32>2558// CHECK-LE: xor <4 x i32>2559 2560 res_vsc = vec_vnor(vsc, vsc);2561// CHECK: or <16 x i8>2562// CHECK: xor <16 x i8>2563// CHECK-LE: or <16 x i8>2564// CHECK-LE: xor <16 x i8>2565 2566 res_vuc = vec_vnor(vuc, vuc);2567// CHECK: or <16 x i8>2568// CHECK: xor <16 x i8>2569// CHECK-LE: or <16 x i8>2570// CHECK-LE: xor <16 x i8>2571 2572 res_vbc = vec_vnor(vbc, vbc);2573// CHECK: or <16 x i8>2574// CHECK: xor <16 x i8>2575// CHECK-LE: or <16 x i8>2576// CHECK-LE: xor <16 x i8>2577 2578 res_vs = vec_vnor(vs, vs);2579// CHECK: or <8 x i16>2580// CHECK: xor <8 x i16>2581// CHECK-LE: or <8 x i16>2582// CHECK-LE: xor <8 x i16>2583 2584 res_vus = vec_vnor(vus, vus);2585// CHECK: or <8 x i16>2586// CHECK: xor <8 x i16>2587// CHECK-LE: or <8 x i16>2588// CHECK-LE: xor <8 x i16>2589 2590 res_vbs = vec_vnor(vbs, vbs);2591// CHECK: or <8 x i16>2592// CHECK: xor <8 x i16>2593// CHECK-LE: or <8 x i16>2594// CHECK-LE: xor <8 x i16>2595 2596 res_vi = vec_vnor(vi, vi);2597// CHECK: or <4 x i32>2598// CHECK: xor <4 x i32>2599// CHECK-LE: or <4 x i32>2600// CHECK-LE: xor <4 x i32>2601 2602 res_vui = vec_vnor(vui, vui);2603// CHECK: or <4 x i32>2604// CHECK: xor <4 x i32>2605// CHECK-LE: or <4 x i32>2606// CHECK-LE: xor <4 x i32>2607 2608 res_vbi = vec_vnor(vbi, vbi);2609// CHECK: or <4 x i32>2610// CHECK: xor <4 x i32>2611// CHECK-LE: or <4 x i32>2612// CHECK-LE: xor <4 x i32>2613 2614 res_vf = vec_vnor(vf, vf);2615// CHECK: or <4 x i32>2616// CHECK: xor <4 x i32>2617// CHECK-LE: or <4 x i32>2618// CHECK-LE: xor <4 x i32>2619 2620 /* vec_or */2621 res_vsc = vec_or(vsc, vsc);2622// CHECK: or <16 x i8>2623// CHECK-LE: or <16 x i8>2624 2625 res_vsc = vec_or(vbc, vsc);2626// CHECK: or <16 x i8>2627// CHECK-LE: or <16 x i8>2628 2629 res_vsc = vec_or(vsc, vbc);2630// CHECK: or <16 x i8>2631// CHECK-LE: or <16 x i8>2632 2633 res_vuc = vec_or(vuc, vuc);2634// CHECK: or <16 x i8>2635// CHECK-LE: or <16 x i8>2636 2637 res_vuc = vec_or(vbc, vuc);2638// CHECK: or <16 x i8>2639// CHECK-LE: or <16 x i8>2640 2641 res_vuc = vec_or(vuc, vbc);2642// CHECK: or <16 x i8>2643// CHECK-LE: or <16 x i8>2644 2645 res_vbc = vec_or(vbc, vbc);2646// CHECK: or <16 x i8>2647// CHECK-LE: or <16 x i8>2648 2649 res_vs = vec_or(vs, vs);2650// CHECK: or <8 x i16>2651// CHECK-LE: or <8 x i16>2652 2653 res_vs = vec_or(vbs, vs);2654// CHECK: or <8 x i16>2655// CHECK-LE: or <8 x i16>2656 2657 res_vs = vec_or(vs, vbs);2658// CHECK: or <8 x i16>2659// CHECK-LE: or <8 x i16>2660 2661 res_vus = vec_or(vus, vus);2662// CHECK: or <8 x i16>2663// CHECK-LE: or <8 x i16>2664 2665 res_vus = vec_or(vbs, vus);2666// CHECK: or <8 x i16>2667// CHECK-LE: or <8 x i16>2668 2669 res_vus = vec_or(vus, vbs);2670// CHECK: or <8 x i16>2671// CHECK-LE: or <8 x i16>2672 2673 res_vbs = vec_or(vbs, vbs);2674// CHECK: or <8 x i16>2675// CHECK-LE: or <8 x i16>2676 2677 res_vi = vec_or(vi, vi);2678// CHECK: or <4 x i32>2679// CHECK-LE: or <4 x i32>2680 2681 res_vi = vec_or(vbi, vi);2682// CHECK: or <4 x i32>2683// CHECK-LE: or <4 x i32>2684 2685 res_vi = vec_or(vi, vbi);2686// CHECK: or <4 x i32>2687// CHECK-LE: or <4 x i32>2688 2689 res_vui = vec_or(vui, vui);2690// CHECK: or <4 x i32>2691// CHECK-LE: or <4 x i32>2692 2693 res_vui = vec_or(vbi, vui);2694// CHECK: or <4 x i32>2695// CHECK-LE: or <4 x i32>2696 2697 res_vui = vec_or(vui, vbi);2698// CHECK: or <4 x i32>2699// CHECK-LE: or <4 x i32>2700 2701 res_vbi = vec_or(vbi, vbi);2702// CHECK: or <4 x i32>2703// CHECK-LE: or <4 x i32>2704 2705 res_vf = vec_or(vf, vf);2706// CHECK: or <4 x i32>2707// CHECK-LE: or <4 x i32>2708 2709 res_vf = vec_or(vbi, vf);2710// CHECK: or <4 x i32>2711// CHECK-LE: or <4 x i32>2712 2713 res_vf = vec_or(vf, vbi);2714// CHECK: or <4 x i32>2715// CHECK-LE: or <4 x i32>2716 2717 res_vsc = vec_vor(vsc, vsc);2718// CHECK: or <16 x i8>2719// CHECK-LE: or <16 x i8>2720 2721 res_vsc = vec_vor(vbc, vsc);2722// CHECK: or <16 x i8>2723// CHECK-LE: or <16 x i8>2724 2725 res_vsc = vec_vor(vsc, vbc);2726// CHECK: or <16 x i8>2727// CHECK-LE: or <16 x i8>2728 2729 res_vuc = vec_vor(vuc, vuc);2730// CHECK: or <16 x i8>2731// CHECK-LE: or <16 x i8>2732 2733 res_vuc = vec_vor(vbc, vuc);2734// CHECK: or <16 x i8>2735// CHECK-LE: or <16 x i8>2736 2737 res_vuc = vec_vor(vuc, vbc);2738// CHECK: or <16 x i8>2739// CHECK-LE: or <16 x i8>2740 2741 res_vbc = vec_vor(vbc, vbc);2742// CHECK: or <16 x i8>2743// CHECK-LE: or <16 x i8>2744 2745 res_vs = vec_vor(vs, vs);2746// CHECK: or <8 x i16>2747// CHECK-LE: or <8 x i16>2748 2749 res_vs = vec_vor(vbs, vs);2750// CHECK: or <8 x i16>2751// CHECK-LE: or <8 x i16>2752 2753 res_vs = vec_vor(vs, vbs);2754// CHECK: or <8 x i16>2755// CHECK-LE: or <8 x i16>2756 2757 res_vus = vec_vor(vus, vus);2758// CHECK: or <8 x i16>2759// CHECK-LE: or <8 x i16>2760 2761 res_vus = vec_vor(vbs, vus);2762// CHECK: or <8 x i16>2763// CHECK-LE: or <8 x i16>2764 2765 res_vus = vec_vor(vus, vbs);2766// CHECK: or <8 x i16>2767// CHECK-LE: or <8 x i16>2768 2769 res_vbs = vec_vor(vbs, vbs);2770// CHECK: or <8 x i16>2771// CHECK-LE: or <8 x i16>2772 2773 res_vi = vec_vor(vi, vi);2774// CHECK: or <4 x i32>2775// CHECK-LE: or <4 x i32>2776 2777 res_vi = vec_vor(vbi, vi);2778// CHECK: or <4 x i32>2779// CHECK-LE: or <4 x i32>2780 2781 res_vi = vec_vor(vi, vbi);2782// CHECK: or <4 x i32>2783// CHECK-LE: or <4 x i32>2784 2785 res_vui = vec_vor(vui, vui);2786// CHECK: or <4 x i32>2787// CHECK-LE: or <4 x i32>2788 2789 res_vui = vec_vor(vbi, vui);2790// CHECK: or <4 x i32>2791// CHECK-LE: or <4 x i32>2792 2793 res_vui = vec_vor(vui, vbi);2794// CHECK: or <4 x i32>2795// CHECK-LE: or <4 x i32>2796 2797 res_vbi = vec_vor(vbi, vbi);2798// CHECK: or <4 x i32>2799// CHECK-LE: or <4 x i32>2800 2801 res_vf = vec_vor(vf, vf);2802// CHECK: or <4 x i32>2803// CHECK-LE: or <4 x i32>2804 2805 res_vf = vec_vor(vbi, vf);2806// CHECK: or <4 x i32>2807// CHECK-LE: or <4 x i32>2808 2809 res_vf = vec_vor(vf, vbi);2810// CHECK: or <4 x i32>2811// CHECK-LE: or <4 x i32>2812 2813 /* vec_pack */2814 res_vsc = vec_pack(vs, vs);2815// CHECK: @llvm.ppc.altivec.vperm2816// CHECK-LE: @llvm.ppc.altivec.vperm2817 2818 res_vuc = vec_pack(vus, vus);2819// CHECK: @llvm.ppc.altivec.vperm2820// CHECK-LE: @llvm.ppc.altivec.vperm2821 2822 res_vbc = vec_pack(vbs, vbs);2823// CHECK: @llvm.ppc.altivec.vperm2824// CHECK-LE: @llvm.ppc.altivec.vperm2825 2826 res_vs = vec_pack(vi, vi);2827// CHECK: @llvm.ppc.altivec.vperm2828// CHECK-LE: @llvm.ppc.altivec.vperm2829 2830 res_vus = vec_pack(vui, vui);2831// CHECK: @llvm.ppc.altivec.vperm2832// CHECK-LE: @llvm.ppc.altivec.vperm2833 2834 res_vbs = vec_pack(vbi, vbi);2835// CHECK: @llvm.ppc.altivec.vperm2836// CHECK-LE: @llvm.ppc.altivec.vperm2837 2838 res_vsc = vec_vpkuhum(vs, vs);2839// CHECK: @llvm.ppc.altivec.vperm2840// CHECK-LE: @llvm.ppc.altivec.vperm2841 2842 res_vuc = vec_vpkuhum(vus, vus);2843// CHECK: @llvm.ppc.altivec.vperm2844// CHECK-LE: @llvm.ppc.altivec.vperm2845 2846 res_vbc = vec_vpkuhum(vbs, vbs);2847// CHECK: @llvm.ppc.altivec.vperm2848// CHECK-LE: @llvm.ppc.altivec.vperm2849 2850 res_vs = vec_vpkuwum(vi, vi);2851// CHECK: @llvm.ppc.altivec.vperm2852// CHECK-LE: @llvm.ppc.altivec.vperm2853 2854 res_vus = vec_vpkuwum(vui, vui);2855// CHECK: @llvm.ppc.altivec.vperm2856// CHECK-LE: @llvm.ppc.altivec.vperm2857 2858 res_vbs = vec_vpkuwum(vbi, vbi);2859// CHECK: @llvm.ppc.altivec.vperm2860// CHECK-LE: @llvm.ppc.altivec.vperm2861 2862 /* vec_packpx */2863 res_vp = vec_packpx(vui, vui);2864// CHECK: @llvm.ppc.altivec.vpkpx2865// CHECK-LE: @llvm.ppc.altivec.vpkpx2866 2867 res_vp = vec_vpkpx(vui, vui);2868// CHECK: @llvm.ppc.altivec.vpkpx2869// CHECK-LE: @llvm.ppc.altivec.vpkpx2870 2871 /* vec_packs */2872 res_vsc = vec_packs(vs, vs);2873// CHECK: @llvm.ppc.altivec.vpkshss2874// CHECK-LE: @llvm.ppc.altivec.vpkshss2875 2876 res_vuc = vec_packs(vus, vus);2877// CHECK: @llvm.ppc.altivec.vpkuhus2878// CHECK-LE: @llvm.ppc.altivec.vpkuhus2879 2880 res_vs = vec_packs(vi, vi);2881// CHECK: @llvm.ppc.altivec.vpkswss2882// CHECK-LE: @llvm.ppc.altivec.vpkswss2883 2884 res_vus = vec_packs(vui, vui);2885// CHECK: @llvm.ppc.altivec.vpkuwus2886// CHECK-LE: @llvm.ppc.altivec.vpkuwus2887 2888 res_vsc = vec_vpkshss(vs, vs);2889// CHECK: @llvm.ppc.altivec.vpkshss2890// CHECK-LE: @llvm.ppc.altivec.vpkshss2891 2892 res_vuc = vec_vpkuhus(vus, vus);2893// CHECK: @llvm.ppc.altivec.vpkuhus2894// CHECK-LE: @llvm.ppc.altivec.vpkuhus2895 2896 res_vs = vec_vpkswss(vi, vi);2897// CHECK: @llvm.ppc.altivec.vpkswss2898// CHECK-LE: @llvm.ppc.altivec.vpkswss2899 2900 res_vus = vec_vpkuwus(vui, vui);2901// CHECK: @llvm.ppc.altivec.vpkuwus2902// CHECK-LE: @llvm.ppc.altivec.vpkuwus2903 2904 /* vec_packsu */2905 res_vuc = vec_packsu(vs, vs);2906// CHECK: @llvm.ppc.altivec.vpkshus2907// CHECK-LE: @llvm.ppc.altivec.vpkshus2908 2909 res_vuc = vec_packsu(vus, vus);2910// CHECK: @llvm.ppc.altivec.vpkuhus2911// CHECK-LE: @llvm.ppc.altivec.vpkuhus2912 2913 res_vus = vec_packsu(vi, vi);2914// CHECK: @llvm.ppc.altivec.vpkswus2915// CHECK-LE: @llvm.ppc.altivec.vpkswus2916 2917 res_vus = vec_packsu(vui, vui);2918// CHECK: @llvm.ppc.altivec.vpkuwus2919// CHECK-LE: @llvm.ppc.altivec.vpkuwus2920 2921 res_vuc = vec_vpkshus(vs, vs);2922// CHECK: @llvm.ppc.altivec.vpkshus2923// CHECK-LE: @llvm.ppc.altivec.vpkshus2924 2925 res_vuc = vec_vpkshus(vus, vus);2926// CHECK: @llvm.ppc.altivec.vpkuhus2927// CHECK-LE: @llvm.ppc.altivec.vpkuhus2928 2929 res_vus = vec_vpkswus(vi, vi);2930// CHECK: @llvm.ppc.altivec.vpkswus2931// CHECK-LE: @llvm.ppc.altivec.vpkswus2932 2933 res_vus = vec_vpkswus(vui, vui);2934// CHECK: @llvm.ppc.altivec.vpkuwus2935// CHECK-LE: @llvm.ppc.altivec.vpkuwus2936 2937 /* vec_perm */2938 res_vsc = vec_perm(vsc, vsc, vuc);2939// CHECK: @llvm.ppc.altivec.vperm2940// CHECK-LE: @llvm.ppc.altivec.vperm2941 2942 res_vuc = vec_perm(vuc, vuc, vuc);2943// CHECK: @llvm.ppc.altivec.vperm2944// CHECK-LE: @llvm.ppc.altivec.vperm2945 2946 res_vbc = vec_perm(vbc, vbc, vuc);2947// CHECK: @llvm.ppc.altivec.vperm2948// CHECK-LE: @llvm.ppc.altivec.vperm2949 2950 res_vs = vec_perm(vs, vs, vuc);2951// CHECK: @llvm.ppc.altivec.vperm2952// CHECK-LE: @llvm.ppc.altivec.vperm2953 2954 res_vus = vec_perm(vus, vus, vuc);2955// CHECK: @llvm.ppc.altivec.vperm2956// CHECK-LE: @llvm.ppc.altivec.vperm2957 2958 res_vbs = vec_perm(vbs, vbs, vuc);2959// CHECK: @llvm.ppc.altivec.vperm2960// CHECK-LE: @llvm.ppc.altivec.vperm2961 2962 res_vp = vec_perm(vp, vp, vuc);2963// CHECK: @llvm.ppc.altivec.vperm2964// CHECK-LE: @llvm.ppc.altivec.vperm2965 2966 res_vi = vec_perm(vi, vi, vuc);2967// CHECK: @llvm.ppc.altivec.vperm2968// CHECK-LE: @llvm.ppc.altivec.vperm2969 2970 res_vui = vec_perm(vui, vui, vuc);2971// CHECK: @llvm.ppc.altivec.vperm2972// CHECK-LE: @llvm.ppc.altivec.vperm2973 2974 res_vbi = vec_perm(vbi, vbi, vuc);2975// CHECK: @llvm.ppc.altivec.vperm2976// CHECK-LE: @llvm.ppc.altivec.vperm2977 2978 res_vf = vec_perm(vf, vf, vuc);2979// CHECK: @llvm.ppc.altivec.vperm2980// CHECK-LE: @llvm.ppc.altivec.vperm2981 2982 res_vsc = vec_vperm(vsc, vsc, vuc);2983// CHECK: @llvm.ppc.altivec.vperm2984// CHECK-LE: @llvm.ppc.altivec.vperm2985 2986 res_vuc = vec_vperm(vuc, vuc, vuc);2987// CHECK: @llvm.ppc.altivec.vperm2988// CHECK-LE: @llvm.ppc.altivec.vperm2989 2990 res_vbc = vec_vperm(vbc, vbc, vuc);2991// CHECK: @llvm.ppc.altivec.vperm2992// CHECK-LE: @llvm.ppc.altivec.vperm2993 2994 res_vs = vec_vperm(vs, vs, vuc);2995// CHECK: @llvm.ppc.altivec.vperm2996// CHECK-LE: @llvm.ppc.altivec.vperm2997 2998 res_vus = vec_vperm(vus, vus, vuc);2999// CHECK: @llvm.ppc.altivec.vperm3000// CHECK-LE: @llvm.ppc.altivec.vperm3001 3002 res_vbs = vec_vperm(vbs, vbs, vuc);3003// CHECK: @llvm.ppc.altivec.vperm3004// CHECK-LE: @llvm.ppc.altivec.vperm3005 3006 res_vp = vec_vperm(vp, vp, vuc);3007// CHECK: @llvm.ppc.altivec.vperm3008// CHECK-LE: @llvm.ppc.altivec.vperm3009 3010 res_vi = vec_vperm(vi, vi, vuc);3011// CHECK: @llvm.ppc.altivec.vperm3012// CHECK-LE: @llvm.ppc.altivec.vperm3013 3014 res_vui = vec_vperm(vui, vui, vuc);3015// CHECK: @llvm.ppc.altivec.vperm3016// CHECK-LE: @llvm.ppc.altivec.vperm3017 3018 res_vbi = vec_vperm(vbi, vbi, vuc);3019// CHECK: @llvm.ppc.altivec.vperm3020// CHECK-LE: @llvm.ppc.altivec.vperm3021 3022 res_vf = vec_vperm(vf, vf, vuc);3023// CHECK: @llvm.ppc.altivec.vperm3024// CHECK-LE: @llvm.ppc.altivec.vperm3025 3026 /* vec_re */3027 res_vf = vec_re(vf);3028// CHECK: @llvm.ppc.altivec.vrefp3029// CHECK-LE: @llvm.ppc.altivec.vrefp3030 3031 res_vf = vec_vrefp(vf);3032// CHECK: @llvm.ppc.altivec.vrefp3033// CHECK-LE: @llvm.ppc.altivec.vrefp3034 3035 /* vec_rl */3036 res_vsc = vec_rl(vsc, vuc);3037// CHECK: @llvm.ppc.altivec.vrlb3038// CHECK-LE: @llvm.ppc.altivec.vrlb3039 3040 res_vuc = vec_rl(vuc, vuc);3041// CHECK: @llvm.ppc.altivec.vrlb3042// CHECK-LE: @llvm.ppc.altivec.vrlb3043 3044 res_vs = vec_rl(vs, vus);3045// CHECK: @llvm.ppc.altivec.vrlh3046// CHECK-LE: @llvm.ppc.altivec.vrlh3047 3048 res_vus = vec_rl(vus, vus);3049// CHECK: @llvm.ppc.altivec.vrlh3050// CHECK-LE: @llvm.ppc.altivec.vrlh3051 3052 res_vi = vec_rl(vi, vui);3053// CHECK: @llvm.ppc.altivec.vrlw3054// CHECK-LE: @llvm.ppc.altivec.vrlw3055 3056 res_vui = vec_rl(vui, vui);3057// CHECK: @llvm.ppc.altivec.vrlw3058// CHECK-LE: @llvm.ppc.altivec.vrlw3059 3060 res_vsc = vec_vrlb(vsc, vuc);3061// CHECK: @llvm.ppc.altivec.vrlb3062// CHECK-LE: @llvm.ppc.altivec.vrlb3063 3064 res_vuc = vec_vrlb(vuc, vuc);3065// CHECK: @llvm.ppc.altivec.vrlb3066// CHECK-LE: @llvm.ppc.altivec.vrlb3067 3068 res_vs = vec_vrlh(vs, vus);3069// CHECK: @llvm.ppc.altivec.vrlh3070// CHECK-LE: @llvm.ppc.altivec.vrlh3071 3072 res_vus = vec_vrlh(vus, vus);3073// CHECK: @llvm.ppc.altivec.vrlh3074// CHECK-LE: @llvm.ppc.altivec.vrlh3075 3076 res_vi = vec_vrlw(vi, vui);3077// CHECK: @llvm.ppc.altivec.vrlw3078// CHECK-LE: @llvm.ppc.altivec.vrlw3079 3080 res_vui = vec_vrlw(vui, vui);3081// CHECK: @llvm.ppc.altivec.vrlw3082// CHECK-LE: @llvm.ppc.altivec.vrlw3083 3084 /* vec_round */3085 res_vf = vec_round(vf);3086// CHECK: @llvm.ppc.altivec.vrfin3087// CHECK-LE: @llvm.ppc.altivec.vrfin3088 3089 res_vf = vec_vrfin(vf);3090// CHECK: @llvm.ppc.altivec.vrfin3091// CHECK-LE: @llvm.ppc.altivec.vrfin3092 3093 /* vec_rsqrte */3094 res_vf = vec_rsqrte(vf);3095// CHECK: @llvm.ppc.altivec.vrsqrtefp3096// CHECK-LE: @llvm.ppc.altivec.vrsqrtefp3097 3098 res_vf = vec_vrsqrtefp(vf);3099// CHECK: @llvm.ppc.altivec.vrsqrtefp3100// CHECK-LE: @llvm.ppc.altivec.vrsqrtefp3101 3102 /* vec_sel */3103 res_vsc = vec_sel(vsc, vsc, vuc);3104// CHECK: xor <16 x i8>3105// CHECK: and <16 x i8>3106// CHECK: and <16 x i8>3107// CHECK: or <16 x i8>3108// CHECK-LE: xor <16 x i8>3109// CHECK-LE: and <16 x i8>3110// CHECK-LE: and <16 x i8>3111// CHECK-LE: or <16 x i8>3112 3113 res_vsc = vec_sel(vsc, vsc, vbc);3114// CHECK: xor <16 x i8>3115// CHECK: and <16 x i8>3116// CHECK: and <16 x i8>3117// CHECK: or <16 x i8>3118// CHECK-LE: xor <16 x i8>3119// CHECK-LE: and <16 x i8>3120// CHECK-LE: and <16 x i8>3121// CHECK-LE: or <16 x i8>3122 3123 res_vuc = vec_sel(vuc, vuc, vuc);3124// CHECK: xor <16 x i8>3125// CHECK: and <16 x i8>3126// CHECK: and <16 x i8>3127// CHECK: or <16 x i8>3128// CHECK-LE: xor <16 x i8>3129// CHECK-LE: and <16 x i8>3130// CHECK-LE: and <16 x i8>3131// CHECK-LE: or <16 x i8>3132 3133 res_vuc = vec_sel(vuc, vuc, vbc);3134// CHECK: xor <16 x i8>3135// CHECK: and <16 x i8>3136// CHECK: and <16 x i8>3137// CHECK: or <16 x i8>3138// CHECK-LE: xor <16 x i8>3139// CHECK-LE: and <16 x i8>3140// CHECK-LE: and <16 x i8>3141// CHECK-LE: or <16 x i8>3142 3143 res_vbc = vec_sel(vbc, vbc, vuc);3144// CHECK: xor <16 x i8>3145// CHECK: and <16 x i8>3146// CHECK: and <16 x i8>3147// CHECK: or <16 x i8>3148// CHECK-LE: xor <16 x i8>3149// CHECK-LE: and <16 x i8>3150// CHECK-LE: and <16 x i8>3151// CHECK-LE: or <16 x i8>3152 3153 res_vbc = vec_sel(vbc, vbc, vbc);3154// CHECK: xor <16 x i8>3155// CHECK: and <16 x i8>3156// CHECK: and <16 x i8>3157// CHECK: or <16 x i8>3158// CHECK-LE: xor <16 x i8>3159// CHECK-LE: and <16 x i8>3160// CHECK-LE: and <16 x i8>3161// CHECK-LE: or <16 x i8>3162 3163 res_vs = vec_sel(vs, vs, vus);3164// CHECK: xor <8 x i16>3165// CHECK: and <8 x i16>3166// CHECK: and <8 x i16>3167// CHECK: or <8 x i16>3168// CHECK-LE: xor <8 x i16>3169// CHECK-LE: and <8 x i16>3170// CHECK-LE: and <8 x i16>3171// CHECK-LE: or <8 x i16>3172 3173 res_vs = vec_sel(vs, vs, vbs);3174// CHECK: xor <8 x i16>3175// CHECK: and <8 x i16>3176// CHECK: and <8 x i16>3177// CHECK: or <8 x i16>3178// CHECK-LE: xor <8 x i16>3179// CHECK-LE: and <8 x i16>3180// CHECK-LE: and <8 x i16>3181// CHECK-LE: or <8 x i16>3182 3183 res_vus = vec_sel(vus, vus, vus);3184// CHECK: xor <8 x i16>3185// CHECK: and <8 x i16>3186// CHECK: and <8 x i16>3187// CHECK: or <8 x i16>3188// CHECK-LE: xor <8 x i16>3189// CHECK-LE: and <8 x i16>3190// CHECK-LE: and <8 x i16>3191// CHECK-LE: or <8 x i16>3192 3193 res_vus = vec_sel(vus, vus, vbs);3194// CHECK: xor <8 x i16>3195// CHECK: and <8 x i16>3196// CHECK: and <8 x i16>3197// CHECK: or <8 x i16>3198// CHECK-LE: xor <8 x i16>3199// CHECK-LE: and <8 x i16>3200// CHECK-LE: and <8 x i16>3201// CHECK-LE: or <8 x i16>3202 3203 res_vbs = vec_sel(vbs, vbs, vus);3204// CHECK: xor <8 x i16>3205// CHECK: and <8 x i16>3206// CHECK: and <8 x i16>3207// CHECK: or <8 x i16>3208// CHECK-LE: xor <8 x i16>3209// CHECK-LE: and <8 x i16>3210// CHECK-LE: and <8 x i16>3211// CHECK-LE: or <8 x i16>3212 3213 res_vbs = vec_sel(vbs, vbs, vbs);3214// CHECK: xor <8 x i16>3215// CHECK: and <8 x i16>3216// CHECK: and <8 x i16>3217// CHECK: or <8 x i16>3218// CHECK-LE: xor <8 x i16>3219// CHECK-LE: and <8 x i16>3220// CHECK-LE: and <8 x i16>3221// CHECK-LE: or <8 x i16>3222 3223 res_vi = vec_sel(vi, vi, vui);3224// CHECK: xor <4 x i32>3225// CHECK: and <4 x i32>3226// CHECK: and <4 x i32>3227// CHECK: or <4 x i32>3228// CHECK-LE: xor <4 x i32>3229// CHECK-LE: and <4 x i32>3230// CHECK-LE: and <4 x i32>3231// CHECK-LE: or <4 x i32>3232 3233 res_vi = vec_sel(vi, vi, vbi);3234// CHECK: xor <4 x i32>3235// CHECK: and <4 x i32>3236// CHECK: and <4 x i32>3237// CHECK: or <4 x i32>3238// CHECK-LE: xor <4 x i32>3239// CHECK-LE: and <4 x i32>3240// CHECK-LE: and <4 x i32>3241// CHECK-LE: or <4 x i32>3242 3243 res_vui = vec_sel(vui, vui, vui);3244// CHECK: xor <4 x i32>3245// CHECK: and <4 x i32>3246// CHECK: and <4 x i32>3247// CHECK: or <4 x i32>3248// CHECK-LE: xor <4 x i32>3249// CHECK-LE: and <4 x i32>3250// CHECK-LE: and <4 x i32>3251// CHECK-LE: or <4 x i32>3252 3253 res_vui = vec_sel(vui, vui, vbi);3254// CHECK: xor <4 x i32>3255// CHECK: and <4 x i32>3256// CHECK: and <4 x i32>3257// CHECK: or <4 x i32>3258// CHECK-LE: xor <4 x i32>3259// CHECK-LE: and <4 x i32>3260// CHECK-LE: and <4 x i32>3261// CHECK-LE: or <4 x i32>3262 3263 res_vbi = vec_sel(vbi, vbi, vui);3264// CHECK: xor <4 x i32>3265// CHECK: and <4 x i32>3266// CHECK: and <4 x i32>3267// CHECK: or <4 x i32>3268// CHECK-LE: xor <4 x i32>3269// CHECK-LE: and <4 x i32>3270// CHECK-LE: and <4 x i32>3271// CHECK-LE: or <4 x i32>3272 3273 res_vbi = vec_sel(vbi, vbi, vbi);3274// CHECK: xor <4 x i32>3275// CHECK: and <4 x i32>3276// CHECK: and <4 x i32>3277// CHECK: or <4 x i32>3278// CHECK-LE: xor <4 x i32>3279// CHECK-LE: and <4 x i32>3280// CHECK-LE: and <4 x i32>3281// CHECK-LE: or <4 x i32>3282 3283 res_vf = vec_sel(vf, vf, vui);3284// CHECK: xor <4 x i32>3285// CHECK: and <4 x i32>3286// CHECK: and <4 x i32>3287// CHECK: or <4 x i32>3288// CHECK-LE: xor <4 x i32>3289// CHECK-LE: and <4 x i32>3290// CHECK-LE: and <4 x i32>3291// CHECK-LE: or <4 x i32>3292 3293 res_vf = vec_sel(vf, vf, vbi);3294// CHECK: xor <4 x i32>3295// CHECK: and <4 x i32>3296// CHECK: and <4 x i32>3297// CHECK: or <4 x i32>3298// CHECK-LE: xor <4 x i32>3299// CHECK-LE: and <4 x i32>3300// CHECK-LE: and <4 x i32>3301// CHECK-LE: or <4 x i32>3302 3303 res_vsc = vec_vsel(vsc, vsc, vuc);3304// CHECK: xor <16 x i8>3305// CHECK: and <16 x i8>3306// CHECK: and <16 x i8>3307// CHECK: or <16 x i8>3308// CHECK-LE: xor <16 x i8>3309// CHECK-LE: and <16 x i8>3310// CHECK-LE: and <16 x i8>3311// CHECK-LE: or <16 x i8>3312 3313 res_vsc = vec_vsel(vsc, vsc, vbc);3314// CHECK: xor <16 x i8>3315// CHECK: and <16 x i8>3316// CHECK: and <16 x i8>3317// CHECK: or <16 x i8>3318// CHECK-LE: xor <16 x i8>3319// CHECK-LE: and <16 x i8>3320// CHECK-LE: and <16 x i8>3321// CHECK-LE: or <16 x i8>3322 3323 res_vuc = vec_vsel(vuc, vuc, vuc);3324// CHECK: xor <16 x i8>3325// CHECK: and <16 x i8>3326// CHECK: and <16 x i8>3327// CHECK: or <16 x i8>3328// CHECK-LE: xor <16 x i8>3329// CHECK-LE: and <16 x i8>3330// CHECK-LE: and <16 x i8>3331// CHECK-LE: or <16 x i8>3332 3333 res_vuc = vec_vsel(vuc, vuc, vbc);3334// CHECK: xor <16 x i8>3335// CHECK: and <16 x i8>3336// CHECK: and <16 x i8>3337// CHECK: or <16 x i8>3338// CHECK-LE: xor <16 x i8>3339// CHECK-LE: and <16 x i8>3340// CHECK-LE: and <16 x i8>3341// CHECK-LE: or <16 x i8>3342 3343 res_vbc = vec_vsel(vbc, vbc, vuc);3344// CHECK: xor <16 x i8>3345// CHECK: and <16 x i8>3346// CHECK: and <16 x i8>3347// CHECK: or <16 x i8>3348// CHECK-LE: xor <16 x i8>3349// CHECK-LE: and <16 x i8>3350// CHECK-LE: and <16 x i8>3351// CHECK-LE: or <16 x i8>3352 3353 res_vbc = vec_vsel(vbc, vbc, vbc);3354// CHECK: xor <16 x i8>3355// CHECK: and <16 x i8>3356// CHECK: and <16 x i8>3357// CHECK: or <16 x i8>3358// CHECK-LE: xor <16 x i8>3359// CHECK-LE: and <16 x i8>3360// CHECK-LE: and <16 x i8>3361// CHECK-LE: or <16 x i8>3362 3363 res_vs = vec_vsel(vs, vs, vus);3364// CHECK: xor <8 x i16>3365// CHECK: and <8 x i16>3366// CHECK: and <8 x i16>3367// CHECK: or <8 x i16>3368// CHECK-LE: xor <8 x i16>3369// CHECK-LE: and <8 x i16>3370// CHECK-LE: and <8 x i16>3371// CHECK-LE: or <8 x i16>3372 3373 res_vs = vec_vsel(vs, vs, vbs);3374// CHECK: xor <8 x i16>3375// CHECK: and <8 x i16>3376// CHECK: and <8 x i16>3377// CHECK: or <8 x i16>3378// CHECK-LE: xor <8 x i16>3379// CHECK-LE: and <8 x i16>3380// CHECK-LE: and <8 x i16>3381// CHECK-LE: or <8 x i16>3382 3383 res_vus = vec_vsel(vus, vus, vus);3384// CHECK: xor <8 x i16>3385// CHECK: and <8 x i16>3386// CHECK: and <8 x i16>3387// CHECK: or <8 x i16>3388// CHECK-LE: xor <8 x i16>3389// CHECK-LE: and <8 x i16>3390// CHECK-LE: and <8 x i16>3391// CHECK-LE: or <8 x i16>3392 3393 res_vus = vec_vsel(vus, vus, vbs);3394// CHECK: xor <8 x i16>3395// CHECK: and <8 x i16>3396// CHECK: and <8 x i16>3397// CHECK: or <8 x i16>3398// CHECK-LE: xor <8 x i16>3399// CHECK-LE: and <8 x i16>3400// CHECK-LE: and <8 x i16>3401// CHECK-LE: or <8 x i16>3402 3403 res_vbs = vec_vsel(vbs, vbs, vus);3404// CHECK: xor <8 x i16>3405// CHECK: and <8 x i16>3406// CHECK: and <8 x i16>3407// CHECK: or <8 x i16>3408// CHECK-LE: xor <8 x i16>3409// CHECK-LE: and <8 x i16>3410// CHECK-LE: and <8 x i16>3411// CHECK-LE: or <8 x i16>3412 3413 res_vbs = vec_vsel(vbs, vbs, vbs);3414// CHECK: xor <8 x i16>3415// CHECK: and <8 x i16>3416// CHECK: and <8 x i16>3417// CHECK: or <8 x i16>3418// CHECK-LE: xor <8 x i16>3419// CHECK-LE: and <8 x i16>3420// CHECK-LE: and <8 x i16>3421// CHECK-LE: or <8 x i16>3422 3423 res_vi = vec_vsel(vi, vi, vui);3424// CHECK: xor <4 x i32>3425// CHECK: and <4 x i32>3426// CHECK: and <4 x i32>3427// CHECK: or <4 x i32>3428// CHECK-LE: xor <4 x i32>3429// CHECK-LE: and <4 x i32>3430// CHECK-LE: and <4 x i32>3431// CHECK-LE: or <4 x i32>3432 3433 res_vi = vec_vsel(vi, vi, vbi);3434// CHECK: xor <4 x i32>3435// CHECK: and <4 x i32>3436// CHECK: and <4 x i32>3437// CHECK: or <4 x i32>3438// CHECK-LE: xor <4 x i32>3439// CHECK-LE: and <4 x i32>3440// CHECK-LE: and <4 x i32>3441// CHECK-LE: or <4 x i32>3442 3443 res_vui = vec_vsel(vui, vui, vui);3444// CHECK: xor <4 x i32>3445// CHECK: and <4 x i32>3446// CHECK: and <4 x i32>3447// CHECK: or <4 x i32>3448// CHECK-LE: xor <4 x i32>3449// CHECK-LE: and <4 x i32>3450// CHECK-LE: and <4 x i32>3451// CHECK-LE: or <4 x i32>3452 3453 res_vui = vec_vsel(vui, vui, vbi);3454// CHECK: xor <4 x i32>3455// CHECK: and <4 x i32>3456// CHECK: and <4 x i32>3457// CHECK: or <4 x i32>3458// CHECK-LE: xor <4 x i32>3459// CHECK-LE: and <4 x i32>3460// CHECK-LE: and <4 x i32>3461// CHECK-LE: or <4 x i32>3462 3463 res_vbi = vec_vsel(vbi, vbi, vui);3464// CHECK: xor <4 x i32>3465// CHECK: and <4 x i32>3466// CHECK: and <4 x i32>3467// CHECK: or <4 x i32>3468// CHECK-LE: xor <4 x i32>3469// CHECK-LE: and <4 x i32>3470// CHECK-LE: and <4 x i32>3471// CHECK-LE: or <4 x i32>3472 3473 res_vbi = vec_vsel(vbi, vbi, vbi);3474// CHECK: xor <4 x i32>3475// CHECK: and <4 x i32>3476// CHECK: and <4 x i32>3477// CHECK: or <4 x i32>3478// CHECK-LE: xor <4 x i32>3479// CHECK-LE: and <4 x i32>3480// CHECK-LE: and <4 x i32>3481// CHECK-LE: or <4 x i32>3482 3483 res_vf = vec_vsel(vf, vf, vui);3484// CHECK: xor <4 x i32>3485// CHECK: and <4 x i32>3486// CHECK: and <4 x i32>3487// CHECK: or <4 x i32>3488// CHECK-LE: xor <4 x i32>3489// CHECK-LE: and <4 x i32>3490// CHECK-LE: and <4 x i32>3491// CHECK-LE: or <4 x i32>3492 3493 res_vf = vec_vsel(vf, vf, vbi);3494// CHECK: xor <4 x i32>3495// CHECK: and <4 x i32>3496// CHECK: and <4 x i32>3497// CHECK: or <4 x i32>3498// CHECK-LE: xor <4 x i32>3499// CHECK-LE: and <4 x i32>3500// CHECK-LE: and <4 x i32>3501// CHECK-LE: or <4 x i32>3502 3503 /* vec_sl */3504 res_vsc = vec_sl(vsc, vuc);3505// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)3506// CHECK: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]3507// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)3508// CHECK-LE: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]3509 3510 res_vuc = vec_sl(vuc, vuc);3511// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)3512// CHECK: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]3513// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)3514// CHECK-LE: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]3515 3516 res_vs = vec_sl(vs, vus);3517// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)3518// CHECK: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]3519// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)3520// CHECK-LE: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]3521 3522 res_vus = vec_sl(vus, vus);3523// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)3524// CHECK: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]3525// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)3526// CHECK-LE: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]3527 3528 res_vi = vec_sl(vi, vui);3529// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)3530// CHECK: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]3531// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)3532// CHECK-LE: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]3533 3534 res_vui = vec_sl(vui, vui);3535// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)3536// CHECK: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]3537// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)3538// CHECK-LE: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]3539 3540 res_vsc = vec_vslb(vsc, vuc);3541// CHECK: shl <16 x i8>3542// CHECK-LE: shl <16 x i8>3543 3544 res_vuc = vec_vslb(vuc, vuc);3545// CHECK: shl <16 x i8>3546// CHECK-LE: shl <16 x i8>3547 3548 res_vs = vec_vslh(vs, vus);3549// CHECK: shl <8 x i16>3550// CHECK-LE: shl <8 x i16>3551 3552 res_vus = vec_vslh(vus, vus);3553// CHECK: shl <8 x i16>3554// CHECK-LE: shl <8 x i16>3555 3556 res_vi = vec_vslw(vi, vui);3557// CHECK: shl <4 x i32>3558// CHECK-LE: shl <4 x i32>3559 3560 res_vui = vec_vslw(vui, vui);3561// CHECK: shl <4 x i32>3562// CHECK-LE: shl <4 x i32>3563 3564 /* vec_sld */3565 res_vsc = vec_sld(vsc, vsc, 0);3566// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13567// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23568// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33569// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153570// CHECK: @llvm.ppc.altivec.vperm3571// CHECK-LE: sub nsw i32 163572// CHECK-LE: sub nsw i32 173573// CHECK-LE: sub nsw i32 183574// CHECK-LE: sub nsw i32 313575// CHECK-LE: @llvm.ppc.altivec.vperm3576 3577 res_vuc = vec_sld(vuc, vuc, 0);3578// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13579// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23580// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33581// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153582// CHECK: @llvm.ppc.altivec.vperm3583// CHECK-LE: sub nsw i32 163584// CHECK-LE: sub nsw i32 173585// CHECK-LE: sub nsw i32 183586// CHECK-LE: sub nsw i32 313587// CHECK-LE: @llvm.ppc.altivec.vperm3588 3589 res_vs = vec_sld(vs, vs, 0);3590// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13591// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23592// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33593// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153594// CHECK: @llvm.ppc.altivec.vperm3595// CHECK-LE: sub nsw i32 163596// CHECK-LE: sub nsw i32 173597// CHECK-LE: sub nsw i32 183598// CHECK-LE: sub nsw i32 313599// CHECK-LE: @llvm.ppc.altivec.vperm3600 3601 res_vus = vec_sld(vus, vus, 0);3602// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13603// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23604// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33605// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153606// CHECK: @llvm.ppc.altivec.vperm3607// CHECK-LE: sub nsw i32 163608// CHECK-LE: sub nsw i32 173609// CHECK-LE: sub nsw i32 183610// CHECK-LE: sub nsw i32 313611// CHECK-LE: @llvm.ppc.altivec.vperm3612 3613 res_vbs = vec_sld(vbs, vbs, 0);3614// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13615// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23616// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33617// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153618// CHECK: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>3619// CHECK: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>3620// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8>3621// CHECK-LE: sub nsw i32 163622// CHECK-LE: sub nsw i32 173623// CHECK-LE: sub nsw i32 183624// CHECK-LE: sub nsw i32 313625// CHECK-LE: xor <16 x i8>3626// CHECK-LE: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>3627// CHECK-LE: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>3628// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8>3629 3630 res_vp = vec_sld(vp, vp, 0);3631// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13632// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23633// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33634// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153635// CHECK: @llvm.ppc.altivec.vperm3636// CHECK-LE: sub nsw i32 163637// CHECK-LE: sub nsw i32 173638// CHECK-LE: sub nsw i32 183639// CHECK-LE: sub nsw i32 313640// CHECK-LE: @llvm.ppc.altivec.vperm3641 3642 res_vi = vec_sld(vi, vi, 0);3643// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13644// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23645// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33646// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153647// CHECK: @llvm.ppc.altivec.vperm3648// CHECK-LE: sub nsw i32 163649// CHECK-LE: sub nsw i32 173650// CHECK-LE: sub nsw i32 183651// CHECK-LE: sub nsw i32 313652// CHECK-LE: @llvm.ppc.altivec.vperm3653 3654 res_vui = vec_sld(vui, vui, 0);3655// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13656// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23657// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33658// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153659// CHECK: @llvm.ppc.altivec.vperm3660// CHECK-LE: sub nsw i32 163661// CHECK-LE: sub nsw i32 173662// CHECK-LE: sub nsw i32 183663// CHECK-LE: sub nsw i32 313664// CHECK-LE: @llvm.ppc.altivec.vperm3665 3666 res_vbi = vec_sld(vbi, vbi, 0);3667// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13668// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23669// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33670// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153671// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8>3672// CHECK-LE: sub nsw i32 163673// CHECK-LE: sub nsw i32 173674// CHECK-LE: sub nsw i32 183675// CHECK-LE: sub nsw i32 313676// CHECK-LE: xor <16 x i8>3677// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8>3678 3679 res_vf = vec_sld(vf, vf, 0);3680// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13681// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23682// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33683// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153684// CHECK: @llvm.ppc.altivec.vperm3685// CHECK-LE: sub nsw i32 163686// CHECK-LE: sub nsw i32 173687// CHECK-LE: sub nsw i32 183688// CHECK-LE: sub nsw i32 313689// CHECK-LE: @llvm.ppc.altivec.vperm3690 3691 /* vec_sldw */3692 res_vsc = vec_sldw(vsc, vsc, 0);3693 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13694 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23695 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33696 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153697 // CHECK: @llvm.ppc.altivec.vperm3698 // CHECK-LE: sub nsw i32 163699 // CHECK-LE: sub nsw i32 173700 // CHECK-LE: sub nsw i32 183701 // CHECK-LE: sub nsw i32 313702 // CHECK-LE: @llvm.ppc.altivec.vperm3703 3704 res_vuc = vec_sldw(vuc, vuc, 0);3705 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13706 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23707 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33708 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153709 // CHECK: @llvm.ppc.altivec.vperm3710 // CHECK-LE: sub nsw i32 163711 // CHECK-LE: sub nsw i32 173712 // CHECK-LE: sub nsw i32 183713 // CHECK-LE: sub nsw i32 313714 // CHECK-LE: @llvm.ppc.altivec.vperm3715 3716 res_vi = vec_sldw(vi, vi, 0);3717 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13718 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23719 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33720 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153721 // CHECK: @llvm.ppc.altivec.vperm3722 // CHECK-LE: sub nsw i32 163723 // CHECK-LE: sub nsw i32 173724 // CHECK-LE: sub nsw i32 183725 // CHECK-LE: sub nsw i32 313726 // CHECK-LE: @llvm.ppc.altivec.vperm3727 3728 res_vui = vec_sldw(vui, vui, 0);3729 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13730 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23731 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33732 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153733 // CHECK: @llvm.ppc.altivec.vperm3734 // CHECK-LE: sub nsw i32 163735 // CHECK-LE: sub nsw i32 173736 // CHECK-LE: sub nsw i32 183737 // CHECK-LE: sub nsw i32 313738 // CHECK-LE: @llvm.ppc.altivec.vperm3739 3740 res_vs = vec_sldw(vs, vs, 0);3741 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13742 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23743 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33744 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153745 // CHECK: @llvm.ppc.altivec.vperm3746 // CHECK-LE: sub nsw i32 163747 // CHECK-LE: sub nsw i32 173748 // CHECK-LE: sub nsw i32 183749 // CHECK-LE: sub nsw i32 313750 // CHECK-LE: @llvm.ppc.altivec.vperm3751 3752 res_vus = vec_sldw(vus, vus, 0);3753 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13754 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23755 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33756 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153757 // CHECK: @llvm.ppc.altivec.vperm3758 // CHECK-LE: sub nsw i32 163759 // CHECK-LE: sub nsw i32 173760 // CHECK-LE: sub nsw i32 183761 // CHECK-LE: sub nsw i32 313762 // CHECK-LE: @llvm.ppc.altivec.vperm3763 3764 res_vf = vec_sldw(vf, vf, 0);3765 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13766 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23767 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33768 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153769 // CHECK: @llvm.ppc.altivec.vperm3770 // CHECK-LE: sub nsw i32 163771 // CHECK-LE: sub nsw i32 173772 // CHECK-LE: sub nsw i32 183773 // CHECK-LE: sub nsw i32 313774 // CHECK-LE: @llvm.ppc.altivec.vperm3775 3776 res_vsc = vec_vsldoi(vsc, vsc, 0);3777// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13778// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23779// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33780// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153781// CHECK: @llvm.ppc.altivec.vperm3782// CHECK-LE: sub nsw i32 163783// CHECK-LE: sub nsw i32 173784// CHECK-LE: sub nsw i32 183785// CHECK-LE: sub nsw i32 313786// CHECK-LE: @llvm.ppc.altivec.vperm3787 3788 res_vuc = vec_vsldoi(vuc, vuc, 0);3789// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13790// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23791// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33792// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153793// CHECK: @llvm.ppc.altivec.vperm3794// CHECK-LE: sub nsw i32 163795// CHECK-LE: sub nsw i32 173796// CHECK-LE: sub nsw i32 183797// CHECK-LE: sub nsw i32 313798// CHECK-LE: @llvm.ppc.altivec.vperm3799 3800 res_vs = vec_vsldoi(vs, vs, 0);3801// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13802// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23803// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33804// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153805// CHECK: @llvm.ppc.altivec.vperm3806// CHECK-LE: sub nsw i32 163807// CHECK-LE: sub nsw i32 173808// CHECK-LE: sub nsw i32 183809// CHECK-LE: sub nsw i32 313810// CHECK-LE: @llvm.ppc.altivec.vperm3811 3812 res_vus = vec_vsldoi(vus, vus, 0);3813// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13814// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23815// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33816// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153817// CHECK: @llvm.ppc.altivec.vperm3818// CHECK-LE: sub nsw i32 163819// CHECK-LE: sub nsw i32 173820// CHECK-LE: sub nsw i32 183821// CHECK-LE: sub nsw i32 313822// CHECK-LE: @llvm.ppc.altivec.vperm3823 3824 res_vp = vec_vsldoi(vp, vp, 0);3825// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13826// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23827// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33828// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153829// CHECK: @llvm.ppc.altivec.vperm3830// CHECK-LE: sub nsw i32 163831// CHECK-LE: sub nsw i32 173832// CHECK-LE: sub nsw i32 183833// CHECK-LE: sub nsw i32 313834// CHECK-LE: @llvm.ppc.altivec.vperm3835 3836 res_vi = vec_vsldoi(vi, vi, 0);3837// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13838// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23839// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33840// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153841// CHECK: @llvm.ppc.altivec.vperm3842// CHECK-LE: sub nsw i32 163843// CHECK-LE: sub nsw i32 173844// CHECK-LE: sub nsw i32 183845// CHECK-LE: sub nsw i32 313846// CHECK-LE: @llvm.ppc.altivec.vperm3847 3848 res_vui = vec_vsldoi(vui, vui, 0);3849// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13850// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23851// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33852// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153853// CHECK: @llvm.ppc.altivec.vperm3854// CHECK-LE: sub nsw i32 163855// CHECK-LE: sub nsw i32 173856// CHECK-LE: sub nsw i32 183857// CHECK-LE: sub nsw i32 313858// CHECK-LE: @llvm.ppc.altivec.vperm3859 3860 res_vf = vec_vsldoi(vf, vf, 0);3861// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 13862// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 23863// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 33864// CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 153865// CHECK: @llvm.ppc.altivec.vperm3866// CHECK-LE: sub nsw i32 163867// CHECK-LE: sub nsw i32 173868// CHECK-LE: sub nsw i32 183869// CHECK-LE: sub nsw i32 313870// CHECK-LE: @llvm.ppc.altivec.vperm3871 3872 /* vec_sll */3873 res_vsc = vec_sll(vsc, vuc);3874// CHECK: @llvm.ppc.altivec.vsl3875// CHECK-LE: @llvm.ppc.altivec.vsl3876 3877 res_vsc = vec_sll(vsc, vus);3878// CHECK: @llvm.ppc.altivec.vsl3879// CHECK-LE: @llvm.ppc.altivec.vsl3880 3881 res_vsc = vec_sll(vsc, vui);3882// CHECK: @llvm.ppc.altivec.vsl3883// CHECK-LE: @llvm.ppc.altivec.vsl3884 3885 res_vuc = vec_sll(vuc, vuc);3886// CHECK: @llvm.ppc.altivec.vsl3887// CHECK-LE: @llvm.ppc.altivec.vsl3888 3889 res_vuc = vec_sll(vuc, vus);3890// CHECK: @llvm.ppc.altivec.vsl3891// CHECK-LE: @llvm.ppc.altivec.vsl3892 3893 res_vuc = vec_sll(vuc, vui);3894// CHECK: @llvm.ppc.altivec.vsl3895// CHECK-LE: @llvm.ppc.altivec.vsl3896 3897 res_vbc = vec_sll(vbc, vuc);3898// CHECK: @llvm.ppc.altivec.vsl3899// CHECK-LE: @llvm.ppc.altivec.vsl3900 3901 res_vbc = vec_sll(vbc, vus);3902// CHECK: @llvm.ppc.altivec.vsl3903// CHECK-LE: @llvm.ppc.altivec.vsl3904 3905 res_vbc = vec_sll(vbc, vui);3906// CHECK: @llvm.ppc.altivec.vsl3907// CHECK-LE: @llvm.ppc.altivec.vsl3908 3909 res_vs = vec_sll(vs, vuc);3910// CHECK: @llvm.ppc.altivec.vsl3911// CHECK-LE: @llvm.ppc.altivec.vsl3912 3913 res_vs = vec_sll(vs, vus);3914// CHECK: @llvm.ppc.altivec.vsl3915// CHECK-LE: @llvm.ppc.altivec.vsl3916 3917 res_vs = vec_sll(vs, vui);3918// CHECK: @llvm.ppc.altivec.vsl3919// CHECK-LE: @llvm.ppc.altivec.vsl3920 3921 res_vus = vec_sll(vus, vuc);3922// CHECK: @llvm.ppc.altivec.vsl3923// CHECK-LE: @llvm.ppc.altivec.vsl3924 3925 res_vus = vec_sll(vus, vus);3926// CHECK: @llvm.ppc.altivec.vsl3927// CHECK-LE: @llvm.ppc.altivec.vsl3928 3929 res_vus = vec_sll(vus, vui);3930// CHECK: @llvm.ppc.altivec.vsl3931// CHECK-LE: @llvm.ppc.altivec.vsl3932 3933 res_vbs = vec_sll(vbs, vuc);3934// CHECK: @llvm.ppc.altivec.vsl3935// CHECK-LE: @llvm.ppc.altivec.vsl3936 3937 res_vbs = vec_sll(vbs, vus);3938// CHECK: @llvm.ppc.altivec.vsl3939// CHECK-LE: @llvm.ppc.altivec.vsl3940 3941 res_vbs = vec_sll(vbs, vui);3942// CHECK: @llvm.ppc.altivec.vsl3943// CHECK-LE: @llvm.ppc.altivec.vsl3944 3945 res_vp = vec_sll(vp, vuc);3946// CHECK: @llvm.ppc.altivec.vsl3947// CHECK-LE: @llvm.ppc.altivec.vsl3948 3949 res_vp = vec_sll(vp, vus);3950// CHECK: @llvm.ppc.altivec.vsl3951// CHECK-LE: @llvm.ppc.altivec.vsl3952 3953 res_vp = vec_sll(vp, vui);3954// CHECK: @llvm.ppc.altivec.vsl3955// CHECK-LE: @llvm.ppc.altivec.vsl3956 3957 res_vi = vec_sll(vi, vuc);3958// CHECK: @llvm.ppc.altivec.vsl3959// CHECK-LE: @llvm.ppc.altivec.vsl3960 3961 res_vi = vec_sll(vi, vus);3962// CHECK: @llvm.ppc.altivec.vsl3963// CHECK-LE: @llvm.ppc.altivec.vsl3964 3965 res_vi = vec_sll(vi, vui);3966// CHECK: @llvm.ppc.altivec.vsl3967// CHECK-LE: @llvm.ppc.altivec.vsl3968 3969 res_vui = vec_sll(vui, vuc);3970// CHECK: @llvm.ppc.altivec.vsl3971// CHECK-LE: @llvm.ppc.altivec.vsl3972 3973 res_vui = vec_sll(vui, vus);3974// CHECK: @llvm.ppc.altivec.vsl3975// CHECK-LE: @llvm.ppc.altivec.vsl3976 3977 res_vui = vec_sll(vui, vui);3978// CHECK: @llvm.ppc.altivec.vsl3979// CHECK-LE: @llvm.ppc.altivec.vsl3980 3981 res_vbi = vec_sll(vbi, vuc);3982// CHECK: @llvm.ppc.altivec.vsl3983// CHECK-LE: @llvm.ppc.altivec.vsl3984 3985 res_vbi = vec_sll(vbi, vus);3986// CHECK: @llvm.ppc.altivec.vsl3987// CHECK-LE: @llvm.ppc.altivec.vsl3988 3989 res_vbi = vec_sll(vbi, vui);3990// CHECK: @llvm.ppc.altivec.vsl3991// CHECK-LE: @llvm.ppc.altivec.vsl3992 3993 res_vsc = vec_vsl(vsc, vuc);3994// CHECK: @llvm.ppc.altivec.vsl3995// CHECK-LE: @llvm.ppc.altivec.vsl3996 3997 res_vsc = vec_vsl(vsc, vus);3998// CHECK: @llvm.ppc.altivec.vsl3999// CHECK-LE: @llvm.ppc.altivec.vsl4000 4001 res_vsc = vec_vsl(vsc, vui);4002// CHECK: @llvm.ppc.altivec.vsl4003// CHECK-LE: @llvm.ppc.altivec.vsl4004 4005 res_vuc = vec_vsl(vuc, vuc);4006// CHECK: @llvm.ppc.altivec.vsl4007// CHECK-LE: @llvm.ppc.altivec.vsl4008 4009 res_vuc = vec_vsl(vuc, vus);4010// CHECK: @llvm.ppc.altivec.vsl4011// CHECK-LE: @llvm.ppc.altivec.vsl4012 4013 res_vuc = vec_vsl(vuc, vui);4014// CHECK: @llvm.ppc.altivec.vsl4015// CHECK-LE: @llvm.ppc.altivec.vsl4016 4017 res_vbc = vec_vsl(vbc, vuc);4018// CHECK: @llvm.ppc.altivec.vsl4019// CHECK-LE: @llvm.ppc.altivec.vsl4020 4021 res_vbc = vec_vsl(vbc, vus);4022// CHECK: @llvm.ppc.altivec.vsl4023// CHECK-LE: @llvm.ppc.altivec.vsl4024 4025 res_vbc = vec_vsl(vbc, vui);4026// CHECK: @llvm.ppc.altivec.vsl4027// CHECK-LE: @llvm.ppc.altivec.vsl4028 4029 res_vs = vec_vsl(vs, vuc);4030// CHECK: @llvm.ppc.altivec.vsl4031// CHECK-LE: @llvm.ppc.altivec.vsl4032 4033 res_vs = vec_vsl(vs, vus);4034// CHECK: @llvm.ppc.altivec.vsl4035// CHECK-LE: @llvm.ppc.altivec.vsl4036 4037 res_vs = vec_vsl(vs, vui);4038// CHECK: @llvm.ppc.altivec.vsl4039// CHECK-LE: @llvm.ppc.altivec.vsl4040 4041 res_vus = vec_vsl(vus, vuc);4042// CHECK: @llvm.ppc.altivec.vsl4043// CHECK-LE: @llvm.ppc.altivec.vsl4044 4045 res_vus = vec_vsl(vus, vus);4046// CHECK: @llvm.ppc.altivec.vsl4047// CHECK-LE: @llvm.ppc.altivec.vsl4048 4049 res_vus = vec_vsl(vus, vui);4050// CHECK: @llvm.ppc.altivec.vsl4051// CHECK-LE: @llvm.ppc.altivec.vsl4052 4053 res_vbs = vec_vsl(vbs, vuc);4054// CHECK: @llvm.ppc.altivec.vsl4055// CHECK-LE: @llvm.ppc.altivec.vsl4056 4057 res_vbs = vec_vsl(vbs, vus);4058// CHECK: @llvm.ppc.altivec.vsl4059// CHECK-LE: @llvm.ppc.altivec.vsl4060 4061 res_vbs = vec_vsl(vbs, vui);4062// CHECK: @llvm.ppc.altivec.vsl4063// CHECK-LE: @llvm.ppc.altivec.vsl4064 4065 res_vp = vec_vsl(vp, vuc);4066// CHECK: @llvm.ppc.altivec.vsl4067// CHECK-LE: @llvm.ppc.altivec.vsl4068 4069 res_vp = vec_vsl(vp, vus);4070// CHECK: @llvm.ppc.altivec.vsl4071// CHECK-LE: @llvm.ppc.altivec.vsl4072 4073 res_vp = vec_vsl(vp, vui);4074// CHECK: @llvm.ppc.altivec.vsl4075// CHECK-LE: @llvm.ppc.altivec.vsl4076 4077 res_vi = vec_vsl(vi, vuc);4078// CHECK: @llvm.ppc.altivec.vsl4079// CHECK-LE: @llvm.ppc.altivec.vsl4080 4081 res_vi = vec_vsl(vi, vus);4082// CHECK: @llvm.ppc.altivec.vsl4083// CHECK-LE: @llvm.ppc.altivec.vsl4084 4085 res_vi = vec_vsl(vi, vui);4086// CHECK: @llvm.ppc.altivec.vsl4087// CHECK-LE: @llvm.ppc.altivec.vsl4088 4089 res_vui = vec_vsl(vui, vuc);4090// CHECK: @llvm.ppc.altivec.vsl4091// CHECK-LE: @llvm.ppc.altivec.vsl4092 4093 res_vui = vec_vsl(vui, vus);4094// CHECK: @llvm.ppc.altivec.vsl4095// CHECK-LE: @llvm.ppc.altivec.vsl4096 4097 res_vui = vec_vsl(vui, vui);4098// CHECK: @llvm.ppc.altivec.vsl4099// CHECK-LE: @llvm.ppc.altivec.vsl4100 4101 res_vbi = vec_vsl(vbi, vuc);4102// CHECK: @llvm.ppc.altivec.vsl4103// CHECK-LE: @llvm.ppc.altivec.vsl4104 4105 res_vbi = vec_vsl(vbi, vus);4106// CHECK: @llvm.ppc.altivec.vsl4107// CHECK-LE: @llvm.ppc.altivec.vsl4108 4109 res_vbi = vec_vsl(vbi, vui);4110// CHECK: @llvm.ppc.altivec.vsl4111// CHECK-LE: @llvm.ppc.altivec.vsl4112 4113 /* vec_slo */4114 res_vsc = vec_slo(vsc, vsc);4115// CHECK: @llvm.ppc.altivec.vslo4116// CHECK-LE: @llvm.ppc.altivec.vslo4117 4118 res_vsc = vec_slo(vsc, vuc);4119// CHECK: @llvm.ppc.altivec.vslo4120// CHECK-LE: @llvm.ppc.altivec.vslo4121 4122 res_vuc = vec_slo(vuc, vsc);4123// CHECK: @llvm.ppc.altivec.vslo4124// CHECK-LE: @llvm.ppc.altivec.vslo4125 4126 res_vuc = vec_slo(vuc, vuc);4127// CHECK: @llvm.ppc.altivec.vslo4128// CHECK-LE: @llvm.ppc.altivec.vslo4129 4130 res_vs = vec_slo(vs, vsc);4131// CHECK: @llvm.ppc.altivec.vslo4132// CHECK-LE: @llvm.ppc.altivec.vslo4133 4134 res_vs = vec_slo(vs, vuc);4135// CHECK: @llvm.ppc.altivec.vslo4136// CHECK-LE: @llvm.ppc.altivec.vslo4137 4138 res_vus = vec_slo(vus, vsc);4139// CHECK: @llvm.ppc.altivec.vslo4140// CHECK-LE: @llvm.ppc.altivec.vslo4141 4142 res_vus = vec_slo(vus, vuc);4143// CHECK: @llvm.ppc.altivec.vslo4144// CHECK-LE: @llvm.ppc.altivec.vslo4145 4146 res_vp = vec_slo(vp, vsc);4147// CHECK: @llvm.ppc.altivec.vslo4148// CHECK-LE: @llvm.ppc.altivec.vslo4149 4150 res_vp = vec_slo(vp, vuc);4151// CHECK: @llvm.ppc.altivec.vslo4152// CHECK-LE: @llvm.ppc.altivec.vslo4153 4154 res_vi = vec_slo(vi, vsc);4155// CHECK: @llvm.ppc.altivec.vslo4156// CHECK-LE: @llvm.ppc.altivec.vslo4157 4158 res_vi = vec_slo(vi, vuc);4159// CHECK: @llvm.ppc.altivec.vslo4160// CHECK-LE: @llvm.ppc.altivec.vslo4161 4162 res_vui = vec_slo(vui, vsc);4163// CHECK: @llvm.ppc.altivec.vslo4164// CHECK-LE: @llvm.ppc.altivec.vslo4165 4166 res_vui = vec_slo(vui, vuc);4167// CHECK: @llvm.ppc.altivec.vslo4168// CHECK-LE: @llvm.ppc.altivec.vslo4169 4170 res_vf = vec_slo(vf, vsc);4171// CHECK: @llvm.ppc.altivec.vslo4172// CHECK-LE: @llvm.ppc.altivec.vslo4173 4174 res_vf = vec_slo(vf, vuc);4175// CHECK: @llvm.ppc.altivec.vslo4176// CHECK-LE: @llvm.ppc.altivec.vslo4177 4178 res_vsc = vec_vslo(vsc, vsc);4179// CHECK: @llvm.ppc.altivec.vslo4180// CHECK-LE: @llvm.ppc.altivec.vslo4181 4182 res_vsc = vec_vslo(vsc, vuc);4183// CHECK: @llvm.ppc.altivec.vslo4184// CHECK-LE: @llvm.ppc.altivec.vslo4185 4186 res_vuc = vec_vslo(vuc, vsc);4187// CHECK: @llvm.ppc.altivec.vslo4188// CHECK-LE: @llvm.ppc.altivec.vslo4189 4190 res_vuc = vec_vslo(vuc, vuc);4191// CHECK: @llvm.ppc.altivec.vslo4192// CHECK-LE: @llvm.ppc.altivec.vslo4193 4194 res_vs = vec_vslo(vs, vsc);4195// CHECK: @llvm.ppc.altivec.vslo4196// CHECK-LE: @llvm.ppc.altivec.vslo4197 4198 res_vs = vec_vslo(vs, vuc);4199// CHECK: @llvm.ppc.altivec.vslo4200// CHECK-LE: @llvm.ppc.altivec.vslo4201 4202 res_vus = vec_vslo(vus, vsc);4203// CHECK: @llvm.ppc.altivec.vslo4204// CHECK-LE: @llvm.ppc.altivec.vslo4205 4206 res_vus = vec_vslo(vus, vuc);4207// CHECK: @llvm.ppc.altivec.vslo4208// CHECK-LE: @llvm.ppc.altivec.vslo4209 4210 res_vp = vec_vslo(vp, vsc);4211// CHECK: @llvm.ppc.altivec.vslo4212// CHECK-LE: @llvm.ppc.altivec.vslo4213 4214 res_vp = vec_vslo(vp, vuc);4215// CHECK: @llvm.ppc.altivec.vslo4216// CHECK-LE: @llvm.ppc.altivec.vslo4217 4218 res_vi = vec_vslo(vi, vsc);4219// CHECK: @llvm.ppc.altivec.vslo4220// CHECK-LE: @llvm.ppc.altivec.vslo4221 4222 res_vi = vec_vslo(vi, vuc);4223// CHECK: @llvm.ppc.altivec.vslo4224// CHECK-LE: @llvm.ppc.altivec.vslo4225 4226 res_vui = vec_vslo(vui, vsc);4227// CHECK: @llvm.ppc.altivec.vslo4228// CHECK-LE: @llvm.ppc.altivec.vslo4229 4230 res_vui = vec_vslo(vui, vuc);4231// CHECK: @llvm.ppc.altivec.vslo4232// CHECK-LE: @llvm.ppc.altivec.vslo4233 4234 res_vf = vec_vslo(vf, vsc);4235// CHECK: @llvm.ppc.altivec.vslo4236// CHECK-LE: @llvm.ppc.altivec.vslo4237 4238 res_vf = vec_vslo(vf, vuc);4239// CHECK: @llvm.ppc.altivec.vslo4240// CHECK-LE: @llvm.ppc.altivec.vslo4241 4242 /* vec_splat */4243 res_vsc = vec_splat(vsc, 0);4244// CHECK: @llvm.ppc.altivec.vperm4245// CHECK-LE: @llvm.ppc.altivec.vperm4246 4247 res_vuc = vec_splat(vuc, 0);4248// CHECK: @llvm.ppc.altivec.vperm4249// CHECK-LE: @llvm.ppc.altivec.vperm4250 4251 res_vbc = vec_splat(vbc, 0);4252// CHECK: @llvm.ppc.altivec.vperm4253// CHECK-LE: @llvm.ppc.altivec.vperm4254 4255 res_vs = vec_splat(vs, 0);4256// CHECK: @llvm.ppc.altivec.vperm4257// CHECK-LE: @llvm.ppc.altivec.vperm4258 4259 res_vus = vec_splat(vus, 0);4260// CHECK: @llvm.ppc.altivec.vperm4261// CHECK-LE: @llvm.ppc.altivec.vperm4262 4263 res_vbs = vec_splat(vbs, 0);4264// CHECK: @llvm.ppc.altivec.vperm4265// CHECK-LE: @llvm.ppc.altivec.vperm4266 4267 res_vp = vec_splat(vp, 0);4268// CHECK: @llvm.ppc.altivec.vperm4269// CHECK-LE: @llvm.ppc.altivec.vperm4270 4271 res_vi = vec_splat(vi, 0);4272// CHECK: @llvm.ppc.altivec.vperm4273// CHECK-LE: @llvm.ppc.altivec.vperm4274 4275 res_vui = vec_splat(vui, 0);4276// CHECK: @llvm.ppc.altivec.vperm4277// CHECK-LE: @llvm.ppc.altivec.vperm4278 4279 res_vbi = vec_splat(vbi, 0);4280// CHECK: @llvm.ppc.altivec.vperm4281// CHECK-LE: @llvm.ppc.altivec.vperm4282 4283 res_vf = vec_splat(vf, 0);4284// CHECK: @llvm.ppc.altivec.vperm4285// CHECK-LE: @llvm.ppc.altivec.vperm4286 4287 res_vsc = vec_vspltb(vsc, 0);4288// CHECK: @llvm.ppc.altivec.vperm4289// CHECK-LE: @llvm.ppc.altivec.vperm4290 4291 res_vuc = vec_vspltb(vuc, 0);4292// CHECK: @llvm.ppc.altivec.vperm4293// CHECK-LE: @llvm.ppc.altivec.vperm4294 4295 res_vbc = vec_vspltb(vbc, 0);4296// CHECK: @llvm.ppc.altivec.vperm4297// CHECK-LE: @llvm.ppc.altivec.vperm4298 4299 res_vs = vec_vsplth(vs, 0);4300// CHECK: @llvm.ppc.altivec.vperm4301// CHECK-LE: @llvm.ppc.altivec.vperm4302 4303 res_vus = vec_vsplth(vus, 0);4304// CHECK: @llvm.ppc.altivec.vperm4305// CHECK-LE: @llvm.ppc.altivec.vperm4306 4307 res_vbs = vec_vsplth(vbs, 0);4308// CHECK: @llvm.ppc.altivec.vperm4309// CHECK-LE: @llvm.ppc.altivec.vperm4310 4311 res_vp = vec_vsplth(vp, 0);4312// CHECK: @llvm.ppc.altivec.vperm4313// CHECK-LE: @llvm.ppc.altivec.vperm4314 4315 res_vi = vec_vspltw(vi, 0);4316// CHECK: @llvm.ppc.altivec.vperm4317// CHECK-LE: @llvm.ppc.altivec.vperm4318 4319 res_vui = vec_vspltw(vui, 0);4320// CHECK: @llvm.ppc.altivec.vperm4321// CHECK-LE: @llvm.ppc.altivec.vperm4322 4323 res_vbi = vec_vspltw(vbi, 0);4324// CHECK: @llvm.ppc.altivec.vperm4325// CHECK-LE: @llvm.ppc.altivec.vperm4326 4327 res_vf = vec_vspltw(vf, 0);4328// CHECK: @llvm.ppc.altivec.vperm4329// CHECK-LE: @llvm.ppc.altivec.vperm4330 4331 /* vec_splat_s8 */4332 res_vsc = vec_splat_s8(0x09); // TODO: add check4333 res_vsc = vec_vspltisb(0x09); // TODO: add check4334 4335 /* vec_splat_s16 */4336 res_vs = vec_splat_s16(0x09); // TODO: add check4337 res_vs = vec_vspltish(0x09); // TODO: add check4338 4339 /* vec_splat_s32 */4340 res_vi = vec_splat_s32(0x09); // TODO: add check4341 res_vi = vec_vspltisw(0x09); // TODO: add check4342 4343 /* vec_splat_u8 */4344 res_vuc = vec_splat_u8(0x09); // TODO: add check4345 4346 /* vec_splat_u16 */4347 res_vus = vec_splat_u16(0x09); // TODO: add check4348 4349 /* vec_splat_u32 */4350 res_vui = vec_splat_u32(0x09); // TODO: add check4351 4352 /* vec_sr */4353 res_vsc = vec_sr(vsc, vuc);4354// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4355// CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4356// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4357// CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4358 4359 res_vuc = vec_sr(vuc, vuc);4360// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4361// CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4362// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4363// CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4364 4365 res_vs = vec_sr(vs, vus);4366// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4367// CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4368// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4369// CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4370 4371 res_vus = vec_sr(vus, vus);4372// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4373// CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4374// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4375// CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4376 4377 res_vi = vec_sr(vi, vui);4378// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4379// CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4380// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4381// CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4382 4383 res_vui = vec_sr(vui, vui);4384// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4385// CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4386// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4387// CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4388 4389 res_vsc = vec_vsrb(vsc, vuc);4390// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4391// CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4392// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4393// CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4394 4395 res_vuc = vec_vsrb(vuc, vuc);4396// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4397// CHECK: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4398// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, splat (i8 8)4399// CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]4400 4401 res_vs = vec_vsrh(vs, vus);4402// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4403// CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4404// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4405// CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4406 4407 res_vus = vec_vsrh(vus, vus);4408// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4409// CHECK: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4410// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, splat (i16 16)4411// CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]4412 4413 res_vi = vec_vsrw(vi, vui);4414// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4415// CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4416// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4417// CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4418 4419 res_vui = vec_vsrw(vui, vui);4420// CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4421// CHECK: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4422// CHECK-LE: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, splat (i32 32)4423// CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]4424 4425 /* vec_sra */4426 res_vsc = vec_sra(vsc, vuc);4427// CHECK: @llvm.ppc.altivec.vsrab4428// CHECK-LE: @llvm.ppc.altivec.vsrab4429 4430 res_vuc = vec_sra(vuc, vuc);4431// CHECK: @llvm.ppc.altivec.vsrab4432// CHECK-LE: @llvm.ppc.altivec.vsrab4433 4434 res_vs = vec_sra(vs, vus);4435// CHECK: @llvm.ppc.altivec.vsrah4436// CHECK-LE: @llvm.ppc.altivec.vsrah4437 4438 res_vus = vec_sra(vus, vus);4439// CHECK: @llvm.ppc.altivec.vsrah4440// CHECK-LE: @llvm.ppc.altivec.vsrah4441 4442 res_vi = vec_sra(vi, vui);4443// CHECK: @llvm.ppc.altivec.vsraw4444// CHECK-LE: @llvm.ppc.altivec.vsraw4445 4446 res_vui = vec_sra(vui, vui);4447// CHECK: @llvm.ppc.altivec.vsraw4448// CHECK-LE: @llvm.ppc.altivec.vsraw4449 4450 res_vsc = vec_vsrab(vsc, vuc);4451// CHECK: @llvm.ppc.altivec.vsrab4452// CHECK-LE: @llvm.ppc.altivec.vsrab4453 4454 res_vuc = vec_vsrab(vuc, vuc);4455// CHECK: @llvm.ppc.altivec.vsrab4456// CHECK-LE: @llvm.ppc.altivec.vsrab4457 4458 res_vs = vec_vsrah(vs, vus);4459// CHECK: @llvm.ppc.altivec.vsrah4460// CHECK-LE: @llvm.ppc.altivec.vsrah4461 4462 res_vus = vec_vsrah(vus, vus);4463// CHECK: @llvm.ppc.altivec.vsrah4464// CHECK-LE: @llvm.ppc.altivec.vsrah4465 4466 res_vi = vec_vsraw(vi, vui);4467// CHECK: @llvm.ppc.altivec.vsraw4468// CHECK-LE: @llvm.ppc.altivec.vsraw4469 4470 res_vui = vec_vsraw(vui, vui);4471// CHECK: @llvm.ppc.altivec.vsraw4472// CHECK-LE: @llvm.ppc.altivec.vsraw4473 4474 /* vec_srl */4475 res_vsc = vec_srl(vsc, vuc);4476// CHECK: @llvm.ppc.altivec.vsr4477// CHECK-LE: @llvm.ppc.altivec.vsr4478 4479 res_vsc = vec_srl(vsc, vus);4480// CHECK: @llvm.ppc.altivec.vsr4481// CHECK-LE: @llvm.ppc.altivec.vsr4482 4483 res_vsc = vec_srl(vsc, vui);4484// CHECK: @llvm.ppc.altivec.vsr4485// CHECK-LE: @llvm.ppc.altivec.vsr4486 4487 res_vuc = vec_srl(vuc, vuc);4488// CHECK: @llvm.ppc.altivec.vsr4489// CHECK-LE: @llvm.ppc.altivec.vsr4490 4491 res_vuc = vec_srl(vuc, vus);4492// CHECK: @llvm.ppc.altivec.vsr4493// CHECK-LE: @llvm.ppc.altivec.vsr4494 4495 res_vuc = vec_srl(vuc, vui);4496// CHECK: @llvm.ppc.altivec.vsr4497// CHECK-LE: @llvm.ppc.altivec.vsr4498 4499 res_vbc = vec_srl(vbc, vuc);4500// CHECK: @llvm.ppc.altivec.vsr4501// CHECK-LE: @llvm.ppc.altivec.vsr4502 4503 res_vbc = vec_srl(vbc, vus);4504// CHECK: @llvm.ppc.altivec.vsr4505// CHECK-LE: @llvm.ppc.altivec.vsr4506 4507 res_vbc = vec_srl(vbc, vui);4508// CHECK: @llvm.ppc.altivec.vsr4509// CHECK-LE: @llvm.ppc.altivec.vsr4510 4511 res_vs = vec_srl(vs, vuc);4512// CHECK: @llvm.ppc.altivec.vsr4513// CHECK-LE: @llvm.ppc.altivec.vsr4514 4515 res_vs = vec_srl(vs, vus);4516// CHECK: @llvm.ppc.altivec.vsr4517// CHECK-LE: @llvm.ppc.altivec.vsr4518 4519 res_vs = vec_srl(vs, vui);4520// CHECK: @llvm.ppc.altivec.vsr4521// CHECK-LE: @llvm.ppc.altivec.vsr4522 4523 res_vus = vec_srl(vus, vuc);4524// CHECK: @llvm.ppc.altivec.vsr4525// CHECK-LE: @llvm.ppc.altivec.vsr4526 4527 res_vus = vec_srl(vus, vus);4528// CHECK: @llvm.ppc.altivec.vsr4529// CHECK-LE: @llvm.ppc.altivec.vsr4530 4531 res_vus = vec_srl(vus, vui);4532// CHECK: @llvm.ppc.altivec.vsr4533// CHECK-LE: @llvm.ppc.altivec.vsr4534 4535 res_vbs = vec_srl(vbs, vuc);4536// CHECK: @llvm.ppc.altivec.vsr4537// CHECK-LE: @llvm.ppc.altivec.vsr4538 4539 res_vbs = vec_srl(vbs, vus);4540// CHECK: @llvm.ppc.altivec.vsr4541// CHECK-LE: @llvm.ppc.altivec.vsr4542 4543 res_vbs = vec_srl(vbs, vui);4544// CHECK: @llvm.ppc.altivec.vsr4545// CHECK-LE: @llvm.ppc.altivec.vsr4546 4547 res_vp = vec_srl(vp, vuc);4548// CHECK: @llvm.ppc.altivec.vsr4549// CHECK-LE: @llvm.ppc.altivec.vsr4550 4551 res_vp = vec_srl(vp, vus);4552// CHECK: @llvm.ppc.altivec.vsr4553// CHECK-LE: @llvm.ppc.altivec.vsr4554 4555 res_vp = vec_srl(vp, vui);4556// CHECK: @llvm.ppc.altivec.vsr4557// CHECK-LE: @llvm.ppc.altivec.vsr4558 4559 res_vi = vec_srl(vi, vuc);4560// CHECK: @llvm.ppc.altivec.vsr4561// CHECK-LE: @llvm.ppc.altivec.vsr4562 4563 res_vi = vec_srl(vi, vus);4564// CHECK: @llvm.ppc.altivec.vsr4565// CHECK-LE: @llvm.ppc.altivec.vsr4566 4567 res_vi = vec_srl(vi, vui);4568// CHECK: @llvm.ppc.altivec.vsr4569// CHECK-LE: @llvm.ppc.altivec.vsr4570 4571 res_vui = vec_srl(vui, vuc);4572// CHECK: @llvm.ppc.altivec.vsr4573// CHECK-LE: @llvm.ppc.altivec.vsr4574 4575 res_vui = vec_srl(vui, vus);4576// CHECK: @llvm.ppc.altivec.vsr4577// CHECK-LE: @llvm.ppc.altivec.vsr4578 4579 res_vui = vec_srl(vui, vui);4580// CHECK: @llvm.ppc.altivec.vsr4581// CHECK-LE: @llvm.ppc.altivec.vsr4582 4583 res_vbi = vec_srl(vbi, vuc);4584// CHECK: @llvm.ppc.altivec.vsr4585// CHECK-LE: @llvm.ppc.altivec.vsr4586 4587 res_vbi = vec_srl(vbi, vus);4588// CHECK: @llvm.ppc.altivec.vsr4589// CHECK-LE: @llvm.ppc.altivec.vsr4590 4591 res_vbi = vec_srl(vbi, vui);4592// CHECK: @llvm.ppc.altivec.vsr4593// CHECK-LE: @llvm.ppc.altivec.vsr4594 4595 res_vsc = vec_vsr(vsc, vuc);4596// CHECK: @llvm.ppc.altivec.vsr4597// CHECK-LE: @llvm.ppc.altivec.vsr4598 4599 res_vsc = vec_vsr(vsc, vus);4600// CHECK: @llvm.ppc.altivec.vsr4601// CHECK-LE: @llvm.ppc.altivec.vsr4602 4603 res_vsc = vec_vsr(vsc, vui);4604// CHECK: @llvm.ppc.altivec.vsr4605// CHECK-LE: @llvm.ppc.altivec.vsr4606 4607 res_vuc = vec_vsr(vuc, vuc);4608// CHECK: @llvm.ppc.altivec.vsr4609// CHECK-LE: @llvm.ppc.altivec.vsr4610 4611 res_vuc = vec_vsr(vuc, vus);4612// CHECK: @llvm.ppc.altivec.vsr4613// CHECK-LE: @llvm.ppc.altivec.vsr4614 4615 res_vuc = vec_vsr(vuc, vui);4616// CHECK: @llvm.ppc.altivec.vsr4617// CHECK-LE: @llvm.ppc.altivec.vsr4618 4619 res_vbc = vec_vsr(vbc, vuc);4620// CHECK: @llvm.ppc.altivec.vsr4621// CHECK-LE: @llvm.ppc.altivec.vsr4622 4623 res_vbc = vec_vsr(vbc, vus);4624// CHECK: @llvm.ppc.altivec.vsr4625// CHECK-LE: @llvm.ppc.altivec.vsr4626 4627 res_vbc = vec_vsr(vbc, vui);4628// CHECK: @llvm.ppc.altivec.vsr4629// CHECK-LE: @llvm.ppc.altivec.vsr4630 4631 res_vs = vec_vsr(vs, vuc);4632// CHECK: @llvm.ppc.altivec.vsr4633// CHECK-LE: @llvm.ppc.altivec.vsr4634 4635 res_vs = vec_vsr(vs, vus);4636// CHECK: @llvm.ppc.altivec.vsr4637// CHECK-LE: @llvm.ppc.altivec.vsr4638 4639 res_vs = vec_vsr(vs, vui);4640// CHECK: @llvm.ppc.altivec.vsr4641// CHECK-LE: @llvm.ppc.altivec.vsr4642 4643 res_vus = vec_vsr(vus, vuc);4644// CHECK: @llvm.ppc.altivec.vsr4645// CHECK-LE: @llvm.ppc.altivec.vsr4646 4647 res_vus = vec_vsr(vus, vus);4648// CHECK: @llvm.ppc.altivec.vsr4649// CHECK-LE: @llvm.ppc.altivec.vsr4650 4651 res_vus = vec_vsr(vus, vui);4652// CHECK: @llvm.ppc.altivec.vsr4653// CHECK-LE: @llvm.ppc.altivec.vsr4654 4655 res_vbs = vec_vsr(vbs, vuc);4656// CHECK: @llvm.ppc.altivec.vsr4657// CHECK-LE: @llvm.ppc.altivec.vsr4658 4659 res_vbs = vec_vsr(vbs, vus);4660// CHECK: @llvm.ppc.altivec.vsr4661// CHECK-LE: @llvm.ppc.altivec.vsr4662 4663 res_vbs = vec_vsr(vbs, vui);4664// CHECK: @llvm.ppc.altivec.vsr4665// CHECK-LE: @llvm.ppc.altivec.vsr4666 4667 res_vp = vec_vsr(vp, vuc);4668// CHECK: @llvm.ppc.altivec.vsr4669// CHECK-LE: @llvm.ppc.altivec.vsr4670 4671 res_vp = vec_vsr(vp, vus);4672// CHECK: @llvm.ppc.altivec.vsr4673// CHECK-LE: @llvm.ppc.altivec.vsr4674 4675 res_vp = vec_vsr(vp, vui);4676// CHECK: @llvm.ppc.altivec.vsr4677// CHECK-LE: @llvm.ppc.altivec.vsr4678 4679 res_vi = vec_vsr(vi, vuc);4680// CHECK: @llvm.ppc.altivec.vsr4681// CHECK-LE: @llvm.ppc.altivec.vsr4682 4683 res_vi = vec_vsr(vi, vus);4684// CHECK: @llvm.ppc.altivec.vsr4685// CHECK-LE: @llvm.ppc.altivec.vsr4686 4687 res_vi = vec_vsr(vi, vui);4688// CHECK: @llvm.ppc.altivec.vsr4689// CHECK-LE: @llvm.ppc.altivec.vsr4690 4691 res_vui = vec_vsr(vui, vuc);4692// CHECK: @llvm.ppc.altivec.vsr4693// CHECK-LE: @llvm.ppc.altivec.vsr4694 4695 res_vui = vec_vsr(vui, vus);4696// CHECK: @llvm.ppc.altivec.vsr4697// CHECK-LE: @llvm.ppc.altivec.vsr4698 4699 res_vui = vec_vsr(vui, vui);4700// CHECK: @llvm.ppc.altivec.vsr4701// CHECK-LE: @llvm.ppc.altivec.vsr4702 4703 res_vbi = vec_vsr(vbi, vuc);4704// CHECK: @llvm.ppc.altivec.vsr4705// CHECK-LE: @llvm.ppc.altivec.vsr4706 4707 res_vbi = vec_vsr(vbi, vus);4708// CHECK: @llvm.ppc.altivec.vsr4709// CHECK-LE: @llvm.ppc.altivec.vsr4710 4711 res_vbi = vec_vsr(vbi, vui);4712// CHECK: @llvm.ppc.altivec.vsr4713// CHECK-LE: @llvm.ppc.altivec.vsr4714 4715 /* vec_sro */4716 res_vsc = vec_sro(vsc, vsc);4717// CHECK: @llvm.ppc.altivec.vsro4718// CHECK-LE: @llvm.ppc.altivec.vsro4719 4720 res_vsc = vec_sro(vsc, vuc);4721// CHECK: @llvm.ppc.altivec.vsro4722// CHECK-LE: @llvm.ppc.altivec.vsro4723 4724 res_vuc = vec_sro(vuc, vsc);4725// CHECK: @llvm.ppc.altivec.vsro4726// CHECK-LE: @llvm.ppc.altivec.vsro4727 4728 res_vuc = vec_sro(vuc, vuc);4729// CHECK: @llvm.ppc.altivec.vsro4730// CHECK-LE: @llvm.ppc.altivec.vsro4731 4732 res_vs = vec_sro(vs, vsc);4733// CHECK: @llvm.ppc.altivec.vsro4734// CHECK-LE: @llvm.ppc.altivec.vsro4735 4736 res_vs = vec_sro(vs, vuc);4737// CHECK: @llvm.ppc.altivec.vsro4738// CHECK-LE: @llvm.ppc.altivec.vsro4739 4740 res_vus = vec_sro(vus, vsc);4741// CHECK: @llvm.ppc.altivec.vsro4742// CHECK-LE: @llvm.ppc.altivec.vsro4743 4744 res_vus = vec_sro(vus, vuc);4745// CHECK: @llvm.ppc.altivec.vsro4746// CHECK-LE: @llvm.ppc.altivec.vsro4747 4748 res_vp = vec_sro(vp, vsc);4749// CHECK: @llvm.ppc.altivec.vsro4750// CHECK-LE: @llvm.ppc.altivec.vsro4751 4752 res_vp = vec_sro(vp, vuc);4753// CHECK: @llvm.ppc.altivec.vsro4754// CHECK-LE: @llvm.ppc.altivec.vsro4755 4756 res_vi = vec_sro(vi, vsc);4757// CHECK: @llvm.ppc.altivec.vsro4758// CHECK-LE: @llvm.ppc.altivec.vsro4759 4760 res_vi = vec_sro(vi, vuc);4761// CHECK: @llvm.ppc.altivec.vsro4762// CHECK-LE: @llvm.ppc.altivec.vsro4763 4764 res_vui = vec_sro(vui, vsc);4765// CHECK: @llvm.ppc.altivec.vsro4766// CHECK-LE: @llvm.ppc.altivec.vsro4767 4768 res_vui = vec_sro(vui, vuc);4769// CHECK: @llvm.ppc.altivec.vsro4770// CHECK-LE: @llvm.ppc.altivec.vsro4771 4772 res_vf = vec_sro(vf, vsc);4773// CHECK: @llvm.ppc.altivec.vsro4774// CHECK-LE: @llvm.ppc.altivec.vsro4775 4776 res_vf = vec_sro(vf, vuc);4777// CHECK: @llvm.ppc.altivec.vsro4778// CHECK-LE: @llvm.ppc.altivec.vsro4779 4780 res_vsc = vec_vsro(vsc, vsc);4781// CHECK: @llvm.ppc.altivec.vsro4782// CHECK-LE: @llvm.ppc.altivec.vsro4783 4784 res_vsc = vec_vsro(vsc, vuc);4785// CHECK: @llvm.ppc.altivec.vsro4786// CHECK-LE: @llvm.ppc.altivec.vsro4787 4788 res_vuc = vec_vsro(vuc, vsc);4789// CHECK: @llvm.ppc.altivec.vsro4790// CHECK-LE: @llvm.ppc.altivec.vsro4791 4792 res_vuc = vec_vsro(vuc, vuc);4793// CHECK: @llvm.ppc.altivec.vsro4794// CHECK-LE: @llvm.ppc.altivec.vsro4795 4796 res_vs = vec_vsro(vs, vsc);4797// CHECK: @llvm.ppc.altivec.vsro4798// CHECK-LE: @llvm.ppc.altivec.vsro4799 4800 res_vs = vec_vsro(vs, vuc);4801// CHECK: @llvm.ppc.altivec.vsro4802// CHECK-LE: @llvm.ppc.altivec.vsro4803 4804 res_vus = vec_vsro(vus, vsc);4805// CHECK: @llvm.ppc.altivec.vsro4806// CHECK-LE: @llvm.ppc.altivec.vsro4807 4808 res_vus = vec_vsro(vus, vuc);4809// CHECK: @llvm.ppc.altivec.vsro4810// CHECK-LE: @llvm.ppc.altivec.vsro4811 4812 res_vp = vec_vsro(vp, vsc);4813// CHECK: @llvm.ppc.altivec.vsro4814// CHECK-LE: @llvm.ppc.altivec.vsro4815 4816 res_vp = vec_vsro(vp, vuc);4817// CHECK: @llvm.ppc.altivec.vsro4818// CHECK-LE: @llvm.ppc.altivec.vsro4819 4820 res_vi = vec_vsro(vi, vsc);4821// CHECK: @llvm.ppc.altivec.vsro4822// CHECK-LE: @llvm.ppc.altivec.vsro4823 4824 res_vi = vec_vsro(vi, vuc);4825// CHECK: @llvm.ppc.altivec.vsro4826// CHECK-LE: @llvm.ppc.altivec.vsro4827 4828 res_vui = vec_vsro(vui, vsc);4829// CHECK: @llvm.ppc.altivec.vsro4830// CHECK-LE: @llvm.ppc.altivec.vsro4831 4832 res_vui = vec_vsro(vui, vuc);4833// CHECK: @llvm.ppc.altivec.vsro4834// CHECK-LE: @llvm.ppc.altivec.vsro4835 4836 res_vf = vec_vsro(vf, vsc);4837// CHECK: @llvm.ppc.altivec.vsro4838// CHECK-LE: @llvm.ppc.altivec.vsro4839 4840 res_vf = vec_vsro(vf, vuc);4841// CHECK: @llvm.ppc.altivec.vsro4842// CHECK-LE: @llvm.ppc.altivec.vsro4843 4844 /* vec_st */4845 vec_st(vsc, 0, &vsc);4846// CHECK: @llvm.ppc.altivec.stvx4847// CHECK-LE: @llvm.ppc.altivec.stvx4848 4849 vec_st(vsc, 0, ¶m_sc);4850// CHECK: @llvm.ppc.altivec.stvx4851// CHECK-LE: @llvm.ppc.altivec.stvx4852 4853 vec_st(vuc, 0, &vuc);4854// CHECK: @llvm.ppc.altivec.stvx4855// CHECK-LE: @llvm.ppc.altivec.stvx4856 4857 vec_st(vuc, 0, ¶m_uc);4858// CHECK: @llvm.ppc.altivec.stvx4859// CHECK-LE: @llvm.ppc.altivec.stvx4860 4861 vec_st(vbc, 0, ¶m_uc);4862// CHECK: @llvm.ppc.altivec.stvx4863// CHECK-LE: @llvm.ppc.altivec.stvx4864 4865 vec_st(vbc, 0, ¶m_uc);4866// CHECK: @llvm.ppc.altivec.stvx4867// CHECK-LE: @llvm.ppc.altivec.stvx4868 4869 vec_st(vbc, 0, &vbc);4870// CHECK: @llvm.ppc.altivec.stvx4871// CHECK-LE: @llvm.ppc.altivec.stvx4872 4873 vec_st(vs, 0, &vs);4874// CHECK: @llvm.ppc.altivec.stvx4875// CHECK-LE: @llvm.ppc.altivec.stvx4876 4877 vec_st(vs, 0, ¶m_s);4878// CHECK: @llvm.ppc.altivec.stvx4879// CHECK-LE: @llvm.ppc.altivec.stvx4880 4881 vec_st(vus, 0, &vus);4882// CHECK: @llvm.ppc.altivec.stvx4883// CHECK-LE: @llvm.ppc.altivec.stvx4884 4885 vec_st(vus, 0, ¶m_us);4886// CHECK: @llvm.ppc.altivec.stvx4887// CHECK-LE: @llvm.ppc.altivec.stvx4888 4889 vec_st(vbs, 0, ¶m_s);4890// CHECK: @llvm.ppc.altivec.stvx4891// CHECK-LE: @llvm.ppc.altivec.stvx4892 4893 vec_st(vbs, 0, ¶m_us);4894// CHECK: @llvm.ppc.altivec.stvx4895// CHECK-LE: @llvm.ppc.altivec.stvx4896 4897 vec_st(vbs, 0, &vbs);4898// CHECK: @llvm.ppc.altivec.stvx4899// CHECK-LE: @llvm.ppc.altivec.stvx4900 4901 vec_st(vp, 0, ¶m_s);4902// CHECK: @llvm.ppc.altivec.stvx4903// CHECK-LE: @llvm.ppc.altivec.stvx4904 4905 vec_st(vp, 0, ¶m_us);4906// CHECK: @llvm.ppc.altivec.stvx4907// CHECK-LE: @llvm.ppc.altivec.stvx4908 4909 vec_st(vp, 0, &vp);4910// CHECK: @llvm.ppc.altivec.stvx4911// CHECK-LE: @llvm.ppc.altivec.stvx4912 4913 vec_st(vi, 0, &vi);4914// CHECK: @llvm.ppc.altivec.stvx4915// CHECK-LE: @llvm.ppc.altivec.stvx4916 4917 vec_st(vi, 0, ¶m_i);4918// CHECK: @llvm.ppc.altivec.stvx4919// CHECK-LE: @llvm.ppc.altivec.stvx4920 4921 vec_st(vui, 0, &vui);4922// CHECK: @llvm.ppc.altivec.stvx4923// CHECK-LE: @llvm.ppc.altivec.stvx4924 4925 vec_st(vui, 0, ¶m_ui);4926// CHECK: @llvm.ppc.altivec.stvx4927// CHECK-LE: @llvm.ppc.altivec.stvx4928 4929 vec_st(vbi, 0, ¶m_i);4930// CHECK: @llvm.ppc.altivec.stvx4931// CHECK-LE: @llvm.ppc.altivec.stvx4932 4933 vec_st(vbi, 0, ¶m_ui);4934// CHECK: @llvm.ppc.altivec.stvx4935// CHECK-LE: @llvm.ppc.altivec.stvx4936 4937 vec_st(vbi, 0, &vbi);4938// CHECK: @llvm.ppc.altivec.stvx4939// CHECK-LE: @llvm.ppc.altivec.stvx4940 4941 vec_st(vf, 0, &vf);4942// CHECK: @llvm.ppc.altivec.stvx4943// CHECK-LE: @llvm.ppc.altivec.stvx4944 4945 vec_st(vf, 0, ¶m_f);4946// CHECK: @llvm.ppc.altivec.stvx4947// CHECK-LE: @llvm.ppc.altivec.stvx4948 4949 vec_stvx(vsc, 0, &vsc);4950// CHECK: @llvm.ppc.altivec.stvx4951// CHECK-LE: @llvm.ppc.altivec.stvx4952 4953 vec_stvx(vsc, 0, ¶m_sc);4954// CHECK: @llvm.ppc.altivec.stvx4955// CHECK-LE: @llvm.ppc.altivec.stvx4956 4957 vec_stvx(vuc, 0, &vuc);4958// CHECK: @llvm.ppc.altivec.stvx4959// CHECK-LE: @llvm.ppc.altivec.stvx4960 4961 vec_stvx(vuc, 0, ¶m_uc);4962// CHECK: @llvm.ppc.altivec.stvx4963// CHECK-LE: @llvm.ppc.altivec.stvx4964 4965 vec_stvx(vbc, 0, ¶m_uc);4966// CHECK: @llvm.ppc.altivec.stvx4967// CHECK-LE: @llvm.ppc.altivec.stvx4968 4969 vec_stvx(vbc, 0, ¶m_uc);4970// CHECK: @llvm.ppc.altivec.stvx4971// CHECK-LE: @llvm.ppc.altivec.stvx4972 4973 vec_stvx(vbc, 0, &vbc);4974// CHECK: @llvm.ppc.altivec.stvx4975// CHECK-LE: @llvm.ppc.altivec.stvx4976 4977 vec_stvx(vs, 0, &vs);4978// CHECK: @llvm.ppc.altivec.stvx4979// CHECK-LE: @llvm.ppc.altivec.stvx4980 4981 vec_stvx(vs, 0, ¶m_s);4982// CHECK: @llvm.ppc.altivec.stvx4983// CHECK-LE: @llvm.ppc.altivec.stvx4984 4985 vec_stvx(vus, 0, &vus);4986// CHECK: @llvm.ppc.altivec.stvx4987// CHECK-LE: @llvm.ppc.altivec.stvx4988 4989 vec_stvx(vus, 0, ¶m_us);4990// CHECK: @llvm.ppc.altivec.stvx4991// CHECK-LE: @llvm.ppc.altivec.stvx4992 4993 vec_stvx(vbs, 0, ¶m_s);4994// CHECK: @llvm.ppc.altivec.stvx4995// CHECK-LE: @llvm.ppc.altivec.stvx4996 4997 vec_stvx(vbs, 0, ¶m_us);4998// CHECK: @llvm.ppc.altivec.stvx4999// CHECK-LE: @llvm.ppc.altivec.stvx5000 5001 vec_stvx(vbs, 0, &vbs);5002// CHECK: @llvm.ppc.altivec.stvx5003// CHECK-LE: @llvm.ppc.altivec.stvx5004 5005 vec_stvx(vp, 0, ¶m_s);5006// CHECK: @llvm.ppc.altivec.stvx5007// CHECK-LE: @llvm.ppc.altivec.stvx5008 5009 vec_stvx(vp, 0, ¶m_us);5010// CHECK: @llvm.ppc.altivec.stvx5011// CHECK-LE: @llvm.ppc.altivec.stvx5012 5013 vec_stvx(vp, 0, &vp);5014// CHECK: @llvm.ppc.altivec.stvx5015// CHECK-LE: @llvm.ppc.altivec.stvx5016 5017 vec_stvx(vi, 0, &vi);5018// CHECK: @llvm.ppc.altivec.stvx5019// CHECK-LE: @llvm.ppc.altivec.stvx5020 5021 vec_stvx(vi, 0, ¶m_i);5022// CHECK: @llvm.ppc.altivec.stvx5023// CHECK-LE: @llvm.ppc.altivec.stvx5024 5025 vec_stvx(vui, 0, &vui);5026// CHECK: @llvm.ppc.altivec.stvx5027// CHECK-LE: @llvm.ppc.altivec.stvx5028 5029 vec_stvx(vui, 0, ¶m_ui);5030// CHECK: @llvm.ppc.altivec.stvx5031// CHECK-LE: @llvm.ppc.altivec.stvx5032 5033 vec_stvx(vbi, 0, ¶m_i);5034// CHECK: @llvm.ppc.altivec.stvx5035// CHECK-LE: @llvm.ppc.altivec.stvx5036 5037 vec_stvx(vbi, 0, ¶m_ui);5038// CHECK: @llvm.ppc.altivec.stvx5039// CHECK-LE: @llvm.ppc.altivec.stvx5040 5041 vec_stvx(vbi, 0, &vbi);5042// CHECK: @llvm.ppc.altivec.stvx5043// CHECK-LE: @llvm.ppc.altivec.stvx5044 5045 vec_stvx(vf, 0, &vf);5046// CHECK: @llvm.ppc.altivec.stvx5047// CHECK-LE: @llvm.ppc.altivec.stvx5048 5049 vec_stvx(vf, 0, ¶m_f);5050// CHECK: @llvm.ppc.altivec.stvx5051// CHECK-LE: @llvm.ppc.altivec.stvx5052 5053 /* vec_ste */5054 vec_ste(vsc, 0, ¶m_sc);5055// CHECK: @llvm.ppc.altivec.stvebx5056// CHECK-LE: @llvm.ppc.altivec.stvebx5057 5058 vec_ste(vuc, 0, ¶m_uc);5059// CHECK: @llvm.ppc.altivec.stvebx5060// CHECK-LE: @llvm.ppc.altivec.stvebx5061 5062 vec_ste(vbc, 0, ¶m_sc);5063// CHECK: @llvm.ppc.altivec.stvebx5064// CHECK-LE: @llvm.ppc.altivec.stvebx5065 5066 vec_ste(vbc, 0, ¶m_uc);5067// CHECK: @llvm.ppc.altivec.stvebx5068// CHECK-LE: @llvm.ppc.altivec.stvebx5069 5070 vec_ste(vs, 0, ¶m_s);5071// CHECK: @llvm.ppc.altivec.stvehx5072// CHECK-LE: @llvm.ppc.altivec.stvehx5073 5074 vec_ste(vus, 0, ¶m_us);5075// CHECK: @llvm.ppc.altivec.stvehx5076// CHECK-LE: @llvm.ppc.altivec.stvehx5077 5078 vec_ste(vbs, 0, ¶m_s);5079// CHECK: @llvm.ppc.altivec.stvehx5080// CHECK-LE: @llvm.ppc.altivec.stvehx5081 5082 vec_ste(vbs, 0, ¶m_us);5083// CHECK: @llvm.ppc.altivec.stvehx5084// CHECK-LE: @llvm.ppc.altivec.stvehx5085 5086 vec_ste(vp, 0, ¶m_s);5087// CHECK: @llvm.ppc.altivec.stvehx5088// CHECK-LE: @llvm.ppc.altivec.stvehx5089 5090 vec_ste(vp, 0, ¶m_us);5091// CHECK: @llvm.ppc.altivec.stvehx5092// CHECK-LE: @llvm.ppc.altivec.stvehx5093 5094 vec_ste(vi, 0, ¶m_i);5095// CHECK: @llvm.ppc.altivec.stvewx5096// CHECK-LE: @llvm.ppc.altivec.stvewx5097 5098 vec_ste(vui, 0, ¶m_ui);5099// CHECK: @llvm.ppc.altivec.stvewx5100// CHECK-LE: @llvm.ppc.altivec.stvewx5101 5102 vec_ste(vbi, 0, ¶m_i);5103// CHECK: @llvm.ppc.altivec.stvewx5104// CHECK-LE: @llvm.ppc.altivec.stvewx5105 5106 vec_ste(vbi, 0, ¶m_ui);5107// CHECK: @llvm.ppc.altivec.stvewx5108// CHECK-LE: @llvm.ppc.altivec.stvewx5109 5110 vec_ste(vf, 0, ¶m_f);5111// CHECK: @llvm.ppc.altivec.stvewx5112// CHECK-LE: @llvm.ppc.altivec.stvewx5113 5114 vec_stvebx(vsc, 0, ¶m_sc);5115// CHECK: @llvm.ppc.altivec.stvebx5116// CHECK-LE: @llvm.ppc.altivec.stvebx5117 5118 vec_stvebx(vuc, 0, ¶m_uc);5119// CHECK: @llvm.ppc.altivec.stvebx5120// CHECK-LE: @llvm.ppc.altivec.stvebx5121 5122 vec_stvebx(vbc, 0, ¶m_sc);5123// CHECK: @llvm.ppc.altivec.stvebx5124// CHECK-LE: @llvm.ppc.altivec.stvebx5125 5126 vec_stvebx(vbc, 0, ¶m_uc);5127// CHECK: @llvm.ppc.altivec.stvebx5128// CHECK-LE: @llvm.ppc.altivec.stvebx5129 5130 vec_stvehx(vs, 0, ¶m_s);5131// CHECK: @llvm.ppc.altivec.stvehx5132// CHECK-LE: @llvm.ppc.altivec.stvehx5133 5134 vec_stvehx(vus, 0, ¶m_us);5135// CHECK: @llvm.ppc.altivec.stvehx5136// CHECK-LE: @llvm.ppc.altivec.stvehx5137 5138 vec_stvehx(vbs, 0, ¶m_s);5139// CHECK: @llvm.ppc.altivec.stvehx5140// CHECK-LE: @llvm.ppc.altivec.stvehx5141 5142 vec_stvehx(vbs, 0, ¶m_us);5143// CHECK: @llvm.ppc.altivec.stvehx5144// CHECK-LE: @llvm.ppc.altivec.stvehx5145 5146 vec_stvehx(vp, 0, ¶m_s);5147// CHECK: @llvm.ppc.altivec.stvehx5148// CHECK-LE: @llvm.ppc.altivec.stvehx5149 5150 vec_stvehx(vp, 0, ¶m_us);5151// CHECK: @llvm.ppc.altivec.stvehx5152// CHECK-LE: @llvm.ppc.altivec.stvehx5153 5154 vec_stvewx(vi, 0, ¶m_i);5155// CHECK: @llvm.ppc.altivec.stvewx5156// CHECK-LE: @llvm.ppc.altivec.stvewx5157 5158 vec_stvewx(vui, 0, ¶m_ui);5159// CHECK: @llvm.ppc.altivec.stvewx5160// CHECK-LE: @llvm.ppc.altivec.stvewx5161 5162 vec_stvewx(vbi, 0, ¶m_i);5163// CHECK: @llvm.ppc.altivec.stvewx5164// CHECK-LE: @llvm.ppc.altivec.stvewx5165 5166 vec_stvewx(vbi, 0, ¶m_ui);5167// CHECK: @llvm.ppc.altivec.stvewx5168// CHECK-LE: @llvm.ppc.altivec.stvewx5169 5170 vec_stvewx(vf, 0, ¶m_f);5171// CHECK: @llvm.ppc.altivec.stvewx5172// CHECK-LE: @llvm.ppc.altivec.stvewx5173 5174 /* vec_stl */5175 vec_stl(vsc, 0, &vsc);5176// CHECK: @llvm.ppc.altivec.stvxl5177// CHECK-LE: @llvm.ppc.altivec.stvxl5178 5179 vec_stl(vsc, 0, ¶m_sc);5180// CHECK: @llvm.ppc.altivec.stvxl5181// CHECK-LE: @llvm.ppc.altivec.stvxl5182 5183 vec_stl(vuc, 0, &vuc);5184// CHECK: @llvm.ppc.altivec.stvxl5185// CHECK-LE: @llvm.ppc.altivec.stvxl5186 5187 vec_stl(vuc, 0, ¶m_uc);5188// CHECK: @llvm.ppc.altivec.stvxl5189// CHECK-LE: @llvm.ppc.altivec.stvxl5190 5191 vec_stl(vbc, 0, ¶m_sc);5192// CHECK: @llvm.ppc.altivec.stvxl5193// CHECK-LE: @llvm.ppc.altivec.stvxl5194 5195 vec_stl(vbc, 0, ¶m_uc);5196// CHECK: @llvm.ppc.altivec.stvxl5197// CHECK-LE: @llvm.ppc.altivec.stvxl5198 5199 vec_stl(vbc, 0, &vbc);5200// CHECK: @llvm.ppc.altivec.stvxl5201// CHECK-LE: @llvm.ppc.altivec.stvxl5202 5203 vec_stl(vs, 0, &vs);5204// CHECK: @llvm.ppc.altivec.stvxl5205// CHECK-LE: @llvm.ppc.altivec.stvxl5206 5207 vec_stl(vs, 0, ¶m_s);5208// CHECK: @llvm.ppc.altivec.stvxl5209// CHECK-LE: @llvm.ppc.altivec.stvxl5210 5211 vec_stl(vus, 0, &vus);5212// CHECK: @llvm.ppc.altivec.stvxl5213// CHECK-LE: @llvm.ppc.altivec.stvxl5214 5215 vec_stl(vus, 0, ¶m_us);5216// CHECK: @llvm.ppc.altivec.stvxl5217// CHECK-LE: @llvm.ppc.altivec.stvxl5218 5219 vec_stl(vbs, 0, ¶m_s);5220// CHECK: @llvm.ppc.altivec.stvxl5221// CHECK-LE: @llvm.ppc.altivec.stvxl5222 5223 vec_stl(vbs, 0, ¶m_us);5224// CHECK: @llvm.ppc.altivec.stvxl5225// CHECK-LE: @llvm.ppc.altivec.stvxl5226 5227 vec_stl(vbs, 0, &vbs);5228// CHECK: @llvm.ppc.altivec.stvxl5229// CHECK-LE: @llvm.ppc.altivec.stvxl5230 5231 vec_stl(vp, 0, ¶m_s);5232// CHECK: @llvm.ppc.altivec.stvxl5233// CHECK-LE: @llvm.ppc.altivec.stvxl5234 5235 vec_stl(vp, 0, ¶m_us);5236// CHECK: @llvm.ppc.altivec.stvxl5237// CHECK-LE: @llvm.ppc.altivec.stvxl5238 5239 vec_stl(vp, 0, &vp);5240// CHECK: @llvm.ppc.altivec.stvxl5241// CHECK-LE: @llvm.ppc.altivec.stvxl5242 5243 vec_stl(vi, 0, &vi);5244// CHECK: @llvm.ppc.altivec.stvxl5245// CHECK-LE: @llvm.ppc.altivec.stvxl5246 5247 vec_stl(vi, 0, ¶m_i);5248// CHECK: @llvm.ppc.altivec.stvxl5249// CHECK-LE: @llvm.ppc.altivec.stvxl5250 5251 vec_stl(vui, 0, &vui);5252// CHECK: @llvm.ppc.altivec.stvxl5253// CHECK-LE: @llvm.ppc.altivec.stvxl5254 5255 vec_stl(vui, 0, ¶m_ui);5256// CHECK: @llvm.ppc.altivec.stvxl5257// CHECK-LE: @llvm.ppc.altivec.stvxl5258 5259 vec_stl(vbi, 0, ¶m_i);5260// CHECK: @llvm.ppc.altivec.stvxl5261// CHECK-LE: @llvm.ppc.altivec.stvxl5262 5263 vec_stl(vbi, 0, ¶m_ui);5264// CHECK: @llvm.ppc.altivec.stvxl5265// CHECK-LE: @llvm.ppc.altivec.stvxl5266 5267 vec_stl(vbi, 0, &vbi);5268// CHECK: @llvm.ppc.altivec.stvxl5269// CHECK-LE: @llvm.ppc.altivec.stvxl5270 5271 vec_stl(vf, 0, &vf);5272// CHECK: @llvm.ppc.altivec.stvxl5273// CHECK-LE: @llvm.ppc.altivec.stvxl5274 5275 vec_stl(vf, 0, ¶m_f);5276// CHECK: @llvm.ppc.altivec.stvxl5277// CHECK-LE: @llvm.ppc.altivec.stvxl5278 5279 vec_stvxl(vsc, 0, &vsc);5280// CHECK: @llvm.ppc.altivec.stvxl5281// CHECK-LE: @llvm.ppc.altivec.stvxl5282 5283 vec_stvxl(vsc, 0, ¶m_sc);5284// CHECK: @llvm.ppc.altivec.stvxl5285// CHECK-LE: @llvm.ppc.altivec.stvxl5286 5287 vec_stvxl(vuc, 0, &vuc);5288// CHECK: @llvm.ppc.altivec.stvxl5289// CHECK-LE: @llvm.ppc.altivec.stvxl5290 5291 vec_stvxl(vuc, 0, ¶m_uc);5292// CHECK: @llvm.ppc.altivec.stvxl5293// CHECK-LE: @llvm.ppc.altivec.stvxl5294 5295 vec_stvxl(vbc, 0, ¶m_sc);5296// CHECK: @llvm.ppc.altivec.stvxl5297// CHECK-LE: @llvm.ppc.altivec.stvxl5298 5299 vec_stvxl(vbc, 0, ¶m_uc);5300// CHECK: @llvm.ppc.altivec.stvxl5301// CHECK-LE: @llvm.ppc.altivec.stvxl5302 5303 vec_stvxl(vbc, 0, &vbc);5304// CHECK: @llvm.ppc.altivec.stvxl5305// CHECK-LE: @llvm.ppc.altivec.stvxl5306 5307 vec_stvxl(vs, 0, &vs);5308// CHECK: @llvm.ppc.altivec.stvxl5309// CHECK-LE: @llvm.ppc.altivec.stvxl5310 5311 vec_stvxl(vs, 0, ¶m_s);5312// CHECK: @llvm.ppc.altivec.stvxl5313// CHECK-LE: @llvm.ppc.altivec.stvxl5314 5315 vec_stvxl(vus, 0, &vus);5316// CHECK: @llvm.ppc.altivec.stvxl5317// CHECK-LE: @llvm.ppc.altivec.stvxl5318 5319 vec_stvxl(vus, 0, ¶m_us);5320// CHECK: @llvm.ppc.altivec.stvxl5321// CHECK-LE: @llvm.ppc.altivec.stvxl5322 5323 vec_stvxl(vbs, 0, ¶m_s);5324// CHECK: @llvm.ppc.altivec.stvxl5325// CHECK-LE: @llvm.ppc.altivec.stvxl5326 5327 vec_stvxl(vbs, 0, ¶m_us);5328// CHECK: @llvm.ppc.altivec.stvxl5329// CHECK-LE: @llvm.ppc.altivec.stvxl5330 5331 vec_stvxl(vbs, 0, &vbs);5332// CHECK: @llvm.ppc.altivec.stvxl5333// CHECK-LE: @llvm.ppc.altivec.stvxl5334 5335 vec_stvxl(vp, 0, ¶m_s);5336// CHECK: @llvm.ppc.altivec.stvxl5337// CHECK-LE: @llvm.ppc.altivec.stvxl5338 5339 vec_stvxl(vp, 0, ¶m_us);5340// CHECK: @llvm.ppc.altivec.stvxl5341// CHECK-LE: @llvm.ppc.altivec.stvxl5342 5343 vec_stvxl(vp, 0, &vp);5344// CHECK: @llvm.ppc.altivec.stvxl5345// CHECK-LE: @llvm.ppc.altivec.stvxl5346 5347 vec_stvxl(vi, 0, &vi);5348// CHECK: @llvm.ppc.altivec.stvxl5349// CHECK-LE: @llvm.ppc.altivec.stvxl5350 5351 vec_stvxl(vi, 0, ¶m_i);5352// CHECK: @llvm.ppc.altivec.stvxl5353// CHECK-LE: @llvm.ppc.altivec.stvxl5354 5355 vec_stvxl(vui, 0, &vui);5356// CHECK: @llvm.ppc.altivec.stvxl5357// CHECK-LE: @llvm.ppc.altivec.stvxl5358 5359 vec_stvxl(vui, 0, ¶m_ui);5360// CHECK: @llvm.ppc.altivec.stvxl5361// CHECK-LE: @llvm.ppc.altivec.stvxl5362 5363 vec_stvxl(vbi, 0, ¶m_i);5364// CHECK: @llvm.ppc.altivec.stvxl5365// CHECK-LE: @llvm.ppc.altivec.stvxl5366 5367 vec_stvxl(vbi, 0, ¶m_ui);5368// CHECK: @llvm.ppc.altivec.stvxl5369// CHECK-LE: @llvm.ppc.altivec.stvxl5370 5371 vec_stvxl(vbi, 0, &vbi);5372// CHECK: @llvm.ppc.altivec.stvxl5373// CHECK-LE: @llvm.ppc.altivec.stvxl5374 5375 vec_stvxl(vf, 0, &vf);5376// CHECK: @llvm.ppc.altivec.stvxl5377// CHECK-LE: @llvm.ppc.altivec.stvxl5378 5379 vec_stvxl(vf, 0, ¶m_f);5380// CHECK: @llvm.ppc.altivec.stvxl5381// CHECK-LE: @llvm.ppc.altivec.stvxl5382 5383 /* vec_sub */5384 res_vsc = vec_sub(vsc, vsc);5385// CHECK: sub <16 x i8>5386// CHECK-LE: sub <16 x i8>5387 5388 res_vsc = vec_sub(vbc, vsc);5389// CHECK: sub <16 x i8>5390// CHECK-LE: sub <16 x i8>5391 5392 res_vsc = vec_sub(vsc, vbc);5393// CHECK: sub <16 x i8>5394// CHECK-LE: sub <16 x i8>5395 5396 res_vuc = vec_sub(vuc, vuc);5397// CHECK: sub <16 x i8>5398// CHECK-LE: sub <16 x i8>5399 5400 res_vuc = vec_sub(vbc, vuc);5401// CHECK: sub <16 x i8>5402// CHECK-LE: sub <16 x i8>5403 5404 res_vuc = vec_sub(vuc, vbc);5405// CHECK: sub <16 x i8>5406// CHECK-LE: sub <16 x i8>5407 5408 res_vs = vec_sub(vs, vs);5409// CHECK: sub <8 x i16>5410// CHECK-LE: sub <8 x i16>5411 5412 res_vs = vec_sub(vbs, vs);5413// CHECK: sub <8 x i16>5414// CHECK-LE: sub <8 x i16>5415 5416 res_vs = vec_sub(vs, vbs);5417// CHECK: sub <8 x i16>5418// CHECK-LE: sub <8 x i16>5419 5420 res_vus = vec_sub(vus, vus);5421// CHECK: sub <8 x i16>5422// CHECK-LE: sub <8 x i16>5423 5424 res_vus = vec_sub(vbs, vus);5425// CHECK: sub <8 x i16>5426// CHECK-LE: sub <8 x i16>5427 5428 res_vus = vec_sub(vus, vbs);5429// CHECK: sub <8 x i16>5430// CHECK-LE: sub <8 x i16>5431 5432 res_vi = vec_sub(vi, vi);5433// CHECK: sub <4 x i32>5434// CHECK-LE: sub <4 x i32>5435 5436 res_vi = vec_sub(vbi, vi);5437// CHECK: sub <4 x i32>5438// CHECK-LE: sub <4 x i32>5439 5440 res_vi = vec_sub(vi, vbi);5441// CHECK: sub <4 x i32>5442// CHECK-LE: sub <4 x i32>5443 5444 res_vui = vec_sub(vui, vui);5445// CHECK: sub <4 x i32>5446// CHECK-LE: sub <4 x i32>5447 5448 res_vui = vec_sub(vbi, vui);5449// CHECK: sub <4 x i32>5450// CHECK-LE: sub <4 x i32>5451 5452 res_vui = vec_sub(vui, vbi);5453// CHECK: sub <4 x i32>5454// CHECK-LE: sub <4 x i32>5455 5456 res_vf = vec_sub(vf, vf);5457// CHECK: fsub <4 x float>5458// CHECK-LE: fsub <4 x float>5459 5460 5461 5462 res_vsc = vec_vsububm(vsc, vsc);5463// CHECK: sub <16 x i8>5464// CHECK-LE: sub <16 x i8>5465 5466 res_vsc = vec_vsububm(vbc, vsc);5467// CHECK: sub <16 x i8>5468// CHECK-LE: sub <16 x i8>5469 5470 res_vsc = vec_vsububm(vsc, vbc);5471// CHECK: sub <16 x i8>5472// CHECK-LE: sub <16 x i8>5473 5474 res_vuc = vec_vsububm(vuc, vuc);5475// CHECK: sub <16 x i8>5476// CHECK-LE: sub <16 x i8>5477 5478 res_vuc = vec_vsububm(vbc, vuc);5479// CHECK: sub <16 x i8>5480// CHECK-LE: sub <16 x i8>5481 5482 res_vuc = vec_vsububm(vuc, vbc);5483// CHECK: sub <16 x i8>5484// CHECK-LE: sub <16 x i8>5485 5486 res_vs = vec_vsubuhm(vs, vs);5487// CHECK: sub <8 x i16>5488// CHECK-LE: sub <8 x i16>5489 5490 res_vs = vec_vsubuhm(vbs, vs);5491// CHECK: sub <8 x i16>5492// CHECK-LE: sub <8 x i16>5493 5494 res_vs = vec_vsubuhm(vs, vbs);5495// CHECK: sub <8 x i16>5496// CHECK-LE: sub <8 x i16>5497 5498 res_vus = vec_vsubuhm(vus, vus);5499// CHECK: sub <8 x i16>5500// CHECK-LE: sub <8 x i16>5501 5502 res_vus = vec_vsubuhm(vbs, vus);5503// CHECK: sub <8 x i16>5504// CHECK-LE: sub <8 x i16>5505 5506 res_vus = vec_vsubuhm(vus, vbs);5507// CHECK: sub <8 x i16>5508// CHECK-LE: sub <8 x i16>5509 5510 res_vi = vec_vsubuwm(vi, vi);5511// CHECK: sub <4 x i32>5512// CHECK-LE: sub <4 x i32>5513 5514 res_vi = vec_vsubuwm(vbi, vi);5515// CHECK: sub <4 x i32>5516// CHECK-LE: sub <4 x i32>5517 5518 res_vi = vec_vsubuwm(vi, vbi);5519// CHECK: sub <4 x i32>5520// CHECK-LE: sub <4 x i32>5521 5522 res_vui = vec_vsubuwm(vui, vui);5523// CHECK: sub <4 x i32>5524// CHECK-LE: sub <4 x i32>5525 5526 res_vui = vec_vsubuwm(vbi, vui);5527// CHECK: sub <4 x i32>5528// CHECK-LE: sub <4 x i32>5529 5530 res_vui = vec_vsubuwm(vui, vbi);5531// CHECK: sub <4 x i32>5532// CHECK-LE: sub <4 x i32>5533 5534 res_vf = vec_vsubfp(vf, vf);5535// CHECK: fsub <4 x float>5536// CHECK-LE: fsub <4 x float>5537 5538 /* vec_subc */5539 res_vui = vec_subc(vui, vui);5540// CHECK: @llvm.ppc.altivec.vsubcuw5541// CHECK-LE: @llvm.ppc.altivec.vsubcuw5542 5543 res_vi = vec_subc(vi, vi);5544// CHECK: @llvm.ppc.altivec.vsubcuw5545// CHECK-LE: @llvm.ppc.altivec.vsubcuw5546 5547 res_vui = vec_vsubcuw(vui, vui);5548// CHECK: @llvm.ppc.altivec.vsubcuw5549// CHECK-LE: @llvm.ppc.altivec.vsubcuw5550 5551 /* vec_subs */5552 res_vsc = vec_subs(vsc, vsc);5553// CHECK: @llvm.ppc.altivec.vsubsbs5554// CHECK-LE: @llvm.ppc.altivec.vsubsbs5555 5556 res_vsc = vec_subs(vbc, vsc);5557// CHECK: @llvm.ppc.altivec.vsubsbs5558// CHECK-LE: @llvm.ppc.altivec.vsubsbs5559 5560 res_vsc = vec_subs(vsc, vbc);5561// CHECK: @llvm.ppc.altivec.vsubsbs5562// CHECK-LE: @llvm.ppc.altivec.vsubsbs5563 5564 res_vuc = vec_subs(vuc, vuc);5565// CHECK: @llvm.ppc.altivec.vsububs5566// CHECK-LE: @llvm.ppc.altivec.vsububs5567 5568 res_vuc = vec_subs(vbc, vuc);5569// CHECK: @llvm.ppc.altivec.vsububs5570// CHECK-LE: @llvm.ppc.altivec.vsububs5571 5572 res_vuc = vec_subs(vuc, vbc);5573// CHECK: @llvm.ppc.altivec.vsububs5574// CHECK-LE: @llvm.ppc.altivec.vsububs5575 5576 res_vs = vec_subs(vs, vs);5577// CHECK: @llvm.ppc.altivec.vsubshs5578// CHECK-LE: @llvm.ppc.altivec.vsubshs5579 5580 res_vs = vec_subs(vbs, vs);5581// CHECK: @llvm.ppc.altivec.vsubshs5582// CHECK-LE: @llvm.ppc.altivec.vsubshs5583 5584 res_vs = vec_subs(vs, vbs);5585// CHECK: @llvm.ppc.altivec.vsubshs5586// CHECK-LE: @llvm.ppc.altivec.vsubshs5587 5588 res_vus = vec_subs(vus, vus);5589// CHECK: @llvm.ppc.altivec.vsubuhs5590// CHECK-LE: @llvm.ppc.altivec.vsubuhs5591 5592 res_vus = vec_subs(vbs, vus);5593// CHECK: @llvm.ppc.altivec.vsubuhs5594// CHECK-LE: @llvm.ppc.altivec.vsubuhs5595 5596 res_vus = vec_subs(vus, vbs);5597// CHECK: @llvm.ppc.altivec.vsubuhs5598// CHECK-LE: @llvm.ppc.altivec.vsubuhs5599 5600 res_vi = vec_subs(vi, vi);5601// CHECK: @llvm.ppc.altivec.vsubsws5602// CHECK-LE: @llvm.ppc.altivec.vsubsws5603 5604 res_vi = vec_subs(vbi, vi);5605// CHECK: @llvm.ppc.altivec.vsubsws5606// CHECK-LE: @llvm.ppc.altivec.vsubsws5607 5608 res_vi = vec_subs(vi, vbi);5609// CHECK: @llvm.ppc.altivec.vsubsws5610// CHECK-LE: @llvm.ppc.altivec.vsubsws5611 5612 res_vui = vec_subs(vui, vui);5613// CHECK: @llvm.ppc.altivec.vsubuws5614// CHECK-LE: @llvm.ppc.altivec.vsubuws5615 5616 res_vui = vec_subs(vbi, vui);5617// CHECK: @llvm.ppc.altivec.vsubuws5618// CHECK-LE: @llvm.ppc.altivec.vsubuws5619 5620 res_vui = vec_subs(vui, vbi);5621// CHECK: @llvm.ppc.altivec.vsubuws5622// CHECK-LE: @llvm.ppc.altivec.vsubuws5623 5624 res_vi = vec_sube(vi, vi, vi);5625// CHECK: and <4 x i32>5626// CHECK: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1)5627// CHECK: add <4 x i32>5628// CHECK: add <4 x i32>5629// CHECK-LE: and <4 x i32>5630// CHECK-LE: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1)5631// CHECK-LE: add <4 x i32>5632// CHECK-LE: add <4 x i32>5633 5634 res_vui = vec_sube(vui, vui, vui);5635// CHECK: and <4 x i32>5636// CHECK: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1)5637// CHECK: add <4 x i32>5638// CHECK: add <4 x i32>5639// CHECK-LE: and <4 x i32>5640// CHECK-LE: xor <4 x i32> {{%[0-9]+}}, splat (i32 -1)5641// CHECK-LE: add <4 x i32>5642// CHECK-LE: add <4 x i32>5643 5644 res_vsc = vec_vsubsbs(vsc, vsc);5645// CHECK: @llvm.ppc.altivec.vsubsbs5646// CHECK-LE: @llvm.ppc.altivec.vsubsbs5647 5648 res_vsc = vec_vsubsbs(vbc, vsc);5649// CHECK: @llvm.ppc.altivec.vsubsbs5650// CHECK-LE: @llvm.ppc.altivec.vsubsbs5651 5652 res_vsc = vec_vsubsbs(vsc, vbc);5653// CHECK: @llvm.ppc.altivec.vsubsbs5654// CHECK-LE: @llvm.ppc.altivec.vsubsbs5655 5656 res_vuc = vec_vsububs(vuc, vuc);5657// CHECK: @llvm.ppc.altivec.vsububs5658// CHECK-LE: @llvm.ppc.altivec.vsububs5659 5660 res_vuc = vec_vsububs(vbc, vuc);5661// CHECK: @llvm.ppc.altivec.vsububs5662// CHECK-LE: @llvm.ppc.altivec.vsububs5663 5664 res_vuc = vec_vsububs(vuc, vbc);5665// CHECK: @llvm.ppc.altivec.vsububs5666// CHECK-LE: @llvm.ppc.altivec.vsububs5667 5668 res_vs = vec_vsubshs(vs, vs);5669// CHECK: @llvm.ppc.altivec.vsubshs5670// CHECK-LE: @llvm.ppc.altivec.vsubshs5671 5672 res_vs = vec_vsubshs(vbs, vs);5673// CHECK: @llvm.ppc.altivec.vsubshs5674// CHECK-LE: @llvm.ppc.altivec.vsubshs5675 5676 res_vs = vec_vsubshs(vs, vbs);5677// CHECK: @llvm.ppc.altivec.vsubshs5678// CHECK-LE: @llvm.ppc.altivec.vsubshs5679 5680 res_vus = vec_vsubuhs(vus, vus);5681// CHECK: @llvm.ppc.altivec.vsubuhs5682// CHECK-LE: @llvm.ppc.altivec.vsubuhs5683 5684 res_vus = vec_vsubuhs(vbs, vus);5685// CHECK: @llvm.ppc.altivec.vsubuhs5686// CHECK-LE: @llvm.ppc.altivec.vsubuhs5687 5688 res_vus = vec_vsubuhs(vus, vbs);5689// CHECK: @llvm.ppc.altivec.vsubuhs5690// CHECK-LE: @llvm.ppc.altivec.vsubuhs5691 5692 res_vi = vec_vsubsws(vi, vi);5693// CHECK: @llvm.ppc.altivec.vsubsws5694// CHECK-LE: @llvm.ppc.altivec.vsubsws5695 5696 res_vi = vec_vsubsws(vbi, vi);5697// CHECK: @llvm.ppc.altivec.vsubsws5698// CHECK-LE: @llvm.ppc.altivec.vsubsws5699 5700 res_vi = vec_vsubsws(vi, vbi);5701// CHECK: @llvm.ppc.altivec.vsubsws5702// CHECK-LE: @llvm.ppc.altivec.vsubsws5703 5704 res_vui = vec_vsubuws(vui, vui);5705// CHECK: @llvm.ppc.altivec.vsubuws5706// CHECK-LE: @llvm.ppc.altivec.vsubuws5707 5708 res_vui = vec_vsubuws(vbi, vui);5709// CHECK: @llvm.ppc.altivec.vsubuws5710// CHECK-LE: @llvm.ppc.altivec.vsubuws5711 5712 res_vui = vec_vsubuws(vui, vbi);5713// CHECK: @llvm.ppc.altivec.vsubuws5714// CHECK-LE: @llvm.ppc.altivec.vsubuws5715 5716 /* vec_sum4s */5717 res_vi = vec_sum4s(vsc, vi);5718// CHECK: @llvm.ppc.altivec.vsum4sbs5719// CHECK-LE: @llvm.ppc.altivec.vsum4sbs5720 5721 res_vui = vec_sum4s(vuc, vui);5722// CHECK: @llvm.ppc.altivec.vsum4ubs5723// CHECK-LE: @llvm.ppc.altivec.vsum4ubs5724 5725 res_vi = vec_sum4s(vs, vi);5726// CHECK: @llvm.ppc.altivec.vsum4shs5727// CHECK-LE: @llvm.ppc.altivec.vsum4shs5728 5729 res_vi = vec_vsum4sbs(vsc, vi);5730// CHECK: @llvm.ppc.altivec.vsum4sbs5731// CHECK-LE: @llvm.ppc.altivec.vsum4sbs5732 5733 res_vui = vec_vsum4ubs(vuc, vui);5734// CHECK: @llvm.ppc.altivec.vsum4ubs5735// CHECK-LE: @llvm.ppc.altivec.vsum4ubs5736 5737 res_vi = vec_vsum4shs(vs, vi);5738// CHECK: @llvm.ppc.altivec.vsum4shs5739// CHECK-LE: @llvm.ppc.altivec.vsum4shs5740 5741 /* vec_sum2s */5742 res_vi = vec_sum2s(vi, vi);5743// CHECK: @llvm.ppc.altivec.vsum2sws5744// CHECK-LE: @llvm.ppc.altivec.vperm5745// CHECK-LE: @llvm.ppc.altivec.vsum2sws5746// CHECK-LE: @llvm.ppc.altivec.vperm5747 5748 res_vi = vec_vsum2sws(vi, vi);5749// CHECK: @llvm.ppc.altivec.vsum2sws5750// CHECK-LE: @llvm.ppc.altivec.vperm5751// CHECK-LE: @llvm.ppc.altivec.vsum2sws5752// CHECK-LE: @llvm.ppc.altivec.vperm5753 5754 /* vec_sums */5755 res_vi = vec_sums(vi, vi);5756// CHECK: @llvm.ppc.altivec.vsumsws5757// CHECK-LE: @llvm.ppc.altivec.vperm5758// CHECK-LE: @llvm.ppc.altivec.vsumsws5759 5760 res_vi = vec_vsumsws(vi, vi);5761// CHECK: @llvm.ppc.altivec.vsumsws5762// CHECK-LE: @llvm.ppc.altivec.vperm5763// CHECK-LE: @llvm.ppc.altivec.vsumsws5764 5765 /* vec_trunc */5766 res_vf = vec_trunc(vf);5767// CHECK: @llvm.ppc.altivec.vrfiz5768// CHECK-LE: @llvm.ppc.altivec.vrfiz5769 5770 res_vf = vec_vrfiz(vf);5771// CHECK: @llvm.ppc.altivec.vrfiz5772// CHECK-LE: @llvm.ppc.altivec.vrfiz5773 5774 /* vec_unpackh */5775 res_vs = vec_unpackh(vsc);5776// CHECK: @llvm.ppc.altivec.vupkhsb5777// CHECK-LE: @llvm.ppc.altivec.vupklsb5778 5779 res_vbs = vec_unpackh(vbc);5780// CHECK: @llvm.ppc.altivec.vupkhsb5781// CHECK-LE: @llvm.ppc.altivec.vupklsb5782 5783 res_vi = vec_unpackh(vs);5784// CHECK: @llvm.ppc.altivec.vupkhsh5785// CHECK-LE: @llvm.ppc.altivec.vupklsh5786 5787 res_vbi = vec_unpackh(vbs);5788// CHECK: @llvm.ppc.altivec.vupkhsh5789// CHECK-LE: @llvm.ppc.altivec.vupklsh5790 5791 res_vui = vec_unpackh(vp);5792// CHECK: @llvm.ppc.altivec.vupkhpx5793// CHECK-LE: @llvm.ppc.altivec.vupklpx5794 5795 res_vui = vec_vupkhpx(vp);5796// CHECK: @llvm.ppc.altivec.vupkhpx5797// CHECK-LE: @llvm.ppc.altivec.vupklpx5798 5799 res_vs = vec_vupkhsb(vsc);5800// CHECK: @llvm.ppc.altivec.vupkhsb5801// CHECK-LE: @llvm.ppc.altivec.vupklsb5802 5803 res_vbs = vec_vupkhsb(vbc);5804// CHECK: @llvm.ppc.altivec.vupkhsb5805// CHECK-LE: @llvm.ppc.altivec.vupklsb5806 5807 res_vi = vec_vupkhsh(vs);5808// CHECK: @llvm.ppc.altivec.vupkhsh5809// CHECK-LE: @llvm.ppc.altivec.vupklsh5810 5811 res_vbi = vec_vupkhsh(vbs);5812// CHECK: @llvm.ppc.altivec.vupkhsh5813// CHECK-LE: @llvm.ppc.altivec.vupklsh5814 5815 res_vui = vec_vupkhsh(vp);5816// CHECK: @llvm.ppc.altivec.vupkhpx5817// CHECK-LE: @llvm.ppc.altivec.vupklpx5818 5819 /* vec_unpackl */5820 res_vs = vec_unpackl(vsc);5821// CHECK: @llvm.ppc.altivec.vupklsb5822// CHECK-LE: @llvm.ppc.altivec.vupkhsb5823 5824 res_vbs = vec_unpackl(vbc);5825// CHECK: @llvm.ppc.altivec.vupklsb5826// CHECK-LE: @llvm.ppc.altivec.vupkhsb5827 5828 res_vi = vec_unpackl(vs);5829// CHECK: @llvm.ppc.altivec.vupklsh5830// CHECK-LE: @llvm.ppc.altivec.vupkhsh5831 5832 res_vbi = vec_unpackl(vbs);5833// CHECK: @llvm.ppc.altivec.vupklsh5834// CHECK-LE: @llvm.ppc.altivec.vupkhsh5835 5836 res_vui = vec_unpackl(vp);5837// CHECK: @llvm.ppc.altivec.vupklpx5838// CHECK-LE: @llvm.ppc.altivec.vupkhpx5839 5840 res_vui = vec_vupklpx(vp);5841// CHECK: @llvm.ppc.altivec.vupklpx5842// CHECK-LE: @llvm.ppc.altivec.vupkhpx5843 5844 res_vs = vec_vupklsb(vsc);5845// CHECK: @llvm.ppc.altivec.vupklsb5846// CHECK-LE: @llvm.ppc.altivec.vupkhsb5847 5848 res_vbs = vec_vupklsb(vbc);5849// CHECK: @llvm.ppc.altivec.vupklsb5850// CHECK-LE: @llvm.ppc.altivec.vupkhsb5851 5852 res_vi = vec_vupklsh(vs);5853// CHECK: @llvm.ppc.altivec.vupklsh5854// CHECK-LE: @llvm.ppc.altivec.vupkhsh5855 5856 res_vbi = vec_vupklsh(vbs);5857// CHECK: @llvm.ppc.altivec.vupklsh5858// CHECK-LE: @llvm.ppc.altivec.vupkhsh5859 5860 res_vui = vec_vupklsh(vp);5861// CHECK: @llvm.ppc.altivec.vupklpx5862// CHECK-LE: @llvm.ppc.altivec.vupkhpx5863 5864 /* vec_xor */5865 res_vsc = vec_xor(vsc, vsc);5866// CHECK: xor <16 x i8>5867// CHECK-LE: xor <16 x i8>5868 5869 res_vsc = vec_xor(vbc, vsc);5870// CHECK: xor <16 x i8>5871// CHECK-LE: xor <16 x i8>5872 5873 res_vsc = vec_xor(vsc, vbc);5874// CHECK: xor <16 x i8>5875// CHECK-LE: xor <16 x i8>5876 5877 res_vuc = vec_xor(vuc, vuc);5878// CHECK: xor <16 x i8>5879// CHECK-LE: xor <16 x i8>5880 5881 res_vuc = vec_xor(vbc, vuc);5882// CHECK: xor <16 x i8>5883// CHECK-LE: xor <16 x i8>5884 5885 res_vuc = vec_xor(vuc, vbc);5886// CHECK: xor <16 x i8>5887// CHECK-LE: xor <16 x i8>5888 5889 res_vbc = vec_xor(vbc, vbc);5890// CHECK: xor <16 x i8>5891// CHECK-LE: xor <16 x i8>5892 5893 res_vs = vec_xor(vs, vs);5894// CHECK: xor <8 x i16>5895// CHECK-LE: xor <8 x i16>5896 5897 res_vs = vec_xor(vbs, vs);5898// CHECK: xor <8 x i16>5899// CHECK-LE: xor <8 x i16>5900 5901 res_vs = vec_xor(vs, vbs);5902// CHECK: xor <8 x i16>5903// CHECK-LE: xor <8 x i16>5904 5905 res_vus = vec_xor(vus, vus);5906// CHECK: xor <8 x i16>5907// CHECK-LE: xor <8 x i16>5908 5909 res_vus = vec_xor(vbs, vus);5910// CHECK: xor <8 x i16>5911// CHECK-LE: xor <8 x i16>5912 5913 res_vus = vec_xor(vus, vbs);5914// CHECK: xor <8 x i16>5915// CHECK-LE: xor <8 x i16>5916 5917 res_vbs = vec_xor(vbs, vbs);5918// CHECK: xor <8 x i16>5919// CHECK-LE: xor <8 x i16>5920 5921 res_vi = vec_xor(vi, vi);5922// CHECK: xor <4 x i32>5923// CHECK-LE: xor <4 x i32>5924 5925 res_vi = vec_xor(vbi, vi);5926// CHECK: xor <4 x i32>5927// CHECK-LE: xor <4 x i32>5928 5929 res_vi = vec_xor(vi, vbi);5930// CHECK: xor <4 x i32>5931// CHECK-LE: xor <4 x i32>5932 5933 res_vui = vec_xor(vui, vui);5934// CHECK: xor <4 x i32>5935// CHECK-LE: xor <4 x i32>5936 5937 res_vui = vec_xor(vbi, vui);5938// CHECK: xor <4 x i32>5939// CHECK-LE: xor <4 x i32>5940 5941 res_vui = vec_xor(vui, vbi);5942// CHECK: xor <4 x i32>5943// CHECK-LE: xor <4 x i32>5944 5945 res_vbi = vec_xor(vbi, vbi);5946// CHECK: xor <4 x i32>5947// CHECK-LE: xor <4 x i32>5948 5949 res_vf = vec_xor(vf, vf);5950// CHECK: xor <4 x i32>5951// CHECK-LE: xor <4 x i32>5952 5953 res_vf = vec_xor(vbi, vf);5954// CHECK: xor <4 x i32>5955// CHECK-LE: xor <4 x i32>5956 5957 res_vf = vec_xor(vf, vbi);5958// CHECK: xor <4 x i32>5959// CHECK-LE: xor <4 x i32>5960 5961 res_vsc = vec_vxor(vsc, vsc);5962// CHECK: xor <16 x i8>5963// CHECK-LE: xor <16 x i8>5964 5965 res_vsc = vec_vxor(vbc, vsc);5966// CHECK: xor <16 x i8>5967// CHECK-LE: xor <16 x i8>5968 5969 res_vsc = vec_vxor(vsc, vbc);5970// CHECK: xor <16 x i8>5971// CHECK-LE: xor <16 x i8>5972 5973 res_vuc = vec_vxor(vuc, vuc);5974// CHECK: xor <16 x i8>5975// CHECK-LE: xor <16 x i8>5976 5977 res_vuc = vec_vxor(vbc, vuc);5978// CHECK: xor <16 x i8>5979// CHECK-LE: xor <16 x i8>5980 5981 res_vuc = vec_vxor(vuc, vbc);5982// CHECK: xor <16 x i8>5983// CHECK-LE: xor <16 x i8>5984 5985 res_vbc = vec_vxor(vbc, vbc);5986// CHECK: xor <16 x i8>5987// CHECK-LE: xor <16 x i8>5988 5989 res_vs = vec_vxor(vs, vs);5990// CHECK: xor <8 x i16>5991// CHECK-LE: xor <8 x i16>5992 5993 res_vs = vec_vxor(vbs, vs);5994// CHECK: xor <8 x i16>5995// CHECK-LE: xor <8 x i16>5996 5997 res_vs = vec_vxor(vs, vbs);5998// CHECK: xor <8 x i16>5999// CHECK-LE: xor <8 x i16>6000 6001 res_vus = vec_vxor(vus, vus);6002// CHECK: xor <8 x i16>6003// CHECK-LE: xor <8 x i16>6004 6005 res_vus = vec_vxor(vbs, vus);6006// CHECK: xor <8 x i16>6007// CHECK-LE: xor <8 x i16>6008 6009 res_vus = vec_vxor(vus, vbs);6010// CHECK: xor <8 x i16>6011// CHECK-LE: xor <8 x i16>6012 6013 res_vbs = vec_vxor(vbs, vbs);6014// CHECK: xor <8 x i16>6015// CHECK-LE: xor <8 x i16>6016 6017 res_vi = vec_vxor(vi, vi);6018// CHECK: xor <4 x i32>6019// CHECK-LE: xor <4 x i32>6020 6021 res_vi = vec_vxor(vbi, vi);6022// CHECK: xor <4 x i32>6023// CHECK-LE: xor <4 x i32>6024 6025 res_vi = vec_vxor(vi, vbi);6026// CHECK: xor <4 x i32>6027// CHECK-LE: xor <4 x i32>6028 6029 res_vui = vec_vxor(vui, vui);6030// CHECK: xor <4 x i32>6031// CHECK-LE: xor <4 x i32>6032 6033 res_vui = vec_vxor(vbi, vui);6034// CHECK: xor <4 x i32>6035// CHECK-LE: xor <4 x i32>6036 6037 res_vui = vec_vxor(vui, vbi);6038// CHECK: xor <4 x i32>6039// CHECK-LE: xor <4 x i32>6040 6041 res_vbi = vec_vxor(vbi, vbi);6042// CHECK: xor <4 x i32>6043// CHECK-LE: xor <4 x i32>6044 6045 res_vf = vec_vxor(vf, vf);6046// CHECK: xor <4 x i32>6047// CHECK-LE: xor <4 x i32>6048 6049 res_vf = vec_vxor(vbi, vf);6050// CHECK: xor <4 x i32>6051// CHECK-LE: xor <4 x i32>6052 6053 res_vf = vec_vxor(vf, vbi);6054// CHECK: xor <4 x i32>6055// CHECK-LE: xor <4 x i32>6056 6057 /* ------------------------------ extensions -------------------------------------- */6058 6059 /* vec_extract */6060 res_sc = vec_extract(vsc, param_i);6061// CHECK: extractelement <16 x i8>6062// CHECK-LE: extractelement <16 x i8>6063 6064 res_uc = vec_extract(vuc, param_i);6065// CHECK: extractelement <16 x i8>6066// CHECK-LE: extractelement <16 x i8>6067 6068 res_uc = vec_extract(vbc, param_i);6069// CHECK: extractelement <16 x i8>6070// CHECK-LE: extractelement <16 x i8>6071 6072 res_s = vec_extract(vs, param_i);6073// CHECK: extractelement <8 x i16>6074// CHECK-LE: extractelement <8 x i16>6075 6076 res_us = vec_extract(vus, param_i);6077// CHECK: extractelement <8 x i16>6078// CHECK-LE: extractelement <8 x i16>6079 6080 res_us = vec_extract(vbs, param_i);6081// CHECK: extractelement <8 x i16>6082// CHECK-LE: extractelement <8 x i16>6083 6084 res_i = vec_extract(vi, param_i);6085// CHECK: extractelement <4 x i32>6086// CHECK-LE: extractelement <4 x i32>6087 6088 res_ui = vec_extract(vui, param_i);6089// CHECK: extractelement <4 x i32>6090// CHECK-LE: extractelement <4 x i32>6091 6092 res_ui = vec_extract(vbi, param_i);6093// CHECK: extractelement <4 x i32>6094// CHECK-LE: extractelement <4 x i32>6095 6096 res_f = vec_extract(vf, param_i);6097// CHECK: extractelement <4 x float>6098// CHECK-LE: extractelement <4 x float>6099 6100 /* vec_insert */6101 res_vsc = vec_insert(param_sc, vsc, param_i);6102// CHECK: insertelement <16 x i8>6103// CHECK-LE: insertelement <16 x i8>6104 6105 res_vuc = vec_insert(param_uc, vuc, param_i);6106// CHECK: insertelement <16 x i8>6107// CHECK-LE: insertelement <16 x i8>6108 6109 res_vbc = vec_insert(param_uc, vbc, param_i);6110// CHECK: insertelement <16 x i8>6111// CHECK-LE: insertelement <16 x i8>6112 6113 res_vs = vec_insert(param_s, vs, param_i);6114// CHECK: insertelement <8 x i16>6115// CHECK-LE: insertelement <8 x i16>6116 6117 res_vus = vec_insert(param_us, vus, param_i);6118// CHECK: insertelement <8 x i16>6119// CHECK-LE: insertelement <8 x i16>6120 6121 res_vbs = vec_insert(param_us, vbs, param_i);6122// CHECK: insertelement <8 x i16>6123// CHECK-LE: insertelement <8 x i16>6124 6125 res_vi = vec_insert(param_i, vi, param_i);6126// CHECK: insertelement <4 x i32>6127// CHECK-LE: insertelement <4 x i32>6128 6129 res_vui = vec_insert(param_ui, vui, param_i);6130// CHECK: insertelement <4 x i32>6131// CHECK-LE: insertelement <4 x i32>6132 6133 res_vbi = vec_insert(param_ui, vbi, param_i);6134// CHECK: insertelement <4 x i32>6135// CHECK-LE: insertelement <4 x i32>6136 6137 res_vf = vec_insert(param_f, vf, param_i);6138// CHECK: insertelement <4 x float>6139// CHECK-LE: insertelement <4 x float>6140 6141 /* vec_lvlx */6142 res_vsc = vec_lvlx(0, param_sc_ld);6143// CHECK: @llvm.ppc.altivec.lvx6144// CHECK: @llvm.ppc.altivec.lvsl6145// CHECK: store <16 x i8> zeroinitializer6146// CHECK: @llvm.ppc.altivec.vperm6147// CHECK-LE: @llvm.ppc.altivec.lvx6148// CHECK-LE: @llvm.ppc.altivec.lvsl6149// CHECK-LE: store <16 x i8> zeroinitializer6150// CHECK-LE: @llvm.ppc.altivec.vperm6151 6152 res_vsc = vec_lvlx(0, &vsc);6153// CHECK: @llvm.ppc.altivec.lvx6154// CHECK: @llvm.ppc.altivec.lvsl6155// CHECK: store <16 x i8> zeroinitializer6156// CHECK: @llvm.ppc.altivec.vperm6157// CHECK-LE: @llvm.ppc.altivec.lvx6158// CHECK-LE: @llvm.ppc.altivec.lvsl6159// CHECK-LE: store <16 x i8> zeroinitializer6160// CHECK-LE: @llvm.ppc.altivec.vperm6161 6162 res_vuc = vec_lvlx(0, param_uc_ld);6163// CHECK: @llvm.ppc.altivec.lvx6164// CHECK: @llvm.ppc.altivec.lvsl6165// CHECK: store <16 x i8> zeroinitializer6166// CHECK: @llvm.ppc.altivec.vperm6167// CHECK-LE: @llvm.ppc.altivec.lvx6168// CHECK-LE: @llvm.ppc.altivec.lvsl6169// CHECK-LE: store <16 x i8> zeroinitializer6170// CHECK-LE: @llvm.ppc.altivec.vperm6171 6172 res_vuc = vec_lvlx(0, &vuc);6173// CHECK: @llvm.ppc.altivec.lvx6174// CHECK: @llvm.ppc.altivec.lvsl6175// CHECK: store <16 x i8> zeroinitializer6176// CHECK: @llvm.ppc.altivec.vperm6177// CHECK-LE: @llvm.ppc.altivec.lvx6178// CHECK-LE: @llvm.ppc.altivec.lvsl6179// CHECK-LE: store <16 x i8> zeroinitializer6180// CHECK-LE: @llvm.ppc.altivec.vperm6181 6182 res_vbc = vec_lvlx(0, &vbc);6183// CHECK: @llvm.ppc.altivec.lvx6184// CHECK: store <16 x i8> zeroinitializer6185// CHECK: @llvm.ppc.altivec.lvsl6186// CHECK: @llvm.ppc.altivec.vperm6187// CHECK-LE: @llvm.ppc.altivec.lvx6188// CHECK-LE: store <16 x i8> zeroinitializer6189// CHECK-LE: @llvm.ppc.altivec.lvsl6190// CHECK-LE: @llvm.ppc.altivec.vperm6191 6192 res_vs = vec_lvlx(0, param_s_ld);6193// CHECK: @llvm.ppc.altivec.lvx6194// CHECK: @llvm.ppc.altivec.lvsl6195// CHECK: store <8 x i16> zeroinitializer6196// CHECK: @llvm.ppc.altivec.vperm6197// CHECK-LE: @llvm.ppc.altivec.lvx6198// CHECK-LE: @llvm.ppc.altivec.lvsl6199// CHECK-LE: store <8 x i16> zeroinitializer6200// CHECK-LE: @llvm.ppc.altivec.vperm6201 6202 res_vs = vec_lvlx(0, &vs);6203// CHECK: @llvm.ppc.altivec.lvx6204// CHECK: @llvm.ppc.altivec.lvsl6205// CHECK: store <8 x i16> zeroinitializer6206// CHECK: @llvm.ppc.altivec.vperm6207// CHECK-LE: @llvm.ppc.altivec.lvx6208// CHECK-LE: @llvm.ppc.altivec.lvsl6209// CHECK-LE: store <8 x i16> zeroinitializer6210// CHECK-LE: @llvm.ppc.altivec.vperm6211 6212 res_vus = vec_lvlx(0, param_us_ld);6213// CHECK: @llvm.ppc.altivec.lvx6214// CHECK: @llvm.ppc.altivec.lvsl6215// CHECK: store <8 x i16> zeroinitializer6216// CHECK: @llvm.ppc.altivec.vperm6217// CHECK-LE: @llvm.ppc.altivec.lvx6218// CHECK-LE: @llvm.ppc.altivec.lvsl6219// CHECK-LE: store <8 x i16> zeroinitializer6220// CHECK-LE: @llvm.ppc.altivec.vperm6221 6222 res_vus = vec_lvlx(0, &vus);6223// CHECK: @llvm.ppc.altivec.lvx6224// CHECK: @llvm.ppc.altivec.lvsl6225// CHECK: store <8 x i16> zeroinitializer6226// CHECK: @llvm.ppc.altivec.vperm6227// CHECK-LE: @llvm.ppc.altivec.lvx6228// CHECK-LE: @llvm.ppc.altivec.lvsl6229// CHECK-LE: store <8 x i16> zeroinitializer6230// CHECK-LE: @llvm.ppc.altivec.vperm6231 6232 res_vbs = vec_lvlx(0, &vbs);6233// CHECK: @llvm.ppc.altivec.lvx6234// CHECK: store <8 x i16> zeroinitializer6235// CHECK: @llvm.ppc.altivec.lvsl6236// CHECK: @llvm.ppc.altivec.vperm6237// CHECK-LE: @llvm.ppc.altivec.lvx6238// CHECK-LE: store <8 x i16> zeroinitializer6239// CHECK-LE: @llvm.ppc.altivec.lvsl6240// CHECK-LE: @llvm.ppc.altivec.vperm6241 6242 res_vp = vec_lvlx(0, &vp);6243// CHECK: @llvm.ppc.altivec.lvx6244// CHECK: store <8 x i16> zeroinitializer6245// CHECK: @llvm.ppc.altivec.lvsl6246// CHECK: @llvm.ppc.altivec.vperm6247// CHECK-LE: @llvm.ppc.altivec.lvx6248// CHECK-LE: store <8 x i16> zeroinitializer6249// CHECK-LE: @llvm.ppc.altivec.lvsl6250// CHECK-LE: @llvm.ppc.altivec.vperm6251 6252 res_vi = vec_lvlx(0, param_i_ld);6253// CHECK: @llvm.ppc.altivec.lvx6254// CHECK: @llvm.ppc.altivec.lvsl6255// CHECK: store <4 x i32> zeroinitializer6256// CHECK: @llvm.ppc.altivec.vperm6257// CHECK-LE: @llvm.ppc.altivec.lvx6258// CHECK-LE: @llvm.ppc.altivec.lvsl6259// CHECK-LE: store <4 x i32> zeroinitializer6260// CHECK-LE: @llvm.ppc.altivec.vperm6261 6262 res_vi = vec_lvlx(0, &vi);6263// CHECK: @llvm.ppc.altivec.lvx6264// CHECK: @llvm.ppc.altivec.lvsl6265// CHECK: store <4 x i32> zeroinitializer6266// CHECK: @llvm.ppc.altivec.vperm6267// CHECK-LE: @llvm.ppc.altivec.lvx6268// CHECK-LE: @llvm.ppc.altivec.lvsl6269// CHECK-LE: store <4 x i32> zeroinitializer6270// CHECK-LE: @llvm.ppc.altivec.vperm6271 6272 res_vui = vec_lvlx(0, param_ui_ld);6273// CHECK: @llvm.ppc.altivec.lvx6274// CHECK: @llvm.ppc.altivec.lvsl6275// CHECK: store <4 x i32> zeroinitializer6276// CHECK: @llvm.ppc.altivec.vperm6277// CHECK-LE: @llvm.ppc.altivec.lvx6278// CHECK-LE: @llvm.ppc.altivec.lvsl6279// CHECK-LE: store <4 x i32> zeroinitializer6280// CHECK-LE: @llvm.ppc.altivec.vperm6281 6282 res_vui = vec_lvlx(0, &vui);6283// CHECK: @llvm.ppc.altivec.lvx6284// CHECK: @llvm.ppc.altivec.lvsl6285// CHECK: store <4 x i32> zeroinitializer6286// CHECK: @llvm.ppc.altivec.vperm6287// CHECK-LE: @llvm.ppc.altivec.lvx6288// CHECK-LE: @llvm.ppc.altivec.lvsl6289// CHECK-LE: store <4 x i32> zeroinitializer6290// CHECK-LE: @llvm.ppc.altivec.vperm6291 6292 res_vbi = vec_lvlx(0, &vbi);6293// CHECK: @llvm.ppc.altivec.lvx6294// CHECK: store <4 x i32> zeroinitializer6295// CHECK: @llvm.ppc.altivec.lvsl6296// CHECK: @llvm.ppc.altivec.vperm6297// CHECK-LE: @llvm.ppc.altivec.lvx6298// CHECK-LE: store <4 x i32> zeroinitializer6299// CHECK-LE: @llvm.ppc.altivec.lvsl6300// CHECK-LE: @llvm.ppc.altivec.vperm6301 6302 res_vf = vec_lvlx(0, &vf);6303// CHECK: @llvm.ppc.altivec.lvx6304// CHECK: @llvm.ppc.altivec.lvsl6305// CHECK: store <4 x float> zeroinitializer6306// CHECK: @llvm.ppc.altivec.vperm6307// CHECK-LE: @llvm.ppc.altivec.lvx6308// CHECK-LE: @llvm.ppc.altivec.lvsl6309// CHECK-LE: store <4 x float> zeroinitializer6310// CHECK-LE: @llvm.ppc.altivec.vperm6311 6312 /* vec_lvlxl */6313 res_vsc = vec_lvlxl(0, param_sc_ld);6314// CHECK: @llvm.ppc.altivec.lvxl6315// CHECK: @llvm.ppc.altivec.lvsl6316// CHECK: store <16 x i8> zeroinitializer6317// CHECK: @llvm.ppc.altivec.vperm6318// CHECK-LE: @llvm.ppc.altivec.lvxl6319// CHECK-LE: @llvm.ppc.altivec.lvsl6320// CHECK-LE: store <16 x i8> zeroinitializer6321// CHECK-LE: @llvm.ppc.altivec.vperm6322 6323 res_vsc = vec_lvlxl(0, &vsc);6324// CHECK: @llvm.ppc.altivec.lvxl6325// CHECK: @llvm.ppc.altivec.lvsl6326// CHECK: store <16 x i8> zeroinitializer6327// CHECK: @llvm.ppc.altivec.vperm6328// CHECK-LE: @llvm.ppc.altivec.lvxl6329// CHECK-LE: @llvm.ppc.altivec.lvsl6330// CHECK-LE: store <16 x i8> zeroinitializer6331// CHECK-LE: @llvm.ppc.altivec.vperm6332 6333 res_vuc = vec_lvlxl(0, param_uc_ld);6334// CHECK: @llvm.ppc.altivec.lvxl6335// CHECK: @llvm.ppc.altivec.lvsl6336// CHECK: store <16 x i8> zeroinitializer6337// CHECK: @llvm.ppc.altivec.vperm6338// CHECK-LE: @llvm.ppc.altivec.lvxl6339// CHECK-LE: @llvm.ppc.altivec.lvsl6340// CHECK-LE: store <16 x i8> zeroinitializer6341// CHECK-LE: @llvm.ppc.altivec.vperm6342 6343 res_vuc = vec_lvlxl(0, &vuc);6344// CHECK: @llvm.ppc.altivec.lvxl6345// CHECK: @llvm.ppc.altivec.lvsl6346// CHECK: store <16 x i8> zeroinitializer6347// CHECK: @llvm.ppc.altivec.vperm6348// CHECK-LE: @llvm.ppc.altivec.lvxl6349// CHECK-LE: @llvm.ppc.altivec.lvsl6350// CHECK-LE: store <16 x i8> zeroinitializer6351// CHECK-LE: @llvm.ppc.altivec.vperm6352 6353 res_vbc = vec_lvlxl(0, &vbc);6354// CHECK: @llvm.ppc.altivec.lvxl6355// CHECK: store <16 x i8> zeroinitializer6356// CHECK: @llvm.ppc.altivec.lvsl6357// CHECK: @llvm.ppc.altivec.vperm6358// CHECK-LE: @llvm.ppc.altivec.lvxl6359// CHECK-LE: store <16 x i8> zeroinitializer6360// CHECK-LE: @llvm.ppc.altivec.lvsl6361// CHECK-LE: @llvm.ppc.altivec.vperm6362 6363 res_vs = vec_lvlxl(0, param_s_ld);6364// CHECK: @llvm.ppc.altivec.lvxl6365// CHECK: @llvm.ppc.altivec.lvsl6366// CHECK: store <8 x i16> zeroinitializer6367// CHECK: @llvm.ppc.altivec.vperm6368// CHECK-LE: @llvm.ppc.altivec.lvxl6369// CHECK-LE: @llvm.ppc.altivec.lvsl6370// CHECK-LE: store <8 x i16> zeroinitializer6371// CHECK-LE: @llvm.ppc.altivec.vperm6372 6373 res_vs = vec_lvlxl(0, &vs);6374// CHECK: @llvm.ppc.altivec.lvxl6375// CHECK: @llvm.ppc.altivec.lvsl6376// CHECK: store <8 x i16> zeroinitializer6377// CHECK: @llvm.ppc.altivec.vperm6378// CHECK-LE: @llvm.ppc.altivec.lvxl6379// CHECK-LE: @llvm.ppc.altivec.lvsl6380// CHECK-LE: store <8 x i16> zeroinitializer6381// CHECK-LE: @llvm.ppc.altivec.vperm6382 6383 res_vus = vec_lvlxl(0, param_us_ld);6384// CHECK: @llvm.ppc.altivec.lvxl6385// CHECK: @llvm.ppc.altivec.lvsl6386// CHECK: store <8 x i16> zeroinitializer6387// CHECK: @llvm.ppc.altivec.vperm6388// CHECK-LE: @llvm.ppc.altivec.lvxl6389// CHECK-LE: @llvm.ppc.altivec.lvsl6390// CHECK-LE: store <8 x i16> zeroinitializer6391// CHECK-LE: @llvm.ppc.altivec.vperm6392 6393 res_vus = vec_lvlxl(0, &vus);6394// CHECK: @llvm.ppc.altivec.lvxl6395// CHECK: @llvm.ppc.altivec.lvsl6396// CHECK: store <8 x i16> zeroinitializer6397// CHECK: @llvm.ppc.altivec.vperm6398// CHECK-LE: @llvm.ppc.altivec.lvxl6399// CHECK-LE: @llvm.ppc.altivec.lvsl6400// CHECK-LE: store <8 x i16> zeroinitializer6401// CHECK-LE: @llvm.ppc.altivec.vperm6402 6403 res_vbs = vec_lvlxl(0, &vbs);6404// CHECK: @llvm.ppc.altivec.lvxl6405// CHECK: store <8 x i16> zeroinitializer6406// CHECK: @llvm.ppc.altivec.lvsl6407// CHECK: @llvm.ppc.altivec.vperm6408// CHECK-LE: @llvm.ppc.altivec.lvxl6409// CHECK-LE: store <8 x i16> zeroinitializer6410// CHECK-LE: @llvm.ppc.altivec.lvsl6411// CHECK-LE: @llvm.ppc.altivec.vperm6412 6413 res_vp = vec_lvlxl(0, &vp);6414// CHECK: @llvm.ppc.altivec.lvxl6415// CHECK: store <8 x i16> zeroinitializer6416// CHECK: @llvm.ppc.altivec.lvsl6417// CHECK: @llvm.ppc.altivec.vperm6418// CHECK-LE: @llvm.ppc.altivec.lvxl6419// CHECK-LE: store <8 x i16> zeroinitializer6420// CHECK-LE: @llvm.ppc.altivec.lvsl6421// CHECK-LE: @llvm.ppc.altivec.vperm6422 6423 res_vi = vec_lvlxl(0, param_i_ld);6424// CHECK: @llvm.ppc.altivec.lvxl6425// CHECK: @llvm.ppc.altivec.lvsl6426// CHECK: store <4 x i32> zeroinitializer6427// CHECK: @llvm.ppc.altivec.vperm6428// CHECK-LE: @llvm.ppc.altivec.lvxl6429// CHECK-LE: @llvm.ppc.altivec.lvsl6430// CHECK-LE: store <4 x i32> zeroinitializer6431// CHECK-LE: @llvm.ppc.altivec.vperm6432 6433 res_vi = vec_lvlxl(0, &vi);6434// CHECK: @llvm.ppc.altivec.lvxl6435// CHECK: @llvm.ppc.altivec.lvsl6436// CHECK: store <4 x i32> zeroinitializer6437// CHECK: @llvm.ppc.altivec.vperm6438// CHECK-LE: @llvm.ppc.altivec.lvxl6439// CHECK-LE: @llvm.ppc.altivec.lvsl6440// CHECK-LE: store <4 x i32> zeroinitializer6441// CHECK-LE: @llvm.ppc.altivec.vperm6442 6443 res_vui = vec_lvlxl(0, param_ui_ld);6444// CHECK: @llvm.ppc.altivec.lvxl6445// CHECK: @llvm.ppc.altivec.lvsl6446// CHECK: store <4 x i32> zeroinitializer6447// CHECK: @llvm.ppc.altivec.vperm6448// CHECK-LE: @llvm.ppc.altivec.lvxl6449// CHECK-LE: @llvm.ppc.altivec.lvsl6450// CHECK-LE: store <4 x i32> zeroinitializer6451// CHECK-LE: @llvm.ppc.altivec.vperm6452 6453 res_vui = vec_lvlxl(0, &vui);6454// CHECK: @llvm.ppc.altivec.lvxl6455// CHECK: @llvm.ppc.altivec.lvsl6456// CHECK: store <4 x i32> zeroinitializer6457// CHECK: @llvm.ppc.altivec.vperm6458// CHECK-LE: @llvm.ppc.altivec.lvxl6459// CHECK-LE: @llvm.ppc.altivec.lvsl6460// CHECK-LE: store <4 x i32> zeroinitializer6461// CHECK-LE: @llvm.ppc.altivec.vperm6462 6463 res_vbi = vec_lvlxl(0, &vbi);6464// CHECK: @llvm.ppc.altivec.lvxl6465// CHECK: store <4 x i32> zeroinitializer6466// CHECK: @llvm.ppc.altivec.lvsl6467// CHECK: @llvm.ppc.altivec.vperm6468// CHECK-LE: @llvm.ppc.altivec.lvxl6469// CHECK-LE: store <4 x i32> zeroinitializer6470// CHECK-LE: @llvm.ppc.altivec.lvsl6471// CHECK-LE: @llvm.ppc.altivec.vperm6472 6473 res_vf = vec_lvlxl(0, &vf);6474// CHECK: @llvm.ppc.altivec.lvxl6475// CHECK: @llvm.ppc.altivec.lvsl6476// CHECK: store <4 x float> zeroinitializer6477// CHECK: @llvm.ppc.altivec.vperm6478// CHECK-LE: @llvm.ppc.altivec.lvxl6479// CHECK-LE: @llvm.ppc.altivec.lvsl6480// CHECK-LE: store <4 x float> zeroinitializer6481// CHECK-LE: @llvm.ppc.altivec.vperm6482 6483 /* vec_lvrx */6484 res_vsc = vec_lvrx(0, param_sc_ld);6485// CHECK: @llvm.ppc.altivec.lvx6486// CHECK: @llvm.ppc.altivec.lvsl6487// CHECK: store <16 x i8> zeroinitializer6488// CHECK: @llvm.ppc.altivec.vperm6489// CHECK-LE: @llvm.ppc.altivec.lvx6490// CHECK-LE: @llvm.ppc.altivec.lvsl6491// CHECK-LE: store <16 x i8> zeroinitializer6492// CHECK-LE: @llvm.ppc.altivec.vperm6493 6494 res_vsc = vec_lvrx(0, &vsc);6495// CHECK: @llvm.ppc.altivec.lvx6496// CHECK: @llvm.ppc.altivec.lvsl6497// CHECK: store <16 x i8> zeroinitializer6498// CHECK: @llvm.ppc.altivec.vperm6499// CHECK-LE: @llvm.ppc.altivec.lvx6500// CHECK-LE: @llvm.ppc.altivec.lvsl6501// CHECK-LE: store <16 x i8> zeroinitializer6502// CHECK-LE: @llvm.ppc.altivec.vperm6503 6504 res_vuc = vec_lvrx(0, param_uc_ld);6505// CHECK: @llvm.ppc.altivec.lvx6506// CHECK: @llvm.ppc.altivec.lvsl6507// CHECK: store <16 x i8> zeroinitializer6508// CHECK: @llvm.ppc.altivec.vperm6509// CHECK-LE: @llvm.ppc.altivec.lvx6510// CHECK-LE: @llvm.ppc.altivec.lvsl6511// CHECK-LE: store <16 x i8> zeroinitializer6512// CHECK-LE: @llvm.ppc.altivec.vperm6513 6514 res_vuc = vec_lvrx(0, &vuc);6515// CHECK: @llvm.ppc.altivec.lvx6516// CHECK: @llvm.ppc.altivec.lvsl6517// CHECK: store <16 x i8> zeroinitializer6518// CHECK: @llvm.ppc.altivec.vperm6519// CHECK-LE: @llvm.ppc.altivec.lvx6520// CHECK-LE: @llvm.ppc.altivec.lvsl6521// CHECK-LE: store <16 x i8> zeroinitializer6522// CHECK-LE: @llvm.ppc.altivec.vperm6523 6524 res_vbc = vec_lvrx(0, &vbc);6525// CHECK: store <16 x i8> zeroinitializer6526// CHECK: @llvm.ppc.altivec.lvx6527// CHECK: @llvm.ppc.altivec.lvsl6528// CHECK: @llvm.ppc.altivec.vperm6529// CHECK-LE: store <16 x i8> zeroinitializer6530// CHECK-LE: @llvm.ppc.altivec.lvx6531// CHECK-LE: @llvm.ppc.altivec.lvsl6532// CHECK-LE: @llvm.ppc.altivec.vperm6533 6534 res_vs = vec_lvrx(0, param_s_ld);6535// CHECK: @llvm.ppc.altivec.lvx6536// CHECK: @llvm.ppc.altivec.lvsl6537// CHECK: store <8 x i16> zeroinitializer6538// CHECK: @llvm.ppc.altivec.vperm6539// CHECK-LE: @llvm.ppc.altivec.lvx6540// CHECK-LE: @llvm.ppc.altivec.lvsl6541// CHECK-LE: store <8 x i16> zeroinitializer6542// CHECK-LE: @llvm.ppc.altivec.vperm6543 6544 res_vs = vec_lvrx(0, &vs);6545// CHECK: @llvm.ppc.altivec.lvx6546// CHECK: @llvm.ppc.altivec.lvsl6547// CHECK: store <8 x i16> zeroinitializer6548// CHECK: @llvm.ppc.altivec.vperm6549// CHECK-LE: @llvm.ppc.altivec.lvx6550// CHECK-LE: @llvm.ppc.altivec.lvsl6551// CHECK-LE: store <8 x i16> zeroinitializer6552// CHECK-LE: @llvm.ppc.altivec.vperm6553 6554 res_vus = vec_lvrx(0, param_us_ld);6555// CHECK: @llvm.ppc.altivec.lvx6556// CHECK: @llvm.ppc.altivec.lvsl6557// CHECK: store <8 x i16> zeroinitializer6558// CHECK: @llvm.ppc.altivec.vperm6559// CHECK-LE: @llvm.ppc.altivec.lvx6560// CHECK-LE: @llvm.ppc.altivec.lvsl6561// CHECK-LE: store <8 x i16> zeroinitializer6562// CHECK-LE: @llvm.ppc.altivec.vperm6563 6564 res_vus = vec_lvrx(0, &vus);6565// CHECK: @llvm.ppc.altivec.lvx6566// CHECK: @llvm.ppc.altivec.lvsl6567// CHECK: store <8 x i16> zeroinitializer6568// CHECK: @llvm.ppc.altivec.vperm6569// CHECK-LE: @llvm.ppc.altivec.lvx6570// CHECK-LE: @llvm.ppc.altivec.lvsl6571// CHECK-LE: store <8 x i16> zeroinitializer6572// CHECK-LE: @llvm.ppc.altivec.vperm6573 6574 res_vbs = vec_lvrx(0, &vbs);6575// CHECK: store <8 x i16> zeroinitializer6576// CHECK: @llvm.ppc.altivec.lvx6577// CHECK: @llvm.ppc.altivec.lvsl6578// CHECK: @llvm.ppc.altivec.vperm6579// CHECK-LE: store <8 x i16> zeroinitializer6580// CHECK-LE: @llvm.ppc.altivec.lvx6581// CHECK-LE: @llvm.ppc.altivec.lvsl6582// CHECK-LE: @llvm.ppc.altivec.vperm6583 6584 res_vp = vec_lvrx(0, &vp);6585// CHECK: store <8 x i16> zeroinitializer6586// CHECK: @llvm.ppc.altivec.lvx6587// CHECK: @llvm.ppc.altivec.lvsl6588// CHECK: @llvm.ppc.altivec.vperm6589// CHECK-LE: store <8 x i16> zeroinitializer6590// CHECK-LE: @llvm.ppc.altivec.lvx6591// CHECK-LE: @llvm.ppc.altivec.lvsl6592// CHECK-LE: @llvm.ppc.altivec.vperm6593 6594 res_vi = vec_lvrx(0, param_i_ld);6595// CHECK: @llvm.ppc.altivec.lvx6596// CHECK: @llvm.ppc.altivec.lvsl6597// CHECK: store <4 x i32> zeroinitializer6598// CHECK: @llvm.ppc.altivec.vperm6599// CHECK-LE: @llvm.ppc.altivec.lvx6600// CHECK-LE: @llvm.ppc.altivec.lvsl6601// CHECK-LE: store <4 x i32> zeroinitializer6602// CHECK-LE: @llvm.ppc.altivec.vperm6603 6604 res_vi = vec_lvrx(0, &vi);6605// CHECK: @llvm.ppc.altivec.lvx6606// CHECK: @llvm.ppc.altivec.lvsl6607// CHECK: store <4 x i32> zeroinitializer6608// CHECK: @llvm.ppc.altivec.vperm6609// CHECK-LE: @llvm.ppc.altivec.lvx6610// CHECK-LE: @llvm.ppc.altivec.lvsl6611// CHECK-LE: store <4 x i32> zeroinitializer6612// CHECK-LE: @llvm.ppc.altivec.vperm6613 6614 res_vui = vec_lvrx(0, param_ui_ld);6615// CHECK: @llvm.ppc.altivec.lvx6616// CHECK: @llvm.ppc.altivec.lvsl6617// CHECK: store <4 x i32> zeroinitializer6618// CHECK: @llvm.ppc.altivec.vperm6619// CHECK-LE: @llvm.ppc.altivec.lvx6620// CHECK-LE: @llvm.ppc.altivec.lvsl6621// CHECK-LE: store <4 x i32> zeroinitializer6622// CHECK-LE: @llvm.ppc.altivec.vperm6623 6624 res_vui = vec_lvrx(0, &vui);6625// CHECK: @llvm.ppc.altivec.lvx6626// CHECK: @llvm.ppc.altivec.lvsl6627// CHECK: store <4 x i32> zeroinitializer6628// CHECK: @llvm.ppc.altivec.vperm6629// CHECK-LE: @llvm.ppc.altivec.lvx6630// CHECK-LE: @llvm.ppc.altivec.lvsl6631// CHECK-LE: store <4 x i32> zeroinitializer6632// CHECK-LE: @llvm.ppc.altivec.vperm6633 6634 res_vbi = vec_lvrx(0, &vbi);6635// CHECK: store <4 x i32> zeroinitializer6636// CHECK: @llvm.ppc.altivec.lvx6637// CHECK: @llvm.ppc.altivec.lvsl6638// CHECK: @llvm.ppc.altivec.vperm6639// CHECK-LE: store <4 x i32> zeroinitializer6640// CHECK-LE: @llvm.ppc.altivec.lvx6641// CHECK-LE: @llvm.ppc.altivec.lvsl6642// CHECK-LE: @llvm.ppc.altivec.vperm6643 6644 res_vf = vec_lvrx(0, &vf);6645// CHECK: @llvm.ppc.altivec.lvx6646// CHECK: @llvm.ppc.altivec.lvsl6647// CHECK: store <4 x float> zeroinitializer6648// CHECK: @llvm.ppc.altivec.vperm6649// CHECK-LE: @llvm.ppc.altivec.lvx6650// CHECK-LE: @llvm.ppc.altivec.lvsl6651// CHECK-LE: store <4 x float> zeroinitializer6652// CHECK-LE: @llvm.ppc.altivec.vperm6653 6654 /* vec_lvrxl */6655 res_vsc = vec_lvrxl(0, param_sc_ld);6656// CHECK: @llvm.ppc.altivec.lvxl6657// CHECK: @llvm.ppc.altivec.lvsl6658// CHECK: store <16 x i8> zeroinitializer6659// CHECK: @llvm.ppc.altivec.vperm6660// CHECK-LE: @llvm.ppc.altivec.lvxl6661// CHECK-LE: @llvm.ppc.altivec.lvsl6662// CHECK-LE: store <16 x i8> zeroinitializer6663// CHECK-LE: @llvm.ppc.altivec.vperm6664 6665 res_vsc = vec_lvrxl(0, &vsc);6666// CHECK: @llvm.ppc.altivec.lvxl6667// CHECK: @llvm.ppc.altivec.lvsl6668// CHECK: store <16 x i8> zeroinitializer6669// CHECK: @llvm.ppc.altivec.vperm6670// CHECK-LE: @llvm.ppc.altivec.lvxl6671// CHECK-LE: @llvm.ppc.altivec.lvsl6672// CHECK-LE: store <16 x i8> zeroinitializer6673// CHECK-LE: @llvm.ppc.altivec.vperm6674 6675 res_vuc = vec_lvrxl(0, param_uc_ld);6676// CHECK: @llvm.ppc.altivec.lvxl6677// CHECK: @llvm.ppc.altivec.lvsl6678// CHECK: store <16 x i8> zeroinitializer6679// CHECK: @llvm.ppc.altivec.vperm6680// CHECK-LE: @llvm.ppc.altivec.lvxl6681// CHECK-LE: @llvm.ppc.altivec.lvsl6682// CHECK-LE: store <16 x i8> zeroinitializer6683// CHECK-LE: @llvm.ppc.altivec.vperm6684 6685 res_vuc = vec_lvrxl(0, &vuc);6686// CHECK: @llvm.ppc.altivec.lvxl6687// CHECK: @llvm.ppc.altivec.lvsl6688// CHECK: store <16 x i8> zeroinitializer6689// CHECK: @llvm.ppc.altivec.vperm6690// CHECK-LE: @llvm.ppc.altivec.lvxl6691// CHECK-LE: @llvm.ppc.altivec.lvsl6692// CHECK-LE: store <16 x i8> zeroinitializer6693// CHECK-LE: @llvm.ppc.altivec.vperm6694 6695 res_vbc = vec_lvrxl(0, &vbc);6696// CHECK: store <16 x i8> zeroinitializer6697// CHECK: @llvm.ppc.altivec.lvxl6698// CHECK: @llvm.ppc.altivec.lvsl6699// CHECK: @llvm.ppc.altivec.vperm6700// CHECK-LE: store <16 x i8> zeroinitializer6701// CHECK-LE: @llvm.ppc.altivec.lvxl6702// CHECK-LE: @llvm.ppc.altivec.lvsl6703// CHECK-LE: @llvm.ppc.altivec.vperm6704 6705 res_vs = vec_lvrxl(0, param_s_ld);6706// CHECK: @llvm.ppc.altivec.lvxl6707// CHECK: @llvm.ppc.altivec.lvsl6708// CHECK: store <8 x i16> zeroinitializer6709// CHECK: @llvm.ppc.altivec.vperm6710// CHECK-LE: @llvm.ppc.altivec.lvxl6711// CHECK-LE: @llvm.ppc.altivec.lvsl6712// CHECK-LE: store <8 x i16> zeroinitializer6713// CHECK-LE: @llvm.ppc.altivec.vperm6714 6715 res_vs = vec_lvrxl(0, &vs);6716// CHECK: @llvm.ppc.altivec.lvxl6717// CHECK: @llvm.ppc.altivec.lvsl6718// CHECK: store <8 x i16> zeroinitializer6719// CHECK: @llvm.ppc.altivec.vperm6720// CHECK-LE: @llvm.ppc.altivec.lvxl6721// CHECK-LE: @llvm.ppc.altivec.lvsl6722// CHECK-LE: store <8 x i16> zeroinitializer6723// CHECK-LE: @llvm.ppc.altivec.vperm6724 6725 res_vus = vec_lvrxl(0, param_us_ld);6726// CHECK: @llvm.ppc.altivec.lvxl6727// CHECK: @llvm.ppc.altivec.lvsl6728// CHECK: store <8 x i16> zeroinitializer6729// CHECK: @llvm.ppc.altivec.vperm6730// CHECK-LE: @llvm.ppc.altivec.lvxl6731// CHECK-LE: @llvm.ppc.altivec.lvsl6732// CHECK-LE: store <8 x i16> zeroinitializer6733// CHECK-LE: @llvm.ppc.altivec.vperm6734 6735 res_vus = vec_lvrxl(0, &vus);6736// CHECK: @llvm.ppc.altivec.lvxl6737// CHECK: @llvm.ppc.altivec.lvsl6738// CHECK: store <8 x i16> zeroinitializer6739// CHECK: @llvm.ppc.altivec.vperm6740// CHECK-LE: @llvm.ppc.altivec.lvxl6741// CHECK-LE: @llvm.ppc.altivec.lvsl6742// CHECK-LE: store <8 x i16> zeroinitializer6743// CHECK-LE: @llvm.ppc.altivec.vperm6744 6745 res_vbs = vec_lvrxl(0, &vbs);6746// CHECK: store <8 x i16> zeroinitializer6747// CHECK: @llvm.ppc.altivec.lvxl6748// CHECK: @llvm.ppc.altivec.lvsl6749// CHECK: @llvm.ppc.altivec.vperm6750// CHECK-LE: store <8 x i16> zeroinitializer6751// CHECK-LE: @llvm.ppc.altivec.lvxl6752// CHECK-LE: @llvm.ppc.altivec.lvsl6753// CHECK-LE: @llvm.ppc.altivec.vperm6754 6755 res_vp = vec_lvrxl(0, &vp);6756// CHECK: store <8 x i16> zeroinitializer6757// CHECK: @llvm.ppc.altivec.lvxl6758// CHECK: @llvm.ppc.altivec.lvsl6759// CHECK: @llvm.ppc.altivec.vperm6760// CHECK-LE: store <8 x i16> zeroinitializer6761// CHECK-LE: @llvm.ppc.altivec.lvxl6762// CHECK-LE: @llvm.ppc.altivec.lvsl6763// CHECK-LE: @llvm.ppc.altivec.vperm6764 6765 res_vi = vec_lvrxl(0, param_i_ld);6766// CHECK: @llvm.ppc.altivec.lvxl6767// CHECK: @llvm.ppc.altivec.lvsl6768// CHECK: store <4 x i32> zeroinitializer6769// CHECK: @llvm.ppc.altivec.vperm6770// CHECK-LE: @llvm.ppc.altivec.lvxl6771// CHECK-LE: @llvm.ppc.altivec.lvsl6772// CHECK-LE: store <4 x i32> zeroinitializer6773// CHECK-LE: @llvm.ppc.altivec.vperm6774 6775 res_vi = vec_lvrxl(0, &vi);6776// CHECK: @llvm.ppc.altivec.lvxl6777// CHECK: @llvm.ppc.altivec.lvsl6778// CHECK: store <4 x i32> zeroinitializer6779// CHECK: @llvm.ppc.altivec.vperm6780// CHECK-LE: @llvm.ppc.altivec.lvxl6781// CHECK-LE: @llvm.ppc.altivec.lvsl6782// CHECK-LE: store <4 x i32> zeroinitializer6783// CHECK-LE: @llvm.ppc.altivec.vperm6784 6785 res_vui = vec_lvrxl(0, param_ui_ld);6786// CHECK: @llvm.ppc.altivec.lvxl6787// CHECK: @llvm.ppc.altivec.lvsl6788// CHECK: store <4 x i32> zeroinitializer6789// CHECK: @llvm.ppc.altivec.vperm6790// CHECK-LE: @llvm.ppc.altivec.lvxl6791// CHECK-LE: @llvm.ppc.altivec.lvsl6792// CHECK-LE: store <4 x i32> zeroinitializer6793// CHECK-LE: @llvm.ppc.altivec.vperm6794 6795 res_vui = vec_lvrxl(0, &vui);6796// CHECK: @llvm.ppc.altivec.lvxl6797// CHECK: @llvm.ppc.altivec.lvsl6798// CHECK: store <4 x i32> zeroinitializer6799// CHECK: @llvm.ppc.altivec.vperm6800// CHECK-LE: @llvm.ppc.altivec.lvxl6801// CHECK-LE: @llvm.ppc.altivec.lvsl6802// CHECK-LE: store <4 x i32> zeroinitializer6803// CHECK-LE: @llvm.ppc.altivec.vperm6804 6805 res_vbi = vec_lvrxl(0, &vbi);6806// CHECK: store <4 x i32> zeroinitializer6807// CHECK: @llvm.ppc.altivec.lvxl6808// CHECK: @llvm.ppc.altivec.lvsl6809// CHECK: @llvm.ppc.altivec.vperm6810// CHECK-LE: store <4 x i32> zeroinitializer6811// CHECK-LE: @llvm.ppc.altivec.lvxl6812// CHECK-LE: @llvm.ppc.altivec.lvsl6813// CHECK-LE: @llvm.ppc.altivec.vperm6814 6815 res_vf = vec_lvrxl(0, &vf);6816// CHECK: @llvm.ppc.altivec.lvxl6817// CHECK: @llvm.ppc.altivec.lvsl6818// CHECK: store <4 x float> zeroinitializer6819// CHECK: @llvm.ppc.altivec.vperm6820// CHECK-LE: @llvm.ppc.altivec.lvxl6821// CHECK-LE: @llvm.ppc.altivec.lvsl6822// CHECK-LE: store <4 x float> zeroinitializer6823// CHECK-LE: @llvm.ppc.altivec.vperm6824 6825 /* vec_stvlx */6826 vec_stvlx(vsc, 0, ¶m_sc);6827// CHECK: @llvm.ppc.altivec.lvx6828// CHECK: @llvm.ppc.altivec.lvsl6829// CHECK: store <16 x i8> zeroinitializer6830// CHECK: @llvm.ppc.altivec.vperm6831// CHECK: @llvm.ppc.altivec.lvsr6832// CHECK: @llvm.ppc.altivec.vperm6833// CHECK: @llvm.ppc.altivec.stvx6834// CHECK-LE: @llvm.ppc.altivec.lvx6835// CHECK-LE: @llvm.ppc.altivec.lvsl6836// CHECK-LE: store <16 x i8> zeroinitializer6837// CHECK-LE: @llvm.ppc.altivec.vperm6838// CHECK-LE: @llvm.ppc.altivec.lvsr6839// CHECK-LE: @llvm.ppc.altivec.vperm6840// CHECK-LE: @llvm.ppc.altivec.stvx6841 6842 vec_stvlx(vsc, 0, &vsc);6843// CHECK: @llvm.ppc.altivec.lvx6844// CHECK: @llvm.ppc.altivec.lvsl6845// CHECK: store <16 x i8> zeroinitializer6846// CHECK: @llvm.ppc.altivec.vperm6847// CHECK: @llvm.ppc.altivec.lvsr6848// CHECK: @llvm.ppc.altivec.vperm6849// CHECK: @llvm.ppc.altivec.stvx6850// CHECK-LE: @llvm.ppc.altivec.lvx6851// CHECK-LE: @llvm.ppc.altivec.lvsl6852// CHECK-LE: store <16 x i8> zeroinitializer6853// CHECK-LE: @llvm.ppc.altivec.vperm6854// CHECK-LE: @llvm.ppc.altivec.lvsr6855// CHECK-LE: @llvm.ppc.altivec.vperm6856// CHECK-LE: @llvm.ppc.altivec.stvx6857 6858 vec_stvlx(vuc, 0, ¶m_uc);6859// CHECK: @llvm.ppc.altivec.lvx6860// CHECK: @llvm.ppc.altivec.lvsl6861// CHECK: store <16 x i8> zeroinitializer6862// CHECK: @llvm.ppc.altivec.vperm6863// CHECK: @llvm.ppc.altivec.lvsr6864// CHECK: @llvm.ppc.altivec.vperm6865// CHECK: @llvm.ppc.altivec.stvx6866// CHECK-LE: @llvm.ppc.altivec.lvx6867// CHECK-LE: @llvm.ppc.altivec.lvsl6868// CHECK-LE: store <16 x i8> zeroinitializer6869// CHECK-LE: @llvm.ppc.altivec.vperm6870// CHECK-LE: @llvm.ppc.altivec.lvsr6871// CHECK-LE: @llvm.ppc.altivec.vperm6872// CHECK-LE: @llvm.ppc.altivec.stvx6873 6874 vec_stvlx(vuc, 0, &vuc);6875// CHECK: @llvm.ppc.altivec.lvx6876// CHECK: @llvm.ppc.altivec.lvsl6877// CHECK: store <16 x i8> zeroinitializer6878// CHECK: @llvm.ppc.altivec.vperm6879// CHECK: @llvm.ppc.altivec.lvsr6880// CHECK: @llvm.ppc.altivec.vperm6881// CHECK: @llvm.ppc.altivec.stvx6882// CHECK-LE: @llvm.ppc.altivec.lvx6883// CHECK-LE: @llvm.ppc.altivec.lvsl6884// CHECK-LE: store <16 x i8> zeroinitializer6885// CHECK-LE: @llvm.ppc.altivec.vperm6886// CHECK-LE: @llvm.ppc.altivec.lvsr6887// CHECK-LE: @llvm.ppc.altivec.vperm6888// CHECK-LE: @llvm.ppc.altivec.stvx6889 6890 vec_stvlx(vbc, 0, &vbc);6891// CHECK: store <16 x i8> zeroinitializer6892// CHECK: @llvm.ppc.altivec.lvx6893// CHECK: @llvm.ppc.altivec.lvsl6894// CHECK: @llvm.ppc.altivec.vperm6895// CHECK: @llvm.ppc.altivec.lvsr6896// CHECK: @llvm.ppc.altivec.vperm6897// CHECK: @llvm.ppc.altivec.stvx6898// CHECK-LE: store <16 x i8> zeroinitializer6899// CHECK-LE: @llvm.ppc.altivec.lvx6900// CHECK-LE: @llvm.ppc.altivec.lvsl6901// CHECK-LE: @llvm.ppc.altivec.vperm6902// CHECK-LE: @llvm.ppc.altivec.lvsr6903// CHECK-LE: @llvm.ppc.altivec.vperm6904// CHECK-LE: @llvm.ppc.altivec.stvx6905 6906 vec_stvlx(vs, 0, ¶m_s);6907// CHECK: @llvm.ppc.altivec.lvx6908// CHECK: @llvm.ppc.altivec.lvsl6909// CHECK: store <8 x i16> zeroinitializer6910// CHECK: @llvm.ppc.altivec.vperm6911// CHECK: @llvm.ppc.altivec.lvsr6912// CHECK: @llvm.ppc.altivec.vperm6913// CHECK: @llvm.ppc.altivec.stvx6914// CHECK-LE: @llvm.ppc.altivec.lvx6915// CHECK-LE: @llvm.ppc.altivec.lvsl6916// CHECK-LE: store <8 x i16> zeroinitializer6917// CHECK-LE: @llvm.ppc.altivec.vperm6918// CHECK-LE: @llvm.ppc.altivec.lvsr6919// CHECK-LE: @llvm.ppc.altivec.vperm6920// CHECK-LE: @llvm.ppc.altivec.stvx6921 6922 vec_stvlx(vs, 0, &vs);6923// CHECK: @llvm.ppc.altivec.lvx6924// CHECK: @llvm.ppc.altivec.lvsl6925// CHECK: store <8 x i16> zeroinitializer6926// CHECK: @llvm.ppc.altivec.vperm6927// CHECK: @llvm.ppc.altivec.lvsr6928// CHECK: @llvm.ppc.altivec.vperm6929// CHECK: @llvm.ppc.altivec.stvx6930// CHECK-LE: @llvm.ppc.altivec.lvx6931// CHECK-LE: @llvm.ppc.altivec.lvsl6932// CHECK-LE: store <8 x i16> zeroinitializer6933// CHECK-LE: @llvm.ppc.altivec.vperm6934// CHECK-LE: @llvm.ppc.altivec.lvsr6935// CHECK-LE: @llvm.ppc.altivec.vperm6936// CHECK-LE: @llvm.ppc.altivec.stvx6937 6938 vec_stvlx(vus, 0, ¶m_us);6939// CHECK: @llvm.ppc.altivec.lvx6940// CHECK: @llvm.ppc.altivec.lvsl6941// CHECK: store <8 x i16> zeroinitializer6942// CHECK: @llvm.ppc.altivec.vperm6943// CHECK: @llvm.ppc.altivec.lvsr6944// CHECK: @llvm.ppc.altivec.vperm6945// CHECK: @llvm.ppc.altivec.stvx6946// CHECK-LE: @llvm.ppc.altivec.lvx6947// CHECK-LE: @llvm.ppc.altivec.lvsl6948// CHECK-LE: store <8 x i16> zeroinitializer6949// CHECK-LE: @llvm.ppc.altivec.vperm6950// CHECK-LE: @llvm.ppc.altivec.lvsr6951// CHECK-LE: @llvm.ppc.altivec.vperm6952// CHECK-LE: @llvm.ppc.altivec.stvx6953 6954 vec_stvlx(vus, 0, &vus);6955// CHECK: @llvm.ppc.altivec.lvx6956// CHECK: @llvm.ppc.altivec.lvsl6957// CHECK: store <8 x i16> zeroinitializer6958// CHECK: @llvm.ppc.altivec.vperm6959// CHECK: @llvm.ppc.altivec.lvsr6960// CHECK: @llvm.ppc.altivec.vperm6961// CHECK: @llvm.ppc.altivec.stvx6962// CHECK-LE: @llvm.ppc.altivec.lvx6963// CHECK-LE: @llvm.ppc.altivec.lvsl6964// CHECK-LE: store <8 x i16> zeroinitializer6965// CHECK-LE: @llvm.ppc.altivec.vperm6966// CHECK-LE: @llvm.ppc.altivec.lvsr6967// CHECK-LE: @llvm.ppc.altivec.vperm6968// CHECK-LE: @llvm.ppc.altivec.stvx6969 6970 vec_stvlx(vbs, 0, &vbs);6971// CHECK: store <8 x i16> zeroinitializer6972// CHECK: @llvm.ppc.altivec.lvx6973// CHECK: @llvm.ppc.altivec.lvsl6974// CHECK: @llvm.ppc.altivec.vperm6975// CHECK: @llvm.ppc.altivec.lvsr6976// CHECK: @llvm.ppc.altivec.vperm6977// CHECK: @llvm.ppc.altivec.stvx6978// CHECK-LE: store <8 x i16> zeroinitializer6979// CHECK-LE: @llvm.ppc.altivec.lvx6980// CHECK-LE: @llvm.ppc.altivec.lvsl6981// CHECK-LE: @llvm.ppc.altivec.vperm6982// CHECK-LE: @llvm.ppc.altivec.lvsr6983// CHECK-LE: @llvm.ppc.altivec.vperm6984// CHECK-LE: @llvm.ppc.altivec.stvx6985 6986 vec_stvlx(vp, 0, &vp);6987// CHECK: store <8 x i16> zeroinitializer6988// CHECK: @llvm.ppc.altivec.lvx6989// CHECK: @llvm.ppc.altivec.lvsl6990// CHECK: @llvm.ppc.altivec.vperm6991// CHECK: @llvm.ppc.altivec.lvsr6992// CHECK: @llvm.ppc.altivec.vperm6993// CHECK: @llvm.ppc.altivec.stvx6994// CHECK-LE: store <8 x i16> zeroinitializer6995// CHECK-LE: @llvm.ppc.altivec.lvx6996// CHECK-LE: @llvm.ppc.altivec.lvsl6997// CHECK-LE: @llvm.ppc.altivec.vperm6998// CHECK-LE: @llvm.ppc.altivec.lvsr6999// CHECK-LE: @llvm.ppc.altivec.vperm7000// CHECK-LE: @llvm.ppc.altivec.stvx7001 7002 vec_stvlx(vi, 0, ¶m_i);7003// CHECK: @llvm.ppc.altivec.lvx7004// CHECK: @llvm.ppc.altivec.lvsl7005// CHECK: store <4 x i32> zeroinitializer7006// CHECK: @llvm.ppc.altivec.vperm7007// CHECK: @llvm.ppc.altivec.lvsr7008// CHECK: @llvm.ppc.altivec.vperm7009// CHECK: @llvm.ppc.altivec.stvx7010// CHECK-LE: @llvm.ppc.altivec.lvx7011// CHECK-LE: @llvm.ppc.altivec.lvsl7012// CHECK-LE: store <4 x i32> zeroinitializer7013// CHECK-LE: @llvm.ppc.altivec.vperm7014// CHECK-LE: @llvm.ppc.altivec.lvsr7015// CHECK-LE: @llvm.ppc.altivec.vperm7016// CHECK-LE: @llvm.ppc.altivec.stvx7017 7018 vec_stvlx(vi, 0, &vi);7019// CHECK: @llvm.ppc.altivec.lvx7020// CHECK: @llvm.ppc.altivec.lvsl7021// CHECK: store <4 x i32> zeroinitializer7022// CHECK: @llvm.ppc.altivec.vperm7023// CHECK: @llvm.ppc.altivec.lvsr7024// CHECK: @llvm.ppc.altivec.vperm7025// CHECK: @llvm.ppc.altivec.stvx7026// CHECK-LE: @llvm.ppc.altivec.lvx7027// CHECK-LE: @llvm.ppc.altivec.lvsl7028// CHECK-LE: store <4 x i32> zeroinitializer7029// CHECK-LE: @llvm.ppc.altivec.vperm7030// CHECK-LE: @llvm.ppc.altivec.lvsr7031// CHECK-LE: @llvm.ppc.altivec.vperm7032// CHECK-LE: @llvm.ppc.altivec.stvx7033 7034 vec_stvlx(vui, 0, ¶m_ui);7035// CHECK: @llvm.ppc.altivec.lvx7036// CHECK: @llvm.ppc.altivec.lvsl7037// CHECK: store <4 x i32> zeroinitializer7038// CHECK: @llvm.ppc.altivec.vperm7039// CHECK: @llvm.ppc.altivec.lvsr7040// CHECK: @llvm.ppc.altivec.vperm7041// CHECK: @llvm.ppc.altivec.stvx7042// CHECK-LE: @llvm.ppc.altivec.lvx7043// CHECK-LE: @llvm.ppc.altivec.lvsl7044// CHECK-LE: store <4 x i32> zeroinitializer7045// CHECK-LE: @llvm.ppc.altivec.vperm7046// CHECK-LE: @llvm.ppc.altivec.lvsr7047// CHECK-LE: @llvm.ppc.altivec.vperm7048// CHECK-LE: @llvm.ppc.altivec.stvx7049 7050 vec_stvlx(vui, 0, &vui);7051// CHECK: @llvm.ppc.altivec.lvx7052// CHECK: @llvm.ppc.altivec.lvsl7053// CHECK: store <4 x i32> zeroinitializer7054// CHECK: @llvm.ppc.altivec.vperm7055// CHECK: @llvm.ppc.altivec.lvsr7056// CHECK: @llvm.ppc.altivec.vperm7057// CHECK: @llvm.ppc.altivec.stvx7058// CHECK-LE: @llvm.ppc.altivec.lvx7059// CHECK-LE: @llvm.ppc.altivec.lvsl7060// CHECK-LE: store <4 x i32> zeroinitializer7061// CHECK-LE: @llvm.ppc.altivec.vperm7062// CHECK-LE: @llvm.ppc.altivec.lvsr7063// CHECK-LE: @llvm.ppc.altivec.vperm7064// CHECK-LE: @llvm.ppc.altivec.stvx7065 7066 vec_stvlx(vbi, 0, &vbi);7067// CHECK: store <4 x i32> zeroinitializer7068// CHECK: @llvm.ppc.altivec.lvx7069// CHECK: @llvm.ppc.altivec.lvsl7070// CHECK: @llvm.ppc.altivec.vperm7071// CHECK: @llvm.ppc.altivec.lvsr7072// CHECK: @llvm.ppc.altivec.vperm7073// CHECK: @llvm.ppc.altivec.stvx7074// CHECK-LE: store <4 x i32> zeroinitializer7075// CHECK-LE: @llvm.ppc.altivec.lvx7076// CHECK-LE: @llvm.ppc.altivec.lvsl7077// CHECK-LE: @llvm.ppc.altivec.vperm7078// CHECK-LE: @llvm.ppc.altivec.lvsr7079// CHECK-LE: @llvm.ppc.altivec.vperm7080// CHECK-LE: @llvm.ppc.altivec.stvx7081 7082 vec_stvlx(vf, 0, &vf);7083// CHECK: @llvm.ppc.altivec.lvx7084// CHECK: @llvm.ppc.altivec.lvsl7085// CHECK: store <4 x float> zeroinitializer7086// CHECK: @llvm.ppc.altivec.vperm7087// CHECK: @llvm.ppc.altivec.lvsr7088// CHECK: @llvm.ppc.altivec.vperm7089// CHECK: @llvm.ppc.altivec.stvx7090// CHECK-LE: @llvm.ppc.altivec.lvx7091// CHECK-LE: @llvm.ppc.altivec.lvsl7092// CHECK-LE: store <4 x float> zeroinitializer7093// CHECK-LE: @llvm.ppc.altivec.vperm7094// CHECK-LE: @llvm.ppc.altivec.lvsr7095// CHECK-LE: @llvm.ppc.altivec.vperm7096// CHECK-LE: @llvm.ppc.altivec.stvx7097 7098 /* vec_stvlxl */7099 vec_stvlxl(vsc, 0, ¶m_sc);7100// CHECK: @llvm.ppc.altivec.lvx7101// CHECK: @llvm.ppc.altivec.lvsl7102// CHECK: store <16 x i8> zeroinitializer7103// CHECK: @llvm.ppc.altivec.vperm7104// CHECK: @llvm.ppc.altivec.lvsr7105// CHECK: @llvm.ppc.altivec.vperm7106// CHECK: @llvm.ppc.altivec.stvxl7107// CHECK-LE: @llvm.ppc.altivec.lvx7108// CHECK-LE: @llvm.ppc.altivec.lvsl7109// CHECK-LE: store <16 x i8> zeroinitializer7110// CHECK-LE: @llvm.ppc.altivec.vperm7111// CHECK-LE: @llvm.ppc.altivec.lvsr7112// CHECK-LE: @llvm.ppc.altivec.vperm7113// CHECK-LE: @llvm.ppc.altivec.stvxl7114 7115 vec_stvlxl(vsc, 0, &vsc);7116// CHECK: @llvm.ppc.altivec.lvx7117// CHECK: @llvm.ppc.altivec.lvsl7118// CHECK: store <16 x i8> zeroinitializer7119// CHECK: @llvm.ppc.altivec.vperm7120// CHECK: @llvm.ppc.altivec.lvsr7121// CHECK: @llvm.ppc.altivec.vperm7122// CHECK: @llvm.ppc.altivec.stvxl7123// CHECK-LE: @llvm.ppc.altivec.lvx7124// CHECK-LE: @llvm.ppc.altivec.lvsl7125// CHECK-LE: store <16 x i8> zeroinitializer7126// CHECK-LE: @llvm.ppc.altivec.vperm7127// CHECK-LE: @llvm.ppc.altivec.lvsr7128// CHECK-LE: @llvm.ppc.altivec.vperm7129// CHECK-LE: @llvm.ppc.altivec.stvxl7130 7131 vec_stvlxl(vuc, 0, ¶m_uc);7132// CHECK: @llvm.ppc.altivec.lvx7133// CHECK: @llvm.ppc.altivec.lvsl7134// CHECK: store <16 x i8> zeroinitializer7135// CHECK: @llvm.ppc.altivec.vperm7136// CHECK: @llvm.ppc.altivec.lvsr7137// CHECK: @llvm.ppc.altivec.vperm7138// CHECK: @llvm.ppc.altivec.stvxl7139// CHECK-LE: @llvm.ppc.altivec.lvx7140// CHECK-LE: @llvm.ppc.altivec.lvsl7141// CHECK-LE: store <16 x i8> zeroinitializer7142// CHECK-LE: @llvm.ppc.altivec.vperm7143// CHECK-LE: @llvm.ppc.altivec.lvsr7144// CHECK-LE: @llvm.ppc.altivec.vperm7145// CHECK-LE: @llvm.ppc.altivec.stvxl7146 7147 vec_stvlxl(vuc, 0, &vuc);7148// CHECK: @llvm.ppc.altivec.lvx7149// CHECK: @llvm.ppc.altivec.lvsl7150// CHECK: store <16 x i8> zeroinitializer7151// CHECK: @llvm.ppc.altivec.vperm7152// CHECK: @llvm.ppc.altivec.lvsr7153// CHECK: @llvm.ppc.altivec.vperm7154// CHECK: @llvm.ppc.altivec.stvxl7155// CHECK-LE: @llvm.ppc.altivec.lvx7156// CHECK-LE: @llvm.ppc.altivec.lvsl7157// CHECK-LE: store <16 x i8> zeroinitializer7158// CHECK-LE: @llvm.ppc.altivec.vperm7159// CHECK-LE: @llvm.ppc.altivec.lvsr7160// CHECK-LE: @llvm.ppc.altivec.vperm7161// CHECK-LE: @llvm.ppc.altivec.stvxl7162 7163 vec_stvlxl(vbc, 0, &vbc);7164// CHECK: store <16 x i8> zeroinitializer7165// CHECK: @llvm.ppc.altivec.lvx7166// CHECK: @llvm.ppc.altivec.lvsl7167// CHECK: @llvm.ppc.altivec.vperm7168// CHECK: @llvm.ppc.altivec.lvsr7169// CHECK: @llvm.ppc.altivec.vperm7170// CHECK: @llvm.ppc.altivec.stvxl7171// CHECK-LE: store <16 x i8> zeroinitializer7172// CHECK-LE: @llvm.ppc.altivec.lvx7173// CHECK-LE: @llvm.ppc.altivec.lvsl7174// CHECK-LE: @llvm.ppc.altivec.vperm7175// CHECK-LE: @llvm.ppc.altivec.lvsr7176// CHECK-LE: @llvm.ppc.altivec.vperm7177// CHECK-LE: @llvm.ppc.altivec.stvxl7178 7179 vec_stvlxl(vs, 0, ¶m_s);7180// CHECK: @llvm.ppc.altivec.lvx7181// CHECK: @llvm.ppc.altivec.lvsl7182// CHECK: store <8 x i16> zeroinitializer7183// CHECK: @llvm.ppc.altivec.vperm7184// CHECK: @llvm.ppc.altivec.lvsr7185// CHECK: @llvm.ppc.altivec.vperm7186// CHECK: @llvm.ppc.altivec.stvxl7187// CHECK-LE: @llvm.ppc.altivec.lvx7188// CHECK-LE: @llvm.ppc.altivec.lvsl7189// CHECK-LE: store <8 x i16> zeroinitializer7190// CHECK-LE: @llvm.ppc.altivec.vperm7191// CHECK-LE: @llvm.ppc.altivec.lvsr7192// CHECK-LE: @llvm.ppc.altivec.vperm7193// CHECK-LE: @llvm.ppc.altivec.stvxl7194 7195 vec_stvlxl(vs, 0, &vs);7196// CHECK: @llvm.ppc.altivec.lvx7197// CHECK: @llvm.ppc.altivec.lvsl7198// CHECK: store <8 x i16> zeroinitializer7199// CHECK: @llvm.ppc.altivec.vperm7200// CHECK: @llvm.ppc.altivec.lvsr7201// CHECK: @llvm.ppc.altivec.vperm7202// CHECK: @llvm.ppc.altivec.stvxl7203// CHECK-LE: @llvm.ppc.altivec.lvx7204// CHECK-LE: @llvm.ppc.altivec.lvsl7205// CHECK-LE: store <8 x i16> zeroinitializer7206// CHECK-LE: @llvm.ppc.altivec.vperm7207// CHECK-LE: @llvm.ppc.altivec.lvsr7208// CHECK-LE: @llvm.ppc.altivec.vperm7209// CHECK-LE: @llvm.ppc.altivec.stvxl7210 7211 vec_stvlxl(vus, 0, ¶m_us);7212// CHECK: @llvm.ppc.altivec.lvx7213// CHECK: @llvm.ppc.altivec.lvsl7214// CHECK: store <8 x i16> zeroinitializer7215// CHECK: @llvm.ppc.altivec.vperm7216// CHECK: @llvm.ppc.altivec.lvsr7217// CHECK: @llvm.ppc.altivec.vperm7218// CHECK: @llvm.ppc.altivec.stvxl7219// CHECK-LE: @llvm.ppc.altivec.lvx7220// CHECK-LE: @llvm.ppc.altivec.lvsl7221// CHECK-LE: store <8 x i16> zeroinitializer7222// CHECK-LE: @llvm.ppc.altivec.vperm7223// CHECK-LE: @llvm.ppc.altivec.lvsr7224// CHECK-LE: @llvm.ppc.altivec.vperm7225// CHECK-LE: @llvm.ppc.altivec.stvxl7226 7227 vec_stvlxl(vus, 0, &vus);7228// CHECK: @llvm.ppc.altivec.lvx7229// CHECK: @llvm.ppc.altivec.lvsl7230// CHECK: store <8 x i16> zeroinitializer7231// CHECK: @llvm.ppc.altivec.vperm7232// CHECK: @llvm.ppc.altivec.lvsr7233// CHECK: @llvm.ppc.altivec.vperm7234// CHECK: @llvm.ppc.altivec.stvxl7235// CHECK-LE: @llvm.ppc.altivec.lvx7236// CHECK-LE: @llvm.ppc.altivec.lvsl7237// CHECK-LE: store <8 x i16> zeroinitializer7238// CHECK-LE: @llvm.ppc.altivec.vperm7239// CHECK-LE: @llvm.ppc.altivec.lvsr7240// CHECK-LE: @llvm.ppc.altivec.vperm7241// CHECK-LE: @llvm.ppc.altivec.stvxl7242 7243 vec_stvlxl(vbs, 0, &vbs);7244// CHECK: store <8 x i16> zeroinitializer7245// CHECK: @llvm.ppc.altivec.lvx7246// CHECK: @llvm.ppc.altivec.lvsl7247// CHECK: @llvm.ppc.altivec.vperm7248// CHECK: @llvm.ppc.altivec.lvsr7249// CHECK: @llvm.ppc.altivec.vperm7250// CHECK: @llvm.ppc.altivec.stvxl7251// CHECK-LE: store <8 x i16> zeroinitializer7252// CHECK-LE: @llvm.ppc.altivec.lvx7253// CHECK-LE: @llvm.ppc.altivec.lvsl7254// CHECK-LE: @llvm.ppc.altivec.vperm7255// CHECK-LE: @llvm.ppc.altivec.lvsr7256// CHECK-LE: @llvm.ppc.altivec.vperm7257// CHECK-LE: @llvm.ppc.altivec.stvxl7258 7259 vec_stvlxl(vp, 0, &vp);7260// CHECK: store <8 x i16> zeroinitializer7261// CHECK: @llvm.ppc.altivec.lvx7262// CHECK: @llvm.ppc.altivec.lvsl7263// CHECK: @llvm.ppc.altivec.vperm7264// CHECK: @llvm.ppc.altivec.lvsr7265// CHECK: @llvm.ppc.altivec.vperm7266// CHECK: @llvm.ppc.altivec.stvxl7267// CHECK-LE: store <8 x i16> zeroinitializer7268// CHECK-LE: @llvm.ppc.altivec.lvx7269// CHECK-LE: @llvm.ppc.altivec.lvsl7270// CHECK-LE: @llvm.ppc.altivec.vperm7271// CHECK-LE: @llvm.ppc.altivec.lvsr7272// CHECK-LE: @llvm.ppc.altivec.vperm7273// CHECK-LE: @llvm.ppc.altivec.stvxl7274 7275 vec_stvlxl(vi, 0, ¶m_i);7276// CHECK: @llvm.ppc.altivec.lvx7277// CHECK: @llvm.ppc.altivec.lvsl7278// CHECK: store <4 x i32> zeroinitializer7279// CHECK: @llvm.ppc.altivec.vperm7280// CHECK: @llvm.ppc.altivec.lvsr7281// CHECK: @llvm.ppc.altivec.vperm7282// CHECK: @llvm.ppc.altivec.stvxl7283// CHECK-LE: @llvm.ppc.altivec.lvx7284// CHECK-LE: @llvm.ppc.altivec.lvsl7285// CHECK-LE: store <4 x i32> zeroinitializer7286// CHECK-LE: @llvm.ppc.altivec.vperm7287// CHECK-LE: @llvm.ppc.altivec.lvsr7288// CHECK-LE: @llvm.ppc.altivec.vperm7289// CHECK-LE: @llvm.ppc.altivec.stvxl7290 7291 vec_stvlxl(vi, 0, &vi);7292// CHECK: @llvm.ppc.altivec.lvx7293// CHECK: @llvm.ppc.altivec.lvsl7294// CHECK: store <4 x i32> zeroinitializer7295// CHECK: @llvm.ppc.altivec.vperm7296// CHECK: @llvm.ppc.altivec.lvsr7297// CHECK: @llvm.ppc.altivec.vperm7298// CHECK: @llvm.ppc.altivec.stvxl7299// CHECK-LE: @llvm.ppc.altivec.lvx7300// CHECK-LE: @llvm.ppc.altivec.lvsl7301// CHECK-LE: store <4 x i32> zeroinitializer7302// CHECK-LE: @llvm.ppc.altivec.vperm7303// CHECK-LE: @llvm.ppc.altivec.lvsr7304// CHECK-LE: @llvm.ppc.altivec.vperm7305// CHECK-LE: @llvm.ppc.altivec.stvxl7306 7307 vec_stvlxl(vui, 0, ¶m_ui);7308// CHECK: @llvm.ppc.altivec.lvx7309// CHECK: @llvm.ppc.altivec.lvsl7310// CHECK: store <4 x i32> zeroinitializer7311// CHECK: @llvm.ppc.altivec.vperm7312// CHECK: @llvm.ppc.altivec.lvsr7313// CHECK: @llvm.ppc.altivec.vperm7314// CHECK: @llvm.ppc.altivec.stvxl7315// CHECK-LE: @llvm.ppc.altivec.lvx7316// CHECK-LE: @llvm.ppc.altivec.lvsl7317// CHECK-LE: store <4 x i32> zeroinitializer7318// CHECK-LE: @llvm.ppc.altivec.vperm7319// CHECK-LE: @llvm.ppc.altivec.lvsr7320// CHECK-LE: @llvm.ppc.altivec.vperm7321// CHECK-LE: @llvm.ppc.altivec.stvxl7322 7323 vec_stvlxl(vui, 0, &vui);7324// CHECK: @llvm.ppc.altivec.lvx7325// CHECK: @llvm.ppc.altivec.lvsl7326// CHECK: store <4 x i32> zeroinitializer7327// CHECK: @llvm.ppc.altivec.vperm7328// CHECK: @llvm.ppc.altivec.lvsr7329// CHECK: @llvm.ppc.altivec.vperm7330// CHECK: @llvm.ppc.altivec.stvxl7331// CHECK-LE: @llvm.ppc.altivec.lvx7332// CHECK-LE: @llvm.ppc.altivec.lvsl7333// CHECK-LE: store <4 x i32> zeroinitializer7334// CHECK-LE: @llvm.ppc.altivec.vperm7335// CHECK-LE: @llvm.ppc.altivec.lvsr7336// CHECK-LE: @llvm.ppc.altivec.vperm7337// CHECK-LE: @llvm.ppc.altivec.stvxl7338 7339 vec_stvlxl(vbi, 0, &vbi);7340// CHECK: store <4 x i32> zeroinitializer7341// CHECK: @llvm.ppc.altivec.lvx7342// CHECK: @llvm.ppc.altivec.lvsl7343// CHECK: @llvm.ppc.altivec.vperm7344// CHECK: @llvm.ppc.altivec.lvsr7345// CHECK: @llvm.ppc.altivec.vperm7346// CHECK: @llvm.ppc.altivec.stvxl7347// CHECK-LE: store <4 x i32> zeroinitializer7348// CHECK-LE: @llvm.ppc.altivec.lvx7349// CHECK-LE: @llvm.ppc.altivec.lvsl7350// CHECK-LE: @llvm.ppc.altivec.vperm7351// CHECK-LE: @llvm.ppc.altivec.lvsr7352// CHECK-LE: @llvm.ppc.altivec.vperm7353// CHECK-LE: @llvm.ppc.altivec.stvxl7354 7355 vec_stvlxl(vf, 0, &vf);7356// CHECK: @llvm.ppc.altivec.lvx7357// CHECK: @llvm.ppc.altivec.lvsl7358// CHECK: store <4 x float> zeroinitializer7359// CHECK: @llvm.ppc.altivec.vperm7360// CHECK: @llvm.ppc.altivec.lvsr7361// CHECK: @llvm.ppc.altivec.vperm7362// CHECK: @llvm.ppc.altivec.stvxl7363// CHECK-LE: @llvm.ppc.altivec.lvx7364// CHECK-LE: @llvm.ppc.altivec.lvsl7365// CHECK-LE: store <4 x float> zeroinitializer7366// CHECK-LE: @llvm.ppc.altivec.vperm7367// CHECK-LE: @llvm.ppc.altivec.lvsr7368// CHECK-LE: @llvm.ppc.altivec.vperm7369// CHECK-LE: @llvm.ppc.altivec.stvxl7370 7371 /* vec_stvrx */7372 vec_stvrx(vsc, 0, ¶m_sc);7373// CHECK: @llvm.ppc.altivec.lvx7374// CHECK: @llvm.ppc.altivec.lvsl7375// CHECK: store <16 x i8> zeroinitializer7376// CHECK: @llvm.ppc.altivec.vperm7377// CHECK: @llvm.ppc.altivec.lvsr7378// CHECK: @llvm.ppc.altivec.vperm7379// CHECK: @llvm.ppc.altivec.stvx7380// CHECK-LE: @llvm.ppc.altivec.lvx7381// CHECK-LE: @llvm.ppc.altivec.lvsl7382// CHECK-LE: store <16 x i8> zeroinitializer7383// CHECK-LE: @llvm.ppc.altivec.vperm7384// CHECK-LE: @llvm.ppc.altivec.lvsr7385// CHECK-LE: @llvm.ppc.altivec.vperm7386// CHECK-LE: @llvm.ppc.altivec.stvx7387 7388 vec_stvrx(vsc, 0, &vsc);7389// CHECK: @llvm.ppc.altivec.lvx7390// CHECK: @llvm.ppc.altivec.lvsl7391// CHECK: store <16 x i8> zeroinitializer7392// CHECK: @llvm.ppc.altivec.vperm7393// CHECK: @llvm.ppc.altivec.lvsr7394// CHECK: @llvm.ppc.altivec.vperm7395// CHECK: @llvm.ppc.altivec.stvx7396// CHECK-LE: @llvm.ppc.altivec.lvx7397// CHECK-LE: @llvm.ppc.altivec.lvsl7398// CHECK-LE: store <16 x i8> zeroinitializer7399// CHECK-LE: @llvm.ppc.altivec.vperm7400// CHECK-LE: @llvm.ppc.altivec.lvsr7401// CHECK-LE: @llvm.ppc.altivec.vperm7402// CHECK-LE: @llvm.ppc.altivec.stvx7403 7404 vec_stvrx(vuc, 0, ¶m_uc);7405// CHECK: @llvm.ppc.altivec.lvx7406// CHECK: @llvm.ppc.altivec.lvsl7407// CHECK: store <16 x i8> zeroinitializer7408// CHECK: @llvm.ppc.altivec.vperm7409// CHECK: @llvm.ppc.altivec.lvsr7410// CHECK: @llvm.ppc.altivec.vperm7411// CHECK: @llvm.ppc.altivec.stvx7412// CHECK-LE: @llvm.ppc.altivec.lvx7413// CHECK-LE: @llvm.ppc.altivec.lvsl7414// CHECK-LE: store <16 x i8> zeroinitializer7415// CHECK-LE: @llvm.ppc.altivec.vperm7416// CHECK-LE: @llvm.ppc.altivec.lvsr7417// CHECK-LE: @llvm.ppc.altivec.vperm7418// CHECK-LE: @llvm.ppc.altivec.stvx7419 7420 vec_stvrx(vuc, 0, &vuc);7421// CHECK: @llvm.ppc.altivec.lvx7422// CHECK: @llvm.ppc.altivec.lvsl7423// CHECK: store <16 x i8> zeroinitializer7424// CHECK: @llvm.ppc.altivec.vperm7425// CHECK: @llvm.ppc.altivec.lvsr7426// CHECK: @llvm.ppc.altivec.vperm7427// CHECK: @llvm.ppc.altivec.stvx7428// CHECK-LE: @llvm.ppc.altivec.lvx7429// CHECK-LE: @llvm.ppc.altivec.lvsl7430// CHECK-LE: store <16 x i8> zeroinitializer7431// CHECK-LE: @llvm.ppc.altivec.vperm7432// CHECK-LE: @llvm.ppc.altivec.lvsr7433// CHECK-LE: @llvm.ppc.altivec.vperm7434// CHECK-LE: @llvm.ppc.altivec.stvx7435 7436 vec_stvrx(vbc, 0, &vbc);7437// CHECK: @llvm.ppc.altivec.lvx7438// CHECK: store <16 x i8> zeroinitializer7439// CHECK: @llvm.ppc.altivec.lvsl7440// CHECK: @llvm.ppc.altivec.vperm7441// CHECK: @llvm.ppc.altivec.lvsr7442// CHECK: @llvm.ppc.altivec.vperm7443// CHECK: @llvm.ppc.altivec.stvx7444// CHECK-LE: @llvm.ppc.altivec.lvx7445// CHECK-LE: store <16 x i8> zeroinitializer7446// CHECK-LE: @llvm.ppc.altivec.lvsl7447// CHECK-LE: @llvm.ppc.altivec.vperm7448// CHECK-LE: @llvm.ppc.altivec.lvsr7449// CHECK-LE: @llvm.ppc.altivec.vperm7450// CHECK-LE: @llvm.ppc.altivec.stvx7451 7452 vec_stvrx(vs, 0, ¶m_s);7453// CHECK: @llvm.ppc.altivec.lvx7454// CHECK: @llvm.ppc.altivec.lvsl7455// CHECK: store <8 x i16> zeroinitializer7456// CHECK: @llvm.ppc.altivec.vperm7457// CHECK: @llvm.ppc.altivec.lvsr7458// CHECK: @llvm.ppc.altivec.vperm7459// CHECK: @llvm.ppc.altivec.stvx7460// CHECK-LE: @llvm.ppc.altivec.lvx7461// CHECK-LE: @llvm.ppc.altivec.lvsl7462// CHECK-LE: store <8 x i16> zeroinitializer7463// CHECK-LE: @llvm.ppc.altivec.vperm7464// CHECK-LE: @llvm.ppc.altivec.lvsr7465// CHECK-LE: @llvm.ppc.altivec.vperm7466// CHECK-LE: @llvm.ppc.altivec.stvx7467 7468 vec_stvrx(vs, 0, &vs);7469// CHECK: @llvm.ppc.altivec.lvx7470// CHECK: @llvm.ppc.altivec.lvsl7471// CHECK: store <8 x i16> zeroinitializer7472// CHECK: @llvm.ppc.altivec.vperm7473// CHECK: @llvm.ppc.altivec.lvsr7474// CHECK: @llvm.ppc.altivec.vperm7475// CHECK: @llvm.ppc.altivec.stvx7476// CHECK-LE: @llvm.ppc.altivec.lvx7477// CHECK-LE: @llvm.ppc.altivec.lvsl7478// CHECK-LE: store <8 x i16> zeroinitializer7479// CHECK-LE: @llvm.ppc.altivec.vperm7480// CHECK-LE: @llvm.ppc.altivec.lvsr7481// CHECK-LE: @llvm.ppc.altivec.vperm7482// CHECK-LE: @llvm.ppc.altivec.stvx7483 7484 vec_stvrx(vus, 0, ¶m_us);7485// CHECK: @llvm.ppc.altivec.lvx7486// CHECK: @llvm.ppc.altivec.lvsl7487// CHECK: store <8 x i16> zeroinitializer7488// CHECK: @llvm.ppc.altivec.vperm7489// CHECK: @llvm.ppc.altivec.lvsr7490// CHECK: @llvm.ppc.altivec.vperm7491// CHECK: @llvm.ppc.altivec.stvx7492// CHECK-LE: @llvm.ppc.altivec.lvx7493// CHECK-LE: @llvm.ppc.altivec.lvsl7494// CHECK-LE: store <8 x i16> zeroinitializer7495// CHECK-LE: @llvm.ppc.altivec.vperm7496// CHECK-LE: @llvm.ppc.altivec.lvsr7497// CHECK-LE: @llvm.ppc.altivec.vperm7498// CHECK-LE: @llvm.ppc.altivec.stvx7499 7500 vec_stvrx(vus, 0, &vus);7501// CHECK: @llvm.ppc.altivec.lvx7502// CHECK: @llvm.ppc.altivec.lvsl7503// CHECK: store <8 x i16> zeroinitializer7504// CHECK: @llvm.ppc.altivec.vperm7505// CHECK: @llvm.ppc.altivec.lvsr7506// CHECK: @llvm.ppc.altivec.vperm7507// CHECK: @llvm.ppc.altivec.stvx7508// CHECK-LE: @llvm.ppc.altivec.lvx7509// CHECK-LE: @llvm.ppc.altivec.lvsl7510// CHECK-LE: store <8 x i16> zeroinitializer7511// CHECK-LE: @llvm.ppc.altivec.vperm7512// CHECK-LE: @llvm.ppc.altivec.lvsr7513// CHECK-LE: @llvm.ppc.altivec.vperm7514// CHECK-LE: @llvm.ppc.altivec.stvx7515 7516 vec_stvrx(vbs, 0, &vbs);7517// CHECK: @llvm.ppc.altivec.lvx7518// CHECK: store <8 x i16> zeroinitializer7519// CHECK: @llvm.ppc.altivec.lvsl7520// CHECK: @llvm.ppc.altivec.vperm7521// CHECK: @llvm.ppc.altivec.lvsr7522// CHECK: @llvm.ppc.altivec.vperm7523// CHECK: @llvm.ppc.altivec.stvx7524// CHECK-LE: @llvm.ppc.altivec.lvx7525// CHECK-LE: store <8 x i16> zeroinitializer7526// CHECK-LE: @llvm.ppc.altivec.lvsl7527// CHECK-LE: @llvm.ppc.altivec.vperm7528// CHECK-LE: @llvm.ppc.altivec.lvsr7529// CHECK-LE: @llvm.ppc.altivec.vperm7530// CHECK-LE: @llvm.ppc.altivec.stvx7531 7532 vec_stvrx(vp, 0, &vp);7533// CHECK: @llvm.ppc.altivec.lvx7534// CHECK: store <8 x i16> zeroinitializer7535// CHECK: @llvm.ppc.altivec.lvsl7536// CHECK: @llvm.ppc.altivec.vperm7537// CHECK: @llvm.ppc.altivec.lvsr7538// CHECK: @llvm.ppc.altivec.vperm7539// CHECK: @llvm.ppc.altivec.stvx7540// CHECK-LE: @llvm.ppc.altivec.lvx7541// CHECK-LE: store <8 x i16> zeroinitializer7542// CHECK-LE: @llvm.ppc.altivec.lvsl7543// CHECK-LE: @llvm.ppc.altivec.vperm7544// CHECK-LE: @llvm.ppc.altivec.lvsr7545// CHECK-LE: @llvm.ppc.altivec.vperm7546// CHECK-LE: @llvm.ppc.altivec.stvx7547 7548 vec_stvrx(vi, 0, ¶m_i);7549// CHECK: @llvm.ppc.altivec.lvx7550// CHECK: @llvm.ppc.altivec.lvsl7551// CHECK: store <4 x i32> zeroinitializer7552// CHECK: @llvm.ppc.altivec.vperm7553// CHECK: @llvm.ppc.altivec.lvsr7554// CHECK: @llvm.ppc.altivec.vperm7555// CHECK: @llvm.ppc.altivec.stvx7556// CHECK-LE: @llvm.ppc.altivec.lvx7557// CHECK-LE: @llvm.ppc.altivec.lvsl7558// CHECK-LE: store <4 x i32> zeroinitializer7559// CHECK-LE: @llvm.ppc.altivec.vperm7560// CHECK-LE: @llvm.ppc.altivec.lvsr7561// CHECK-LE: @llvm.ppc.altivec.vperm7562// CHECK-LE: @llvm.ppc.altivec.stvx7563 7564 vec_stvrx(vi, 0, &vi);7565// CHECK: @llvm.ppc.altivec.lvx7566// CHECK: @llvm.ppc.altivec.lvsl7567// CHECK: store <4 x i32> zeroinitializer7568// CHECK: @llvm.ppc.altivec.vperm7569// CHECK: @llvm.ppc.altivec.lvsr7570// CHECK: @llvm.ppc.altivec.vperm7571// CHECK: @llvm.ppc.altivec.stvx7572// CHECK-LE: @llvm.ppc.altivec.lvx7573// CHECK-LE: @llvm.ppc.altivec.lvsl7574// CHECK-LE: store <4 x i32> zeroinitializer7575// CHECK-LE: @llvm.ppc.altivec.vperm7576// CHECK-LE: @llvm.ppc.altivec.lvsr7577// CHECK-LE: @llvm.ppc.altivec.vperm7578// CHECK-LE: @llvm.ppc.altivec.stvx7579 7580 vec_stvrx(vui, 0, ¶m_ui);7581// CHECK: @llvm.ppc.altivec.lvx7582// CHECK: @llvm.ppc.altivec.lvsl7583// CHECK: store <4 x i32> zeroinitializer7584// CHECK: @llvm.ppc.altivec.vperm7585// CHECK: @llvm.ppc.altivec.lvsr7586// CHECK: @llvm.ppc.altivec.vperm7587// CHECK: @llvm.ppc.altivec.stvx7588// CHECK-LE: @llvm.ppc.altivec.lvx7589// CHECK-LE: @llvm.ppc.altivec.lvsl7590// CHECK-LE: store <4 x i32> zeroinitializer7591// CHECK-LE: @llvm.ppc.altivec.vperm7592// CHECK-LE: @llvm.ppc.altivec.lvsr7593// CHECK-LE: @llvm.ppc.altivec.vperm7594// CHECK-LE: @llvm.ppc.altivec.stvx7595 7596 vec_stvrx(vui, 0, &vui);7597// CHECK: @llvm.ppc.altivec.lvx7598// CHECK: @llvm.ppc.altivec.lvsl7599// CHECK: store <4 x i32> zeroinitializer7600// CHECK: @llvm.ppc.altivec.vperm7601// CHECK: @llvm.ppc.altivec.lvsr7602// CHECK: @llvm.ppc.altivec.vperm7603// CHECK: @llvm.ppc.altivec.stvx7604// CHECK-LE: @llvm.ppc.altivec.lvx7605// CHECK-LE: @llvm.ppc.altivec.lvsl7606// CHECK-LE: store <4 x i32> zeroinitializer7607// CHECK-LE: @llvm.ppc.altivec.vperm7608// CHECK-LE: @llvm.ppc.altivec.lvsr7609// CHECK-LE: @llvm.ppc.altivec.vperm7610// CHECK-LE: @llvm.ppc.altivec.stvx7611 7612 vec_stvrx(vbi, 0, &vbi);7613// CHECK: @llvm.ppc.altivec.lvx7614// CHECK: store <4 x i32> zeroinitializer7615// CHECK: @llvm.ppc.altivec.lvsl7616// CHECK: @llvm.ppc.altivec.vperm7617// CHECK: @llvm.ppc.altivec.lvsr7618// CHECK: @llvm.ppc.altivec.vperm7619// CHECK: @llvm.ppc.altivec.stvx7620// CHECK-LE: @llvm.ppc.altivec.lvx7621// CHECK-LE: store <4 x i32> zeroinitializer7622// CHECK-LE: @llvm.ppc.altivec.lvsl7623// CHECK-LE: @llvm.ppc.altivec.vperm7624// CHECK-LE: @llvm.ppc.altivec.lvsr7625// CHECK-LE: @llvm.ppc.altivec.vperm7626// CHECK-LE: @llvm.ppc.altivec.stvx7627 7628 vec_stvrx(vf, 0, &vf);7629// CHECK: @llvm.ppc.altivec.lvx7630// CHECK: @llvm.ppc.altivec.lvsl7631// CHECK: store <4 x float> zeroinitializer7632// CHECK: @llvm.ppc.altivec.vperm7633// CHECK: @llvm.ppc.altivec.lvsr7634// CHECK: @llvm.ppc.altivec.vperm7635// CHECK: @llvm.ppc.altivec.stvx7636// CHECK-LE: @llvm.ppc.altivec.lvx7637// CHECK-LE: @llvm.ppc.altivec.lvsl7638// CHECK-LE: store <4 x float> zeroinitializer7639// CHECK-LE: @llvm.ppc.altivec.vperm7640// CHECK-LE: @llvm.ppc.altivec.lvsr7641// CHECK-LE: @llvm.ppc.altivec.vperm7642// CHECK-LE: @llvm.ppc.altivec.stvx7643 7644 /* vec_stvrxl */7645 vec_stvrxl(vsc, 0, ¶m_sc);7646// CHECK: @llvm.ppc.altivec.lvx7647// CHECK: @llvm.ppc.altivec.lvsl7648// CHECK: store <16 x i8> zeroinitializer7649// CHECK: @llvm.ppc.altivec.vperm7650// CHECK: @llvm.ppc.altivec.lvsr7651// CHECK: @llvm.ppc.altivec.vperm7652// CHECK: @llvm.ppc.altivec.stvxl7653// CHECK-LE: @llvm.ppc.altivec.lvx7654// CHECK-LE: @llvm.ppc.altivec.lvsl7655// CHECK-LE: store <16 x i8> zeroinitializer7656// CHECK-LE: @llvm.ppc.altivec.vperm7657// CHECK-LE: @llvm.ppc.altivec.lvsr7658// CHECK-LE: @llvm.ppc.altivec.vperm7659// CHECK-LE: @llvm.ppc.altivec.stvxl7660 7661 vec_stvrxl(vsc, 0, &vsc);7662// CHECK: @llvm.ppc.altivec.lvx7663// CHECK: @llvm.ppc.altivec.lvsl7664// CHECK: store <16 x i8> zeroinitializer7665// CHECK: @llvm.ppc.altivec.vperm7666// CHECK: @llvm.ppc.altivec.lvsr7667// CHECK: @llvm.ppc.altivec.vperm7668// CHECK: @llvm.ppc.altivec.stvxl7669// CHECK-LE: @llvm.ppc.altivec.lvx7670// CHECK-LE: @llvm.ppc.altivec.lvsl7671// CHECK-LE: store <16 x i8> zeroinitializer7672// CHECK-LE: @llvm.ppc.altivec.vperm7673// CHECK-LE: @llvm.ppc.altivec.lvsr7674// CHECK-LE: @llvm.ppc.altivec.vperm7675// CHECK-LE: @llvm.ppc.altivec.stvxl7676 7677 vec_stvrxl(vuc, 0, ¶m_uc);7678// CHECK: @llvm.ppc.altivec.lvx7679// CHECK: @llvm.ppc.altivec.lvsl7680// CHECK: store <16 x i8> zeroinitializer7681// CHECK: @llvm.ppc.altivec.vperm7682// CHECK: @llvm.ppc.altivec.lvsr7683// CHECK: @llvm.ppc.altivec.vperm7684// CHECK: @llvm.ppc.altivec.stvxl7685// CHECK-LE: @llvm.ppc.altivec.lvx7686// CHECK-LE: @llvm.ppc.altivec.lvsl7687// CHECK-LE: store <16 x i8> zeroinitializer7688// CHECK-LE: @llvm.ppc.altivec.vperm7689// CHECK-LE: @llvm.ppc.altivec.lvsr7690// CHECK-LE: @llvm.ppc.altivec.vperm7691// CHECK-LE: @llvm.ppc.altivec.stvxl7692 7693 vec_stvrxl(vuc, 0, &vuc);7694// CHECK: @llvm.ppc.altivec.lvx7695// CHECK: @llvm.ppc.altivec.lvsl7696// CHECK: store <16 x i8> zeroinitializer7697// CHECK: @llvm.ppc.altivec.vperm7698// CHECK: @llvm.ppc.altivec.lvsr7699// CHECK: @llvm.ppc.altivec.vperm7700// CHECK: @llvm.ppc.altivec.stvxl7701// CHECK-LE: @llvm.ppc.altivec.lvx7702// CHECK-LE: @llvm.ppc.altivec.lvsl7703// CHECK-LE: store <16 x i8> zeroinitializer7704// CHECK-LE: @llvm.ppc.altivec.vperm7705// CHECK-LE: @llvm.ppc.altivec.lvsr7706// CHECK-LE: @llvm.ppc.altivec.vperm7707// CHECK-LE: @llvm.ppc.altivec.stvxl7708 7709 vec_stvrxl(vbc, 0, &vbc);7710// CHECK: @llvm.ppc.altivec.lvx7711// CHECK: store <16 x i8> zeroinitializer7712// CHECK: @llvm.ppc.altivec.lvsl7713// CHECK: @llvm.ppc.altivec.vperm7714// CHECK: @llvm.ppc.altivec.lvsr7715// CHECK: @llvm.ppc.altivec.vperm7716// CHECK: @llvm.ppc.altivec.stvxl7717// CHECK-LE: @llvm.ppc.altivec.lvx7718// CHECK-LE: store <16 x i8> zeroinitializer7719// CHECK-LE: @llvm.ppc.altivec.lvsl7720// CHECK-LE: @llvm.ppc.altivec.vperm7721// CHECK-LE: @llvm.ppc.altivec.lvsr7722// CHECK-LE: @llvm.ppc.altivec.vperm7723// CHECK-LE: @llvm.ppc.altivec.stvxl7724 7725 vec_stvrxl(vs, 0, ¶m_s);7726// CHECK: @llvm.ppc.altivec.lvx7727// CHECK: @llvm.ppc.altivec.lvsl7728// CHECK: store <8 x i16> zeroinitializer7729// CHECK: @llvm.ppc.altivec.vperm7730// CHECK: @llvm.ppc.altivec.lvsr7731// CHECK: @llvm.ppc.altivec.vperm7732// CHECK: @llvm.ppc.altivec.stvxl7733// CHECK-LE: @llvm.ppc.altivec.lvx7734// CHECK-LE: @llvm.ppc.altivec.lvsl7735// CHECK-LE: store <8 x i16> zeroinitializer7736// CHECK-LE: @llvm.ppc.altivec.vperm7737// CHECK-LE: @llvm.ppc.altivec.lvsr7738// CHECK-LE: @llvm.ppc.altivec.vperm7739// CHECK-LE: @llvm.ppc.altivec.stvxl7740 7741 vec_stvrxl(vs, 0, &vs);7742// CHECK: @llvm.ppc.altivec.lvx7743// CHECK: @llvm.ppc.altivec.lvsl7744// CHECK: store <8 x i16> zeroinitializer7745// CHECK: @llvm.ppc.altivec.vperm7746// CHECK: @llvm.ppc.altivec.lvsr7747// CHECK: @llvm.ppc.altivec.vperm7748// CHECK: @llvm.ppc.altivec.stvxl7749// CHECK-LE: @llvm.ppc.altivec.lvx7750// CHECK-LE: @llvm.ppc.altivec.lvsl7751// CHECK-LE: store <8 x i16> zeroinitializer7752// CHECK-LE: @llvm.ppc.altivec.vperm7753// CHECK-LE: @llvm.ppc.altivec.lvsr7754// CHECK-LE: @llvm.ppc.altivec.vperm7755// CHECK-LE: @llvm.ppc.altivec.stvxl7756 7757 vec_stvrxl(vus, 0, ¶m_us);7758// CHECK: @llvm.ppc.altivec.lvx7759// CHECK: @llvm.ppc.altivec.lvsl7760// CHECK: store <8 x i16> zeroinitializer7761// CHECK: @llvm.ppc.altivec.vperm7762// CHECK: @llvm.ppc.altivec.lvsr7763// CHECK: @llvm.ppc.altivec.vperm7764// CHECK: @llvm.ppc.altivec.stvxl7765// CHECK-LE: @llvm.ppc.altivec.lvx7766// CHECK-LE: @llvm.ppc.altivec.lvsl7767// CHECK-LE: store <8 x i16> zeroinitializer7768// CHECK-LE: @llvm.ppc.altivec.vperm7769// CHECK-LE: @llvm.ppc.altivec.lvsr7770// CHECK-LE: @llvm.ppc.altivec.vperm7771// CHECK-LE: @llvm.ppc.altivec.stvxl7772 7773 vec_stvrxl(vus, 0, &vus);7774// CHECK: @llvm.ppc.altivec.lvx7775// CHECK: @llvm.ppc.altivec.lvsl7776// CHECK: store <8 x i16> zeroinitializer7777// CHECK: @llvm.ppc.altivec.vperm7778// CHECK: @llvm.ppc.altivec.lvsr7779// CHECK: @llvm.ppc.altivec.vperm7780// CHECK: @llvm.ppc.altivec.stvxl7781// CHECK-LE: @llvm.ppc.altivec.lvx7782// CHECK-LE: @llvm.ppc.altivec.lvsl7783// CHECK-LE: store <8 x i16> zeroinitializer7784// CHECK-LE: @llvm.ppc.altivec.vperm7785// CHECK-LE: @llvm.ppc.altivec.lvsr7786// CHECK-LE: @llvm.ppc.altivec.vperm7787// CHECK-LE: @llvm.ppc.altivec.stvxl7788 7789 vec_stvrxl(vbs, 0, &vbs);7790// CHECK: @llvm.ppc.altivec.lvx7791// CHECK: store <8 x i16> zeroinitializer7792// CHECK: @llvm.ppc.altivec.lvsl7793// CHECK: @llvm.ppc.altivec.vperm7794// CHECK: @llvm.ppc.altivec.lvsr7795// CHECK: @llvm.ppc.altivec.vperm7796// CHECK: @llvm.ppc.altivec.stvxl7797// CHECK-LE: @llvm.ppc.altivec.lvx7798// CHECK-LE: store <8 x i16> zeroinitializer7799// CHECK-LE: @llvm.ppc.altivec.lvsl7800// CHECK-LE: @llvm.ppc.altivec.vperm7801// CHECK-LE: @llvm.ppc.altivec.lvsr7802// CHECK-LE: @llvm.ppc.altivec.vperm7803// CHECK-LE: @llvm.ppc.altivec.stvxl7804 7805 vec_stvrxl(vp, 0, &vp);7806// CHECK: @llvm.ppc.altivec.lvx7807// CHECK: store <8 x i16> zeroinitializer7808// CHECK: @llvm.ppc.altivec.lvsl7809// CHECK: @llvm.ppc.altivec.vperm7810// CHECK: @llvm.ppc.altivec.lvsr7811// CHECK: @llvm.ppc.altivec.vperm7812// CHECK: @llvm.ppc.altivec.stvxl7813// CHECK-LE: @llvm.ppc.altivec.lvx7814// CHECK-LE: store <8 x i16> zeroinitializer7815// CHECK-LE: @llvm.ppc.altivec.lvsl7816// CHECK-LE: @llvm.ppc.altivec.vperm7817// CHECK-LE: @llvm.ppc.altivec.lvsr7818// CHECK-LE: @llvm.ppc.altivec.vperm7819// CHECK-LE: @llvm.ppc.altivec.stvxl7820 7821 vec_stvrxl(vi, 0, ¶m_i);7822// CHECK: @llvm.ppc.altivec.lvx7823// CHECK: @llvm.ppc.altivec.lvsl7824// CHECK: store <4 x i32> zeroinitializer7825// CHECK: @llvm.ppc.altivec.vperm7826// CHECK: @llvm.ppc.altivec.lvsr7827// CHECK: @llvm.ppc.altivec.vperm7828// CHECK: @llvm.ppc.altivec.stvxl7829// CHECK-LE: @llvm.ppc.altivec.lvx7830// CHECK-LE: @llvm.ppc.altivec.lvsl7831// CHECK-LE: store <4 x i32> zeroinitializer7832// CHECK-LE: @llvm.ppc.altivec.vperm7833// CHECK-LE: @llvm.ppc.altivec.lvsr7834// CHECK-LE: @llvm.ppc.altivec.vperm7835// CHECK-LE: @llvm.ppc.altivec.stvxl7836 7837 vec_stvrxl(vi, 0, &vi);7838// CHECK: @llvm.ppc.altivec.lvx7839// CHECK: @llvm.ppc.altivec.lvsl7840// CHECK: store <4 x i32> zeroinitializer7841// CHECK: @llvm.ppc.altivec.vperm7842// CHECK: @llvm.ppc.altivec.lvsr7843// CHECK: @llvm.ppc.altivec.vperm7844// CHECK: @llvm.ppc.altivec.stvxl7845// CHECK-LE: @llvm.ppc.altivec.lvx7846// CHECK-LE: @llvm.ppc.altivec.lvsl7847// CHECK-LE: store <4 x i32> zeroinitializer7848// CHECK-LE: @llvm.ppc.altivec.vperm7849// CHECK-LE: @llvm.ppc.altivec.lvsr7850// CHECK-LE: @llvm.ppc.altivec.vperm7851// CHECK-LE: @llvm.ppc.altivec.stvxl7852 7853 vec_stvrxl(vui, 0, ¶m_ui);7854// CHECK: @llvm.ppc.altivec.lvx7855// CHECK: @llvm.ppc.altivec.lvsl7856// CHECK: store <4 x i32> zeroinitializer7857// CHECK: @llvm.ppc.altivec.vperm7858// CHECK: @llvm.ppc.altivec.lvsr7859// CHECK: @llvm.ppc.altivec.vperm7860// CHECK: @llvm.ppc.altivec.stvxl7861// CHECK-LE: @llvm.ppc.altivec.lvx7862// CHECK-LE: @llvm.ppc.altivec.lvsl7863// CHECK-LE: store <4 x i32> zeroinitializer7864// CHECK-LE: @llvm.ppc.altivec.vperm7865// CHECK-LE: @llvm.ppc.altivec.lvsr7866// CHECK-LE: @llvm.ppc.altivec.vperm7867// CHECK-LE: @llvm.ppc.altivec.stvxl7868 7869 vec_stvrxl(vui, 0, &vui);7870// CHECK: @llvm.ppc.altivec.lvx7871// CHECK: @llvm.ppc.altivec.lvsl7872// CHECK: store <4 x i32> zeroinitializer7873// CHECK: @llvm.ppc.altivec.vperm7874// CHECK: @llvm.ppc.altivec.lvsr7875// CHECK: @llvm.ppc.altivec.vperm7876// CHECK: @llvm.ppc.altivec.stvxl7877// CHECK-LE: @llvm.ppc.altivec.lvx7878// CHECK-LE: @llvm.ppc.altivec.lvsl7879// CHECK-LE: store <4 x i32> zeroinitializer7880// CHECK-LE: @llvm.ppc.altivec.vperm7881// CHECK-LE: @llvm.ppc.altivec.lvsr7882// CHECK-LE: @llvm.ppc.altivec.vperm7883// CHECK-LE: @llvm.ppc.altivec.stvxl7884 7885 vec_stvrxl(vbi, 0, &vbi);7886// CHECK: @llvm.ppc.altivec.lvx7887// CHECK: store <4 x i32> zeroinitializer7888// CHECK: @llvm.ppc.altivec.lvsl7889// CHECK: @llvm.ppc.altivec.vperm7890// CHECK: @llvm.ppc.altivec.lvsr7891// CHECK: @llvm.ppc.altivec.vperm7892// CHECK: @llvm.ppc.altivec.stvxl7893// CHECK-LE: @llvm.ppc.altivec.lvx7894// CHECK-LE: store <4 x i32> zeroinitializer7895// CHECK-LE: @llvm.ppc.altivec.lvsl7896// CHECK-LE: @llvm.ppc.altivec.vperm7897// CHECK-LE: @llvm.ppc.altivec.lvsr7898// CHECK-LE: @llvm.ppc.altivec.vperm7899// CHECK-LE: @llvm.ppc.altivec.stvxl7900 7901 vec_stvrxl(vf, 0, &vf);7902// CHECK: @llvm.ppc.altivec.lvx7903// CHECK: @llvm.ppc.altivec.lvsl7904// CHECK: store <4 x float> zeroinitializer7905// CHECK: @llvm.ppc.altivec.vperm7906// CHECK: @llvm.ppc.altivec.lvsr7907// CHECK: @llvm.ppc.altivec.vperm7908// CHECK: @llvm.ppc.altivec.stvxl7909// CHECK-LE: @llvm.ppc.altivec.lvx7910// CHECK-LE: @llvm.ppc.altivec.lvsl7911// CHECK-LE: store <4 x float> zeroinitializer7912// CHECK-LE: @llvm.ppc.altivec.vperm7913// CHECK-LE: @llvm.ppc.altivec.lvsr7914// CHECK-LE: @llvm.ppc.altivec.vperm7915// CHECK-LE: @llvm.ppc.altivec.stvxl7916 7917 /* vec_promote */7918 res_vsc = vec_promote(param_sc, 0);7919// CHECK: store <16 x i8> zeroinitializer7920// CHECK: insertelement <16 x i8>7921// CHECK-LE: store <16 x i8> zeroinitializer7922// CHECK-LE: insertelement <16 x i8>7923 7924 res_vuc = vec_promote(param_uc, 0);7925// CHECK: store <16 x i8> zeroinitializer7926// CHECK: insertelement <16 x i8>7927// CHECK-LE: store <16 x i8> zeroinitializer7928// CHECK-LE: insertelement <16 x i8>7929 7930 res_vs = vec_promote(param_s, 0);7931// CHECK: store <8 x i16> zeroinitializer7932// CHECK: insertelement <8 x i16>7933// CHECK-LE: store <8 x i16> zeroinitializer7934// CHECK-LE: insertelement <8 x i16>7935 7936 res_vus = vec_promote(param_us, 0);7937// CHECK: store <8 x i16> zeroinitializer7938// CHECK: insertelement <8 x i16>7939// CHECK-LE: store <8 x i16> zeroinitializer7940// CHECK-LE: insertelement <8 x i16>7941 7942 res_vi = vec_promote(param_i, 0);7943// CHECK: store <4 x i32> zeroinitializer7944// CHECK: insertelement <4 x i32>7945// CHECK-LE: store <4 x i32> zeroinitializer7946// CHECK-LE: insertelement <4 x i32>7947 7948 res_vui = vec_promote(param_ui, 0);7949// CHECK: store <4 x i32> zeroinitializer7950// CHECK: insertelement <4 x i32>7951// CHECK-LE: store <4 x i32> zeroinitializer7952// CHECK-LE: insertelement <4 x i32>7953 7954 res_vf = vec_promote(param_f, 0);7955// CHECK: store <4 x float> zeroinitializer7956// CHECK: insertelement <4 x float>7957// CHECK-LE: store <4 x float> zeroinitializer7958// CHECK-LE: insertelement <4 x float>7959 7960 /* vec_splats */7961 res_vsc = vec_splats(param_sc);7962// CHECK: insertelement <16 x i8>7963// CHECK-LE: insertelement <16 x i8>7964 7965 res_vuc = vec_splats(param_uc);7966// CHECK: insertelement <16 x i8>7967// CHECK-LE: insertelement <16 x i8>7968 7969 res_vs = vec_splats(param_s);7970// CHECK: insertelement <8 x i16>7971// CHECK-LE: insertelement <8 x i16>7972 7973 res_vus = vec_splats(param_us);7974// CHECK: insertelement <8 x i16>7975// CHECK-LE: insertelement <8 x i16>7976 7977 res_vi = vec_splats(param_i);7978// CHECK: insertelement <4 x i32>7979// CHECK-LE: insertelement <4 x i32>7980 7981 res_vui = vec_splats(param_ui);7982// CHECK: insertelement <4 x i32>7983// CHECK-LE: insertelement <4 x i32>7984 7985 res_vf = vec_splats(param_f);7986// CHECK: insertelement <4 x float>7987// CHECK-LE: insertelement <4 x float>7988 7989 /* ------------------------------ predicates -------------------------------------- */7990 7991 /* vec_all_eq */7992 res_i = vec_all_eq(vsc, vsc);7993// CHECK: @llvm.ppc.altivec.vcmpequb.p7994// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p7995 7996 res_i = vec_all_eq(vsc, vbc);7997// CHECK: @llvm.ppc.altivec.vcmpequb.p7998// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p7999 8000 res_i = vec_all_eq(vuc, vuc);8001// CHECK: @llvm.ppc.altivec.vcmpequb.p8002// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8003 8004 res_i = vec_all_eq(vuc, vbc);8005// CHECK: @llvm.ppc.altivec.vcmpequb.p8006// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8007 8008 res_i = vec_all_eq(vbc, vsc);8009// CHECK: @llvm.ppc.altivec.vcmpequb.p8010// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8011 8012 res_i = vec_all_eq(vbc, vuc);8013// CHECK: @llvm.ppc.altivec.vcmpequb.p8014// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8015 8016 res_i = vec_all_eq(vbc, vbc);8017// CHECK: @llvm.ppc.altivec.vcmpequb.p8018// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8019 8020 res_i = vec_all_eq(vs, vs);8021// CHECK: @llvm.ppc.altivec.vcmpequh.p8022// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8023 8024 res_i = vec_all_eq(vs, vbs);8025// CHECK: @llvm.ppc.altivec.vcmpequh.p8026// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8027 8028 res_i = vec_all_eq(vus, vus);8029// CHECK: @llvm.ppc.altivec.vcmpequh.p8030// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8031 8032 res_i = vec_all_eq(vus, vbs);8033// CHECK: @llvm.ppc.altivec.vcmpequh.p8034// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8035 8036 res_i = vec_all_eq(vbs, vs);8037// CHECK: @llvm.ppc.altivec.vcmpequh.p8038// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8039 8040 res_i = vec_all_eq(vbs, vus);8041// CHECK: @llvm.ppc.altivec.vcmpequh.p8042// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8043 8044 res_i = vec_all_eq(vbs, vbs);8045// CHECK: @llvm.ppc.altivec.vcmpequh.p8046// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8047 8048 res_i = vec_all_eq(vp, vp);8049// CHECK: @llvm.ppc.altivec.vcmpequh.p8050// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8051 8052 res_i = vec_all_eq(vi, vi);8053// CHECK: @llvm.ppc.altivec.vcmpequw.p8054// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8055 8056 res_i = vec_all_eq(vi, vbi);8057// CHECK: @llvm.ppc.altivec.vcmpequw.p8058// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8059 8060 res_i = vec_all_eq(vui, vui);8061// CHECK: @llvm.ppc.altivec.vcmpequw.p8062// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8063 8064 res_i = vec_all_eq(vui, vbi);8065// CHECK: @llvm.ppc.altivec.vcmpequw.p8066// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8067 8068 res_i = vec_all_eq(vbi, vi);8069// CHECK: @llvm.ppc.altivec.vcmpequw.p8070// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8071 8072 res_i = vec_all_eq(vbi, vui);8073// CHECK: @llvm.ppc.altivec.vcmpequw.p8074// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8075 8076 res_i = vec_all_eq(vbi, vbi);8077// CHECK: @llvm.ppc.altivec.vcmpequw.p8078// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8079 8080 res_i = vec_all_eq(vf, vf);8081// CHECK: @llvm.ppc.altivec.vcmpeqfp.p8082// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p8083 8084 /* vec_all_ge */8085 res_i = vec_all_ge(vsc, vsc);8086// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8087// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8088 8089 res_i = vec_all_ge(vsc, vbc);8090// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8091// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8092 8093 res_i = vec_all_ge(vuc, vuc);8094// CHECK: @llvm.ppc.altivec.vcmpgtub.p8095// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8096 8097 res_i = vec_all_ge(vuc, vbc);8098// CHECK: @llvm.ppc.altivec.vcmpgtub.p8099// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8100 8101 res_i = vec_all_ge(vbc, vsc);8102// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8103// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8104 8105 res_i = vec_all_ge(vbc, vuc);8106// CHECK: @llvm.ppc.altivec.vcmpgtub.p8107// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8108 8109 res_i = vec_all_ge(vbc, vbc);8110// CHECK: @llvm.ppc.altivec.vcmpgtub.p8111// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8112 8113 res_i = vec_all_ge(vs, vs);8114// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8115// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8116 8117 res_i = vec_all_ge(vs, vbs);8118// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8119// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8120 8121 res_i = vec_all_ge(vus, vus);8122// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8123// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8124 8125 res_i = vec_all_ge(vus, vbs);8126// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8127// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8128 8129 res_i = vec_all_ge(vbs, vs);8130// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8131// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8132 8133 res_i = vec_all_ge(vbs, vus);8134// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8135// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8136 8137 res_i = vec_all_ge(vbs, vbs);8138// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8139// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8140 8141 res_i = vec_all_ge(vi, vi);8142// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8143// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8144 8145 res_i = vec_all_ge(vi, vbi);8146// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8147// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8148 8149 res_i = vec_all_ge(vui, vui);8150// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8151// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8152 8153 res_i = vec_all_ge(vui, vbi);8154// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8155// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8156 8157 res_i = vec_all_ge(vbi, vi);8158// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8159// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8160 8161 res_i = vec_all_ge(vbi, vui);8162// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8163// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8164 8165 res_i = vec_all_ge(vbi, vbi);8166// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8167// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8168 8169 res_i = vec_all_ge(vf, vf);8170// CHECK: @llvm.ppc.altivec.vcmpgefp.p8171// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p8172 8173 /* vec_all_gt */8174 res_i = vec_all_gt(vsc, vsc);8175// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8176// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8177 8178 res_i = vec_all_gt(vsc, vbc);8179// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8180// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8181 8182 res_i = vec_all_gt(vuc, vuc);8183// CHECK: @llvm.ppc.altivec.vcmpgtub.p8184// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8185 8186 res_i = vec_all_gt(vuc, vbc);8187// CHECK: @llvm.ppc.altivec.vcmpgtub.p8188// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8189 8190 res_i = vec_all_gt(vbc, vsc);8191// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8192// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8193 8194 res_i = vec_all_gt(vbc, vuc);8195// CHECK: @llvm.ppc.altivec.vcmpgtub.p8196// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8197 8198 res_i = vec_all_gt(vbc, vbc);8199// CHECK: @llvm.ppc.altivec.vcmpgtub.p8200// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8201 8202 res_i = vec_all_gt(vs, vs);8203// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8204// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8205 8206 res_i = vec_all_gt(vs, vbs);8207// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8208// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8209 8210 res_i = vec_all_gt(vus, vus);8211// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8212// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8213 8214 res_i = vec_all_gt(vus, vbs);8215// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8216// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8217 8218 res_i = vec_all_gt(vbs, vs);8219// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8220// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8221 8222 res_i = vec_all_gt(vbs, vus);8223// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8224// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8225 8226 res_i = vec_all_gt(vbs, vbs);8227// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8228// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8229 8230 res_i = vec_all_gt(vi, vi);8231// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8232// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8233 8234 res_i = vec_all_gt(vi, vbi);8235// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8236// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8237 8238 res_i = vec_all_gt(vui, vui);8239// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8240// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8241 8242 res_i = vec_all_gt(vui, vbi);8243// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8244// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8245 8246 res_i = vec_all_gt(vbi, vi);8247// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8248// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8249 8250 res_i = vec_all_gt(vbi, vui);8251// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8252// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8253 8254 res_i = vec_all_gt(vbi, vbi);8255// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8256// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8257 8258 res_i = vec_all_gt(vf, vf);8259// CHECK: @llvm.ppc.altivec.vcmpgtfp.p8260// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p8261 8262 /* vec_all_in */8263 res_i = vec_all_in(vf, vf);8264// CHECK: @llvm.ppc.altivec.vcmpbfp.p8265// CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p8266 8267 /* vec_all_le */8268 res_i = vec_all_le(vsc, vsc);8269// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8270// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8271 8272 res_i = vec_all_le(vsc, vbc);8273// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8274// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8275 8276 res_i = vec_all_le(vuc, vuc);8277// CHECK: @llvm.ppc.altivec.vcmpgtub.p8278// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8279 8280 res_i = vec_all_le(vuc, vbc);8281// CHECK: @llvm.ppc.altivec.vcmpgtub.p8282// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8283 8284 res_i = vec_all_le(vbc, vsc);8285// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8286// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8287 8288 res_i = vec_all_le(vbc, vuc);8289// CHECK: @llvm.ppc.altivec.vcmpgtub.p8290// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8291 8292 res_i = vec_all_le(vbc, vbc);8293// CHECK: @llvm.ppc.altivec.vcmpgtub.p8294// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8295 8296 res_i = vec_all_le(vs, vs);8297// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8298// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8299 8300 res_i = vec_all_le(vs, vbs);8301// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8302// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8303 8304 res_i = vec_all_le(vus, vus);8305// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8306// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8307 8308 res_i = vec_all_le(vus, vbs);8309// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8310// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8311 8312 res_i = vec_all_le(vbs, vs);8313// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8314// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8315 8316 res_i = vec_all_le(vbs, vus);8317// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8318// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8319 8320 res_i = vec_all_le(vbs, vbs);8321// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8322// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8323 8324 res_i = vec_all_le(vi, vi);8325// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8326// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8327 8328 res_i = vec_all_le(vi, vbi);8329// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8330// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8331 8332 res_i = vec_all_le(vui, vui);8333// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8334// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8335 8336 res_i = vec_all_le(vui, vbi);8337// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8338// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8339 8340 res_i = vec_all_le(vbi, vi);8341// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8342// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8343 8344 res_i = vec_all_le(vbi, vui);8345// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8346// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8347 8348 res_i = vec_all_le(vbi, vbi);8349// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8350// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8351 8352 res_i = vec_all_le(vf, vf);8353// CHECK: @llvm.ppc.altivec.vcmpgefp.p8354// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p8355 8356 /* vec_all_lt */8357 res_i = vec_all_lt(vsc, vsc);8358// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8359// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8360 8361 res_i = vec_all_lt(vsc, vbc);8362// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8363// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8364 8365 res_i = vec_all_lt(vuc, vuc);8366// CHECK: @llvm.ppc.altivec.vcmpgtub.p8367// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8368 8369 res_i = vec_all_lt(vuc, vbc);8370// CHECK: @llvm.ppc.altivec.vcmpgtub.p8371// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8372 8373 res_i = vec_all_lt(vbc, vsc);8374// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8375// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8376 8377 res_i = vec_all_lt(vbc, vuc);8378// CHECK: @llvm.ppc.altivec.vcmpgtub.p8379// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8380 8381 res_i = vec_all_lt(vbc, vbc);8382// CHECK: @llvm.ppc.altivec.vcmpgtub.p8383// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8384 8385 res_i = vec_all_lt(vs, vs);8386// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8387// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8388 8389 res_i = vec_all_lt(vs, vbs);8390// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8391// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8392 8393 res_i = vec_all_lt(vus, vus);8394// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8395// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8396 8397 res_i = vec_all_lt(vus, vbs);8398// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8399// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8400 8401 res_i = vec_all_lt(vbs, vs);8402// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8403// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8404 8405 res_i = vec_all_lt(vbs, vus);8406// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8407// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8408 8409 res_i = vec_all_lt(vbs, vbs);8410// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8411// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8412 8413 res_i = vec_all_lt(vi, vi);8414// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8415// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8416 8417 res_i = vec_all_lt(vi, vbi);8418// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8419// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8420 8421 res_i = vec_all_lt(vui, vui);8422// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8423// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8424 8425 res_i = vec_all_lt(vui, vbi);8426// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8427// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8428 8429 res_i = vec_all_lt(vbi, vi);8430// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8431// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8432 8433 res_i = vec_all_lt(vbi, vui);8434// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8435// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8436 8437 res_i = vec_all_lt(vbi, vbi);8438// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8439// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8440 8441 res_i = vec_all_lt(vf, vf);8442// CHECK: @llvm.ppc.altivec.vcmpgtfp.p8443// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p8444 8445 /* vec_all_nan */8446 res_i = vec_all_nan(vf);8447// CHECK: @llvm.ppc.altivec.vcmpeqfp.p8448// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p8449 8450 /* vec_all_ne */8451 res_i = vec_all_ne(vsc, vsc);8452// CHECK: @llvm.ppc.altivec.vcmpequb.p8453// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8454 8455 res_i = vec_all_ne(vsc, vbc);8456// CHECK: @llvm.ppc.altivec.vcmpequb.p8457// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8458 8459 res_i = vec_all_ne(vuc, vuc);8460// CHECK: @llvm.ppc.altivec.vcmpequb.p8461// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8462 8463 res_i = vec_all_ne(vuc, vbc);8464// CHECK: @llvm.ppc.altivec.vcmpequb.p8465// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8466 8467 res_i = vec_all_ne(vbc, vsc);8468// CHECK: @llvm.ppc.altivec.vcmpequb.p8469// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8470 8471 res_i = vec_all_ne(vbc, vuc);8472// CHECK: @llvm.ppc.altivec.vcmpequb.p8473// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8474 8475 res_i = vec_all_ne(vbc, vbc);8476// CHECK: @llvm.ppc.altivec.vcmpequb.p8477// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8478 8479 res_i = vec_all_ne(vs, vs);8480// CHECK: @llvm.ppc.altivec.vcmpequh.p8481// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8482 8483 res_i = vec_all_ne(vs, vbs);8484// CHECK: @llvm.ppc.altivec.vcmpequh.p8485// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8486 8487 res_i = vec_all_ne(vus, vus);8488// CHECK: @llvm.ppc.altivec.vcmpequh.p8489// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8490 8491 res_i = vec_all_ne(vus, vbs);8492// CHECK: @llvm.ppc.altivec.vcmpequh.p8493// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8494 8495 res_i = vec_all_ne(vbs, vs);8496// CHECK: @llvm.ppc.altivec.vcmpequh.p8497// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8498 8499 res_i = vec_all_ne(vbs, vus);8500// CHECK: @llvm.ppc.altivec.vcmpequh.p8501// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8502 8503 res_i = vec_all_ne(vbs, vbs);8504// CHECK: @llvm.ppc.altivec.vcmpequh.p8505// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8506 8507 res_i = vec_all_ne(vp, vp);8508// CHECK: @llvm.ppc.altivec.vcmpequh.p8509// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8510 8511 res_i = vec_all_ne(vi, vi);8512// CHECK: @llvm.ppc.altivec.vcmpequw.p8513// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8514 8515 res_i = vec_all_ne(vi, vbi);8516// CHECK: @llvm.ppc.altivec.vcmpequw.p8517// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8518 8519 res_i = vec_all_ne(vui, vui);8520// CHECK: @llvm.ppc.altivec.vcmpequw.p8521// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8522 8523 res_i = vec_all_ne(vui, vbi);8524// CHECK: @llvm.ppc.altivec.vcmpequw.p8525// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8526 8527 res_i = vec_all_ne(vbi, vi);8528// CHECK: @llvm.ppc.altivec.vcmpequw.p8529// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8530 8531 res_i = vec_all_ne(vbi, vui);8532// CHECK: @llvm.ppc.altivec.vcmpequw.p8533// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8534 8535 res_i = vec_all_ne(vbi, vbi);8536// CHECK: @llvm.ppc.altivec.vcmpequw.p8537// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8538 8539 res_i = vec_all_ne(vf, vf);8540// CHECK: @llvm.ppc.altivec.vcmpeqfp.p8541// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p8542 8543 /* vec_all_nge */8544 res_i = vec_all_nge(vf, vf);8545// CHECK: @llvm.ppc.altivec.vcmpgefp.p8546// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p8547 8548 /* vec_all_ngt */8549 res_i = vec_all_ngt(vf, vf);8550// CHECK: @llvm.ppc.altivec.vcmpgtfp.p8551// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p8552 8553 /* vec_all_nle */8554 res_i = vec_all_nle(vf, vf);8555// CHECK: @llvm.ppc.altivec.vcmpgefp.p8556// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p8557 8558 /* vec_all_nlt */8559 res_i = vec_all_nlt(vf, vf);8560// CHECK: @llvm.ppc.altivec.vcmpgtfp.p8561// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p8562 8563 /* vec_all_numeric */8564 res_i = vec_all_numeric(vf);8565// CHECK: @llvm.ppc.altivec.vcmpeqfp.p8566// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p8567 8568 /* vec_any_eq */8569 res_i = vec_any_eq(vsc, vsc);8570// CHECK: @llvm.ppc.altivec.vcmpequb.p8571// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8572 8573 res_i = vec_any_eq(vsc, vbc);8574// CHECK: @llvm.ppc.altivec.vcmpequb.p8575// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8576 8577 res_i = vec_any_eq(vuc, vuc);8578// CHECK: @llvm.ppc.altivec.vcmpequb.p8579// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8580 8581 res_i = vec_any_eq(vuc, vbc);8582// CHECK: @llvm.ppc.altivec.vcmpequb.p8583// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8584 8585 res_i = vec_any_eq(vbc, vsc);8586// CHECK: @llvm.ppc.altivec.vcmpequb.p8587// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8588 8589 res_i = vec_any_eq(vbc, vuc);8590// CHECK: @llvm.ppc.altivec.vcmpequb.p8591// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8592 8593 res_i = vec_any_eq(vbc, vbc);8594// CHECK: @llvm.ppc.altivec.vcmpequb.p8595// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p8596 8597 res_i = vec_any_eq(vs, vs);8598// CHECK: @llvm.ppc.altivec.vcmpequh.p8599// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8600 8601 res_i = vec_any_eq(vs, vbs);8602// CHECK: @llvm.ppc.altivec.vcmpequh.p8603// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8604 8605 res_i = vec_any_eq(vus, vus);8606// CHECK: @llvm.ppc.altivec.vcmpequh.p8607// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8608 8609 res_i = vec_any_eq(vus, vbs);8610// CHECK: @llvm.ppc.altivec.vcmpequh.p8611// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8612 8613 res_i = vec_any_eq(vbs, vs);8614// CHECK: @llvm.ppc.altivec.vcmpequh.p8615// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8616 8617 res_i = vec_any_eq(vbs, vus);8618// CHECK: @llvm.ppc.altivec.vcmpequh.p8619// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8620 8621 res_i = vec_any_eq(vbs, vbs);8622// CHECK: @llvm.ppc.altivec.vcmpequh.p8623// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8624 8625 res_i = vec_any_eq(vp, vp);8626// CHECK: @llvm.ppc.altivec.vcmpequh.p8627// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p8628 8629 res_i = vec_any_eq(vi, vi);8630// CHECK: @llvm.ppc.altivec.vcmpequw.p8631// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8632 8633 res_i = vec_any_eq(vi, vbi);8634// CHECK: @llvm.ppc.altivec.vcmpequw.p8635// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8636 8637 res_i = vec_any_eq(vui, vui);8638// CHECK: @llvm.ppc.altivec.vcmpequw.p8639// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8640 8641 res_i = vec_any_eq(vui, vbi);8642// CHECK: @llvm.ppc.altivec.vcmpequw.p8643// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8644 8645 res_i = vec_any_eq(vbi, vi);8646// CHECK: @llvm.ppc.altivec.vcmpequw.p8647// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8648 8649 res_i = vec_any_eq(vbi, vui);8650// CHECK: @llvm.ppc.altivec.vcmpequw.p8651// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8652 8653 res_i = vec_any_eq(vbi, vbi);8654// CHECK: @llvm.ppc.altivec.vcmpequw.p8655// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p8656 8657 res_i = vec_any_eq(vf, vf);8658// CHECK: @llvm.ppc.altivec.vcmpeqfp.p8659// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p8660 8661 /* vec_any_ge */8662 res_i = vec_any_ge(vsc, vsc);8663// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8664// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8665 8666 res_i = vec_any_ge(vsc, vbc);8667// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8668// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8669 8670 res_i = vec_any_ge(vuc, vuc);8671// CHECK: @llvm.ppc.altivec.vcmpgtub.p8672// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8673 8674 res_i = vec_any_ge(vuc, vbc);8675// CHECK: @llvm.ppc.altivec.vcmpgtub.p8676// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8677 8678 res_i = vec_any_ge(vbc, vsc);8679// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8680// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8681 8682 res_i = vec_any_ge(vbc, vuc);8683// CHECK: @llvm.ppc.altivec.vcmpgtub.p8684// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8685 8686 res_i = vec_any_ge(vbc, vbc);8687// CHECK: @llvm.ppc.altivec.vcmpgtub.p8688// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8689 8690 res_i = vec_any_ge(vs, vs);8691// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8692// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8693 8694 res_i = vec_any_ge(vs, vbs);8695// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8696// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8697 8698 res_i = vec_any_ge(vus, vus);8699// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8700// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8701 8702 res_i = vec_any_ge(vus, vbs);8703// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8704// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8705 8706 res_i = vec_any_ge(vbs, vs);8707// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8708// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8709 8710 res_i = vec_any_ge(vbs, vus);8711// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8712// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8713 8714 res_i = vec_any_ge(vbs, vbs);8715// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8716// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8717 8718 res_i = vec_any_ge(vi, vi);8719// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8720// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8721 8722 res_i = vec_any_ge(vi, vbi);8723// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8724// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8725 8726 res_i = vec_any_ge(vui, vui);8727// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8728// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8729 8730 res_i = vec_any_ge(vui, vbi);8731// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8732// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8733 8734 res_i = vec_any_ge(vbi, vi);8735// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8736// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8737 8738 res_i = vec_any_ge(vbi, vui);8739// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8740// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8741 8742 res_i = vec_any_ge(vbi, vbi);8743// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8744// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8745 8746 res_i = vec_any_ge(vf, vf);8747// CHECK: @llvm.ppc.altivec.vcmpgefp.p8748// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p8749 8750 /* vec_any_gt */8751 res_i = vec_any_gt(vsc, vsc);8752// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8753// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8754 8755 res_i = vec_any_gt(vsc, vbc);8756// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8757// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8758 8759 res_i = vec_any_gt(vuc, vuc);8760// CHECK: @llvm.ppc.altivec.vcmpgtub.p8761// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8762 8763 res_i = vec_any_gt(vuc, vbc);8764// CHECK: @llvm.ppc.altivec.vcmpgtub.p8765// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8766 8767 res_i = vec_any_gt(vbc, vsc);8768// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8769// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8770 8771 res_i = vec_any_gt(vbc, vuc);8772// CHECK: @llvm.ppc.altivec.vcmpgtub.p8773// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8774 8775 res_i = vec_any_gt(vbc, vbc);8776// CHECK: @llvm.ppc.altivec.vcmpgtub.p8777// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8778 8779 res_i = vec_any_gt(vs, vs);8780// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8781// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8782 8783 res_i = vec_any_gt(vs, vbs);8784// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8785// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8786 8787 res_i = vec_any_gt(vus, vus);8788// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8789// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8790 8791 res_i = vec_any_gt(vus, vbs);8792// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8793// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8794 8795 res_i = vec_any_gt(vbs, vs);8796// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8797// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8798 8799 res_i = vec_any_gt(vbs, vus);8800// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8801// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8802 8803 res_i = vec_any_gt(vbs, vbs);8804// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8805// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8806 8807 res_i = vec_any_gt(vi, vi);8808// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8809// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8810 8811 res_i = vec_any_gt(vi, vbi);8812// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8813// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8814 8815 res_i = vec_any_gt(vui, vui);8816// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8817// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8818 8819 res_i = vec_any_gt(vui, vbi);8820// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8821// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8822 8823 res_i = vec_any_gt(vbi, vi);8824// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8825// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8826 8827 res_i = vec_any_gt(vbi, vui);8828// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8829// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8830 8831 res_i = vec_any_gt(vbi, vbi);8832// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8833// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8834 8835 res_i = vec_any_gt(vf, vf);8836// CHECK: @llvm.ppc.altivec.vcmpgtfp.p8837// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p8838 8839 /* vec_any_le */8840 res_i = vec_any_le(vsc, vsc);8841// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8842// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8843 8844 res_i = vec_any_le(vsc, vbc);8845// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8846// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8847 8848 res_i = vec_any_le(vuc, vuc);8849// CHECK: @llvm.ppc.altivec.vcmpgtub.p8850// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8851 8852 res_i = vec_any_le(vuc, vbc);8853// CHECK: @llvm.ppc.altivec.vcmpgtub.p8854// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8855 8856 res_i = vec_any_le(vbc, vsc);8857// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8858// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8859 8860 res_i = vec_any_le(vbc, vuc);8861// CHECK: @llvm.ppc.altivec.vcmpgtub.p8862// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8863 8864 res_i = vec_any_le(vbc, vbc);8865// CHECK: @llvm.ppc.altivec.vcmpgtub.p8866// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8867 8868 res_i = vec_any_le(vs, vs);8869// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8870// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8871 8872 res_i = vec_any_le(vs, vbs);8873// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8874// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8875 8876 res_i = vec_any_le(vus, vus);8877// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8878// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8879 8880 res_i = vec_any_le(vus, vbs);8881// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8882// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8883 8884 res_i = vec_any_le(vbs, vs);8885// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8886// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8887 8888 res_i = vec_any_le(vbs, vus);8889// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8890// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8891 8892 res_i = vec_any_le(vbs, vbs);8893// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8894// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8895 8896 res_i = vec_any_le(vi, vi);8897// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8898// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8899 8900 res_i = vec_any_le(vi, vbi);8901// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8902// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8903 8904 res_i = vec_any_le(vui, vui);8905// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8906// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8907 8908 res_i = vec_any_le(vui, vbi);8909// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8910// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8911 8912 res_i = vec_any_le(vbi, vi);8913// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8914// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8915 8916 res_i = vec_any_le(vbi, vui);8917// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8918// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8919 8920 res_i = vec_any_le(vbi, vbi);8921// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8922// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8923 8924 res_i = vec_any_le(vf, vf);8925// CHECK: @llvm.ppc.altivec.vcmpgefp.p8926// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p8927 8928 /* vec_any_lt */8929 res_i = vec_any_lt(vsc, vsc);8930// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8931// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8932 8933 res_i = vec_any_lt(vsc, vbc);8934// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8935// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8936 8937 res_i = vec_any_lt(vuc, vuc);8938// CHECK: @llvm.ppc.altivec.vcmpgtub.p8939// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8940 8941 res_i = vec_any_lt(vuc, vbc);8942// CHECK: @llvm.ppc.altivec.vcmpgtub.p8943// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8944 8945 res_i = vec_any_lt(vbc, vsc);8946// CHECK: @llvm.ppc.altivec.vcmpgtsb.p8947// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p8948 8949 res_i = vec_any_lt(vbc, vuc);8950// CHECK: @llvm.ppc.altivec.vcmpgtub.p8951// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8952 8953 res_i = vec_any_lt(vbc, vbc);8954// CHECK: @llvm.ppc.altivec.vcmpgtub.p8955// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p8956 8957 res_i = vec_any_lt(vs, vs);8958// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8959// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8960 8961 res_i = vec_any_lt(vs, vbs);8962// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8963// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8964 8965 res_i = vec_any_lt(vus, vus);8966// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8967// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8968 8969 res_i = vec_any_lt(vus, vbs);8970// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8971// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8972 8973 res_i = vec_any_lt(vbs, vs);8974// CHECK: @llvm.ppc.altivec.vcmpgtsh.p8975// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p8976 8977 res_i = vec_any_lt(vbs, vus);8978// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8979// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8980 8981 res_i = vec_any_lt(vbs, vbs);8982// CHECK: @llvm.ppc.altivec.vcmpgtuh.p8983// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p8984 8985 res_i = vec_any_lt(vi, vi);8986// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8987// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8988 8989 res_i = vec_any_lt(vi, vbi);8990// CHECK: @llvm.ppc.altivec.vcmpgtsw.p8991// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p8992 8993 res_i = vec_any_lt(vui, vui);8994// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8995// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p8996 8997 res_i = vec_any_lt(vui, vbi);8998// CHECK: @llvm.ppc.altivec.vcmpgtuw.p8999// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p9000 9001 res_i = vec_any_lt(vbi, vi);9002// CHECK: @llvm.ppc.altivec.vcmpgtsw.p9003// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p9004 9005 res_i = vec_any_lt(vbi, vui);9006// CHECK: @llvm.ppc.altivec.vcmpgtuw.p9007// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p9008 9009 res_i = vec_any_lt(vbi, vbi);9010// CHECK: @llvm.ppc.altivec.vcmpgtuw.p9011// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p9012 9013 res_i = vec_any_lt(vf, vf);9014// CHECK: @llvm.ppc.altivec.vcmpgtfp.p9015// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p9016 9017 /* vec_any_nan */9018 res_i = vec_any_nan(vf);9019// CHECK: @llvm.ppc.altivec.vcmpeqfp.p9020// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p9021 9022 /* vec_any_ne */9023 res_i = vec_any_ne(vsc, vsc);9024// CHECK: @llvm.ppc.altivec.vcmpequb.p9025// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9026 9027 res_i = vec_any_ne(vsc, vbc);9028// CHECK: @llvm.ppc.altivec.vcmpequb.p9029// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9030 9031 res_i = vec_any_ne(vuc, vuc);9032// CHECK: @llvm.ppc.altivec.vcmpequb.p9033// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9034 9035 res_i = vec_any_ne(vuc, vbc);9036// CHECK: @llvm.ppc.altivec.vcmpequb.p9037// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9038 9039 res_i = vec_any_ne(vbc, vsc);9040// CHECK: @llvm.ppc.altivec.vcmpequb.p9041// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9042 9043 res_i = vec_any_ne(vbc, vuc);9044// CHECK: @llvm.ppc.altivec.vcmpequb.p9045// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9046 9047 res_i = vec_any_ne(vbc, vbc);9048// CHECK: @llvm.ppc.altivec.vcmpequb.p9049// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p9050 9051 res_i = vec_any_ne(vs, vs);9052// CHECK: @llvm.ppc.altivec.vcmpequh.p9053// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9054 9055 res_i = vec_any_ne(vs, vbs);9056// CHECK: @llvm.ppc.altivec.vcmpequh.p9057// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9058 9059 res_i = vec_any_ne(vus, vus);9060// CHECK: @llvm.ppc.altivec.vcmpequh.p9061// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9062 9063 res_i = vec_any_ne(vus, vbs);9064// CHECK: @llvm.ppc.altivec.vcmpequh.p9065// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9066 9067 res_i = vec_any_ne(vbs, vs);9068// CHECK: @llvm.ppc.altivec.vcmpequh.p9069// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9070 9071 res_i = vec_any_ne(vbs, vus);9072// CHECK: @llvm.ppc.altivec.vcmpequh.p9073// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9074 9075 res_i = vec_any_ne(vbs, vbs);9076// CHECK: @llvm.ppc.altivec.vcmpequh.p9077// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9078 9079 res_i = vec_any_ne(vp, vp);9080// CHECK: @llvm.ppc.altivec.vcmpequh.p9081// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p9082 9083 res_i = vec_any_ne(vi, vi);9084// CHECK: @llvm.ppc.altivec.vcmpequw.p9085// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9086 9087 res_i = vec_any_ne(vi, vbi);9088// CHECK: @llvm.ppc.altivec.vcmpequw.p9089// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9090 9091 res_i = vec_any_ne(vui, vui);9092// CHECK: @llvm.ppc.altivec.vcmpequw.p9093// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9094 9095 res_i = vec_any_ne(vui, vbi);9096// CHECK: @llvm.ppc.altivec.vcmpequw.p9097// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9098 9099 res_i = vec_any_ne(vbi, vi);9100// CHECK: @llvm.ppc.altivec.vcmpequw.p9101// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9102 9103 res_i = vec_any_ne(vbi, vui);9104// CHECK: @llvm.ppc.altivec.vcmpequw.p9105// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9106 9107 res_i = vec_any_ne(vbi, vbi);9108// CHECK: @llvm.ppc.altivec.vcmpequw.p9109// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p9110 9111 res_i = vec_any_ne(vf, vf);9112// CHECK: @llvm.ppc.altivec.vcmpeqfp.p9113// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p9114 9115 /* vec_any_nge */9116 res_i = vec_any_nge(vf, vf);9117// CHECK: @llvm.ppc.altivec.vcmpgefp.p9118// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p9119 9120 /* vec_any_ngt */9121 res_i = vec_any_ngt(vf, vf);9122// CHECK: @llvm.ppc.altivec.vcmpgtfp.p9123// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p9124 9125 /* vec_any_nle */9126 res_i = vec_any_nle(vf, vf);9127// CHECK: @llvm.ppc.altivec.vcmpgefp.p9128// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p9129 9130 /* vec_any_nlt */9131 res_i = vec_any_nlt(vf, vf);9132// CHECK: @llvm.ppc.altivec.vcmpgtfp.p9133// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p9134 9135 /* vec_any_numeric */9136 res_i = vec_any_numeric(vf);9137// CHECK: @llvm.ppc.altivec.vcmpeqfp.p9138// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p9139 9140 /* vec_any_out */9141 res_i = vec_any_out(vf, vf);9142// CHECK: @llvm.ppc.altivec.vcmpbfp.p9143// CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p9144}9145 9146/* ------------------------------ Relational Operators ------------------------------ */9147// CHECK-LABEL: define{{.*}} void @test79148void test7() {9149 vector signed char vsc1 = (vector signed char)(-1);9150 vector signed char vsc2 = (vector signed char)(-2);9151 res_i = (vsc1 == vsc2);9152// CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 29153// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 29154 9155 res_i = (vsc1 != vsc2);9156// CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 09157// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 09158 9159 res_i = (vsc1 < vsc2);9160// CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 29161// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 29162 9163 res_i = (vsc1 > vsc2);9164// CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 29165// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 29166 9167 res_i = (vsc1 <= vsc2);9168// CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 09169// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 09170 9171 res_i = (vsc1 >= vsc2);9172// CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 09173// CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 09174 9175 vector unsigned char vuc1 = (vector unsigned char)(1);9176 vector unsigned char vuc2 = (vector unsigned char)(2);9177 res_i = (vuc1 == vuc2);9178// CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 29179// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 29180 9181 res_i = (vuc1 != vuc2);9182// CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 09183// CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 09184 9185 res_i = (vuc1 < vuc2);9186// CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 29187// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 29188 9189 res_i = (vuc1 > vuc2);9190// CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 29191// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 29192 9193 res_i = (vuc1 <= vuc2);9194// CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 09195// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 09196 9197 res_i = (vuc1 >= vuc2);9198// CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 09199// CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 09200 9201 vector short vs1 = (vector short)(-1);9202 vector short vs2 = (vector short)(-2);9203 res_i = (vs1 == vs2);9204// CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 29205// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 29206 9207 res_i = (vs1 != vs2);9208// CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 09209// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 09210 9211 res_i = (vs1 < vs2);9212// CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 29213// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 29214 9215 res_i = (vs1 > vs2);9216// CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 29217// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 29218 9219 res_i = (vs1 <= vs2);9220// CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 09221// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 09222 9223 res_i = (vs1 >= vs2);9224// CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 09225// CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 09226 9227 vector unsigned short vus1 = (vector unsigned short)(1);9228 vector unsigned short vus2 = (vector unsigned short)(2);9229 res_i = (vus1 == vus2);9230// CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 29231// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 29232 9233 res_i = (vus1 != vus2);9234// CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 09235// CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 09236 9237 res_i = (vus1 < vus2);9238// CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 29239// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 29240 9241 res_i = (vus1 > vus2);9242// CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 29243// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 29244 9245 res_i = (vus1 <= vus2);9246// CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 09247// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 09248 9249 res_i = (vus1 >= vus2);9250// CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 09251// CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 09252 9253 vector int vi1 = (vector int)(-1);9254 vector int vi2 = (vector int)(-2);9255 res_i = (vi1 == vi2);9256// CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 29257// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 29258 9259 res_i = (vi1 != vi2);9260// CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 09261// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 09262 9263 res_i = (vi1 < vi2);9264// CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 29265// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 29266 9267 res_i = (vi1 > vi2);9268// CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 29269// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 29270 9271 res_i = (vi1 <= vi2);9272// CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 09273// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 09274 9275 res_i = (vi1 >= vi2);9276// CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 09277// CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 09278 9279 vector unsigned int vui1 = (vector unsigned int)(1);9280 vector unsigned int vui2 = (vector unsigned int)(2);9281 res_i = (vui1 == vui2);9282// CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 29283// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 29284 9285 res_i = (vui1 != vui2);9286// CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 09287// CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 09288 9289 res_i = (vui1 < vui2);9290// CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 29291// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 29292 9293 res_i = (vui1 > vui2);9294// CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 29295// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 29296 9297 res_i = (vui1 <= vui2);9298// CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 09299// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 09300 9301 res_i = (vui1 >= vui2);9302// CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 09303// CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 09304 9305 vector float vf1 = (vector float)(1.0);9306 vector float vf2 = (vector float)(2.0);9307 res_i = (vf1 == vf2);9308// CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 29309// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 29310 9311 res_i = (vf1 != vf2);9312// CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 09313// CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 09314 9315 res_i = (vf1 < vf2);9316// CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 29317// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 29318 9319 res_i = (vf1 > vf2);9320// CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 29321// CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 29322 9323 res_i = (vf1 <= vf2);9324// CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 29325// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 29326 9327 res_i = (vf1 >= vf2);9328// CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 29329// CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 29330}9331 9332/* ------------------------------ optional ---------------------------------- */9333void test8() {9334// CHECK-LABEL: define{{.*}} void @test89335// CHECK-LE-LABEL: define{{.*}} void @test89336 res_vbc = vec_reve(vbc);9337 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9338 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9339 9340 res_vsc = vec_reve(vsc);9341 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9342 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9343 9344 res_vuc = vec_reve(vuc);9345 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9346 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9347 9348 res_vbi = vec_reve(vbi);9349 // CHECK: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9350 // CHECK-LE: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9351 9352 res_vi = vec_reve(vi);9353 // CHECK: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9354 // CHECK-LE: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9355 9356 res_vui = vec_reve(vui);9357 // CHECK: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9358 // CHECK-LE: shufflevector <4 x i32> %{{[0-9]+}}, <4 x i32> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9359 9360 res_vbs = vec_reve(vbs);9361 // CHECK: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9362 // CHECK-LE: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9363 9364 res_vs = vec_reve(vs);9365 // CHECK: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9366 // CHECK-LE: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9367 9368 res_vus = vec_reve(vus);9369 // CHECK: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9370 // CHECK-LE: shufflevector <8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}}, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>9371 9372 res_vf = vec_reve(vf);9373 // CHECK: shufflevector <4 x float> %{{[0-9]+}}, <4 x float> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9374 // CHECK-LE: shufflevector <4 x float> %{{[0-9]+}}, <4 x float> %{{[0-9]+}}, <4 x i32> <i32 3, i32 2, i32 1, i32 0>9375 9376 res_vbc = vec_revb(vbc);9377// CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vbc, align 169378// CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 169379// CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 169380// CHECK: store <16 x i8> [[T3]], ptr @res_vbc, align 169381// CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vbc, align 169382// CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 169383// CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 169384// CHECK-LE: store <16 x i8> [[T3]], ptr @res_vbc, align 169385 9386 res_vsc = vec_revb(vsc);9387// CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vsc, align 169388// CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 169389// CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 169390// CHECK: store <16 x i8> [[T3]], ptr @res_vsc, align 169391// CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vsc, align 169392// CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 169393// CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 169394// CHECK-LE: store <16 x i8> [[T3]], ptr @res_vsc, align 169395 9396 res_vuc = vec_revb(vuc);9397// CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vuc, align 169398// CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 169399// CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 169400// CHECK: store <16 x i8> [[T3]], ptr @res_vuc, align 169401// CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vuc, align 169402// CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 169403// CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 169404// CHECK-LE: store <16 x i8> [[T3]], ptr @res_vuc, align 169405 9406 res_vbs = vec_revb(vbs);9407// CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 169408// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9409// CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 169410// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169411// CHECK-LE: xor <16 x i8>9412// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9413 9414 res_vs = vec_revb(vs);9415// CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 169416// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9417// CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 169418// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169419// CHECK-LE: xor <16 x i8>9420// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9421 9422 res_vus = vec_revb(vus);9423// CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 169424// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9425// CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 169426// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169427// CHECK-LE: xor <16 x i8>9428// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9429 9430 res_vbi = vec_revb(vbi);9431// CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169432// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9433// CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169434// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169435// CHECK-LE: xor <16 x i8>9436// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9437 9438 res_vi = vec_revb(vi);9439// CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169440// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9441// CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169442// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169443// CHECK-LE: xor <16 x i8>9444// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9445 9446 res_vui = vec_revb(vui);9447// CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169448// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9449// CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169450// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169451// CHECK-LE: xor <16 x i8>9452// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9453 9454 res_vf = vec_revb(vf);9455// CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169456// CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9457// CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 169458// CHECK-LE: store <16 x i8> splat (i8 -1), ptr {{%.+}}, align 169459// CHECK-LE: xor <16 x i8>9460// CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})9461}9462 9463/* ------------------------------ vec_xl ------------------------------------ */9464void test9() {9465 // CHECK-LABEL: define{{.*}} void @test99466 // CHECK-LE-LABEL: define{{.*}} void @test99467 res_vsc = vec_xl(param_sll, param_sc_ld);9468 // CHECK: load <16 x i8>, ptr %{{.+}}, align 19469 // CHECK-LE: load <16 x i8>, ptr %{{.+}}, align 19470 9471 res_vuc = vec_xl(param_sll, param_uc_ld);9472 // CHECK: load <16 x i8>, ptr %{{.+}}, align 19473 // CHECK-LE: load <16 x i8>, ptr %{{.+}}, align 19474 9475 res_vs = vec_xl(param_sll, param_s_ld);9476 // CHECK: load <8 x i16>, ptr %{{.+}}, align 19477 // CHECK-LE: load <8 x i16>, ptr %{{.+}}, align 19478 9479 res_vus = vec_xl(param_sll, param_us_ld);9480 // CHECK: load <8 x i16>, ptr %{{.+}}, align 19481 // CHECK-LE: load <8 x i16>, ptr %{{.+}}, align 19482 9483 res_vi = vec_xl(param_sll, param_i_ld);9484 // CHECK: load <4 x i32>, ptr %{{.+}}, align 19485 // CHECK-LE: load <4 x i32>, ptr %{{.+}}, align 19486 9487 res_vui = vec_xl(param_sll, param_ui_ld);9488 // CHECK: load <4 x i32>, ptr %{{.+}}, align 19489 // CHECK-LE: load <4 x i32>, ptr %{{.+}}, align 19490 9491 res_vf = vec_xl(param_sll, param_f_ld);9492 // CHECK: load <4 x float>, ptr %{{.+}}, align 19493 // CHECK-LE: load <4 x float>, ptr %{{.+}}, align 19494}9495 9496/* ------------------------------ vec_xst ----------------------------------- */9497void test10() {9498 // CHECK-LABEL: define{{.*}} void @test109499 // CHECK-LE-LABEL: define{{.*}} void @test109500 vec_xst(vsc, param_sll, ¶m_sc);9501 // CHECK: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 19502 // CHECK-LE: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 19503 9504 vec_xst(vuc, param_sll, ¶m_uc);9505 // CHECK: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 19506 // CHECK-LE: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 19507 9508 vec_xst(vs, param_sll, ¶m_s);9509 // CHECK: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 19510 // CHECK-LE: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 19511 9512 vec_xst(vus, param_sll, ¶m_us);9513 // CHECK: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 19514 // CHECK-LE: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 19515 9516 vec_xst(vi, param_sll, ¶m_i);9517 // CHECK: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 19518 // CHECK-LE: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 19519 9520 vec_xst(vui, param_sll, ¶m_ui);9521 // CHECK: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 19522 // CHECK-LE: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 19523 9524 vec_xst(vf, param_sll, ¶m_f);9525 // CHECK: store <4 x float> %{{[0-9]+}}, ptr %{{.+}}, align 19526 // CHECK-LE: store <4 x float> %{{[0-9]+}}, ptr %{{.+}}, align 19527}9528 9529vector float test_rsqrtf(vector float a, vector float b) {9530 // CHECK-LABEL: test_rsqrtf9531 // CHECK: call fast <4 x float> @llvm.sqrt.v4f329532 // CHECK: fdiv fast <4 x float> splat (float 1.000000e+00)9533 // CHECK-LE-LABEL: test_rsqrtf9534 // CHECK-LE: call fast <4 x float> @llvm.sqrt.v4f329535 // CHECK-LE: fdiv fast <4 x float> splat (float 1.000000e+00)9536 return vec_rsqrt(a);9537}9538 9539vector float test_recipdivf(vector float a, vector float b) {9540 // CHECK-LABEL: test_recipdivf9541 // CHECK: fdiv fast <4 x float>9542 // CHECK-LE-LABEL: test_recipdivf9543 // CHECK-LE: fdiv fast <4 x float>9544 return vec_recipdiv(a, b);9545}9546