1 // REQUIRES: powerpc-registered-target
2 // RUN: %clang_cc1 -target-feature +altivec -triple powerpc-unknown-unknown -emit-llvm %s \
3 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \
4 // RUN: -o - | FileCheck %s
5 // RUN: %clang_cc1 -target-feature +altivec -triple powerpcle-unknown-unknown -emit-llvm %s \
6 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \
7 // RUN: -o - | FileCheck %s -check-prefix=CHECK-LE
8 // RUN: %clang_cc1 -target-feature +altivec -triple powerpc64-unknown-unknown -emit-llvm %s \
9 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \
10 // RUN: -o - | FileCheck %s
11 // RUN: %clang_cc1 -target-feature +altivec -triple powerpc64le-unknown-unknown -emit-llvm %s \
12 // RUN: -flax-vector-conversions=none -faltivec-src-compat=mixed \
13 // RUN: -o - | FileCheck %s -check-prefix=CHECK-LE
14 // RUN: not %clang_cc1 -triple powerpc64le-unknown-unknown -emit-llvm %s \
15 // RUN: -ferror-limit 0 -DNO_ALTIVEC -o - 2>&1 \
16 // RUN: | FileCheck %s -check-prefix=CHECK-NOALTIVEC
21 vector
bool char vbc
= { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 };
22 vector
signed char vsc
= { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 };
23 vector
unsigned char vuc
= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
24 vector
bool short vbs
= { 1, 0, 1, 0, 1, 0, 1, 0 };
25 vector
short vs
= { -1, 2, -3, 4, -5, 6, -7, 8 };
26 vector
unsigned short vus
= { 1, 2, 3, 4, 5, 6, 7, 8 };
27 vector pixel vp
= { 1, 2, 3, 4, 5, 6, 7, 8 };
28 vector
bool int vbi
= { 1, 0, 1, 0 };
29 vector
int vi
= { -1, 2, -3, 4 };
30 vector
unsigned int vui
= { 1, 2, 3, 4 };
31 vector
float vf
= { -1.5, 2.5, -3.5, 4.5 };
33 vector
bool char res_vbc
;
34 vector
signed char res_vsc
;
35 vector
unsigned char res_vuc
;
36 vector
bool short res_vbs
;
38 vector
unsigned short res_vus
;
40 vector
bool int res_vbi
;
42 vector
unsigned int res_vui
;
45 // CHECK-NOALTIVEC: error: unknown type name 'vector'
46 // CHECK-NOALTIVEC-NOT: '(error)'
47 const signed char *param_sc_ld
;
48 const unsigned char *param_uc_ld
;
49 const short *param_s_ld
;
50 const unsigned short *param_us_ld
;
51 const int *param_i_ld
;
52 const unsigned int *param_ui_ld
;
53 const float *param_f_ld
;
56 unsigned char param_uc
;
58 unsigned short param_us
;
60 unsigned int param_ui
;
62 signed long long param_sll
;
72 // CHECK-LABEL: define{{.*}} void @test1
77 // CHECK: sub <16 x i8> zeroinitializer
78 // CHECK: @llvm.ppc.altivec.vmaxsb
79 // CHECK-LE: sub <16 x i8> zeroinitializer
80 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
83 // CHECK: sub <8 x i16> zeroinitializer
84 // CHECK: @llvm.ppc.altivec.vmaxsh
85 // CHECK-LE: sub <8 x i16> zeroinitializer
86 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
89 // CHECK: sub <4 x i32> zeroinitializer
90 // CHECK: @llvm.ppc.altivec.vmaxsw
91 // CHECK-LE: sub <4 x i32> zeroinitializer
92 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
95 // CHECK: and <4 x i32> {{.*}}, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647>
96 // CHECK: store <4 x float> %{{.*}}, ptr @vf
97 // CHECK-LE: bitcast <4 x float> %{{.*}} to <4 x i32>
98 // CHECK-LE: and <4 x i32> {{.*}}, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647>
99 // CHECK-LE: bitcast <4 x i32> %{{.*}} to <4 x float>
100 // CHECK-LE: store <4 x float> %{{.*}}, ptr @vf
103 // CHECK: sub <16 x i8> zeroinitializer
104 // CHECK: @llvm.ppc.altivec.vminsb
105 // CHECK-LE: sub <16 x i8> zeroinitializer
106 // CHECK-LE: @llvm.ppc.altivec.vminsb
109 // CHECK: sub <8 x i16> zeroinitializer
110 // CHECK: @llvm.ppc.altivec.vminsh
111 // CHECK-LE: sub <8 x i16> zeroinitializer
112 // CHECK-LE: @llvm.ppc.altivec.vminsh
115 // CHECK: sub <4 x i32> zeroinitializer
116 // CHECK: @llvm.ppc.altivec.vminsw
117 // CHECK-LE: sub <4 x i32> zeroinitializer
118 // CHECK-LE: @llvm.ppc.altivec.vminsw
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]+}}
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]+}}
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]+}}
135 // CHECK: @llvm.ppc.altivec.vsubsbs
136 // CHECK: @llvm.ppc.altivec.vmaxsb
137 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
138 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
141 // CHECK: @llvm.ppc.altivec.vsubshs
142 // CHECK: @llvm.ppc.altivec.vmaxsh
143 // CHECK-LE: @llvm.ppc.altivec.vsubshs
144 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
147 // CHECK: @llvm.ppc.altivec.vsubsws
148 // CHECK: @llvm.ppc.altivec.vmaxsw
149 // CHECK-LE: @llvm.ppc.altivec.vsubsws
150 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
153 res_vsc
= vec_add(vsc
, vsc
);
154 // CHECK: add <16 x i8>
155 // CHECK-LE: add <16 x i8>
157 res_vsc
= vec_add(vbc
, vsc
);
158 // CHECK: add <16 x i8>
159 // CHECK-LE: add <16 x i8>
161 res_vsc
= vec_add(vsc
, vbc
);
162 // CHECK: add <16 x i8>
163 // CHECK-LE: add <16 x i8>
165 res_vuc
= vec_add(vuc
, vuc
);
166 // CHECK: add <16 x i8>
167 // CHECK-LE: add <16 x i8>
169 res_vuc
= vec_add(vbc
, vuc
);
170 // CHECK: add <16 x i8>
171 // CHECK-LE: add <16 x i8>
173 res_vuc
= vec_add(vuc
, vbc
);
174 // CHECK: add <16 x i8>
175 // CHECK-LE: add <16 x i8>
177 res_vs
= vec_add(vs
, vs
);
178 // CHECK: add <8 x i16>
179 // CHECK-LE: add <8 x i16>
181 res_vs
= vec_add(vbs
, vs
);
182 // CHECK: add <8 x i16>
183 // CHECK-LE: add <8 x i16>
185 res_vs
= vec_add(vs
, vbs
);
186 // CHECK: add <8 x i16>
187 // CHECK-LE: add <8 x i16>
189 res_vus
= vec_add(vus
, vus
);
190 // CHECK: add <8 x i16>
191 // CHECK-LE: add <8 x i16>
193 res_vus
= vec_add(vbs
, vus
);
194 // CHECK: add <8 x i16>
195 // CHECK-LE: add <8 x i16>
197 res_vus
= vec_add(vus
, vbs
);
198 // CHECK: add <8 x i16>
199 // CHECK-LE: add <8 x i16>
201 res_vi
= vec_add(vi
, vi
);
202 // CHECK: add <4 x i32>
203 // CHECK-LE: add <4 x i32>
205 res_vi
= vec_add(vbi
, vi
);
206 // CHECK: add <4 x i32>
207 // CHECK-LE: add <4 x i32>
209 res_vi
= vec_add(vi
, vbi
);
210 // CHECK: add <4 x i32>
211 // CHECK-LE: add <4 x i32>
213 res_vui
= vec_add(vui
, vui
);
214 // CHECK: add <4 x i32>
215 // CHECK-LE: add <4 x i32>
217 res_vui
= vec_add(vbi
, vui
);
218 // CHECK: add <4 x i32>
219 // CHECK-LE: add <4 x i32>
221 res_vui
= vec_add(vui
, vbi
);
222 // CHECK: add <4 x i32>
223 // CHECK-LE: add <4 x i32>
225 res_vf
= vec_add(vf
, vf
);
226 // CHECK: fadd <4 x float>
227 // CHECK-LE: fadd <4 x float>
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>
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>
245 res_vsc
= vec_vaddubm(vsc
, vsc
);
246 // CHECK: add <16 x i8>
247 // CHECK-LE: add <16 x i8>
249 res_vsc
= vec_vaddubm(vbc
, vsc
);
250 // CHECK: add <16 x i8>
251 // CHECK-LE: add <16 x i8>
253 res_vsc
= vec_vaddubm(vsc
, vbc
);
254 // CHECK: add <16 x i8>
255 // CHECK-LE: add <16 x i8>
257 res_vuc
= vec_vaddubm(vuc
, vuc
);
258 // CHECK: add <16 x i8>
259 // CHECK-LE: add <16 x i8>
261 res_vuc
= vec_vaddubm(vbc
, vuc
);
262 // CHECK: add <16 x i8>
263 // CHECK-LE: add <16 x i8>
265 res_vuc
= vec_vaddubm(vuc
, vbc
);
266 // CHECK: add <16 x i8>
267 // CHECK-LE: add <16 x i8>
269 res_vs
= vec_vadduhm(vs
, vs
);
270 // CHECK: add <8 x i16>
271 // CHECK-LE: add <8 x i16>
273 res_vs
= vec_vadduhm(vbs
, vs
);
274 // CHECK: add <8 x i16>
275 // CHECK-LE: add <8 x i16>
277 res_vs
= vec_vadduhm(vs
, vbs
);
278 // CHECK: add <8 x i16>
279 // CHECK-LE: add <8 x i16>
281 res_vus
= vec_vadduhm(vus
, vus
);
282 // CHECK: add <8 x i16>
283 // CHECK-LE: add <8 x i16>
285 res_vus
= vec_vadduhm(vbs
, vus
);
286 // CHECK: add <8 x i16>
287 // CHECK-LE: add <8 x i16>
289 res_vus
= vec_vadduhm(vus
, vbs
);
290 // CHECK: add <8 x i16>
291 // CHECK-LE: add <8 x i16>
293 res_vi
= vec_vadduwm(vi
, vi
);
294 // CHECK: add <4 x i32>
295 // CHECK-LE: add <4 x i32>
297 res_vi
= vec_vadduwm(vbi
, vi
);
298 // CHECK: add <4 x i32>
299 // CHECK-LE: add <4 x i32>
301 res_vi
= vec_vadduwm(vi
, vbi
);
302 // CHECK: add <4 x i32>
303 // CHECK-LE: add <4 x i32>
305 res_vui
= vec_vadduwm(vui
, vui
);
306 // CHECK: add <4 x i32>
307 // CHECK-LE: add <4 x i32>
309 res_vui
= vec_vadduwm(vbi
, vui
);
310 // CHECK: add <4 x i32>
311 // CHECK-LE: add <4 x i32>
313 res_vui
= vec_vadduwm(vui
, vbi
);
314 // CHECK: add <4 x i32>
315 // CHECK-LE: add <4 x i32>
317 res_vf
= vec_vaddfp(vf
, vf
);
318 // CHECK: fadd <4 x float>
319 // CHECK-LE: fadd <4 x float>
322 res_vui
= vec_addc(vui
, vui
);
323 // CHECK: @llvm.ppc.altivec.vaddcuw
324 // CHECK-LE: @llvm.ppc.altivec.vaddcuw
326 res_vui
= vec_vaddcuw(vui
, vui
);
327 // CHECK: @llvm.ppc.altivec.vaddcuw
328 // CHECK-LE: @llvm.ppc.altivec.vaddcuw
331 res_vsc
= vec_adds(vsc
, vsc
);
332 // CHECK: @llvm.ppc.altivec.vaddsbs
333 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
335 res_vsc
= vec_adds(vbc
, vsc
);
336 // CHECK: @llvm.ppc.altivec.vaddsbs
337 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
339 res_vsc
= vec_adds(vsc
, vbc
);
340 // CHECK: @llvm.ppc.altivec.vaddsbs
341 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
343 res_vuc
= vec_adds(vuc
, vuc
);
344 // CHECK: @llvm.ppc.altivec.vaddubs
345 // CHECK-LE: @llvm.ppc.altivec.vaddubs
347 res_vuc
= vec_adds(vbc
, vuc
);
348 // CHECK: @llvm.ppc.altivec.vaddubs
349 // CHECK-LE: @llvm.ppc.altivec.vaddubs
351 res_vuc
= vec_adds(vuc
, vbc
);
352 // CHECK: @llvm.ppc.altivec.vaddubs
353 // CHECK-LE: @llvm.ppc.altivec.vaddubs
355 res_vs
= vec_adds(vs
, vs
);
356 // CHECK: @llvm.ppc.altivec.vaddshs
357 // CHECK-LE: @llvm.ppc.altivec.vaddshs
359 res_vs
= vec_adds(vbs
, vs
);
360 // CHECK: @llvm.ppc.altivec.vaddshs
361 // CHECK-LE: @llvm.ppc.altivec.vaddshs
363 res_vs
= vec_adds(vs
, vbs
);
364 // CHECK: @llvm.ppc.altivec.vaddshs
365 // CHECK-LE: @llvm.ppc.altivec.vaddshs
367 res_vus
= vec_adds(vus
, vus
);
368 // CHECK: @llvm.ppc.altivec.vadduhs
369 // CHECK-LE: @llvm.ppc.altivec.vadduhs
371 res_vus
= vec_adds(vbs
, vus
);
372 // CHECK: @llvm.ppc.altivec.vadduhs
373 // CHECK-LE: @llvm.ppc.altivec.vadduhs
375 res_vus
= vec_adds(vus
, vbs
);
376 // CHECK: @llvm.ppc.altivec.vadduhs
377 // CHECK-LE: @llvm.ppc.altivec.vadduhs
379 res_vi
= vec_adds(vi
, vi
);
380 // CHECK: @llvm.ppc.altivec.vaddsws
381 // CHECK-LE: @llvm.ppc.altivec.vaddsws
383 res_vi
= vec_adds(vbi
, vi
);
384 // CHECK: @llvm.ppc.altivec.vaddsws
385 // CHECK-LE: @llvm.ppc.altivec.vaddsws
387 res_vi
= vec_adds(vi
, vbi
);
388 // CHECK: @llvm.ppc.altivec.vaddsws
389 // CHECK-LE: @llvm.ppc.altivec.vaddsws
391 res_vui
= vec_adds(vui
, vui
);
392 // CHECK: @llvm.ppc.altivec.vadduws
393 // CHECK-LE: @llvm.ppc.altivec.vadduws
395 res_vui
= vec_adds(vbi
, vui
);
396 // CHECK: @llvm.ppc.altivec.vadduws
397 // CHECK-LE: @llvm.ppc.altivec.vadduws
399 res_vui
= vec_adds(vui
, vbi
);
400 // CHECK: @llvm.ppc.altivec.vadduws
401 // CHECK-LE: @llvm.ppc.altivec.vadduws
403 res_vsc
= vec_vaddsbs(vsc
, vsc
);
404 // CHECK: @llvm.ppc.altivec.vaddsbs
405 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
407 res_vsc
= vec_vaddsbs(vbc
, vsc
);
408 // CHECK: @llvm.ppc.altivec.vaddsbs
409 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
411 res_vsc
= vec_vaddsbs(vsc
, vbc
);
412 // CHECK: @llvm.ppc.altivec.vaddsbs
413 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
415 res_vuc
= vec_vaddubs(vuc
, vuc
);
416 // CHECK: @llvm.ppc.altivec.vaddubs
417 // CHECK-LE: @llvm.ppc.altivec.vaddubs
419 res_vuc
= vec_vaddubs(vbc
, vuc
);
420 // CHECK: @llvm.ppc.altivec.vaddubs
421 // CHECK-LE: @llvm.ppc.altivec.vaddubs
423 res_vuc
= vec_vaddubs(vuc
, vbc
);
424 // CHECK: @llvm.ppc.altivec.vaddubs
425 // CHECK-LE: @llvm.ppc.altivec.vaddubs
427 res_vs
= vec_vaddshs(vs
, vs
);
428 // CHECK: @llvm.ppc.altivec.vaddshs
429 // CHECK-LE: @llvm.ppc.altivec.vaddshs
431 res_vs
= vec_vaddshs(vbs
, vs
);
432 // CHECK: @llvm.ppc.altivec.vaddshs
433 // CHECK-LE: @llvm.ppc.altivec.vaddshs
435 res_vs
= vec_vaddshs(vs
, vbs
);
436 // CHECK: @llvm.ppc.altivec.vaddshs
437 // CHECK-LE: @llvm.ppc.altivec.vaddshs
439 res_vus
= vec_vadduhs(vus
, vus
);
440 // CHECK: @llvm.ppc.altivec.vadduhs
441 // CHECK-LE: @llvm.ppc.altivec.vadduhs
443 res_vus
= vec_vadduhs(vbs
, vus
);
444 // CHECK: @llvm.ppc.altivec.vadduhs
445 // CHECK-LE: @llvm.ppc.altivec.vadduhs
447 res_vus
= vec_vadduhs(vus
, vbs
);
448 // CHECK: @llvm.ppc.altivec.vadduhs
449 // CHECK-LE: @llvm.ppc.altivec.vadduhs
451 res_vi
= vec_vaddsws(vi
, vi
);
452 // CHECK: @llvm.ppc.altivec.vaddsws
453 // CHECK-LE: @llvm.ppc.altivec.vaddsws
455 res_vi
= vec_vaddsws(vbi
, vi
);
456 // CHECK: @llvm.ppc.altivec.vaddsws
457 // CHECK-LE: @llvm.ppc.altivec.vaddsws
459 res_vi
= vec_vaddsws(vi
, vbi
);
460 // CHECK: @llvm.ppc.altivec.vaddsws
461 // CHECK-LE: @llvm.ppc.altivec.vaddsws
463 res_vui
= vec_vadduws(vui
, vui
);
464 // CHECK: @llvm.ppc.altivec.vadduws
465 // CHECK-LE: @llvm.ppc.altivec.vadduws
467 res_vui
= vec_vadduws(vbi
, vui
);
468 // CHECK: @llvm.ppc.altivec.vadduws
469 // CHECK-LE: @llvm.ppc.altivec.vadduws
471 res_vui
= vec_vadduws(vui
, vbi
);
472 // CHECK: @llvm.ppc.altivec.vadduws
473 // CHECK-LE: @llvm.ppc.altivec.vadduws
476 res_vsc
= vec_and(vsc
, vsc
);
477 // CHECK: and <16 x i8>
478 // CHECK-LE: and <16 x i8>
480 res_vsc
= vec_and(vbc
, vsc
);
481 // CHECK: and <16 x i8>
482 // CHECK-LE: and <16 x i8>
484 res_vsc
= vec_and(vsc
, vbc
);
485 // CHECK: and <16 x i8>
486 // CHECK-LE: and <16 x i8>
488 res_vuc
= vec_and(vuc
, vuc
);
489 // CHECK: and <16 x i8>
490 // CHECK-LE: and <16 x i8>
492 res_vuc
= vec_and(vbc
, vuc
);
493 // CHECK: and <16 x i8>
494 // CHECK-LE: and <16 x i8>
496 res_vuc
= vec_and(vuc
, vbc
);
497 // CHECK: and <16 x i8>
498 // CHECK-LE: and <16 x i8>
500 res_vbc
= vec_and(vbc
, vbc
);
501 // CHECK: and <16 x i8>
502 // CHECK-LE: and <16 x i8>
504 res_vs
= vec_and(vs
, vs
);
505 // CHECK: and <8 x i16>
506 // CHECK-LE: and <8 x i16>
508 res_vs
= vec_and(vbs
, vs
);
509 // CHECK: and <8 x i16>
510 // CHECK-LE: and <8 x i16>
512 res_vs
= vec_and(vs
, vbs
);
513 // CHECK: and <8 x i16>
514 // CHECK-LE: and <8 x i16>
516 res_vus
= vec_and(vus
, vus
);
517 // CHECK: and <8 x i16>
518 // CHECK-LE: and <8 x i16>
520 res_vus
= vec_and(vbs
, vus
);
521 // CHECK: and <8 x i16>
522 // CHECK-LE: and <8 x i16>
524 res_vus
= vec_and(vus
, vbs
);
525 // CHECK: and <8 x i16>
526 // CHECK-LE: and <8 x i16>
528 res_vbs
= vec_and(vbs
, vbs
);
529 // CHECK: and <8 x i16>
530 // CHECK-LE: and <8 x i16>
532 res_vi
= vec_and(vi
, vi
);
533 // CHECK: and <4 x i32>
534 // CHECK-LE: and <4 x i32>
536 res_vi
= vec_and(vbi
, vi
);
537 // CHECK: and <4 x i32>
538 // CHECK-le: and <4 x i32>
540 res_vi
= vec_and(vi
, vbi
);
541 // CHECK: and <4 x i32>
542 // CHECK-LE: and <4 x i32>
544 res_vui
= vec_and(vui
, vui
);
545 // CHECK: and <4 x i32>
546 // CHECK-LE: and <4 x i32>
548 res_vui
= vec_and(vbi
, vui
);
549 // CHECK: and <4 x i32>
550 // CHECK-LE: and <4 x i32>
552 res_vui
= vec_and(vui
, vbi
);
553 // CHECK: and <4 x i32>
554 // CHECK-LE: and <4 x i32>
556 res_vbi
= vec_and(vbi
, vbi
);
557 // CHECK: and <4 x i32>
558 // CHECK-LE: and <4 x i32>
560 res_vsc
= vec_vand(vsc
, vsc
);
561 // CHECK: and <16 x i8>
562 // CHECK-LE: and <16 x i8>
564 res_vsc
= vec_vand(vbc
, vsc
);
565 // CHECK: and <16 x i8>
566 // CHECK-LE: and <16 x i8>
568 res_vsc
= vec_vand(vsc
, vbc
);
569 // CHECK: and <16 x i8>
570 // CHECK-LE: and <16 x i8>
572 res_vuc
= vec_vand(vuc
, vuc
);
573 // CHECK: and <16 x i8>
574 // CHECK-LE: and <16 x i8>
576 res_vuc
= vec_vand(vbc
, vuc
);
577 // CHECK: and <16 x i8>
578 // CHECK-LE: and <16 x i8>
580 res_vuc
= vec_vand(vuc
, vbc
);
581 // CHECK: and <16 x i8>
582 // CHECK-LE: and <16 x i8>
584 res_vbc
= vec_vand(vbc
, vbc
);
585 // CHECK: and <16 x i8>
586 // CHECK-LE: and <16 x i8>
588 res_vs
= vec_vand(vs
, vs
);
589 // CHECK: and <8 x i16>
590 // CHECK-LE: and <8 x i16>
592 res_vs
= vec_vand(vbs
, vs
);
593 // CHECK: and <8 x i16>
594 // CHECK-LE: and <8 x i16>
596 res_vs
= vec_vand(vs
, vbs
);
597 // CHECK: and <8 x i16>
598 // CHECK-LE: and <8 x i16>
600 res_vus
= vec_vand(vus
, vus
);
601 // CHECK: and <8 x i16>
602 // CHECK-LE: and <8 x i16>
604 res_vus
= vec_vand(vbs
, vus
);
605 // CHECK: and <8 x i16>
606 // CHECK-LE: and <8 x i16>
608 res_vus
= vec_vand(vus
, vbs
);
609 // CHECK: and <8 x i16>
610 // CHECK-LE: and <8 x i16>
612 res_vbs
= vec_vand(vbs
, vbs
);
613 // CHECK: and <8 x i16>
614 // CHECK-LE: and <8 x i16>
616 res_vi
= vec_vand(vi
, vi
);
617 // CHECK: and <4 x i32>
618 // CHECK-LE: and <4 x i32>
620 res_vi
= vec_vand(vbi
, vi
);
621 // CHECK: and <4 x i32>
622 // CHECK-LE: and <4 x i32>
624 res_vi
= vec_vand(vi
, vbi
);
625 // CHECK: and <4 x i32>
626 // CHECK-LE: and <4 x i32>
628 res_vui
= vec_vand(vui
, vui
);
629 // CHECK: and <4 x i32>
630 // CHECK-LE: and <4 x i32>
632 res_vui
= vec_vand(vbi
, vui
);
633 // CHECK: and <4 x i32>
634 // CHECK-LE: and <4 x i32>
636 res_vui
= vec_vand(vui
, vbi
);
637 // CHECK: and <4 x i32>
638 // CHECK-LE: and <4 x i32>
640 res_vbi
= vec_vand(vbi
, vbi
);
641 // CHECK: and <4 x i32>
642 // CHECK-LE: and <4 x i32>
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>
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>
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>
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>
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>
675 res_vuc
= vec_andc(vuc
, vbc
);
676 // CHECK-LE: xor <16 x i8>
677 // CHECK-LE: and <16 x i8>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
921 // CHECK-LABEL: define{{.*}} void @test2
924 res_vsc
= vec_avg(vsc
, vsc
);
925 // CHECK: @llvm.ppc.altivec.vavgsb
926 // CHECK-LE: @llvm.ppc.altivec.vavgsb
928 res_vuc
= vec_avg(vuc
, vuc
);
929 // CHECK: @llvm.ppc.altivec.vavgub
930 // CHECK-LE: @llvm.ppc.altivec.vavgub
932 res_vs
= vec_avg(vs
, vs
);
933 // CHECK: @llvm.ppc.altivec.vavgsh
934 // CHECK-LE: @llvm.ppc.altivec.vavgsh
936 res_vus
= vec_avg(vus
, vus
);
937 // CHECK: @llvm.ppc.altivec.vavguh
938 // CHECK-LE: @llvm.ppc.altivec.vavguh
940 res_vi
= vec_avg(vi
, vi
);
941 // CHECK: @llvm.ppc.altivec.vavgsw
942 // CHECK-LE: @llvm.ppc.altivec.vavgsw
944 res_vui
= vec_avg(vui
, vui
);
945 // CHECK: @llvm.ppc.altivec.vavguw
946 // CHECK-LE: @llvm.ppc.altivec.vavguw
948 res_vsc
= vec_vavgsb(vsc
, vsc
);
949 // CHECK: @llvm.ppc.altivec.vavgsb
950 // CHECK-LE: @llvm.ppc.altivec.vavgsb
952 res_vuc
= vec_vavgub(vuc
, vuc
);
953 // CHECK: @llvm.ppc.altivec.vavgub
954 // CHECK-LE: @llvm.ppc.altivec.vavgub
956 res_vs
= vec_vavgsh(vs
, vs
);
957 // CHECK: @llvm.ppc.altivec.vavgsh
958 // CHECK-LE: @llvm.ppc.altivec.vavgsh
960 res_vus
= vec_vavguh(vus
, vus
);
961 // CHECK: @llvm.ppc.altivec.vavguh
962 // CHECK-LE: @llvm.ppc.altivec.vavguh
964 res_vi
= vec_vavgsw(vi
, vi
);
965 // CHECK: @llvm.ppc.altivec.vavgsw
966 // CHECK-LE: @llvm.ppc.altivec.vavgsw
968 res_vui
= vec_vavguw(vui
, vui
);
969 // CHECK: @llvm.ppc.altivec.vavguw
970 // CHECK-LE: @llvm.ppc.altivec.vavguw
973 res_vf
= vec_ceil(vf
);
974 // CHECK: @llvm.ppc.altivec.vrfip
975 // CHECK-LE: @llvm.ppc.altivec.vrfip
977 res_vf
= vec_vrfip(vf
);
978 // CHECK: @llvm.ppc.altivec.vrfip
979 // CHECK-LE: @llvm.ppc.altivec.vrfip
982 res_vi
= vec_cmpb(vf
, vf
);
983 // CHECK: @llvm.ppc.altivec.vcmpbfp
984 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp
986 res_vi
= vec_vcmpbfp(vf
, vf
);
987 // CHECK: @llvm.ppc.altivec.vcmpbfp
988 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp
991 res_vbc
= vec_cmpeq(vsc
, vsc
);
992 // CHECK: @llvm.ppc.altivec.vcmpequb
993 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
995 res_vbc
= vec_cmpeq(vuc
, vuc
);
996 // CHECK: @llvm.ppc.altivec.vcmpequb
997 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
999 res_vbc
= vec_cmpeq(vbc
, vbc
);
1000 // CHECK: @llvm.ppc.altivec.vcmpequb
1001 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
1003 res_vbc
= vec_cmpeq(vbc
, vbc
);
1004 // CHECK: @llvm.ppc.altivec.vcmpequb
1005 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
1007 res_vbs
= vec_cmpeq(vs
, vs
);
1008 // CHECK: @llvm.ppc.altivec.vcmpequh
1009 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1011 res_vbs
= vec_cmpeq(vus
, vus
);
1012 // CHECK: @llvm.ppc.altivec.vcmpequh
1013 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1015 res_vbs
= vec_cmpeq(vbs
, vbs
);
1016 // CHECK: @llvm.ppc.altivec.vcmpequh
1017 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1019 res_vbs
= vec_cmpeq(vbs
, vbs
);
1020 // CHECK: @llvm.ppc.altivec.vcmpequh
1021 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1023 res_vbi
= vec_cmpeq(vi
, vi
);
1024 // CHECK: @llvm.ppc.altivec.vcmpequw
1025 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1027 res_vbi
= vec_cmpeq(vui
, vui
);
1028 // CHECK: @llvm.ppc.altivec.vcmpequw
1029 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1031 res_vbi
= vec_cmpeq(vbi
, vbi
);
1032 // CHECK: @llvm.ppc.altivec.vcmpequw
1033 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1035 res_vbi
= vec_cmpeq(vbi
, vbi
);
1036 // CHECK: @llvm.ppc.altivec.vcmpequw
1037 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1039 res_vbi
= vec_cmpeq(vf
, vf
);
1040 // CHECK: @llvm.ppc.altivec.vcmpeqfp
1041 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp
1044 res_vbc
= vec_cmpne(vsc
, vsc
);
1045 // CHECK: @llvm.ppc.altivec.vcmpequb
1047 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
1050 res_vbc
= vec_cmpne(vuc
, vuc
);
1051 // CHECK: @llvm.ppc.altivec.vcmpequb
1053 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
1056 res_vbc
= vec_cmpne(vbc
, vbc
);
1057 // CHECK: @llvm.ppc.altivec.vcmpequb
1059 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
1062 res_vbc
= vec_cmpne(vbc
, vbc
);
1063 // CHECK: @llvm.ppc.altivec.vcmpequb
1065 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
1068 res_vbs
= vec_cmpne(vs
, vs
);
1069 // CHECK: @llvm.ppc.altivec.vcmpequh
1071 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1074 res_vbs
= vec_cmpne(vus
, vus
);
1075 // CHECK: @llvm.ppc.altivec.vcmpequh
1077 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1080 res_vbs
= vec_cmpne(vbs
, vbs
);
1081 // CHECK: @llvm.ppc.altivec.vcmpequh
1083 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1086 res_vbs
= vec_cmpne(vbs
, vbs
);
1087 // CHECK: @llvm.ppc.altivec.vcmpequh
1089 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
1092 res_vbi
= vec_cmpne(vi
, vi
);
1093 // CHECK: @llvm.ppc.altivec.vcmpequw
1095 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1098 res_vbi
= vec_cmpne(vui
, vui
);
1099 // CHECK: @llvm.ppc.altivec.vcmpequw
1101 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1104 res_vbi
= vec_cmpne(vbi
, vbi
);
1105 // CHECK: @llvm.ppc.altivec.vcmpequw
1107 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1110 res_vbi
= vec_cmpne(vbi
, vbi
);
1111 // CHECK: @llvm.ppc.altivec.vcmpequw
1113 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
1116 res_vbi
= vec_cmpne(vf
, vf
);
1117 // CHECK: @llvm.ppc.altivec.vcmpeqfp
1119 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp
1123 res_vbc
= vec_cmpge(vsc
, vsc
);
1124 // CHECK: @llvm.ppc.altivec.vcmpgtsb
1125 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
1127 res_vbc
= vec_cmpge(vuc
, vuc
);
1128 // CHECK: @llvm.ppc.altivec.vcmpgtub
1129 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
1131 res_vbs
= vec_cmpge(vs
, vs
);
1132 // CHECK: @llvm.ppc.altivec.vcmpgtsh
1133 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
1135 res_vbs
= vec_cmpge(vus
, vus
);
1136 // CHECK: @llvm.ppc.altivec.vcmpgtuh
1137 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1139 res_vbi
= vec_cmpge(vi
, vi
);
1140 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1141 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1143 res_vbi
= vec_cmpge(vui
, vui
);
1144 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1145 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1147 res_vbi
= vec_cmpge(vf
, vf
);
1148 // CHECK: @llvm.ppc.altivec.vcmpgefp
1149 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
1151 res_vbi
= vec_vcmpgefp(vf
, vf
);
1152 // CHECK: @llvm.ppc.altivec.vcmpgefp
1153 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
1156 // CHECK-LABEL: define{{.*}} void @test5
1160 res_vbc
= vec_cmpgt(vsc
, vsc
);
1161 // CHECK: @llvm.ppc.altivec.vcmpgtsb
1162 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
1164 res_vbc
= vec_cmpgt(vuc
, vuc
);
1165 // CHECK: @llvm.ppc.altivec.vcmpgtub
1166 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
1168 res_vbs
= vec_cmpgt(vs
, vs
);
1169 // CHECK: @llvm.ppc.altivec.vcmpgtsh
1170 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
1172 res_vbs
= vec_cmpgt(vus
, vus
);
1173 // CHECK: @llvm.ppc.altivec.vcmpgtuh
1174 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1176 res_vbi
= vec_cmpgt(vi
, vi
);
1177 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1178 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1180 res_vbi
= vec_cmpgt(vui
, vui
);
1181 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1182 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1184 res_vbi
= vec_cmpgt(vf
, vf
);
1185 // CHECK: @llvm.ppc.altivec.vcmpgtfp
1186 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
1188 res_vbc
= vec_vcmpgtsb(vsc
, vsc
);
1189 // CHECK: @llvm.ppc.altivec.vcmpgtsb
1190 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
1192 res_vbc
= vec_vcmpgtub(vuc
, vuc
);
1193 // CHECK: @llvm.ppc.altivec.vcmpgtub
1194 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
1196 res_vbs
= vec_vcmpgtsh(vs
, vs
);
1197 // CHECK: @llvm.ppc.altivec.vcmpgtsh
1198 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
1200 res_vbs
= vec_vcmpgtuh(vus
, vus
);
1201 // CHECK: @llvm.ppc.altivec.vcmpgtuh
1202 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1204 res_vbi
= vec_vcmpgtsw(vi
, vi
);
1205 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1206 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1208 res_vbi
= vec_vcmpgtuw(vui
, vui
);
1209 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1210 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1212 res_vbi
= vec_vcmpgtfp(vf
, vf
);
1213 // CHECK: @llvm.ppc.altivec.vcmpgtfp
1214 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
1217 res_vbc
= vec_cmple(vsc
, vsc
);
1218 // CHECK: @llvm.ppc.altivec.vcmpgtsb
1219 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
1221 res_vbc
= vec_cmple(vuc
, vuc
);
1222 // CHECK: @llvm.ppc.altivec.vcmpgtub
1223 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
1225 res_vbs
= vec_cmple(vs
, vs
);
1226 // CHECK: @llvm.ppc.altivec.vcmpgtsh
1227 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
1229 res_vbs
= vec_cmple(vus
, vus
);
1230 // CHECK: @llvm.ppc.altivec.vcmpgtuh
1231 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1233 res_vbi
= vec_cmple(vi
, vi
);
1234 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1235 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1237 res_vbi
= vec_cmple(vui
, vui
);
1238 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1239 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1241 res_vbi
= vec_cmple(vf
, vf
);
1242 // CHECK: @llvm.ppc.altivec.vcmpgefp
1243 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
1246 // CHECK-LABEL: define{{.*}} void @test6
1249 res_vbc
= vec_cmplt(vsc
, vsc
);
1250 // CHECK: @llvm.ppc.altivec.vcmpgtsb
1251 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
1253 res_vbc
= vec_cmplt(vuc
, vuc
);
1254 // CHECK: @llvm.ppc.altivec.vcmpgtub
1255 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
1257 res_vbs
= vec_cmplt(vs
, vs
);
1258 // CHECK: @llvm.ppc.altivec.vcmpgtsh
1259 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
1261 res_vbs
= vec_cmplt(vus
, vus
);
1262 // CHECK: @llvm.ppc.altivec.vcmpgtuh
1263 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1265 res_vbi
= vec_cmplt(vi
, vi
);
1266 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1267 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1269 res_vbi
= vec_cmplt(vui
, vui
);
1270 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1271 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1273 res_vbi
= vec_cmplt(vf
, vf
);
1274 // CHECK: @llvm.ppc.altivec.vcmpgtfp
1275 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
1278 res_vf
= vec_ctf(vi
, 0);
1279 // CHECK: @llvm.ppc.altivec.vcfsx
1280 // CHECK-LE: @llvm.ppc.altivec.vcfsx
1282 res_vf
= vec_ctf(vui
, 0);
1283 // CHECK: @llvm.ppc.altivec.vcfux
1284 // CHECK-LE: @llvm.ppc.altivec.vcfux
1286 res_vf
= vec_vcfsx(vi
, 0);
1287 // CHECK: @llvm.ppc.altivec.vcfsx
1288 // CHECK-LE: @llvm.ppc.altivec.vcfsx
1290 res_vf
= vec_vcfux(vui
, 0);
1291 // CHECK: @llvm.ppc.altivec.vcfux
1292 // CHECK-LE: @llvm.ppc.altivec.vcfux
1295 res_vi
= vec_cts(vf
, 0);
1296 // CHECK: @llvm.ppc.altivec.vctsxs
1297 // CHECK-LE: @llvm.ppc.altivec.vctsxs
1299 res_vi
= vec_vctsxs(vf
, 0);
1300 // CHECK: @llvm.ppc.altivec.vctsxs
1301 // CHECK-LE: @llvm.ppc.altivec.vctsxs
1304 res_vui
= vec_ctu(vf
, 0);
1305 // CHECK: @llvm.ppc.altivec.vctuxs
1306 // CHECK-LE: @llvm.ppc.altivec.vctuxs
1308 res_vui
= vec_vctuxs(vf
, 0);
1309 // CHECK: @llvm.ppc.altivec.vctuxs
1310 // CHECK-LE: @llvm.ppc.altivec.vctuxs
1312 res_vi
= vec_signed(vf
);
1313 // CHECK: fptosi <4 x float>
1314 // CHECK-LE: fptosi <4 x float>
1316 res_vui
= vec_unsigned(vf
);
1317 // CHECK: fptoui <4 x float>
1318 // CHECK-LE: fptoui <4 x float>
1320 res_vf
= vec_float(vi
);
1321 // CHECK: sitofp <4 x i32>
1322 // CHECK-LE: sitofp <4 x i32>
1324 res_vf
= vec_float(vui
);
1325 // CHECK: uitofp <4 x i32>
1326 // CHECK-LE: uitofp <4 x i32>
1329 res_vsc
= vec_div(vsc
, vsc
);
1330 // CHECK: sdiv <16 x i8>
1331 // CHECK-LE: sdiv <16 x i8>
1333 res_vuc
= vec_div(vuc
, vuc
);
1334 // CHECK: udiv <16 x i8>
1335 // CHECK-LE: udiv <16 x i8>
1337 res_vs
= vec_div(vs
, vs
);
1338 // CHECK: sdiv <8 x i16>
1339 // CHECK-LE: sdiv <8 x i16>
1341 res_vus
= vec_div(vus
, vus
);
1342 // CHECK: udiv <8 x i16>
1343 // CHECK-LE: udiv <8 x i16>
1345 res_vi
= vec_div(vi
, vi
);
1346 // CHECK: sdiv <4 x i32>
1347 // CHECK-LE: sdiv <4 x i32>
1349 res_vui
= vec_div(vui
, vui
);
1350 // CHECK: udiv <4 x i32>
1351 // CHECK-LE: udiv <4 x i32>
1355 // CHECK: @llvm.ppc.altivec.dss
1356 // CHECK-LE: @llvm.ppc.altivec.dss
1360 // CHECK: @llvm.ppc.altivec.dssall
1361 // CHECK-LE: @llvm.ppc.altivec.dssall
1364 vec_dst(&vsc
, 0, 0);
1365 // CHECK: @llvm.ppc.altivec.dst
1366 // CHECK-LE: @llvm.ppc.altivec.dst
1369 vec_dstst(&vs
, 0, 0);
1370 // CHECK: @llvm.ppc.altivec.dstst
1371 // CHECK-LE: @llvm.ppc.altivec.dstst
1374 vec_dststt(¶m_i
, 0, 0);
1375 // CHECK: @llvm.ppc.altivec.dststt
1376 // CHECK-LE: @llvm.ppc.altivec.dststt
1379 vec_dstt(&vf
, 0, 0);
1380 // CHECK: @llvm.ppc.altivec.dstt
1381 // CHECK-LE: @llvm.ppc.altivec.dstt
1384 res_vf
= vec_expte(vf
);
1385 // CHECK: @llvm.ppc.altivec.vexptefp
1386 // CHECK-LE: @llvm.ppc.altivec.vexptefp
1388 res_vf
= vec_vexptefp(vf
);
1389 // CHECK: @llvm.ppc.altivec.vexptefp
1390 // CHECK-LE: @llvm.ppc.altivec.vexptefp
1393 res_vf
= vec_floor(vf
);
1394 // CHECK: @llvm.ppc.altivec.vrfim
1395 // CHECK-LE: @llvm.ppc.altivec.vrfim
1397 res_vf
= vec_vrfim(vf
);
1398 // CHECK: @llvm.ppc.altivec.vrfim
1399 // CHECK-LE: @llvm.ppc.altivec.vrfim
1402 res_vsc
= vec_ld(0, &vsc
);
1403 // CHECK: @llvm.ppc.altivec.lvx
1404 // CHECK-LE: @llvm.ppc.altivec.lvx
1406 res_vsc
= vec_ld(0, param_sc_ld
);
1407 // CHECK: @llvm.ppc.altivec.lvx
1408 // CHECK-LE: @llvm.ppc.altivec.lvx
1410 res_vuc
= vec_ld(0, &vuc
);
1411 // CHECK: @llvm.ppc.altivec.lvx
1412 // CHECK-LE: @llvm.ppc.altivec.lvx
1414 res_vuc
= vec_ld(0, param_uc_ld
);
1415 // CHECK: @llvm.ppc.altivec.lvx
1416 // CHECK-LE: @llvm.ppc.altivec.lvx
1418 res_vbc
= vec_ld(0, &vbc
);
1419 // CHECK: @llvm.ppc.altivec.lvx
1420 // CHECK-LE: @llvm.ppc.altivec.lvx
1422 res_vs
= vec_ld(0, &vs
);
1423 // CHECK: @llvm.ppc.altivec.lvx
1424 // CHECK-LE: @llvm.ppc.altivec.lvx
1426 res_vs
= vec_ld(0, param_s_ld
);
1427 // CHECK: @llvm.ppc.altivec.lvx
1428 // CHECK-LE: @llvm.ppc.altivec.lvx
1430 res_vus
= vec_ld(0, &vus
);
1431 // CHECK: @llvm.ppc.altivec.lvx
1432 // CHECK-LE: @llvm.ppc.altivec.lvx
1434 res_vus
= vec_ld(0, param_us_ld
);
1435 // CHECK: @llvm.ppc.altivec.lvx
1436 // CHECK-LE: @llvm.ppc.altivec.lvx
1438 res_vbs
= vec_ld(0, &vbs
);
1439 // CHECK: @llvm.ppc.altivec.lvx
1440 // CHECK-LE: @llvm.ppc.altivec.lvx
1442 res_vp
= vec_ld(0, &vp
);
1443 // CHECK: @llvm.ppc.altivec.lvx
1444 // CHECK-LE: @llvm.ppc.altivec.lvx
1446 res_vi
= vec_ld(0, &vi
);
1447 // CHECK: @llvm.ppc.altivec.lvx
1448 // CHECK-LE: @llvm.ppc.altivec.lvx
1450 res_vi
= vec_ld(0, param_i_ld
);
1451 // CHECK: @llvm.ppc.altivec.lvx
1452 // CHECK-LE: @llvm.ppc.altivec.lvx
1454 res_vui
= vec_ld(0, &vui
);
1455 // CHECK: @llvm.ppc.altivec.lvx
1456 // CHECK-LE: @llvm.ppc.altivec.lvx
1458 res_vui
= vec_ld(0, param_ui_ld
);
1459 // CHECK: @llvm.ppc.altivec.lvx
1460 // CHECK-LE: @llvm.ppc.altivec.lvx
1462 res_vbi
= vec_ld(0, &vbi
);
1463 // CHECK: @llvm.ppc.altivec.lvx
1464 // CHECK-LE: @llvm.ppc.altivec.lvx
1466 res_vf
= vec_ld(0, &vf
);
1467 // CHECK: @llvm.ppc.altivec.lvx
1468 // CHECK-LE: @llvm.ppc.altivec.lvx
1470 res_vf
= vec_ld(0, param_f_ld
);
1471 // CHECK: @llvm.ppc.altivec.lvx
1472 // CHECK-LE: @llvm.ppc.altivec.lvx
1474 res_vsc
= vec_lvx(0, &vsc
);
1475 // CHECK: @llvm.ppc.altivec.lvx
1476 // CHECK-LE: @llvm.ppc.altivec.lvx
1478 res_vsc
= vec_lvx(0, param_sc_ld
);
1479 // CHECK: @llvm.ppc.altivec.lvx
1480 // CHECK-LE: @llvm.ppc.altivec.lvx
1482 res_vuc
= vec_lvx(0, &vuc
);
1483 // CHECK: @llvm.ppc.altivec.lvx
1484 // CHECK-LE: @llvm.ppc.altivec.lvx
1486 res_vuc
= vec_lvx(0, param_uc_ld
);
1487 // CHECK: @llvm.ppc.altivec.lvx
1488 // CHECK-LE: @llvm.ppc.altivec.lvx
1490 res_vbc
= vec_lvx(0, &vbc
);
1491 // CHECK: @llvm.ppc.altivec.lvx
1492 // CHECK-LE: @llvm.ppc.altivec.lvx
1494 res_vs
= vec_lvx(0, &vs
);
1495 // CHECK: @llvm.ppc.altivec.lvx
1496 // CHECK-LE: @llvm.ppc.altivec.lvx
1498 res_vs
= vec_lvx(0, param_s_ld
);
1499 // CHECK: @llvm.ppc.altivec.lvx
1500 // CHECK-LE: @llvm.ppc.altivec.lvx
1502 res_vus
= vec_lvx(0, &vus
);
1503 // CHECK: @llvm.ppc.altivec.lvx
1504 // CHECK-LE: @llvm.ppc.altivec.lvx
1506 res_vus
= vec_lvx(0, param_us_ld
);
1507 // CHECK: @llvm.ppc.altivec.lvx
1508 // CHECK-LE: @llvm.ppc.altivec.lvx
1510 res_vbs
= vec_lvx(0, &vbs
);
1511 // CHECK: @llvm.ppc.altivec.lvx
1512 // CHECK-LE: @llvm.ppc.altivec.lvx
1514 res_vp
= vec_lvx(0, &vp
);
1515 // CHECK: @llvm.ppc.altivec.lvx
1516 // CHECK-LE: @llvm.ppc.altivec.lvx
1518 res_vi
= vec_lvx(0, &vi
);
1519 // CHECK: @llvm.ppc.altivec.lvx
1520 // CHECK-LE: @llvm.ppc.altivec.lvx
1522 res_vi
= vec_lvx(0, param_i_ld
);
1523 // CHECK: @llvm.ppc.altivec.lvx
1524 // CHECK-LE: @llvm.ppc.altivec.lvx
1526 res_vui
= vec_lvx(0, &vui
);
1527 // CHECK: @llvm.ppc.altivec.lvx
1528 // CHECK-LE: @llvm.ppc.altivec.lvx
1530 res_vui
= vec_lvx(0, param_ui_ld
);
1531 // CHECK: @llvm.ppc.altivec.lvx
1532 // CHECK-LE: @llvm.ppc.altivec.lvx
1534 res_vbi
= vec_lvx(0, &vbi
);
1535 // CHECK: @llvm.ppc.altivec.lvx
1536 // CHECK-LE: @llvm.ppc.altivec.lvx
1538 res_vf
= vec_lvx(0, &vf
);
1539 // CHECK: @llvm.ppc.altivec.lvx
1540 // CHECK-LE: @llvm.ppc.altivec.lvx
1542 res_vf
= vec_lvx(0, param_f_ld
);
1543 // CHECK: @llvm.ppc.altivec.lvx
1544 // CHECK-LE: @llvm.ppc.altivec.lvx
1547 res_vsc
= vec_lde(0, param_sc_ld
);
1548 // CHECK: @llvm.ppc.altivec.lvebx
1549 // CHECK-LE: @llvm.ppc.altivec.lvebx
1551 res_vuc
= vec_lde(0, param_uc_ld
);
1552 // CHECK: @llvm.ppc.altivec.lvebx
1553 // CHECK-LE: @llvm.ppc.altivec.lvebx
1555 res_vs
= vec_lde(0, param_s_ld
);
1556 // CHECK: @llvm.ppc.altivec.lvehx
1557 // CHECK-LE: @llvm.ppc.altivec.lvehx
1559 res_vus
= vec_lde(0, param_us_ld
);
1560 // CHECK: @llvm.ppc.altivec.lvehx
1561 // CHECK-LE: @llvm.ppc.altivec.lvehx
1563 res_vi
= vec_lde(0, param_i_ld
);
1564 // CHECK: @llvm.ppc.altivec.lvewx
1565 // CHECK-LE: @llvm.ppc.altivec.lvewx
1567 res_vui
= vec_lde(0, param_ui_ld
);
1568 // CHECK: @llvm.ppc.altivec.lvewx
1569 // CHECK-LE: @llvm.ppc.altivec.lvewx
1571 res_vf
= vec_lde(0, param_f_ld
);
1572 // CHECK: @llvm.ppc.altivec.lvewx
1573 // CHECK-LE: @llvm.ppc.altivec.lvewx
1575 res_vsc
= vec_lvebx(0, param_sc_ld
);
1576 // CHECK: @llvm.ppc.altivec.lvebx
1577 // CHECK-LE: @llvm.ppc.altivec.lvebx
1579 res_vuc
= vec_lvebx(0, param_uc_ld
);
1580 // CHECK: @llvm.ppc.altivec.lvebx
1581 // CHECK-LE: @llvm.ppc.altivec.lvebx
1583 res_vs
= vec_lvehx(0, param_s_ld
);
1584 // CHECK: @llvm.ppc.altivec.lvehx
1585 // CHECK-LE: @llvm.ppc.altivec.lvehx
1587 res_vus
= vec_lvehx(0, param_us_ld
);
1588 // CHECK: @llvm.ppc.altivec.lvehx
1589 // CHECK-LE: @llvm.ppc.altivec.lvehx
1591 res_vi
= vec_lvewx(0, param_i_ld
);
1592 // CHECK: @llvm.ppc.altivec.lvewx
1593 // CHECK-LE: @llvm.ppc.altivec.lvewx
1595 res_vui
= vec_lvewx(0, param_ui_ld
);
1596 // CHECK: @llvm.ppc.altivec.lvewx
1597 // CHECK-LE: @llvm.ppc.altivec.lvewx
1599 res_vf
= vec_lvewx(0, param_f_ld
);
1600 // CHECK: @llvm.ppc.altivec.lvewx
1601 // CHECK-LE: @llvm.ppc.altivec.lvewx
1604 res_vsc
= vec_ldl(0, &vsc
);
1605 // CHECK: @llvm.ppc.altivec.lvxl
1606 // CHECK-LE: @llvm.ppc.altivec.lvxl
1608 res_vsc
= vec_ldl(0, param_sc_ld
);
1609 // CHECK: @llvm.ppc.altivec.lvxl
1610 // CHECK-LE: @llvm.ppc.altivec.lvxl
1612 res_vuc
= vec_ldl(0, &vuc
);
1613 // CHECK: @llvm.ppc.altivec.lvxl
1614 // CHECK-LE: @llvm.ppc.altivec.lvxl
1616 res_vuc
= vec_ldl(0, param_uc_ld
);
1617 // CHECK: @llvm.ppc.altivec.lvxl
1618 // CHECK-LE: @llvm.ppc.altivec.lvxl
1620 res_vbc
= vec_ldl(0, &vbc
);
1621 // CHECK: @llvm.ppc.altivec.lvxl
1622 // CHECK-LE: @llvm.ppc.altivec.lvxl
1624 res_vs
= vec_ldl(0, &vs
);
1625 // CHECK: @llvm.ppc.altivec.lvxl
1626 // CHECK-LE: @llvm.ppc.altivec.lvxl
1628 res_vs
= vec_ldl(0, param_s_ld
);
1629 // CHECK: @llvm.ppc.altivec.lvxl
1630 // CHECK-LE: @llvm.ppc.altivec.lvxl
1632 res_vus
= vec_ldl(0, &vus
);
1633 // CHECK: @llvm.ppc.altivec.lvxl
1634 // CHECK-LE: @llvm.ppc.altivec.lvxl
1636 res_vus
= vec_ldl(0, param_us_ld
);
1637 // CHECK: @llvm.ppc.altivec.lvxl
1638 // CHECK-LE: @llvm.ppc.altivec.lvxl
1640 res_vbs
= vec_ldl(0, &vbs
);
1641 // CHECK: @llvm.ppc.altivec.lvxl
1642 // CHECK-LE: @llvm.ppc.altivec.lvxl
1644 res_vp
= vec_ldl(0, &vp
);
1645 // CHECK: @llvm.ppc.altivec.lvxl
1646 // CHECK-LE: @llvm.ppc.altivec.lvxl
1648 res_vi
= vec_ldl(0, &vi
);
1649 // CHECK: @llvm.ppc.altivec.lvxl
1650 // CHECK-LE: @llvm.ppc.altivec.lvxl
1652 res_vi
= vec_ldl(0, param_i_ld
);
1653 // CHECK: @llvm.ppc.altivec.lvxl
1654 // CHECK-LE: @llvm.ppc.altivec.lvxl
1656 res_vui
= vec_ldl(0, &vui
);
1657 // CHECK: @llvm.ppc.altivec.lvxl
1658 // CHECK-LE: @llvm.ppc.altivec.lvxl
1660 res_vui
= vec_ldl(0, param_ui_ld
);
1661 // CHECK: @llvm.ppc.altivec.lvxl
1662 // CHECK-LE: @llvm.ppc.altivec.lvxl
1664 res_vbi
= vec_ldl(0, &vbi
);
1665 // CHECK: @llvm.ppc.altivec.lvxl
1666 // CHECK-LE: @llvm.ppc.altivec.lvxl
1668 res_vf
= vec_ldl(0, &vf
);
1669 // CHECK: @llvm.ppc.altivec.lvxl
1670 // CHECK-LE: @llvm.ppc.altivec.lvxl
1672 res_vf
= vec_ldl(0, param_f_ld
);
1673 // CHECK: @llvm.ppc.altivec.lvxl
1674 // CHECK-LE: @llvm.ppc.altivec.lvxl
1676 res_vsc
= vec_lvxl(0, &vsc
);
1677 // CHECK: @llvm.ppc.altivec.lvxl
1678 // CHECK-LE: @llvm.ppc.altivec.lvxl
1680 res_vsc
= vec_lvxl(0, param_sc_ld
);
1681 // CHECK: @llvm.ppc.altivec.lvxl
1682 // CHECK-LE: @llvm.ppc.altivec.lvxl
1684 res_vuc
= vec_lvxl(0, &vuc
);
1685 // CHECK: @llvm.ppc.altivec.lvxl
1686 // CHECK-LE: @llvm.ppc.altivec.lvxl
1688 res_vbc
= vec_lvxl(0, &vbc
);
1689 // CHECK: @llvm.ppc.altivec.lvxl
1690 // CHECK-LE: @llvm.ppc.altivec.lvxl
1692 res_vuc
= vec_lvxl(0, param_uc_ld
);
1693 // CHECK: @llvm.ppc.altivec.lvxl
1694 // CHECK-LE: @llvm.ppc.altivec.lvxl
1696 res_vs
= vec_lvxl(0, &vs
);
1697 // CHECK: @llvm.ppc.altivec.lvxl
1698 // CHECK-LE: @llvm.ppc.altivec.lvxl
1700 res_vs
= vec_lvxl(0, param_s_ld
);
1701 // CHECK: @llvm.ppc.altivec.lvxl
1702 // CHECK-LE: @llvm.ppc.altivec.lvxl
1704 res_vus
= vec_lvxl(0, &vus
);
1705 // CHECK: @llvm.ppc.altivec.lvxl
1706 // CHECK-LE: @llvm.ppc.altivec.lvxl
1708 res_vus
= vec_lvxl(0, param_us_ld
);
1709 // CHECK: @llvm.ppc.altivec.lvxl
1710 // CHECK-LE: @llvm.ppc.altivec.lvxl
1712 res_vbs
= vec_lvxl(0, &vbs
);
1713 // CHECK: @llvm.ppc.altivec.lvxl
1714 // CHECK-LE: @llvm.ppc.altivec.lvxl
1716 res_vp
= vec_lvxl(0, &vp
);
1717 // CHECK: @llvm.ppc.altivec.lvxl
1718 // CHECK-LE: @llvm.ppc.altivec.lvxl
1720 res_vi
= vec_lvxl(0, &vi
);
1721 // CHECK: @llvm.ppc.altivec.lvxl
1722 // CHECK-LE: @llvm.ppc.altivec.lvxl
1724 res_vi
= vec_lvxl(0, param_i_ld
);
1725 // CHECK: @llvm.ppc.altivec.lvxl
1726 // CHECK-LE: @llvm.ppc.altivec.lvxl
1728 res_vui
= vec_lvxl(0, &vui
);
1729 // CHECK: @llvm.ppc.altivec.lvxl
1730 // CHECK-LE: @llvm.ppc.altivec.lvxl
1732 res_vui
= vec_lvxl(0, param_ui_ld
);
1733 // CHECK: @llvm.ppc.altivec.lvxl
1734 // CHECK-LE: @llvm.ppc.altivec.lvxl
1736 res_vbi
= vec_lvxl(0, &vbi
);
1737 // CHECK: @llvm.ppc.altivec.lvxl
1738 // CHECK-LE: @llvm.ppc.altivec.lvxl
1740 res_vf
= vec_lvxl(0, &vf
);
1741 // CHECK: @llvm.ppc.altivec.lvxl
1742 // CHECK-LE: @llvm.ppc.altivec.lvxl
1744 res_vf
= vec_lvxl(0, param_f_ld
);
1745 // CHECK: @llvm.ppc.altivec.lvxl
1746 // CHECK-LE: @llvm.ppc.altivec.lvxl
1749 res_vf
= vec_loge(vf
);
1750 // CHECK: @llvm.ppc.altivec.vlogefp
1751 // CHECK-LE: @llvm.ppc.altivec.vlogefp
1753 res_vf
= vec_vlogefp(vf
);
1754 // CHECK: @llvm.ppc.altivec.vlogefp
1755 // CHECK-LE: @llvm.ppc.altivec.vlogefp
1758 res_vuc
= vec_lvsl(0, param_i_ld
);
1759 // CHECK: @llvm.ppc.altivec.lvsl
1760 // CHECK-LE: @llvm.ppc.altivec.lvsl
1763 res_vuc
= vec_lvsr(0, param_i_ld
);
1764 // CHECK: @llvm.ppc.altivec.lvsr
1765 // CHECK-LE: @llvm.ppc.altivec.lvsr
1768 res_vf
=vec_madd(vf
, vf
, vf
);
1769 // CHECK: @llvm.ppc.altivec.vmaddfp
1770 // CHECK-LE: @llvm.ppc.altivec.vmaddfp
1772 res_vf
= vec_vmaddfp(vf
, vf
, vf
);
1773 // CHECK: @llvm.ppc.altivec.vmaddfp
1774 // CHECK-LE: @llvm.ppc.altivec.vmaddfp
1777 res_vs
= vec_madds(vs
, vs
, vs
);
1778 // CHECK: @llvm.ppc.altivec.vmhaddshs
1779 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs
1781 res_vs
= vec_vmhaddshs(vs
, vs
, vs
);
1782 // CHECK: @llvm.ppc.altivec.vmhaddshs
1783 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs
1786 res_vsc
= vec_max(vsc
, vsc
);
1787 // CHECK: @llvm.ppc.altivec.vmaxsb
1788 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1790 res_vsc
= vec_max(vbc
, vsc
);
1791 // CHECK: @llvm.ppc.altivec.vmaxsb
1792 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1794 res_vsc
= vec_max(vsc
, vbc
);
1795 // CHECK: @llvm.ppc.altivec.vmaxsb
1796 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1798 res_vuc
= vec_max(vuc
, vuc
);
1799 // CHECK: @llvm.ppc.altivec.vmaxub
1800 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1802 res_vuc
= vec_max(vbc
, vuc
);
1803 // CHECK: @llvm.ppc.altivec.vmaxub
1804 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1806 res_vuc
= vec_max(vuc
, vbc
);
1807 // CHECK: @llvm.ppc.altivec.vmaxub
1808 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1810 res_vs
= vec_max(vs
, vs
);
1811 // CHECK: @llvm.ppc.altivec.vmaxsh
1812 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1814 res_vs
= vec_max(vbs
, vs
);
1815 // CHECK: @llvm.ppc.altivec.vmaxsh
1816 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1818 res_vs
= vec_max(vs
, vbs
);
1819 // CHECK: @llvm.ppc.altivec.vmaxsh
1820 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1822 res_vus
= vec_max(vus
, vus
);
1823 // CHECK: @llvm.ppc.altivec.vmaxuh
1824 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1826 res_vus
= vec_max(vbs
, vus
);
1827 // CHECK: @llvm.ppc.altivec.vmaxuh
1828 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1830 res_vus
= vec_max(vus
, vbs
);
1831 // CHECK: @llvm.ppc.altivec.vmaxuh
1832 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1834 res_vi
= vec_max(vi
, vi
);
1835 // CHECK: @llvm.ppc.altivec.vmaxsw
1836 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1838 res_vi
= vec_max(vbi
, vi
);
1839 // CHECK: @llvm.ppc.altivec.vmaxsw
1840 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1842 res_vi
= vec_max(vi
, vbi
);
1843 // CHECK: @llvm.ppc.altivec.vmaxsw
1844 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1846 res_vui
= vec_max(vui
, vui
);
1847 // CHECK: @llvm.ppc.altivec.vmaxuw
1848 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1850 res_vui
= vec_max(vbi
, vui
);
1851 // CHECK: @llvm.ppc.altivec.vmaxuw
1852 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1854 res_vui
= vec_max(vui
, vbi
);
1855 // CHECK: @llvm.ppc.altivec.vmaxuw
1856 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1858 res_vf
= vec_max(vf
, vf
);
1859 // CHECK: @llvm.ppc.altivec.vmaxfp
1860 // CHECK-LE: @llvm.ppc.altivec.vmaxfp
1862 res_vsc
= vec_vmaxsb(vsc
, vsc
);
1863 // CHECK: @llvm.ppc.altivec.vmaxsb
1864 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1866 res_vsc
= vec_vmaxsb(vbc
, vsc
);
1867 // CHECK: @llvm.ppc.altivec.vmaxsb
1868 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1870 res_vsc
= vec_vmaxsb(vsc
, vbc
);
1871 // CHECK: @llvm.ppc.altivec.vmaxsb
1872 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1874 res_vuc
= vec_vmaxub(vuc
, vuc
);
1875 // CHECK: @llvm.ppc.altivec.vmaxub
1876 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1878 res_vuc
= vec_vmaxub(vbc
, vuc
);
1879 // CHECK: @llvm.ppc.altivec.vmaxub
1880 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1882 res_vuc
= vec_vmaxub(vuc
, vbc
);
1883 // CHECK: @llvm.ppc.altivec.vmaxub
1884 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1886 res_vs
= vec_vmaxsh(vs
, vs
);
1887 // CHECK: @llvm.ppc.altivec.vmaxsh
1888 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1890 res_vs
= vec_vmaxsh(vbs
, vs
);
1891 // CHECK: @llvm.ppc.altivec.vmaxsh
1892 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1894 res_vs
= vec_vmaxsh(vs
, vbs
);
1895 // CHECK: @llvm.ppc.altivec.vmaxsh
1896 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1898 res_vus
= vec_vmaxuh(vus
, vus
);
1899 // CHECK: @llvm.ppc.altivec.vmaxuh
1900 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1902 res_vus
= vec_vmaxuh(vbs
, vus
);
1903 // CHECK: @llvm.ppc.altivec.vmaxuh
1904 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1906 res_vus
= vec_vmaxuh(vus
, vbs
);
1907 // CHECK: @llvm.ppc.altivec.vmaxuh
1908 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1910 res_vi
= vec_vmaxsw(vi
, vi
);
1911 // CHECK: @llvm.ppc.altivec.vmaxsw
1912 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1914 res_vi
= vec_vmaxsw(vbi
, vi
);
1915 // CHECK: @llvm.ppc.altivec.vmaxsw
1916 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1918 res_vi
= vec_vmaxsw(vi
, vbi
);
1919 // CHECK: @llvm.ppc.altivec.vmaxsw
1920 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1922 res_vui
= vec_vmaxuw(vui
, vui
);
1923 // CHECK: @llvm.ppc.altivec.vmaxuw
1924 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1926 res_vui
= vec_vmaxuw(vbi
, vui
);
1927 // CHECK: @llvm.ppc.altivec.vmaxuw
1928 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1930 res_vui
= vec_vmaxuw(vui
, vbi
);
1931 // CHECK: @llvm.ppc.altivec.vmaxuw
1932 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1934 res_vf
= vec_vmaxfp(vf
, vf
);
1935 // CHECK: @llvm.ppc.altivec.vmaxfp
1936 // CHECK-LE: @llvm.ppc.altivec.vmaxfp
1939 res_vsc
= vec_mergeh(vsc
, vsc
);
1940 // CHECK: @llvm.ppc.altivec.vperm
1941 // CHECK-LE: @llvm.ppc.altivec.vperm
1943 res_vuc
= vec_mergeh(vuc
, vuc
);
1944 // CHECK: @llvm.ppc.altivec.vperm
1945 // CHECK-LE: @llvm.ppc.altivec.vperm
1947 res_vbc
= vec_mergeh(vbc
, vbc
);
1948 // CHECK: @llvm.ppc.altivec.vperm
1949 // CHECK-LE: @llvm.ppc.altivec.vperm
1951 res_vs
= vec_mergeh(vs
, vs
);
1952 // CHECK: @llvm.ppc.altivec.vperm
1953 // CHECK-LE: @llvm.ppc.altivec.vperm
1955 res_vp
= vec_mergeh(vp
, vp
);
1956 // CHECK: @llvm.ppc.altivec.vperm
1957 // CHECK-LE: @llvm.ppc.altivec.vperm
1959 res_vus
= vec_mergeh(vus
, vus
);
1960 // CHECK: @llvm.ppc.altivec.vperm
1961 // CHECK-LE: @llvm.ppc.altivec.vperm
1963 res_vbs
= vec_mergeh(vbs
, vbs
);
1964 // CHECK: @llvm.ppc.altivec.vperm
1965 // CHECK-LE: @llvm.ppc.altivec.vperm
1967 res_vi
= vec_mergeh(vi
, vi
);
1968 // CHECK: @llvm.ppc.altivec.vperm
1969 // CHECK-LE: @llvm.ppc.altivec.vperm
1971 res_vui
= vec_mergeh(vui
, vui
);
1972 // CHECK: @llvm.ppc.altivec.vperm
1973 // CHECK-LE: @llvm.ppc.altivec.vperm
1975 res_vbi
= vec_mergeh(vbi
, vbi
);
1976 // CHECK: @llvm.ppc.altivec.vperm
1977 // CHECK-LE: @llvm.ppc.altivec.vperm
1979 res_vf
= vec_mergeh(vf
, vf
);
1980 // CHECK: @llvm.ppc.altivec.vperm
1981 // CHECK-LE: @llvm.ppc.altivec.vperm
1983 res_vsc
= vec_vmrghb(vsc
, vsc
);
1984 // CHECK: @llvm.ppc.altivec.vperm
1985 // CHECK-LE: @llvm.ppc.altivec.vperm
1987 res_vuc
= vec_vmrghb(vuc
, vuc
);
1988 // CHECK: @llvm.ppc.altivec.vperm
1989 // CHECK-LE: @llvm.ppc.altivec.vperm
1991 res_vbc
= vec_vmrghb(vbc
, vbc
);
1992 // CHECK: @llvm.ppc.altivec.vperm
1993 // CHECK-LE: @llvm.ppc.altivec.vperm
1995 res_vs
= vec_vmrghh(vs
, vs
);
1996 // CHECK: @llvm.ppc.altivec.vperm
1997 // CHECK-LE: @llvm.ppc.altivec.vperm
1999 res_vp
= vec_vmrghh(vp
, vp
);
2000 // CHECK: @llvm.ppc.altivec.vperm
2001 // CHECK-LE: @llvm.ppc.altivec.vperm
2003 res_vus
= vec_vmrghh(vus
, vus
);
2004 // CHECK: @llvm.ppc.altivec.vperm
2005 // CHECK-LE: @llvm.ppc.altivec.vperm
2007 res_vbs
= vec_vmrghh(vbs
, vbs
);
2008 // CHECK: @llvm.ppc.altivec.vperm
2009 // CHECK-LE: @llvm.ppc.altivec.vperm
2011 res_vi
= vec_vmrghw(vi
, vi
);
2012 // CHECK: @llvm.ppc.altivec.vperm
2013 // CHECK-LE: @llvm.ppc.altivec.vperm
2015 res_vui
= vec_vmrghw(vui
, vui
);
2016 // CHECK: @llvm.ppc.altivec.vperm
2017 // CHECK-LE: @llvm.ppc.altivec.vperm
2019 res_vbi
= vec_vmrghw(vbi
, vbi
);
2020 // CHECK: @llvm.ppc.altivec.vperm
2021 // CHECK-LE: @llvm.ppc.altivec.vperm
2023 res_vf
= vec_vmrghw(vf
, vf
);
2024 // CHECK: @llvm.ppc.altivec.vperm
2025 // CHECK-LE: @llvm.ppc.altivec.vperm
2028 res_vsc
= vec_mergel(vsc
, vsc
);
2029 // CHECK: @llvm.ppc.altivec.vperm
2030 // CHECK-LE: @llvm.ppc.altivec.vperm
2032 res_vuc
= vec_mergel(vuc
, vuc
);
2033 // CHECK: @llvm.ppc.altivec.vperm
2034 // CHECK-LE: @llvm.ppc.altivec.vperm
2036 res_vbc
= vec_mergel(vbc
, vbc
);
2037 // CHECK: @llvm.ppc.altivec.vperm
2038 // CHECK-LE: @llvm.ppc.altivec.vperm
2040 res_vs
= vec_mergel(vs
, vs
);
2041 // CHECK: @llvm.ppc.altivec.vperm
2042 // CHECK-LE: @llvm.ppc.altivec.vperm
2044 res_vp
= vec_mergeh(vp
, vp
);
2045 // CHECK: @llvm.ppc.altivec.vperm
2046 // CHECK-LE: @llvm.ppc.altivec.vperm
2048 res_vus
= vec_mergel(vus
, vus
);
2049 // CHECK: @llvm.ppc.altivec.vperm
2050 // CHECK-LE: @llvm.ppc.altivec.vperm
2052 res_vbs
= vec_mergel(vbs
, vbs
);
2053 // CHECK: @llvm.ppc.altivec.vperm
2054 // CHECK-LE: @llvm.ppc.altivec.vperm
2056 res_vi
= vec_mergel(vi
, vi
);
2057 // CHECK: @llvm.ppc.altivec.vperm
2058 // CHECK-LE: @llvm.ppc.altivec.vperm
2060 res_vui
= vec_mergel(vui
, vui
);
2061 // CHECK: @llvm.ppc.altivec.vperm
2062 // CHECK-LE: @llvm.ppc.altivec.vperm
2064 res_vbi
= vec_mergel(vbi
, vbi
);
2065 // CHECK: @llvm.ppc.altivec.vperm
2066 // CHECK-LE: @llvm.ppc.altivec.vperm
2068 res_vf
= vec_mergel(vf
, vf
);
2069 // CHECK: @llvm.ppc.altivec.vperm
2070 // CHECK-LE: @llvm.ppc.altivec.vperm
2072 res_vsc
= vec_vmrglb(vsc
, vsc
);
2073 // CHECK: @llvm.ppc.altivec.vperm
2074 // CHECK-LE: @llvm.ppc.altivec.vperm
2076 res_vuc
= vec_vmrglb(vuc
, vuc
);
2077 // CHECK: @llvm.ppc.altivec.vperm
2078 // CHECK-LE: @llvm.ppc.altivec.vperm
2080 res_vbc
= vec_vmrglb(vbc
, vbc
);
2081 // CHECK: @llvm.ppc.altivec.vperm
2082 // CHECK-LE: @llvm.ppc.altivec.vperm
2084 res_vs
= vec_vmrglh(vs
, vs
);
2085 // CHECK: @llvm.ppc.altivec.vperm
2086 // CHECK-LE: @llvm.ppc.altivec.vperm
2088 res_vp
= vec_vmrglh(vp
, vp
);
2089 // CHECK: @llvm.ppc.altivec.vperm
2090 // CHECK-LE: @llvm.ppc.altivec.vperm
2092 res_vus
= vec_vmrglh(vus
, vus
);
2093 // CHECK: @llvm.ppc.altivec.vperm
2094 // CHECK-LE: @llvm.ppc.altivec.vperm
2096 res_vbs
= vec_vmrglh(vbs
, vbs
);
2097 // CHECK: @llvm.ppc.altivec.vperm
2098 // CHECK-LE: @llvm.ppc.altivec.vperm
2100 res_vi
= vec_vmrglw(vi
, vi
);
2101 // CHECK: @llvm.ppc.altivec.vperm
2102 // CHECK-LE: @llvm.ppc.altivec.vperm
2104 res_vui
= vec_vmrglw(vui
, vui
);
2105 // CHECK: @llvm.ppc.altivec.vperm
2106 // CHECK-LE: @llvm.ppc.altivec.vperm
2108 res_vbi
= vec_vmrglw(vbi
, vbi
);
2109 // CHECK: @llvm.ppc.altivec.vperm
2110 // CHECK-LE: @llvm.ppc.altivec.vperm
2112 res_vf
= vec_vmrglw(vf
, vf
);
2113 // CHECK: @llvm.ppc.altivec.vperm
2114 // CHECK-LE: @llvm.ppc.altivec.vperm
2118 // CHECK: @llvm.ppc.altivec.mfvscr
2119 // CHECK-LE: @llvm.ppc.altivec.mfvscr
2122 res_vsc
= vec_min(vsc
, vsc
);
2123 // CHECK: @llvm.ppc.altivec.vminsb
2124 // CHECK-LE: @llvm.ppc.altivec.vminsb
2126 res_vsc
= vec_min(vbc
, vsc
);
2127 // CHECK: @llvm.ppc.altivec.vminsb
2128 // CHECK-LE: @llvm.ppc.altivec.vminsb
2130 res_vsc
= vec_min(vsc
, vbc
);
2131 // CHECK: @llvm.ppc.altivec.vminsb
2132 // CHECK-LE: @llvm.ppc.altivec.vminsb
2134 res_vuc
= vec_min(vuc
, vuc
);
2135 // CHECK: @llvm.ppc.altivec.vminub
2136 // CHECK-LE: @llvm.ppc.altivec.vminub
2138 res_vuc
= vec_min(vbc
, vuc
);
2139 // CHECK: @llvm.ppc.altivec.vminub
2140 // CHECK-LE: @llvm.ppc.altivec.vminub
2142 res_vuc
= vec_min(vuc
, vbc
);
2143 // CHECK: @llvm.ppc.altivec.vminub
2144 // CHECK-LE: @llvm.ppc.altivec.vminub
2146 res_vs
= vec_min(vs
, vs
);
2147 // CHECK: @llvm.ppc.altivec.vminsh
2148 // CHECK-LE: @llvm.ppc.altivec.vminsh
2150 res_vs
= vec_min(vbs
, vs
);
2151 // CHECK: @llvm.ppc.altivec.vminsh
2152 // CHECK-LE: @llvm.ppc.altivec.vminsh
2154 res_vs
= vec_min(vs
, vbs
);
2155 // CHECK: @llvm.ppc.altivec.vminsh
2156 // CHECK-LE: @llvm.ppc.altivec.vminsh
2158 res_vus
= vec_min(vus
, vus
);
2159 // CHECK: @llvm.ppc.altivec.vminuh
2160 // CHECK-LE: @llvm.ppc.altivec.vminuh
2162 res_vus
= vec_min(vbs
, vus
);
2163 // CHECK: @llvm.ppc.altivec.vminuh
2164 // CHECK-LE: @llvm.ppc.altivec.vminuh
2166 res_vus
= vec_min(vus
, vbs
);
2167 // CHECK: @llvm.ppc.altivec.vminuh
2168 // CHECK-LE: @llvm.ppc.altivec.vminuh
2170 res_vi
= vec_min(vi
, vi
);
2171 // CHECK: @llvm.ppc.altivec.vminsw
2172 // CHECK-LE: @llvm.ppc.altivec.vminsw
2174 res_vi
= vec_min(vbi
, vi
);
2175 // CHECK: @llvm.ppc.altivec.vminsw
2176 // CHECK-LE: @llvm.ppc.altivec.vminsw
2178 res_vi
= vec_min(vi
, vbi
);
2179 // CHECK: @llvm.ppc.altivec.vminsw
2180 // CHECK-LE: @llvm.ppc.altivec.vminsw
2182 res_vui
= vec_min(vui
, vui
);
2183 // CHECK: @llvm.ppc.altivec.vminuw
2184 // CHECK-LE: @llvm.ppc.altivec.vminuw
2186 res_vui
= vec_min(vbi
, vui
);
2187 // CHECK: @llvm.ppc.altivec.vminuw
2188 // CHECK-LE: @llvm.ppc.altivec.vminuw
2190 res_vui
= vec_min(vui
, vbi
);
2191 // CHECK: @llvm.ppc.altivec.vminuw
2192 // CHECK-LE: @llvm.ppc.altivec.vminuw
2194 res_vf
= vec_min(vf
, vf
);
2195 // CHECK: @llvm.ppc.altivec.vminfp
2196 // CHECK-LE: @llvm.ppc.altivec.vminfp
2198 res_vsc
= vec_vminsb(vsc
, vsc
);
2199 // CHECK: @llvm.ppc.altivec.vminsb
2200 // CHECK-LE: @llvm.ppc.altivec.vminsb
2202 res_vsc
= vec_vminsb(vbc
, vsc
);
2203 // CHECK: @llvm.ppc.altivec.vminsb
2204 // CHECK-LE: @llvm.ppc.altivec.vminsb
2206 res_vsc
= vec_vminsb(vsc
, vbc
);
2207 // CHECK: @llvm.ppc.altivec.vminsb
2208 // CHECK-LE: @llvm.ppc.altivec.vminsb
2210 res_vuc
= vec_vminub(vuc
, vuc
);
2211 // CHECK: @llvm.ppc.altivec.vminub
2212 // CHECK-LE: @llvm.ppc.altivec.vminub
2214 res_vuc
= vec_vminub(vbc
, vuc
);
2215 // CHECK: @llvm.ppc.altivec.vminub
2216 // CHECK-LE: @llvm.ppc.altivec.vminub
2218 res_vuc
= vec_vminub(vuc
, vbc
);
2219 // CHECK: @llvm.ppc.altivec.vminub
2220 // CHECK-LE: @llvm.ppc.altivec.vminub
2222 res_vs
= vec_vminsh(vs
, vs
);
2223 // CHECK: @llvm.ppc.altivec.vminsh
2224 // CHECK-LE: @llvm.ppc.altivec.vminsh
2226 res_vs
= vec_vminsh(vbs
, vs
);
2227 // CHECK: @llvm.ppc.altivec.vminsh
2228 // CHECK-LE: @llvm.ppc.altivec.vminsh
2230 res_vs
= vec_vminsh(vs
, vbs
);
2231 // CHECK: @llvm.ppc.altivec.vminsh
2232 // CHECK-LE: @llvm.ppc.altivec.vminsh
2234 res_vus
= vec_vminuh(vus
, vus
);
2235 // CHECK: @llvm.ppc.altivec.vminuh
2236 // CHECK-LE: @llvm.ppc.altivec.vminuh
2238 res_vus
= vec_vminuh(vbs
, vus
);
2239 // CHECK: @llvm.ppc.altivec.vminuh
2240 // CHECK-LE: @llvm.ppc.altivec.vminuh
2242 res_vus
= vec_vminuh(vus
, vbs
);
2243 // CHECK: @llvm.ppc.altivec.vminuh
2244 // CHECK-LE: @llvm.ppc.altivec.vminuh
2246 res_vi
= vec_vminsw(vi
, vi
);
2247 // CHECK: @llvm.ppc.altivec.vminsw
2248 // CHECK-LE: @llvm.ppc.altivec.vminsw
2250 res_vi
= vec_vminsw(vbi
, vi
);
2251 // CHECK: @llvm.ppc.altivec.vminsw
2252 // CHECK-LE: @llvm.ppc.altivec.vminsw
2254 res_vi
= vec_vminsw(vi
, vbi
);
2255 // CHECK: @llvm.ppc.altivec.vminsw
2256 // CHECK-LE: @llvm.ppc.altivec.vminsw
2258 res_vui
= vec_vminuw(vui
, vui
);
2259 // CHECK: @llvm.ppc.altivec.vminuw
2260 // CHECK-LE: @llvm.ppc.altivec.vminuw
2262 res_vui
= vec_vminuw(vbi
, vui
);
2263 // CHECK: @llvm.ppc.altivec.vminuw
2264 // CHECK-LE: @llvm.ppc.altivec.vminuw
2266 res_vui
= vec_vminuw(vui
, vbi
);
2267 // CHECK: @llvm.ppc.altivec.vminuw
2268 // CHECK-LE: @llvm.ppc.altivec.vminuw
2270 res_vf
= vec_vminfp(vf
, vf
);
2271 // CHECK: @llvm.ppc.altivec.vminfp
2272 // CHECK-LE: @llvm.ppc.altivec.vminfp
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>
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>
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>
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>
2300 res_vs
= vec_mradds(vs
, vs
, vs
);
2301 // CHECK: @llvm.ppc.altivec.vmhraddshs
2302 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs
2304 res_vs
= vec_vmhraddshs(vs
, vs
, vs
);
2305 // CHECK: @llvm.ppc.altivec.vmhraddshs
2306 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs
2309 res_vi
= vec_msum(vsc
, vuc
, vi
);
2310 // CHECK: @llvm.ppc.altivec.vmsummbm
2311 // CHECK-LE: @llvm.ppc.altivec.vmsummbm
2313 res_vui
= vec_msum(vuc
, vuc
, vui
);
2314 // CHECK: @llvm.ppc.altivec.vmsumubm
2315 // CHECK-LE: @llvm.ppc.altivec.vmsumubm
2317 res_vi
= vec_msum(vs
, vs
, vi
);
2318 // CHECK: @llvm.ppc.altivec.vmsumshm
2319 // CHECK-LE: @llvm.ppc.altivec.vmsumshm
2321 res_vui
= vec_msum(vus
, vus
, vui
);
2322 // CHECK: @llvm.ppc.altivec.vmsumuhm
2323 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm
2325 res_vi
= vec_vmsummbm(vsc
, vuc
, vi
);
2326 // CHECK: @llvm.ppc.altivec.vmsummbm
2327 // CHECK-LE: @llvm.ppc.altivec.vmsummbm
2329 res_vui
= vec_vmsumubm(vuc
, vuc
, vui
);
2330 // CHECK: @llvm.ppc.altivec.vmsumubm
2331 // CHECK-LE: @llvm.ppc.altivec.vmsumubm
2333 res_vi
= vec_vmsumshm(vs
, vs
, vi
);
2334 // CHECK: @llvm.ppc.altivec.vmsumshm
2335 // CHECK-LE: @llvm.ppc.altivec.vmsumshm
2337 res_vui
= vec_vmsumuhm(vus
, vus
, vui
);
2338 // CHECK: @llvm.ppc.altivec.vmsumuhm
2339 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm
2342 res_vi
= vec_msums(vs
, vs
, vi
);
2343 // CHECK: @llvm.ppc.altivec.vmsumshs
2344 // CHECK-LE: @llvm.ppc.altivec.vmsumshs
2346 res_vui
= vec_msums(vus
, vus
, vui
);
2347 // CHECK: @llvm.ppc.altivec.vmsumuhs
2348 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs
2350 res_vi
= vec_vmsumshs(vs
, vs
, vi
);
2351 // CHECK: @llvm.ppc.altivec.vmsumshs
2352 // CHECK-LE: @llvm.ppc.altivec.vmsumshs
2354 res_vui
= vec_vmsumuhs(vus
, vus
, vui
);
2355 // CHECK: @llvm.ppc.altivec.vmsumuhs
2356 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs
2360 // CHECK: @llvm.ppc.altivec.mtvscr
2361 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2364 // CHECK: @llvm.ppc.altivec.mtvscr
2365 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2368 // CHECK: @llvm.ppc.altivec.mtvscr
2369 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2372 // CHECK: @llvm.ppc.altivec.mtvscr
2373 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2376 // CHECK: @llvm.ppc.altivec.mtvscr
2377 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2380 // CHECK: @llvm.ppc.altivec.mtvscr
2381 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2384 // CHECK: @llvm.ppc.altivec.mtvscr
2385 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2388 // CHECK: @llvm.ppc.altivec.mtvscr
2389 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2392 // CHECK: @llvm.ppc.altivec.mtvscr
2393 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2396 // CHECK: @llvm.ppc.altivec.mtvscr
2397 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2400 res_vsc
= vec_mul(vsc
, vsc
);
2401 // CHECK: mul <16 x i8>
2402 // CHECK-LE: mul <16 x i8>
2404 res_vuc
= vec_mul(vuc
, vuc
);
2405 // CHECK: mul <16 x i8>
2406 // CHECK-LE: mul <16 x i8>
2408 res_vs
= vec_mul(vs
, vs
);
2409 // CHECK: mul <8 x i16>
2410 // CHECK-LE: mul <8 x i16>
2412 res_vus
= vec_mul(vus
, vus
);
2413 // CHECK: mul <8 x i16>
2414 // CHECK-LE: mul <8 x i16>
2416 res_vi
= vec_mul(vi
, vi
);
2417 // CHECK: mul <4 x i32>
2418 // CHECK-LE: mul <4 x i32>
2420 res_vui
= vec_mul(vui
, vui
);
2421 // CHECK: mul <4 x i32>
2422 // CHECK-LE: mul <4 x i32>
2425 res_vs
= vec_mule(vsc
, vsc
);
2426 // CHECK: @llvm.ppc.altivec.vmulesb
2427 // CHECK-LE: @llvm.ppc.altivec.vmulosb
2429 res_vus
= vec_mule(vuc
, vuc
);
2430 // CHECK: @llvm.ppc.altivec.vmuleub
2431 // CHECK-LE: @llvm.ppc.altivec.vmuloub
2433 res_vi
= vec_mule(vs
, vs
);
2434 // CHECK: @llvm.ppc.altivec.vmulesh
2435 // CHECK-LE: @llvm.ppc.altivec.vmulosh
2437 res_vui
= vec_mule(vus
, vus
);
2438 // CHECK: @llvm.ppc.altivec.vmuleuh
2439 // CHECK-LE: @llvm.ppc.altivec.vmulouh
2441 res_vs
= vec_vmulesb(vsc
, vsc
);
2442 // CHECK: @llvm.ppc.altivec.vmulesb
2443 // CHECK-LE: @llvm.ppc.altivec.vmulosb
2445 res_vus
= vec_vmuleub(vuc
, vuc
);
2446 // CHECK: @llvm.ppc.altivec.vmuleub
2447 // CHECK-LE: @llvm.ppc.altivec.vmuloub
2449 res_vi
= vec_vmulesh(vs
, vs
);
2450 // CHECK: @llvm.ppc.altivec.vmulesh
2451 // CHECK-LE: @llvm.ppc.altivec.vmulosh
2453 res_vui
= vec_vmuleuh(vus
, vus
);
2454 // CHECK: @llvm.ppc.altivec.vmuleuh
2455 // CHECK-LE: @llvm.ppc.altivec.vmulouh
2458 res_vs
= vec_mulo(vsc
, vsc
);
2459 // CHECK: @llvm.ppc.altivec.vmulosb
2460 // CHECK-LE: @llvm.ppc.altivec.vmulesb
2462 res_vus
= vec_mulo(vuc
, vuc
);
2463 // CHECK: @llvm.ppc.altivec.vmuloub
2464 // CHECK-LE: @llvm.ppc.altivec.vmuleub
2466 res_vi
= vec_mulo(vs
, vs
);
2467 // CHECK: @llvm.ppc.altivec.vmulosh
2468 // CHECK-LE: @llvm.ppc.altivec.vmulesh
2470 res_vui
= vec_mulo(vus
, vus
);
2471 // CHECK: @llvm.ppc.altivec.vmulouh
2472 // CHECK-LE: @llvm.ppc.altivec.vmuleuh
2474 res_vs
= vec_vmulosb(vsc
, vsc
);
2475 // CHECK: @llvm.ppc.altivec.vmulosb
2476 // CHECK-LE: @llvm.ppc.altivec.vmulesb
2478 res_vus
= vec_vmuloub(vuc
, vuc
);
2479 // CHECK: @llvm.ppc.altivec.vmuloub
2480 // CHECK-LE: @llvm.ppc.altivec.vmuleub
2482 res_vi
= vec_vmulosh(vs
, vs
);
2483 // CHECK: @llvm.ppc.altivec.vmulosh
2484 // CHECK-LE: @llvm.ppc.altivec.vmulesh
2486 res_vui
= vec_vmulouh(vus
, vus
);
2487 // CHECK: @llvm.ppc.altivec.vmulouh
2488 // CHECK-LE: @llvm.ppc.altivec.vmuleuh
2491 res_vf
= vec_nmsub(vf
, vf
, vf
);
2492 // CHECK: @llvm.ppc.altivec.vnmsubfp
2493 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp
2495 res_vf
= vec_vnmsubfp(vf
, vf
, vf
);
2496 // CHECK: @llvm.ppc.altivec.vnmsubfp
2497 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
2621 res_vsc
= vec_or(vsc
, vsc
);
2622 // CHECK: or <16 x i8>
2623 // CHECK-LE: or <16 x i8>
2625 res_vsc
= vec_or(vbc
, vsc
);
2626 // CHECK: or <16 x i8>
2627 // CHECK-LE: or <16 x i8>
2629 res_vsc
= vec_or(vsc
, vbc
);
2630 // CHECK: or <16 x i8>
2631 // CHECK-LE: or <16 x i8>
2633 res_vuc
= vec_or(vuc
, vuc
);
2634 // CHECK: or <16 x i8>
2635 // CHECK-LE: or <16 x i8>
2637 res_vuc
= vec_or(vbc
, vuc
);
2638 // CHECK: or <16 x i8>
2639 // CHECK-LE: or <16 x i8>
2641 res_vuc
= vec_or(vuc
, vbc
);
2642 // CHECK: or <16 x i8>
2643 // CHECK-LE: or <16 x i8>
2645 res_vbc
= vec_or(vbc
, vbc
);
2646 // CHECK: or <16 x i8>
2647 // CHECK-LE: or <16 x i8>
2649 res_vs
= vec_or(vs
, vs
);
2650 // CHECK: or <8 x i16>
2651 // CHECK-LE: or <8 x i16>
2653 res_vs
= vec_or(vbs
, vs
);
2654 // CHECK: or <8 x i16>
2655 // CHECK-LE: or <8 x i16>
2657 res_vs
= vec_or(vs
, vbs
);
2658 // CHECK: or <8 x i16>
2659 // CHECK-LE: or <8 x i16>
2661 res_vus
= vec_or(vus
, vus
);
2662 // CHECK: or <8 x i16>
2663 // CHECK-LE: or <8 x i16>
2665 res_vus
= vec_or(vbs
, vus
);
2666 // CHECK: or <8 x i16>
2667 // CHECK-LE: or <8 x i16>
2669 res_vus
= vec_or(vus
, vbs
);
2670 // CHECK: or <8 x i16>
2671 // CHECK-LE: or <8 x i16>
2673 res_vbs
= vec_or(vbs
, vbs
);
2674 // CHECK: or <8 x i16>
2675 // CHECK-LE: or <8 x i16>
2677 res_vi
= vec_or(vi
, vi
);
2678 // CHECK: or <4 x i32>
2679 // CHECK-LE: or <4 x i32>
2681 res_vi
= vec_or(vbi
, vi
);
2682 // CHECK: or <4 x i32>
2683 // CHECK-LE: or <4 x i32>
2685 res_vi
= vec_or(vi
, vbi
);
2686 // CHECK: or <4 x i32>
2687 // CHECK-LE: or <4 x i32>
2689 res_vui
= vec_or(vui
, vui
);
2690 // CHECK: or <4 x i32>
2691 // CHECK-LE: or <4 x i32>
2693 res_vui
= vec_or(vbi
, vui
);
2694 // CHECK: or <4 x i32>
2695 // CHECK-LE: or <4 x i32>
2697 res_vui
= vec_or(vui
, vbi
);
2698 // CHECK: or <4 x i32>
2699 // CHECK-LE: or <4 x i32>
2701 res_vbi
= vec_or(vbi
, vbi
);
2702 // CHECK: or <4 x i32>
2703 // CHECK-LE: or <4 x i32>
2705 res_vf
= vec_or(vf
, vf
);
2706 // CHECK: or <4 x i32>
2707 // CHECK-LE: or <4 x i32>
2709 res_vf
= vec_or(vbi
, vf
);
2710 // CHECK: or <4 x i32>
2711 // CHECK-LE: or <4 x i32>
2713 res_vf
= vec_or(vf
, vbi
);
2714 // CHECK: or <4 x i32>
2715 // CHECK-LE: or <4 x i32>
2717 res_vsc
= vec_vor(vsc
, vsc
);
2718 // CHECK: or <16 x i8>
2719 // CHECK-LE: or <16 x i8>
2721 res_vsc
= vec_vor(vbc
, vsc
);
2722 // CHECK: or <16 x i8>
2723 // CHECK-LE: or <16 x i8>
2725 res_vsc
= vec_vor(vsc
, vbc
);
2726 // CHECK: or <16 x i8>
2727 // CHECK-LE: or <16 x i8>
2729 res_vuc
= vec_vor(vuc
, vuc
);
2730 // CHECK: or <16 x i8>
2731 // CHECK-LE: or <16 x i8>
2733 res_vuc
= vec_vor(vbc
, vuc
);
2734 // CHECK: or <16 x i8>
2735 // CHECK-LE: or <16 x i8>
2737 res_vuc
= vec_vor(vuc
, vbc
);
2738 // CHECK: or <16 x i8>
2739 // CHECK-LE: or <16 x i8>
2741 res_vbc
= vec_vor(vbc
, vbc
);
2742 // CHECK: or <16 x i8>
2743 // CHECK-LE: or <16 x i8>
2745 res_vs
= vec_vor(vs
, vs
);
2746 // CHECK: or <8 x i16>
2747 // CHECK-LE: or <8 x i16>
2749 res_vs
= vec_vor(vbs
, vs
);
2750 // CHECK: or <8 x i16>
2751 // CHECK-LE: or <8 x i16>
2753 res_vs
= vec_vor(vs
, vbs
);
2754 // CHECK: or <8 x i16>
2755 // CHECK-LE: or <8 x i16>
2757 res_vus
= vec_vor(vus
, vus
);
2758 // CHECK: or <8 x i16>
2759 // CHECK-LE: or <8 x i16>
2761 res_vus
= vec_vor(vbs
, vus
);
2762 // CHECK: or <8 x i16>
2763 // CHECK-LE: or <8 x i16>
2765 res_vus
= vec_vor(vus
, vbs
);
2766 // CHECK: or <8 x i16>
2767 // CHECK-LE: or <8 x i16>
2769 res_vbs
= vec_vor(vbs
, vbs
);
2770 // CHECK: or <8 x i16>
2771 // CHECK-LE: or <8 x i16>
2773 res_vi
= vec_vor(vi
, vi
);
2774 // CHECK: or <4 x i32>
2775 // CHECK-LE: or <4 x i32>
2777 res_vi
= vec_vor(vbi
, vi
);
2778 // CHECK: or <4 x i32>
2779 // CHECK-LE: or <4 x i32>
2781 res_vi
= vec_vor(vi
, vbi
);
2782 // CHECK: or <4 x i32>
2783 // CHECK-LE: or <4 x i32>
2785 res_vui
= vec_vor(vui
, vui
);
2786 // CHECK: or <4 x i32>
2787 // CHECK-LE: or <4 x i32>
2789 res_vui
= vec_vor(vbi
, vui
);
2790 // CHECK: or <4 x i32>
2791 // CHECK-LE: or <4 x i32>
2793 res_vui
= vec_vor(vui
, vbi
);
2794 // CHECK: or <4 x i32>
2795 // CHECK-LE: or <4 x i32>
2797 res_vbi
= vec_vor(vbi
, vbi
);
2798 // CHECK: or <4 x i32>
2799 // CHECK-LE: or <4 x i32>
2801 res_vf
= vec_vor(vf
, vf
);
2802 // CHECK: or <4 x i32>
2803 // CHECK-LE: or <4 x i32>
2805 res_vf
= vec_vor(vbi
, vf
);
2806 // CHECK: or <4 x i32>
2807 // CHECK-LE: or <4 x i32>
2809 res_vf
= vec_vor(vf
, vbi
);
2810 // CHECK: or <4 x i32>
2811 // CHECK-LE: or <4 x i32>
2814 res_vsc
= vec_pack(vs
, vs
);
2815 // CHECK: @llvm.ppc.altivec.vperm
2816 // CHECK-LE: @llvm.ppc.altivec.vperm
2818 res_vuc
= vec_pack(vus
, vus
);
2819 // CHECK: @llvm.ppc.altivec.vperm
2820 // CHECK-LE: @llvm.ppc.altivec.vperm
2822 res_vbc
= vec_pack(vbs
, vbs
);
2823 // CHECK: @llvm.ppc.altivec.vperm
2824 // CHECK-LE: @llvm.ppc.altivec.vperm
2826 res_vs
= vec_pack(vi
, vi
);
2827 // CHECK: @llvm.ppc.altivec.vperm
2828 // CHECK-LE: @llvm.ppc.altivec.vperm
2830 res_vus
= vec_pack(vui
, vui
);
2831 // CHECK: @llvm.ppc.altivec.vperm
2832 // CHECK-LE: @llvm.ppc.altivec.vperm
2834 res_vbs
= vec_pack(vbi
, vbi
);
2835 // CHECK: @llvm.ppc.altivec.vperm
2836 // CHECK-LE: @llvm.ppc.altivec.vperm
2838 res_vsc
= vec_vpkuhum(vs
, vs
);
2839 // CHECK: @llvm.ppc.altivec.vperm
2840 // CHECK-LE: @llvm.ppc.altivec.vperm
2842 res_vuc
= vec_vpkuhum(vus
, vus
);
2843 // CHECK: @llvm.ppc.altivec.vperm
2844 // CHECK-LE: @llvm.ppc.altivec.vperm
2846 res_vbc
= vec_vpkuhum(vbs
, vbs
);
2847 // CHECK: @llvm.ppc.altivec.vperm
2848 // CHECK-LE: @llvm.ppc.altivec.vperm
2850 res_vs
= vec_vpkuwum(vi
, vi
);
2851 // CHECK: @llvm.ppc.altivec.vperm
2852 // CHECK-LE: @llvm.ppc.altivec.vperm
2854 res_vus
= vec_vpkuwum(vui
, vui
);
2855 // CHECK: @llvm.ppc.altivec.vperm
2856 // CHECK-LE: @llvm.ppc.altivec.vperm
2858 res_vbs
= vec_vpkuwum(vbi
, vbi
);
2859 // CHECK: @llvm.ppc.altivec.vperm
2860 // CHECK-LE: @llvm.ppc.altivec.vperm
2863 res_vp
= vec_packpx(vui
, vui
);
2864 // CHECK: @llvm.ppc.altivec.vpkpx
2865 // CHECK-LE: @llvm.ppc.altivec.vpkpx
2867 res_vp
= vec_vpkpx(vui
, vui
);
2868 // CHECK: @llvm.ppc.altivec.vpkpx
2869 // CHECK-LE: @llvm.ppc.altivec.vpkpx
2872 res_vsc
= vec_packs(vs
, vs
);
2873 // CHECK: @llvm.ppc.altivec.vpkshss
2874 // CHECK-LE: @llvm.ppc.altivec.vpkshss
2876 res_vuc
= vec_packs(vus
, vus
);
2877 // CHECK: @llvm.ppc.altivec.vpkuhus
2878 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2880 res_vs
= vec_packs(vi
, vi
);
2881 // CHECK: @llvm.ppc.altivec.vpkswss
2882 // CHECK-LE: @llvm.ppc.altivec.vpkswss
2884 res_vus
= vec_packs(vui
, vui
);
2885 // CHECK: @llvm.ppc.altivec.vpkuwus
2886 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2888 res_vsc
= vec_vpkshss(vs
, vs
);
2889 // CHECK: @llvm.ppc.altivec.vpkshss
2890 // CHECK-LE: @llvm.ppc.altivec.vpkshss
2892 res_vuc
= vec_vpkuhus(vus
, vus
);
2893 // CHECK: @llvm.ppc.altivec.vpkuhus
2894 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2896 res_vs
= vec_vpkswss(vi
, vi
);
2897 // CHECK: @llvm.ppc.altivec.vpkswss
2898 // CHECK-LE: @llvm.ppc.altivec.vpkswss
2900 res_vus
= vec_vpkuwus(vui
, vui
);
2901 // CHECK: @llvm.ppc.altivec.vpkuwus
2902 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2905 res_vuc
= vec_packsu(vs
, vs
);
2906 // CHECK: @llvm.ppc.altivec.vpkshus
2907 // CHECK-LE: @llvm.ppc.altivec.vpkshus
2909 res_vuc
= vec_packsu(vus
, vus
);
2910 // CHECK: @llvm.ppc.altivec.vpkuhus
2911 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2913 res_vus
= vec_packsu(vi
, vi
);
2914 // CHECK: @llvm.ppc.altivec.vpkswus
2915 // CHECK-LE: @llvm.ppc.altivec.vpkswus
2917 res_vus
= vec_packsu(vui
, vui
);
2918 // CHECK: @llvm.ppc.altivec.vpkuwus
2919 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2921 res_vuc
= vec_vpkshus(vs
, vs
);
2922 // CHECK: @llvm.ppc.altivec.vpkshus
2923 // CHECK-LE: @llvm.ppc.altivec.vpkshus
2925 res_vuc
= vec_vpkshus(vus
, vus
);
2926 // CHECK: @llvm.ppc.altivec.vpkuhus
2927 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2929 res_vus
= vec_vpkswus(vi
, vi
);
2930 // CHECK: @llvm.ppc.altivec.vpkswus
2931 // CHECK-LE: @llvm.ppc.altivec.vpkswus
2933 res_vus
= vec_vpkswus(vui
, vui
);
2934 // CHECK: @llvm.ppc.altivec.vpkuwus
2935 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2938 res_vsc
= vec_perm(vsc
, vsc
, vuc
);
2939 // CHECK: @llvm.ppc.altivec.vperm
2940 // CHECK-LE: @llvm.ppc.altivec.vperm
2942 res_vuc
= vec_perm(vuc
, vuc
, vuc
);
2943 // CHECK: @llvm.ppc.altivec.vperm
2944 // CHECK-LE: @llvm.ppc.altivec.vperm
2946 res_vbc
= vec_perm(vbc
, vbc
, vuc
);
2947 // CHECK: @llvm.ppc.altivec.vperm
2948 // CHECK-LE: @llvm.ppc.altivec.vperm
2950 res_vs
= vec_perm(vs
, vs
, vuc
);
2951 // CHECK: @llvm.ppc.altivec.vperm
2952 // CHECK-LE: @llvm.ppc.altivec.vperm
2954 res_vus
= vec_perm(vus
, vus
, vuc
);
2955 // CHECK: @llvm.ppc.altivec.vperm
2956 // CHECK-LE: @llvm.ppc.altivec.vperm
2958 res_vbs
= vec_perm(vbs
, vbs
, vuc
);
2959 // CHECK: @llvm.ppc.altivec.vperm
2960 // CHECK-LE: @llvm.ppc.altivec.vperm
2962 res_vp
= vec_perm(vp
, vp
, vuc
);
2963 // CHECK: @llvm.ppc.altivec.vperm
2964 // CHECK-LE: @llvm.ppc.altivec.vperm
2966 res_vi
= vec_perm(vi
, vi
, vuc
);
2967 // CHECK: @llvm.ppc.altivec.vperm
2968 // CHECK-LE: @llvm.ppc.altivec.vperm
2970 res_vui
= vec_perm(vui
, vui
, vuc
);
2971 // CHECK: @llvm.ppc.altivec.vperm
2972 // CHECK-LE: @llvm.ppc.altivec.vperm
2974 res_vbi
= vec_perm(vbi
, vbi
, vuc
);
2975 // CHECK: @llvm.ppc.altivec.vperm
2976 // CHECK-LE: @llvm.ppc.altivec.vperm
2978 res_vf
= vec_perm(vf
, vf
, vuc
);
2979 // CHECK: @llvm.ppc.altivec.vperm
2980 // CHECK-LE: @llvm.ppc.altivec.vperm
2982 res_vsc
= vec_vperm(vsc
, vsc
, vuc
);
2983 // CHECK: @llvm.ppc.altivec.vperm
2984 // CHECK-LE: @llvm.ppc.altivec.vperm
2986 res_vuc
= vec_vperm(vuc
, vuc
, vuc
);
2987 // CHECK: @llvm.ppc.altivec.vperm
2988 // CHECK-LE: @llvm.ppc.altivec.vperm
2990 res_vbc
= vec_vperm(vbc
, vbc
, vuc
);
2991 // CHECK: @llvm.ppc.altivec.vperm
2992 // CHECK-LE: @llvm.ppc.altivec.vperm
2994 res_vs
= vec_vperm(vs
, vs
, vuc
);
2995 // CHECK: @llvm.ppc.altivec.vperm
2996 // CHECK-LE: @llvm.ppc.altivec.vperm
2998 res_vus
= vec_vperm(vus
, vus
, vuc
);
2999 // CHECK: @llvm.ppc.altivec.vperm
3000 // CHECK-LE: @llvm.ppc.altivec.vperm
3002 res_vbs
= vec_vperm(vbs
, vbs
, vuc
);
3003 // CHECK: @llvm.ppc.altivec.vperm
3004 // CHECK-LE: @llvm.ppc.altivec.vperm
3006 res_vp
= vec_vperm(vp
, vp
, vuc
);
3007 // CHECK: @llvm.ppc.altivec.vperm
3008 // CHECK-LE: @llvm.ppc.altivec.vperm
3010 res_vi
= vec_vperm(vi
, vi
, vuc
);
3011 // CHECK: @llvm.ppc.altivec.vperm
3012 // CHECK-LE: @llvm.ppc.altivec.vperm
3014 res_vui
= vec_vperm(vui
, vui
, vuc
);
3015 // CHECK: @llvm.ppc.altivec.vperm
3016 // CHECK-LE: @llvm.ppc.altivec.vperm
3018 res_vbi
= vec_vperm(vbi
, vbi
, vuc
);
3019 // CHECK: @llvm.ppc.altivec.vperm
3020 // CHECK-LE: @llvm.ppc.altivec.vperm
3022 res_vf
= vec_vperm(vf
, vf
, vuc
);
3023 // CHECK: @llvm.ppc.altivec.vperm
3024 // CHECK-LE: @llvm.ppc.altivec.vperm
3027 res_vf
= vec_re(vf
);
3028 // CHECK: @llvm.ppc.altivec.vrefp
3029 // CHECK-LE: @llvm.ppc.altivec.vrefp
3031 res_vf
= vec_vrefp(vf
);
3032 // CHECK: @llvm.ppc.altivec.vrefp
3033 // CHECK-LE: @llvm.ppc.altivec.vrefp
3036 res_vsc
= vec_rl(vsc
, vuc
);
3037 // CHECK: @llvm.ppc.altivec.vrlb
3038 // CHECK-LE: @llvm.ppc.altivec.vrlb
3040 res_vuc
= vec_rl(vuc
, vuc
);
3041 // CHECK: @llvm.ppc.altivec.vrlb
3042 // CHECK-LE: @llvm.ppc.altivec.vrlb
3044 res_vs
= vec_rl(vs
, vus
);
3045 // CHECK: @llvm.ppc.altivec.vrlh
3046 // CHECK-LE: @llvm.ppc.altivec.vrlh
3048 res_vus
= vec_rl(vus
, vus
);
3049 // CHECK: @llvm.ppc.altivec.vrlh
3050 // CHECK-LE: @llvm.ppc.altivec.vrlh
3052 res_vi
= vec_rl(vi
, vui
);
3053 // CHECK: @llvm.ppc.altivec.vrlw
3054 // CHECK-LE: @llvm.ppc.altivec.vrlw
3056 res_vui
= vec_rl(vui
, vui
);
3057 // CHECK: @llvm.ppc.altivec.vrlw
3058 // CHECK-LE: @llvm.ppc.altivec.vrlw
3060 res_vsc
= vec_vrlb(vsc
, vuc
);
3061 // CHECK: @llvm.ppc.altivec.vrlb
3062 // CHECK-LE: @llvm.ppc.altivec.vrlb
3064 res_vuc
= vec_vrlb(vuc
, vuc
);
3065 // CHECK: @llvm.ppc.altivec.vrlb
3066 // CHECK-LE: @llvm.ppc.altivec.vrlb
3068 res_vs
= vec_vrlh(vs
, vus
);
3069 // CHECK: @llvm.ppc.altivec.vrlh
3070 // CHECK-LE: @llvm.ppc.altivec.vrlh
3072 res_vus
= vec_vrlh(vus
, vus
);
3073 // CHECK: @llvm.ppc.altivec.vrlh
3074 // CHECK-LE: @llvm.ppc.altivec.vrlh
3076 res_vi
= vec_vrlw(vi
, vui
);
3077 // CHECK: @llvm.ppc.altivec.vrlw
3078 // CHECK-LE: @llvm.ppc.altivec.vrlw
3080 res_vui
= vec_vrlw(vui
, vui
);
3081 // CHECK: @llvm.ppc.altivec.vrlw
3082 // CHECK-LE: @llvm.ppc.altivec.vrlw
3085 res_vf
= vec_round(vf
);
3086 // CHECK: @llvm.ppc.altivec.vrfin
3087 // CHECK-LE: @llvm.ppc.altivec.vrfin
3089 res_vf
= vec_vrfin(vf
);
3090 // CHECK: @llvm.ppc.altivec.vrfin
3091 // CHECK-LE: @llvm.ppc.altivec.vrfin
3094 res_vf
= vec_rsqrte(vf
);
3095 // CHECK: @llvm.ppc.altivec.vrsqrtefp
3096 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp
3098 res_vf
= vec_vrsqrtefp(vf
);
3099 // CHECK: @llvm.ppc.altivec.vrsqrtefp
3100 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
3504 res_vsc
= vec_sl(vsc
, vuc
);
3505 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, 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%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
3508 // CHECK-LE: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]
3510 res_vuc
= vec_sl(vuc
, vuc
);
3511 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, 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%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
3514 // CHECK-LE: shl <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]
3516 res_vs
= vec_sl(vs
, vus
);
3517 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, 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%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
3520 // CHECK-LE: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]
3522 res_vus
= vec_sl(vus
, vus
);
3523 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, 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%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
3526 // CHECK-LE: shl <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]
3528 res_vi
= vec_sl(vi
, vui
);
3529 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, <i32 32, i32 32, i32 32, 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%.]+}}, <i32 32, i32 32, i32 32, i32 32>
3532 // CHECK-LE: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]
3534 res_vui
= vec_sl(vui
, vui
);
3535 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, <i32 32, i32 32, i32 32, 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%.]+}}, <i32 32, i32 32, i32 32, i32 32>
3538 // CHECK-LE: shl <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]
3540 res_vsc
= vec_vslb(vsc
, vuc
);
3541 // CHECK: shl <16 x i8>
3542 // CHECK-LE: shl <16 x i8>
3544 res_vuc
= vec_vslb(vuc
, vuc
);
3545 // CHECK: shl <16 x i8>
3546 // CHECK-LE: shl <16 x i8>
3548 res_vs
= vec_vslh(vs
, vus
);
3549 // CHECK: shl <8 x i16>
3550 // CHECK-LE: shl <8 x i16>
3552 res_vus
= vec_vslh(vus
, vus
);
3553 // CHECK: shl <8 x i16>
3554 // CHECK-LE: shl <8 x i16>
3556 res_vi
= vec_vslw(vi
, vui
);
3557 // CHECK: shl <4 x i32>
3558 // CHECK-LE: shl <4 x i32>
3560 res_vui
= vec_vslw(vui
, vui
);
3561 // CHECK: shl <4 x i32>
3562 // CHECK-LE: shl <4 x i32>
3565 res_vsc
= vec_sld(vsc
, vsc
, 0);
3566 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3567 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3568 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3569 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3570 // CHECK: @llvm.ppc.altivec.vperm
3571 // CHECK-LE: sub nsw i32 16
3572 // CHECK-LE: sub nsw i32 17
3573 // CHECK-LE: sub nsw i32 18
3574 // CHECK-LE: sub nsw i32 31
3575 // CHECK-LE: @llvm.ppc.altivec.vperm
3577 res_vuc
= vec_sld(vuc
, vuc
, 0);
3578 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3579 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3580 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3581 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3582 // CHECK: @llvm.ppc.altivec.vperm
3583 // CHECK-LE: sub nsw i32 16
3584 // CHECK-LE: sub nsw i32 17
3585 // CHECK-LE: sub nsw i32 18
3586 // CHECK-LE: sub nsw i32 31
3587 // CHECK-LE: @llvm.ppc.altivec.vperm
3589 res_vs
= vec_sld(vs
, vs
, 0);
3590 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3591 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3592 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3593 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3594 // CHECK: @llvm.ppc.altivec.vperm
3595 // CHECK-LE: sub nsw i32 16
3596 // CHECK-LE: sub nsw i32 17
3597 // CHECK-LE: sub nsw i32 18
3598 // CHECK-LE: sub nsw i32 31
3599 // CHECK-LE: @llvm.ppc.altivec.vperm
3601 res_vus
= vec_sld(vus
, vus
, 0);
3602 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3603 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3604 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3605 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3606 // CHECK: @llvm.ppc.altivec.vperm
3607 // CHECK-LE: sub nsw i32 16
3608 // CHECK-LE: sub nsw i32 17
3609 // CHECK-LE: sub nsw i32 18
3610 // CHECK-LE: sub nsw i32 31
3611 // CHECK-LE: @llvm.ppc.altivec.vperm
3613 res_vbs
= vec_sld(vbs
, vbs
, 0);
3614 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3615 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3616 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3617 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3618 // CHECK: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
3619 // CHECK: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
3620 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8>
3621 // CHECK-LE: sub nsw i32 16
3622 // CHECK-LE: sub nsw i32 17
3623 // CHECK-LE: sub nsw i32 18
3624 // CHECK-LE: sub nsw i32 31
3625 // CHECK-LE: xor <16 x i8>
3626 // CHECK-LE: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
3627 // CHECK-LE: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
3628 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8>
3630 res_vp
= vec_sld(vp
, vp
, 0);
3631 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3632 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3633 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3634 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3635 // CHECK: @llvm.ppc.altivec.vperm
3636 // CHECK-LE: sub nsw i32 16
3637 // CHECK-LE: sub nsw i32 17
3638 // CHECK-LE: sub nsw i32 18
3639 // CHECK-LE: sub nsw i32 31
3640 // CHECK-LE: @llvm.ppc.altivec.vperm
3642 res_vi
= vec_sld(vi
, vi
, 0);
3643 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3644 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3645 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3646 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3647 // CHECK: @llvm.ppc.altivec.vperm
3648 // CHECK-LE: sub nsw i32 16
3649 // CHECK-LE: sub nsw i32 17
3650 // CHECK-LE: sub nsw i32 18
3651 // CHECK-LE: sub nsw i32 31
3652 // CHECK-LE: @llvm.ppc.altivec.vperm
3654 res_vui
= vec_sld(vui
, vui
, 0);
3655 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3656 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3657 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3658 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3659 // CHECK: @llvm.ppc.altivec.vperm
3660 // CHECK-LE: sub nsw i32 16
3661 // CHECK-LE: sub nsw i32 17
3662 // CHECK-LE: sub nsw i32 18
3663 // CHECK-LE: sub nsw i32 31
3664 // CHECK-LE: @llvm.ppc.altivec.vperm
3666 res_vbi
= vec_sld(vbi
, vbi
, 0);
3667 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3668 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3669 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3670 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3671 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8>
3672 // CHECK-LE: sub nsw i32 16
3673 // CHECK-LE: sub nsw i32 17
3674 // CHECK-LE: sub nsw i32 18
3675 // CHECK-LE: sub nsw i32 31
3676 // CHECK-LE: xor <16 x i8>
3677 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8>
3679 res_vf
= vec_sld(vf
, vf
, 0);
3680 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3681 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3682 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3683 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3684 // CHECK: @llvm.ppc.altivec.vperm
3685 // CHECK-LE: sub nsw i32 16
3686 // CHECK-LE: sub nsw i32 17
3687 // CHECK-LE: sub nsw i32 18
3688 // CHECK-LE: sub nsw i32 31
3689 // CHECK-LE: @llvm.ppc.altivec.vperm
3692 res_vsc
= vec_sldw(vsc
, vsc
, 0);
3693 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3694 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3695 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3696 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3697 // CHECK: @llvm.ppc.altivec.vperm
3698 // CHECK-LE: sub nsw i32 16
3699 // CHECK-LE: sub nsw i32 17
3700 // CHECK-LE: sub nsw i32 18
3701 // CHECK-LE: sub nsw i32 31
3702 // CHECK-LE: @llvm.ppc.altivec.vperm
3704 res_vuc
= vec_sldw(vuc
, vuc
, 0);
3705 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3706 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3707 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3708 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3709 // CHECK: @llvm.ppc.altivec.vperm
3710 // CHECK-LE: sub nsw i32 16
3711 // CHECK-LE: sub nsw i32 17
3712 // CHECK-LE: sub nsw i32 18
3713 // CHECK-LE: sub nsw i32 31
3714 // CHECK-LE: @llvm.ppc.altivec.vperm
3716 res_vi
= vec_sldw(vi
, vi
, 0);
3717 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3718 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3719 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3720 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3721 // CHECK: @llvm.ppc.altivec.vperm
3722 // CHECK-LE: sub nsw i32 16
3723 // CHECK-LE: sub nsw i32 17
3724 // CHECK-LE: sub nsw i32 18
3725 // CHECK-LE: sub nsw i32 31
3726 // CHECK-LE: @llvm.ppc.altivec.vperm
3728 res_vui
= vec_sldw(vui
, vui
, 0);
3729 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3730 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3731 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3732 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3733 // CHECK: @llvm.ppc.altivec.vperm
3734 // CHECK-LE: sub nsw i32 16
3735 // CHECK-LE: sub nsw i32 17
3736 // CHECK-LE: sub nsw i32 18
3737 // CHECK-LE: sub nsw i32 31
3738 // CHECK-LE: @llvm.ppc.altivec.vperm
3740 res_vs
= vec_sldw(vs
, vs
, 0);
3741 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3742 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3743 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3744 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3745 // CHECK: @llvm.ppc.altivec.vperm
3746 // CHECK-LE: sub nsw i32 16
3747 // CHECK-LE: sub nsw i32 17
3748 // CHECK-LE: sub nsw i32 18
3749 // CHECK-LE: sub nsw i32 31
3750 // CHECK-LE: @llvm.ppc.altivec.vperm
3752 res_vus
= vec_sldw(vus
, vus
, 0);
3753 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3754 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3755 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3756 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3757 // CHECK: @llvm.ppc.altivec.vperm
3758 // CHECK-LE: sub nsw i32 16
3759 // CHECK-LE: sub nsw i32 17
3760 // CHECK-LE: sub nsw i32 18
3761 // CHECK-LE: sub nsw i32 31
3762 // CHECK-LE: @llvm.ppc.altivec.vperm
3764 res_vf
= vec_sldw(vf
, vf
, 0);
3765 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3766 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3767 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3768 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3769 // CHECK: @llvm.ppc.altivec.vperm
3770 // CHECK-LE: sub nsw i32 16
3771 // CHECK-LE: sub nsw i32 17
3772 // CHECK-LE: sub nsw i32 18
3773 // CHECK-LE: sub nsw i32 31
3774 // CHECK-LE: @llvm.ppc.altivec.vperm
3776 res_vsc
= vec_vsldoi(vsc
, vsc
, 0);
3777 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3778 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3779 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3780 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3781 // CHECK: @llvm.ppc.altivec.vperm
3782 // CHECK-LE: sub nsw i32 16
3783 // CHECK-LE: sub nsw i32 17
3784 // CHECK-LE: sub nsw i32 18
3785 // CHECK-LE: sub nsw i32 31
3786 // CHECK-LE: @llvm.ppc.altivec.vperm
3788 res_vuc
= vec_vsldoi(vuc
, vuc
, 0);
3789 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3790 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3791 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3792 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3793 // CHECK: @llvm.ppc.altivec.vperm
3794 // CHECK-LE: sub nsw i32 16
3795 // CHECK-LE: sub nsw i32 17
3796 // CHECK-LE: sub nsw i32 18
3797 // CHECK-LE: sub nsw i32 31
3798 // CHECK-LE: @llvm.ppc.altivec.vperm
3800 res_vs
= vec_vsldoi(vs
, vs
, 0);
3801 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3802 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3803 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3804 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3805 // CHECK: @llvm.ppc.altivec.vperm
3806 // CHECK-LE: sub nsw i32 16
3807 // CHECK-LE: sub nsw i32 17
3808 // CHECK-LE: sub nsw i32 18
3809 // CHECK-LE: sub nsw i32 31
3810 // CHECK-LE: @llvm.ppc.altivec.vperm
3812 res_vus
= vec_vsldoi(vus
, vus
, 0);
3813 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3814 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3815 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3816 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3817 // CHECK: @llvm.ppc.altivec.vperm
3818 // CHECK-LE: sub nsw i32 16
3819 // CHECK-LE: sub nsw i32 17
3820 // CHECK-LE: sub nsw i32 18
3821 // CHECK-LE: sub nsw i32 31
3822 // CHECK-LE: @llvm.ppc.altivec.vperm
3824 res_vp
= vec_vsldoi(vp
, vp
, 0);
3825 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3826 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3827 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3828 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3829 // CHECK: @llvm.ppc.altivec.vperm
3830 // CHECK-LE: sub nsw i32 16
3831 // CHECK-LE: sub nsw i32 17
3832 // CHECK-LE: sub nsw i32 18
3833 // CHECK-LE: sub nsw i32 31
3834 // CHECK-LE: @llvm.ppc.altivec.vperm
3836 res_vi
= vec_vsldoi(vi
, vi
, 0);
3837 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3838 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3839 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3840 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3841 // CHECK: @llvm.ppc.altivec.vperm
3842 // CHECK-LE: sub nsw i32 16
3843 // CHECK-LE: sub nsw i32 17
3844 // CHECK-LE: sub nsw i32 18
3845 // CHECK-LE: sub nsw i32 31
3846 // CHECK-LE: @llvm.ppc.altivec.vperm
3848 res_vui
= vec_vsldoi(vui
, vui
, 0);
3849 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3850 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3851 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3852 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3853 // CHECK: @llvm.ppc.altivec.vperm
3854 // CHECK-LE: sub nsw i32 16
3855 // CHECK-LE: sub nsw i32 17
3856 // CHECK-LE: sub nsw i32 18
3857 // CHECK-LE: sub nsw i32 31
3858 // CHECK-LE: @llvm.ppc.altivec.vperm
3860 res_vf
= vec_vsldoi(vf
, vf
, 0);
3861 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
3862 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
3863 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
3864 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
3865 // CHECK: @llvm.ppc.altivec.vperm
3866 // CHECK-LE: sub nsw i32 16
3867 // CHECK-LE: sub nsw i32 17
3868 // CHECK-LE: sub nsw i32 18
3869 // CHECK-LE: sub nsw i32 31
3870 // CHECK-LE: @llvm.ppc.altivec.vperm
3873 res_vsc
= vec_sll(vsc
, vuc
);
3874 // CHECK: @llvm.ppc.altivec.vsl
3875 // CHECK-LE: @llvm.ppc.altivec.vsl
3877 res_vsc
= vec_sll(vsc
, vus
);
3878 // CHECK: @llvm.ppc.altivec.vsl
3879 // CHECK-LE: @llvm.ppc.altivec.vsl
3881 res_vsc
= vec_sll(vsc
, vui
);
3882 // CHECK: @llvm.ppc.altivec.vsl
3883 // CHECK-LE: @llvm.ppc.altivec.vsl
3885 res_vuc
= vec_sll(vuc
, vuc
);
3886 // CHECK: @llvm.ppc.altivec.vsl
3887 // CHECK-LE: @llvm.ppc.altivec.vsl
3889 res_vuc
= vec_sll(vuc
, vus
);
3890 // CHECK: @llvm.ppc.altivec.vsl
3891 // CHECK-LE: @llvm.ppc.altivec.vsl
3893 res_vuc
= vec_sll(vuc
, vui
);
3894 // CHECK: @llvm.ppc.altivec.vsl
3895 // CHECK-LE: @llvm.ppc.altivec.vsl
3897 res_vbc
= vec_sll(vbc
, vuc
);
3898 // CHECK: @llvm.ppc.altivec.vsl
3899 // CHECK-LE: @llvm.ppc.altivec.vsl
3901 res_vbc
= vec_sll(vbc
, vus
);
3902 // CHECK: @llvm.ppc.altivec.vsl
3903 // CHECK-LE: @llvm.ppc.altivec.vsl
3905 res_vbc
= vec_sll(vbc
, vui
);
3906 // CHECK: @llvm.ppc.altivec.vsl
3907 // CHECK-LE: @llvm.ppc.altivec.vsl
3909 res_vs
= vec_sll(vs
, vuc
);
3910 // CHECK: @llvm.ppc.altivec.vsl
3911 // CHECK-LE: @llvm.ppc.altivec.vsl
3913 res_vs
= vec_sll(vs
, vus
);
3914 // CHECK: @llvm.ppc.altivec.vsl
3915 // CHECK-LE: @llvm.ppc.altivec.vsl
3917 res_vs
= vec_sll(vs
, vui
);
3918 // CHECK: @llvm.ppc.altivec.vsl
3919 // CHECK-LE: @llvm.ppc.altivec.vsl
3921 res_vus
= vec_sll(vus
, vuc
);
3922 // CHECK: @llvm.ppc.altivec.vsl
3923 // CHECK-LE: @llvm.ppc.altivec.vsl
3925 res_vus
= vec_sll(vus
, vus
);
3926 // CHECK: @llvm.ppc.altivec.vsl
3927 // CHECK-LE: @llvm.ppc.altivec.vsl
3929 res_vus
= vec_sll(vus
, vui
);
3930 // CHECK: @llvm.ppc.altivec.vsl
3931 // CHECK-LE: @llvm.ppc.altivec.vsl
3933 res_vbs
= vec_sll(vbs
, vuc
);
3934 // CHECK: @llvm.ppc.altivec.vsl
3935 // CHECK-LE: @llvm.ppc.altivec.vsl
3937 res_vbs
= vec_sll(vbs
, vus
);
3938 // CHECK: @llvm.ppc.altivec.vsl
3939 // CHECK-LE: @llvm.ppc.altivec.vsl
3941 res_vbs
= vec_sll(vbs
, vui
);
3942 // CHECK: @llvm.ppc.altivec.vsl
3943 // CHECK-LE: @llvm.ppc.altivec.vsl
3945 res_vp
= vec_sll(vp
, vuc
);
3946 // CHECK: @llvm.ppc.altivec.vsl
3947 // CHECK-LE: @llvm.ppc.altivec.vsl
3949 res_vp
= vec_sll(vp
, vus
);
3950 // CHECK: @llvm.ppc.altivec.vsl
3951 // CHECK-LE: @llvm.ppc.altivec.vsl
3953 res_vp
= vec_sll(vp
, vui
);
3954 // CHECK: @llvm.ppc.altivec.vsl
3955 // CHECK-LE: @llvm.ppc.altivec.vsl
3957 res_vi
= vec_sll(vi
, vuc
);
3958 // CHECK: @llvm.ppc.altivec.vsl
3959 // CHECK-LE: @llvm.ppc.altivec.vsl
3961 res_vi
= vec_sll(vi
, vus
);
3962 // CHECK: @llvm.ppc.altivec.vsl
3963 // CHECK-LE: @llvm.ppc.altivec.vsl
3965 res_vi
= vec_sll(vi
, vui
);
3966 // CHECK: @llvm.ppc.altivec.vsl
3967 // CHECK-LE: @llvm.ppc.altivec.vsl
3969 res_vui
= vec_sll(vui
, vuc
);
3970 // CHECK: @llvm.ppc.altivec.vsl
3971 // CHECK-LE: @llvm.ppc.altivec.vsl
3973 res_vui
= vec_sll(vui
, vus
);
3974 // CHECK: @llvm.ppc.altivec.vsl
3975 // CHECK-LE: @llvm.ppc.altivec.vsl
3977 res_vui
= vec_sll(vui
, vui
);
3978 // CHECK: @llvm.ppc.altivec.vsl
3979 // CHECK-LE: @llvm.ppc.altivec.vsl
3981 res_vbi
= vec_sll(vbi
, vuc
);
3982 // CHECK: @llvm.ppc.altivec.vsl
3983 // CHECK-LE: @llvm.ppc.altivec.vsl
3985 res_vbi
= vec_sll(vbi
, vus
);
3986 // CHECK: @llvm.ppc.altivec.vsl
3987 // CHECK-LE: @llvm.ppc.altivec.vsl
3989 res_vbi
= vec_sll(vbi
, vui
);
3990 // CHECK: @llvm.ppc.altivec.vsl
3991 // CHECK-LE: @llvm.ppc.altivec.vsl
3993 res_vsc
= vec_vsl(vsc
, vuc
);
3994 // CHECK: @llvm.ppc.altivec.vsl
3995 // CHECK-LE: @llvm.ppc.altivec.vsl
3997 res_vsc
= vec_vsl(vsc
, vus
);
3998 // CHECK: @llvm.ppc.altivec.vsl
3999 // CHECK-LE: @llvm.ppc.altivec.vsl
4001 res_vsc
= vec_vsl(vsc
, vui
);
4002 // CHECK: @llvm.ppc.altivec.vsl
4003 // CHECK-LE: @llvm.ppc.altivec.vsl
4005 res_vuc
= vec_vsl(vuc
, vuc
);
4006 // CHECK: @llvm.ppc.altivec.vsl
4007 // CHECK-LE: @llvm.ppc.altivec.vsl
4009 res_vuc
= vec_vsl(vuc
, vus
);
4010 // CHECK: @llvm.ppc.altivec.vsl
4011 // CHECK-LE: @llvm.ppc.altivec.vsl
4013 res_vuc
= vec_vsl(vuc
, vui
);
4014 // CHECK: @llvm.ppc.altivec.vsl
4015 // CHECK-LE: @llvm.ppc.altivec.vsl
4017 res_vbc
= vec_vsl(vbc
, vuc
);
4018 // CHECK: @llvm.ppc.altivec.vsl
4019 // CHECK-LE: @llvm.ppc.altivec.vsl
4021 res_vbc
= vec_vsl(vbc
, vus
);
4022 // CHECK: @llvm.ppc.altivec.vsl
4023 // CHECK-LE: @llvm.ppc.altivec.vsl
4025 res_vbc
= vec_vsl(vbc
, vui
);
4026 // CHECK: @llvm.ppc.altivec.vsl
4027 // CHECK-LE: @llvm.ppc.altivec.vsl
4029 res_vs
= vec_vsl(vs
, vuc
);
4030 // CHECK: @llvm.ppc.altivec.vsl
4031 // CHECK-LE: @llvm.ppc.altivec.vsl
4033 res_vs
= vec_vsl(vs
, vus
);
4034 // CHECK: @llvm.ppc.altivec.vsl
4035 // CHECK-LE: @llvm.ppc.altivec.vsl
4037 res_vs
= vec_vsl(vs
, vui
);
4038 // CHECK: @llvm.ppc.altivec.vsl
4039 // CHECK-LE: @llvm.ppc.altivec.vsl
4041 res_vus
= vec_vsl(vus
, vuc
);
4042 // CHECK: @llvm.ppc.altivec.vsl
4043 // CHECK-LE: @llvm.ppc.altivec.vsl
4045 res_vus
= vec_vsl(vus
, vus
);
4046 // CHECK: @llvm.ppc.altivec.vsl
4047 // CHECK-LE: @llvm.ppc.altivec.vsl
4049 res_vus
= vec_vsl(vus
, vui
);
4050 // CHECK: @llvm.ppc.altivec.vsl
4051 // CHECK-LE: @llvm.ppc.altivec.vsl
4053 res_vbs
= vec_vsl(vbs
, vuc
);
4054 // CHECK: @llvm.ppc.altivec.vsl
4055 // CHECK-LE: @llvm.ppc.altivec.vsl
4057 res_vbs
= vec_vsl(vbs
, vus
);
4058 // CHECK: @llvm.ppc.altivec.vsl
4059 // CHECK-LE: @llvm.ppc.altivec.vsl
4061 res_vbs
= vec_vsl(vbs
, vui
);
4062 // CHECK: @llvm.ppc.altivec.vsl
4063 // CHECK-LE: @llvm.ppc.altivec.vsl
4065 res_vp
= vec_vsl(vp
, vuc
);
4066 // CHECK: @llvm.ppc.altivec.vsl
4067 // CHECK-LE: @llvm.ppc.altivec.vsl
4069 res_vp
= vec_vsl(vp
, vus
);
4070 // CHECK: @llvm.ppc.altivec.vsl
4071 // CHECK-LE: @llvm.ppc.altivec.vsl
4073 res_vp
= vec_vsl(vp
, vui
);
4074 // CHECK: @llvm.ppc.altivec.vsl
4075 // CHECK-LE: @llvm.ppc.altivec.vsl
4077 res_vi
= vec_vsl(vi
, vuc
);
4078 // CHECK: @llvm.ppc.altivec.vsl
4079 // CHECK-LE: @llvm.ppc.altivec.vsl
4081 res_vi
= vec_vsl(vi
, vus
);
4082 // CHECK: @llvm.ppc.altivec.vsl
4083 // CHECK-LE: @llvm.ppc.altivec.vsl
4085 res_vi
= vec_vsl(vi
, vui
);
4086 // CHECK: @llvm.ppc.altivec.vsl
4087 // CHECK-LE: @llvm.ppc.altivec.vsl
4089 res_vui
= vec_vsl(vui
, vuc
);
4090 // CHECK: @llvm.ppc.altivec.vsl
4091 // CHECK-LE: @llvm.ppc.altivec.vsl
4093 res_vui
= vec_vsl(vui
, vus
);
4094 // CHECK: @llvm.ppc.altivec.vsl
4095 // CHECK-LE: @llvm.ppc.altivec.vsl
4097 res_vui
= vec_vsl(vui
, vui
);
4098 // CHECK: @llvm.ppc.altivec.vsl
4099 // CHECK-LE: @llvm.ppc.altivec.vsl
4101 res_vbi
= vec_vsl(vbi
, vuc
);
4102 // CHECK: @llvm.ppc.altivec.vsl
4103 // CHECK-LE: @llvm.ppc.altivec.vsl
4105 res_vbi
= vec_vsl(vbi
, vus
);
4106 // CHECK: @llvm.ppc.altivec.vsl
4107 // CHECK-LE: @llvm.ppc.altivec.vsl
4109 res_vbi
= vec_vsl(vbi
, vui
);
4110 // CHECK: @llvm.ppc.altivec.vsl
4111 // CHECK-LE: @llvm.ppc.altivec.vsl
4114 res_vsc
= vec_slo(vsc
, vsc
);
4115 // CHECK: @llvm.ppc.altivec.vslo
4116 // CHECK-LE: @llvm.ppc.altivec.vslo
4118 res_vsc
= vec_slo(vsc
, vuc
);
4119 // CHECK: @llvm.ppc.altivec.vslo
4120 // CHECK-LE: @llvm.ppc.altivec.vslo
4122 res_vuc
= vec_slo(vuc
, vsc
);
4123 // CHECK: @llvm.ppc.altivec.vslo
4124 // CHECK-LE: @llvm.ppc.altivec.vslo
4126 res_vuc
= vec_slo(vuc
, vuc
);
4127 // CHECK: @llvm.ppc.altivec.vslo
4128 // CHECK-LE: @llvm.ppc.altivec.vslo
4130 res_vs
= vec_slo(vs
, vsc
);
4131 // CHECK: @llvm.ppc.altivec.vslo
4132 // CHECK-LE: @llvm.ppc.altivec.vslo
4134 res_vs
= vec_slo(vs
, vuc
);
4135 // CHECK: @llvm.ppc.altivec.vslo
4136 // CHECK-LE: @llvm.ppc.altivec.vslo
4138 res_vus
= vec_slo(vus
, vsc
);
4139 // CHECK: @llvm.ppc.altivec.vslo
4140 // CHECK-LE: @llvm.ppc.altivec.vslo
4142 res_vus
= vec_slo(vus
, vuc
);
4143 // CHECK: @llvm.ppc.altivec.vslo
4144 // CHECK-LE: @llvm.ppc.altivec.vslo
4146 res_vp
= vec_slo(vp
, vsc
);
4147 // CHECK: @llvm.ppc.altivec.vslo
4148 // CHECK-LE: @llvm.ppc.altivec.vslo
4150 res_vp
= vec_slo(vp
, vuc
);
4151 // CHECK: @llvm.ppc.altivec.vslo
4152 // CHECK-LE: @llvm.ppc.altivec.vslo
4154 res_vi
= vec_slo(vi
, vsc
);
4155 // CHECK: @llvm.ppc.altivec.vslo
4156 // CHECK-LE: @llvm.ppc.altivec.vslo
4158 res_vi
= vec_slo(vi
, vuc
);
4159 // CHECK: @llvm.ppc.altivec.vslo
4160 // CHECK-LE: @llvm.ppc.altivec.vslo
4162 res_vui
= vec_slo(vui
, vsc
);
4163 // CHECK: @llvm.ppc.altivec.vslo
4164 // CHECK-LE: @llvm.ppc.altivec.vslo
4166 res_vui
= vec_slo(vui
, vuc
);
4167 // CHECK: @llvm.ppc.altivec.vslo
4168 // CHECK-LE: @llvm.ppc.altivec.vslo
4170 res_vf
= vec_slo(vf
, vsc
);
4171 // CHECK: @llvm.ppc.altivec.vslo
4172 // CHECK-LE: @llvm.ppc.altivec.vslo
4174 res_vf
= vec_slo(vf
, vuc
);
4175 // CHECK: @llvm.ppc.altivec.vslo
4176 // CHECK-LE: @llvm.ppc.altivec.vslo
4178 res_vsc
= vec_vslo(vsc
, vsc
);
4179 // CHECK: @llvm.ppc.altivec.vslo
4180 // CHECK-LE: @llvm.ppc.altivec.vslo
4182 res_vsc
= vec_vslo(vsc
, vuc
);
4183 // CHECK: @llvm.ppc.altivec.vslo
4184 // CHECK-LE: @llvm.ppc.altivec.vslo
4186 res_vuc
= vec_vslo(vuc
, vsc
);
4187 // CHECK: @llvm.ppc.altivec.vslo
4188 // CHECK-LE: @llvm.ppc.altivec.vslo
4190 res_vuc
= vec_vslo(vuc
, vuc
);
4191 // CHECK: @llvm.ppc.altivec.vslo
4192 // CHECK-LE: @llvm.ppc.altivec.vslo
4194 res_vs
= vec_vslo(vs
, vsc
);
4195 // CHECK: @llvm.ppc.altivec.vslo
4196 // CHECK-LE: @llvm.ppc.altivec.vslo
4198 res_vs
= vec_vslo(vs
, vuc
);
4199 // CHECK: @llvm.ppc.altivec.vslo
4200 // CHECK-LE: @llvm.ppc.altivec.vslo
4202 res_vus
= vec_vslo(vus
, vsc
);
4203 // CHECK: @llvm.ppc.altivec.vslo
4204 // CHECK-LE: @llvm.ppc.altivec.vslo
4206 res_vus
= vec_vslo(vus
, vuc
);
4207 // CHECK: @llvm.ppc.altivec.vslo
4208 // CHECK-LE: @llvm.ppc.altivec.vslo
4210 res_vp
= vec_vslo(vp
, vsc
);
4211 // CHECK: @llvm.ppc.altivec.vslo
4212 // CHECK-LE: @llvm.ppc.altivec.vslo
4214 res_vp
= vec_vslo(vp
, vuc
);
4215 // CHECK: @llvm.ppc.altivec.vslo
4216 // CHECK-LE: @llvm.ppc.altivec.vslo
4218 res_vi
= vec_vslo(vi
, vsc
);
4219 // CHECK: @llvm.ppc.altivec.vslo
4220 // CHECK-LE: @llvm.ppc.altivec.vslo
4222 res_vi
= vec_vslo(vi
, vuc
);
4223 // CHECK: @llvm.ppc.altivec.vslo
4224 // CHECK-LE: @llvm.ppc.altivec.vslo
4226 res_vui
= vec_vslo(vui
, vsc
);
4227 // CHECK: @llvm.ppc.altivec.vslo
4228 // CHECK-LE: @llvm.ppc.altivec.vslo
4230 res_vui
= vec_vslo(vui
, vuc
);
4231 // CHECK: @llvm.ppc.altivec.vslo
4232 // CHECK-LE: @llvm.ppc.altivec.vslo
4234 res_vf
= vec_vslo(vf
, vsc
);
4235 // CHECK: @llvm.ppc.altivec.vslo
4236 // CHECK-LE: @llvm.ppc.altivec.vslo
4238 res_vf
= vec_vslo(vf
, vuc
);
4239 // CHECK: @llvm.ppc.altivec.vslo
4240 // CHECK-LE: @llvm.ppc.altivec.vslo
4243 res_vsc
= vec_splat(vsc
, 0);
4244 // CHECK: @llvm.ppc.altivec.vperm
4245 // CHECK-LE: @llvm.ppc.altivec.vperm
4247 res_vuc
= vec_splat(vuc
, 0);
4248 // CHECK: @llvm.ppc.altivec.vperm
4249 // CHECK-LE: @llvm.ppc.altivec.vperm
4251 res_vbc
= vec_splat(vbc
, 0);
4252 // CHECK: @llvm.ppc.altivec.vperm
4253 // CHECK-LE: @llvm.ppc.altivec.vperm
4255 res_vs
= vec_splat(vs
, 0);
4256 // CHECK: @llvm.ppc.altivec.vperm
4257 // CHECK-LE: @llvm.ppc.altivec.vperm
4259 res_vus
= vec_splat(vus
, 0);
4260 // CHECK: @llvm.ppc.altivec.vperm
4261 // CHECK-LE: @llvm.ppc.altivec.vperm
4263 res_vbs
= vec_splat(vbs
, 0);
4264 // CHECK: @llvm.ppc.altivec.vperm
4265 // CHECK-LE: @llvm.ppc.altivec.vperm
4267 res_vp
= vec_splat(vp
, 0);
4268 // CHECK: @llvm.ppc.altivec.vperm
4269 // CHECK-LE: @llvm.ppc.altivec.vperm
4271 res_vi
= vec_splat(vi
, 0);
4272 // CHECK: @llvm.ppc.altivec.vperm
4273 // CHECK-LE: @llvm.ppc.altivec.vperm
4275 res_vui
= vec_splat(vui
, 0);
4276 // CHECK: @llvm.ppc.altivec.vperm
4277 // CHECK-LE: @llvm.ppc.altivec.vperm
4279 res_vbi
= vec_splat(vbi
, 0);
4280 // CHECK: @llvm.ppc.altivec.vperm
4281 // CHECK-LE: @llvm.ppc.altivec.vperm
4283 res_vf
= vec_splat(vf
, 0);
4284 // CHECK: @llvm.ppc.altivec.vperm
4285 // CHECK-LE: @llvm.ppc.altivec.vperm
4287 res_vsc
= vec_vspltb(vsc
, 0);
4288 // CHECK: @llvm.ppc.altivec.vperm
4289 // CHECK-LE: @llvm.ppc.altivec.vperm
4291 res_vuc
= vec_vspltb(vuc
, 0);
4292 // CHECK: @llvm.ppc.altivec.vperm
4293 // CHECK-LE: @llvm.ppc.altivec.vperm
4295 res_vbc
= vec_vspltb(vbc
, 0);
4296 // CHECK: @llvm.ppc.altivec.vperm
4297 // CHECK-LE: @llvm.ppc.altivec.vperm
4299 res_vs
= vec_vsplth(vs
, 0);
4300 // CHECK: @llvm.ppc.altivec.vperm
4301 // CHECK-LE: @llvm.ppc.altivec.vperm
4303 res_vus
= vec_vsplth(vus
, 0);
4304 // CHECK: @llvm.ppc.altivec.vperm
4305 // CHECK-LE: @llvm.ppc.altivec.vperm
4307 res_vbs
= vec_vsplth(vbs
, 0);
4308 // CHECK: @llvm.ppc.altivec.vperm
4309 // CHECK-LE: @llvm.ppc.altivec.vperm
4311 res_vp
= vec_vsplth(vp
, 0);
4312 // CHECK: @llvm.ppc.altivec.vperm
4313 // CHECK-LE: @llvm.ppc.altivec.vperm
4315 res_vi
= vec_vspltw(vi
, 0);
4316 // CHECK: @llvm.ppc.altivec.vperm
4317 // CHECK-LE: @llvm.ppc.altivec.vperm
4319 res_vui
= vec_vspltw(vui
, 0);
4320 // CHECK: @llvm.ppc.altivec.vperm
4321 // CHECK-LE: @llvm.ppc.altivec.vperm
4323 res_vbi
= vec_vspltw(vbi
, 0);
4324 // CHECK: @llvm.ppc.altivec.vperm
4325 // CHECK-LE: @llvm.ppc.altivec.vperm
4327 res_vf
= vec_vspltw(vf
, 0);
4328 // CHECK: @llvm.ppc.altivec.vperm
4329 // CHECK-LE: @llvm.ppc.altivec.vperm
4332 res_vsc
= vec_splat_s8(0x09); // TODO: add check
4333 res_vsc
= vec_vspltisb(0x09); // TODO: add check
4336 res_vs
= vec_splat_s16(0x09); // TODO: add check
4337 res_vs
= vec_vspltish(0x09); // TODO: add check
4340 res_vi
= vec_splat_s32(0x09); // TODO: add check
4341 res_vi
= vec_vspltisw(0x09); // TODO: add check
4344 res_vuc
= vec_splat_u8(0x09); // TODO: add check
4347 res_vus
= vec_splat_u16(0x09); // TODO: add check
4350 res_vui
= vec_splat_u32(0x09); // TODO: add check
4353 res_vsc
= vec_sr(vsc
, vuc
);
4354 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, 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%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
4357 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4359 res_vuc
= vec_sr(vuc
, vuc
);
4360 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, 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%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
4363 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4365 res_vs
= vec_sr(vs
, vus
);
4366 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, 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%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
4369 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4371 res_vus
= vec_sr(vus
, vus
);
4372 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, 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%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
4375 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4377 res_vi
= vec_sr(vi
, vui
);
4378 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, <i32 32, i32 32, i32 32, 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%.]+}}, <i32 32, i32 32, i32 32, i32 32>
4381 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4383 res_vui
= vec_sr(vui
, vui
);
4384 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, <i32 32, i32 32, i32 32, 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%.]+}}, <i32 32, i32 32, i32 32, i32 32>
4387 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4389 res_vsc
= vec_vsrb(vsc
, vuc
);
4390 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, 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%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
4393 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4395 res_vuc
= vec_vsrb(vuc
, vuc
);
4396 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <16 x i8> {{[0-9a-zA-Z%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, 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%.]+}}, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
4399 // CHECK-LE: lshr <16 x i8> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4401 res_vs
= vec_vsrh(vs
, vus
);
4402 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, 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%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
4405 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4407 res_vus
= vec_vsrh(vus
, vus
);
4408 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <8 x i16> {{[0-9a-zA-Z%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, 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%.]+}}, <i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16, i16 16>
4411 // CHECK-LE: lshr <8 x i16> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4413 res_vi
= vec_vsrw(vi
, vui
);
4414 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, <i32 32, i32 32, i32 32, 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%.]+}}, <i32 32, i32 32, i32 32, i32 32>
4417 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4419 res_vui
= vec_vsrw(vui
, vui
);
4420 // CHECK: [[UREM:[0-9a-zA-Z%.]+]] = urem <4 x i32> {{[0-9a-zA-Z%.]+}}, <i32 32, i32 32, i32 32, 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%.]+}}, <i32 32, i32 32, i32 32, i32 32>
4423 // CHECK-LE: lshr <4 x i32> {{[0-9a-zA-Z%.]+}}, [[UREM]]
4426 res_vsc
= vec_sra(vsc
, vuc
);
4427 // CHECK: @llvm.ppc.altivec.vsrab
4428 // CHECK-LE: @llvm.ppc.altivec.vsrab
4430 res_vuc
= vec_sra(vuc
, vuc
);
4431 // CHECK: @llvm.ppc.altivec.vsrab
4432 // CHECK-LE: @llvm.ppc.altivec.vsrab
4434 res_vs
= vec_sra(vs
, vus
);
4435 // CHECK: @llvm.ppc.altivec.vsrah
4436 // CHECK-LE: @llvm.ppc.altivec.vsrah
4438 res_vus
= vec_sra(vus
, vus
);
4439 // CHECK: @llvm.ppc.altivec.vsrah
4440 // CHECK-LE: @llvm.ppc.altivec.vsrah
4442 res_vi
= vec_sra(vi
, vui
);
4443 // CHECK: @llvm.ppc.altivec.vsraw
4444 // CHECK-LE: @llvm.ppc.altivec.vsraw
4446 res_vui
= vec_sra(vui
, vui
);
4447 // CHECK: @llvm.ppc.altivec.vsraw
4448 // CHECK-LE: @llvm.ppc.altivec.vsraw
4450 res_vsc
= vec_vsrab(vsc
, vuc
);
4451 // CHECK: @llvm.ppc.altivec.vsrab
4452 // CHECK-LE: @llvm.ppc.altivec.vsrab
4454 res_vuc
= vec_vsrab(vuc
, vuc
);
4455 // CHECK: @llvm.ppc.altivec.vsrab
4456 // CHECK-LE: @llvm.ppc.altivec.vsrab
4458 res_vs
= vec_vsrah(vs
, vus
);
4459 // CHECK: @llvm.ppc.altivec.vsrah
4460 // CHECK-LE: @llvm.ppc.altivec.vsrah
4462 res_vus
= vec_vsrah(vus
, vus
);
4463 // CHECK: @llvm.ppc.altivec.vsrah
4464 // CHECK-LE: @llvm.ppc.altivec.vsrah
4466 res_vi
= vec_vsraw(vi
, vui
);
4467 // CHECK: @llvm.ppc.altivec.vsraw
4468 // CHECK-LE: @llvm.ppc.altivec.vsraw
4470 res_vui
= vec_vsraw(vui
, vui
);
4471 // CHECK: @llvm.ppc.altivec.vsraw
4472 // CHECK-LE: @llvm.ppc.altivec.vsraw
4475 res_vsc
= vec_srl(vsc
, vuc
);
4476 // CHECK: @llvm.ppc.altivec.vsr
4477 // CHECK-LE: @llvm.ppc.altivec.vsr
4479 res_vsc
= vec_srl(vsc
, vus
);
4480 // CHECK: @llvm.ppc.altivec.vsr
4481 // CHECK-LE: @llvm.ppc.altivec.vsr
4483 res_vsc
= vec_srl(vsc
, vui
);
4484 // CHECK: @llvm.ppc.altivec.vsr
4485 // CHECK-LE: @llvm.ppc.altivec.vsr
4487 res_vuc
= vec_srl(vuc
, vuc
);
4488 // CHECK: @llvm.ppc.altivec.vsr
4489 // CHECK-LE: @llvm.ppc.altivec.vsr
4491 res_vuc
= vec_srl(vuc
, vus
);
4492 // CHECK: @llvm.ppc.altivec.vsr
4493 // CHECK-LE: @llvm.ppc.altivec.vsr
4495 res_vuc
= vec_srl(vuc
, vui
);
4496 // CHECK: @llvm.ppc.altivec.vsr
4497 // CHECK-LE: @llvm.ppc.altivec.vsr
4499 res_vbc
= vec_srl(vbc
, vuc
);
4500 // CHECK: @llvm.ppc.altivec.vsr
4501 // CHECK-LE: @llvm.ppc.altivec.vsr
4503 res_vbc
= vec_srl(vbc
, vus
);
4504 // CHECK: @llvm.ppc.altivec.vsr
4505 // CHECK-LE: @llvm.ppc.altivec.vsr
4507 res_vbc
= vec_srl(vbc
, vui
);
4508 // CHECK: @llvm.ppc.altivec.vsr
4509 // CHECK-LE: @llvm.ppc.altivec.vsr
4511 res_vs
= vec_srl(vs
, vuc
);
4512 // CHECK: @llvm.ppc.altivec.vsr
4513 // CHECK-LE: @llvm.ppc.altivec.vsr
4515 res_vs
= vec_srl(vs
, vus
);
4516 // CHECK: @llvm.ppc.altivec.vsr
4517 // CHECK-LE: @llvm.ppc.altivec.vsr
4519 res_vs
= vec_srl(vs
, vui
);
4520 // CHECK: @llvm.ppc.altivec.vsr
4521 // CHECK-LE: @llvm.ppc.altivec.vsr
4523 res_vus
= vec_srl(vus
, vuc
);
4524 // CHECK: @llvm.ppc.altivec.vsr
4525 // CHECK-LE: @llvm.ppc.altivec.vsr
4527 res_vus
= vec_srl(vus
, vus
);
4528 // CHECK: @llvm.ppc.altivec.vsr
4529 // CHECK-LE: @llvm.ppc.altivec.vsr
4531 res_vus
= vec_srl(vus
, vui
);
4532 // CHECK: @llvm.ppc.altivec.vsr
4533 // CHECK-LE: @llvm.ppc.altivec.vsr
4535 res_vbs
= vec_srl(vbs
, vuc
);
4536 // CHECK: @llvm.ppc.altivec.vsr
4537 // CHECK-LE: @llvm.ppc.altivec.vsr
4539 res_vbs
= vec_srl(vbs
, vus
);
4540 // CHECK: @llvm.ppc.altivec.vsr
4541 // CHECK-LE: @llvm.ppc.altivec.vsr
4543 res_vbs
= vec_srl(vbs
, vui
);
4544 // CHECK: @llvm.ppc.altivec.vsr
4545 // CHECK-LE: @llvm.ppc.altivec.vsr
4547 res_vp
= vec_srl(vp
, vuc
);
4548 // CHECK: @llvm.ppc.altivec.vsr
4549 // CHECK-LE: @llvm.ppc.altivec.vsr
4551 res_vp
= vec_srl(vp
, vus
);
4552 // CHECK: @llvm.ppc.altivec.vsr
4553 // CHECK-LE: @llvm.ppc.altivec.vsr
4555 res_vp
= vec_srl(vp
, vui
);
4556 // CHECK: @llvm.ppc.altivec.vsr
4557 // CHECK-LE: @llvm.ppc.altivec.vsr
4559 res_vi
= vec_srl(vi
, vuc
);
4560 // CHECK: @llvm.ppc.altivec.vsr
4561 // CHECK-LE: @llvm.ppc.altivec.vsr
4563 res_vi
= vec_srl(vi
, vus
);
4564 // CHECK: @llvm.ppc.altivec.vsr
4565 // CHECK-LE: @llvm.ppc.altivec.vsr
4567 res_vi
= vec_srl(vi
, vui
);
4568 // CHECK: @llvm.ppc.altivec.vsr
4569 // CHECK-LE: @llvm.ppc.altivec.vsr
4571 res_vui
= vec_srl(vui
, vuc
);
4572 // CHECK: @llvm.ppc.altivec.vsr
4573 // CHECK-LE: @llvm.ppc.altivec.vsr
4575 res_vui
= vec_srl(vui
, vus
);
4576 // CHECK: @llvm.ppc.altivec.vsr
4577 // CHECK-LE: @llvm.ppc.altivec.vsr
4579 res_vui
= vec_srl(vui
, vui
);
4580 // CHECK: @llvm.ppc.altivec.vsr
4581 // CHECK-LE: @llvm.ppc.altivec.vsr
4583 res_vbi
= vec_srl(vbi
, vuc
);
4584 // CHECK: @llvm.ppc.altivec.vsr
4585 // CHECK-LE: @llvm.ppc.altivec.vsr
4587 res_vbi
= vec_srl(vbi
, vus
);
4588 // CHECK: @llvm.ppc.altivec.vsr
4589 // CHECK-LE: @llvm.ppc.altivec.vsr
4591 res_vbi
= vec_srl(vbi
, vui
);
4592 // CHECK: @llvm.ppc.altivec.vsr
4593 // CHECK-LE: @llvm.ppc.altivec.vsr
4595 res_vsc
= vec_vsr(vsc
, vuc
);
4596 // CHECK: @llvm.ppc.altivec.vsr
4597 // CHECK-LE: @llvm.ppc.altivec.vsr
4599 res_vsc
= vec_vsr(vsc
, vus
);
4600 // CHECK: @llvm.ppc.altivec.vsr
4601 // CHECK-LE: @llvm.ppc.altivec.vsr
4603 res_vsc
= vec_vsr(vsc
, vui
);
4604 // CHECK: @llvm.ppc.altivec.vsr
4605 // CHECK-LE: @llvm.ppc.altivec.vsr
4607 res_vuc
= vec_vsr(vuc
, vuc
);
4608 // CHECK: @llvm.ppc.altivec.vsr
4609 // CHECK-LE: @llvm.ppc.altivec.vsr
4611 res_vuc
= vec_vsr(vuc
, vus
);
4612 // CHECK: @llvm.ppc.altivec.vsr
4613 // CHECK-LE: @llvm.ppc.altivec.vsr
4615 res_vuc
= vec_vsr(vuc
, vui
);
4616 // CHECK: @llvm.ppc.altivec.vsr
4617 // CHECK-LE: @llvm.ppc.altivec.vsr
4619 res_vbc
= vec_vsr(vbc
, vuc
);
4620 // CHECK: @llvm.ppc.altivec.vsr
4621 // CHECK-LE: @llvm.ppc.altivec.vsr
4623 res_vbc
= vec_vsr(vbc
, vus
);
4624 // CHECK: @llvm.ppc.altivec.vsr
4625 // CHECK-LE: @llvm.ppc.altivec.vsr
4627 res_vbc
= vec_vsr(vbc
, vui
);
4628 // CHECK: @llvm.ppc.altivec.vsr
4629 // CHECK-LE: @llvm.ppc.altivec.vsr
4631 res_vs
= vec_vsr(vs
, vuc
);
4632 // CHECK: @llvm.ppc.altivec.vsr
4633 // CHECK-LE: @llvm.ppc.altivec.vsr
4635 res_vs
= vec_vsr(vs
, vus
);
4636 // CHECK: @llvm.ppc.altivec.vsr
4637 // CHECK-LE: @llvm.ppc.altivec.vsr
4639 res_vs
= vec_vsr(vs
, vui
);
4640 // CHECK: @llvm.ppc.altivec.vsr
4641 // CHECK-LE: @llvm.ppc.altivec.vsr
4643 res_vus
= vec_vsr(vus
, vuc
);
4644 // CHECK: @llvm.ppc.altivec.vsr
4645 // CHECK-LE: @llvm.ppc.altivec.vsr
4647 res_vus
= vec_vsr(vus
, vus
);
4648 // CHECK: @llvm.ppc.altivec.vsr
4649 // CHECK-LE: @llvm.ppc.altivec.vsr
4651 res_vus
= vec_vsr(vus
, vui
);
4652 // CHECK: @llvm.ppc.altivec.vsr
4653 // CHECK-LE: @llvm.ppc.altivec.vsr
4655 res_vbs
= vec_vsr(vbs
, vuc
);
4656 // CHECK: @llvm.ppc.altivec.vsr
4657 // CHECK-LE: @llvm.ppc.altivec.vsr
4659 res_vbs
= vec_vsr(vbs
, vus
);
4660 // CHECK: @llvm.ppc.altivec.vsr
4661 // CHECK-LE: @llvm.ppc.altivec.vsr
4663 res_vbs
= vec_vsr(vbs
, vui
);
4664 // CHECK: @llvm.ppc.altivec.vsr
4665 // CHECK-LE: @llvm.ppc.altivec.vsr
4667 res_vp
= vec_vsr(vp
, vuc
);
4668 // CHECK: @llvm.ppc.altivec.vsr
4669 // CHECK-LE: @llvm.ppc.altivec.vsr
4671 res_vp
= vec_vsr(vp
, vus
);
4672 // CHECK: @llvm.ppc.altivec.vsr
4673 // CHECK-LE: @llvm.ppc.altivec.vsr
4675 res_vp
= vec_vsr(vp
, vui
);
4676 // CHECK: @llvm.ppc.altivec.vsr
4677 // CHECK-LE: @llvm.ppc.altivec.vsr
4679 res_vi
= vec_vsr(vi
, vuc
);
4680 // CHECK: @llvm.ppc.altivec.vsr
4681 // CHECK-LE: @llvm.ppc.altivec.vsr
4683 res_vi
= vec_vsr(vi
, vus
);
4684 // CHECK: @llvm.ppc.altivec.vsr
4685 // CHECK-LE: @llvm.ppc.altivec.vsr
4687 res_vi
= vec_vsr(vi
, vui
);
4688 // CHECK: @llvm.ppc.altivec.vsr
4689 // CHECK-LE: @llvm.ppc.altivec.vsr
4691 res_vui
= vec_vsr(vui
, vuc
);
4692 // CHECK: @llvm.ppc.altivec.vsr
4693 // CHECK-LE: @llvm.ppc.altivec.vsr
4695 res_vui
= vec_vsr(vui
, vus
);
4696 // CHECK: @llvm.ppc.altivec.vsr
4697 // CHECK-LE: @llvm.ppc.altivec.vsr
4699 res_vui
= vec_vsr(vui
, vui
);
4700 // CHECK: @llvm.ppc.altivec.vsr
4701 // CHECK-LE: @llvm.ppc.altivec.vsr
4703 res_vbi
= vec_vsr(vbi
, vuc
);
4704 // CHECK: @llvm.ppc.altivec.vsr
4705 // CHECK-LE: @llvm.ppc.altivec.vsr
4707 res_vbi
= vec_vsr(vbi
, vus
);
4708 // CHECK: @llvm.ppc.altivec.vsr
4709 // CHECK-LE: @llvm.ppc.altivec.vsr
4711 res_vbi
= vec_vsr(vbi
, vui
);
4712 // CHECK: @llvm.ppc.altivec.vsr
4713 // CHECK-LE: @llvm.ppc.altivec.vsr
4716 res_vsc
= vec_sro(vsc
, vsc
);
4717 // CHECK: @llvm.ppc.altivec.vsro
4718 // CHECK-LE: @llvm.ppc.altivec.vsro
4720 res_vsc
= vec_sro(vsc
, vuc
);
4721 // CHECK: @llvm.ppc.altivec.vsro
4722 // CHECK-LE: @llvm.ppc.altivec.vsro
4724 res_vuc
= vec_sro(vuc
, vsc
);
4725 // CHECK: @llvm.ppc.altivec.vsro
4726 // CHECK-LE: @llvm.ppc.altivec.vsro
4728 res_vuc
= vec_sro(vuc
, vuc
);
4729 // CHECK: @llvm.ppc.altivec.vsro
4730 // CHECK-LE: @llvm.ppc.altivec.vsro
4732 res_vs
= vec_sro(vs
, vsc
);
4733 // CHECK: @llvm.ppc.altivec.vsro
4734 // CHECK-LE: @llvm.ppc.altivec.vsro
4736 res_vs
= vec_sro(vs
, vuc
);
4737 // CHECK: @llvm.ppc.altivec.vsro
4738 // CHECK-LE: @llvm.ppc.altivec.vsro
4740 res_vus
= vec_sro(vus
, vsc
);
4741 // CHECK: @llvm.ppc.altivec.vsro
4742 // CHECK-LE: @llvm.ppc.altivec.vsro
4744 res_vus
= vec_sro(vus
, vuc
);
4745 // CHECK: @llvm.ppc.altivec.vsro
4746 // CHECK-LE: @llvm.ppc.altivec.vsro
4748 res_vp
= vec_sro(vp
, vsc
);
4749 // CHECK: @llvm.ppc.altivec.vsro
4750 // CHECK-LE: @llvm.ppc.altivec.vsro
4752 res_vp
= vec_sro(vp
, vuc
);
4753 // CHECK: @llvm.ppc.altivec.vsro
4754 // CHECK-LE: @llvm.ppc.altivec.vsro
4756 res_vi
= vec_sro(vi
, vsc
);
4757 // CHECK: @llvm.ppc.altivec.vsro
4758 // CHECK-LE: @llvm.ppc.altivec.vsro
4760 res_vi
= vec_sro(vi
, vuc
);
4761 // CHECK: @llvm.ppc.altivec.vsro
4762 // CHECK-LE: @llvm.ppc.altivec.vsro
4764 res_vui
= vec_sro(vui
, vsc
);
4765 // CHECK: @llvm.ppc.altivec.vsro
4766 // CHECK-LE: @llvm.ppc.altivec.vsro
4768 res_vui
= vec_sro(vui
, vuc
);
4769 // CHECK: @llvm.ppc.altivec.vsro
4770 // CHECK-LE: @llvm.ppc.altivec.vsro
4772 res_vf
= vec_sro(vf
, vsc
);
4773 // CHECK: @llvm.ppc.altivec.vsro
4774 // CHECK-LE: @llvm.ppc.altivec.vsro
4776 res_vf
= vec_sro(vf
, vuc
);
4777 // CHECK: @llvm.ppc.altivec.vsro
4778 // CHECK-LE: @llvm.ppc.altivec.vsro
4780 res_vsc
= vec_vsro(vsc
, vsc
);
4781 // CHECK: @llvm.ppc.altivec.vsro
4782 // CHECK-LE: @llvm.ppc.altivec.vsro
4784 res_vsc
= vec_vsro(vsc
, vuc
);
4785 // CHECK: @llvm.ppc.altivec.vsro
4786 // CHECK-LE: @llvm.ppc.altivec.vsro
4788 res_vuc
= vec_vsro(vuc
, vsc
);
4789 // CHECK: @llvm.ppc.altivec.vsro
4790 // CHECK-LE: @llvm.ppc.altivec.vsro
4792 res_vuc
= vec_vsro(vuc
, vuc
);
4793 // CHECK: @llvm.ppc.altivec.vsro
4794 // CHECK-LE: @llvm.ppc.altivec.vsro
4796 res_vs
= vec_vsro(vs
, vsc
);
4797 // CHECK: @llvm.ppc.altivec.vsro
4798 // CHECK-LE: @llvm.ppc.altivec.vsro
4800 res_vs
= vec_vsro(vs
, vuc
);
4801 // CHECK: @llvm.ppc.altivec.vsro
4802 // CHECK-LE: @llvm.ppc.altivec.vsro
4804 res_vus
= vec_vsro(vus
, vsc
);
4805 // CHECK: @llvm.ppc.altivec.vsro
4806 // CHECK-LE: @llvm.ppc.altivec.vsro
4808 res_vus
= vec_vsro(vus
, vuc
);
4809 // CHECK: @llvm.ppc.altivec.vsro
4810 // CHECK-LE: @llvm.ppc.altivec.vsro
4812 res_vp
= vec_vsro(vp
, vsc
);
4813 // CHECK: @llvm.ppc.altivec.vsro
4814 // CHECK-LE: @llvm.ppc.altivec.vsro
4816 res_vp
= vec_vsro(vp
, vuc
);
4817 // CHECK: @llvm.ppc.altivec.vsro
4818 // CHECK-LE: @llvm.ppc.altivec.vsro
4820 res_vi
= vec_vsro(vi
, vsc
);
4821 // CHECK: @llvm.ppc.altivec.vsro
4822 // CHECK-LE: @llvm.ppc.altivec.vsro
4824 res_vi
= vec_vsro(vi
, vuc
);
4825 // CHECK: @llvm.ppc.altivec.vsro
4826 // CHECK-LE: @llvm.ppc.altivec.vsro
4828 res_vui
= vec_vsro(vui
, vsc
);
4829 // CHECK: @llvm.ppc.altivec.vsro
4830 // CHECK-LE: @llvm.ppc.altivec.vsro
4832 res_vui
= vec_vsro(vui
, vuc
);
4833 // CHECK: @llvm.ppc.altivec.vsro
4834 // CHECK-LE: @llvm.ppc.altivec.vsro
4836 res_vf
= vec_vsro(vf
, vsc
);
4837 // CHECK: @llvm.ppc.altivec.vsro
4838 // CHECK-LE: @llvm.ppc.altivec.vsro
4840 res_vf
= vec_vsro(vf
, vuc
);
4841 // CHECK: @llvm.ppc.altivec.vsro
4842 // CHECK-LE: @llvm.ppc.altivec.vsro
4845 vec_st(vsc
, 0, &vsc
);
4846 // CHECK: @llvm.ppc.altivec.stvx
4847 // CHECK-LE: @llvm.ppc.altivec.stvx
4849 vec_st(vsc
, 0, ¶m_sc
);
4850 // CHECK: @llvm.ppc.altivec.stvx
4851 // CHECK-LE: @llvm.ppc.altivec.stvx
4853 vec_st(vuc
, 0, &vuc
);
4854 // CHECK: @llvm.ppc.altivec.stvx
4855 // CHECK-LE: @llvm.ppc.altivec.stvx
4857 vec_st(vuc
, 0, ¶m_uc
);
4858 // CHECK: @llvm.ppc.altivec.stvx
4859 // CHECK-LE: @llvm.ppc.altivec.stvx
4861 vec_st(vbc
, 0, ¶m_uc
);
4862 // CHECK: @llvm.ppc.altivec.stvx
4863 // CHECK-LE: @llvm.ppc.altivec.stvx
4865 vec_st(vbc
, 0, ¶m_uc
);
4866 // CHECK: @llvm.ppc.altivec.stvx
4867 // CHECK-LE: @llvm.ppc.altivec.stvx
4869 vec_st(vbc
, 0, &vbc
);
4870 // CHECK: @llvm.ppc.altivec.stvx
4871 // CHECK-LE: @llvm.ppc.altivec.stvx
4874 // CHECK: @llvm.ppc.altivec.stvx
4875 // CHECK-LE: @llvm.ppc.altivec.stvx
4877 vec_st(vs
, 0, ¶m_s
);
4878 // CHECK: @llvm.ppc.altivec.stvx
4879 // CHECK-LE: @llvm.ppc.altivec.stvx
4881 vec_st(vus
, 0, &vus
);
4882 // CHECK: @llvm.ppc.altivec.stvx
4883 // CHECK-LE: @llvm.ppc.altivec.stvx
4885 vec_st(vus
, 0, ¶m_us
);
4886 // CHECK: @llvm.ppc.altivec.stvx
4887 // CHECK-LE: @llvm.ppc.altivec.stvx
4889 vec_st(vbs
, 0, ¶m_s
);
4890 // CHECK: @llvm.ppc.altivec.stvx
4891 // CHECK-LE: @llvm.ppc.altivec.stvx
4893 vec_st(vbs
, 0, ¶m_us
);
4894 // CHECK: @llvm.ppc.altivec.stvx
4895 // CHECK-LE: @llvm.ppc.altivec.stvx
4897 vec_st(vbs
, 0, &vbs
);
4898 // CHECK: @llvm.ppc.altivec.stvx
4899 // CHECK-LE: @llvm.ppc.altivec.stvx
4901 vec_st(vp
, 0, ¶m_s
);
4902 // CHECK: @llvm.ppc.altivec.stvx
4903 // CHECK-LE: @llvm.ppc.altivec.stvx
4905 vec_st(vp
, 0, ¶m_us
);
4906 // CHECK: @llvm.ppc.altivec.stvx
4907 // CHECK-LE: @llvm.ppc.altivec.stvx
4910 // CHECK: @llvm.ppc.altivec.stvx
4911 // CHECK-LE: @llvm.ppc.altivec.stvx
4914 // CHECK: @llvm.ppc.altivec.stvx
4915 // CHECK-LE: @llvm.ppc.altivec.stvx
4917 vec_st(vi
, 0, ¶m_i
);
4918 // CHECK: @llvm.ppc.altivec.stvx
4919 // CHECK-LE: @llvm.ppc.altivec.stvx
4921 vec_st(vui
, 0, &vui
);
4922 // CHECK: @llvm.ppc.altivec.stvx
4923 // CHECK-LE: @llvm.ppc.altivec.stvx
4925 vec_st(vui
, 0, ¶m_ui
);
4926 // CHECK: @llvm.ppc.altivec.stvx
4927 // CHECK-LE: @llvm.ppc.altivec.stvx
4929 vec_st(vbi
, 0, ¶m_i
);
4930 // CHECK: @llvm.ppc.altivec.stvx
4931 // CHECK-LE: @llvm.ppc.altivec.stvx
4933 vec_st(vbi
, 0, ¶m_ui
);
4934 // CHECK: @llvm.ppc.altivec.stvx
4935 // CHECK-LE: @llvm.ppc.altivec.stvx
4937 vec_st(vbi
, 0, &vbi
);
4938 // CHECK: @llvm.ppc.altivec.stvx
4939 // CHECK-LE: @llvm.ppc.altivec.stvx
4942 // CHECK: @llvm.ppc.altivec.stvx
4943 // CHECK-LE: @llvm.ppc.altivec.stvx
4945 vec_st(vf
, 0, ¶m_f
);
4946 // CHECK: @llvm.ppc.altivec.stvx
4947 // CHECK-LE: @llvm.ppc.altivec.stvx
4949 vec_stvx(vsc
, 0, &vsc
);
4950 // CHECK: @llvm.ppc.altivec.stvx
4951 // CHECK-LE: @llvm.ppc.altivec.stvx
4953 vec_stvx(vsc
, 0, ¶m_sc
);
4954 // CHECK: @llvm.ppc.altivec.stvx
4955 // CHECK-LE: @llvm.ppc.altivec.stvx
4957 vec_stvx(vuc
, 0, &vuc
);
4958 // CHECK: @llvm.ppc.altivec.stvx
4959 // CHECK-LE: @llvm.ppc.altivec.stvx
4961 vec_stvx(vuc
, 0, ¶m_uc
);
4962 // CHECK: @llvm.ppc.altivec.stvx
4963 // CHECK-LE: @llvm.ppc.altivec.stvx
4965 vec_stvx(vbc
, 0, ¶m_uc
);
4966 // CHECK: @llvm.ppc.altivec.stvx
4967 // CHECK-LE: @llvm.ppc.altivec.stvx
4969 vec_stvx(vbc
, 0, ¶m_uc
);
4970 // CHECK: @llvm.ppc.altivec.stvx
4971 // CHECK-LE: @llvm.ppc.altivec.stvx
4973 vec_stvx(vbc
, 0, &vbc
);
4974 // CHECK: @llvm.ppc.altivec.stvx
4975 // CHECK-LE: @llvm.ppc.altivec.stvx
4977 vec_stvx(vs
, 0, &vs
);
4978 // CHECK: @llvm.ppc.altivec.stvx
4979 // CHECK-LE: @llvm.ppc.altivec.stvx
4981 vec_stvx(vs
, 0, ¶m_s
);
4982 // CHECK: @llvm.ppc.altivec.stvx
4983 // CHECK-LE: @llvm.ppc.altivec.stvx
4985 vec_stvx(vus
, 0, &vus
);
4986 // CHECK: @llvm.ppc.altivec.stvx
4987 // CHECK-LE: @llvm.ppc.altivec.stvx
4989 vec_stvx(vus
, 0, ¶m_us
);
4990 // CHECK: @llvm.ppc.altivec.stvx
4991 // CHECK-LE: @llvm.ppc.altivec.stvx
4993 vec_stvx(vbs
, 0, ¶m_s
);
4994 // CHECK: @llvm.ppc.altivec.stvx
4995 // CHECK-LE: @llvm.ppc.altivec.stvx
4997 vec_stvx(vbs
, 0, ¶m_us
);
4998 // CHECK: @llvm.ppc.altivec.stvx
4999 // CHECK-LE: @llvm.ppc.altivec.stvx
5001 vec_stvx(vbs
, 0, &vbs
);
5002 // CHECK: @llvm.ppc.altivec.stvx
5003 // CHECK-LE: @llvm.ppc.altivec.stvx
5005 vec_stvx(vp
, 0, ¶m_s
);
5006 // CHECK: @llvm.ppc.altivec.stvx
5007 // CHECK-LE: @llvm.ppc.altivec.stvx
5009 vec_stvx(vp
, 0, ¶m_us
);
5010 // CHECK: @llvm.ppc.altivec.stvx
5011 // CHECK-LE: @llvm.ppc.altivec.stvx
5013 vec_stvx(vp
, 0, &vp
);
5014 // CHECK: @llvm.ppc.altivec.stvx
5015 // CHECK-LE: @llvm.ppc.altivec.stvx
5017 vec_stvx(vi
, 0, &vi
);
5018 // CHECK: @llvm.ppc.altivec.stvx
5019 // CHECK-LE: @llvm.ppc.altivec.stvx
5021 vec_stvx(vi
, 0, ¶m_i
);
5022 // CHECK: @llvm.ppc.altivec.stvx
5023 // CHECK-LE: @llvm.ppc.altivec.stvx
5025 vec_stvx(vui
, 0, &vui
);
5026 // CHECK: @llvm.ppc.altivec.stvx
5027 // CHECK-LE: @llvm.ppc.altivec.stvx
5029 vec_stvx(vui
, 0, ¶m_ui
);
5030 // CHECK: @llvm.ppc.altivec.stvx
5031 // CHECK-LE: @llvm.ppc.altivec.stvx
5033 vec_stvx(vbi
, 0, ¶m_i
);
5034 // CHECK: @llvm.ppc.altivec.stvx
5035 // CHECK-LE: @llvm.ppc.altivec.stvx
5037 vec_stvx(vbi
, 0, ¶m_ui
);
5038 // CHECK: @llvm.ppc.altivec.stvx
5039 // CHECK-LE: @llvm.ppc.altivec.stvx
5041 vec_stvx(vbi
, 0, &vbi
);
5042 // CHECK: @llvm.ppc.altivec.stvx
5043 // CHECK-LE: @llvm.ppc.altivec.stvx
5045 vec_stvx(vf
, 0, &vf
);
5046 // CHECK: @llvm.ppc.altivec.stvx
5047 // CHECK-LE: @llvm.ppc.altivec.stvx
5049 vec_stvx(vf
, 0, ¶m_f
);
5050 // CHECK: @llvm.ppc.altivec.stvx
5051 // CHECK-LE: @llvm.ppc.altivec.stvx
5054 vec_ste(vsc
, 0, ¶m_sc
);
5055 // CHECK: @llvm.ppc.altivec.stvebx
5056 // CHECK-LE: @llvm.ppc.altivec.stvebx
5058 vec_ste(vuc
, 0, ¶m_uc
);
5059 // CHECK: @llvm.ppc.altivec.stvebx
5060 // CHECK-LE: @llvm.ppc.altivec.stvebx
5062 vec_ste(vbc
, 0, ¶m_sc
);
5063 // CHECK: @llvm.ppc.altivec.stvebx
5064 // CHECK-LE: @llvm.ppc.altivec.stvebx
5066 vec_ste(vbc
, 0, ¶m_uc
);
5067 // CHECK: @llvm.ppc.altivec.stvebx
5068 // CHECK-LE: @llvm.ppc.altivec.stvebx
5070 vec_ste(vs
, 0, ¶m_s
);
5071 // CHECK: @llvm.ppc.altivec.stvehx
5072 // CHECK-LE: @llvm.ppc.altivec.stvehx
5074 vec_ste(vus
, 0, ¶m_us
);
5075 // CHECK: @llvm.ppc.altivec.stvehx
5076 // CHECK-LE: @llvm.ppc.altivec.stvehx
5078 vec_ste(vbs
, 0, ¶m_s
);
5079 // CHECK: @llvm.ppc.altivec.stvehx
5080 // CHECK-LE: @llvm.ppc.altivec.stvehx
5082 vec_ste(vbs
, 0, ¶m_us
);
5083 // CHECK: @llvm.ppc.altivec.stvehx
5084 // CHECK-LE: @llvm.ppc.altivec.stvehx
5086 vec_ste(vp
, 0, ¶m_s
);
5087 // CHECK: @llvm.ppc.altivec.stvehx
5088 // CHECK-LE: @llvm.ppc.altivec.stvehx
5090 vec_ste(vp
, 0, ¶m_us
);
5091 // CHECK: @llvm.ppc.altivec.stvehx
5092 // CHECK-LE: @llvm.ppc.altivec.stvehx
5094 vec_ste(vi
, 0, ¶m_i
);
5095 // CHECK: @llvm.ppc.altivec.stvewx
5096 // CHECK-LE: @llvm.ppc.altivec.stvewx
5098 vec_ste(vui
, 0, ¶m_ui
);
5099 // CHECK: @llvm.ppc.altivec.stvewx
5100 // CHECK-LE: @llvm.ppc.altivec.stvewx
5102 vec_ste(vbi
, 0, ¶m_i
);
5103 // CHECK: @llvm.ppc.altivec.stvewx
5104 // CHECK-LE: @llvm.ppc.altivec.stvewx
5106 vec_ste(vbi
, 0, ¶m_ui
);
5107 // CHECK: @llvm.ppc.altivec.stvewx
5108 // CHECK-LE: @llvm.ppc.altivec.stvewx
5110 vec_ste(vf
, 0, ¶m_f
);
5111 // CHECK: @llvm.ppc.altivec.stvewx
5112 // CHECK-LE: @llvm.ppc.altivec.stvewx
5114 vec_stvebx(vsc
, 0, ¶m_sc
);
5115 // CHECK: @llvm.ppc.altivec.stvebx
5116 // CHECK-LE: @llvm.ppc.altivec.stvebx
5118 vec_stvebx(vuc
, 0, ¶m_uc
);
5119 // CHECK: @llvm.ppc.altivec.stvebx
5120 // CHECK-LE: @llvm.ppc.altivec.stvebx
5122 vec_stvebx(vbc
, 0, ¶m_sc
);
5123 // CHECK: @llvm.ppc.altivec.stvebx
5124 // CHECK-LE: @llvm.ppc.altivec.stvebx
5126 vec_stvebx(vbc
, 0, ¶m_uc
);
5127 // CHECK: @llvm.ppc.altivec.stvebx
5128 // CHECK-LE: @llvm.ppc.altivec.stvebx
5130 vec_stvehx(vs
, 0, ¶m_s
);
5131 // CHECK: @llvm.ppc.altivec.stvehx
5132 // CHECK-LE: @llvm.ppc.altivec.stvehx
5134 vec_stvehx(vus
, 0, ¶m_us
);
5135 // CHECK: @llvm.ppc.altivec.stvehx
5136 // CHECK-LE: @llvm.ppc.altivec.stvehx
5138 vec_stvehx(vbs
, 0, ¶m_s
);
5139 // CHECK: @llvm.ppc.altivec.stvehx
5140 // CHECK-LE: @llvm.ppc.altivec.stvehx
5142 vec_stvehx(vbs
, 0, ¶m_us
);
5143 // CHECK: @llvm.ppc.altivec.stvehx
5144 // CHECK-LE: @llvm.ppc.altivec.stvehx
5146 vec_stvehx(vp
, 0, ¶m_s
);
5147 // CHECK: @llvm.ppc.altivec.stvehx
5148 // CHECK-LE: @llvm.ppc.altivec.stvehx
5150 vec_stvehx(vp
, 0, ¶m_us
);
5151 // CHECK: @llvm.ppc.altivec.stvehx
5152 // CHECK-LE: @llvm.ppc.altivec.stvehx
5154 vec_stvewx(vi
, 0, ¶m_i
);
5155 // CHECK: @llvm.ppc.altivec.stvewx
5156 // CHECK-LE: @llvm.ppc.altivec.stvewx
5158 vec_stvewx(vui
, 0, ¶m_ui
);
5159 // CHECK: @llvm.ppc.altivec.stvewx
5160 // CHECK-LE: @llvm.ppc.altivec.stvewx
5162 vec_stvewx(vbi
, 0, ¶m_i
);
5163 // CHECK: @llvm.ppc.altivec.stvewx
5164 // CHECK-LE: @llvm.ppc.altivec.stvewx
5166 vec_stvewx(vbi
, 0, ¶m_ui
);
5167 // CHECK: @llvm.ppc.altivec.stvewx
5168 // CHECK-LE: @llvm.ppc.altivec.stvewx
5170 vec_stvewx(vf
, 0, ¶m_f
);
5171 // CHECK: @llvm.ppc.altivec.stvewx
5172 // CHECK-LE: @llvm.ppc.altivec.stvewx
5175 vec_stl(vsc
, 0, &vsc
);
5176 // CHECK: @llvm.ppc.altivec.stvxl
5177 // CHECK-LE: @llvm.ppc.altivec.stvxl
5179 vec_stl(vsc
, 0, ¶m_sc
);
5180 // CHECK: @llvm.ppc.altivec.stvxl
5181 // CHECK-LE: @llvm.ppc.altivec.stvxl
5183 vec_stl(vuc
, 0, &vuc
);
5184 // CHECK: @llvm.ppc.altivec.stvxl
5185 // CHECK-LE: @llvm.ppc.altivec.stvxl
5187 vec_stl(vuc
, 0, ¶m_uc
);
5188 // CHECK: @llvm.ppc.altivec.stvxl
5189 // CHECK-LE: @llvm.ppc.altivec.stvxl
5191 vec_stl(vbc
, 0, ¶m_sc
);
5192 // CHECK: @llvm.ppc.altivec.stvxl
5193 // CHECK-LE: @llvm.ppc.altivec.stvxl
5195 vec_stl(vbc
, 0, ¶m_uc
);
5196 // CHECK: @llvm.ppc.altivec.stvxl
5197 // CHECK-LE: @llvm.ppc.altivec.stvxl
5199 vec_stl(vbc
, 0, &vbc
);
5200 // CHECK: @llvm.ppc.altivec.stvxl
5201 // CHECK-LE: @llvm.ppc.altivec.stvxl
5203 vec_stl(vs
, 0, &vs
);
5204 // CHECK: @llvm.ppc.altivec.stvxl
5205 // CHECK-LE: @llvm.ppc.altivec.stvxl
5207 vec_stl(vs
, 0, ¶m_s
);
5208 // CHECK: @llvm.ppc.altivec.stvxl
5209 // CHECK-LE: @llvm.ppc.altivec.stvxl
5211 vec_stl(vus
, 0, &vus
);
5212 // CHECK: @llvm.ppc.altivec.stvxl
5213 // CHECK-LE: @llvm.ppc.altivec.stvxl
5215 vec_stl(vus
, 0, ¶m_us
);
5216 // CHECK: @llvm.ppc.altivec.stvxl
5217 // CHECK-LE: @llvm.ppc.altivec.stvxl
5219 vec_stl(vbs
, 0, ¶m_s
);
5220 // CHECK: @llvm.ppc.altivec.stvxl
5221 // CHECK-LE: @llvm.ppc.altivec.stvxl
5223 vec_stl(vbs
, 0, ¶m_us
);
5224 // CHECK: @llvm.ppc.altivec.stvxl
5225 // CHECK-LE: @llvm.ppc.altivec.stvxl
5227 vec_stl(vbs
, 0, &vbs
);
5228 // CHECK: @llvm.ppc.altivec.stvxl
5229 // CHECK-LE: @llvm.ppc.altivec.stvxl
5231 vec_stl(vp
, 0, ¶m_s
);
5232 // CHECK: @llvm.ppc.altivec.stvxl
5233 // CHECK-LE: @llvm.ppc.altivec.stvxl
5235 vec_stl(vp
, 0, ¶m_us
);
5236 // CHECK: @llvm.ppc.altivec.stvxl
5237 // CHECK-LE: @llvm.ppc.altivec.stvxl
5239 vec_stl(vp
, 0, &vp
);
5240 // CHECK: @llvm.ppc.altivec.stvxl
5241 // CHECK-LE: @llvm.ppc.altivec.stvxl
5243 vec_stl(vi
, 0, &vi
);
5244 // CHECK: @llvm.ppc.altivec.stvxl
5245 // CHECK-LE: @llvm.ppc.altivec.stvxl
5247 vec_stl(vi
, 0, ¶m_i
);
5248 // CHECK: @llvm.ppc.altivec.stvxl
5249 // CHECK-LE: @llvm.ppc.altivec.stvxl
5251 vec_stl(vui
, 0, &vui
);
5252 // CHECK: @llvm.ppc.altivec.stvxl
5253 // CHECK-LE: @llvm.ppc.altivec.stvxl
5255 vec_stl(vui
, 0, ¶m_ui
);
5256 // CHECK: @llvm.ppc.altivec.stvxl
5257 // CHECK-LE: @llvm.ppc.altivec.stvxl
5259 vec_stl(vbi
, 0, ¶m_i
);
5260 // CHECK: @llvm.ppc.altivec.stvxl
5261 // CHECK-LE: @llvm.ppc.altivec.stvxl
5263 vec_stl(vbi
, 0, ¶m_ui
);
5264 // CHECK: @llvm.ppc.altivec.stvxl
5265 // CHECK-LE: @llvm.ppc.altivec.stvxl
5267 vec_stl(vbi
, 0, &vbi
);
5268 // CHECK: @llvm.ppc.altivec.stvxl
5269 // CHECK-LE: @llvm.ppc.altivec.stvxl
5271 vec_stl(vf
, 0, &vf
);
5272 // CHECK: @llvm.ppc.altivec.stvxl
5273 // CHECK-LE: @llvm.ppc.altivec.stvxl
5275 vec_stl(vf
, 0, ¶m_f
);
5276 // CHECK: @llvm.ppc.altivec.stvxl
5277 // CHECK-LE: @llvm.ppc.altivec.stvxl
5279 vec_stvxl(vsc
, 0, &vsc
);
5280 // CHECK: @llvm.ppc.altivec.stvxl
5281 // CHECK-LE: @llvm.ppc.altivec.stvxl
5283 vec_stvxl(vsc
, 0, ¶m_sc
);
5284 // CHECK: @llvm.ppc.altivec.stvxl
5285 // CHECK-LE: @llvm.ppc.altivec.stvxl
5287 vec_stvxl(vuc
, 0, &vuc
);
5288 // CHECK: @llvm.ppc.altivec.stvxl
5289 // CHECK-LE: @llvm.ppc.altivec.stvxl
5291 vec_stvxl(vuc
, 0, ¶m_uc
);
5292 // CHECK: @llvm.ppc.altivec.stvxl
5293 // CHECK-LE: @llvm.ppc.altivec.stvxl
5295 vec_stvxl(vbc
, 0, ¶m_sc
);
5296 // CHECK: @llvm.ppc.altivec.stvxl
5297 // CHECK-LE: @llvm.ppc.altivec.stvxl
5299 vec_stvxl(vbc
, 0, ¶m_uc
);
5300 // CHECK: @llvm.ppc.altivec.stvxl
5301 // CHECK-LE: @llvm.ppc.altivec.stvxl
5303 vec_stvxl(vbc
, 0, &vbc
);
5304 // CHECK: @llvm.ppc.altivec.stvxl
5305 // CHECK-LE: @llvm.ppc.altivec.stvxl
5307 vec_stvxl(vs
, 0, &vs
);
5308 // CHECK: @llvm.ppc.altivec.stvxl
5309 // CHECK-LE: @llvm.ppc.altivec.stvxl
5311 vec_stvxl(vs
, 0, ¶m_s
);
5312 // CHECK: @llvm.ppc.altivec.stvxl
5313 // CHECK-LE: @llvm.ppc.altivec.stvxl
5315 vec_stvxl(vus
, 0, &vus
);
5316 // CHECK: @llvm.ppc.altivec.stvxl
5317 // CHECK-LE: @llvm.ppc.altivec.stvxl
5319 vec_stvxl(vus
, 0, ¶m_us
);
5320 // CHECK: @llvm.ppc.altivec.stvxl
5321 // CHECK-LE: @llvm.ppc.altivec.stvxl
5323 vec_stvxl(vbs
, 0, ¶m_s
);
5324 // CHECK: @llvm.ppc.altivec.stvxl
5325 // CHECK-LE: @llvm.ppc.altivec.stvxl
5327 vec_stvxl(vbs
, 0, ¶m_us
);
5328 // CHECK: @llvm.ppc.altivec.stvxl
5329 // CHECK-LE: @llvm.ppc.altivec.stvxl
5331 vec_stvxl(vbs
, 0, &vbs
);
5332 // CHECK: @llvm.ppc.altivec.stvxl
5333 // CHECK-LE: @llvm.ppc.altivec.stvxl
5335 vec_stvxl(vp
, 0, ¶m_s
);
5336 // CHECK: @llvm.ppc.altivec.stvxl
5337 // CHECK-LE: @llvm.ppc.altivec.stvxl
5339 vec_stvxl(vp
, 0, ¶m_us
);
5340 // CHECK: @llvm.ppc.altivec.stvxl
5341 // CHECK-LE: @llvm.ppc.altivec.stvxl
5343 vec_stvxl(vp
, 0, &vp
);
5344 // CHECK: @llvm.ppc.altivec.stvxl
5345 // CHECK-LE: @llvm.ppc.altivec.stvxl
5347 vec_stvxl(vi
, 0, &vi
);
5348 // CHECK: @llvm.ppc.altivec.stvxl
5349 // CHECK-LE: @llvm.ppc.altivec.stvxl
5351 vec_stvxl(vi
, 0, ¶m_i
);
5352 // CHECK: @llvm.ppc.altivec.stvxl
5353 // CHECK-LE: @llvm.ppc.altivec.stvxl
5355 vec_stvxl(vui
, 0, &vui
);
5356 // CHECK: @llvm.ppc.altivec.stvxl
5357 // CHECK-LE: @llvm.ppc.altivec.stvxl
5359 vec_stvxl(vui
, 0, ¶m_ui
);
5360 // CHECK: @llvm.ppc.altivec.stvxl
5361 // CHECK-LE: @llvm.ppc.altivec.stvxl
5363 vec_stvxl(vbi
, 0, ¶m_i
);
5364 // CHECK: @llvm.ppc.altivec.stvxl
5365 // CHECK-LE: @llvm.ppc.altivec.stvxl
5367 vec_stvxl(vbi
, 0, ¶m_ui
);
5368 // CHECK: @llvm.ppc.altivec.stvxl
5369 // CHECK-LE: @llvm.ppc.altivec.stvxl
5371 vec_stvxl(vbi
, 0, &vbi
);
5372 // CHECK: @llvm.ppc.altivec.stvxl
5373 // CHECK-LE: @llvm.ppc.altivec.stvxl
5375 vec_stvxl(vf
, 0, &vf
);
5376 // CHECK: @llvm.ppc.altivec.stvxl
5377 // CHECK-LE: @llvm.ppc.altivec.stvxl
5379 vec_stvxl(vf
, 0, ¶m_f
);
5380 // CHECK: @llvm.ppc.altivec.stvxl
5381 // CHECK-LE: @llvm.ppc.altivec.stvxl
5384 res_vsc
= vec_sub(vsc
, vsc
);
5385 // CHECK: sub <16 x i8>
5386 // CHECK-LE: sub <16 x i8>
5388 res_vsc
= vec_sub(vbc
, vsc
);
5389 // CHECK: sub <16 x i8>
5390 // CHECK-LE: sub <16 x i8>
5392 res_vsc
= vec_sub(vsc
, vbc
);
5393 // CHECK: sub <16 x i8>
5394 // CHECK-LE: sub <16 x i8>
5396 res_vuc
= vec_sub(vuc
, vuc
);
5397 // CHECK: sub <16 x i8>
5398 // CHECK-LE: sub <16 x i8>
5400 res_vuc
= vec_sub(vbc
, vuc
);
5401 // CHECK: sub <16 x i8>
5402 // CHECK-LE: sub <16 x i8>
5404 res_vuc
= vec_sub(vuc
, vbc
);
5405 // CHECK: sub <16 x i8>
5406 // CHECK-LE: sub <16 x i8>
5408 res_vs
= vec_sub(vs
, vs
);
5409 // CHECK: sub <8 x i16>
5410 // CHECK-LE: sub <8 x i16>
5412 res_vs
= vec_sub(vbs
, vs
);
5413 // CHECK: sub <8 x i16>
5414 // CHECK-LE: sub <8 x i16>
5416 res_vs
= vec_sub(vs
, vbs
);
5417 // CHECK: sub <8 x i16>
5418 // CHECK-LE: sub <8 x i16>
5420 res_vus
= vec_sub(vus
, vus
);
5421 // CHECK: sub <8 x i16>
5422 // CHECK-LE: sub <8 x i16>
5424 res_vus
= vec_sub(vbs
, vus
);
5425 // CHECK: sub <8 x i16>
5426 // CHECK-LE: sub <8 x i16>
5428 res_vus
= vec_sub(vus
, vbs
);
5429 // CHECK: sub <8 x i16>
5430 // CHECK-LE: sub <8 x i16>
5432 res_vi
= vec_sub(vi
, vi
);
5433 // CHECK: sub <4 x i32>
5434 // CHECK-LE: sub <4 x i32>
5436 res_vi
= vec_sub(vbi
, vi
);
5437 // CHECK: sub <4 x i32>
5438 // CHECK-LE: sub <4 x i32>
5440 res_vi
= vec_sub(vi
, vbi
);
5441 // CHECK: sub <4 x i32>
5442 // CHECK-LE: sub <4 x i32>
5444 res_vui
= vec_sub(vui
, vui
);
5445 // CHECK: sub <4 x i32>
5446 // CHECK-LE: sub <4 x i32>
5448 res_vui
= vec_sub(vbi
, vui
);
5449 // CHECK: sub <4 x i32>
5450 // CHECK-LE: sub <4 x i32>
5452 res_vui
= vec_sub(vui
, vbi
);
5453 // CHECK: sub <4 x i32>
5454 // CHECK-LE: sub <4 x i32>
5456 res_vf
= vec_sub(vf
, vf
);
5457 // CHECK: fsub <4 x float>
5458 // CHECK-LE: fsub <4 x float>
5462 res_vsc
= vec_vsububm(vsc
, vsc
);
5463 // CHECK: sub <16 x i8>
5464 // CHECK-LE: sub <16 x i8>
5466 res_vsc
= vec_vsububm(vbc
, vsc
);
5467 // CHECK: sub <16 x i8>
5468 // CHECK-LE: sub <16 x i8>
5470 res_vsc
= vec_vsububm(vsc
, vbc
);
5471 // CHECK: sub <16 x i8>
5472 // CHECK-LE: sub <16 x i8>
5474 res_vuc
= vec_vsububm(vuc
, vuc
);
5475 // CHECK: sub <16 x i8>
5476 // CHECK-LE: sub <16 x i8>
5478 res_vuc
= vec_vsububm(vbc
, vuc
);
5479 // CHECK: sub <16 x i8>
5480 // CHECK-LE: sub <16 x i8>
5482 res_vuc
= vec_vsububm(vuc
, vbc
);
5483 // CHECK: sub <16 x i8>
5484 // CHECK-LE: sub <16 x i8>
5486 res_vs
= vec_vsubuhm(vs
, vs
);
5487 // CHECK: sub <8 x i16>
5488 // CHECK-LE: sub <8 x i16>
5490 res_vs
= vec_vsubuhm(vbs
, vs
);
5491 // CHECK: sub <8 x i16>
5492 // CHECK-LE: sub <8 x i16>
5494 res_vs
= vec_vsubuhm(vs
, vbs
);
5495 // CHECK: sub <8 x i16>
5496 // CHECK-LE: sub <8 x i16>
5498 res_vus
= vec_vsubuhm(vus
, vus
);
5499 // CHECK: sub <8 x i16>
5500 // CHECK-LE: sub <8 x i16>
5502 res_vus
= vec_vsubuhm(vbs
, vus
);
5503 // CHECK: sub <8 x i16>
5504 // CHECK-LE: sub <8 x i16>
5506 res_vus
= vec_vsubuhm(vus
, vbs
);
5507 // CHECK: sub <8 x i16>
5508 // CHECK-LE: sub <8 x i16>
5510 res_vi
= vec_vsubuwm(vi
, vi
);
5511 // CHECK: sub <4 x i32>
5512 // CHECK-LE: sub <4 x i32>
5514 res_vi
= vec_vsubuwm(vbi
, vi
);
5515 // CHECK: sub <4 x i32>
5516 // CHECK-LE: sub <4 x i32>
5518 res_vi
= vec_vsubuwm(vi
, vbi
);
5519 // CHECK: sub <4 x i32>
5520 // CHECK-LE: sub <4 x i32>
5522 res_vui
= vec_vsubuwm(vui
, vui
);
5523 // CHECK: sub <4 x i32>
5524 // CHECK-LE: sub <4 x i32>
5526 res_vui
= vec_vsubuwm(vbi
, vui
);
5527 // CHECK: sub <4 x i32>
5528 // CHECK-LE: sub <4 x i32>
5530 res_vui
= vec_vsubuwm(vui
, vbi
);
5531 // CHECK: sub <4 x i32>
5532 // CHECK-LE: sub <4 x i32>
5534 res_vf
= vec_vsubfp(vf
, vf
);
5535 // CHECK: fsub <4 x float>
5536 // CHECK-LE: fsub <4 x float>
5539 res_vui
= vec_subc(vui
, vui
);
5540 // CHECK: @llvm.ppc.altivec.vsubcuw
5541 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
5543 res_vi
= vec_subc(vi
, vi
);
5544 // CHECK: @llvm.ppc.altivec.vsubcuw
5545 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
5547 res_vui
= vec_vsubcuw(vui
, vui
);
5548 // CHECK: @llvm.ppc.altivec.vsubcuw
5549 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
5552 res_vsc
= vec_subs(vsc
, vsc
);
5553 // CHECK: @llvm.ppc.altivec.vsubsbs
5554 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5556 res_vsc
= vec_subs(vbc
, vsc
);
5557 // CHECK: @llvm.ppc.altivec.vsubsbs
5558 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5560 res_vsc
= vec_subs(vsc
, vbc
);
5561 // CHECK: @llvm.ppc.altivec.vsubsbs
5562 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5564 res_vuc
= vec_subs(vuc
, vuc
);
5565 // CHECK: @llvm.ppc.altivec.vsububs
5566 // CHECK-LE: @llvm.ppc.altivec.vsububs
5568 res_vuc
= vec_subs(vbc
, vuc
);
5569 // CHECK: @llvm.ppc.altivec.vsububs
5570 // CHECK-LE: @llvm.ppc.altivec.vsububs
5572 res_vuc
= vec_subs(vuc
, vbc
);
5573 // CHECK: @llvm.ppc.altivec.vsububs
5574 // CHECK-LE: @llvm.ppc.altivec.vsububs
5576 res_vs
= vec_subs(vs
, vs
);
5577 // CHECK: @llvm.ppc.altivec.vsubshs
5578 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5580 res_vs
= vec_subs(vbs
, vs
);
5581 // CHECK: @llvm.ppc.altivec.vsubshs
5582 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5584 res_vs
= vec_subs(vs
, vbs
);
5585 // CHECK: @llvm.ppc.altivec.vsubshs
5586 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5588 res_vus
= vec_subs(vus
, vus
);
5589 // CHECK: @llvm.ppc.altivec.vsubuhs
5590 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5592 res_vus
= vec_subs(vbs
, vus
);
5593 // CHECK: @llvm.ppc.altivec.vsubuhs
5594 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5596 res_vus
= vec_subs(vus
, vbs
);
5597 // CHECK: @llvm.ppc.altivec.vsubuhs
5598 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5600 res_vi
= vec_subs(vi
, vi
);
5601 // CHECK: @llvm.ppc.altivec.vsubsws
5602 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5604 res_vi
= vec_subs(vbi
, vi
);
5605 // CHECK: @llvm.ppc.altivec.vsubsws
5606 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5608 res_vi
= vec_subs(vi
, vbi
);
5609 // CHECK: @llvm.ppc.altivec.vsubsws
5610 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5612 res_vui
= vec_subs(vui
, vui
);
5613 // CHECK: @llvm.ppc.altivec.vsubuws
5614 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5616 res_vui
= vec_subs(vbi
, vui
);
5617 // CHECK: @llvm.ppc.altivec.vsubuws
5618 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5620 res_vui
= vec_subs(vui
, vbi
);
5621 // CHECK: @llvm.ppc.altivec.vsubuws
5622 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5624 res_vi
= vec_sube(vi
, vi
, vi
);
5625 // CHECK: and <4 x i32>
5626 // CHECK: xor <4 x i32> {{%[0-9]+}}, <i32 -1, i32 -1, i32 -1, 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]+}}, <i32 -1, i32 -1, i32 -1, i32 -1>
5631 // CHECK-LE: add <4 x i32>
5632 // CHECK-LE: add <4 x i32>
5634 res_vui
= vec_sube(vui
, vui
, vui
);
5635 // CHECK: and <4 x i32>
5636 // CHECK: xor <4 x i32> {{%[0-9]+}}, <i32 -1, i32 -1, i32 -1, 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]+}}, <i32 -1, i32 -1, i32 -1, i32 -1>
5641 // CHECK-LE: add <4 x i32>
5642 // CHECK-LE: add <4 x i32>
5644 res_vsc
= vec_vsubsbs(vsc
, vsc
);
5645 // CHECK: @llvm.ppc.altivec.vsubsbs
5646 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5648 res_vsc
= vec_vsubsbs(vbc
, vsc
);
5649 // CHECK: @llvm.ppc.altivec.vsubsbs
5650 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5652 res_vsc
= vec_vsubsbs(vsc
, vbc
);
5653 // CHECK: @llvm.ppc.altivec.vsubsbs
5654 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5656 res_vuc
= vec_vsububs(vuc
, vuc
);
5657 // CHECK: @llvm.ppc.altivec.vsububs
5658 // CHECK-LE: @llvm.ppc.altivec.vsububs
5660 res_vuc
= vec_vsububs(vbc
, vuc
);
5661 // CHECK: @llvm.ppc.altivec.vsububs
5662 // CHECK-LE: @llvm.ppc.altivec.vsububs
5664 res_vuc
= vec_vsububs(vuc
, vbc
);
5665 // CHECK: @llvm.ppc.altivec.vsububs
5666 // CHECK-LE: @llvm.ppc.altivec.vsububs
5668 res_vs
= vec_vsubshs(vs
, vs
);
5669 // CHECK: @llvm.ppc.altivec.vsubshs
5670 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5672 res_vs
= vec_vsubshs(vbs
, vs
);
5673 // CHECK: @llvm.ppc.altivec.vsubshs
5674 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5676 res_vs
= vec_vsubshs(vs
, vbs
);
5677 // CHECK: @llvm.ppc.altivec.vsubshs
5678 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5680 res_vus
= vec_vsubuhs(vus
, vus
);
5681 // CHECK: @llvm.ppc.altivec.vsubuhs
5682 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5684 res_vus
= vec_vsubuhs(vbs
, vus
);
5685 // CHECK: @llvm.ppc.altivec.vsubuhs
5686 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5688 res_vus
= vec_vsubuhs(vus
, vbs
);
5689 // CHECK: @llvm.ppc.altivec.vsubuhs
5690 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5692 res_vi
= vec_vsubsws(vi
, vi
);
5693 // CHECK: @llvm.ppc.altivec.vsubsws
5694 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5696 res_vi
= vec_vsubsws(vbi
, vi
);
5697 // CHECK: @llvm.ppc.altivec.vsubsws
5698 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5700 res_vi
= vec_vsubsws(vi
, vbi
);
5701 // CHECK: @llvm.ppc.altivec.vsubsws
5702 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5704 res_vui
= vec_vsubuws(vui
, vui
);
5705 // CHECK: @llvm.ppc.altivec.vsubuws
5706 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5708 res_vui
= vec_vsubuws(vbi
, vui
);
5709 // CHECK: @llvm.ppc.altivec.vsubuws
5710 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5712 res_vui
= vec_vsubuws(vui
, vbi
);
5713 // CHECK: @llvm.ppc.altivec.vsubuws
5714 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5717 res_vi
= vec_sum4s(vsc
, vi
);
5718 // CHECK: @llvm.ppc.altivec.vsum4sbs
5719 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs
5721 res_vui
= vec_sum4s(vuc
, vui
);
5722 // CHECK: @llvm.ppc.altivec.vsum4ubs
5723 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs
5725 res_vi
= vec_sum4s(vs
, vi
);
5726 // CHECK: @llvm.ppc.altivec.vsum4shs
5727 // CHECK-LE: @llvm.ppc.altivec.vsum4shs
5729 res_vi
= vec_vsum4sbs(vsc
, vi
);
5730 // CHECK: @llvm.ppc.altivec.vsum4sbs
5731 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs
5733 res_vui
= vec_vsum4ubs(vuc
, vui
);
5734 // CHECK: @llvm.ppc.altivec.vsum4ubs
5735 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs
5737 res_vi
= vec_vsum4shs(vs
, vi
);
5738 // CHECK: @llvm.ppc.altivec.vsum4shs
5739 // CHECK-LE: @llvm.ppc.altivec.vsum4shs
5742 res_vi
= vec_sum2s(vi
, vi
);
5743 // CHECK: @llvm.ppc.altivec.vsum2sws
5744 // CHECK-LE: @llvm.ppc.altivec.vperm
5745 // CHECK-LE: @llvm.ppc.altivec.vsum2sws
5746 // CHECK-LE: @llvm.ppc.altivec.vperm
5748 res_vi
= vec_vsum2sws(vi
, vi
);
5749 // CHECK: @llvm.ppc.altivec.vsum2sws
5750 // CHECK-LE: @llvm.ppc.altivec.vperm
5751 // CHECK-LE: @llvm.ppc.altivec.vsum2sws
5752 // CHECK-LE: @llvm.ppc.altivec.vperm
5755 res_vi
= vec_sums(vi
, vi
);
5756 // CHECK: @llvm.ppc.altivec.vsumsws
5757 // CHECK-LE: @llvm.ppc.altivec.vperm
5758 // CHECK-LE: @llvm.ppc.altivec.vsumsws
5760 res_vi
= vec_vsumsws(vi
, vi
);
5761 // CHECK: @llvm.ppc.altivec.vsumsws
5762 // CHECK-LE: @llvm.ppc.altivec.vperm
5763 // CHECK-LE: @llvm.ppc.altivec.vsumsws
5766 res_vf
= vec_trunc(vf
);
5767 // CHECK: @llvm.ppc.altivec.vrfiz
5768 // CHECK-LE: @llvm.ppc.altivec.vrfiz
5770 res_vf
= vec_vrfiz(vf
);
5771 // CHECK: @llvm.ppc.altivec.vrfiz
5772 // CHECK-LE: @llvm.ppc.altivec.vrfiz
5775 res_vs
= vec_unpackh(vsc
);
5776 // CHECK: @llvm.ppc.altivec.vupkhsb
5777 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5779 res_vbs
= vec_unpackh(vbc
);
5780 // CHECK: @llvm.ppc.altivec.vupkhsb
5781 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5783 res_vi
= vec_unpackh(vs
);
5784 // CHECK: @llvm.ppc.altivec.vupkhsh
5785 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5787 res_vbi
= vec_unpackh(vbs
);
5788 // CHECK: @llvm.ppc.altivec.vupkhsh
5789 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5791 res_vui
= vec_unpackh(vp
);
5792 // CHECK: @llvm.ppc.altivec.vupkhpx
5793 // CHECK-LE: @llvm.ppc.altivec.vupklpx
5795 res_vui
= vec_vupkhpx(vp
);
5796 // CHECK: @llvm.ppc.altivec.vupkhpx
5797 // CHECK-LE: @llvm.ppc.altivec.vupklpx
5799 res_vs
= vec_vupkhsb(vsc
);
5800 // CHECK: @llvm.ppc.altivec.vupkhsb
5801 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5803 res_vbs
= vec_vupkhsb(vbc
);
5804 // CHECK: @llvm.ppc.altivec.vupkhsb
5805 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5807 res_vi
= vec_vupkhsh(vs
);
5808 // CHECK: @llvm.ppc.altivec.vupkhsh
5809 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5811 res_vbi
= vec_vupkhsh(vbs
);
5812 // CHECK: @llvm.ppc.altivec.vupkhsh
5813 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5815 res_vui
= vec_vupkhsh(vp
);
5816 // CHECK: @llvm.ppc.altivec.vupkhpx
5817 // CHECK-LE: @llvm.ppc.altivec.vupklpx
5820 res_vs
= vec_unpackl(vsc
);
5821 // CHECK: @llvm.ppc.altivec.vupklsb
5822 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5824 res_vbs
= vec_unpackl(vbc
);
5825 // CHECK: @llvm.ppc.altivec.vupklsb
5826 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5828 res_vi
= vec_unpackl(vs
);
5829 // CHECK: @llvm.ppc.altivec.vupklsh
5830 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5832 res_vbi
= vec_unpackl(vbs
);
5833 // CHECK: @llvm.ppc.altivec.vupklsh
5834 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5836 res_vui
= vec_unpackl(vp
);
5837 // CHECK: @llvm.ppc.altivec.vupklpx
5838 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
5840 res_vui
= vec_vupklpx(vp
);
5841 // CHECK: @llvm.ppc.altivec.vupklpx
5842 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
5844 res_vs
= vec_vupklsb(vsc
);
5845 // CHECK: @llvm.ppc.altivec.vupklsb
5846 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5848 res_vbs
= vec_vupklsb(vbc
);
5849 // CHECK: @llvm.ppc.altivec.vupklsb
5850 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5852 res_vi
= vec_vupklsh(vs
);
5853 // CHECK: @llvm.ppc.altivec.vupklsh
5854 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5856 res_vbi
= vec_vupklsh(vbs
);
5857 // CHECK: @llvm.ppc.altivec.vupklsh
5858 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5860 res_vui
= vec_vupklsh(vp
);
5861 // CHECK: @llvm.ppc.altivec.vupklpx
5862 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
5865 res_vsc
= vec_xor(vsc
, vsc
);
5866 // CHECK: xor <16 x i8>
5867 // CHECK-LE: xor <16 x i8>
5869 res_vsc
= vec_xor(vbc
, vsc
);
5870 // CHECK: xor <16 x i8>
5871 // CHECK-LE: xor <16 x i8>
5873 res_vsc
= vec_xor(vsc
, vbc
);
5874 // CHECK: xor <16 x i8>
5875 // CHECK-LE: xor <16 x i8>
5877 res_vuc
= vec_xor(vuc
, vuc
);
5878 // CHECK: xor <16 x i8>
5879 // CHECK-LE: xor <16 x i8>
5881 res_vuc
= vec_xor(vbc
, vuc
);
5882 // CHECK: xor <16 x i8>
5883 // CHECK-LE: xor <16 x i8>
5885 res_vuc
= vec_xor(vuc
, vbc
);
5886 // CHECK: xor <16 x i8>
5887 // CHECK-LE: xor <16 x i8>
5889 res_vbc
= vec_xor(vbc
, vbc
);
5890 // CHECK: xor <16 x i8>
5891 // CHECK-LE: xor <16 x i8>
5893 res_vs
= vec_xor(vs
, vs
);
5894 // CHECK: xor <8 x i16>
5895 // CHECK-LE: xor <8 x i16>
5897 res_vs
= vec_xor(vbs
, vs
);
5898 // CHECK: xor <8 x i16>
5899 // CHECK-LE: xor <8 x i16>
5901 res_vs
= vec_xor(vs
, vbs
);
5902 // CHECK: xor <8 x i16>
5903 // CHECK-LE: xor <8 x i16>
5905 res_vus
= vec_xor(vus
, vus
);
5906 // CHECK: xor <8 x i16>
5907 // CHECK-LE: xor <8 x i16>
5909 res_vus
= vec_xor(vbs
, vus
);
5910 // CHECK: xor <8 x i16>
5911 // CHECK-LE: xor <8 x i16>
5913 res_vus
= vec_xor(vus
, vbs
);
5914 // CHECK: xor <8 x i16>
5915 // CHECK-LE: xor <8 x i16>
5917 res_vbs
= vec_xor(vbs
, vbs
);
5918 // CHECK: xor <8 x i16>
5919 // CHECK-LE: xor <8 x i16>
5921 res_vi
= vec_xor(vi
, vi
);
5922 // CHECK: xor <4 x i32>
5923 // CHECK-LE: xor <4 x i32>
5925 res_vi
= vec_xor(vbi
, vi
);
5926 // CHECK: xor <4 x i32>
5927 // CHECK-LE: xor <4 x i32>
5929 res_vi
= vec_xor(vi
, vbi
);
5930 // CHECK: xor <4 x i32>
5931 // CHECK-LE: xor <4 x i32>
5933 res_vui
= vec_xor(vui
, vui
);
5934 // CHECK: xor <4 x i32>
5935 // CHECK-LE: xor <4 x i32>
5937 res_vui
= vec_xor(vbi
, vui
);
5938 // CHECK: xor <4 x i32>
5939 // CHECK-LE: xor <4 x i32>
5941 res_vui
= vec_xor(vui
, vbi
);
5942 // CHECK: xor <4 x i32>
5943 // CHECK-LE: xor <4 x i32>
5945 res_vbi
= vec_xor(vbi
, vbi
);
5946 // CHECK: xor <4 x i32>
5947 // CHECK-LE: xor <4 x i32>
5949 res_vf
= vec_xor(vf
, vf
);
5950 // CHECK: xor <4 x i32>
5951 // CHECK-LE: xor <4 x i32>
5953 res_vf
= vec_xor(vbi
, vf
);
5954 // CHECK: xor <4 x i32>
5955 // CHECK-LE: xor <4 x i32>
5957 res_vf
= vec_xor(vf
, vbi
);
5958 // CHECK: xor <4 x i32>
5959 // CHECK-LE: xor <4 x i32>
5961 res_vsc
= vec_vxor(vsc
, vsc
);
5962 // CHECK: xor <16 x i8>
5963 // CHECK-LE: xor <16 x i8>
5965 res_vsc
= vec_vxor(vbc
, vsc
);
5966 // CHECK: xor <16 x i8>
5967 // CHECK-LE: xor <16 x i8>
5969 res_vsc
= vec_vxor(vsc
, vbc
);
5970 // CHECK: xor <16 x i8>
5971 // CHECK-LE: xor <16 x i8>
5973 res_vuc
= vec_vxor(vuc
, vuc
);
5974 // CHECK: xor <16 x i8>
5975 // CHECK-LE: xor <16 x i8>
5977 res_vuc
= vec_vxor(vbc
, vuc
);
5978 // CHECK: xor <16 x i8>
5979 // CHECK-LE: xor <16 x i8>
5981 res_vuc
= vec_vxor(vuc
, vbc
);
5982 // CHECK: xor <16 x i8>
5983 // CHECK-LE: xor <16 x i8>
5985 res_vbc
= vec_vxor(vbc
, vbc
);
5986 // CHECK: xor <16 x i8>
5987 // CHECK-LE: xor <16 x i8>
5989 res_vs
= vec_vxor(vs
, vs
);
5990 // CHECK: xor <8 x i16>
5991 // CHECK-LE: xor <8 x i16>
5993 res_vs
= vec_vxor(vbs
, vs
);
5994 // CHECK: xor <8 x i16>
5995 // CHECK-LE: xor <8 x i16>
5997 res_vs
= vec_vxor(vs
, vbs
);
5998 // CHECK: xor <8 x i16>
5999 // CHECK-LE: xor <8 x i16>
6001 res_vus
= vec_vxor(vus
, vus
);
6002 // CHECK: xor <8 x i16>
6003 // CHECK-LE: xor <8 x i16>
6005 res_vus
= vec_vxor(vbs
, vus
);
6006 // CHECK: xor <8 x i16>
6007 // CHECK-LE: xor <8 x i16>
6009 res_vus
= vec_vxor(vus
, vbs
);
6010 // CHECK: xor <8 x i16>
6011 // CHECK-LE: xor <8 x i16>
6013 res_vbs
= vec_vxor(vbs
, vbs
);
6014 // CHECK: xor <8 x i16>
6015 // CHECK-LE: xor <8 x i16>
6017 res_vi
= vec_vxor(vi
, vi
);
6018 // CHECK: xor <4 x i32>
6019 // CHECK-LE: xor <4 x i32>
6021 res_vi
= vec_vxor(vbi
, vi
);
6022 // CHECK: xor <4 x i32>
6023 // CHECK-LE: xor <4 x i32>
6025 res_vi
= vec_vxor(vi
, vbi
);
6026 // CHECK: xor <4 x i32>
6027 // CHECK-LE: xor <4 x i32>
6029 res_vui
= vec_vxor(vui
, vui
);
6030 // CHECK: xor <4 x i32>
6031 // CHECK-LE: xor <4 x i32>
6033 res_vui
= vec_vxor(vbi
, vui
);
6034 // CHECK: xor <4 x i32>
6035 // CHECK-LE: xor <4 x i32>
6037 res_vui
= vec_vxor(vui
, vbi
);
6038 // CHECK: xor <4 x i32>
6039 // CHECK-LE: xor <4 x i32>
6041 res_vbi
= vec_vxor(vbi
, vbi
);
6042 // CHECK: xor <4 x i32>
6043 // CHECK-LE: xor <4 x i32>
6045 res_vf
= vec_vxor(vf
, vf
);
6046 // CHECK: xor <4 x i32>
6047 // CHECK-LE: xor <4 x i32>
6049 res_vf
= vec_vxor(vbi
, vf
);
6050 // CHECK: xor <4 x i32>
6051 // CHECK-LE: xor <4 x i32>
6053 res_vf
= vec_vxor(vf
, vbi
);
6054 // CHECK: xor <4 x i32>
6055 // CHECK-LE: xor <4 x i32>
6057 /* ------------------------------ extensions -------------------------------------- */
6060 res_sc
= vec_extract(vsc
, param_i
);
6061 // CHECK: extractelement <16 x i8>
6062 // CHECK-LE: extractelement <16 x i8>
6064 res_uc
= vec_extract(vuc
, param_i
);
6065 // CHECK: extractelement <16 x i8>
6066 // CHECK-LE: extractelement <16 x i8>
6068 res_uc
= vec_extract(vbc
, param_i
);
6069 // CHECK: extractelement <16 x i8>
6070 // CHECK-LE: extractelement <16 x i8>
6072 res_s
= vec_extract(vs
, param_i
);
6073 // CHECK: extractelement <8 x i16>
6074 // CHECK-LE: extractelement <8 x i16>
6076 res_us
= vec_extract(vus
, param_i
);
6077 // CHECK: extractelement <8 x i16>
6078 // CHECK-LE: extractelement <8 x i16>
6080 res_us
= vec_extract(vbs
, param_i
);
6081 // CHECK: extractelement <8 x i16>
6082 // CHECK-LE: extractelement <8 x i16>
6084 res_i
= vec_extract(vi
, param_i
);
6085 // CHECK: extractelement <4 x i32>
6086 // CHECK-LE: extractelement <4 x i32>
6088 res_ui
= vec_extract(vui
, param_i
);
6089 // CHECK: extractelement <4 x i32>
6090 // CHECK-LE: extractelement <4 x i32>
6092 res_ui
= vec_extract(vbi
, param_i
);
6093 // CHECK: extractelement <4 x i32>
6094 // CHECK-LE: extractelement <4 x i32>
6096 res_f
= vec_extract(vf
, param_i
);
6097 // CHECK: extractelement <4 x float>
6098 // CHECK-LE: extractelement <4 x float>
6101 res_vsc
= vec_insert(param_sc
, vsc
, param_i
);
6102 // CHECK: insertelement <16 x i8>
6103 // CHECK-LE: insertelement <16 x i8>
6105 res_vuc
= vec_insert(param_uc
, vuc
, param_i
);
6106 // CHECK: insertelement <16 x i8>
6107 // CHECK-LE: insertelement <16 x i8>
6109 res_vbc
= vec_insert(param_uc
, vbc
, param_i
);
6110 // CHECK: insertelement <16 x i8>
6111 // CHECK-LE: insertelement <16 x i8>
6113 res_vs
= vec_insert(param_s
, vs
, param_i
);
6114 // CHECK: insertelement <8 x i16>
6115 // CHECK-LE: insertelement <8 x i16>
6117 res_vus
= vec_insert(param_us
, vus
, param_i
);
6118 // CHECK: insertelement <8 x i16>
6119 // CHECK-LE: insertelement <8 x i16>
6121 res_vbs
= vec_insert(param_us
, vbs
, param_i
);
6122 // CHECK: insertelement <8 x i16>
6123 // CHECK-LE: insertelement <8 x i16>
6125 res_vi
= vec_insert(param_i
, vi
, param_i
);
6126 // CHECK: insertelement <4 x i32>
6127 // CHECK-LE: insertelement <4 x i32>
6129 res_vui
= vec_insert(param_ui
, vui
, param_i
);
6130 // CHECK: insertelement <4 x i32>
6131 // CHECK-LE: insertelement <4 x i32>
6133 res_vbi
= vec_insert(param_ui
, vbi
, param_i
);
6134 // CHECK: insertelement <4 x i32>
6135 // CHECK-LE: insertelement <4 x i32>
6137 res_vf
= vec_insert(param_f
, vf
, param_i
);
6138 // CHECK: insertelement <4 x float>
6139 // CHECK-LE: insertelement <4 x float>
6142 res_vsc
= vec_lvlx(0, param_sc_ld
);
6143 // CHECK: @llvm.ppc.altivec.lvx
6144 // CHECK: @llvm.ppc.altivec.lvsl
6145 // CHECK: store <16 x i8> zeroinitializer
6146 // CHECK: @llvm.ppc.altivec.vperm
6147 // CHECK-LE: @llvm.ppc.altivec.lvx
6148 // CHECK-LE: @llvm.ppc.altivec.lvsl
6149 // CHECK-LE: store <16 x i8> zeroinitializer
6150 // CHECK-LE: @llvm.ppc.altivec.vperm
6152 res_vsc
= vec_lvlx(0, &vsc
);
6153 // CHECK: @llvm.ppc.altivec.lvx
6154 // CHECK: @llvm.ppc.altivec.lvsl
6155 // CHECK: store <16 x i8> zeroinitializer
6156 // CHECK: @llvm.ppc.altivec.vperm
6157 // CHECK-LE: @llvm.ppc.altivec.lvx
6158 // CHECK-LE: @llvm.ppc.altivec.lvsl
6159 // CHECK-LE: store <16 x i8> zeroinitializer
6160 // CHECK-LE: @llvm.ppc.altivec.vperm
6162 res_vuc
= vec_lvlx(0, param_uc_ld
);
6163 // CHECK: @llvm.ppc.altivec.lvx
6164 // CHECK: @llvm.ppc.altivec.lvsl
6165 // CHECK: store <16 x i8> zeroinitializer
6166 // CHECK: @llvm.ppc.altivec.vperm
6167 // CHECK-LE: @llvm.ppc.altivec.lvx
6168 // CHECK-LE: @llvm.ppc.altivec.lvsl
6169 // CHECK-LE: store <16 x i8> zeroinitializer
6170 // CHECK-LE: @llvm.ppc.altivec.vperm
6172 res_vuc
= vec_lvlx(0, &vuc
);
6173 // CHECK: @llvm.ppc.altivec.lvx
6174 // CHECK: @llvm.ppc.altivec.lvsl
6175 // CHECK: store <16 x i8> zeroinitializer
6176 // CHECK: @llvm.ppc.altivec.vperm
6177 // CHECK-LE: @llvm.ppc.altivec.lvx
6178 // CHECK-LE: @llvm.ppc.altivec.lvsl
6179 // CHECK-LE: store <16 x i8> zeroinitializer
6180 // CHECK-LE: @llvm.ppc.altivec.vperm
6182 res_vbc
= vec_lvlx(0, &vbc
);
6183 // CHECK: @llvm.ppc.altivec.lvx
6184 // CHECK: store <16 x i8> zeroinitializer
6185 // CHECK: @llvm.ppc.altivec.lvsl
6186 // CHECK: @llvm.ppc.altivec.vperm
6187 // CHECK-LE: @llvm.ppc.altivec.lvx
6188 // CHECK-LE: store <16 x i8> zeroinitializer
6189 // CHECK-LE: @llvm.ppc.altivec.lvsl
6190 // CHECK-LE: @llvm.ppc.altivec.vperm
6192 res_vs
= vec_lvlx(0, param_s_ld
);
6193 // CHECK: @llvm.ppc.altivec.lvx
6194 // CHECK: @llvm.ppc.altivec.lvsl
6195 // CHECK: store <8 x i16> zeroinitializer
6196 // CHECK: @llvm.ppc.altivec.vperm
6197 // CHECK-LE: @llvm.ppc.altivec.lvx
6198 // CHECK-LE: @llvm.ppc.altivec.lvsl
6199 // CHECK-LE: store <8 x i16> zeroinitializer
6200 // CHECK-LE: @llvm.ppc.altivec.vperm
6202 res_vs
= vec_lvlx(0, &vs
);
6203 // CHECK: @llvm.ppc.altivec.lvx
6204 // CHECK: @llvm.ppc.altivec.lvsl
6205 // CHECK: store <8 x i16> zeroinitializer
6206 // CHECK: @llvm.ppc.altivec.vperm
6207 // CHECK-LE: @llvm.ppc.altivec.lvx
6208 // CHECK-LE: @llvm.ppc.altivec.lvsl
6209 // CHECK-LE: store <8 x i16> zeroinitializer
6210 // CHECK-LE: @llvm.ppc.altivec.vperm
6212 res_vus
= vec_lvlx(0, param_us_ld
);
6213 // CHECK: @llvm.ppc.altivec.lvx
6214 // CHECK: @llvm.ppc.altivec.lvsl
6215 // CHECK: store <8 x i16> zeroinitializer
6216 // CHECK: @llvm.ppc.altivec.vperm
6217 // CHECK-LE: @llvm.ppc.altivec.lvx
6218 // CHECK-LE: @llvm.ppc.altivec.lvsl
6219 // CHECK-LE: store <8 x i16> zeroinitializer
6220 // CHECK-LE: @llvm.ppc.altivec.vperm
6222 res_vus
= vec_lvlx(0, &vus
);
6223 // CHECK: @llvm.ppc.altivec.lvx
6224 // CHECK: @llvm.ppc.altivec.lvsl
6225 // CHECK: store <8 x i16> zeroinitializer
6226 // CHECK: @llvm.ppc.altivec.vperm
6227 // CHECK-LE: @llvm.ppc.altivec.lvx
6228 // CHECK-LE: @llvm.ppc.altivec.lvsl
6229 // CHECK-LE: store <8 x i16> zeroinitializer
6230 // CHECK-LE: @llvm.ppc.altivec.vperm
6232 res_vbs
= vec_lvlx(0, &vbs
);
6233 // CHECK: @llvm.ppc.altivec.lvx
6234 // CHECK: store <8 x i16> zeroinitializer
6235 // CHECK: @llvm.ppc.altivec.lvsl
6236 // CHECK: @llvm.ppc.altivec.vperm
6237 // CHECK-LE: @llvm.ppc.altivec.lvx
6238 // CHECK-LE: store <8 x i16> zeroinitializer
6239 // CHECK-LE: @llvm.ppc.altivec.lvsl
6240 // CHECK-LE: @llvm.ppc.altivec.vperm
6242 res_vp
= vec_lvlx(0, &vp
);
6243 // CHECK: @llvm.ppc.altivec.lvx
6244 // CHECK: store <8 x i16> zeroinitializer
6245 // CHECK: @llvm.ppc.altivec.lvsl
6246 // CHECK: @llvm.ppc.altivec.vperm
6247 // CHECK-LE: @llvm.ppc.altivec.lvx
6248 // CHECK-LE: store <8 x i16> zeroinitializer
6249 // CHECK-LE: @llvm.ppc.altivec.lvsl
6250 // CHECK-LE: @llvm.ppc.altivec.vperm
6252 res_vi
= vec_lvlx(0, param_i_ld
);
6253 // CHECK: @llvm.ppc.altivec.lvx
6254 // CHECK: @llvm.ppc.altivec.lvsl
6255 // CHECK: store <4 x i32> zeroinitializer
6256 // CHECK: @llvm.ppc.altivec.vperm
6257 // CHECK-LE: @llvm.ppc.altivec.lvx
6258 // CHECK-LE: @llvm.ppc.altivec.lvsl
6259 // CHECK-LE: store <4 x i32> zeroinitializer
6260 // CHECK-LE: @llvm.ppc.altivec.vperm
6262 res_vi
= vec_lvlx(0, &vi
);
6263 // CHECK: @llvm.ppc.altivec.lvx
6264 // CHECK: @llvm.ppc.altivec.lvsl
6265 // CHECK: store <4 x i32> zeroinitializer
6266 // CHECK: @llvm.ppc.altivec.vperm
6267 // CHECK-LE: @llvm.ppc.altivec.lvx
6268 // CHECK-LE: @llvm.ppc.altivec.lvsl
6269 // CHECK-LE: store <4 x i32> zeroinitializer
6270 // CHECK-LE: @llvm.ppc.altivec.vperm
6272 res_vui
= vec_lvlx(0, param_ui_ld
);
6273 // CHECK: @llvm.ppc.altivec.lvx
6274 // CHECK: @llvm.ppc.altivec.lvsl
6275 // CHECK: store <4 x i32> zeroinitializer
6276 // CHECK: @llvm.ppc.altivec.vperm
6277 // CHECK-LE: @llvm.ppc.altivec.lvx
6278 // CHECK-LE: @llvm.ppc.altivec.lvsl
6279 // CHECK-LE: store <4 x i32> zeroinitializer
6280 // CHECK-LE: @llvm.ppc.altivec.vperm
6282 res_vui
= vec_lvlx(0, &vui
);
6283 // CHECK: @llvm.ppc.altivec.lvx
6284 // CHECK: @llvm.ppc.altivec.lvsl
6285 // CHECK: store <4 x i32> zeroinitializer
6286 // CHECK: @llvm.ppc.altivec.vperm
6287 // CHECK-LE: @llvm.ppc.altivec.lvx
6288 // CHECK-LE: @llvm.ppc.altivec.lvsl
6289 // CHECK-LE: store <4 x i32> zeroinitializer
6290 // CHECK-LE: @llvm.ppc.altivec.vperm
6292 res_vbi
= vec_lvlx(0, &vbi
);
6293 // CHECK: @llvm.ppc.altivec.lvx
6294 // CHECK: store <4 x i32> zeroinitializer
6295 // CHECK: @llvm.ppc.altivec.lvsl
6296 // CHECK: @llvm.ppc.altivec.vperm
6297 // CHECK-LE: @llvm.ppc.altivec.lvx
6298 // CHECK-LE: store <4 x i32> zeroinitializer
6299 // CHECK-LE: @llvm.ppc.altivec.lvsl
6300 // CHECK-LE: @llvm.ppc.altivec.vperm
6302 res_vf
= vec_lvlx(0, &vf
);
6303 // CHECK: @llvm.ppc.altivec.lvx
6304 // CHECK: @llvm.ppc.altivec.lvsl
6305 // CHECK: store <4 x float> zeroinitializer
6306 // CHECK: @llvm.ppc.altivec.vperm
6307 // CHECK-LE: @llvm.ppc.altivec.lvx
6308 // CHECK-LE: @llvm.ppc.altivec.lvsl
6309 // CHECK-LE: store <4 x float> zeroinitializer
6310 // CHECK-LE: @llvm.ppc.altivec.vperm
6313 res_vsc
= vec_lvlxl(0, param_sc_ld
);
6314 // CHECK: @llvm.ppc.altivec.lvxl
6315 // CHECK: @llvm.ppc.altivec.lvsl
6316 // CHECK: store <16 x i8> zeroinitializer
6317 // CHECK: @llvm.ppc.altivec.vperm
6318 // CHECK-LE: @llvm.ppc.altivec.lvxl
6319 // CHECK-LE: @llvm.ppc.altivec.lvsl
6320 // CHECK-LE: store <16 x i8> zeroinitializer
6321 // CHECK-LE: @llvm.ppc.altivec.vperm
6323 res_vsc
= vec_lvlxl(0, &vsc
);
6324 // CHECK: @llvm.ppc.altivec.lvxl
6325 // CHECK: @llvm.ppc.altivec.lvsl
6326 // CHECK: store <16 x i8> zeroinitializer
6327 // CHECK: @llvm.ppc.altivec.vperm
6328 // CHECK-LE: @llvm.ppc.altivec.lvxl
6329 // CHECK-LE: @llvm.ppc.altivec.lvsl
6330 // CHECK-LE: store <16 x i8> zeroinitializer
6331 // CHECK-LE: @llvm.ppc.altivec.vperm
6333 res_vuc
= vec_lvlxl(0, param_uc_ld
);
6334 // CHECK: @llvm.ppc.altivec.lvxl
6335 // CHECK: @llvm.ppc.altivec.lvsl
6336 // CHECK: store <16 x i8> zeroinitializer
6337 // CHECK: @llvm.ppc.altivec.vperm
6338 // CHECK-LE: @llvm.ppc.altivec.lvxl
6339 // CHECK-LE: @llvm.ppc.altivec.lvsl
6340 // CHECK-LE: store <16 x i8> zeroinitializer
6341 // CHECK-LE: @llvm.ppc.altivec.vperm
6343 res_vuc
= vec_lvlxl(0, &vuc
);
6344 // CHECK: @llvm.ppc.altivec.lvxl
6345 // CHECK: @llvm.ppc.altivec.lvsl
6346 // CHECK: store <16 x i8> zeroinitializer
6347 // CHECK: @llvm.ppc.altivec.vperm
6348 // CHECK-LE: @llvm.ppc.altivec.lvxl
6349 // CHECK-LE: @llvm.ppc.altivec.lvsl
6350 // CHECK-LE: store <16 x i8> zeroinitializer
6351 // CHECK-LE: @llvm.ppc.altivec.vperm
6353 res_vbc
= vec_lvlxl(0, &vbc
);
6354 // CHECK: @llvm.ppc.altivec.lvxl
6355 // CHECK: store <16 x i8> zeroinitializer
6356 // CHECK: @llvm.ppc.altivec.lvsl
6357 // CHECK: @llvm.ppc.altivec.vperm
6358 // CHECK-LE: @llvm.ppc.altivec.lvxl
6359 // CHECK-LE: store <16 x i8> zeroinitializer
6360 // CHECK-LE: @llvm.ppc.altivec.lvsl
6361 // CHECK-LE: @llvm.ppc.altivec.vperm
6363 res_vs
= vec_lvlxl(0, param_s_ld
);
6364 // CHECK: @llvm.ppc.altivec.lvxl
6365 // CHECK: @llvm.ppc.altivec.lvsl
6366 // CHECK: store <8 x i16> zeroinitializer
6367 // CHECK: @llvm.ppc.altivec.vperm
6368 // CHECK-LE: @llvm.ppc.altivec.lvxl
6369 // CHECK-LE: @llvm.ppc.altivec.lvsl
6370 // CHECK-LE: store <8 x i16> zeroinitializer
6371 // CHECK-LE: @llvm.ppc.altivec.vperm
6373 res_vs
= vec_lvlxl(0, &vs
);
6374 // CHECK: @llvm.ppc.altivec.lvxl
6375 // CHECK: @llvm.ppc.altivec.lvsl
6376 // CHECK: store <8 x i16> zeroinitializer
6377 // CHECK: @llvm.ppc.altivec.vperm
6378 // CHECK-LE: @llvm.ppc.altivec.lvxl
6379 // CHECK-LE: @llvm.ppc.altivec.lvsl
6380 // CHECK-LE: store <8 x i16> zeroinitializer
6381 // CHECK-LE: @llvm.ppc.altivec.vperm
6383 res_vus
= vec_lvlxl(0, param_us_ld
);
6384 // CHECK: @llvm.ppc.altivec.lvxl
6385 // CHECK: @llvm.ppc.altivec.lvsl
6386 // CHECK: store <8 x i16> zeroinitializer
6387 // CHECK: @llvm.ppc.altivec.vperm
6388 // CHECK-LE: @llvm.ppc.altivec.lvxl
6389 // CHECK-LE: @llvm.ppc.altivec.lvsl
6390 // CHECK-LE: store <8 x i16> zeroinitializer
6391 // CHECK-LE: @llvm.ppc.altivec.vperm
6393 res_vus
= vec_lvlxl(0, &vus
);
6394 // CHECK: @llvm.ppc.altivec.lvxl
6395 // CHECK: @llvm.ppc.altivec.lvsl
6396 // CHECK: store <8 x i16> zeroinitializer
6397 // CHECK: @llvm.ppc.altivec.vperm
6398 // CHECK-LE: @llvm.ppc.altivec.lvxl
6399 // CHECK-LE: @llvm.ppc.altivec.lvsl
6400 // CHECK-LE: store <8 x i16> zeroinitializer
6401 // CHECK-LE: @llvm.ppc.altivec.vperm
6403 res_vbs
= vec_lvlxl(0, &vbs
);
6404 // CHECK: @llvm.ppc.altivec.lvxl
6405 // CHECK: store <8 x i16> zeroinitializer
6406 // CHECK: @llvm.ppc.altivec.lvsl
6407 // CHECK: @llvm.ppc.altivec.vperm
6408 // CHECK-LE: @llvm.ppc.altivec.lvxl
6409 // CHECK-LE: store <8 x i16> zeroinitializer
6410 // CHECK-LE: @llvm.ppc.altivec.lvsl
6411 // CHECK-LE: @llvm.ppc.altivec.vperm
6413 res_vp
= vec_lvlxl(0, &vp
);
6414 // CHECK: @llvm.ppc.altivec.lvxl
6415 // CHECK: store <8 x i16> zeroinitializer
6416 // CHECK: @llvm.ppc.altivec.lvsl
6417 // CHECK: @llvm.ppc.altivec.vperm
6418 // CHECK-LE: @llvm.ppc.altivec.lvxl
6419 // CHECK-LE: store <8 x i16> zeroinitializer
6420 // CHECK-LE: @llvm.ppc.altivec.lvsl
6421 // CHECK-LE: @llvm.ppc.altivec.vperm
6423 res_vi
= vec_lvlxl(0, param_i_ld
);
6424 // CHECK: @llvm.ppc.altivec.lvxl
6425 // CHECK: @llvm.ppc.altivec.lvsl
6426 // CHECK: store <4 x i32> zeroinitializer
6427 // CHECK: @llvm.ppc.altivec.vperm
6428 // CHECK-LE: @llvm.ppc.altivec.lvxl
6429 // CHECK-LE: @llvm.ppc.altivec.lvsl
6430 // CHECK-LE: store <4 x i32> zeroinitializer
6431 // CHECK-LE: @llvm.ppc.altivec.vperm
6433 res_vi
= vec_lvlxl(0, &vi
);
6434 // CHECK: @llvm.ppc.altivec.lvxl
6435 // CHECK: @llvm.ppc.altivec.lvsl
6436 // CHECK: store <4 x i32> zeroinitializer
6437 // CHECK: @llvm.ppc.altivec.vperm
6438 // CHECK-LE: @llvm.ppc.altivec.lvxl
6439 // CHECK-LE: @llvm.ppc.altivec.lvsl
6440 // CHECK-LE: store <4 x i32> zeroinitializer
6441 // CHECK-LE: @llvm.ppc.altivec.vperm
6443 res_vui
= vec_lvlxl(0, param_ui_ld
);
6444 // CHECK: @llvm.ppc.altivec.lvxl
6445 // CHECK: @llvm.ppc.altivec.lvsl
6446 // CHECK: store <4 x i32> zeroinitializer
6447 // CHECK: @llvm.ppc.altivec.vperm
6448 // CHECK-LE: @llvm.ppc.altivec.lvxl
6449 // CHECK-LE: @llvm.ppc.altivec.lvsl
6450 // CHECK-LE: store <4 x i32> zeroinitializer
6451 // CHECK-LE: @llvm.ppc.altivec.vperm
6453 res_vui
= vec_lvlxl(0, &vui
);
6454 // CHECK: @llvm.ppc.altivec.lvxl
6455 // CHECK: @llvm.ppc.altivec.lvsl
6456 // CHECK: store <4 x i32> zeroinitializer
6457 // CHECK: @llvm.ppc.altivec.vperm
6458 // CHECK-LE: @llvm.ppc.altivec.lvxl
6459 // CHECK-LE: @llvm.ppc.altivec.lvsl
6460 // CHECK-LE: store <4 x i32> zeroinitializer
6461 // CHECK-LE: @llvm.ppc.altivec.vperm
6463 res_vbi
= vec_lvlxl(0, &vbi
);
6464 // CHECK: @llvm.ppc.altivec.lvxl
6465 // CHECK: store <4 x i32> zeroinitializer
6466 // CHECK: @llvm.ppc.altivec.lvsl
6467 // CHECK: @llvm.ppc.altivec.vperm
6468 // CHECK-LE: @llvm.ppc.altivec.lvxl
6469 // CHECK-LE: store <4 x i32> zeroinitializer
6470 // CHECK-LE: @llvm.ppc.altivec.lvsl
6471 // CHECK-LE: @llvm.ppc.altivec.vperm
6473 res_vf
= vec_lvlxl(0, &vf
);
6474 // CHECK: @llvm.ppc.altivec.lvxl
6475 // CHECK: @llvm.ppc.altivec.lvsl
6476 // CHECK: store <4 x float> zeroinitializer
6477 // CHECK: @llvm.ppc.altivec.vperm
6478 // CHECK-LE: @llvm.ppc.altivec.lvxl
6479 // CHECK-LE: @llvm.ppc.altivec.lvsl
6480 // CHECK-LE: store <4 x float> zeroinitializer
6481 // CHECK-LE: @llvm.ppc.altivec.vperm
6484 res_vsc
= vec_lvrx(0, param_sc_ld
);
6485 // CHECK: @llvm.ppc.altivec.lvx
6486 // CHECK: @llvm.ppc.altivec.lvsl
6487 // CHECK: store <16 x i8> zeroinitializer
6488 // CHECK: @llvm.ppc.altivec.vperm
6489 // CHECK-LE: @llvm.ppc.altivec.lvx
6490 // CHECK-LE: @llvm.ppc.altivec.lvsl
6491 // CHECK-LE: store <16 x i8> zeroinitializer
6492 // CHECK-LE: @llvm.ppc.altivec.vperm
6494 res_vsc
= vec_lvrx(0, &vsc
);
6495 // CHECK: @llvm.ppc.altivec.lvx
6496 // CHECK: @llvm.ppc.altivec.lvsl
6497 // CHECK: store <16 x i8> zeroinitializer
6498 // CHECK: @llvm.ppc.altivec.vperm
6499 // CHECK-LE: @llvm.ppc.altivec.lvx
6500 // CHECK-LE: @llvm.ppc.altivec.lvsl
6501 // CHECK-LE: store <16 x i8> zeroinitializer
6502 // CHECK-LE: @llvm.ppc.altivec.vperm
6504 res_vuc
= vec_lvrx(0, param_uc_ld
);
6505 // CHECK: @llvm.ppc.altivec.lvx
6506 // CHECK: @llvm.ppc.altivec.lvsl
6507 // CHECK: store <16 x i8> zeroinitializer
6508 // CHECK: @llvm.ppc.altivec.vperm
6509 // CHECK-LE: @llvm.ppc.altivec.lvx
6510 // CHECK-LE: @llvm.ppc.altivec.lvsl
6511 // CHECK-LE: store <16 x i8> zeroinitializer
6512 // CHECK-LE: @llvm.ppc.altivec.vperm
6514 res_vuc
= vec_lvrx(0, &vuc
);
6515 // CHECK: @llvm.ppc.altivec.lvx
6516 // CHECK: @llvm.ppc.altivec.lvsl
6517 // CHECK: store <16 x i8> zeroinitializer
6518 // CHECK: @llvm.ppc.altivec.vperm
6519 // CHECK-LE: @llvm.ppc.altivec.lvx
6520 // CHECK-LE: @llvm.ppc.altivec.lvsl
6521 // CHECK-LE: store <16 x i8> zeroinitializer
6522 // CHECK-LE: @llvm.ppc.altivec.vperm
6524 res_vbc
= vec_lvrx(0, &vbc
);
6525 // CHECK: store <16 x i8> zeroinitializer
6526 // CHECK: @llvm.ppc.altivec.lvx
6527 // CHECK: @llvm.ppc.altivec.lvsl
6528 // CHECK: @llvm.ppc.altivec.vperm
6529 // CHECK-LE: store <16 x i8> zeroinitializer
6530 // CHECK-LE: @llvm.ppc.altivec.lvx
6531 // CHECK-LE: @llvm.ppc.altivec.lvsl
6532 // CHECK-LE: @llvm.ppc.altivec.vperm
6534 res_vs
= vec_lvrx(0, param_s_ld
);
6535 // CHECK: @llvm.ppc.altivec.lvx
6536 // CHECK: @llvm.ppc.altivec.lvsl
6537 // CHECK: store <8 x i16> zeroinitializer
6538 // CHECK: @llvm.ppc.altivec.vperm
6539 // CHECK-LE: @llvm.ppc.altivec.lvx
6540 // CHECK-LE: @llvm.ppc.altivec.lvsl
6541 // CHECK-LE: store <8 x i16> zeroinitializer
6542 // CHECK-LE: @llvm.ppc.altivec.vperm
6544 res_vs
= vec_lvrx(0, &vs
);
6545 // CHECK: @llvm.ppc.altivec.lvx
6546 // CHECK: @llvm.ppc.altivec.lvsl
6547 // CHECK: store <8 x i16> zeroinitializer
6548 // CHECK: @llvm.ppc.altivec.vperm
6549 // CHECK-LE: @llvm.ppc.altivec.lvx
6550 // CHECK-LE: @llvm.ppc.altivec.lvsl
6551 // CHECK-LE: store <8 x i16> zeroinitializer
6552 // CHECK-LE: @llvm.ppc.altivec.vperm
6554 res_vus
= vec_lvrx(0, param_us_ld
);
6555 // CHECK: @llvm.ppc.altivec.lvx
6556 // CHECK: @llvm.ppc.altivec.lvsl
6557 // CHECK: store <8 x i16> zeroinitializer
6558 // CHECK: @llvm.ppc.altivec.vperm
6559 // CHECK-LE: @llvm.ppc.altivec.lvx
6560 // CHECK-LE: @llvm.ppc.altivec.lvsl
6561 // CHECK-LE: store <8 x i16> zeroinitializer
6562 // CHECK-LE: @llvm.ppc.altivec.vperm
6564 res_vus
= vec_lvrx(0, &vus
);
6565 // CHECK: @llvm.ppc.altivec.lvx
6566 // CHECK: @llvm.ppc.altivec.lvsl
6567 // CHECK: store <8 x i16> zeroinitializer
6568 // CHECK: @llvm.ppc.altivec.vperm
6569 // CHECK-LE: @llvm.ppc.altivec.lvx
6570 // CHECK-LE: @llvm.ppc.altivec.lvsl
6571 // CHECK-LE: store <8 x i16> zeroinitializer
6572 // CHECK-LE: @llvm.ppc.altivec.vperm
6574 res_vbs
= vec_lvrx(0, &vbs
);
6575 // CHECK: store <8 x i16> zeroinitializer
6576 // CHECK: @llvm.ppc.altivec.lvx
6577 // CHECK: @llvm.ppc.altivec.lvsl
6578 // CHECK: @llvm.ppc.altivec.vperm
6579 // CHECK-LE: store <8 x i16> zeroinitializer
6580 // CHECK-LE: @llvm.ppc.altivec.lvx
6581 // CHECK-LE: @llvm.ppc.altivec.lvsl
6582 // CHECK-LE: @llvm.ppc.altivec.vperm
6584 res_vp
= vec_lvrx(0, &vp
);
6585 // CHECK: store <8 x i16> zeroinitializer
6586 // CHECK: @llvm.ppc.altivec.lvx
6587 // CHECK: @llvm.ppc.altivec.lvsl
6588 // CHECK: @llvm.ppc.altivec.vperm
6589 // CHECK-LE: store <8 x i16> zeroinitializer
6590 // CHECK-LE: @llvm.ppc.altivec.lvx
6591 // CHECK-LE: @llvm.ppc.altivec.lvsl
6592 // CHECK-LE: @llvm.ppc.altivec.vperm
6594 res_vi
= vec_lvrx(0, param_i_ld
);
6595 // CHECK: @llvm.ppc.altivec.lvx
6596 // CHECK: @llvm.ppc.altivec.lvsl
6597 // CHECK: store <4 x i32> zeroinitializer
6598 // CHECK: @llvm.ppc.altivec.vperm
6599 // CHECK-LE: @llvm.ppc.altivec.lvx
6600 // CHECK-LE: @llvm.ppc.altivec.lvsl
6601 // CHECK-LE: store <4 x i32> zeroinitializer
6602 // CHECK-LE: @llvm.ppc.altivec.vperm
6604 res_vi
= vec_lvrx(0, &vi
);
6605 // CHECK: @llvm.ppc.altivec.lvx
6606 // CHECK: @llvm.ppc.altivec.lvsl
6607 // CHECK: store <4 x i32> zeroinitializer
6608 // CHECK: @llvm.ppc.altivec.vperm
6609 // CHECK-LE: @llvm.ppc.altivec.lvx
6610 // CHECK-LE: @llvm.ppc.altivec.lvsl
6611 // CHECK-LE: store <4 x i32> zeroinitializer
6612 // CHECK-LE: @llvm.ppc.altivec.vperm
6614 res_vui
= vec_lvrx(0, param_ui_ld
);
6615 // CHECK: @llvm.ppc.altivec.lvx
6616 // CHECK: @llvm.ppc.altivec.lvsl
6617 // CHECK: store <4 x i32> zeroinitializer
6618 // CHECK: @llvm.ppc.altivec.vperm
6619 // CHECK-LE: @llvm.ppc.altivec.lvx
6620 // CHECK-LE: @llvm.ppc.altivec.lvsl
6621 // CHECK-LE: store <4 x i32> zeroinitializer
6622 // CHECK-LE: @llvm.ppc.altivec.vperm
6624 res_vui
= vec_lvrx(0, &vui
);
6625 // CHECK: @llvm.ppc.altivec.lvx
6626 // CHECK: @llvm.ppc.altivec.lvsl
6627 // CHECK: store <4 x i32> zeroinitializer
6628 // CHECK: @llvm.ppc.altivec.vperm
6629 // CHECK-LE: @llvm.ppc.altivec.lvx
6630 // CHECK-LE: @llvm.ppc.altivec.lvsl
6631 // CHECK-LE: store <4 x i32> zeroinitializer
6632 // CHECK-LE: @llvm.ppc.altivec.vperm
6634 res_vbi
= vec_lvrx(0, &vbi
);
6635 // CHECK: store <4 x i32> zeroinitializer
6636 // CHECK: @llvm.ppc.altivec.lvx
6637 // CHECK: @llvm.ppc.altivec.lvsl
6638 // CHECK: @llvm.ppc.altivec.vperm
6639 // CHECK-LE: store <4 x i32> zeroinitializer
6640 // CHECK-LE: @llvm.ppc.altivec.lvx
6641 // CHECK-LE: @llvm.ppc.altivec.lvsl
6642 // CHECK-LE: @llvm.ppc.altivec.vperm
6644 res_vf
= vec_lvrx(0, &vf
);
6645 // CHECK: @llvm.ppc.altivec.lvx
6646 // CHECK: @llvm.ppc.altivec.lvsl
6647 // CHECK: store <4 x float> zeroinitializer
6648 // CHECK: @llvm.ppc.altivec.vperm
6649 // CHECK-LE: @llvm.ppc.altivec.lvx
6650 // CHECK-LE: @llvm.ppc.altivec.lvsl
6651 // CHECK-LE: store <4 x float> zeroinitializer
6652 // CHECK-LE: @llvm.ppc.altivec.vperm
6655 res_vsc
= vec_lvrxl(0, param_sc_ld
);
6656 // CHECK: @llvm.ppc.altivec.lvxl
6657 // CHECK: @llvm.ppc.altivec.lvsl
6658 // CHECK: store <16 x i8> zeroinitializer
6659 // CHECK: @llvm.ppc.altivec.vperm
6660 // CHECK-LE: @llvm.ppc.altivec.lvxl
6661 // CHECK-LE: @llvm.ppc.altivec.lvsl
6662 // CHECK-LE: store <16 x i8> zeroinitializer
6663 // CHECK-LE: @llvm.ppc.altivec.vperm
6665 res_vsc
= vec_lvrxl(0, &vsc
);
6666 // CHECK: @llvm.ppc.altivec.lvxl
6667 // CHECK: @llvm.ppc.altivec.lvsl
6668 // CHECK: store <16 x i8> zeroinitializer
6669 // CHECK: @llvm.ppc.altivec.vperm
6670 // CHECK-LE: @llvm.ppc.altivec.lvxl
6671 // CHECK-LE: @llvm.ppc.altivec.lvsl
6672 // CHECK-LE: store <16 x i8> zeroinitializer
6673 // CHECK-LE: @llvm.ppc.altivec.vperm
6675 res_vuc
= vec_lvrxl(0, param_uc_ld
);
6676 // CHECK: @llvm.ppc.altivec.lvxl
6677 // CHECK: @llvm.ppc.altivec.lvsl
6678 // CHECK: store <16 x i8> zeroinitializer
6679 // CHECK: @llvm.ppc.altivec.vperm
6680 // CHECK-LE: @llvm.ppc.altivec.lvxl
6681 // CHECK-LE: @llvm.ppc.altivec.lvsl
6682 // CHECK-LE: store <16 x i8> zeroinitializer
6683 // CHECK-LE: @llvm.ppc.altivec.vperm
6685 res_vuc
= vec_lvrxl(0, &vuc
);
6686 // CHECK: @llvm.ppc.altivec.lvxl
6687 // CHECK: @llvm.ppc.altivec.lvsl
6688 // CHECK: store <16 x i8> zeroinitializer
6689 // CHECK: @llvm.ppc.altivec.vperm
6690 // CHECK-LE: @llvm.ppc.altivec.lvxl
6691 // CHECK-LE: @llvm.ppc.altivec.lvsl
6692 // CHECK-LE: store <16 x i8> zeroinitializer
6693 // CHECK-LE: @llvm.ppc.altivec.vperm
6695 res_vbc
= vec_lvrxl(0, &vbc
);
6696 // CHECK: store <16 x i8> zeroinitializer
6697 // CHECK: @llvm.ppc.altivec.lvxl
6698 // CHECK: @llvm.ppc.altivec.lvsl
6699 // CHECK: @llvm.ppc.altivec.vperm
6700 // CHECK-LE: store <16 x i8> zeroinitializer
6701 // CHECK-LE: @llvm.ppc.altivec.lvxl
6702 // CHECK-LE: @llvm.ppc.altivec.lvsl
6703 // CHECK-LE: @llvm.ppc.altivec.vperm
6705 res_vs
= vec_lvrxl(0, param_s_ld
);
6706 // CHECK: @llvm.ppc.altivec.lvxl
6707 // CHECK: @llvm.ppc.altivec.lvsl
6708 // CHECK: store <8 x i16> zeroinitializer
6709 // CHECK: @llvm.ppc.altivec.vperm
6710 // CHECK-LE: @llvm.ppc.altivec.lvxl
6711 // CHECK-LE: @llvm.ppc.altivec.lvsl
6712 // CHECK-LE: store <8 x i16> zeroinitializer
6713 // CHECK-LE: @llvm.ppc.altivec.vperm
6715 res_vs
= vec_lvrxl(0, &vs
);
6716 // CHECK: @llvm.ppc.altivec.lvxl
6717 // CHECK: @llvm.ppc.altivec.lvsl
6718 // CHECK: store <8 x i16> zeroinitializer
6719 // CHECK: @llvm.ppc.altivec.vperm
6720 // CHECK-LE: @llvm.ppc.altivec.lvxl
6721 // CHECK-LE: @llvm.ppc.altivec.lvsl
6722 // CHECK-LE: store <8 x i16> zeroinitializer
6723 // CHECK-LE: @llvm.ppc.altivec.vperm
6725 res_vus
= vec_lvrxl(0, param_us_ld
);
6726 // CHECK: @llvm.ppc.altivec.lvxl
6727 // CHECK: @llvm.ppc.altivec.lvsl
6728 // CHECK: store <8 x i16> zeroinitializer
6729 // CHECK: @llvm.ppc.altivec.vperm
6730 // CHECK-LE: @llvm.ppc.altivec.lvxl
6731 // CHECK-LE: @llvm.ppc.altivec.lvsl
6732 // CHECK-LE: store <8 x i16> zeroinitializer
6733 // CHECK-LE: @llvm.ppc.altivec.vperm
6735 res_vus
= vec_lvrxl(0, &vus
);
6736 // CHECK: @llvm.ppc.altivec.lvxl
6737 // CHECK: @llvm.ppc.altivec.lvsl
6738 // CHECK: store <8 x i16> zeroinitializer
6739 // CHECK: @llvm.ppc.altivec.vperm
6740 // CHECK-LE: @llvm.ppc.altivec.lvxl
6741 // CHECK-LE: @llvm.ppc.altivec.lvsl
6742 // CHECK-LE: store <8 x i16> zeroinitializer
6743 // CHECK-LE: @llvm.ppc.altivec.vperm
6745 res_vbs
= vec_lvrxl(0, &vbs
);
6746 // CHECK: store <8 x i16> zeroinitializer
6747 // CHECK: @llvm.ppc.altivec.lvxl
6748 // CHECK: @llvm.ppc.altivec.lvsl
6749 // CHECK: @llvm.ppc.altivec.vperm
6750 // CHECK-LE: store <8 x i16> zeroinitializer
6751 // CHECK-LE: @llvm.ppc.altivec.lvxl
6752 // CHECK-LE: @llvm.ppc.altivec.lvsl
6753 // CHECK-LE: @llvm.ppc.altivec.vperm
6755 res_vp
= vec_lvrxl(0, &vp
);
6756 // CHECK: store <8 x i16> zeroinitializer
6757 // CHECK: @llvm.ppc.altivec.lvxl
6758 // CHECK: @llvm.ppc.altivec.lvsl
6759 // CHECK: @llvm.ppc.altivec.vperm
6760 // CHECK-LE: store <8 x i16> zeroinitializer
6761 // CHECK-LE: @llvm.ppc.altivec.lvxl
6762 // CHECK-LE: @llvm.ppc.altivec.lvsl
6763 // CHECK-LE: @llvm.ppc.altivec.vperm
6765 res_vi
= vec_lvrxl(0, param_i_ld
);
6766 // CHECK: @llvm.ppc.altivec.lvxl
6767 // CHECK: @llvm.ppc.altivec.lvsl
6768 // CHECK: store <4 x i32> zeroinitializer
6769 // CHECK: @llvm.ppc.altivec.vperm
6770 // CHECK-LE: @llvm.ppc.altivec.lvxl
6771 // CHECK-LE: @llvm.ppc.altivec.lvsl
6772 // CHECK-LE: store <4 x i32> zeroinitializer
6773 // CHECK-LE: @llvm.ppc.altivec.vperm
6775 res_vi
= vec_lvrxl(0, &vi
);
6776 // CHECK: @llvm.ppc.altivec.lvxl
6777 // CHECK: @llvm.ppc.altivec.lvsl
6778 // CHECK: store <4 x i32> zeroinitializer
6779 // CHECK: @llvm.ppc.altivec.vperm
6780 // CHECK-LE: @llvm.ppc.altivec.lvxl
6781 // CHECK-LE: @llvm.ppc.altivec.lvsl
6782 // CHECK-LE: store <4 x i32> zeroinitializer
6783 // CHECK-LE: @llvm.ppc.altivec.vperm
6785 res_vui
= vec_lvrxl(0, param_ui_ld
);
6786 // CHECK: @llvm.ppc.altivec.lvxl
6787 // CHECK: @llvm.ppc.altivec.lvsl
6788 // CHECK: store <4 x i32> zeroinitializer
6789 // CHECK: @llvm.ppc.altivec.vperm
6790 // CHECK-LE: @llvm.ppc.altivec.lvxl
6791 // CHECK-LE: @llvm.ppc.altivec.lvsl
6792 // CHECK-LE: store <4 x i32> zeroinitializer
6793 // CHECK-LE: @llvm.ppc.altivec.vperm
6795 res_vui
= vec_lvrxl(0, &vui
);
6796 // CHECK: @llvm.ppc.altivec.lvxl
6797 // CHECK: @llvm.ppc.altivec.lvsl
6798 // CHECK: store <4 x i32> zeroinitializer
6799 // CHECK: @llvm.ppc.altivec.vperm
6800 // CHECK-LE: @llvm.ppc.altivec.lvxl
6801 // CHECK-LE: @llvm.ppc.altivec.lvsl
6802 // CHECK-LE: store <4 x i32> zeroinitializer
6803 // CHECK-LE: @llvm.ppc.altivec.vperm
6805 res_vbi
= vec_lvrxl(0, &vbi
);
6806 // CHECK: store <4 x i32> zeroinitializer
6807 // CHECK: @llvm.ppc.altivec.lvxl
6808 // CHECK: @llvm.ppc.altivec.lvsl
6809 // CHECK: @llvm.ppc.altivec.vperm
6810 // CHECK-LE: store <4 x i32> zeroinitializer
6811 // CHECK-LE: @llvm.ppc.altivec.lvxl
6812 // CHECK-LE: @llvm.ppc.altivec.lvsl
6813 // CHECK-LE: @llvm.ppc.altivec.vperm
6815 res_vf
= vec_lvrxl(0, &vf
);
6816 // CHECK: @llvm.ppc.altivec.lvxl
6817 // CHECK: @llvm.ppc.altivec.lvsl
6818 // CHECK: store <4 x float> zeroinitializer
6819 // CHECK: @llvm.ppc.altivec.vperm
6820 // CHECK-LE: @llvm.ppc.altivec.lvxl
6821 // CHECK-LE: @llvm.ppc.altivec.lvsl
6822 // CHECK-LE: store <4 x float> zeroinitializer
6823 // CHECK-LE: @llvm.ppc.altivec.vperm
6826 vec_stvlx(vsc
, 0, ¶m_sc
);
6827 // CHECK: @llvm.ppc.altivec.lvx
6828 // CHECK: @llvm.ppc.altivec.lvsl
6829 // CHECK: store <16 x i8> zeroinitializer
6830 // CHECK: @llvm.ppc.altivec.vperm
6831 // CHECK: @llvm.ppc.altivec.lvsr
6832 // CHECK: @llvm.ppc.altivec.vperm
6833 // CHECK: @llvm.ppc.altivec.stvx
6834 // CHECK-LE: @llvm.ppc.altivec.lvx
6835 // CHECK-LE: @llvm.ppc.altivec.lvsl
6836 // CHECK-LE: store <16 x i8> zeroinitializer
6837 // CHECK-LE: @llvm.ppc.altivec.vperm
6838 // CHECK-LE: @llvm.ppc.altivec.lvsr
6839 // CHECK-LE: @llvm.ppc.altivec.vperm
6840 // CHECK-LE: @llvm.ppc.altivec.stvx
6842 vec_stvlx(vsc
, 0, &vsc
);
6843 // CHECK: @llvm.ppc.altivec.lvx
6844 // CHECK: @llvm.ppc.altivec.lvsl
6845 // CHECK: store <16 x i8> zeroinitializer
6846 // CHECK: @llvm.ppc.altivec.vperm
6847 // CHECK: @llvm.ppc.altivec.lvsr
6848 // CHECK: @llvm.ppc.altivec.vperm
6849 // CHECK: @llvm.ppc.altivec.stvx
6850 // CHECK-LE: @llvm.ppc.altivec.lvx
6851 // CHECK-LE: @llvm.ppc.altivec.lvsl
6852 // CHECK-LE: store <16 x i8> zeroinitializer
6853 // CHECK-LE: @llvm.ppc.altivec.vperm
6854 // CHECK-LE: @llvm.ppc.altivec.lvsr
6855 // CHECK-LE: @llvm.ppc.altivec.vperm
6856 // CHECK-LE: @llvm.ppc.altivec.stvx
6858 vec_stvlx(vuc
, 0, ¶m_uc
);
6859 // CHECK: @llvm.ppc.altivec.lvx
6860 // CHECK: @llvm.ppc.altivec.lvsl
6861 // CHECK: store <16 x i8> zeroinitializer
6862 // CHECK: @llvm.ppc.altivec.vperm
6863 // CHECK: @llvm.ppc.altivec.lvsr
6864 // CHECK: @llvm.ppc.altivec.vperm
6865 // CHECK: @llvm.ppc.altivec.stvx
6866 // CHECK-LE: @llvm.ppc.altivec.lvx
6867 // CHECK-LE: @llvm.ppc.altivec.lvsl
6868 // CHECK-LE: store <16 x i8> zeroinitializer
6869 // CHECK-LE: @llvm.ppc.altivec.vperm
6870 // CHECK-LE: @llvm.ppc.altivec.lvsr
6871 // CHECK-LE: @llvm.ppc.altivec.vperm
6872 // CHECK-LE: @llvm.ppc.altivec.stvx
6874 vec_stvlx(vuc
, 0, &vuc
);
6875 // CHECK: @llvm.ppc.altivec.lvx
6876 // CHECK: @llvm.ppc.altivec.lvsl
6877 // CHECK: store <16 x i8> zeroinitializer
6878 // CHECK: @llvm.ppc.altivec.vperm
6879 // CHECK: @llvm.ppc.altivec.lvsr
6880 // CHECK: @llvm.ppc.altivec.vperm
6881 // CHECK: @llvm.ppc.altivec.stvx
6882 // CHECK-LE: @llvm.ppc.altivec.lvx
6883 // CHECK-LE: @llvm.ppc.altivec.lvsl
6884 // CHECK-LE: store <16 x i8> zeroinitializer
6885 // CHECK-LE: @llvm.ppc.altivec.vperm
6886 // CHECK-LE: @llvm.ppc.altivec.lvsr
6887 // CHECK-LE: @llvm.ppc.altivec.vperm
6888 // CHECK-LE: @llvm.ppc.altivec.stvx
6890 vec_stvlx(vbc
, 0, &vbc
);
6891 // CHECK: store <16 x i8> zeroinitializer
6892 // CHECK: @llvm.ppc.altivec.lvx
6893 // CHECK: @llvm.ppc.altivec.lvsl
6894 // CHECK: @llvm.ppc.altivec.vperm
6895 // CHECK: @llvm.ppc.altivec.lvsr
6896 // CHECK: @llvm.ppc.altivec.vperm
6897 // CHECK: @llvm.ppc.altivec.stvx
6898 // CHECK-LE: store <16 x i8> zeroinitializer
6899 // CHECK-LE: @llvm.ppc.altivec.lvx
6900 // CHECK-LE: @llvm.ppc.altivec.lvsl
6901 // CHECK-LE: @llvm.ppc.altivec.vperm
6902 // CHECK-LE: @llvm.ppc.altivec.lvsr
6903 // CHECK-LE: @llvm.ppc.altivec.vperm
6904 // CHECK-LE: @llvm.ppc.altivec.stvx
6906 vec_stvlx(vs
, 0, ¶m_s
);
6907 // CHECK: @llvm.ppc.altivec.lvx
6908 // CHECK: @llvm.ppc.altivec.lvsl
6909 // CHECK: store <8 x i16> zeroinitializer
6910 // CHECK: @llvm.ppc.altivec.vperm
6911 // CHECK: @llvm.ppc.altivec.lvsr
6912 // CHECK: @llvm.ppc.altivec.vperm
6913 // CHECK: @llvm.ppc.altivec.stvx
6914 // CHECK-LE: @llvm.ppc.altivec.lvx
6915 // CHECK-LE: @llvm.ppc.altivec.lvsl
6916 // CHECK-LE: store <8 x i16> zeroinitializer
6917 // CHECK-LE: @llvm.ppc.altivec.vperm
6918 // CHECK-LE: @llvm.ppc.altivec.lvsr
6919 // CHECK-LE: @llvm.ppc.altivec.vperm
6920 // CHECK-LE: @llvm.ppc.altivec.stvx
6922 vec_stvlx(vs
, 0, &vs
);
6923 // CHECK: @llvm.ppc.altivec.lvx
6924 // CHECK: @llvm.ppc.altivec.lvsl
6925 // CHECK: store <8 x i16> zeroinitializer
6926 // CHECK: @llvm.ppc.altivec.vperm
6927 // CHECK: @llvm.ppc.altivec.lvsr
6928 // CHECK: @llvm.ppc.altivec.vperm
6929 // CHECK: @llvm.ppc.altivec.stvx
6930 // CHECK-LE: @llvm.ppc.altivec.lvx
6931 // CHECK-LE: @llvm.ppc.altivec.lvsl
6932 // CHECK-LE: store <8 x i16> zeroinitializer
6933 // CHECK-LE: @llvm.ppc.altivec.vperm
6934 // CHECK-LE: @llvm.ppc.altivec.lvsr
6935 // CHECK-LE: @llvm.ppc.altivec.vperm
6936 // CHECK-LE: @llvm.ppc.altivec.stvx
6938 vec_stvlx(vus
, 0, ¶m_us
);
6939 // CHECK: @llvm.ppc.altivec.lvx
6940 // CHECK: @llvm.ppc.altivec.lvsl
6941 // CHECK: store <8 x i16> zeroinitializer
6942 // CHECK: @llvm.ppc.altivec.vperm
6943 // CHECK: @llvm.ppc.altivec.lvsr
6944 // CHECK: @llvm.ppc.altivec.vperm
6945 // CHECK: @llvm.ppc.altivec.stvx
6946 // CHECK-LE: @llvm.ppc.altivec.lvx
6947 // CHECK-LE: @llvm.ppc.altivec.lvsl
6948 // CHECK-LE: store <8 x i16> zeroinitializer
6949 // CHECK-LE: @llvm.ppc.altivec.vperm
6950 // CHECK-LE: @llvm.ppc.altivec.lvsr
6951 // CHECK-LE: @llvm.ppc.altivec.vperm
6952 // CHECK-LE: @llvm.ppc.altivec.stvx
6954 vec_stvlx(vus
, 0, &vus
);
6955 // CHECK: @llvm.ppc.altivec.lvx
6956 // CHECK: @llvm.ppc.altivec.lvsl
6957 // CHECK: store <8 x i16> zeroinitializer
6958 // CHECK: @llvm.ppc.altivec.vperm
6959 // CHECK: @llvm.ppc.altivec.lvsr
6960 // CHECK: @llvm.ppc.altivec.vperm
6961 // CHECK: @llvm.ppc.altivec.stvx
6962 // CHECK-LE: @llvm.ppc.altivec.lvx
6963 // CHECK-LE: @llvm.ppc.altivec.lvsl
6964 // CHECK-LE: store <8 x i16> zeroinitializer
6965 // CHECK-LE: @llvm.ppc.altivec.vperm
6966 // CHECK-LE: @llvm.ppc.altivec.lvsr
6967 // CHECK-LE: @llvm.ppc.altivec.vperm
6968 // CHECK-LE: @llvm.ppc.altivec.stvx
6970 vec_stvlx(vbs
, 0, &vbs
);
6971 // CHECK: store <8 x i16> zeroinitializer
6972 // CHECK: @llvm.ppc.altivec.lvx
6973 // CHECK: @llvm.ppc.altivec.lvsl
6974 // CHECK: @llvm.ppc.altivec.vperm
6975 // CHECK: @llvm.ppc.altivec.lvsr
6976 // CHECK: @llvm.ppc.altivec.vperm
6977 // CHECK: @llvm.ppc.altivec.stvx
6978 // CHECK-LE: store <8 x i16> zeroinitializer
6979 // CHECK-LE: @llvm.ppc.altivec.lvx
6980 // CHECK-LE: @llvm.ppc.altivec.lvsl
6981 // CHECK-LE: @llvm.ppc.altivec.vperm
6982 // CHECK-LE: @llvm.ppc.altivec.lvsr
6983 // CHECK-LE: @llvm.ppc.altivec.vperm
6984 // CHECK-LE: @llvm.ppc.altivec.stvx
6986 vec_stvlx(vp
, 0, &vp
);
6987 // CHECK: store <8 x i16> zeroinitializer
6988 // CHECK: @llvm.ppc.altivec.lvx
6989 // CHECK: @llvm.ppc.altivec.lvsl
6990 // CHECK: @llvm.ppc.altivec.vperm
6991 // CHECK: @llvm.ppc.altivec.lvsr
6992 // CHECK: @llvm.ppc.altivec.vperm
6993 // CHECK: @llvm.ppc.altivec.stvx
6994 // CHECK-LE: store <8 x i16> zeroinitializer
6995 // CHECK-LE: @llvm.ppc.altivec.lvx
6996 // CHECK-LE: @llvm.ppc.altivec.lvsl
6997 // CHECK-LE: @llvm.ppc.altivec.vperm
6998 // CHECK-LE: @llvm.ppc.altivec.lvsr
6999 // CHECK-LE: @llvm.ppc.altivec.vperm
7000 // CHECK-LE: @llvm.ppc.altivec.stvx
7002 vec_stvlx(vi
, 0, ¶m_i
);
7003 // CHECK: @llvm.ppc.altivec.lvx
7004 // CHECK: @llvm.ppc.altivec.lvsl
7005 // CHECK: store <4 x i32> zeroinitializer
7006 // CHECK: @llvm.ppc.altivec.vperm
7007 // CHECK: @llvm.ppc.altivec.lvsr
7008 // CHECK: @llvm.ppc.altivec.vperm
7009 // CHECK: @llvm.ppc.altivec.stvx
7010 // CHECK-LE: @llvm.ppc.altivec.lvx
7011 // CHECK-LE: @llvm.ppc.altivec.lvsl
7012 // CHECK-LE: store <4 x i32> zeroinitializer
7013 // CHECK-LE: @llvm.ppc.altivec.vperm
7014 // CHECK-LE: @llvm.ppc.altivec.lvsr
7015 // CHECK-LE: @llvm.ppc.altivec.vperm
7016 // CHECK-LE: @llvm.ppc.altivec.stvx
7018 vec_stvlx(vi
, 0, &vi
);
7019 // CHECK: @llvm.ppc.altivec.lvx
7020 // CHECK: @llvm.ppc.altivec.lvsl
7021 // CHECK: store <4 x i32> zeroinitializer
7022 // CHECK: @llvm.ppc.altivec.vperm
7023 // CHECK: @llvm.ppc.altivec.lvsr
7024 // CHECK: @llvm.ppc.altivec.vperm
7025 // CHECK: @llvm.ppc.altivec.stvx
7026 // CHECK-LE: @llvm.ppc.altivec.lvx
7027 // CHECK-LE: @llvm.ppc.altivec.lvsl
7028 // CHECK-LE: store <4 x i32> zeroinitializer
7029 // CHECK-LE: @llvm.ppc.altivec.vperm
7030 // CHECK-LE: @llvm.ppc.altivec.lvsr
7031 // CHECK-LE: @llvm.ppc.altivec.vperm
7032 // CHECK-LE: @llvm.ppc.altivec.stvx
7034 vec_stvlx(vui
, 0, ¶m_ui
);
7035 // CHECK: @llvm.ppc.altivec.lvx
7036 // CHECK: @llvm.ppc.altivec.lvsl
7037 // CHECK: store <4 x i32> zeroinitializer
7038 // CHECK: @llvm.ppc.altivec.vperm
7039 // CHECK: @llvm.ppc.altivec.lvsr
7040 // CHECK: @llvm.ppc.altivec.vperm
7041 // CHECK: @llvm.ppc.altivec.stvx
7042 // CHECK-LE: @llvm.ppc.altivec.lvx
7043 // CHECK-LE: @llvm.ppc.altivec.lvsl
7044 // CHECK-LE: store <4 x i32> zeroinitializer
7045 // CHECK-LE: @llvm.ppc.altivec.vperm
7046 // CHECK-LE: @llvm.ppc.altivec.lvsr
7047 // CHECK-LE: @llvm.ppc.altivec.vperm
7048 // CHECK-LE: @llvm.ppc.altivec.stvx
7050 vec_stvlx(vui
, 0, &vui
);
7051 // CHECK: @llvm.ppc.altivec.lvx
7052 // CHECK: @llvm.ppc.altivec.lvsl
7053 // CHECK: store <4 x i32> zeroinitializer
7054 // CHECK: @llvm.ppc.altivec.vperm
7055 // CHECK: @llvm.ppc.altivec.lvsr
7056 // CHECK: @llvm.ppc.altivec.vperm
7057 // CHECK: @llvm.ppc.altivec.stvx
7058 // CHECK-LE: @llvm.ppc.altivec.lvx
7059 // CHECK-LE: @llvm.ppc.altivec.lvsl
7060 // CHECK-LE: store <4 x i32> zeroinitializer
7061 // CHECK-LE: @llvm.ppc.altivec.vperm
7062 // CHECK-LE: @llvm.ppc.altivec.lvsr
7063 // CHECK-LE: @llvm.ppc.altivec.vperm
7064 // CHECK-LE: @llvm.ppc.altivec.stvx
7066 vec_stvlx(vbi
, 0, &vbi
);
7067 // CHECK: store <4 x i32> zeroinitializer
7068 // CHECK: @llvm.ppc.altivec.lvx
7069 // CHECK: @llvm.ppc.altivec.lvsl
7070 // CHECK: @llvm.ppc.altivec.vperm
7071 // CHECK: @llvm.ppc.altivec.lvsr
7072 // CHECK: @llvm.ppc.altivec.vperm
7073 // CHECK: @llvm.ppc.altivec.stvx
7074 // CHECK-LE: store <4 x i32> zeroinitializer
7075 // CHECK-LE: @llvm.ppc.altivec.lvx
7076 // CHECK-LE: @llvm.ppc.altivec.lvsl
7077 // CHECK-LE: @llvm.ppc.altivec.vperm
7078 // CHECK-LE: @llvm.ppc.altivec.lvsr
7079 // CHECK-LE: @llvm.ppc.altivec.vperm
7080 // CHECK-LE: @llvm.ppc.altivec.stvx
7082 vec_stvlx(vf
, 0, &vf
);
7083 // CHECK: @llvm.ppc.altivec.lvx
7084 // CHECK: @llvm.ppc.altivec.lvsl
7085 // CHECK: store <4 x float> zeroinitializer
7086 // CHECK: @llvm.ppc.altivec.vperm
7087 // CHECK: @llvm.ppc.altivec.lvsr
7088 // CHECK: @llvm.ppc.altivec.vperm
7089 // CHECK: @llvm.ppc.altivec.stvx
7090 // CHECK-LE: @llvm.ppc.altivec.lvx
7091 // CHECK-LE: @llvm.ppc.altivec.lvsl
7092 // CHECK-LE: store <4 x float> zeroinitializer
7093 // CHECK-LE: @llvm.ppc.altivec.vperm
7094 // CHECK-LE: @llvm.ppc.altivec.lvsr
7095 // CHECK-LE: @llvm.ppc.altivec.vperm
7096 // CHECK-LE: @llvm.ppc.altivec.stvx
7099 vec_stvlxl(vsc
, 0, ¶m_sc
);
7100 // CHECK: @llvm.ppc.altivec.lvx
7101 // CHECK: @llvm.ppc.altivec.lvsl
7102 // CHECK: store <16 x i8> zeroinitializer
7103 // CHECK: @llvm.ppc.altivec.vperm
7104 // CHECK: @llvm.ppc.altivec.lvsr
7105 // CHECK: @llvm.ppc.altivec.vperm
7106 // CHECK: @llvm.ppc.altivec.stvxl
7107 // CHECK-LE: @llvm.ppc.altivec.lvx
7108 // CHECK-LE: @llvm.ppc.altivec.lvsl
7109 // CHECK-LE: store <16 x i8> zeroinitializer
7110 // CHECK-LE: @llvm.ppc.altivec.vperm
7111 // CHECK-LE: @llvm.ppc.altivec.lvsr
7112 // CHECK-LE: @llvm.ppc.altivec.vperm
7113 // CHECK-LE: @llvm.ppc.altivec.stvxl
7115 vec_stvlxl(vsc
, 0, &vsc
);
7116 // CHECK: @llvm.ppc.altivec.lvx
7117 // CHECK: @llvm.ppc.altivec.lvsl
7118 // CHECK: store <16 x i8> zeroinitializer
7119 // CHECK: @llvm.ppc.altivec.vperm
7120 // CHECK: @llvm.ppc.altivec.lvsr
7121 // CHECK: @llvm.ppc.altivec.vperm
7122 // CHECK: @llvm.ppc.altivec.stvxl
7123 // CHECK-LE: @llvm.ppc.altivec.lvx
7124 // CHECK-LE: @llvm.ppc.altivec.lvsl
7125 // CHECK-LE: store <16 x i8> zeroinitializer
7126 // CHECK-LE: @llvm.ppc.altivec.vperm
7127 // CHECK-LE: @llvm.ppc.altivec.lvsr
7128 // CHECK-LE: @llvm.ppc.altivec.vperm
7129 // CHECK-LE: @llvm.ppc.altivec.stvxl
7131 vec_stvlxl(vuc
, 0, ¶m_uc
);
7132 // CHECK: @llvm.ppc.altivec.lvx
7133 // CHECK: @llvm.ppc.altivec.lvsl
7134 // CHECK: store <16 x i8> zeroinitializer
7135 // CHECK: @llvm.ppc.altivec.vperm
7136 // CHECK: @llvm.ppc.altivec.lvsr
7137 // CHECK: @llvm.ppc.altivec.vperm
7138 // CHECK: @llvm.ppc.altivec.stvxl
7139 // CHECK-LE: @llvm.ppc.altivec.lvx
7140 // CHECK-LE: @llvm.ppc.altivec.lvsl
7141 // CHECK-LE: store <16 x i8> zeroinitializer
7142 // CHECK-LE: @llvm.ppc.altivec.vperm
7143 // CHECK-LE: @llvm.ppc.altivec.lvsr
7144 // CHECK-LE: @llvm.ppc.altivec.vperm
7145 // CHECK-LE: @llvm.ppc.altivec.stvxl
7147 vec_stvlxl(vuc
, 0, &vuc
);
7148 // CHECK: @llvm.ppc.altivec.lvx
7149 // CHECK: @llvm.ppc.altivec.lvsl
7150 // CHECK: store <16 x i8> zeroinitializer
7151 // CHECK: @llvm.ppc.altivec.vperm
7152 // CHECK: @llvm.ppc.altivec.lvsr
7153 // CHECK: @llvm.ppc.altivec.vperm
7154 // CHECK: @llvm.ppc.altivec.stvxl
7155 // CHECK-LE: @llvm.ppc.altivec.lvx
7156 // CHECK-LE: @llvm.ppc.altivec.lvsl
7157 // CHECK-LE: store <16 x i8> zeroinitializer
7158 // CHECK-LE: @llvm.ppc.altivec.vperm
7159 // CHECK-LE: @llvm.ppc.altivec.lvsr
7160 // CHECK-LE: @llvm.ppc.altivec.vperm
7161 // CHECK-LE: @llvm.ppc.altivec.stvxl
7163 vec_stvlxl(vbc
, 0, &vbc
);
7164 // CHECK: store <16 x i8> zeroinitializer
7165 // CHECK: @llvm.ppc.altivec.lvx
7166 // CHECK: @llvm.ppc.altivec.lvsl
7167 // CHECK: @llvm.ppc.altivec.vperm
7168 // CHECK: @llvm.ppc.altivec.lvsr
7169 // CHECK: @llvm.ppc.altivec.vperm
7170 // CHECK: @llvm.ppc.altivec.stvxl
7171 // CHECK-LE: store <16 x i8> zeroinitializer
7172 // CHECK-LE: @llvm.ppc.altivec.lvx
7173 // CHECK-LE: @llvm.ppc.altivec.lvsl
7174 // CHECK-LE: @llvm.ppc.altivec.vperm
7175 // CHECK-LE: @llvm.ppc.altivec.lvsr
7176 // CHECK-LE: @llvm.ppc.altivec.vperm
7177 // CHECK-LE: @llvm.ppc.altivec.stvxl
7179 vec_stvlxl(vs
, 0, ¶m_s
);
7180 // CHECK: @llvm.ppc.altivec.lvx
7181 // CHECK: @llvm.ppc.altivec.lvsl
7182 // CHECK: store <8 x i16> zeroinitializer
7183 // CHECK: @llvm.ppc.altivec.vperm
7184 // CHECK: @llvm.ppc.altivec.lvsr
7185 // CHECK: @llvm.ppc.altivec.vperm
7186 // CHECK: @llvm.ppc.altivec.stvxl
7187 // CHECK-LE: @llvm.ppc.altivec.lvx
7188 // CHECK-LE: @llvm.ppc.altivec.lvsl
7189 // CHECK-LE: store <8 x i16> zeroinitializer
7190 // CHECK-LE: @llvm.ppc.altivec.vperm
7191 // CHECK-LE: @llvm.ppc.altivec.lvsr
7192 // CHECK-LE: @llvm.ppc.altivec.vperm
7193 // CHECK-LE: @llvm.ppc.altivec.stvxl
7195 vec_stvlxl(vs
, 0, &vs
);
7196 // CHECK: @llvm.ppc.altivec.lvx
7197 // CHECK: @llvm.ppc.altivec.lvsl
7198 // CHECK: store <8 x i16> zeroinitializer
7199 // CHECK: @llvm.ppc.altivec.vperm
7200 // CHECK: @llvm.ppc.altivec.lvsr
7201 // CHECK: @llvm.ppc.altivec.vperm
7202 // CHECK: @llvm.ppc.altivec.stvxl
7203 // CHECK-LE: @llvm.ppc.altivec.lvx
7204 // CHECK-LE: @llvm.ppc.altivec.lvsl
7205 // CHECK-LE: store <8 x i16> zeroinitializer
7206 // CHECK-LE: @llvm.ppc.altivec.vperm
7207 // CHECK-LE: @llvm.ppc.altivec.lvsr
7208 // CHECK-LE: @llvm.ppc.altivec.vperm
7209 // CHECK-LE: @llvm.ppc.altivec.stvxl
7211 vec_stvlxl(vus
, 0, ¶m_us
);
7212 // CHECK: @llvm.ppc.altivec.lvx
7213 // CHECK: @llvm.ppc.altivec.lvsl
7214 // CHECK: store <8 x i16> zeroinitializer
7215 // CHECK: @llvm.ppc.altivec.vperm
7216 // CHECK: @llvm.ppc.altivec.lvsr
7217 // CHECK: @llvm.ppc.altivec.vperm
7218 // CHECK: @llvm.ppc.altivec.stvxl
7219 // CHECK-LE: @llvm.ppc.altivec.lvx
7220 // CHECK-LE: @llvm.ppc.altivec.lvsl
7221 // CHECK-LE: store <8 x i16> zeroinitializer
7222 // CHECK-LE: @llvm.ppc.altivec.vperm
7223 // CHECK-LE: @llvm.ppc.altivec.lvsr
7224 // CHECK-LE: @llvm.ppc.altivec.vperm
7225 // CHECK-LE: @llvm.ppc.altivec.stvxl
7227 vec_stvlxl(vus
, 0, &vus
);
7228 // CHECK: @llvm.ppc.altivec.lvx
7229 // CHECK: @llvm.ppc.altivec.lvsl
7230 // CHECK: store <8 x i16> zeroinitializer
7231 // CHECK: @llvm.ppc.altivec.vperm
7232 // CHECK: @llvm.ppc.altivec.lvsr
7233 // CHECK: @llvm.ppc.altivec.vperm
7234 // CHECK: @llvm.ppc.altivec.stvxl
7235 // CHECK-LE: @llvm.ppc.altivec.lvx
7236 // CHECK-LE: @llvm.ppc.altivec.lvsl
7237 // CHECK-LE: store <8 x i16> zeroinitializer
7238 // CHECK-LE: @llvm.ppc.altivec.vperm
7239 // CHECK-LE: @llvm.ppc.altivec.lvsr
7240 // CHECK-LE: @llvm.ppc.altivec.vperm
7241 // CHECK-LE: @llvm.ppc.altivec.stvxl
7243 vec_stvlxl(vbs
, 0, &vbs
);
7244 // CHECK: store <8 x i16> zeroinitializer
7245 // CHECK: @llvm.ppc.altivec.lvx
7246 // CHECK: @llvm.ppc.altivec.lvsl
7247 // CHECK: @llvm.ppc.altivec.vperm
7248 // CHECK: @llvm.ppc.altivec.lvsr
7249 // CHECK: @llvm.ppc.altivec.vperm
7250 // CHECK: @llvm.ppc.altivec.stvxl
7251 // CHECK-LE: store <8 x i16> zeroinitializer
7252 // CHECK-LE: @llvm.ppc.altivec.lvx
7253 // CHECK-LE: @llvm.ppc.altivec.lvsl
7254 // CHECK-LE: @llvm.ppc.altivec.vperm
7255 // CHECK-LE: @llvm.ppc.altivec.lvsr
7256 // CHECK-LE: @llvm.ppc.altivec.vperm
7257 // CHECK-LE: @llvm.ppc.altivec.stvxl
7259 vec_stvlxl(vp
, 0, &vp
);
7260 // CHECK: store <8 x i16> zeroinitializer
7261 // CHECK: @llvm.ppc.altivec.lvx
7262 // CHECK: @llvm.ppc.altivec.lvsl
7263 // CHECK: @llvm.ppc.altivec.vperm
7264 // CHECK: @llvm.ppc.altivec.lvsr
7265 // CHECK: @llvm.ppc.altivec.vperm
7266 // CHECK: @llvm.ppc.altivec.stvxl
7267 // CHECK-LE: store <8 x i16> zeroinitializer
7268 // CHECK-LE: @llvm.ppc.altivec.lvx
7269 // CHECK-LE: @llvm.ppc.altivec.lvsl
7270 // CHECK-LE: @llvm.ppc.altivec.vperm
7271 // CHECK-LE: @llvm.ppc.altivec.lvsr
7272 // CHECK-LE: @llvm.ppc.altivec.vperm
7273 // CHECK-LE: @llvm.ppc.altivec.stvxl
7275 vec_stvlxl(vi
, 0, ¶m_i
);
7276 // CHECK: @llvm.ppc.altivec.lvx
7277 // CHECK: @llvm.ppc.altivec.lvsl
7278 // CHECK: store <4 x i32> zeroinitializer
7279 // CHECK: @llvm.ppc.altivec.vperm
7280 // CHECK: @llvm.ppc.altivec.lvsr
7281 // CHECK: @llvm.ppc.altivec.vperm
7282 // CHECK: @llvm.ppc.altivec.stvxl
7283 // CHECK-LE: @llvm.ppc.altivec.lvx
7284 // CHECK-LE: @llvm.ppc.altivec.lvsl
7285 // CHECK-LE: store <4 x i32> zeroinitializer
7286 // CHECK-LE: @llvm.ppc.altivec.vperm
7287 // CHECK-LE: @llvm.ppc.altivec.lvsr
7288 // CHECK-LE: @llvm.ppc.altivec.vperm
7289 // CHECK-LE: @llvm.ppc.altivec.stvxl
7291 vec_stvlxl(vi
, 0, &vi
);
7292 // CHECK: @llvm.ppc.altivec.lvx
7293 // CHECK: @llvm.ppc.altivec.lvsl
7294 // CHECK: store <4 x i32> zeroinitializer
7295 // CHECK: @llvm.ppc.altivec.vperm
7296 // CHECK: @llvm.ppc.altivec.lvsr
7297 // CHECK: @llvm.ppc.altivec.vperm
7298 // CHECK: @llvm.ppc.altivec.stvxl
7299 // CHECK-LE: @llvm.ppc.altivec.lvx
7300 // CHECK-LE: @llvm.ppc.altivec.lvsl
7301 // CHECK-LE: store <4 x i32> zeroinitializer
7302 // CHECK-LE: @llvm.ppc.altivec.vperm
7303 // CHECK-LE: @llvm.ppc.altivec.lvsr
7304 // CHECK-LE: @llvm.ppc.altivec.vperm
7305 // CHECK-LE: @llvm.ppc.altivec.stvxl
7307 vec_stvlxl(vui
, 0, ¶m_ui
);
7308 // CHECK: @llvm.ppc.altivec.lvx
7309 // CHECK: @llvm.ppc.altivec.lvsl
7310 // CHECK: store <4 x i32> zeroinitializer
7311 // CHECK: @llvm.ppc.altivec.vperm
7312 // CHECK: @llvm.ppc.altivec.lvsr
7313 // CHECK: @llvm.ppc.altivec.vperm
7314 // CHECK: @llvm.ppc.altivec.stvxl
7315 // CHECK-LE: @llvm.ppc.altivec.lvx
7316 // CHECK-LE: @llvm.ppc.altivec.lvsl
7317 // CHECK-LE: store <4 x i32> zeroinitializer
7318 // CHECK-LE: @llvm.ppc.altivec.vperm
7319 // CHECK-LE: @llvm.ppc.altivec.lvsr
7320 // CHECK-LE: @llvm.ppc.altivec.vperm
7321 // CHECK-LE: @llvm.ppc.altivec.stvxl
7323 vec_stvlxl(vui
, 0, &vui
);
7324 // CHECK: @llvm.ppc.altivec.lvx
7325 // CHECK: @llvm.ppc.altivec.lvsl
7326 // CHECK: store <4 x i32> zeroinitializer
7327 // CHECK: @llvm.ppc.altivec.vperm
7328 // CHECK: @llvm.ppc.altivec.lvsr
7329 // CHECK: @llvm.ppc.altivec.vperm
7330 // CHECK: @llvm.ppc.altivec.stvxl
7331 // CHECK-LE: @llvm.ppc.altivec.lvx
7332 // CHECK-LE: @llvm.ppc.altivec.lvsl
7333 // CHECK-LE: store <4 x i32> zeroinitializer
7334 // CHECK-LE: @llvm.ppc.altivec.vperm
7335 // CHECK-LE: @llvm.ppc.altivec.lvsr
7336 // CHECK-LE: @llvm.ppc.altivec.vperm
7337 // CHECK-LE: @llvm.ppc.altivec.stvxl
7339 vec_stvlxl(vbi
, 0, &vbi
);
7340 // CHECK: store <4 x i32> zeroinitializer
7341 // CHECK: @llvm.ppc.altivec.lvx
7342 // CHECK: @llvm.ppc.altivec.lvsl
7343 // CHECK: @llvm.ppc.altivec.vperm
7344 // CHECK: @llvm.ppc.altivec.lvsr
7345 // CHECK: @llvm.ppc.altivec.vperm
7346 // CHECK: @llvm.ppc.altivec.stvxl
7347 // CHECK-LE: store <4 x i32> zeroinitializer
7348 // CHECK-LE: @llvm.ppc.altivec.lvx
7349 // CHECK-LE: @llvm.ppc.altivec.lvsl
7350 // CHECK-LE: @llvm.ppc.altivec.vperm
7351 // CHECK-LE: @llvm.ppc.altivec.lvsr
7352 // CHECK-LE: @llvm.ppc.altivec.vperm
7353 // CHECK-LE: @llvm.ppc.altivec.stvxl
7355 vec_stvlxl(vf
, 0, &vf
);
7356 // CHECK: @llvm.ppc.altivec.lvx
7357 // CHECK: @llvm.ppc.altivec.lvsl
7358 // CHECK: store <4 x float> zeroinitializer
7359 // CHECK: @llvm.ppc.altivec.vperm
7360 // CHECK: @llvm.ppc.altivec.lvsr
7361 // CHECK: @llvm.ppc.altivec.vperm
7362 // CHECK: @llvm.ppc.altivec.stvxl
7363 // CHECK-LE: @llvm.ppc.altivec.lvx
7364 // CHECK-LE: @llvm.ppc.altivec.lvsl
7365 // CHECK-LE: store <4 x float> zeroinitializer
7366 // CHECK-LE: @llvm.ppc.altivec.vperm
7367 // CHECK-LE: @llvm.ppc.altivec.lvsr
7368 // CHECK-LE: @llvm.ppc.altivec.vperm
7369 // CHECK-LE: @llvm.ppc.altivec.stvxl
7372 vec_stvrx(vsc
, 0, ¶m_sc
);
7373 // CHECK: @llvm.ppc.altivec.lvx
7374 // CHECK: @llvm.ppc.altivec.lvsl
7375 // CHECK: store <16 x i8> zeroinitializer
7376 // CHECK: @llvm.ppc.altivec.vperm
7377 // CHECK: @llvm.ppc.altivec.lvsr
7378 // CHECK: @llvm.ppc.altivec.vperm
7379 // CHECK: @llvm.ppc.altivec.stvx
7380 // CHECK-LE: @llvm.ppc.altivec.lvx
7381 // CHECK-LE: @llvm.ppc.altivec.lvsl
7382 // CHECK-LE: store <16 x i8> zeroinitializer
7383 // CHECK-LE: @llvm.ppc.altivec.vperm
7384 // CHECK-LE: @llvm.ppc.altivec.lvsr
7385 // CHECK-LE: @llvm.ppc.altivec.vperm
7386 // CHECK-LE: @llvm.ppc.altivec.stvx
7388 vec_stvrx(vsc
, 0, &vsc
);
7389 // CHECK: @llvm.ppc.altivec.lvx
7390 // CHECK: @llvm.ppc.altivec.lvsl
7391 // CHECK: store <16 x i8> zeroinitializer
7392 // CHECK: @llvm.ppc.altivec.vperm
7393 // CHECK: @llvm.ppc.altivec.lvsr
7394 // CHECK: @llvm.ppc.altivec.vperm
7395 // CHECK: @llvm.ppc.altivec.stvx
7396 // CHECK-LE: @llvm.ppc.altivec.lvx
7397 // CHECK-LE: @llvm.ppc.altivec.lvsl
7398 // CHECK-LE: store <16 x i8> zeroinitializer
7399 // CHECK-LE: @llvm.ppc.altivec.vperm
7400 // CHECK-LE: @llvm.ppc.altivec.lvsr
7401 // CHECK-LE: @llvm.ppc.altivec.vperm
7402 // CHECK-LE: @llvm.ppc.altivec.stvx
7404 vec_stvrx(vuc
, 0, ¶m_uc
);
7405 // CHECK: @llvm.ppc.altivec.lvx
7406 // CHECK: @llvm.ppc.altivec.lvsl
7407 // CHECK: store <16 x i8> zeroinitializer
7408 // CHECK: @llvm.ppc.altivec.vperm
7409 // CHECK: @llvm.ppc.altivec.lvsr
7410 // CHECK: @llvm.ppc.altivec.vperm
7411 // CHECK: @llvm.ppc.altivec.stvx
7412 // CHECK-LE: @llvm.ppc.altivec.lvx
7413 // CHECK-LE: @llvm.ppc.altivec.lvsl
7414 // CHECK-LE: store <16 x i8> zeroinitializer
7415 // CHECK-LE: @llvm.ppc.altivec.vperm
7416 // CHECK-LE: @llvm.ppc.altivec.lvsr
7417 // CHECK-LE: @llvm.ppc.altivec.vperm
7418 // CHECK-LE: @llvm.ppc.altivec.stvx
7420 vec_stvrx(vuc
, 0, &vuc
);
7421 // CHECK: @llvm.ppc.altivec.lvx
7422 // CHECK: @llvm.ppc.altivec.lvsl
7423 // CHECK: store <16 x i8> zeroinitializer
7424 // CHECK: @llvm.ppc.altivec.vperm
7425 // CHECK: @llvm.ppc.altivec.lvsr
7426 // CHECK: @llvm.ppc.altivec.vperm
7427 // CHECK: @llvm.ppc.altivec.stvx
7428 // CHECK-LE: @llvm.ppc.altivec.lvx
7429 // CHECK-LE: @llvm.ppc.altivec.lvsl
7430 // CHECK-LE: store <16 x i8> zeroinitializer
7431 // CHECK-LE: @llvm.ppc.altivec.vperm
7432 // CHECK-LE: @llvm.ppc.altivec.lvsr
7433 // CHECK-LE: @llvm.ppc.altivec.vperm
7434 // CHECK-LE: @llvm.ppc.altivec.stvx
7436 vec_stvrx(vbc
, 0, &vbc
);
7437 // CHECK: @llvm.ppc.altivec.lvx
7438 // CHECK: store <16 x i8> zeroinitializer
7439 // CHECK: @llvm.ppc.altivec.lvsl
7440 // CHECK: @llvm.ppc.altivec.vperm
7441 // CHECK: @llvm.ppc.altivec.lvsr
7442 // CHECK: @llvm.ppc.altivec.vperm
7443 // CHECK: @llvm.ppc.altivec.stvx
7444 // CHECK-LE: @llvm.ppc.altivec.lvx
7445 // CHECK-LE: store <16 x i8> zeroinitializer
7446 // CHECK-LE: @llvm.ppc.altivec.lvsl
7447 // CHECK-LE: @llvm.ppc.altivec.vperm
7448 // CHECK-LE: @llvm.ppc.altivec.lvsr
7449 // CHECK-LE: @llvm.ppc.altivec.vperm
7450 // CHECK-LE: @llvm.ppc.altivec.stvx
7452 vec_stvrx(vs
, 0, ¶m_s
);
7453 // CHECK: @llvm.ppc.altivec.lvx
7454 // CHECK: @llvm.ppc.altivec.lvsl
7455 // CHECK: store <8 x i16> zeroinitializer
7456 // CHECK: @llvm.ppc.altivec.vperm
7457 // CHECK: @llvm.ppc.altivec.lvsr
7458 // CHECK: @llvm.ppc.altivec.vperm
7459 // CHECK: @llvm.ppc.altivec.stvx
7460 // CHECK-LE: @llvm.ppc.altivec.lvx
7461 // CHECK-LE: @llvm.ppc.altivec.lvsl
7462 // CHECK-LE: store <8 x i16> zeroinitializer
7463 // CHECK-LE: @llvm.ppc.altivec.vperm
7464 // CHECK-LE: @llvm.ppc.altivec.lvsr
7465 // CHECK-LE: @llvm.ppc.altivec.vperm
7466 // CHECK-LE: @llvm.ppc.altivec.stvx
7468 vec_stvrx(vs
, 0, &vs
);
7469 // CHECK: @llvm.ppc.altivec.lvx
7470 // CHECK: @llvm.ppc.altivec.lvsl
7471 // CHECK: store <8 x i16> zeroinitializer
7472 // CHECK: @llvm.ppc.altivec.vperm
7473 // CHECK: @llvm.ppc.altivec.lvsr
7474 // CHECK: @llvm.ppc.altivec.vperm
7475 // CHECK: @llvm.ppc.altivec.stvx
7476 // CHECK-LE: @llvm.ppc.altivec.lvx
7477 // CHECK-LE: @llvm.ppc.altivec.lvsl
7478 // CHECK-LE: store <8 x i16> zeroinitializer
7479 // CHECK-LE: @llvm.ppc.altivec.vperm
7480 // CHECK-LE: @llvm.ppc.altivec.lvsr
7481 // CHECK-LE: @llvm.ppc.altivec.vperm
7482 // CHECK-LE: @llvm.ppc.altivec.stvx
7484 vec_stvrx(vus
, 0, ¶m_us
);
7485 // CHECK: @llvm.ppc.altivec.lvx
7486 // CHECK: @llvm.ppc.altivec.lvsl
7487 // CHECK: store <8 x i16> zeroinitializer
7488 // CHECK: @llvm.ppc.altivec.vperm
7489 // CHECK: @llvm.ppc.altivec.lvsr
7490 // CHECK: @llvm.ppc.altivec.vperm
7491 // CHECK: @llvm.ppc.altivec.stvx
7492 // CHECK-LE: @llvm.ppc.altivec.lvx
7493 // CHECK-LE: @llvm.ppc.altivec.lvsl
7494 // CHECK-LE: store <8 x i16> zeroinitializer
7495 // CHECK-LE: @llvm.ppc.altivec.vperm
7496 // CHECK-LE: @llvm.ppc.altivec.lvsr
7497 // CHECK-LE: @llvm.ppc.altivec.vperm
7498 // CHECK-LE: @llvm.ppc.altivec.stvx
7500 vec_stvrx(vus
, 0, &vus
);
7501 // CHECK: @llvm.ppc.altivec.lvx
7502 // CHECK: @llvm.ppc.altivec.lvsl
7503 // CHECK: store <8 x i16> zeroinitializer
7504 // CHECK: @llvm.ppc.altivec.vperm
7505 // CHECK: @llvm.ppc.altivec.lvsr
7506 // CHECK: @llvm.ppc.altivec.vperm
7507 // CHECK: @llvm.ppc.altivec.stvx
7508 // CHECK-LE: @llvm.ppc.altivec.lvx
7509 // CHECK-LE: @llvm.ppc.altivec.lvsl
7510 // CHECK-LE: store <8 x i16> zeroinitializer
7511 // CHECK-LE: @llvm.ppc.altivec.vperm
7512 // CHECK-LE: @llvm.ppc.altivec.lvsr
7513 // CHECK-LE: @llvm.ppc.altivec.vperm
7514 // CHECK-LE: @llvm.ppc.altivec.stvx
7516 vec_stvrx(vbs
, 0, &vbs
);
7517 // CHECK: @llvm.ppc.altivec.lvx
7518 // CHECK: store <8 x i16> zeroinitializer
7519 // CHECK: @llvm.ppc.altivec.lvsl
7520 // CHECK: @llvm.ppc.altivec.vperm
7521 // CHECK: @llvm.ppc.altivec.lvsr
7522 // CHECK: @llvm.ppc.altivec.vperm
7523 // CHECK: @llvm.ppc.altivec.stvx
7524 // CHECK-LE: @llvm.ppc.altivec.lvx
7525 // CHECK-LE: store <8 x i16> zeroinitializer
7526 // CHECK-LE: @llvm.ppc.altivec.lvsl
7527 // CHECK-LE: @llvm.ppc.altivec.vperm
7528 // CHECK-LE: @llvm.ppc.altivec.lvsr
7529 // CHECK-LE: @llvm.ppc.altivec.vperm
7530 // CHECK-LE: @llvm.ppc.altivec.stvx
7532 vec_stvrx(vp
, 0, &vp
);
7533 // CHECK: @llvm.ppc.altivec.lvx
7534 // CHECK: store <8 x i16> zeroinitializer
7535 // CHECK: @llvm.ppc.altivec.lvsl
7536 // CHECK: @llvm.ppc.altivec.vperm
7537 // CHECK: @llvm.ppc.altivec.lvsr
7538 // CHECK: @llvm.ppc.altivec.vperm
7539 // CHECK: @llvm.ppc.altivec.stvx
7540 // CHECK-LE: @llvm.ppc.altivec.lvx
7541 // CHECK-LE: store <8 x i16> zeroinitializer
7542 // CHECK-LE: @llvm.ppc.altivec.lvsl
7543 // CHECK-LE: @llvm.ppc.altivec.vperm
7544 // CHECK-LE: @llvm.ppc.altivec.lvsr
7545 // CHECK-LE: @llvm.ppc.altivec.vperm
7546 // CHECK-LE: @llvm.ppc.altivec.stvx
7548 vec_stvrx(vi
, 0, ¶m_i
);
7549 // CHECK: @llvm.ppc.altivec.lvx
7550 // CHECK: @llvm.ppc.altivec.lvsl
7551 // CHECK: store <4 x i32> zeroinitializer
7552 // CHECK: @llvm.ppc.altivec.vperm
7553 // CHECK: @llvm.ppc.altivec.lvsr
7554 // CHECK: @llvm.ppc.altivec.vperm
7555 // CHECK: @llvm.ppc.altivec.stvx
7556 // CHECK-LE: @llvm.ppc.altivec.lvx
7557 // CHECK-LE: @llvm.ppc.altivec.lvsl
7558 // CHECK-LE: store <4 x i32> zeroinitializer
7559 // CHECK-LE: @llvm.ppc.altivec.vperm
7560 // CHECK-LE: @llvm.ppc.altivec.lvsr
7561 // CHECK-LE: @llvm.ppc.altivec.vperm
7562 // CHECK-LE: @llvm.ppc.altivec.stvx
7564 vec_stvrx(vi
, 0, &vi
);
7565 // CHECK: @llvm.ppc.altivec.lvx
7566 // CHECK: @llvm.ppc.altivec.lvsl
7567 // CHECK: store <4 x i32> zeroinitializer
7568 // CHECK: @llvm.ppc.altivec.vperm
7569 // CHECK: @llvm.ppc.altivec.lvsr
7570 // CHECK: @llvm.ppc.altivec.vperm
7571 // CHECK: @llvm.ppc.altivec.stvx
7572 // CHECK-LE: @llvm.ppc.altivec.lvx
7573 // CHECK-LE: @llvm.ppc.altivec.lvsl
7574 // CHECK-LE: store <4 x i32> zeroinitializer
7575 // CHECK-LE: @llvm.ppc.altivec.vperm
7576 // CHECK-LE: @llvm.ppc.altivec.lvsr
7577 // CHECK-LE: @llvm.ppc.altivec.vperm
7578 // CHECK-LE: @llvm.ppc.altivec.stvx
7580 vec_stvrx(vui
, 0, ¶m_ui
);
7581 // CHECK: @llvm.ppc.altivec.lvx
7582 // CHECK: @llvm.ppc.altivec.lvsl
7583 // CHECK: store <4 x i32> zeroinitializer
7584 // CHECK: @llvm.ppc.altivec.vperm
7585 // CHECK: @llvm.ppc.altivec.lvsr
7586 // CHECK: @llvm.ppc.altivec.vperm
7587 // CHECK: @llvm.ppc.altivec.stvx
7588 // CHECK-LE: @llvm.ppc.altivec.lvx
7589 // CHECK-LE: @llvm.ppc.altivec.lvsl
7590 // CHECK-LE: store <4 x i32> zeroinitializer
7591 // CHECK-LE: @llvm.ppc.altivec.vperm
7592 // CHECK-LE: @llvm.ppc.altivec.lvsr
7593 // CHECK-LE: @llvm.ppc.altivec.vperm
7594 // CHECK-LE: @llvm.ppc.altivec.stvx
7596 vec_stvrx(vui
, 0, &vui
);
7597 // CHECK: @llvm.ppc.altivec.lvx
7598 // CHECK: @llvm.ppc.altivec.lvsl
7599 // CHECK: store <4 x i32> zeroinitializer
7600 // CHECK: @llvm.ppc.altivec.vperm
7601 // CHECK: @llvm.ppc.altivec.lvsr
7602 // CHECK: @llvm.ppc.altivec.vperm
7603 // CHECK: @llvm.ppc.altivec.stvx
7604 // CHECK-LE: @llvm.ppc.altivec.lvx
7605 // CHECK-LE: @llvm.ppc.altivec.lvsl
7606 // CHECK-LE: store <4 x i32> zeroinitializer
7607 // CHECK-LE: @llvm.ppc.altivec.vperm
7608 // CHECK-LE: @llvm.ppc.altivec.lvsr
7609 // CHECK-LE: @llvm.ppc.altivec.vperm
7610 // CHECK-LE: @llvm.ppc.altivec.stvx
7612 vec_stvrx(vbi
, 0, &vbi
);
7613 // CHECK: @llvm.ppc.altivec.lvx
7614 // CHECK: store <4 x i32> zeroinitializer
7615 // CHECK: @llvm.ppc.altivec.lvsl
7616 // CHECK: @llvm.ppc.altivec.vperm
7617 // CHECK: @llvm.ppc.altivec.lvsr
7618 // CHECK: @llvm.ppc.altivec.vperm
7619 // CHECK: @llvm.ppc.altivec.stvx
7620 // CHECK-LE: @llvm.ppc.altivec.lvx
7621 // CHECK-LE: store <4 x i32> zeroinitializer
7622 // CHECK-LE: @llvm.ppc.altivec.lvsl
7623 // CHECK-LE: @llvm.ppc.altivec.vperm
7624 // CHECK-LE: @llvm.ppc.altivec.lvsr
7625 // CHECK-LE: @llvm.ppc.altivec.vperm
7626 // CHECK-LE: @llvm.ppc.altivec.stvx
7628 vec_stvrx(vf
, 0, &vf
);
7629 // CHECK: @llvm.ppc.altivec.lvx
7630 // CHECK: @llvm.ppc.altivec.lvsl
7631 // CHECK: store <4 x float> zeroinitializer
7632 // CHECK: @llvm.ppc.altivec.vperm
7633 // CHECK: @llvm.ppc.altivec.lvsr
7634 // CHECK: @llvm.ppc.altivec.vperm
7635 // CHECK: @llvm.ppc.altivec.stvx
7636 // CHECK-LE: @llvm.ppc.altivec.lvx
7637 // CHECK-LE: @llvm.ppc.altivec.lvsl
7638 // CHECK-LE: store <4 x float> zeroinitializer
7639 // CHECK-LE: @llvm.ppc.altivec.vperm
7640 // CHECK-LE: @llvm.ppc.altivec.lvsr
7641 // CHECK-LE: @llvm.ppc.altivec.vperm
7642 // CHECK-LE: @llvm.ppc.altivec.stvx
7645 vec_stvrxl(vsc
, 0, ¶m_sc
);
7646 // CHECK: @llvm.ppc.altivec.lvx
7647 // CHECK: @llvm.ppc.altivec.lvsl
7648 // CHECK: store <16 x i8> zeroinitializer
7649 // CHECK: @llvm.ppc.altivec.vperm
7650 // CHECK: @llvm.ppc.altivec.lvsr
7651 // CHECK: @llvm.ppc.altivec.vperm
7652 // CHECK: @llvm.ppc.altivec.stvxl
7653 // CHECK-LE: @llvm.ppc.altivec.lvx
7654 // CHECK-LE: @llvm.ppc.altivec.lvsl
7655 // CHECK-LE: store <16 x i8> zeroinitializer
7656 // CHECK-LE: @llvm.ppc.altivec.vperm
7657 // CHECK-LE: @llvm.ppc.altivec.lvsr
7658 // CHECK-LE: @llvm.ppc.altivec.vperm
7659 // CHECK-LE: @llvm.ppc.altivec.stvxl
7661 vec_stvrxl(vsc
, 0, &vsc
);
7662 // CHECK: @llvm.ppc.altivec.lvx
7663 // CHECK: @llvm.ppc.altivec.lvsl
7664 // CHECK: store <16 x i8> zeroinitializer
7665 // CHECK: @llvm.ppc.altivec.vperm
7666 // CHECK: @llvm.ppc.altivec.lvsr
7667 // CHECK: @llvm.ppc.altivec.vperm
7668 // CHECK: @llvm.ppc.altivec.stvxl
7669 // CHECK-LE: @llvm.ppc.altivec.lvx
7670 // CHECK-LE: @llvm.ppc.altivec.lvsl
7671 // CHECK-LE: store <16 x i8> zeroinitializer
7672 // CHECK-LE: @llvm.ppc.altivec.vperm
7673 // CHECK-LE: @llvm.ppc.altivec.lvsr
7674 // CHECK-LE: @llvm.ppc.altivec.vperm
7675 // CHECK-LE: @llvm.ppc.altivec.stvxl
7677 vec_stvrxl(vuc
, 0, ¶m_uc
);
7678 // CHECK: @llvm.ppc.altivec.lvx
7679 // CHECK: @llvm.ppc.altivec.lvsl
7680 // CHECK: store <16 x i8> zeroinitializer
7681 // CHECK: @llvm.ppc.altivec.vperm
7682 // CHECK: @llvm.ppc.altivec.lvsr
7683 // CHECK: @llvm.ppc.altivec.vperm
7684 // CHECK: @llvm.ppc.altivec.stvxl
7685 // CHECK-LE: @llvm.ppc.altivec.lvx
7686 // CHECK-LE: @llvm.ppc.altivec.lvsl
7687 // CHECK-LE: store <16 x i8> zeroinitializer
7688 // CHECK-LE: @llvm.ppc.altivec.vperm
7689 // CHECK-LE: @llvm.ppc.altivec.lvsr
7690 // CHECK-LE: @llvm.ppc.altivec.vperm
7691 // CHECK-LE: @llvm.ppc.altivec.stvxl
7693 vec_stvrxl(vuc
, 0, &vuc
);
7694 // CHECK: @llvm.ppc.altivec.lvx
7695 // CHECK: @llvm.ppc.altivec.lvsl
7696 // CHECK: store <16 x i8> zeroinitializer
7697 // CHECK: @llvm.ppc.altivec.vperm
7698 // CHECK: @llvm.ppc.altivec.lvsr
7699 // CHECK: @llvm.ppc.altivec.vperm
7700 // CHECK: @llvm.ppc.altivec.stvxl
7701 // CHECK-LE: @llvm.ppc.altivec.lvx
7702 // CHECK-LE: @llvm.ppc.altivec.lvsl
7703 // CHECK-LE: store <16 x i8> zeroinitializer
7704 // CHECK-LE: @llvm.ppc.altivec.vperm
7705 // CHECK-LE: @llvm.ppc.altivec.lvsr
7706 // CHECK-LE: @llvm.ppc.altivec.vperm
7707 // CHECK-LE: @llvm.ppc.altivec.stvxl
7709 vec_stvrxl(vbc
, 0, &vbc
);
7710 // CHECK: @llvm.ppc.altivec.lvx
7711 // CHECK: store <16 x i8> zeroinitializer
7712 // CHECK: @llvm.ppc.altivec.lvsl
7713 // CHECK: @llvm.ppc.altivec.vperm
7714 // CHECK: @llvm.ppc.altivec.lvsr
7715 // CHECK: @llvm.ppc.altivec.vperm
7716 // CHECK: @llvm.ppc.altivec.stvxl
7717 // CHECK-LE: @llvm.ppc.altivec.lvx
7718 // CHECK-LE: store <16 x i8> zeroinitializer
7719 // CHECK-LE: @llvm.ppc.altivec.lvsl
7720 // CHECK-LE: @llvm.ppc.altivec.vperm
7721 // CHECK-LE: @llvm.ppc.altivec.lvsr
7722 // CHECK-LE: @llvm.ppc.altivec.vperm
7723 // CHECK-LE: @llvm.ppc.altivec.stvxl
7725 vec_stvrxl(vs
, 0, ¶m_s
);
7726 // CHECK: @llvm.ppc.altivec.lvx
7727 // CHECK: @llvm.ppc.altivec.lvsl
7728 // CHECK: store <8 x i16> zeroinitializer
7729 // CHECK: @llvm.ppc.altivec.vperm
7730 // CHECK: @llvm.ppc.altivec.lvsr
7731 // CHECK: @llvm.ppc.altivec.vperm
7732 // CHECK: @llvm.ppc.altivec.stvxl
7733 // CHECK-LE: @llvm.ppc.altivec.lvx
7734 // CHECK-LE: @llvm.ppc.altivec.lvsl
7735 // CHECK-LE: store <8 x i16> zeroinitializer
7736 // CHECK-LE: @llvm.ppc.altivec.vperm
7737 // CHECK-LE: @llvm.ppc.altivec.lvsr
7738 // CHECK-LE: @llvm.ppc.altivec.vperm
7739 // CHECK-LE: @llvm.ppc.altivec.stvxl
7741 vec_stvrxl(vs
, 0, &vs
);
7742 // CHECK: @llvm.ppc.altivec.lvx
7743 // CHECK: @llvm.ppc.altivec.lvsl
7744 // CHECK: store <8 x i16> zeroinitializer
7745 // CHECK: @llvm.ppc.altivec.vperm
7746 // CHECK: @llvm.ppc.altivec.lvsr
7747 // CHECK: @llvm.ppc.altivec.vperm
7748 // CHECK: @llvm.ppc.altivec.stvxl
7749 // CHECK-LE: @llvm.ppc.altivec.lvx
7750 // CHECK-LE: @llvm.ppc.altivec.lvsl
7751 // CHECK-LE: store <8 x i16> zeroinitializer
7752 // CHECK-LE: @llvm.ppc.altivec.vperm
7753 // CHECK-LE: @llvm.ppc.altivec.lvsr
7754 // CHECK-LE: @llvm.ppc.altivec.vperm
7755 // CHECK-LE: @llvm.ppc.altivec.stvxl
7757 vec_stvrxl(vus
, 0, ¶m_us
);
7758 // CHECK: @llvm.ppc.altivec.lvx
7759 // CHECK: @llvm.ppc.altivec.lvsl
7760 // CHECK: store <8 x i16> zeroinitializer
7761 // CHECK: @llvm.ppc.altivec.vperm
7762 // CHECK: @llvm.ppc.altivec.lvsr
7763 // CHECK: @llvm.ppc.altivec.vperm
7764 // CHECK: @llvm.ppc.altivec.stvxl
7765 // CHECK-LE: @llvm.ppc.altivec.lvx
7766 // CHECK-LE: @llvm.ppc.altivec.lvsl
7767 // CHECK-LE: store <8 x i16> zeroinitializer
7768 // CHECK-LE: @llvm.ppc.altivec.vperm
7769 // CHECK-LE: @llvm.ppc.altivec.lvsr
7770 // CHECK-LE: @llvm.ppc.altivec.vperm
7771 // CHECK-LE: @llvm.ppc.altivec.stvxl
7773 vec_stvrxl(vus
, 0, &vus
);
7774 // CHECK: @llvm.ppc.altivec.lvx
7775 // CHECK: @llvm.ppc.altivec.lvsl
7776 // CHECK: store <8 x i16> zeroinitializer
7777 // CHECK: @llvm.ppc.altivec.vperm
7778 // CHECK: @llvm.ppc.altivec.lvsr
7779 // CHECK: @llvm.ppc.altivec.vperm
7780 // CHECK: @llvm.ppc.altivec.stvxl
7781 // CHECK-LE: @llvm.ppc.altivec.lvx
7782 // CHECK-LE: @llvm.ppc.altivec.lvsl
7783 // CHECK-LE: store <8 x i16> zeroinitializer
7784 // CHECK-LE: @llvm.ppc.altivec.vperm
7785 // CHECK-LE: @llvm.ppc.altivec.lvsr
7786 // CHECK-LE: @llvm.ppc.altivec.vperm
7787 // CHECK-LE: @llvm.ppc.altivec.stvxl
7789 vec_stvrxl(vbs
, 0, &vbs
);
7790 // CHECK: @llvm.ppc.altivec.lvx
7791 // CHECK: store <8 x i16> zeroinitializer
7792 // CHECK: @llvm.ppc.altivec.lvsl
7793 // CHECK: @llvm.ppc.altivec.vperm
7794 // CHECK: @llvm.ppc.altivec.lvsr
7795 // CHECK: @llvm.ppc.altivec.vperm
7796 // CHECK: @llvm.ppc.altivec.stvxl
7797 // CHECK-LE: @llvm.ppc.altivec.lvx
7798 // CHECK-LE: store <8 x i16> zeroinitializer
7799 // CHECK-LE: @llvm.ppc.altivec.lvsl
7800 // CHECK-LE: @llvm.ppc.altivec.vperm
7801 // CHECK-LE: @llvm.ppc.altivec.lvsr
7802 // CHECK-LE: @llvm.ppc.altivec.vperm
7803 // CHECK-LE: @llvm.ppc.altivec.stvxl
7805 vec_stvrxl(vp
, 0, &vp
);
7806 // CHECK: @llvm.ppc.altivec.lvx
7807 // CHECK: store <8 x i16> zeroinitializer
7808 // CHECK: @llvm.ppc.altivec.lvsl
7809 // CHECK: @llvm.ppc.altivec.vperm
7810 // CHECK: @llvm.ppc.altivec.lvsr
7811 // CHECK: @llvm.ppc.altivec.vperm
7812 // CHECK: @llvm.ppc.altivec.stvxl
7813 // CHECK-LE: @llvm.ppc.altivec.lvx
7814 // CHECK-LE: store <8 x i16> zeroinitializer
7815 // CHECK-LE: @llvm.ppc.altivec.lvsl
7816 // CHECK-LE: @llvm.ppc.altivec.vperm
7817 // CHECK-LE: @llvm.ppc.altivec.lvsr
7818 // CHECK-LE: @llvm.ppc.altivec.vperm
7819 // CHECK-LE: @llvm.ppc.altivec.stvxl
7821 vec_stvrxl(vi
, 0, ¶m_i
);
7822 // CHECK: @llvm.ppc.altivec.lvx
7823 // CHECK: @llvm.ppc.altivec.lvsl
7824 // CHECK: store <4 x i32> zeroinitializer
7825 // CHECK: @llvm.ppc.altivec.vperm
7826 // CHECK: @llvm.ppc.altivec.lvsr
7827 // CHECK: @llvm.ppc.altivec.vperm
7828 // CHECK: @llvm.ppc.altivec.stvxl
7829 // CHECK-LE: @llvm.ppc.altivec.lvx
7830 // CHECK-LE: @llvm.ppc.altivec.lvsl
7831 // CHECK-LE: store <4 x i32> zeroinitializer
7832 // CHECK-LE: @llvm.ppc.altivec.vperm
7833 // CHECK-LE: @llvm.ppc.altivec.lvsr
7834 // CHECK-LE: @llvm.ppc.altivec.vperm
7835 // CHECK-LE: @llvm.ppc.altivec.stvxl
7837 vec_stvrxl(vi
, 0, &vi
);
7838 // CHECK: @llvm.ppc.altivec.lvx
7839 // CHECK: @llvm.ppc.altivec.lvsl
7840 // CHECK: store <4 x i32> zeroinitializer
7841 // CHECK: @llvm.ppc.altivec.vperm
7842 // CHECK: @llvm.ppc.altivec.lvsr
7843 // CHECK: @llvm.ppc.altivec.vperm
7844 // CHECK: @llvm.ppc.altivec.stvxl
7845 // CHECK-LE: @llvm.ppc.altivec.lvx
7846 // CHECK-LE: @llvm.ppc.altivec.lvsl
7847 // CHECK-LE: store <4 x i32> zeroinitializer
7848 // CHECK-LE: @llvm.ppc.altivec.vperm
7849 // CHECK-LE: @llvm.ppc.altivec.lvsr
7850 // CHECK-LE: @llvm.ppc.altivec.vperm
7851 // CHECK-LE: @llvm.ppc.altivec.stvxl
7853 vec_stvrxl(vui
, 0, ¶m_ui
);
7854 // CHECK: @llvm.ppc.altivec.lvx
7855 // CHECK: @llvm.ppc.altivec.lvsl
7856 // CHECK: store <4 x i32> zeroinitializer
7857 // CHECK: @llvm.ppc.altivec.vperm
7858 // CHECK: @llvm.ppc.altivec.lvsr
7859 // CHECK: @llvm.ppc.altivec.vperm
7860 // CHECK: @llvm.ppc.altivec.stvxl
7861 // CHECK-LE: @llvm.ppc.altivec.lvx
7862 // CHECK-LE: @llvm.ppc.altivec.lvsl
7863 // CHECK-LE: store <4 x i32> zeroinitializer
7864 // CHECK-LE: @llvm.ppc.altivec.vperm
7865 // CHECK-LE: @llvm.ppc.altivec.lvsr
7866 // CHECK-LE: @llvm.ppc.altivec.vperm
7867 // CHECK-LE: @llvm.ppc.altivec.stvxl
7869 vec_stvrxl(vui
, 0, &vui
);
7870 // CHECK: @llvm.ppc.altivec.lvx
7871 // CHECK: @llvm.ppc.altivec.lvsl
7872 // CHECK: store <4 x i32> zeroinitializer
7873 // CHECK: @llvm.ppc.altivec.vperm
7874 // CHECK: @llvm.ppc.altivec.lvsr
7875 // CHECK: @llvm.ppc.altivec.vperm
7876 // CHECK: @llvm.ppc.altivec.stvxl
7877 // CHECK-LE: @llvm.ppc.altivec.lvx
7878 // CHECK-LE: @llvm.ppc.altivec.lvsl
7879 // CHECK-LE: store <4 x i32> zeroinitializer
7880 // CHECK-LE: @llvm.ppc.altivec.vperm
7881 // CHECK-LE: @llvm.ppc.altivec.lvsr
7882 // CHECK-LE: @llvm.ppc.altivec.vperm
7883 // CHECK-LE: @llvm.ppc.altivec.stvxl
7885 vec_stvrxl(vbi
, 0, &vbi
);
7886 // CHECK: @llvm.ppc.altivec.lvx
7887 // CHECK: store <4 x i32> zeroinitializer
7888 // CHECK: @llvm.ppc.altivec.lvsl
7889 // CHECK: @llvm.ppc.altivec.vperm
7890 // CHECK: @llvm.ppc.altivec.lvsr
7891 // CHECK: @llvm.ppc.altivec.vperm
7892 // CHECK: @llvm.ppc.altivec.stvxl
7893 // CHECK-LE: @llvm.ppc.altivec.lvx
7894 // CHECK-LE: store <4 x i32> zeroinitializer
7895 // CHECK-LE: @llvm.ppc.altivec.lvsl
7896 // CHECK-LE: @llvm.ppc.altivec.vperm
7897 // CHECK-LE: @llvm.ppc.altivec.lvsr
7898 // CHECK-LE: @llvm.ppc.altivec.vperm
7899 // CHECK-LE: @llvm.ppc.altivec.stvxl
7901 vec_stvrxl(vf
, 0, &vf
);
7902 // CHECK: @llvm.ppc.altivec.lvx
7903 // CHECK: @llvm.ppc.altivec.lvsl
7904 // CHECK: store <4 x float> zeroinitializer
7905 // CHECK: @llvm.ppc.altivec.vperm
7906 // CHECK: @llvm.ppc.altivec.lvsr
7907 // CHECK: @llvm.ppc.altivec.vperm
7908 // CHECK: @llvm.ppc.altivec.stvxl
7909 // CHECK-LE: @llvm.ppc.altivec.lvx
7910 // CHECK-LE: @llvm.ppc.altivec.lvsl
7911 // CHECK-LE: store <4 x float> zeroinitializer
7912 // CHECK-LE: @llvm.ppc.altivec.vperm
7913 // CHECK-LE: @llvm.ppc.altivec.lvsr
7914 // CHECK-LE: @llvm.ppc.altivec.vperm
7915 // CHECK-LE: @llvm.ppc.altivec.stvxl
7918 res_vsc
= vec_promote(param_sc
, 0);
7919 // CHECK: store <16 x i8> zeroinitializer
7920 // CHECK: insertelement <16 x i8>
7921 // CHECK-LE: store <16 x i8> zeroinitializer
7922 // CHECK-LE: insertelement <16 x i8>
7924 res_vuc
= vec_promote(param_uc
, 0);
7925 // CHECK: store <16 x i8> zeroinitializer
7926 // CHECK: insertelement <16 x i8>
7927 // CHECK-LE: store <16 x i8> zeroinitializer
7928 // CHECK-LE: insertelement <16 x i8>
7930 res_vs
= vec_promote(param_s
, 0);
7931 // CHECK: store <8 x i16> zeroinitializer
7932 // CHECK: insertelement <8 x i16>
7933 // CHECK-LE: store <8 x i16> zeroinitializer
7934 // CHECK-LE: insertelement <8 x i16>
7936 res_vus
= vec_promote(param_us
, 0);
7937 // CHECK: store <8 x i16> zeroinitializer
7938 // CHECK: insertelement <8 x i16>
7939 // CHECK-LE: store <8 x i16> zeroinitializer
7940 // CHECK-LE: insertelement <8 x i16>
7942 res_vi
= vec_promote(param_i
, 0);
7943 // CHECK: store <4 x i32> zeroinitializer
7944 // CHECK: insertelement <4 x i32>
7945 // CHECK-LE: store <4 x i32> zeroinitializer
7946 // CHECK-LE: insertelement <4 x i32>
7948 res_vui
= vec_promote(param_ui
, 0);
7949 // CHECK: store <4 x i32> zeroinitializer
7950 // CHECK: insertelement <4 x i32>
7951 // CHECK-LE: store <4 x i32> zeroinitializer
7952 // CHECK-LE: insertelement <4 x i32>
7954 res_vf
= vec_promote(param_f
, 0);
7955 // CHECK: store <4 x float> zeroinitializer
7956 // CHECK: insertelement <4 x float>
7957 // CHECK-LE: store <4 x float> zeroinitializer
7958 // CHECK-LE: insertelement <4 x float>
7961 res_vsc
= vec_splats(param_sc
);
7962 // CHECK: insertelement <16 x i8>
7963 // CHECK-LE: insertelement <16 x i8>
7965 res_vuc
= vec_splats(param_uc
);
7966 // CHECK: insertelement <16 x i8>
7967 // CHECK-LE: insertelement <16 x i8>
7969 res_vs
= vec_splats(param_s
);
7970 // CHECK: insertelement <8 x i16>
7971 // CHECK-LE: insertelement <8 x i16>
7973 res_vus
= vec_splats(param_us
);
7974 // CHECK: insertelement <8 x i16>
7975 // CHECK-LE: insertelement <8 x i16>
7977 res_vi
= vec_splats(param_i
);
7978 // CHECK: insertelement <4 x i32>
7979 // CHECK-LE: insertelement <4 x i32>
7981 res_vui
= vec_splats(param_ui
);
7982 // CHECK: insertelement <4 x i32>
7983 // CHECK-LE: insertelement <4 x i32>
7985 res_vf
= vec_splats(param_f
);
7986 // CHECK: insertelement <4 x float>
7987 // CHECK-LE: insertelement <4 x float>
7989 /* ------------------------------ predicates -------------------------------------- */
7992 res_i
= vec_all_eq(vsc
, vsc
);
7993 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7994 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7996 res_i
= vec_all_eq(vsc
, vbc
);
7997 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7998 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8000 res_i
= vec_all_eq(vuc
, vuc
);
8001 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8002 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8004 res_i
= vec_all_eq(vuc
, vbc
);
8005 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8006 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8008 res_i
= vec_all_eq(vbc
, vsc
);
8009 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8010 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8012 res_i
= vec_all_eq(vbc
, vuc
);
8013 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8014 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8016 res_i
= vec_all_eq(vbc
, vbc
);
8017 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8018 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8020 res_i
= vec_all_eq(vs
, vs
);
8021 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8022 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8024 res_i
= vec_all_eq(vs
, vbs
);
8025 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8026 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8028 res_i
= vec_all_eq(vus
, vus
);
8029 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8030 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8032 res_i
= vec_all_eq(vus
, vbs
);
8033 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8034 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8036 res_i
= vec_all_eq(vbs
, vs
);
8037 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8038 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8040 res_i
= vec_all_eq(vbs
, vus
);
8041 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8042 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8044 res_i
= vec_all_eq(vbs
, vbs
);
8045 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8046 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8048 res_i
= vec_all_eq(vp
, vp
);
8049 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8050 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8052 res_i
= vec_all_eq(vi
, vi
);
8053 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8054 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8056 res_i
= vec_all_eq(vi
, vbi
);
8057 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8058 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8060 res_i
= vec_all_eq(vui
, vui
);
8061 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8062 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8064 res_i
= vec_all_eq(vui
, vbi
);
8065 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8066 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8068 res_i
= vec_all_eq(vbi
, vi
);
8069 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8070 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8072 res_i
= vec_all_eq(vbi
, vui
);
8073 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8074 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8076 res_i
= vec_all_eq(vbi
, vbi
);
8077 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8078 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8080 res_i
= vec_all_eq(vf
, vf
);
8081 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8082 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8085 res_i
= vec_all_ge(vsc
, vsc
);
8086 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8087 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8089 res_i
= vec_all_ge(vsc
, vbc
);
8090 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8091 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8093 res_i
= vec_all_ge(vuc
, vuc
);
8094 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8095 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8097 res_i
= vec_all_ge(vuc
, vbc
);
8098 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8099 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8101 res_i
= vec_all_ge(vbc
, vsc
);
8102 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8103 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8105 res_i
= vec_all_ge(vbc
, vuc
);
8106 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8107 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8109 res_i
= vec_all_ge(vbc
, vbc
);
8110 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8111 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8113 res_i
= vec_all_ge(vs
, vs
);
8114 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8115 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8117 res_i
= vec_all_ge(vs
, vbs
);
8118 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8119 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8121 res_i
= vec_all_ge(vus
, vus
);
8122 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8123 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8125 res_i
= vec_all_ge(vus
, vbs
);
8126 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8127 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8129 res_i
= vec_all_ge(vbs
, vs
);
8130 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8131 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8133 res_i
= vec_all_ge(vbs
, vus
);
8134 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8135 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8137 res_i
= vec_all_ge(vbs
, vbs
);
8138 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8139 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8141 res_i
= vec_all_ge(vi
, vi
);
8142 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8143 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8145 res_i
= vec_all_ge(vi
, vbi
);
8146 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8147 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8149 res_i
= vec_all_ge(vui
, vui
);
8150 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8151 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8153 res_i
= vec_all_ge(vui
, vbi
);
8154 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8155 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8157 res_i
= vec_all_ge(vbi
, vi
);
8158 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8159 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8161 res_i
= vec_all_ge(vbi
, vui
);
8162 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8163 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8165 res_i
= vec_all_ge(vbi
, vbi
);
8166 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8167 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8169 res_i
= vec_all_ge(vf
, vf
);
8170 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8171 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8174 res_i
= vec_all_gt(vsc
, vsc
);
8175 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8176 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8178 res_i
= vec_all_gt(vsc
, vbc
);
8179 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8180 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8182 res_i
= vec_all_gt(vuc
, vuc
);
8183 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8184 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8186 res_i
= vec_all_gt(vuc
, vbc
);
8187 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8188 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8190 res_i
= vec_all_gt(vbc
, vsc
);
8191 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8192 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8194 res_i
= vec_all_gt(vbc
, vuc
);
8195 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8196 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8198 res_i
= vec_all_gt(vbc
, vbc
);
8199 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8200 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8202 res_i
= vec_all_gt(vs
, vs
);
8203 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8204 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8206 res_i
= vec_all_gt(vs
, vbs
);
8207 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8208 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8210 res_i
= vec_all_gt(vus
, vus
);
8211 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8212 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8214 res_i
= vec_all_gt(vus
, vbs
);
8215 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8216 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8218 res_i
= vec_all_gt(vbs
, vs
);
8219 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8220 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8222 res_i
= vec_all_gt(vbs
, vus
);
8223 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8224 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8226 res_i
= vec_all_gt(vbs
, vbs
);
8227 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8228 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8230 res_i
= vec_all_gt(vi
, vi
);
8231 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8232 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8234 res_i
= vec_all_gt(vi
, vbi
);
8235 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8236 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8238 res_i
= vec_all_gt(vui
, vui
);
8239 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8240 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8242 res_i
= vec_all_gt(vui
, vbi
);
8243 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8244 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8246 res_i
= vec_all_gt(vbi
, vi
);
8247 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8248 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8250 res_i
= vec_all_gt(vbi
, vui
);
8251 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8252 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8254 res_i
= vec_all_gt(vbi
, vbi
);
8255 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8256 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8258 res_i
= vec_all_gt(vf
, vf
);
8259 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8260 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8263 res_i
= vec_all_in(vf
, vf
);
8264 // CHECK: @llvm.ppc.altivec.vcmpbfp.p
8265 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p
8268 res_i
= vec_all_le(vsc
, vsc
);
8269 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8270 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8272 res_i
= vec_all_le(vsc
, vbc
);
8273 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8274 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8276 res_i
= vec_all_le(vuc
, vuc
);
8277 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8278 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8280 res_i
= vec_all_le(vuc
, vbc
);
8281 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8282 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8284 res_i
= vec_all_le(vbc
, vsc
);
8285 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8286 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8288 res_i
= vec_all_le(vbc
, vuc
);
8289 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8290 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8292 res_i
= vec_all_le(vbc
, vbc
);
8293 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8294 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8296 res_i
= vec_all_le(vs
, vs
);
8297 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8298 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8300 res_i
= vec_all_le(vs
, vbs
);
8301 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8302 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8304 res_i
= vec_all_le(vus
, vus
);
8305 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8306 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8308 res_i
= vec_all_le(vus
, vbs
);
8309 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8310 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8312 res_i
= vec_all_le(vbs
, vs
);
8313 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8314 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8316 res_i
= vec_all_le(vbs
, vus
);
8317 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8318 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8320 res_i
= vec_all_le(vbs
, vbs
);
8321 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8322 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8324 res_i
= vec_all_le(vi
, vi
);
8325 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8326 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8328 res_i
= vec_all_le(vi
, vbi
);
8329 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8330 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8332 res_i
= vec_all_le(vui
, vui
);
8333 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8334 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8336 res_i
= vec_all_le(vui
, vbi
);
8337 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8338 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8340 res_i
= vec_all_le(vbi
, vi
);
8341 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8342 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8344 res_i
= vec_all_le(vbi
, vui
);
8345 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8346 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8348 res_i
= vec_all_le(vbi
, vbi
);
8349 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8350 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8352 res_i
= vec_all_le(vf
, vf
);
8353 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8354 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8357 res_i
= vec_all_lt(vsc
, vsc
);
8358 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8359 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8361 res_i
= vec_all_lt(vsc
, vbc
);
8362 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8363 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8365 res_i
= vec_all_lt(vuc
, vuc
);
8366 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8367 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8369 res_i
= vec_all_lt(vuc
, vbc
);
8370 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8371 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8373 res_i
= vec_all_lt(vbc
, vsc
);
8374 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8375 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8377 res_i
= vec_all_lt(vbc
, vuc
);
8378 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8379 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8381 res_i
= vec_all_lt(vbc
, vbc
);
8382 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8383 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8385 res_i
= vec_all_lt(vs
, vs
);
8386 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8387 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8389 res_i
= vec_all_lt(vs
, vbs
);
8390 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8391 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8393 res_i
= vec_all_lt(vus
, vus
);
8394 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8395 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8397 res_i
= vec_all_lt(vus
, vbs
);
8398 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8399 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8401 res_i
= vec_all_lt(vbs
, vs
);
8402 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8403 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8405 res_i
= vec_all_lt(vbs
, vus
);
8406 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8407 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8409 res_i
= vec_all_lt(vbs
, vbs
);
8410 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8411 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8413 res_i
= vec_all_lt(vi
, vi
);
8414 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8415 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8417 res_i
= vec_all_lt(vi
, vbi
);
8418 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8419 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8421 res_i
= vec_all_lt(vui
, vui
);
8422 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8423 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8425 res_i
= vec_all_lt(vui
, vbi
);
8426 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8427 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8429 res_i
= vec_all_lt(vbi
, vi
);
8430 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8431 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8433 res_i
= vec_all_lt(vbi
, vui
);
8434 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8435 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8437 res_i
= vec_all_lt(vbi
, vbi
);
8438 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8439 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8441 res_i
= vec_all_lt(vf
, vf
);
8442 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8443 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8446 res_i
= vec_all_nan(vf
);
8447 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8448 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8451 res_i
= vec_all_ne(vsc
, vsc
);
8452 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8453 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8455 res_i
= vec_all_ne(vsc
, vbc
);
8456 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8457 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8459 res_i
= vec_all_ne(vuc
, vuc
);
8460 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8461 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8463 res_i
= vec_all_ne(vuc
, vbc
);
8464 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8465 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8467 res_i
= vec_all_ne(vbc
, vsc
);
8468 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8469 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8471 res_i
= vec_all_ne(vbc
, vuc
);
8472 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8473 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8475 res_i
= vec_all_ne(vbc
, vbc
);
8476 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8477 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8479 res_i
= vec_all_ne(vs
, vs
);
8480 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8481 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8483 res_i
= vec_all_ne(vs
, vbs
);
8484 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8485 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8487 res_i
= vec_all_ne(vus
, vus
);
8488 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8489 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8491 res_i
= vec_all_ne(vus
, vbs
);
8492 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8493 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8495 res_i
= vec_all_ne(vbs
, vs
);
8496 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8497 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8499 res_i
= vec_all_ne(vbs
, vus
);
8500 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8501 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8503 res_i
= vec_all_ne(vbs
, vbs
);
8504 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8505 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8507 res_i
= vec_all_ne(vp
, vp
);
8508 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8509 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8511 res_i
= vec_all_ne(vi
, vi
);
8512 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8513 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8515 res_i
= vec_all_ne(vi
, vbi
);
8516 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8517 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8519 res_i
= vec_all_ne(vui
, vui
);
8520 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8521 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8523 res_i
= vec_all_ne(vui
, vbi
);
8524 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8525 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8527 res_i
= vec_all_ne(vbi
, vi
);
8528 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8529 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8531 res_i
= vec_all_ne(vbi
, vui
);
8532 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8533 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8535 res_i
= vec_all_ne(vbi
, vbi
);
8536 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8537 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8539 res_i
= vec_all_ne(vf
, vf
);
8540 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8541 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8544 res_i
= vec_all_nge(vf
, vf
);
8545 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8546 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8549 res_i
= vec_all_ngt(vf
, vf
);
8550 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8551 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8554 res_i
= vec_all_nle(vf
, vf
);
8555 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8556 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8559 res_i
= vec_all_nlt(vf
, vf
);
8560 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8561 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8563 /* vec_all_numeric */
8564 res_i
= vec_all_numeric(vf
);
8565 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8566 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8569 res_i
= vec_any_eq(vsc
, vsc
);
8570 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8571 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8573 res_i
= vec_any_eq(vsc
, vbc
);
8574 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8575 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8577 res_i
= vec_any_eq(vuc
, vuc
);
8578 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8579 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8581 res_i
= vec_any_eq(vuc
, vbc
);
8582 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8583 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8585 res_i
= vec_any_eq(vbc
, vsc
);
8586 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8587 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8589 res_i
= vec_any_eq(vbc
, vuc
);
8590 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8591 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8593 res_i
= vec_any_eq(vbc
, vbc
);
8594 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8595 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8597 res_i
= vec_any_eq(vs
, vs
);
8598 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8599 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8601 res_i
= vec_any_eq(vs
, vbs
);
8602 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8603 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8605 res_i
= vec_any_eq(vus
, vus
);
8606 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8607 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8609 res_i
= vec_any_eq(vus
, vbs
);
8610 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8611 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8613 res_i
= vec_any_eq(vbs
, vs
);
8614 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8615 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8617 res_i
= vec_any_eq(vbs
, vus
);
8618 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8619 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8621 res_i
= vec_any_eq(vbs
, vbs
);
8622 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8623 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8625 res_i
= vec_any_eq(vp
, vp
);
8626 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8627 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8629 res_i
= vec_any_eq(vi
, vi
);
8630 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8631 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8633 res_i
= vec_any_eq(vi
, vbi
);
8634 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8635 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8637 res_i
= vec_any_eq(vui
, vui
);
8638 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8639 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8641 res_i
= vec_any_eq(vui
, vbi
);
8642 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8643 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8645 res_i
= vec_any_eq(vbi
, vi
);
8646 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8647 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8649 res_i
= vec_any_eq(vbi
, vui
);
8650 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8651 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8653 res_i
= vec_any_eq(vbi
, vbi
);
8654 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8655 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8657 res_i
= vec_any_eq(vf
, vf
);
8658 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8659 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8662 res_i
= vec_any_ge(vsc
, vsc
);
8663 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8664 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8666 res_i
= vec_any_ge(vsc
, vbc
);
8667 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8668 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8670 res_i
= vec_any_ge(vuc
, vuc
);
8671 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8672 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8674 res_i
= vec_any_ge(vuc
, vbc
);
8675 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8676 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8678 res_i
= vec_any_ge(vbc
, vsc
);
8679 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8680 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8682 res_i
= vec_any_ge(vbc
, vuc
);
8683 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8684 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8686 res_i
= vec_any_ge(vbc
, vbc
);
8687 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8688 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8690 res_i
= vec_any_ge(vs
, vs
);
8691 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8692 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8694 res_i
= vec_any_ge(vs
, vbs
);
8695 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8696 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8698 res_i
= vec_any_ge(vus
, vus
);
8699 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8700 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8702 res_i
= vec_any_ge(vus
, vbs
);
8703 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8704 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8706 res_i
= vec_any_ge(vbs
, vs
);
8707 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8708 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8710 res_i
= vec_any_ge(vbs
, vus
);
8711 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8712 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8714 res_i
= vec_any_ge(vbs
, vbs
);
8715 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8716 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8718 res_i
= vec_any_ge(vi
, vi
);
8719 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8720 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8722 res_i
= vec_any_ge(vi
, vbi
);
8723 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8724 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8726 res_i
= vec_any_ge(vui
, vui
);
8727 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8728 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8730 res_i
= vec_any_ge(vui
, vbi
);
8731 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8732 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8734 res_i
= vec_any_ge(vbi
, vi
);
8735 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8736 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8738 res_i
= vec_any_ge(vbi
, vui
);
8739 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8740 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8742 res_i
= vec_any_ge(vbi
, vbi
);
8743 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8744 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8746 res_i
= vec_any_ge(vf
, vf
);
8747 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8748 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8751 res_i
= vec_any_gt(vsc
, vsc
);
8752 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8753 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8755 res_i
= vec_any_gt(vsc
, vbc
);
8756 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8757 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8759 res_i
= vec_any_gt(vuc
, vuc
);
8760 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8761 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8763 res_i
= vec_any_gt(vuc
, vbc
);
8764 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8765 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8767 res_i
= vec_any_gt(vbc
, vsc
);
8768 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8769 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8771 res_i
= vec_any_gt(vbc
, vuc
);
8772 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8773 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8775 res_i
= vec_any_gt(vbc
, vbc
);
8776 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8777 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8779 res_i
= vec_any_gt(vs
, vs
);
8780 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8781 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8783 res_i
= vec_any_gt(vs
, vbs
);
8784 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8785 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8787 res_i
= vec_any_gt(vus
, vus
);
8788 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8789 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8791 res_i
= vec_any_gt(vus
, vbs
);
8792 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8793 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8795 res_i
= vec_any_gt(vbs
, vs
);
8796 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8797 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8799 res_i
= vec_any_gt(vbs
, vus
);
8800 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8801 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8803 res_i
= vec_any_gt(vbs
, vbs
);
8804 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8805 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8807 res_i
= vec_any_gt(vi
, vi
);
8808 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8809 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8811 res_i
= vec_any_gt(vi
, vbi
);
8812 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8813 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8815 res_i
= vec_any_gt(vui
, vui
);
8816 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8817 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8819 res_i
= vec_any_gt(vui
, vbi
);
8820 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8821 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8823 res_i
= vec_any_gt(vbi
, vi
);
8824 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8825 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8827 res_i
= vec_any_gt(vbi
, vui
);
8828 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8829 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8831 res_i
= vec_any_gt(vbi
, vbi
);
8832 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8833 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8835 res_i
= vec_any_gt(vf
, vf
);
8836 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8837 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8840 res_i
= vec_any_le(vsc
, vsc
);
8841 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8842 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8844 res_i
= vec_any_le(vsc
, vbc
);
8845 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8846 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8848 res_i
= vec_any_le(vuc
, vuc
);
8849 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8850 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8852 res_i
= vec_any_le(vuc
, vbc
);
8853 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8854 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8856 res_i
= vec_any_le(vbc
, vsc
);
8857 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8858 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8860 res_i
= vec_any_le(vbc
, vuc
);
8861 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8862 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8864 res_i
= vec_any_le(vbc
, vbc
);
8865 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8866 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8868 res_i
= vec_any_le(vs
, vs
);
8869 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8870 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8872 res_i
= vec_any_le(vs
, vbs
);
8873 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8874 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8876 res_i
= vec_any_le(vus
, vus
);
8877 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8878 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8880 res_i
= vec_any_le(vus
, vbs
);
8881 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8882 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8884 res_i
= vec_any_le(vbs
, vs
);
8885 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8886 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8888 res_i
= vec_any_le(vbs
, vus
);
8889 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8890 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8892 res_i
= vec_any_le(vbs
, vbs
);
8893 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8894 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8896 res_i
= vec_any_le(vi
, vi
);
8897 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8898 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8900 res_i
= vec_any_le(vi
, vbi
);
8901 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8902 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8904 res_i
= vec_any_le(vui
, vui
);
8905 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8906 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8908 res_i
= vec_any_le(vui
, vbi
);
8909 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8910 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8912 res_i
= vec_any_le(vbi
, vi
);
8913 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8914 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8916 res_i
= vec_any_le(vbi
, vui
);
8917 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8918 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8920 res_i
= vec_any_le(vbi
, vbi
);
8921 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8922 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8924 res_i
= vec_any_le(vf
, vf
);
8925 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8926 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8929 res_i
= vec_any_lt(vsc
, vsc
);
8930 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8931 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8933 res_i
= vec_any_lt(vsc
, vbc
);
8934 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8935 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8937 res_i
= vec_any_lt(vuc
, vuc
);
8938 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8939 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8941 res_i
= vec_any_lt(vuc
, vbc
);
8942 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8943 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8945 res_i
= vec_any_lt(vbc
, vsc
);
8946 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8947 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8949 res_i
= vec_any_lt(vbc
, vuc
);
8950 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8951 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8953 res_i
= vec_any_lt(vbc
, vbc
);
8954 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8955 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8957 res_i
= vec_any_lt(vs
, vs
);
8958 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8959 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8961 res_i
= vec_any_lt(vs
, vbs
);
8962 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8963 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8965 res_i
= vec_any_lt(vus
, vus
);
8966 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8967 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8969 res_i
= vec_any_lt(vus
, vbs
);
8970 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8971 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8973 res_i
= vec_any_lt(vbs
, vs
);
8974 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8975 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8977 res_i
= vec_any_lt(vbs
, vus
);
8978 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8979 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8981 res_i
= vec_any_lt(vbs
, vbs
);
8982 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8983 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8985 res_i
= vec_any_lt(vi
, vi
);
8986 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8987 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8989 res_i
= vec_any_lt(vi
, vbi
);
8990 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8991 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8993 res_i
= vec_any_lt(vui
, vui
);
8994 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8995 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8997 res_i
= vec_any_lt(vui
, vbi
);
8998 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8999 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
9001 res_i
= vec_any_lt(vbi
, vi
);
9002 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
9003 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
9005 res_i
= vec_any_lt(vbi
, vui
);
9006 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
9007 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
9009 res_i
= vec_any_lt(vbi
, vbi
);
9010 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
9011 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
9013 res_i
= vec_any_lt(vf
, vf
);
9014 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
9015 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
9018 res_i
= vec_any_nan(vf
);
9019 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
9020 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
9023 res_i
= vec_any_ne(vsc
, vsc
);
9024 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9025 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9027 res_i
= vec_any_ne(vsc
, vbc
);
9028 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9029 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9031 res_i
= vec_any_ne(vuc
, vuc
);
9032 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9033 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9035 res_i
= vec_any_ne(vuc
, vbc
);
9036 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9037 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9039 res_i
= vec_any_ne(vbc
, vsc
);
9040 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9041 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9043 res_i
= vec_any_ne(vbc
, vuc
);
9044 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9045 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9047 res_i
= vec_any_ne(vbc
, vbc
);
9048 // CHECK: @llvm.ppc.altivec.vcmpequb.p
9049 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
9051 res_i
= vec_any_ne(vs
, vs
);
9052 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9053 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9055 res_i
= vec_any_ne(vs
, vbs
);
9056 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9057 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9059 res_i
= vec_any_ne(vus
, vus
);
9060 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9061 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9063 res_i
= vec_any_ne(vus
, vbs
);
9064 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9065 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9067 res_i
= vec_any_ne(vbs
, vs
);
9068 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9069 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9071 res_i
= vec_any_ne(vbs
, vus
);
9072 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9073 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9075 res_i
= vec_any_ne(vbs
, vbs
);
9076 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9077 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9079 res_i
= vec_any_ne(vp
, vp
);
9080 // CHECK: @llvm.ppc.altivec.vcmpequh.p
9081 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
9083 res_i
= vec_any_ne(vi
, vi
);
9084 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9085 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9087 res_i
= vec_any_ne(vi
, vbi
);
9088 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9089 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9091 res_i
= vec_any_ne(vui
, vui
);
9092 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9093 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9095 res_i
= vec_any_ne(vui
, vbi
);
9096 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9097 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9099 res_i
= vec_any_ne(vbi
, vi
);
9100 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9101 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9103 res_i
= vec_any_ne(vbi
, vui
);
9104 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9105 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9107 res_i
= vec_any_ne(vbi
, vbi
);
9108 // CHECK: @llvm.ppc.altivec.vcmpequw.p
9109 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
9111 res_i
= vec_any_ne(vf
, vf
);
9112 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
9113 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
9116 res_i
= vec_any_nge(vf
, vf
);
9117 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
9118 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
9121 res_i
= vec_any_ngt(vf
, vf
);
9122 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
9123 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
9126 res_i
= vec_any_nle(vf
, vf
);
9127 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
9128 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
9131 res_i
= vec_any_nlt(vf
, vf
);
9132 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
9133 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
9135 /* vec_any_numeric */
9136 res_i
= vec_any_numeric(vf
);
9137 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
9138 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
9141 res_i
= vec_any_out(vf
, vf
);
9142 // CHECK: @llvm.ppc.altivec.vcmpbfp.p
9143 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p
9146 /* ------------------------------ Relational Operators ------------------------------ */
9147 // CHECK-LABEL: define{{.*}} void @test7
9149 vector
signed char vsc1
= (vector
signed char)(-1);
9150 vector
signed char vsc2
= (vector
signed char)(-2);
9151 res_i
= (vsc1
== vsc2
);
9152 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2
9153 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2
9155 res_i
= (vsc1
!= vsc2
);
9156 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0
9157 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0
9159 res_i
= (vsc1
< vsc2
);
9160 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
9161 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
9163 res_i
= (vsc1
> vsc2
);
9164 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
9165 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
9167 res_i
= (vsc1
<= vsc2
);
9168 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
9169 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
9171 res_i
= (vsc1
>= vsc2
);
9172 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
9173 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
9175 vector
unsigned char vuc1
= (vector
unsigned char)(1);
9176 vector
unsigned char vuc2
= (vector
unsigned char)(2);
9177 res_i
= (vuc1
== vuc2
);
9178 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2
9179 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2
9181 res_i
= (vuc1
!= vuc2
);
9182 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0
9183 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0
9185 res_i
= (vuc1
< vuc2
);
9186 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2
9187 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2
9189 res_i
= (vuc1
> vuc2
);
9190 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2
9191 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2
9193 res_i
= (vuc1
<= vuc2
);
9194 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0
9195 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0
9197 res_i
= (vuc1
>= vuc2
);
9198 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0
9199 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0
9201 vector
short vs1
= (vector
short)(-1);
9202 vector
short vs2
= (vector
short)(-2);
9203 res_i
= (vs1
== vs2
);
9204 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2
9205 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2
9207 res_i
= (vs1
!= vs2
);
9208 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0
9209 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0
9211 res_i
= (vs1
< vs2
);
9212 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
9213 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
9215 res_i
= (vs1
> vs2
);
9216 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
9217 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
9219 res_i
= (vs1
<= vs2
);
9220 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
9221 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
9223 res_i
= (vs1
>= vs2
);
9224 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
9225 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
9227 vector
unsigned short vus1
= (vector
unsigned short)(1);
9228 vector
unsigned short vus2
= (vector
unsigned short)(2);
9229 res_i
= (vus1
== vus2
);
9230 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2
9231 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2
9233 res_i
= (vus1
!= vus2
);
9234 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0
9235 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0
9237 res_i
= (vus1
< vus2
);
9238 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
9239 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
9241 res_i
= (vus1
> vus2
);
9242 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
9243 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
9245 res_i
= (vus1
<= vus2
);
9246 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
9247 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
9249 res_i
= (vus1
>= vus2
);
9250 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
9251 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
9253 vector
int vi1
= (vector
int)(-1);
9254 vector
int vi2
= (vector
int)(-2);
9255 res_i
= (vi1
== vi2
);
9256 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2
9257 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2
9259 res_i
= (vi1
!= vi2
);
9260 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0
9261 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0
9263 res_i
= (vi1
< vi2
);
9264 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
9265 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
9267 res_i
= (vi1
> vi2
);
9268 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
9269 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
9271 res_i
= (vi1
<= vi2
);
9272 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
9273 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
9275 res_i
= (vi1
>= vi2
);
9276 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
9277 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
9279 vector
unsigned int vui1
= (vector
unsigned int)(1);
9280 vector
unsigned int vui2
= (vector
unsigned int)(2);
9281 res_i
= (vui1
== vui2
);
9282 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2
9283 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2
9285 res_i
= (vui1
!= vui2
);
9286 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0
9287 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0
9289 res_i
= (vui1
< vui2
);
9290 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
9291 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
9293 res_i
= (vui1
> vui2
);
9294 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
9295 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
9297 res_i
= (vui1
<= vui2
);
9298 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
9299 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
9301 res_i
= (vui1
>= vui2
);
9302 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
9303 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
9305 vector
float vf1
= (vector
float)(1.0);
9306 vector
float vf2
= (vector
float)(2.0);
9307 res_i
= (vf1
== vf2
);
9308 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2
9309 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 2
9311 res_i
= (vf1
!= vf2
);
9312 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0
9313 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 0
9315 res_i
= (vf1
< vf2
);
9316 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
9317 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
9319 res_i
= (vf1
> vf2
);
9320 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
9321 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
9323 res_i
= (vf1
<= vf2
);
9324 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2
9325 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2
9327 res_i
= (vf1
>= vf2
);
9328 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2
9329 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2
9332 /* ------------------------------ optional ---------------------------------- */
9334 // CHECK-LABEL: define{{.*}} void @test8
9335 // CHECK-LE-LABEL: define{{.*}} void @test8
9336 res_vbc
= vec_reve(vbc
);
9337 // CHECK: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
9338 // CHECK-LE: shufflevector <16 x i8> %{{[0-9]+}}, <16 x i8> %{{[0-9]+}}, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
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>
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>
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>
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>
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>
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>
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>
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>
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>
9376 res_vbc
= vec_revb(vbc
);
9377 // CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vbc, align 16
9378 // CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16
9379 // CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16
9380 // CHECK: store <16 x i8> [[T3]], ptr @res_vbc, align 16
9381 // CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vbc, align 16
9382 // CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16
9383 // CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16
9384 // CHECK-LE: store <16 x i8> [[T3]], ptr @res_vbc, align 16
9386 res_vsc
= vec_revb(vsc
);
9387 // CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vsc, align 16
9388 // CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16
9389 // CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16
9390 // CHECK: store <16 x i8> [[T3]], ptr @res_vsc, align 16
9391 // CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vsc, align 16
9392 // CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16
9393 // CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16
9394 // CHECK-LE: store <16 x i8> [[T3]], ptr @res_vsc, align 16
9396 res_vuc
= vec_revb(vuc
);
9397 // CHECK: [[T1:%.+]] = load <16 x i8>, ptr @vuc, align 16
9398 // CHECK: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16
9399 // CHECK: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16
9400 // CHECK: store <16 x i8> [[T3]], ptr @res_vuc, align 16
9401 // CHECK-LE: [[T1:%.+]] = load <16 x i8>, ptr @vuc, align 16
9402 // CHECK-LE: store <16 x i8> [[T1]], ptr [[T2:%.+]], align 16
9403 // CHECK-LE: [[T3:%.+]] = load <16 x i8>, ptr [[T2]], align 16
9404 // CHECK-LE: store <16 x i8> [[T3]], ptr @res_vuc, align 16
9406 res_vbs
= vec_revb(vbs
);
9407 // CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16
9408 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9409 // CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16
9410 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9411 // CHECK-LE: xor <16 x i8>
9412 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9414 res_vs
= vec_revb(vs
);
9415 // CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16
9416 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9417 // CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16
9418 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9419 // CHECK-LE: xor <16 x i8>
9420 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9422 res_vus
= vec_revb(vus
);
9423 // CHECK: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16
9424 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9425 // CHECK-LE: store <16 x i8> <i8 1, i8 0, i8 3, i8 2, i8 5, i8 4, i8 7, i8 6, i8 9, i8 8, i8 11, i8 10, i8 13, i8 12, i8 15, i8 14>, ptr {{%.+}}, align 16
9426 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9427 // CHECK-LE: xor <16 x i8>
9428 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9430 res_vbi
= vec_revb(vbi
);
9431 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9432 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9433 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9434 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9435 // CHECK-LE: xor <16 x i8>
9436 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9438 res_vi
= vec_revb(vi
);
9439 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9440 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9441 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9442 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9443 // CHECK-LE: xor <16 x i8>
9444 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9446 res_vui
= vec_revb(vui
);
9447 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9448 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9449 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9450 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9451 // CHECK-LE: xor <16 x i8>
9452 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9454 res_vf
= vec_revb(vf
);
9455 // CHECK: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9456 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9457 // CHECK-LE: store <16 x i8> <i8 3, i8 2, i8 1, i8 0, i8 7, i8 6, i8 5, i8 4, i8 11, i8 10, i8 9, i8 8, i8 15, i8 14, i8 13, i8 12>, ptr {{%.+}}, align 16
9458 // CHECK-LE: store <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, ptr {{%.+}}, align 16
9459 // CHECK-LE: xor <16 x i8>
9460 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{%.+}}, <4 x i32> {{%.+}}, <16 x i8> {{%.+}})
9463 /* ------------------------------ vec_xl ------------------------------------ */
9465 // CHECK-LABEL: define{{.*}} void @test9
9466 // CHECK-LE-LABEL: define{{.*}} void @test9
9467 res_vsc
= vec_xl(param_sll
, param_sc_ld
);
9468 // CHECK: load <16 x i8>, ptr %{{.+}}, align 1
9469 // CHECK-LE: load <16 x i8>, ptr %{{.+}}, align 1
9471 res_vuc
= vec_xl(param_sll
, param_uc_ld
);
9472 // CHECK: load <16 x i8>, ptr %{{.+}}, align 1
9473 // CHECK-LE: load <16 x i8>, ptr %{{.+}}, align 1
9475 res_vs
= vec_xl(param_sll
, param_s_ld
);
9476 // CHECK: load <8 x i16>, ptr %{{.+}}, align 1
9477 // CHECK-LE: load <8 x i16>, ptr %{{.+}}, align 1
9479 res_vus
= vec_xl(param_sll
, param_us_ld
);
9480 // CHECK: load <8 x i16>, ptr %{{.+}}, align 1
9481 // CHECK-LE: load <8 x i16>, ptr %{{.+}}, align 1
9483 res_vi
= vec_xl(param_sll
, param_i_ld
);
9484 // CHECK: load <4 x i32>, ptr %{{.+}}, align 1
9485 // CHECK-LE: load <4 x i32>, ptr %{{.+}}, align 1
9487 res_vui
= vec_xl(param_sll
, param_ui_ld
);
9488 // CHECK: load <4 x i32>, ptr %{{.+}}, align 1
9489 // CHECK-LE: load <4 x i32>, ptr %{{.+}}, align 1
9491 res_vf
= vec_xl(param_sll
, param_f_ld
);
9492 // CHECK: load <4 x float>, ptr %{{.+}}, align 1
9493 // CHECK-LE: load <4 x float>, ptr %{{.+}}, align 1
9496 /* ------------------------------ vec_xst ----------------------------------- */
9498 // CHECK-LABEL: define{{.*}} void @test10
9499 // CHECK-LE-LABEL: define{{.*}} void @test10
9500 vec_xst(vsc
, param_sll
, ¶m_sc
);
9501 // CHECK: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1
9502 // CHECK-LE: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1
9504 vec_xst(vuc
, param_sll
, ¶m_uc
);
9505 // CHECK: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1
9506 // CHECK-LE: store <16 x i8> %{{[0-9]+}}, ptr %{{.+}}, align 1
9508 vec_xst(vs
, param_sll
, ¶m_s
);
9509 // CHECK: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1
9510 // CHECK-LE: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1
9512 vec_xst(vus
, param_sll
, ¶m_us
);
9513 // CHECK: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1
9514 // CHECK-LE: store <8 x i16> %{{[0-9]+}}, ptr %{{.+}}, align 1
9516 vec_xst(vi
, param_sll
, ¶m_i
);
9517 // CHECK: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1
9518 // CHECK-LE: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1
9520 vec_xst(vui
, param_sll
, ¶m_ui
);
9521 // CHECK: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1
9522 // CHECK-LE: store <4 x i32> %{{[0-9]+}}, ptr %{{.+}}, align 1
9524 vec_xst(vf
, param_sll
, ¶m_f
);
9525 // CHECK: store <4 x float> %{{[0-9]+}}, ptr %{{.+}}, align 1
9526 // CHECK-LE: store <4 x float> %{{[0-9]+}}, ptr %{{.+}}, align 1
9529 vector
float test_rsqrtf(vector
float a
, vector
float b
) {
9530 // CHECK-LABEL: test_rsqrtf
9531 // CHECK: call fast <4 x float> @llvm.sqrt.v4f32
9532 // CHECK: fdiv fast <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>
9533 // CHECK-LE-LABEL: test_rsqrtf
9534 // CHECK-LE: call fast <4 x float> @llvm.sqrt.v4f32
9535 // CHECK-LE: fdiv fast <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>
9536 return vec_rsqrt(a
);
9539 vector
float test_recipdivf(vector
float a
, vector
float b
) {
9540 // CHECK-LABEL: test_recipdivf
9541 // CHECK: fdiv fast <4 x float>
9542 // CHECK-LE-LABEL: test_recipdivf
9543 // CHECK-LE: fdiv fast <4 x float>
9544 return vec_recipdiv(a
, b
);