1 // REQUIRES: powerpc-registered-target
2 // RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s
3 // RUN: %clang_cc1 -faltivec -triple powerpc64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
4 // RUN: %clang_cc1 -faltivec -triple powerpc64le-unknown-unknown -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK-LE
6 vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 };
7 vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 };
8 vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
9 vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 };
10 vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 };
11 vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 };
12 vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 };
13 vector bool int vbi = { 1, 0, 1, 0 };
14 vector int vi = { -1, 2, -3, 4 };
15 vector unsigned int vui = { 1, 2, 3, 4 };
16 vector float vf = { -1.5, 2.5, -3.5, 4.5 };
18 vector bool char res_vbc;
19 vector signed char res_vsc;
20 vector unsigned char res_vuc;
21 vector bool short res_vbs;
23 vector unsigned short res_vus;
25 vector bool int res_vbi;
27 vector unsigned int res_vui;
31 unsigned char param_uc;
33 unsigned short param_us;
35 unsigned int param_ui;
46 // CHECK-LABEL: define void @test1
51 // CHECK: sub <16 x i8> zeroinitializer
52 // CHECK: @llvm.ppc.altivec.vmaxsb
53 // CHECK-LE: sub <16 x i8> zeroinitializer
54 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
57 // CHECK: sub <8 x i16> zeroinitializer
58 // CHECK: @llvm.ppc.altivec.vmaxsh
59 // CHECK-LE: sub <8 x i16> zeroinitializer
60 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
63 // CHECK: sub <4 x i32> zeroinitializer
64 // CHECK: @llvm.ppc.altivec.vmaxsw
65 // CHECK-LE: sub <4 x i32> zeroinitializer
66 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
69 // CHECK: and <4 x i32>
70 // CHECK-LE: and <4 x i32>
74 // CHECK: @llvm.ppc.altivec.vsubsbs
75 // CHECK: @llvm.ppc.altivec.vmaxsb
76 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
77 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
80 // CHECK: @llvm.ppc.altivec.vsubshs
81 // CHECK: @llvm.ppc.altivec.vmaxsh
82 // CHECK-LE: @llvm.ppc.altivec.vsubshs
83 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
86 // CHECK: @llvm.ppc.altivec.vsubsws
87 // CHECK: @llvm.ppc.altivec.vmaxsw
88 // CHECK-LE: @llvm.ppc.altivec.vsubsws
89 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
92 res_vsc = vec_add(vsc, vsc);
93 // CHECK: add <16 x i8>
94 // CHECK-LE: add <16 x i8>
96 res_vsc = vec_add(vbc, vsc);
97 // CHECK: add <16 x i8>
98 // CHECK-LE: add <16 x i8>
100 res_vsc = vec_add(vsc, vbc);
101 // CHECK: add <16 x i8>
102 // CHECK-LE: add <16 x i8>
104 res_vuc = vec_add(vuc, vuc);
105 // CHECK: add <16 x i8>
106 // CHECK-LE: add <16 x i8>
108 res_vuc = vec_add(vbc, vuc);
109 // CHECK: add <16 x i8>
110 // CHECK-LE: add <16 x i8>
112 res_vuc = vec_add(vuc, vbc);
113 // CHECK: add <16 x i8>
114 // CHECK-LE: add <16 x i8>
116 res_vs = vec_add(vs, vs);
117 // CHECK: add <8 x i16>
118 // CHECK-LE: add <8 x i16>
120 res_vs = vec_add(vbs, vs);
121 // CHECK: add <8 x i16>
122 // CHECK-LE: add <8 x i16>
124 res_vs = vec_add(vs, vbs);
125 // CHECK: add <8 x i16>
126 // CHECK-LE: add <8 x i16>
128 res_vus = vec_add(vus, vus);
129 // CHECK: add <8 x i16>
130 // CHECK-LE: add <8 x i16>
132 res_vus = vec_add(vbs, vus);
133 // CHECK: add <8 x i16>
134 // CHECK-LE: add <8 x i16>
136 res_vus = vec_add(vus, vbs);
137 // CHECK: add <8 x i16>
138 // CHECK-LE: add <8 x i16>
140 res_vi = vec_add(vi, vi);
141 // CHECK: add <4 x i32>
142 // CHECK-LE: add <4 x i32>
144 res_vi = vec_add(vbi, vi);
145 // CHECK: add <4 x i32>
146 // CHECK-LE: add <4 x i32>
148 res_vi = vec_add(vi, vbi);
149 // CHECK: add <4 x i32>
150 // CHECK-LE: add <4 x i32>
152 res_vui = vec_add(vui, vui);
153 // CHECK: add <4 x i32>
154 // CHECK-LE: add <4 x i32>
156 res_vui = vec_add(vbi, vui);
157 // CHECK: add <4 x i32>
158 // CHECK-LE: add <4 x i32>
160 res_vui = vec_add(vui, vbi);
161 // CHECK: add <4 x i32>
162 // CHECK-LE: add <4 x i32>
164 res_vf = vec_add(vf, vf);
165 // CHECK: fadd <4 x float>
166 // CHECK-LE: fadd <4 x float>
168 res_vsc = vec_vaddubm(vsc, vsc);
169 // CHECK: add <16 x i8>
170 // CHECK-LE: add <16 x i8>
172 res_vsc = vec_vaddubm(vbc, vsc);
173 // CHECK: add <16 x i8>
174 // CHECK-LE: add <16 x i8>
176 res_vsc = vec_vaddubm(vsc, vbc);
177 // CHECK: add <16 x i8>
178 // CHECK-LE: add <16 x i8>
180 res_vuc = vec_vaddubm(vuc, vuc);
181 // CHECK: add <16 x i8>
182 // CHECK-LE: add <16 x i8>
184 res_vuc = vec_vaddubm(vbc, vuc);
185 // CHECK: add <16 x i8>
186 // CHECK-LE: add <16 x i8>
188 res_vuc = vec_vaddubm(vuc, vbc);
189 // CHECK: add <16 x i8>
190 // CHECK-LE: add <16 x i8>
192 res_vs = vec_vadduhm(vs, vs);
193 // CHECK: add <8 x i16>
194 // CHECK-LE: add <8 x i16>
196 res_vs = vec_vadduhm(vbs, vs);
197 // CHECK: add <8 x i16>
198 // CHECK-LE: add <8 x i16>
200 res_vs = vec_vadduhm(vs, vbs);
201 // CHECK: add <8 x i16>
202 // CHECK-LE: add <8 x i16>
204 res_vus = vec_vadduhm(vus, vus);
205 // CHECK: add <8 x i16>
206 // CHECK-LE: add <8 x i16>
208 res_vus = vec_vadduhm(vbs, vus);
209 // CHECK: add <8 x i16>
210 // CHECK-LE: add <8 x i16>
212 res_vus = vec_vadduhm(vus, vbs);
213 // CHECK: add <8 x i16>
214 // CHECK-LE: add <8 x i16>
216 res_vi = vec_vadduwm(vi, vi);
217 // CHECK: add <4 x i32>
218 // CHECK-LE: add <4 x i32>
220 res_vi = vec_vadduwm(vbi, vi);
221 // CHECK: add <4 x i32>
222 // CHECK-LE: add <4 x i32>
224 res_vi = vec_vadduwm(vi, vbi);
225 // CHECK: add <4 x i32>
226 // CHECK-LE: add <4 x i32>
228 res_vui = vec_vadduwm(vui, vui);
229 // CHECK: add <4 x i32>
230 // CHECK-LE: add <4 x i32>
232 res_vui = vec_vadduwm(vbi, vui);
233 // CHECK: add <4 x i32>
234 // CHECK-LE: add <4 x i32>
236 res_vui = vec_vadduwm(vui, vbi);
237 // CHECK: add <4 x i32>
238 // CHECK-LE: add <4 x i32>
240 res_vf = vec_vaddfp(vf, vf);
241 // CHECK: fadd <4 x float>
242 // CHECK-LE: fadd <4 x float>
245 res_vui = vec_addc(vui, vui);
246 // CHECK: @llvm.ppc.altivec.vaddcuw
247 // CHECK-LE: @llvm.ppc.altivec.vaddcuw
249 res_vui = vec_vaddcuw(vui, vui);
250 // CHECK: @llvm.ppc.altivec.vaddcuw
251 // CHECK-LE: @llvm.ppc.altivec.vaddcuw
254 res_vsc = vec_adds(vsc, vsc);
255 // CHECK: @llvm.ppc.altivec.vaddsbs
256 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
258 res_vsc = vec_adds(vbc, vsc);
259 // CHECK: @llvm.ppc.altivec.vaddsbs
260 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
262 res_vsc = vec_adds(vsc, vbc);
263 // CHECK: @llvm.ppc.altivec.vaddsbs
264 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
266 res_vuc = vec_adds(vuc, vuc);
267 // CHECK: @llvm.ppc.altivec.vaddubs
268 // CHECK-LE: @llvm.ppc.altivec.vaddubs
270 res_vuc = vec_adds(vbc, vuc);
271 // CHECK: @llvm.ppc.altivec.vaddubs
272 // CHECK-LE: @llvm.ppc.altivec.vaddubs
274 res_vuc = vec_adds(vuc, vbc);
275 // CHECK: @llvm.ppc.altivec.vaddubs
276 // CHECK-LE: @llvm.ppc.altivec.vaddubs
278 res_vs = vec_adds(vs, vs);
279 // CHECK: @llvm.ppc.altivec.vaddshs
280 // CHECK-LE: @llvm.ppc.altivec.vaddshs
282 res_vs = vec_adds(vbs, vs);
283 // CHECK: @llvm.ppc.altivec.vaddshs
284 // CHECK-LE: @llvm.ppc.altivec.vaddshs
286 res_vs = vec_adds(vs, vbs);
287 // CHECK: @llvm.ppc.altivec.vaddshs
288 // CHECK-LE: @llvm.ppc.altivec.vaddshs
290 res_vus = vec_adds(vus, vus);
291 // CHECK: @llvm.ppc.altivec.vadduhs
292 // CHECK-LE: @llvm.ppc.altivec.vadduhs
294 res_vus = vec_adds(vbs, vus);
295 // CHECK: @llvm.ppc.altivec.vadduhs
296 // CHECK-LE: @llvm.ppc.altivec.vadduhs
298 res_vus = vec_adds(vus, vbs);
299 // CHECK: @llvm.ppc.altivec.vadduhs
300 // CHECK-LE: @llvm.ppc.altivec.vadduhs
302 res_vi = vec_adds(vi, vi);
303 // CHECK: @llvm.ppc.altivec.vaddsws
304 // CHECK-LE: @llvm.ppc.altivec.vaddsws
306 res_vi = vec_adds(vbi, vi);
307 // CHECK: @llvm.ppc.altivec.vaddsws
308 // CHECK-LE: @llvm.ppc.altivec.vaddsws
310 res_vi = vec_adds(vi, vbi);
311 // CHECK: @llvm.ppc.altivec.vaddsws
312 // CHECK-LE: @llvm.ppc.altivec.vaddsws
314 res_vui = vec_adds(vui, vui);
315 // CHECK: @llvm.ppc.altivec.vadduws
316 // CHECK-LE: @llvm.ppc.altivec.vadduws
318 res_vui = vec_adds(vbi, vui);
319 // CHECK: @llvm.ppc.altivec.vadduws
320 // CHECK-LE: @llvm.ppc.altivec.vadduws
322 res_vui = vec_adds(vui, vbi);
323 // CHECK: @llvm.ppc.altivec.vadduws
324 // CHECK-LE: @llvm.ppc.altivec.vadduws
326 res_vsc = vec_vaddsbs(vsc, vsc);
327 // CHECK: @llvm.ppc.altivec.vaddsbs
328 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
330 res_vsc = vec_vaddsbs(vbc, vsc);
331 // CHECK: @llvm.ppc.altivec.vaddsbs
332 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
334 res_vsc = vec_vaddsbs(vsc, vbc);
335 // CHECK: @llvm.ppc.altivec.vaddsbs
336 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
338 res_vuc = vec_vaddubs(vuc, vuc);
339 // CHECK: @llvm.ppc.altivec.vaddubs
340 // CHECK-LE: @llvm.ppc.altivec.vaddubs
342 res_vuc = vec_vaddubs(vbc, vuc);
343 // CHECK: @llvm.ppc.altivec.vaddubs
344 // CHECK-LE: @llvm.ppc.altivec.vaddubs
346 res_vuc = vec_vaddubs(vuc, vbc);
347 // CHECK: @llvm.ppc.altivec.vaddubs
348 // CHECK-LE: @llvm.ppc.altivec.vaddubs
350 res_vs = vec_vaddshs(vs, vs);
351 // CHECK: @llvm.ppc.altivec.vaddshs
352 // CHECK-LE: @llvm.ppc.altivec.vaddshs
354 res_vs = vec_vaddshs(vbs, vs);
355 // CHECK: @llvm.ppc.altivec.vaddshs
356 // CHECK-LE: @llvm.ppc.altivec.vaddshs
358 res_vs = vec_vaddshs(vs, vbs);
359 // CHECK: @llvm.ppc.altivec.vaddshs
360 // CHECK-LE: @llvm.ppc.altivec.vaddshs
362 res_vus = vec_vadduhs(vus, vus);
363 // CHECK: @llvm.ppc.altivec.vadduhs
364 // CHECK-LE: @llvm.ppc.altivec.vadduhs
366 res_vus = vec_vadduhs(vbs, vus);
367 // CHECK: @llvm.ppc.altivec.vadduhs
368 // CHECK-LE: @llvm.ppc.altivec.vadduhs
370 res_vus = vec_vadduhs(vus, vbs);
371 // CHECK: @llvm.ppc.altivec.vadduhs
372 // CHECK-LE: @llvm.ppc.altivec.vadduhs
374 res_vi = vec_vaddsws(vi, vi);
375 // CHECK: @llvm.ppc.altivec.vaddsws
376 // CHECK-LE: @llvm.ppc.altivec.vaddsws
378 res_vi = vec_vaddsws(vbi, vi);
379 // CHECK: @llvm.ppc.altivec.vaddsws
380 // CHECK-LE: @llvm.ppc.altivec.vaddsws
382 res_vi = vec_vaddsws(vi, vbi);
383 // CHECK: @llvm.ppc.altivec.vaddsws
384 // CHECK-LE: @llvm.ppc.altivec.vaddsws
386 res_vui = vec_vadduws(vui, vui);
387 // CHECK: @llvm.ppc.altivec.vadduws
388 // CHECK-LE: @llvm.ppc.altivec.vadduws
390 res_vui = vec_vadduws(vbi, vui);
391 // CHECK: @llvm.ppc.altivec.vadduws
392 // CHECK-LE: @llvm.ppc.altivec.vadduws
394 res_vui = vec_vadduws(vui, vbi);
395 // CHECK: @llvm.ppc.altivec.vadduws
396 // CHECK-LE: @llvm.ppc.altivec.vadduws
399 res_vsc = vec_and(vsc, vsc);
400 // CHECK: and <16 x i8>
401 // CHECK-LE: and <16 x i8>
403 res_vsc = vec_and(vbc, vsc);
404 // CHECK: and <16 x i8>
405 // CHECK-LE: and <16 x i8>
407 res_vsc = vec_and(vsc, vbc);
408 // CHECK: and <16 x i8>
409 // CHECK-LE: and <16 x i8>
411 res_vuc = vec_and(vuc, vuc);
412 // CHECK: and <16 x i8>
413 // CHECK-LE: and <16 x i8>
415 res_vuc = vec_and(vbc, vuc);
416 // CHECK: and <16 x i8>
417 // CHECK-LE: and <16 x i8>
419 res_vuc = vec_and(vuc, vbc);
420 // CHECK: and <16 x i8>
421 // CHECK-LE: and <16 x i8>
423 res_vbc = vec_and(vbc, vbc);
424 // CHECK: and <16 x i8>
425 // CHECK-LE: and <16 x i8>
427 res_vs = vec_and(vs, vs);
428 // CHECK: and <8 x i16>
429 // CHECK-LE: and <8 x i16>
431 res_vs = vec_and(vbs, vs);
432 // CHECK: and <8 x i16>
433 // CHECK-LE: and <8 x i16>
435 res_vs = vec_and(vs, vbs);
436 // CHECK: and <8 x i16>
437 // CHECK-LE: and <8 x i16>
439 res_vus = vec_and(vus, vus);
440 // CHECK: and <8 x i16>
441 // CHECK-LE: and <8 x i16>
443 res_vus = vec_and(vbs, vus);
444 // CHECK: and <8 x i16>
445 // CHECK-LE: and <8 x i16>
447 res_vus = vec_and(vus, vbs);
448 // CHECK: and <8 x i16>
449 // CHECK-LE: and <8 x i16>
451 res_vbs = vec_and(vbs, vbs);
452 // CHECK: and <8 x i16>
453 // CHECK-LE: and <8 x i16>
455 res_vi = vec_and(vi, vi);
456 // CHECK: and <4 x i32>
457 // CHECK-LE: and <4 x i32>
459 res_vi = vec_and(vbi, vi);
460 // CHECK: and <4 x i32>
461 // CHECK-le: and <4 x i32>
463 res_vi = vec_and(vi, vbi);
464 // CHECK: and <4 x i32>
465 // CHECK-LE: and <4 x i32>
467 res_vui = vec_and(vui, vui);
468 // CHECK: and <4 x i32>
469 // CHECK-LE: and <4 x i32>
471 res_vui = vec_and(vbi, vui);
472 // CHECK: and <4 x i32>
473 // CHECK-LE: and <4 x i32>
475 res_vui = vec_and(vui, vbi);
476 // CHECK: and <4 x i32>
477 // CHECK-LE: and <4 x i32>
479 res_vbi = vec_and(vbi, vbi);
480 // CHECK: and <4 x i32>
481 // CHECK-LE: and <4 x i32>
483 res_vsc = vec_vand(vsc, vsc);
484 // CHECK: and <16 x i8>
485 // CHECK-LE: and <16 x i8>
487 res_vsc = vec_vand(vbc, vsc);
488 // CHECK: and <16 x i8>
489 // CHECK-LE: and <16 x i8>
491 res_vsc = vec_vand(vsc, vbc);
492 // CHECK: and <16 x i8>
493 // CHECK-LE: and <16 x i8>
495 res_vuc = vec_vand(vuc, vuc);
496 // CHECK: and <16 x i8>
497 // CHECK-LE: and <16 x i8>
499 res_vuc = vec_vand(vbc, vuc);
500 // CHECK: and <16 x i8>
501 // CHECK-LE: and <16 x i8>
503 res_vuc = vec_vand(vuc, vbc);
504 // CHECK: and <16 x i8>
505 // CHECK-LE: and <16 x i8>
507 res_vbc = vec_vand(vbc, vbc);
508 // CHECK: and <16 x i8>
509 // CHECK-LE: and <16 x i8>
511 res_vs = vec_vand(vs, vs);
512 // CHECK: and <8 x i16>
513 // CHECK-LE: and <8 x i16>
515 res_vs = vec_vand(vbs, vs);
516 // CHECK: and <8 x i16>
517 // CHECK-LE: and <8 x i16>
519 res_vs = vec_vand(vs, vbs);
520 // CHECK: and <8 x i16>
521 // CHECK-LE: and <8 x i16>
523 res_vus = vec_vand(vus, vus);
524 // CHECK: and <8 x i16>
525 // CHECK-LE: and <8 x i16>
527 res_vus = vec_vand(vbs, vus);
528 // CHECK: and <8 x i16>
529 // CHECK-LE: and <8 x i16>
531 res_vus = vec_vand(vus, vbs);
532 // CHECK: and <8 x i16>
533 // CHECK-LE: and <8 x i16>
535 res_vbs = vec_vand(vbs, vbs);
536 // CHECK: and <8 x i16>
537 // CHECK-LE: and <8 x i16>
539 res_vi = vec_vand(vi, vi);
540 // CHECK: and <4 x i32>
541 // CHECK-LE: and <4 x i32>
543 res_vi = vec_vand(vbi, vi);
544 // CHECK: and <4 x i32>
545 // CHECK-LE: and <4 x i32>
547 res_vi = vec_vand(vi, vbi);
548 // CHECK: and <4 x i32>
549 // CHECK-LE: and <4 x i32>
551 res_vui = vec_vand(vui, vui);
552 // CHECK: and <4 x i32>
553 // CHECK-LE: and <4 x i32>
555 res_vui = vec_vand(vbi, vui);
556 // CHECK: and <4 x i32>
557 // CHECK-LE: and <4 x i32>
559 res_vui = vec_vand(vui, vbi);
560 // CHECK: and <4 x i32>
561 // CHECK-LE: and <4 x i32>
563 res_vbi = vec_vand(vbi, vbi);
564 // CHECK: and <4 x i32>
565 // CHECK-LE: and <4 x i32>
568 res_vsc = vec_andc(vsc, vsc);
569 // CHECK: xor <16 x i8>
570 // CHECK: and <16 x i8>
571 // CHECK-LE: xor <16 x i8>
572 // CHECK-LE: and <16 x i8>
574 res_vsc = vec_andc(vbc, vsc);
575 // CHECK: xor <16 x i8>
576 // CHECK: and <16 x i8>
577 // CHECK-LE: xor <16 x i8>
578 // CHECK-LE: and <16 x i8>
580 res_vsc = vec_andc(vsc, vbc);
581 // CHECK: xor <16 x i8>
582 // CHECK: and <16 x i8>
583 // CHECK-LE: xor <16 x i8>
584 // CHECK-LE: and <16 x i8>
586 res_vuc = vec_andc(vuc, vuc);
587 // CHECK: xor <16 x i8>
588 // CHECK: and <16 x i8>
589 // CHECK-LE: xor <16 x i8>
590 // CHECK-LE: and <16 x i8>
592 res_vuc = vec_andc(vbc, vuc);
593 // CHECK: xor <16 x i8>
594 // CHECK: and <16 x i8>
595 // CHECK-LE: xor <16 x i8>
596 // CHECK-LE: and <16 x i8>
598 res_vuc = vec_andc(vuc, vbc);
599 // CHECK-LE: xor <16 x i8>
600 // CHECK-LE: and <16 x i8>
602 res_vbc = vec_andc(vbc, vbc);
603 // CHECK: xor <16 x i8>
604 // CHECK: and <16 x i8>
605 // CHECK-LE: xor <16 x i8>
606 // CHECK-LE: and <16 x i8>
608 res_vs = vec_andc(vs, vs);
609 // CHECK: xor <8 x i16>
610 // CHECK: and <8 x i16>
611 // CHECK-LE: xor <8 x i16>
612 // CHECK-LE: and <8 x i16>
614 res_vs = vec_andc(vbs, vs);
615 // CHECK: xor <8 x i16>
616 // CHECK: and <8 x i16>
617 // CHECK-LE: xor <8 x i16>
618 // CHECK-LE: and <8 x i16>
620 res_vs = vec_andc(vs, vbs);
621 // CHECK: xor <8 x i16>
622 // CHECK: and <8 x i16>
623 // CHECK-LE: xor <8 x i16>
624 // CHECK-LE: and <8 x i16>
626 res_vus = vec_andc(vus, vus);
627 // CHECK: xor <8 x i16>
628 // CHECK: and <8 x i16>
629 // CHECK-LE: xor <8 x i16>
630 // CHECK-LE: and <8 x i16>
632 res_vus = vec_andc(vbs, vus);
633 // CHECK: xor <8 x i16>
634 // CHECK: and <8 x i16>
635 // CHECK-LE: xor <8 x i16>
636 // CHECK-LE: and <8 x i16>
638 res_vus = vec_andc(vus, vbs);
639 // CHECK: xor <8 x i16>
640 // CHECK: and <8 x i16>
641 // CHECK-LE: xor <8 x i16>
642 // CHECK-LE: and <8 x i16>
644 res_vbs = vec_andc(vbs, vbs);
645 // CHECK: xor <8 x i16>
646 // CHECK: and <8 x i16>
647 // CHECK-LE: xor <8 x i16>
648 // CHECK-LE: and <8 x i16>
650 res_vi = vec_andc(vi, vi);
651 // CHECK: xor <4 x i32>
652 // CHECK: and <4 x i32>
653 // CHECK-LE: xor <4 x i32>
654 // CHECK-LE: and <4 x i32>
656 res_vi = vec_andc(vbi, vi);
657 // CHECK: xor <4 x i32>
658 // CHECK: and <4 x i32>
659 // CHECK-LE: xor <4 x i32>
660 // CHECK-LE: and <4 x i32>
662 res_vi = vec_andc(vi, vbi);
663 // CHECK: xor <4 x i32>
664 // CHECK: and <4 x i32>
665 // CHECK-LE: xor <4 x i32>
666 // CHECK-LE: and <4 x i32>
668 res_vui = vec_andc(vui, vui);
669 // CHECK: xor <4 x i32>
670 // CHECK: and <4 x i32>
671 // CHECK-LE: xor <4 x i32>
672 // CHECK-LE: and <4 x i32>
674 res_vui = vec_andc(vbi, vui);
675 // CHECK: xor <4 x i32>
676 // CHECK: and <4 x i32>
677 // CHECK-LE: xor <4 x i32>
678 // CHECK-LE: and <4 x i32>
680 res_vui = vec_andc(vui, vbi);
681 // CHECK: xor <4 x i32>
682 // CHECK: and <4 x i32>
683 // CHECK-LE: xor <4 x i32>
684 // CHECK-LE: and <4 x i32>
686 res_vf = vec_andc(vf, vf);
687 // CHECK: xor <4 x i32>
688 // CHECK: and <4 x i32>
689 // CHECK-LE: xor <4 x i32>
690 // CHECK-LE: and <4 x i32>
692 res_vf = vec_andc(vbi, vf);
693 // CHECK: xor <4 x i32>
694 // CHECK: and <4 x i32>
695 // CHECK-LE: xor <4 x i32>
696 // CHECK-LE: and <4 x i32>
698 res_vf = vec_andc(vf, vbi);
699 // CHECK: xor <4 x i32>
700 // CHECK: and <4 x i32>
701 // CHECK-LE: xor <4 x i32>
702 // CHECK-LE: and <4 x i32>
704 res_vsc = vec_vandc(vsc, vsc);
705 // CHECK: xor <16 x i8>
706 // CHECK: and <16 x i8>
707 // CHECK-LE: xor <16 x i8>
708 // CHECK-LE: and <16 x i8>
710 res_vsc = vec_vandc(vbc, vsc);
711 // CHECK: xor <16 x i8>
712 // CHECK: and <16 x i8>
713 // CHECK-LE: xor <16 x i8>
714 // CHECK-LE: and <16 x i8>
716 res_vsc = vec_vandc(vsc, vbc);
717 // CHECK: xor <16 x i8>
718 // CHECK: and <16 x i8>
719 // CHECK-LE: xor <16 x i8>
720 // CHECK-LE: and <16 x i8>
722 res_vuc = vec_vandc(vuc, vuc);
723 // CHECK: xor <16 x i8>
724 // CHECK: and <16 x i8>
725 // CHECK-LE: xor <16 x i8>
726 // CHECK-LE: and <16 x i8>
728 res_vuc = vec_vandc(vbc, vuc);
729 // CHECK: xor <16 x i8>
730 // CHECK: and <16 x i8>
731 // CHECK-LE: xor <16 x i8>
732 // CHECK-LE: and <16 x i8>
734 res_vuc = vec_vandc(vuc, vbc);
735 // CHECK: xor <16 x i8>
736 // CHECK: and <16 x i8>
737 // CHECK-LE: xor <16 x i8>
738 // CHECK-LE: and <16 x i8>
740 res_vbc = vec_vandc(vbc, vbc);
741 // CHECK: xor <16 x i8>
742 // CHECK: and <16 x i8>
743 // CHECK-LE: xor <16 x i8>
744 // CHECK-LE: and <16 x i8>
746 res_vs = vec_vandc(vs, vs);
747 // CHECK: xor <8 x i16>
748 // CHECK: and <8 x i16>
749 // CHECK-LE: xor <8 x i16>
750 // CHECK-LE: and <8 x i16>
752 res_vs = vec_vandc(vbs, vs);
753 // CHECK: xor <8 x i16>
754 // CHECK: and <8 x i16>
755 // CHECK-LE: xor <8 x i16>
756 // CHECK-LE: and <8 x i16>
758 res_vs = vec_vandc(vs, vbs);
759 // CHECK: xor <8 x i16>
760 // CHECK: and <8 x i16>
761 // CHECK-LE: xor <8 x i16>
762 // CHECK-LE: and <8 x i16>
764 res_vus = vec_vandc(vus, vus);
765 // CHECK: xor <8 x i16>
766 // CHECK: and <8 x i16>
767 // CHECK-LE: xor <8 x i16>
768 // CHECK-LE: and <8 x i16>
770 res_vus = vec_vandc(vbs, vus);
771 // CHECK: xor <8 x i16>
772 // CHECK: and <8 x i16>
773 // CHECK-LE: xor <8 x i16>
774 // CHECK-LE: and <8 x i16>
776 res_vus = vec_vandc(vus, vbs);
777 // CHECK: xor <8 x i16>
778 // CHECK: and <8 x i16>
779 // CHECK-LE: xor <8 x i16>
780 // CHECK-LE: and <8 x i16>
782 res_vbs = vec_vandc(vbs, vbs);
783 // CHECK: xor <8 x i16>
784 // CHECK: and <8 x i16>
785 // CHECK-LE: xor <8 x i16>
786 // CHECK-LE: and <8 x i16>
788 res_vi = vec_vandc(vi, vi);
789 // CHECK: xor <4 x i32>
790 // CHECK: and <4 x i32>
791 // CHECK-LE: xor <4 x i32>
792 // CHECK-LE: and <4 x i32>
794 res_vi = vec_vandc(vbi, vi);
795 // CHECK: xor <4 x i32>
796 // CHECK: and <4 x i32>
797 // CHECK-LE: xor <4 x i32>
798 // CHECK-LE: and <4 x i32>
800 res_vi = vec_vandc(vi, vbi);
801 // CHECK: xor <4 x i32>
802 // CHECK: and <4 x i32>
803 // CHECK-LE: xor <4 x i32>
804 // CHECK-LE: and <4 x i32>
806 res_vui = vec_vandc(vui, vui);
807 // CHECK: xor <4 x i32>
808 // CHECK: and <4 x i32>
809 // CHECK-LE: xor <4 x i32>
810 // CHECK-LE: and <4 x i32>
812 res_vui = vec_vandc(vbi, vui);
813 // CHECK: xor <4 x i32>
814 // CHECK: and <4 x i32>
815 // CHECK-LE: xor <4 x i32>
816 // CHECK-LE: and <4 x i32>
818 res_vui = vec_vandc(vui, vbi);
819 // CHECK: xor <4 x i32>
820 // CHECK: and <4 x i32>
821 // CHECK-LE: xor <4 x i32>
822 // CHECK-LE: and <4 x i32>
824 res_vf = vec_vandc(vf, vf);
825 // CHECK: xor <4 x i32>
826 // CHECK: and <4 x i32>
827 // CHECK-LE: xor <4 x i32>
828 // CHECK-LE: and <4 x i32>
830 res_vf = vec_vandc(vbi, vf);
831 // CHECK: xor <4 x i32>
832 // CHECK: and <4 x i32>
833 // CHECK-LE: xor <4 x i32>
834 // CHECK-LE: and <4 x i32>
836 res_vf = vec_vandc(vf, vbi);
837 // CHECK: xor <4 x i32>
838 // CHECK: and <4 x i32>
839 // CHECK-LE: xor <4 x i32>
840 // CHECK-LE: and <4 x i32>
844 // CHECK-LABEL: define void @test2
847 res_vsc = vec_avg(vsc, vsc);
848 // CHECK: @llvm.ppc.altivec.vavgsb
849 // CHECK-LE: @llvm.ppc.altivec.vavgsb
851 res_vuc = vec_avg(vuc, vuc);
852 // CHECK: @llvm.ppc.altivec.vavgub
853 // CHECK-LE: @llvm.ppc.altivec.vavgub
855 res_vs = vec_avg(vs, vs);
856 // CHECK: @llvm.ppc.altivec.vavgsh
857 // CHECK-LE: @llvm.ppc.altivec.vavgsh
859 res_vus = vec_avg(vus, vus);
860 // CHECK: @llvm.ppc.altivec.vavguh
861 // CHECK-LE: @llvm.ppc.altivec.vavguh
863 res_vi = vec_avg(vi, vi);
864 // CHECK: @llvm.ppc.altivec.vavgsw
865 // CHECK-LE: @llvm.ppc.altivec.vavgsw
867 res_vui = vec_avg(vui, vui);
868 // CHECK: @llvm.ppc.altivec.vavguw
869 // CHECK-LE: @llvm.ppc.altivec.vavguw
871 res_vsc = vec_vavgsb(vsc, vsc);
872 // CHECK: @llvm.ppc.altivec.vavgsb
873 // CHECK-LE: @llvm.ppc.altivec.vavgsb
875 res_vuc = vec_vavgub(vuc, vuc);
876 // CHECK: @llvm.ppc.altivec.vavgub
877 // CHECK-LE: @llvm.ppc.altivec.vavgub
879 res_vs = vec_vavgsh(vs, vs);
880 // CHECK: @llvm.ppc.altivec.vavgsh
881 // CHECK-LE: @llvm.ppc.altivec.vavgsh
883 res_vus = vec_vavguh(vus, vus);
884 // CHECK: @llvm.ppc.altivec.vavguh
885 // CHECK-LE: @llvm.ppc.altivec.vavguh
887 res_vi = vec_vavgsw(vi, vi);
888 // CHECK: @llvm.ppc.altivec.vavgsw
889 // CHECK-LE: @llvm.ppc.altivec.vavgsw
891 res_vui = vec_vavguw(vui, vui);
892 // CHECK: @llvm.ppc.altivec.vavguw
893 // CHECK-LE: @llvm.ppc.altivec.vavguw
896 res_vf = vec_ceil(vf);
897 // CHECK: @llvm.ppc.altivec.vrfip
898 // CHECK-LE: @llvm.ppc.altivec.vrfip
900 res_vf = vec_vrfip(vf);
901 // CHECK: @llvm.ppc.altivec.vrfip
902 // CHECK-LE: @llvm.ppc.altivec.vrfip
905 res_vi = vec_cmpb(vf, vf);
906 // CHECK: @llvm.ppc.altivec.vcmpbfp
907 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp
909 res_vi = vec_vcmpbfp(vf, vf);
910 // CHECK: @llvm.ppc.altivec.vcmpbfp
911 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp
914 res_vbc = vec_cmpeq(vsc, vsc);
915 // CHECK: @llvm.ppc.altivec.vcmpequb
916 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
918 res_vbc = vec_cmpeq(vuc, vuc);
919 // CHECK: @llvm.ppc.altivec.vcmpequb
920 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
922 res_vbs = vec_cmpeq(vs, vs);
923 // CHECK: @llvm.ppc.altivec.vcmpequh
924 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
926 res_vbs = vec_cmpeq(vus, vus);
927 // CHECK: @llvm.ppc.altivec.vcmpequh
928 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
930 res_vbi = vec_cmpeq(vi, vi);
931 // CHECK: @llvm.ppc.altivec.vcmpequw
932 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
934 res_vbi = vec_cmpeq(vui, vui);
935 // CHECK: @llvm.ppc.altivec.vcmpequw
936 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
938 res_vbi = vec_cmpeq(vf, vf);
939 // CHECK: @llvm.ppc.altivec.vcmpeqfp
940 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp
943 res_vbi = vec_cmpge(vf, vf);
944 // CHECK: @llvm.ppc.altivec.vcmpgefp
945 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
947 res_vbi = vec_vcmpgefp(vf, vf);
948 // CHECK: @llvm.ppc.altivec.vcmpgefp
949 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
952 // CHECK-LABEL: define void @test5
956 res_vbc = vec_cmpgt(vsc, vsc);
957 // CHECK: @llvm.ppc.altivec.vcmpgtsb
958 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
960 res_vbc = vec_cmpgt(vuc, vuc);
961 // CHECK: @llvm.ppc.altivec.vcmpgtub
962 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
964 res_vbs = vec_cmpgt(vs, vs);
965 // CHECK: @llvm.ppc.altivec.vcmpgtsh
966 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
968 res_vbs = vec_cmpgt(vus, vus);
969 // CHECK: @llvm.ppc.altivec.vcmpgtuh
970 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
972 res_vbi = vec_cmpgt(vi, vi);
973 // CHECK: @llvm.ppc.altivec.vcmpgtsw
974 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
976 res_vbi = vec_cmpgt(vui, vui);
977 // CHECK: @llvm.ppc.altivec.vcmpgtuw
978 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
980 res_vbi = vec_cmpgt(vf, vf);
981 // CHECK: @llvm.ppc.altivec.vcmpgtfp
982 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
984 res_vbc = vec_vcmpgtsb(vsc, vsc);
985 // CHECK: @llvm.ppc.altivec.vcmpgtsb
986 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
988 res_vbc = vec_vcmpgtub(vuc, vuc);
989 // CHECK: @llvm.ppc.altivec.vcmpgtub
990 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
992 res_vbs = vec_vcmpgtsh(vs, vs);
993 // CHECK: @llvm.ppc.altivec.vcmpgtsh
994 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
996 res_vbs = vec_vcmpgtuh(vus, vus);
997 // CHECK: @llvm.ppc.altivec.vcmpgtuh
998 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1000 res_vbi = vec_vcmpgtsw(vi, vi);
1001 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1002 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1004 res_vbi = vec_vcmpgtuw(vui, vui);
1005 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1006 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1008 res_vbi = vec_vcmpgtfp(vf, vf);
1009 // CHECK: @llvm.ppc.altivec.vcmpgtfp
1010 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
1013 res_vbi = vec_cmple(vf, vf);
1014 // CHECK: @llvm.ppc.altivec.vcmpgefp
1015 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
1018 // CHECK-LABEL: define void @test6
1021 res_vbc = vec_cmplt(vsc, vsc);
1022 // CHECK: @llvm.ppc.altivec.vcmpgtsb
1023 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
1025 res_vbc = vec_cmplt(vuc, vuc);
1026 // CHECK: @llvm.ppc.altivec.vcmpgtub
1027 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
1029 res_vbs = vec_cmplt(vs, vs);
1030 // CHECK: @llvm.ppc.altivec.vcmpgtsh
1031 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
1033 res_vbs = vec_cmplt(vus, vus);
1034 // CHECK: @llvm.ppc.altivec.vcmpgtuh
1035 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
1037 res_vbi = vec_cmplt(vi, vi);
1038 // CHECK: @llvm.ppc.altivec.vcmpgtsw
1039 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
1041 res_vbi = vec_cmplt(vui, vui);
1042 // CHECK: @llvm.ppc.altivec.vcmpgtuw
1043 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
1045 res_vbi = vec_cmplt(vf, vf);
1046 // CHECK: @llvm.ppc.altivec.vcmpgtfp
1047 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
1050 res_vf = vec_ctf(vi, 0);
1051 // CHECK: @llvm.ppc.altivec.vcfsx
1052 // CHECK-LE: @llvm.ppc.altivec.vcfsx
1054 res_vf = vec_ctf(vui, 0);
1055 // CHECK: @llvm.ppc.altivec.vcfux
1056 // CHECK-LE: @llvm.ppc.altivec.vcfux
1058 res_vf = vec_vcfsx(vi, 0);
1059 // CHECK: @llvm.ppc.altivec.vcfsx
1060 // CHECK-LE: @llvm.ppc.altivec.vcfsx
1062 res_vf = vec_vcfux(vui, 0);
1063 // CHECK: @llvm.ppc.altivec.vcfux
1064 // CHECK-LE: @llvm.ppc.altivec.vcfux
1067 res_vi = vec_cts(vf, 0);
1068 // CHECK: @llvm.ppc.altivec.vctsxs
1069 // CHECK-LE: @llvm.ppc.altivec.vctsxs
1071 res_vi = vec_vctsxs(vf, 0);
1072 // CHECK: @llvm.ppc.altivec.vctsxs
1073 // CHECK-LE: @llvm.ppc.altivec.vctsxs
1076 res_vui = vec_ctu(vf, 0);
1077 // CHECK: @llvm.ppc.altivec.vctuxs
1078 // CHECK-LE: @llvm.ppc.altivec.vctuxs
1080 res_vui = vec_vctuxs(vf, 0);
1081 // CHECK: @llvm.ppc.altivec.vctuxs
1082 // CHECK-LE: @llvm.ppc.altivec.vctuxs
1086 // CHECK: @llvm.ppc.altivec.dss
1087 // CHECK-LE: @llvm.ppc.altivec.dss
1091 // CHECK: @llvm.ppc.altivec.dssall
1092 // CHECK-LE: @llvm.ppc.altivec.dssall
1095 vec_dst(&vsc, 0, 0);
1096 // CHECK: @llvm.ppc.altivec.dst
1097 // CHECK-LE: @llvm.ppc.altivec.dst
1100 vec_dstst(&vs, 0, 0);
1101 // CHECK: @llvm.ppc.altivec.dstst
1102 // CHECK-LE: @llvm.ppc.altivec.dstst
1105 vec_dststt(¶m_i, 0, 0);
1106 // CHECK: @llvm.ppc.altivec.dststt
1107 // CHECK-LE: @llvm.ppc.altivec.dststt
1110 vec_dstt(&vf, 0, 0);
1111 // CHECK: @llvm.ppc.altivec.dstt
1112 // CHECK-LE: @llvm.ppc.altivec.dstt
1115 res_vf = vec_expte(vf);
1116 // CHECK: @llvm.ppc.altivec.vexptefp
1117 // CHECK-LE: @llvm.ppc.altivec.vexptefp
1119 res_vf = vec_vexptefp(vf);
1120 // CHECK: @llvm.ppc.altivec.vexptefp
1121 // CHECK-LE: @llvm.ppc.altivec.vexptefp
1124 res_vf = vec_floor(vf);
1125 // CHECK: @llvm.ppc.altivec.vrfim
1126 // CHECK-LE: @llvm.ppc.altivec.vrfim
1128 res_vf = vec_vrfim(vf);
1129 // CHECK: @llvm.ppc.altivec.vrfim
1130 // CHECK-LE: @llvm.ppc.altivec.vrfim
1133 res_vsc = vec_ld(0, &vsc);
1134 // CHECK: @llvm.ppc.altivec.lvx
1135 // CHECK-LE: @llvm.ppc.altivec.lvx
1137 res_vsc = vec_ld(0, ¶m_sc);
1138 // CHECK: @llvm.ppc.altivec.lvx
1139 // CHECK-LE: @llvm.ppc.altivec.lvx
1141 res_vuc = vec_ld(0, &vuc);
1142 // CHECK: @llvm.ppc.altivec.lvx
1143 // CHECK-LE: @llvm.ppc.altivec.lvx
1145 res_vuc = vec_ld(0, ¶m_uc);
1146 // CHECK: @llvm.ppc.altivec.lvx
1147 // CHECK-LE: @llvm.ppc.altivec.lvx
1149 res_vbc = vec_ld(0, &vbc);
1150 // CHECK: @llvm.ppc.altivec.lvx
1151 // CHECK-LE: @llvm.ppc.altivec.lvx
1153 res_vs = vec_ld(0, &vs);
1154 // CHECK: @llvm.ppc.altivec.lvx
1155 // CHECK-LE: @llvm.ppc.altivec.lvx
1157 res_vs = vec_ld(0, ¶m_s);
1158 // CHECK: @llvm.ppc.altivec.lvx
1159 // CHECK-LE: @llvm.ppc.altivec.lvx
1161 res_vus = vec_ld(0, &vus);
1162 // CHECK: @llvm.ppc.altivec.lvx
1163 // CHECK-LE: @llvm.ppc.altivec.lvx
1165 res_vus = vec_ld(0, ¶m_us);
1166 // CHECK: @llvm.ppc.altivec.lvx
1167 // CHECK-LE: @llvm.ppc.altivec.lvx
1169 res_vbs = vec_ld(0, &vbs);
1170 // CHECK: @llvm.ppc.altivec.lvx
1171 // CHECK-LE: @llvm.ppc.altivec.lvx
1173 res_vp = vec_ld(0, &vp);
1174 // CHECK: @llvm.ppc.altivec.lvx
1175 // CHECK-LE: @llvm.ppc.altivec.lvx
1177 res_vi = vec_ld(0, &vi);
1178 // CHECK: @llvm.ppc.altivec.lvx
1179 // CHECK-LE: @llvm.ppc.altivec.lvx
1181 res_vi = vec_ld(0, ¶m_i);
1182 // CHECK: @llvm.ppc.altivec.lvx
1183 // CHECK-LE: @llvm.ppc.altivec.lvx
1185 res_vui = vec_ld(0, &vui);
1186 // CHECK: @llvm.ppc.altivec.lvx
1187 // CHECK-LE: @llvm.ppc.altivec.lvx
1189 res_vui = vec_ld(0, ¶m_ui);
1190 // CHECK: @llvm.ppc.altivec.lvx
1191 // CHECK-LE: @llvm.ppc.altivec.lvx
1193 res_vbi = vec_ld(0, &vbi);
1194 // CHECK: @llvm.ppc.altivec.lvx
1195 // CHECK-LE: @llvm.ppc.altivec.lvx
1197 res_vf = vec_ld(0, &vf);
1198 // CHECK: @llvm.ppc.altivec.lvx
1199 // CHECK-LE: @llvm.ppc.altivec.lvx
1201 res_vf = vec_ld(0, ¶m_f);
1202 // CHECK: @llvm.ppc.altivec.lvx
1203 // CHECK-LE: @llvm.ppc.altivec.lvx
1205 res_vsc = vec_lvx(0, &vsc);
1206 // CHECK: @llvm.ppc.altivec.lvx
1207 // CHECK-LE: @llvm.ppc.altivec.lvx
1209 res_vsc = vec_lvx(0, ¶m_sc);
1210 // CHECK: @llvm.ppc.altivec.lvx
1211 // CHECK-LE: @llvm.ppc.altivec.lvx
1213 res_vuc = vec_lvx(0, &vuc);
1214 // CHECK: @llvm.ppc.altivec.lvx
1215 // CHECK-LE: @llvm.ppc.altivec.lvx
1217 res_vuc = vec_lvx(0, ¶m_uc);
1218 // CHECK: @llvm.ppc.altivec.lvx
1219 // CHECK-LE: @llvm.ppc.altivec.lvx
1221 res_vbc = vec_lvx(0, &vbc);
1222 // CHECK: @llvm.ppc.altivec.lvx
1223 // CHECK-LE: @llvm.ppc.altivec.lvx
1225 res_vs = vec_lvx(0, &vs);
1226 // CHECK: @llvm.ppc.altivec.lvx
1227 // CHECK-LE: @llvm.ppc.altivec.lvx
1229 res_vs = vec_lvx(0, ¶m_s);
1230 // CHECK: @llvm.ppc.altivec.lvx
1231 // CHECK-LE: @llvm.ppc.altivec.lvx
1233 res_vus = vec_lvx(0, &vus);
1234 // CHECK: @llvm.ppc.altivec.lvx
1235 // CHECK-LE: @llvm.ppc.altivec.lvx
1237 res_vus = vec_lvx(0, ¶m_us);
1238 // CHECK: @llvm.ppc.altivec.lvx
1239 // CHECK-LE: @llvm.ppc.altivec.lvx
1241 res_vbs = vec_lvx(0, &vbs);
1242 // CHECK: @llvm.ppc.altivec.lvx
1243 // CHECK-LE: @llvm.ppc.altivec.lvx
1245 res_vp = vec_lvx(0, &vp);
1246 // CHECK: @llvm.ppc.altivec.lvx
1247 // CHECK-LE: @llvm.ppc.altivec.lvx
1249 res_vi = vec_lvx(0, &vi);
1250 // CHECK: @llvm.ppc.altivec.lvx
1251 // CHECK-LE: @llvm.ppc.altivec.lvx
1253 res_vi = vec_lvx(0, ¶m_i);
1254 // CHECK: @llvm.ppc.altivec.lvx
1255 // CHECK-LE: @llvm.ppc.altivec.lvx
1257 res_vui = vec_lvx(0, &vui);
1258 // CHECK: @llvm.ppc.altivec.lvx
1259 // CHECK-LE: @llvm.ppc.altivec.lvx
1261 res_vui = vec_lvx(0, ¶m_ui);
1262 // CHECK: @llvm.ppc.altivec.lvx
1263 // CHECK-LE: @llvm.ppc.altivec.lvx
1265 res_vbi = vec_lvx(0, &vbi);
1266 // CHECK: @llvm.ppc.altivec.lvx
1267 // CHECK-LE: @llvm.ppc.altivec.lvx
1269 res_vf = vec_lvx(0, &vf);
1270 // CHECK: @llvm.ppc.altivec.lvx
1271 // CHECK-LE: @llvm.ppc.altivec.lvx
1273 res_vf = vec_lvx(0, ¶m_f);
1274 // CHECK: @llvm.ppc.altivec.lvx
1275 // CHECK-LE: @llvm.ppc.altivec.lvx
1278 res_vsc = vec_lde(0, ¶m_sc);
1279 // CHECK: @llvm.ppc.altivec.lvebx
1280 // CHECK-LE: @llvm.ppc.altivec.lvebx
1282 res_vuc = vec_lde(0, ¶m_uc);
1283 // CHECK: @llvm.ppc.altivec.lvebx
1284 // CHECK-LE: @llvm.ppc.altivec.lvebx
1286 res_vs = vec_lde(0, ¶m_s);
1287 // CHECK: @llvm.ppc.altivec.lvehx
1288 // CHECK-LE: @llvm.ppc.altivec.lvehx
1290 res_vus = vec_lde(0, ¶m_us);
1291 // CHECK: @llvm.ppc.altivec.lvehx
1292 // CHECK-LE: @llvm.ppc.altivec.lvehx
1294 res_vi = vec_lde(0, ¶m_i);
1295 // CHECK: @llvm.ppc.altivec.lvewx
1296 // CHECK-LE: @llvm.ppc.altivec.lvewx
1298 res_vui = vec_lde(0, ¶m_ui);
1299 // CHECK: @llvm.ppc.altivec.lvewx
1300 // CHECK-LE: @llvm.ppc.altivec.lvewx
1302 res_vf = vec_lde(0, ¶m_f);
1303 // CHECK: @llvm.ppc.altivec.lvewx
1304 // CHECK-LE: @llvm.ppc.altivec.lvewx
1306 res_vsc = vec_lvebx(0, ¶m_sc);
1307 // CHECK: @llvm.ppc.altivec.lvebx
1308 // CHECK-LE: @llvm.ppc.altivec.lvebx
1310 res_vuc = vec_lvebx(0, ¶m_uc);
1311 // CHECK: @llvm.ppc.altivec.lvebx
1312 // CHECK-LE: @llvm.ppc.altivec.lvebx
1314 res_vs = vec_lvehx(0, ¶m_s);
1315 // CHECK: @llvm.ppc.altivec.lvehx
1316 // CHECK-LE: @llvm.ppc.altivec.lvehx
1318 res_vus = vec_lvehx(0, ¶m_us);
1319 // CHECK: @llvm.ppc.altivec.lvehx
1320 // CHECK-LE: @llvm.ppc.altivec.lvehx
1322 res_vi = vec_lvewx(0, ¶m_i);
1323 // CHECK: @llvm.ppc.altivec.lvewx
1324 // CHECK-LE: @llvm.ppc.altivec.lvewx
1326 res_vui = vec_lvewx(0, ¶m_ui);
1327 // CHECK: @llvm.ppc.altivec.lvewx
1328 // CHECK-LE: @llvm.ppc.altivec.lvewx
1330 res_vf = vec_lvewx(0, ¶m_f);
1331 // CHECK: @llvm.ppc.altivec.lvewx
1332 // CHECK-LE: @llvm.ppc.altivec.lvewx
1335 res_vsc = vec_ldl(0, &vsc);
1336 // CHECK: @llvm.ppc.altivec.lvxl
1337 // CHECK-LE: @llvm.ppc.altivec.lvxl
1339 res_vsc = vec_ldl(0, ¶m_sc);
1340 // CHECK: @llvm.ppc.altivec.lvxl
1341 // CHECK-LE: @llvm.ppc.altivec.lvxl
1343 res_vuc = vec_ldl(0, &vuc);
1344 // CHECK: @llvm.ppc.altivec.lvxl
1345 // CHECK-LE: @llvm.ppc.altivec.lvxl
1347 res_vuc = vec_ldl(0, ¶m_uc);
1348 // CHECK: @llvm.ppc.altivec.lvxl
1349 // CHECK-LE: @llvm.ppc.altivec.lvxl
1351 res_vbc = vec_ldl(0, &vbc);
1352 // CHECK: @llvm.ppc.altivec.lvxl
1353 // CHECK-LE: @llvm.ppc.altivec.lvxl
1355 res_vs = vec_ldl(0, &vs);
1356 // CHECK: @llvm.ppc.altivec.lvxl
1357 // CHECK-LE: @llvm.ppc.altivec.lvxl
1359 res_vs = vec_ldl(0, ¶m_s);
1360 // CHECK: @llvm.ppc.altivec.lvxl
1361 // CHECK-LE: @llvm.ppc.altivec.lvxl
1363 res_vus = vec_ldl(0, &vus);
1364 // CHECK: @llvm.ppc.altivec.lvxl
1365 // CHECK-LE: @llvm.ppc.altivec.lvxl
1367 res_vus = vec_ldl(0, ¶m_us);
1368 // CHECK: @llvm.ppc.altivec.lvxl
1369 // CHECK-LE: @llvm.ppc.altivec.lvxl
1371 res_vbs = vec_ldl(0, &vbs);
1372 // CHECK: @llvm.ppc.altivec.lvxl
1373 // CHECK-LE: @llvm.ppc.altivec.lvxl
1375 res_vp = vec_ldl(0, &vp);
1376 // CHECK: @llvm.ppc.altivec.lvxl
1377 // CHECK-LE: @llvm.ppc.altivec.lvxl
1379 res_vi = vec_ldl(0, &vi);
1380 // CHECK: @llvm.ppc.altivec.lvxl
1381 // CHECK-LE: @llvm.ppc.altivec.lvxl
1383 res_vi = vec_ldl(0, ¶m_i);
1384 // CHECK: @llvm.ppc.altivec.lvxl
1385 // CHECK-LE: @llvm.ppc.altivec.lvxl
1387 res_vui = vec_ldl(0, &vui);
1388 // CHECK: @llvm.ppc.altivec.lvxl
1389 // CHECK-LE: @llvm.ppc.altivec.lvxl
1391 res_vui = vec_ldl(0, ¶m_ui);
1392 // CHECK: @llvm.ppc.altivec.lvxl
1393 // CHECK-LE: @llvm.ppc.altivec.lvxl
1395 res_vbi = vec_ldl(0, &vbi);
1396 // CHECK: @llvm.ppc.altivec.lvxl
1397 // CHECK-LE: @llvm.ppc.altivec.lvxl
1399 res_vf = vec_ldl(0, &vf);
1400 // CHECK: @llvm.ppc.altivec.lvxl
1401 // CHECK-LE: @llvm.ppc.altivec.lvxl
1403 res_vf = vec_ldl(0, ¶m_f);
1404 // CHECK: @llvm.ppc.altivec.lvxl
1405 // CHECK-LE: @llvm.ppc.altivec.lvxl
1407 res_vsc = vec_lvxl(0, &vsc);
1408 // CHECK: @llvm.ppc.altivec.lvxl
1409 // CHECK-LE: @llvm.ppc.altivec.lvxl
1411 res_vsc = vec_lvxl(0, ¶m_sc);
1412 // CHECK: @llvm.ppc.altivec.lvxl
1413 // CHECK-LE: @llvm.ppc.altivec.lvxl
1415 res_vuc = vec_lvxl(0, &vuc);
1416 // CHECK: @llvm.ppc.altivec.lvxl
1417 // CHECK-LE: @llvm.ppc.altivec.lvxl
1419 res_vbc = vec_lvxl(0, &vbc);
1420 // CHECK: @llvm.ppc.altivec.lvxl
1421 // CHECK-LE: @llvm.ppc.altivec.lvxl
1423 res_vuc = vec_lvxl(0, ¶m_uc);
1424 // CHECK: @llvm.ppc.altivec.lvxl
1425 // CHECK-LE: @llvm.ppc.altivec.lvxl
1427 res_vs = vec_lvxl(0, &vs);
1428 // CHECK: @llvm.ppc.altivec.lvxl
1429 // CHECK-LE: @llvm.ppc.altivec.lvxl
1431 res_vs = vec_lvxl(0, ¶m_s);
1432 // CHECK: @llvm.ppc.altivec.lvxl
1433 // CHECK-LE: @llvm.ppc.altivec.lvxl
1435 res_vus = vec_lvxl(0, &vus);
1436 // CHECK: @llvm.ppc.altivec.lvxl
1437 // CHECK-LE: @llvm.ppc.altivec.lvxl
1439 res_vus = vec_lvxl(0, ¶m_us);
1440 // CHECK: @llvm.ppc.altivec.lvxl
1441 // CHECK-LE: @llvm.ppc.altivec.lvxl
1443 res_vbs = vec_lvxl(0, &vbs);
1444 // CHECK: @llvm.ppc.altivec.lvxl
1445 // CHECK-LE: @llvm.ppc.altivec.lvxl
1447 res_vp = vec_lvxl(0, &vp);
1448 // CHECK: @llvm.ppc.altivec.lvxl
1449 // CHECK-LE: @llvm.ppc.altivec.lvxl
1451 res_vi = vec_lvxl(0, &vi);
1452 // CHECK: @llvm.ppc.altivec.lvxl
1453 // CHECK-LE: @llvm.ppc.altivec.lvxl
1455 res_vi = vec_lvxl(0, ¶m_i);
1456 // CHECK: @llvm.ppc.altivec.lvxl
1457 // CHECK-LE: @llvm.ppc.altivec.lvxl
1459 res_vui = vec_lvxl(0, &vui);
1460 // CHECK: @llvm.ppc.altivec.lvxl
1461 // CHECK-LE: @llvm.ppc.altivec.lvxl
1463 res_vui = vec_lvxl(0, ¶m_ui);
1464 // CHECK: @llvm.ppc.altivec.lvxl
1465 // CHECK-LE: @llvm.ppc.altivec.lvxl
1467 res_vbi = vec_lvxl(0, &vbi);
1468 // CHECK: @llvm.ppc.altivec.lvxl
1469 // CHECK-LE: @llvm.ppc.altivec.lvxl
1471 res_vf = vec_lvxl(0, &vf);
1472 // CHECK: @llvm.ppc.altivec.lvxl
1473 // CHECK-LE: @llvm.ppc.altivec.lvxl
1475 res_vf = vec_lvxl(0, ¶m_f);
1476 // CHECK: @llvm.ppc.altivec.lvxl
1477 // CHECK-LE: @llvm.ppc.altivec.lvxl
1480 res_vf = vec_loge(vf);
1481 // CHECK: @llvm.ppc.altivec.vlogefp
1482 // CHECK-LE: @llvm.ppc.altivec.vlogefp
1484 res_vf = vec_vlogefp(vf);
1485 // CHECK: @llvm.ppc.altivec.vlogefp
1486 // CHECK-LE: @llvm.ppc.altivec.vlogefp
1489 res_vuc = vec_lvsl(0, ¶m_i);
1490 // CHECK: @llvm.ppc.altivec.lvsl
1491 // CHECK-LE: @llvm.ppc.altivec.lvsl
1494 res_vuc = vec_lvsr(0, ¶m_i);
1495 // CHECK: @llvm.ppc.altivec.lvsr
1496 // CHECK-LE: @llvm.ppc.altivec.lvsr
1499 res_vf =vec_madd(vf, vf, vf);
1500 // CHECK: @llvm.ppc.altivec.vmaddfp
1501 // CHECK-LE: @llvm.ppc.altivec.vmaddfp
1503 res_vf = vec_vmaddfp(vf, vf, vf);
1504 // CHECK: @llvm.ppc.altivec.vmaddfp
1505 // CHECK-LE: @llvm.ppc.altivec.vmaddfp
1508 res_vs = vec_madds(vs, vs, vs);
1509 // CHECK: @llvm.ppc.altivec.vmhaddshs
1510 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs
1512 res_vs = vec_vmhaddshs(vs, vs, vs);
1513 // CHECK: @llvm.ppc.altivec.vmhaddshs
1514 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs
1517 res_vsc = vec_max(vsc, vsc);
1518 // CHECK: @llvm.ppc.altivec.vmaxsb
1519 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1521 res_vsc = vec_max(vbc, vsc);
1522 // CHECK: @llvm.ppc.altivec.vmaxsb
1523 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1525 res_vsc = vec_max(vsc, vbc);
1526 // CHECK: @llvm.ppc.altivec.vmaxsb
1527 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1529 res_vuc = vec_max(vuc, vuc);
1530 // CHECK: @llvm.ppc.altivec.vmaxub
1531 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1533 res_vuc = vec_max(vbc, vuc);
1534 // CHECK: @llvm.ppc.altivec.vmaxub
1535 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1537 res_vuc = vec_max(vuc, vbc);
1538 // CHECK: @llvm.ppc.altivec.vmaxub
1539 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1541 res_vs = vec_max(vs, vs);
1542 // CHECK: @llvm.ppc.altivec.vmaxsh
1543 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1545 res_vs = vec_max(vbs, vs);
1546 // CHECK: @llvm.ppc.altivec.vmaxsh
1547 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1549 res_vs = vec_max(vs, vbs);
1550 // CHECK: @llvm.ppc.altivec.vmaxsh
1551 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1553 res_vus = vec_max(vus, vus);
1554 // CHECK: @llvm.ppc.altivec.vmaxuh
1555 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1557 res_vus = vec_max(vbs, vus);
1558 // CHECK: @llvm.ppc.altivec.vmaxuh
1559 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1561 res_vus = vec_max(vus, vbs);
1562 // CHECK: @llvm.ppc.altivec.vmaxuh
1563 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1565 res_vi = vec_max(vi, vi);
1566 // CHECK: @llvm.ppc.altivec.vmaxsw
1567 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1569 res_vi = vec_max(vbi, vi);
1570 // CHECK: @llvm.ppc.altivec.vmaxsw
1571 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1573 res_vi = vec_max(vi, vbi);
1574 // CHECK: @llvm.ppc.altivec.vmaxsw
1575 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1577 res_vui = vec_max(vui, vui);
1578 // CHECK: @llvm.ppc.altivec.vmaxuw
1579 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1581 res_vui = vec_max(vbi, vui);
1582 // CHECK: @llvm.ppc.altivec.vmaxuw
1583 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1585 res_vui = vec_max(vui, vbi);
1586 // CHECK: @llvm.ppc.altivec.vmaxuw
1587 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1589 res_vf = vec_max(vf, vf);
1590 // CHECK: @llvm.ppc.altivec.vmaxfp
1591 // CHECK-LE: @llvm.ppc.altivec.vmaxfp
1593 res_vsc = vec_vmaxsb(vsc, vsc);
1594 // CHECK: @llvm.ppc.altivec.vmaxsb
1595 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1597 res_vsc = vec_vmaxsb(vbc, vsc);
1598 // CHECK: @llvm.ppc.altivec.vmaxsb
1599 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1601 res_vsc = vec_vmaxsb(vsc, vbc);
1602 // CHECK: @llvm.ppc.altivec.vmaxsb
1603 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
1605 res_vuc = vec_vmaxub(vuc, vuc);
1606 // CHECK: @llvm.ppc.altivec.vmaxub
1607 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1609 res_vuc = vec_vmaxub(vbc, vuc);
1610 // CHECK: @llvm.ppc.altivec.vmaxub
1611 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1613 res_vuc = vec_vmaxub(vuc, vbc);
1614 // CHECK: @llvm.ppc.altivec.vmaxub
1615 // CHECK-LE: @llvm.ppc.altivec.vmaxub
1617 res_vs = vec_vmaxsh(vs, vs);
1618 // CHECK: @llvm.ppc.altivec.vmaxsh
1619 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1621 res_vs = vec_vmaxsh(vbs, vs);
1622 // CHECK: @llvm.ppc.altivec.vmaxsh
1623 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1625 res_vs = vec_vmaxsh(vs, vbs);
1626 // CHECK: @llvm.ppc.altivec.vmaxsh
1627 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
1629 res_vus = vec_vmaxuh(vus, vus);
1630 // CHECK: @llvm.ppc.altivec.vmaxuh
1631 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1633 res_vus = vec_vmaxuh(vbs, vus);
1634 // CHECK: @llvm.ppc.altivec.vmaxuh
1635 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1637 res_vus = vec_vmaxuh(vus, vbs);
1638 // CHECK: @llvm.ppc.altivec.vmaxuh
1639 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
1641 res_vi = vec_vmaxsw(vi, vi);
1642 // CHECK: @llvm.ppc.altivec.vmaxsw
1643 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1645 res_vi = vec_vmaxsw(vbi, vi);
1646 // CHECK: @llvm.ppc.altivec.vmaxsw
1647 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1649 res_vi = vec_vmaxsw(vi, vbi);
1650 // CHECK: @llvm.ppc.altivec.vmaxsw
1651 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
1653 res_vui = vec_vmaxuw(vui, vui);
1654 // CHECK: @llvm.ppc.altivec.vmaxuw
1655 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1657 res_vui = vec_vmaxuw(vbi, vui);
1658 // CHECK: @llvm.ppc.altivec.vmaxuw
1659 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1661 res_vui = vec_vmaxuw(vui, vbi);
1662 // CHECK: @llvm.ppc.altivec.vmaxuw
1663 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
1665 res_vf = vec_vmaxfp(vf, vf);
1666 // CHECK: @llvm.ppc.altivec.vmaxfp
1667 // CHECK-LE: @llvm.ppc.altivec.vmaxfp
1670 res_vsc = vec_mergeh(vsc, vsc);
1671 // CHECK: @llvm.ppc.altivec.vperm
1672 // CHECK-LE: @llvm.ppc.altivec.vperm
1674 res_vuc = vec_mergeh(vuc, vuc);
1675 // CHECK: @llvm.ppc.altivec.vperm
1676 // CHECK-LE: @llvm.ppc.altivec.vperm
1678 res_vbc = vec_mergeh(vbc, vbc);
1679 // CHECK: @llvm.ppc.altivec.vperm
1680 // CHECK-LE: @llvm.ppc.altivec.vperm
1682 res_vs = vec_mergeh(vs, vs);
1683 // CHECK: @llvm.ppc.altivec.vperm
1684 // CHECK-LE: @llvm.ppc.altivec.vperm
1686 res_vp = vec_mergeh(vp, vp);
1687 // CHECK: @llvm.ppc.altivec.vperm
1688 // CHECK-LE: @llvm.ppc.altivec.vperm
1690 res_vus = vec_mergeh(vus, vus);
1691 // CHECK: @llvm.ppc.altivec.vperm
1692 // CHECK-LE: @llvm.ppc.altivec.vperm
1694 res_vbs = vec_mergeh(vbs, vbs);
1695 // CHECK: @llvm.ppc.altivec.vperm
1696 // CHECK-LE: @llvm.ppc.altivec.vperm
1698 res_vi = vec_mergeh(vi, vi);
1699 // CHECK: @llvm.ppc.altivec.vperm
1700 // CHECK-LE: @llvm.ppc.altivec.vperm
1702 res_vui = vec_mergeh(vui, vui);
1703 // CHECK: @llvm.ppc.altivec.vperm
1704 // CHECK-LE: @llvm.ppc.altivec.vperm
1706 res_vbi = vec_mergeh(vbi, vbi);
1707 // CHECK: @llvm.ppc.altivec.vperm
1708 // CHECK-LE: @llvm.ppc.altivec.vperm
1710 res_vf = vec_mergeh(vf, vf);
1711 // CHECK: @llvm.ppc.altivec.vperm
1712 // CHECK-LE: @llvm.ppc.altivec.vperm
1714 res_vsc = vec_vmrghb(vsc, vsc);
1715 // CHECK: @llvm.ppc.altivec.vperm
1716 // CHECK-LE: @llvm.ppc.altivec.vperm
1718 res_vuc = vec_vmrghb(vuc, vuc);
1719 // CHECK: @llvm.ppc.altivec.vperm
1720 // CHECK-LE: @llvm.ppc.altivec.vperm
1722 res_vbc = vec_vmrghb(vbc, vbc);
1723 // CHECK: @llvm.ppc.altivec.vperm
1724 // CHECK-LE: @llvm.ppc.altivec.vperm
1726 res_vs = vec_vmrghh(vs, vs);
1727 // CHECK: @llvm.ppc.altivec.vperm
1728 // CHECK-LE: @llvm.ppc.altivec.vperm
1730 res_vp = vec_vmrghh(vp, vp);
1731 // CHECK: @llvm.ppc.altivec.vperm
1732 // CHECK-LE: @llvm.ppc.altivec.vperm
1734 res_vus = vec_vmrghh(vus, vus);
1735 // CHECK: @llvm.ppc.altivec.vperm
1736 // CHECK-LE: @llvm.ppc.altivec.vperm
1738 res_vbs = vec_vmrghh(vbs, vbs);
1739 // CHECK: @llvm.ppc.altivec.vperm
1740 // CHECK-LE: @llvm.ppc.altivec.vperm
1742 res_vi = vec_vmrghw(vi, vi);
1743 // CHECK: @llvm.ppc.altivec.vperm
1744 // CHECK-LE: @llvm.ppc.altivec.vperm
1746 res_vui = vec_vmrghw(vui, vui);
1747 // CHECK: @llvm.ppc.altivec.vperm
1748 // CHECK-LE: @llvm.ppc.altivec.vperm
1750 res_vbi = vec_vmrghw(vbi, vbi);
1751 // CHECK: @llvm.ppc.altivec.vperm
1752 // CHECK-LE: @llvm.ppc.altivec.vperm
1754 res_vf = vec_vmrghw(vf, vf);
1755 // CHECK: @llvm.ppc.altivec.vperm
1756 // CHECK-LE: @llvm.ppc.altivec.vperm
1759 res_vsc = vec_mergel(vsc, vsc);
1760 // CHECK: @llvm.ppc.altivec.vperm
1761 // CHECK-LE: @llvm.ppc.altivec.vperm
1763 res_vuc = vec_mergel(vuc, vuc);
1764 // CHECK: @llvm.ppc.altivec.vperm
1765 // CHECK-LE: @llvm.ppc.altivec.vperm
1767 res_vbc = vec_mergel(vbc, vbc);
1768 // CHECK: @llvm.ppc.altivec.vperm
1769 // CHECK-LE: @llvm.ppc.altivec.vperm
1771 res_vs = vec_mergel(vs, vs);
1772 // CHECK: @llvm.ppc.altivec.vperm
1773 // CHECK-LE: @llvm.ppc.altivec.vperm
1775 res_vp = vec_mergeh(vp, vp);
1776 // CHECK: @llvm.ppc.altivec.vperm
1777 // CHECK-LE: @llvm.ppc.altivec.vperm
1779 res_vus = vec_mergel(vus, vus);
1780 // CHECK: @llvm.ppc.altivec.vperm
1781 // CHECK-LE: @llvm.ppc.altivec.vperm
1783 res_vbs = vec_mergel(vbs, vbs);
1784 // CHECK: @llvm.ppc.altivec.vperm
1785 // CHECK-LE: @llvm.ppc.altivec.vperm
1787 res_vi = vec_mergel(vi, vi);
1788 // CHECK: @llvm.ppc.altivec.vperm
1789 // CHECK-LE: @llvm.ppc.altivec.vperm
1791 res_vui = vec_mergel(vui, vui);
1792 // CHECK: @llvm.ppc.altivec.vperm
1793 // CHECK-LE: @llvm.ppc.altivec.vperm
1795 res_vbi = vec_mergel(vbi, vbi);
1796 // CHECK: @llvm.ppc.altivec.vperm
1797 // CHECK-LE: @llvm.ppc.altivec.vperm
1799 res_vf = vec_mergel(vf, vf);
1800 // CHECK: @llvm.ppc.altivec.vperm
1801 // CHECK-LE: @llvm.ppc.altivec.vperm
1803 res_vsc = vec_vmrglb(vsc, vsc);
1804 // CHECK: @llvm.ppc.altivec.vperm
1805 // CHECK-LE: @llvm.ppc.altivec.vperm
1807 res_vuc = vec_vmrglb(vuc, vuc);
1808 // CHECK: @llvm.ppc.altivec.vperm
1809 // CHECK-LE: @llvm.ppc.altivec.vperm
1811 res_vbc = vec_vmrglb(vbc, vbc);
1812 // CHECK: @llvm.ppc.altivec.vperm
1813 // CHECK-LE: @llvm.ppc.altivec.vperm
1815 res_vs = vec_vmrglh(vs, vs);
1816 // CHECK: @llvm.ppc.altivec.vperm
1817 // CHECK-LE: @llvm.ppc.altivec.vperm
1819 res_vp = vec_vmrglh(vp, vp);
1820 // CHECK: @llvm.ppc.altivec.vperm
1821 // CHECK-LE: @llvm.ppc.altivec.vperm
1823 res_vus = vec_vmrglh(vus, vus);
1824 // CHECK: @llvm.ppc.altivec.vperm
1825 // CHECK-LE: @llvm.ppc.altivec.vperm
1827 res_vbs = vec_vmrglh(vbs, vbs);
1828 // CHECK: @llvm.ppc.altivec.vperm
1829 // CHECK-LE: @llvm.ppc.altivec.vperm
1831 res_vi = vec_vmrglw(vi, vi);
1832 // CHECK: @llvm.ppc.altivec.vperm
1833 // CHECK-LE: @llvm.ppc.altivec.vperm
1835 res_vui = vec_vmrglw(vui, vui);
1836 // CHECK: @llvm.ppc.altivec.vperm
1837 // CHECK-LE: @llvm.ppc.altivec.vperm
1839 res_vbi = vec_vmrglw(vbi, vbi);
1840 // CHECK: @llvm.ppc.altivec.vperm
1841 // CHECK-LE: @llvm.ppc.altivec.vperm
1843 res_vf = vec_vmrglw(vf, vf);
1844 // CHECK: @llvm.ppc.altivec.vperm
1845 // CHECK-LE: @llvm.ppc.altivec.vperm
1849 // CHECK: @llvm.ppc.altivec.mfvscr
1850 // CHECK-LE: @llvm.ppc.altivec.mfvscr
1853 res_vsc = vec_min(vsc, vsc);
1854 // CHECK: @llvm.ppc.altivec.vminsb
1855 // CHECK-LE: @llvm.ppc.altivec.vminsb
1857 res_vsc = vec_min(vbc, vsc);
1858 // CHECK: @llvm.ppc.altivec.vminsb
1859 // CHECK-LE: @llvm.ppc.altivec.vminsb
1861 res_vsc = vec_min(vsc, vbc);
1862 // CHECK: @llvm.ppc.altivec.vminsb
1863 // CHECK-LE: @llvm.ppc.altivec.vminsb
1865 res_vuc = vec_min(vuc, vuc);
1866 // CHECK: @llvm.ppc.altivec.vminub
1867 // CHECK-LE: @llvm.ppc.altivec.vminub
1869 res_vuc = vec_min(vbc, vuc);
1870 // CHECK: @llvm.ppc.altivec.vminub
1871 // CHECK-LE: @llvm.ppc.altivec.vminub
1873 res_vuc = vec_min(vuc, vbc);
1874 // CHECK: @llvm.ppc.altivec.vminub
1875 // CHECK-LE: @llvm.ppc.altivec.vminub
1877 res_vs = vec_min(vs, vs);
1878 // CHECK: @llvm.ppc.altivec.vminsh
1879 // CHECK-LE: @llvm.ppc.altivec.vminsh
1881 res_vs = vec_min(vbs, vs);
1882 // CHECK: @llvm.ppc.altivec.vminsh
1883 // CHECK-LE: @llvm.ppc.altivec.vminsh
1885 res_vs = vec_min(vs, vbs);
1886 // CHECK: @llvm.ppc.altivec.vminsh
1887 // CHECK-LE: @llvm.ppc.altivec.vminsh
1889 res_vus = vec_min(vus, vus);
1890 // CHECK: @llvm.ppc.altivec.vminuh
1891 // CHECK-LE: @llvm.ppc.altivec.vminuh
1893 res_vus = vec_min(vbs, vus);
1894 // CHECK: @llvm.ppc.altivec.vminuh
1895 // CHECK-LE: @llvm.ppc.altivec.vminuh
1897 res_vus = vec_min(vus, vbs);
1898 // CHECK: @llvm.ppc.altivec.vminuh
1899 // CHECK-LE: @llvm.ppc.altivec.vminuh
1901 res_vi = vec_min(vi, vi);
1902 // CHECK: @llvm.ppc.altivec.vminsw
1903 // CHECK-LE: @llvm.ppc.altivec.vminsw
1905 res_vi = vec_min(vbi, vi);
1906 // CHECK: @llvm.ppc.altivec.vminsw
1907 // CHECK-LE: @llvm.ppc.altivec.vminsw
1909 res_vi = vec_min(vi, vbi);
1910 // CHECK: @llvm.ppc.altivec.vminsw
1911 // CHECK-LE: @llvm.ppc.altivec.vminsw
1913 res_vui = vec_min(vui, vui);
1914 // CHECK: @llvm.ppc.altivec.vminuw
1915 // CHECK-LE: @llvm.ppc.altivec.vminuw
1917 res_vui = vec_min(vbi, vui);
1918 // CHECK: @llvm.ppc.altivec.vminuw
1919 // CHECK-LE: @llvm.ppc.altivec.vminuw
1921 res_vui = vec_min(vui, vbi);
1922 // CHECK: @llvm.ppc.altivec.vminuw
1923 // CHECK-LE: @llvm.ppc.altivec.vminuw
1925 res_vf = vec_min(vf, vf);
1926 // CHECK: @llvm.ppc.altivec.vminfp
1927 // CHECK-LE: @llvm.ppc.altivec.vminfp
1929 res_vsc = vec_vminsb(vsc, vsc);
1930 // CHECK: @llvm.ppc.altivec.vminsb
1931 // CHECK-LE: @llvm.ppc.altivec.vminsb
1933 res_vsc = vec_vminsb(vbc, vsc);
1934 // CHECK: @llvm.ppc.altivec.vminsb
1935 // CHECK-LE: @llvm.ppc.altivec.vminsb
1937 res_vsc = vec_vminsb(vsc, vbc);
1938 // CHECK: @llvm.ppc.altivec.vminsb
1939 // CHECK-LE: @llvm.ppc.altivec.vminsb
1941 res_vuc = vec_vminub(vuc, vuc);
1942 // CHECK: @llvm.ppc.altivec.vminub
1943 // CHECK-LE: @llvm.ppc.altivec.vminub
1945 res_vuc = vec_vminub(vbc, vuc);
1946 // CHECK: @llvm.ppc.altivec.vminub
1947 // CHECK-LE: @llvm.ppc.altivec.vminub
1949 res_vuc = vec_vminub(vuc, vbc);
1950 // CHECK: @llvm.ppc.altivec.vminub
1951 // CHECK-LE: @llvm.ppc.altivec.vminub
1953 res_vs = vec_vminsh(vs, vs);
1954 // CHECK: @llvm.ppc.altivec.vminsh
1955 // CHECK-LE: @llvm.ppc.altivec.vminsh
1957 res_vs = vec_vminsh(vbs, vs);
1958 // CHECK: @llvm.ppc.altivec.vminsh
1959 // CHECK-LE: @llvm.ppc.altivec.vminsh
1961 res_vs = vec_vminsh(vs, vbs);
1962 // CHECK: @llvm.ppc.altivec.vminsh
1963 // CHECK-LE: @llvm.ppc.altivec.vminsh
1965 res_vus = vec_vminuh(vus, vus);
1966 // CHECK: @llvm.ppc.altivec.vminuh
1967 // CHECK-LE: @llvm.ppc.altivec.vminuh
1969 res_vus = vec_vminuh(vbs, vus);
1970 // CHECK: @llvm.ppc.altivec.vminuh
1971 // CHECK-LE: @llvm.ppc.altivec.vminuh
1973 res_vus = vec_vminuh(vus, vbs);
1974 // CHECK: @llvm.ppc.altivec.vminuh
1975 // CHECK-LE: @llvm.ppc.altivec.vminuh
1977 res_vi = vec_vminsw(vi, vi);
1978 // CHECK: @llvm.ppc.altivec.vminsw
1979 // CHECK-LE: @llvm.ppc.altivec.vminsw
1981 res_vi = vec_vminsw(vbi, vi);
1982 // CHECK: @llvm.ppc.altivec.vminsw
1983 // CHECK-LE: @llvm.ppc.altivec.vminsw
1985 res_vi = vec_vminsw(vi, vbi);
1986 // CHECK: @llvm.ppc.altivec.vminsw
1987 // CHECK-LE: @llvm.ppc.altivec.vminsw
1989 res_vui = vec_vminuw(vui, vui);
1990 // CHECK: @llvm.ppc.altivec.vminuw
1991 // CHECK-LE: @llvm.ppc.altivec.vminuw
1993 res_vui = vec_vminuw(vbi, vui);
1994 // CHECK: @llvm.ppc.altivec.vminuw
1995 // CHECK-LE: @llvm.ppc.altivec.vminuw
1997 res_vui = vec_vminuw(vui, vbi);
1998 // CHECK: @llvm.ppc.altivec.vminuw
1999 // CHECK-LE: @llvm.ppc.altivec.vminuw
2001 res_vf = vec_vminfp(vf, vf);
2002 // CHECK: @llvm.ppc.altivec.vminfp
2003 // CHECK-LE: @llvm.ppc.altivec.vminfp
2006 res_vus = vec_mladd(vus, vus, vus);
2007 // CHECK: mul <8 x i16>
2008 // CHECK: add <8 x i16>
2009 // CHECK-LE: mul <8 x i16>
2010 // CHECK-LE: add <8 x i16>
2012 res_vs = vec_mladd(vus, vs, vs);
2013 // CHECK: mul <8 x i16>
2014 // CHECK: add <8 x i16>
2015 // CHECK-LE: mul <8 x i16>
2016 // CHECK-LE: add <8 x i16>
2018 res_vs = vec_mladd(vs, vus, vus);
2019 // CHECK: mul <8 x i16>
2020 // CHECK: add <8 x i16>
2021 // CHECK-LE: mul <8 x i16>
2022 // CHECK-LE: add <8 x i16>
2024 res_vs = vec_mladd(vs, vs, vs);
2025 // CHECK: mul <8 x i16>
2026 // CHECK: add <8 x i16>
2027 // CHECK-LE: mul <8 x i16>
2028 // CHECK-LE: add <8 x i16>
2031 res_vs = vec_mradds(vs, vs, vs);
2032 // CHECK: @llvm.ppc.altivec.vmhraddshs
2033 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs
2035 res_vs = vec_vmhraddshs(vs, vs, vs);
2036 // CHECK: @llvm.ppc.altivec.vmhraddshs
2037 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs
2040 res_vi = vec_msum(vsc, vuc, vi);
2041 // CHECK: @llvm.ppc.altivec.vmsummbm
2042 // CHECK-LE: @llvm.ppc.altivec.vmsummbm
2044 res_vui = vec_msum(vuc, vuc, vui);
2045 // CHECK: @llvm.ppc.altivec.vmsumubm
2046 // CHECK-LE: @llvm.ppc.altivec.vmsumubm
2048 res_vi = vec_msum(vs, vs, vi);
2049 // CHECK: @llvm.ppc.altivec.vmsumshm
2050 // CHECK-LE: @llvm.ppc.altivec.vmsumshm
2052 res_vui = vec_msum(vus, vus, vui);
2053 // CHECK: @llvm.ppc.altivec.vmsumuhm
2054 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm
2056 res_vi = vec_vmsummbm(vsc, vuc, vi);
2057 // CHECK: @llvm.ppc.altivec.vmsummbm
2058 // CHECK-LE: @llvm.ppc.altivec.vmsummbm
2060 res_vui = vec_vmsumubm(vuc, vuc, vui);
2061 // CHECK: @llvm.ppc.altivec.vmsumubm
2062 // CHECK-LE: @llvm.ppc.altivec.vmsumubm
2064 res_vi = vec_vmsumshm(vs, vs, vi);
2065 // CHECK: @llvm.ppc.altivec.vmsumshm
2066 // CHECK-LE: @llvm.ppc.altivec.vmsumshm
2068 res_vui = vec_vmsumuhm(vus, vus, vui);
2069 // CHECK: @llvm.ppc.altivec.vmsumuhm
2070 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm
2073 res_vi = vec_msums(vs, vs, vi);
2074 // CHECK: @llvm.ppc.altivec.vmsumshs
2075 // CHECK-LE: @llvm.ppc.altivec.vmsumshs
2077 res_vui = vec_msums(vus, vus, vui);
2078 // CHECK: @llvm.ppc.altivec.vmsumuhs
2079 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs
2081 res_vi = vec_vmsumshs(vs, vs, vi);
2082 // CHECK: @llvm.ppc.altivec.vmsumshs
2083 // CHECK-LE: @llvm.ppc.altivec.vmsumshs
2085 res_vui = vec_vmsumuhs(vus, vus, vui);
2086 // CHECK: @llvm.ppc.altivec.vmsumuhs
2087 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs
2091 // CHECK: @llvm.ppc.altivec.mtvscr
2092 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2095 // CHECK: @llvm.ppc.altivec.mtvscr
2096 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2099 // CHECK: @llvm.ppc.altivec.mtvscr
2100 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2103 // CHECK: @llvm.ppc.altivec.mtvscr
2104 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2107 // CHECK: @llvm.ppc.altivec.mtvscr
2108 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2111 // CHECK: @llvm.ppc.altivec.mtvscr
2112 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2115 // CHECK: @llvm.ppc.altivec.mtvscr
2116 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2119 // CHECK: @llvm.ppc.altivec.mtvscr
2120 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2123 // CHECK: @llvm.ppc.altivec.mtvscr
2124 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2127 // CHECK: @llvm.ppc.altivec.mtvscr
2128 // CHECK-LE: @llvm.ppc.altivec.mtvscr
2131 res_vs = vec_mule(vsc, vsc);
2132 // CHECK: @llvm.ppc.altivec.vmulesb
2133 // CHECK-LE: @llvm.ppc.altivec.vmulosb
2135 res_vus = vec_mule(vuc, vuc);
2136 // CHECK: @llvm.ppc.altivec.vmuleub
2137 // CHECK-LE: @llvm.ppc.altivec.vmuloub
2139 res_vi = vec_mule(vs, vs);
2140 // CHECK: @llvm.ppc.altivec.vmulesh
2141 // CHECK-LE: @llvm.ppc.altivec.vmulosh
2143 res_vui = vec_mule(vus, vus);
2144 // CHECK: @llvm.ppc.altivec.vmuleuh
2145 // CHECK-LE: @llvm.ppc.altivec.vmulouh
2147 res_vs = vec_vmulesb(vsc, vsc);
2148 // CHECK: @llvm.ppc.altivec.vmulesb
2149 // CHECK-LE: @llvm.ppc.altivec.vmulosb
2151 res_vus = vec_vmuleub(vuc, vuc);
2152 // CHECK: @llvm.ppc.altivec.vmuleub
2153 // CHECK-LE: @llvm.ppc.altivec.vmuloub
2155 res_vi = vec_vmulesh(vs, vs);
2156 // CHECK: @llvm.ppc.altivec.vmulesh
2157 // CHECK-LE: @llvm.ppc.altivec.vmulosh
2159 res_vui = vec_vmuleuh(vus, vus);
2160 // CHECK: @llvm.ppc.altivec.vmuleuh
2161 // CHECK-LE: @llvm.ppc.altivec.vmulouh
2164 res_vs = vec_mulo(vsc, vsc);
2165 // CHECK: @llvm.ppc.altivec.vmulosb
2166 // CHECK-LE: @llvm.ppc.altivec.vmulesb
2168 res_vus = vec_mulo(vuc, vuc);
2169 // CHECK: @llvm.ppc.altivec.vmuloub
2170 // CHECK-LE: @llvm.ppc.altivec.vmuleub
2172 res_vi = vec_mulo(vs, vs);
2173 // CHECK: @llvm.ppc.altivec.vmulosh
2174 // CHECK-LE: @llvm.ppc.altivec.vmulesh
2176 res_vui = vec_mulo(vus, vus);
2177 // CHECK: @llvm.ppc.altivec.vmulouh
2178 // CHECK-LE: @llvm.ppc.altivec.vmuleuh
2180 res_vs = vec_vmulosb(vsc, vsc);
2181 // CHECK: @llvm.ppc.altivec.vmulosb
2182 // CHECK-LE: @llvm.ppc.altivec.vmulesb
2184 res_vus = vec_vmuloub(vuc, vuc);
2185 // CHECK: @llvm.ppc.altivec.vmuloub
2186 // CHECK-LE: @llvm.ppc.altivec.vmuleub
2188 res_vi = vec_vmulosh(vs, vs);
2189 // CHECK: @llvm.ppc.altivec.vmulosh
2190 // CHECK-LE: @llvm.ppc.altivec.vmulesh
2192 res_vui = vec_vmulouh(vus, vus);
2193 // CHECK: @llvm.ppc.altivec.vmulouh
2194 // CHECK-LE: @llvm.ppc.altivec.vmuleuh
2197 res_vf = vec_nmsub(vf, vf, vf);
2198 // CHECK: @llvm.ppc.altivec.vnmsubfp
2199 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp
2201 res_vf = vec_vnmsubfp(vf, vf, vf);
2202 // CHECK: @llvm.ppc.altivec.vnmsubfp
2203 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp
2206 res_vsc = vec_nor(vsc, vsc);
2207 // CHECK: or <16 x i8>
2208 // CHECK: xor <16 x i8>
2209 // CHECK-LE: or <16 x i8>
2210 // CHECK-LE: xor <16 x i8>
2212 res_vuc = vec_nor(vuc, vuc);
2213 // CHECK: or <16 x i8>
2214 // CHECK: xor <16 x i8>
2215 // CHECK-LE: or <16 x i8>
2216 // CHECK-LE: xor <16 x i8>
2218 res_vuc = vec_nor(vbc, vbc);
2219 // CHECK: or <16 x i8>
2220 // CHECK: xor <16 x i8>
2221 // CHECK-LE: or <16 x i8>
2222 // CHECK-LE: xor <16 x i8>
2224 res_vs = vec_nor(vs, vs);
2225 // CHECK: or <8 x i16>
2226 // CHECK: xor <8 x i16>
2227 // CHECK-LE: or <8 x i16>
2228 // CHECK-LE: xor <8 x i16>
2230 res_vus = vec_nor(vus, vus);
2231 // CHECK: or <8 x i16>
2232 // CHECK: xor <8 x i16>
2233 // CHECK-LE: or <8 x i16>
2234 // CHECK-LE: xor <8 x i16>
2236 res_vus = vec_nor(vbs, vbs);
2237 // CHECK: or <8 x i16>
2238 // CHECK: xor <8 x i16>
2239 // CHECK-LE: or <8 x i16>
2240 // CHECK-LE: xor <8 x i16>
2242 res_vi = vec_nor(vi, vi);
2243 // CHECK: or <4 x i32>
2244 // CHECK: xor <4 x i32>
2245 // CHECK-LE: or <4 x i32>
2246 // CHECK-LE: xor <4 x i32>
2248 res_vui = vec_nor(vui, vui);
2249 // CHECK: or <4 x i32>
2250 // CHECK: xor <4 x i32>
2251 // CHECK-LE: or <4 x i32>
2252 // CHECK-LE: xor <4 x i32>
2254 res_vui = vec_nor(vbi, vbi);
2255 // CHECK: or <4 x i32>
2256 // CHECK: xor <4 x i32>
2257 // CHECK-LE: or <4 x i32>
2258 // CHECK-LE: xor <4 x i32>
2260 res_vf = vec_nor(vf, vf);
2261 // CHECK: or <4 x i32>
2262 // CHECK: xor <4 x i32>
2263 // CHECK-LE: or <4 x i32>
2264 // CHECK-LE: xor <4 x i32>
2266 res_vsc = vec_vnor(vsc, vsc);
2267 // CHECK: or <16 x i8>
2268 // CHECK: xor <16 x i8>
2269 // CHECK-LE: or <16 x i8>
2270 // CHECK-LE: xor <16 x i8>
2272 res_vuc = vec_vnor(vuc, vuc);
2273 // CHECK: or <16 x i8>
2274 // CHECK: xor <16 x i8>
2275 // CHECK-LE: or <16 x i8>
2276 // CHECK-LE: xor <16 x i8>
2278 res_vuc = vec_vnor(vbc, vbc);
2279 // CHECK: or <16 x i8>
2280 // CHECK: xor <16 x i8>
2281 // CHECK-LE: or <16 x i8>
2282 // CHECK-LE: xor <16 x i8>
2284 res_vs = vec_vnor(vs, vs);
2285 // CHECK: or <8 x i16>
2286 // CHECK: xor <8 x i16>
2287 // CHECK-LE: or <8 x i16>
2288 // CHECK-LE: xor <8 x i16>
2290 res_vus = vec_vnor(vus, vus);
2291 // CHECK: or <8 x i16>
2292 // CHECK: xor <8 x i16>
2293 // CHECK-LE: or <8 x i16>
2294 // CHECK-LE: xor <8 x i16>
2296 res_vus = vec_vnor(vbs, vbs);
2297 // CHECK: or <8 x i16>
2298 // CHECK: xor <8 x i16>
2299 // CHECK-LE: or <8 x i16>
2300 // CHECK-LE: xor <8 x i16>
2302 res_vi = vec_vnor(vi, vi);
2303 // CHECK: or <4 x i32>
2304 // CHECK: xor <4 x i32>
2305 // CHECK-LE: or <4 x i32>
2306 // CHECK-LE: xor <4 x i32>
2308 res_vui = vec_vnor(vui, vui);
2309 // CHECK: or <4 x i32>
2310 // CHECK: xor <4 x i32>
2311 // CHECK-LE: or <4 x i32>
2312 // CHECK-LE: xor <4 x i32>
2314 res_vui = vec_vnor(vbi, vbi);
2315 // CHECK: or <4 x i32>
2316 // CHECK: xor <4 x i32>
2317 // CHECK-LE: or <4 x i32>
2318 // CHECK-LE: xor <4 x i32>
2320 res_vf = vec_vnor(vf, vf);
2321 // CHECK: or <4 x i32>
2322 // CHECK: xor <4 x i32>
2323 // CHECK-LE: or <4 x i32>
2324 // CHECK-LE: xor <4 x i32>
2327 res_vsc = vec_or(vsc, vsc);
2328 // CHECK: or <16 x i8>
2329 // CHECK-LE: or <16 x i8>
2331 res_vsc = vec_or(vbc, vsc);
2332 // CHECK: or <16 x i8>
2333 // CHECK-LE: or <16 x i8>
2335 res_vsc = vec_or(vsc, vbc);
2336 // CHECK: or <16 x i8>
2337 // CHECK-LE: or <16 x i8>
2339 res_vuc = vec_or(vuc, vuc);
2340 // CHECK: or <16 x i8>
2341 // CHECK-LE: or <16 x i8>
2343 res_vuc = vec_or(vbc, vuc);
2344 // CHECK: or <16 x i8>
2345 // CHECK-LE: or <16 x i8>
2347 res_vuc = vec_or(vuc, vbc);
2348 // CHECK: or <16 x i8>
2349 // CHECK-LE: or <16 x i8>
2351 res_vbc = vec_or(vbc, vbc);
2352 // CHECK: or <16 x i8>
2353 // CHECK-LE: or <16 x i8>
2355 res_vs = vec_or(vs, vs);
2356 // CHECK: or <8 x i16>
2357 // CHECK-LE: or <8 x i16>
2359 res_vs = vec_or(vbs, vs);
2360 // CHECK: or <8 x i16>
2361 // CHECK-LE: or <8 x i16>
2363 res_vs = vec_or(vs, vbs);
2364 // CHECK: or <8 x i16>
2365 // CHECK-LE: or <8 x i16>
2367 res_vus = vec_or(vus, vus);
2368 // CHECK: or <8 x i16>
2369 // CHECK-LE: or <8 x i16>
2371 res_vus = vec_or(vbs, vus);
2372 // CHECK: or <8 x i16>
2373 // CHECK-LE: or <8 x i16>
2375 res_vus = vec_or(vus, vbs);
2376 // CHECK: or <8 x i16>
2377 // CHECK-LE: or <8 x i16>
2379 res_vbs = vec_or(vbs, vbs);
2380 // CHECK: or <8 x i16>
2381 // CHECK-LE: or <8 x i16>
2383 res_vi = vec_or(vi, vi);
2384 // CHECK: or <4 x i32>
2385 // CHECK-LE: or <4 x i32>
2387 res_vi = vec_or(vbi, vi);
2388 // CHECK: or <4 x i32>
2389 // CHECK-LE: or <4 x i32>
2391 res_vi = vec_or(vi, vbi);
2392 // CHECK: or <4 x i32>
2393 // CHECK-LE: or <4 x i32>
2395 res_vui = vec_or(vui, vui);
2396 // CHECK: or <4 x i32>
2397 // CHECK-LE: or <4 x i32>
2399 res_vui = vec_or(vbi, vui);
2400 // CHECK: or <4 x i32>
2401 // CHECK-LE: or <4 x i32>
2403 res_vui = vec_or(vui, vbi);
2404 // CHECK: or <4 x i32>
2405 // CHECK-LE: or <4 x i32>
2407 res_vbi = vec_or(vbi, vbi);
2408 // CHECK: or <4 x i32>
2409 // CHECK-LE: or <4 x i32>
2411 res_vf = vec_or(vf, vf);
2412 // CHECK: or <4 x i32>
2413 // CHECK-LE: or <4 x i32>
2415 res_vf = vec_or(vbi, vf);
2416 // CHECK: or <4 x i32>
2417 // CHECK-LE: or <4 x i32>
2419 res_vf = vec_or(vf, vbi);
2420 // CHECK: or <4 x i32>
2421 // CHECK-LE: or <4 x i32>
2423 res_vsc = vec_vor(vsc, vsc);
2424 // CHECK: or <16 x i8>
2425 // CHECK-LE: or <16 x i8>
2427 res_vsc = vec_vor(vbc, vsc);
2428 // CHECK: or <16 x i8>
2429 // CHECK-LE: or <16 x i8>
2431 res_vsc = vec_vor(vsc, vbc);
2432 // CHECK: or <16 x i8>
2433 // CHECK-LE: or <16 x i8>
2435 res_vuc = vec_vor(vuc, vuc);
2436 // CHECK: or <16 x i8>
2437 // CHECK-LE: or <16 x i8>
2439 res_vuc = vec_vor(vbc, vuc);
2440 // CHECK: or <16 x i8>
2441 // CHECK-LE: or <16 x i8>
2443 res_vuc = vec_vor(vuc, vbc);
2444 // CHECK: or <16 x i8>
2445 // CHECK-LE: or <16 x i8>
2447 res_vbc = vec_vor(vbc, vbc);
2448 // CHECK: or <16 x i8>
2449 // CHECK-LE: or <16 x i8>
2451 res_vs = vec_vor(vs, vs);
2452 // CHECK: or <8 x i16>
2453 // CHECK-LE: or <8 x i16>
2455 res_vs = vec_vor(vbs, vs);
2456 // CHECK: or <8 x i16>
2457 // CHECK-LE: or <8 x i16>
2459 res_vs = vec_vor(vs, vbs);
2460 // CHECK: or <8 x i16>
2461 // CHECK-LE: or <8 x i16>
2463 res_vus = vec_vor(vus, vus);
2464 // CHECK: or <8 x i16>
2465 // CHECK-LE: or <8 x i16>
2467 res_vus = vec_vor(vbs, vus);
2468 // CHECK: or <8 x i16>
2469 // CHECK-LE: or <8 x i16>
2471 res_vus = vec_vor(vus, vbs);
2472 // CHECK: or <8 x i16>
2473 // CHECK-LE: or <8 x i16>
2475 res_vbs = vec_vor(vbs, vbs);
2476 // CHECK: or <8 x i16>
2477 // CHECK-LE: or <8 x i16>
2479 res_vi = vec_vor(vi, vi);
2480 // CHECK: or <4 x i32>
2481 // CHECK-LE: or <4 x i32>
2483 res_vi = vec_vor(vbi, vi);
2484 // CHECK: or <4 x i32>
2485 // CHECK-LE: or <4 x i32>
2487 res_vi = vec_vor(vi, vbi);
2488 // CHECK: or <4 x i32>
2489 // CHECK-LE: or <4 x i32>
2491 res_vui = vec_vor(vui, vui);
2492 // CHECK: or <4 x i32>
2493 // CHECK-LE: or <4 x i32>
2495 res_vui = vec_vor(vbi, vui);
2496 // CHECK: or <4 x i32>
2497 // CHECK-LE: or <4 x i32>
2499 res_vui = vec_vor(vui, vbi);
2500 // CHECK: or <4 x i32>
2501 // CHECK-LE: or <4 x i32>
2503 res_vbi = vec_vor(vbi, vbi);
2504 // CHECK: or <4 x i32>
2505 // CHECK-LE: or <4 x i32>
2507 res_vf = vec_vor(vf, vf);
2508 // CHECK: or <4 x i32>
2509 // CHECK-LE: or <4 x i32>
2511 res_vf = vec_vor(vbi, vf);
2512 // CHECK: or <4 x i32>
2513 // CHECK-LE: or <4 x i32>
2515 res_vf = vec_vor(vf, vbi);
2516 // CHECK: or <4 x i32>
2517 // CHECK-LE: or <4 x i32>
2520 res_vsc = vec_pack(vs, vs);
2521 // CHECK: @llvm.ppc.altivec.vperm
2522 // CHECK-LE: @llvm.ppc.altivec.vperm
2524 res_vuc = vec_pack(vus, vus);
2525 // CHECK: @llvm.ppc.altivec.vperm
2526 // CHECK-LE: @llvm.ppc.altivec.vperm
2528 res_vbc = vec_pack(vbs, vbs);
2529 // CHECK: @llvm.ppc.altivec.vperm
2530 // CHECK-LE: @llvm.ppc.altivec.vperm
2532 res_vs = vec_pack(vi, vi);
2533 // CHECK: @llvm.ppc.altivec.vperm
2534 // CHECK-LE: @llvm.ppc.altivec.vperm
2536 res_vus = vec_pack(vui, vui);
2537 // CHECK: @llvm.ppc.altivec.vperm
2538 // CHECK-LE: @llvm.ppc.altivec.vperm
2540 res_vbs = vec_pack(vbi, vbi);
2541 // CHECK: @llvm.ppc.altivec.vperm
2542 // CHECK-LE: @llvm.ppc.altivec.vperm
2544 res_vsc = vec_vpkuhum(vs, vs);
2545 // CHECK: @llvm.ppc.altivec.vperm
2546 // CHECK-LE: @llvm.ppc.altivec.vperm
2548 res_vuc = vec_vpkuhum(vus, vus);
2549 // CHECK: @llvm.ppc.altivec.vperm
2550 // CHECK-LE: @llvm.ppc.altivec.vperm
2552 res_vbc = vec_vpkuhum(vbs, vbs);
2553 // CHECK: @llvm.ppc.altivec.vperm
2554 // CHECK-LE: @llvm.ppc.altivec.vperm
2556 res_vs = vec_vpkuwum(vi, vi);
2557 // CHECK: @llvm.ppc.altivec.vperm
2558 // CHECK-LE: @llvm.ppc.altivec.vperm
2560 res_vus = vec_vpkuwum(vui, vui);
2561 // CHECK: @llvm.ppc.altivec.vperm
2562 // CHECK-LE: @llvm.ppc.altivec.vperm
2564 res_vbs = vec_vpkuwum(vbi, vbi);
2565 // CHECK: @llvm.ppc.altivec.vperm
2566 // CHECK-LE: @llvm.ppc.altivec.vperm
2569 res_vp = vec_packpx(vui, vui);
2570 // CHECK: @llvm.ppc.altivec.vpkpx
2571 // CHECK-LE: @llvm.ppc.altivec.vpkpx
2573 res_vp = vec_vpkpx(vui, vui);
2574 // CHECK: @llvm.ppc.altivec.vpkpx
2575 // CHECK-LE: @llvm.ppc.altivec.vpkpx
2578 res_vsc = vec_packs(vs, vs);
2579 // CHECK: @llvm.ppc.altivec.vpkshss
2580 // CHECK-LE: @llvm.ppc.altivec.vpkshss
2582 res_vuc = vec_packs(vus, vus);
2583 // CHECK: @llvm.ppc.altivec.vpkuhus
2584 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2586 res_vs = vec_packs(vi, vi);
2587 // CHECK: @llvm.ppc.altivec.vpkswss
2588 // CHECK-LE: @llvm.ppc.altivec.vpkswss
2590 res_vus = vec_packs(vui, vui);
2591 // CHECK: @llvm.ppc.altivec.vpkuwus
2592 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2594 res_vsc = vec_vpkshss(vs, vs);
2595 // CHECK: @llvm.ppc.altivec.vpkshss
2596 // CHECK-LE: @llvm.ppc.altivec.vpkshss
2598 res_vuc = vec_vpkuhus(vus, vus);
2599 // CHECK: @llvm.ppc.altivec.vpkuhus
2600 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2602 res_vs = vec_vpkswss(vi, vi);
2603 // CHECK: @llvm.ppc.altivec.vpkswss
2604 // CHECK-LE: @llvm.ppc.altivec.vpkswss
2606 res_vus = vec_vpkuwus(vui, vui);
2607 // CHECK: @llvm.ppc.altivec.vpkuwus
2608 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2611 res_vuc = vec_packsu(vs, vs);
2612 // CHECK: @llvm.ppc.altivec.vpkshus
2613 // CHECK-LE: @llvm.ppc.altivec.vpkshus
2615 res_vuc = vec_packsu(vus, vus);
2616 // CHECK: @llvm.ppc.altivec.vpkuhus
2617 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2619 res_vus = vec_packsu(vi, vi);
2620 // CHECK: @llvm.ppc.altivec.vpkswus
2621 // CHECK-LE: @llvm.ppc.altivec.vpkswus
2623 res_vus = vec_packsu(vui, vui);
2624 // CHECK: @llvm.ppc.altivec.vpkuwus
2625 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2627 res_vuc = vec_vpkshus(vs, vs);
2628 // CHECK: @llvm.ppc.altivec.vpkshus
2629 // CHECK-LE: @llvm.ppc.altivec.vpkshus
2631 res_vuc = vec_vpkshus(vus, vus);
2632 // CHECK: @llvm.ppc.altivec.vpkuhus
2633 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
2635 res_vus = vec_vpkswus(vi, vi);
2636 // CHECK: @llvm.ppc.altivec.vpkswus
2637 // CHECK-LE: @llvm.ppc.altivec.vpkswus
2639 res_vus = vec_vpkswus(vui, vui);
2640 // CHECK: @llvm.ppc.altivec.vpkuwus
2641 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
2644 res_vsc = vec_perm(vsc, vsc, vuc);
2645 // CHECK: @llvm.ppc.altivec.vperm
2646 // CHECK-LE: @llvm.ppc.altivec.vperm
2648 res_vuc = vec_perm(vuc, vuc, vuc);
2649 // CHECK: @llvm.ppc.altivec.vperm
2650 // CHECK-LE: @llvm.ppc.altivec.vperm
2652 res_vbc = vec_perm(vbc, vbc, vuc);
2653 // CHECK: @llvm.ppc.altivec.vperm
2654 // CHECK-LE: @llvm.ppc.altivec.vperm
2656 res_vs = vec_perm(vs, vs, vuc);
2657 // CHECK: @llvm.ppc.altivec.vperm
2658 // CHECK-LE: @llvm.ppc.altivec.vperm
2660 res_vus = vec_perm(vus, vus, vuc);
2661 // CHECK: @llvm.ppc.altivec.vperm
2662 // CHECK-LE: @llvm.ppc.altivec.vperm
2664 res_vbs = vec_perm(vbs, vbs, vuc);
2665 // CHECK: @llvm.ppc.altivec.vperm
2666 // CHECK-LE: @llvm.ppc.altivec.vperm
2668 res_vp = vec_perm(vp, vp, vuc);
2669 // CHECK: @llvm.ppc.altivec.vperm
2670 // CHECK-LE: @llvm.ppc.altivec.vperm
2672 res_vi = vec_perm(vi, vi, vuc);
2673 // CHECK: @llvm.ppc.altivec.vperm
2674 // CHECK-LE: @llvm.ppc.altivec.vperm
2676 res_vui = vec_perm(vui, vui, vuc);
2677 // CHECK: @llvm.ppc.altivec.vperm
2678 // CHECK-LE: @llvm.ppc.altivec.vperm
2680 res_vbi = vec_perm(vbi, vbi, vuc);
2681 // CHECK: @llvm.ppc.altivec.vperm
2682 // CHECK-LE: @llvm.ppc.altivec.vperm
2684 res_vf = vec_perm(vf, vf, vuc);
2685 // CHECK: @llvm.ppc.altivec.vperm
2686 // CHECK-LE: @llvm.ppc.altivec.vperm
2688 res_vsc = vec_vperm(vsc, vsc, vuc);
2689 // CHECK: @llvm.ppc.altivec.vperm
2690 // CHECK-LE: @llvm.ppc.altivec.vperm
2692 res_vuc = vec_vperm(vuc, vuc, vuc);
2693 // CHECK: @llvm.ppc.altivec.vperm
2694 // CHECK-LE: @llvm.ppc.altivec.vperm
2696 res_vbc = vec_vperm(vbc, vbc, vuc);
2697 // CHECK: @llvm.ppc.altivec.vperm
2698 // CHECK-LE: @llvm.ppc.altivec.vperm
2700 res_vs = vec_vperm(vs, vs, vuc);
2701 // CHECK: @llvm.ppc.altivec.vperm
2702 // CHECK-LE: @llvm.ppc.altivec.vperm
2704 res_vus = vec_vperm(vus, vus, vuc);
2705 // CHECK: @llvm.ppc.altivec.vperm
2706 // CHECK-LE: @llvm.ppc.altivec.vperm
2708 res_vbs = vec_vperm(vbs, vbs, vuc);
2709 // CHECK: @llvm.ppc.altivec.vperm
2710 // CHECK-LE: @llvm.ppc.altivec.vperm
2712 res_vp = vec_vperm(vp, vp, vuc);
2713 // CHECK: @llvm.ppc.altivec.vperm
2714 // CHECK-LE: @llvm.ppc.altivec.vperm
2716 res_vi = vec_vperm(vi, vi, vuc);
2717 // CHECK: @llvm.ppc.altivec.vperm
2718 // CHECK-LE: @llvm.ppc.altivec.vperm
2720 res_vui = vec_vperm(vui, vui, vuc);
2721 // CHECK: @llvm.ppc.altivec.vperm
2722 // CHECK-LE: @llvm.ppc.altivec.vperm
2724 res_vbi = vec_vperm(vbi, vbi, vuc);
2725 // CHECK: @llvm.ppc.altivec.vperm
2726 // CHECK-LE: @llvm.ppc.altivec.vperm
2728 res_vf = vec_vperm(vf, vf, vuc);
2729 // CHECK: @llvm.ppc.altivec.vperm
2730 // CHECK-LE: @llvm.ppc.altivec.vperm
2733 res_vf = vec_re(vf);
2734 // CHECK: @llvm.ppc.altivec.vrefp
2735 // CHECK-LE: @llvm.ppc.altivec.vrefp
2737 res_vf = vec_vrefp(vf);
2738 // CHECK: @llvm.ppc.altivec.vrefp
2739 // CHECK-LE: @llvm.ppc.altivec.vrefp
2742 res_vsc = vec_rl(vsc, vuc);
2743 // CHECK: @llvm.ppc.altivec.vrlb
2744 // CHECK-LE: @llvm.ppc.altivec.vrlb
2746 res_vuc = vec_rl(vuc, vuc);
2747 // CHECK: @llvm.ppc.altivec.vrlb
2748 // CHECK-LE: @llvm.ppc.altivec.vrlb
2750 res_vs = vec_rl(vs, vus);
2751 // CHECK: @llvm.ppc.altivec.vrlh
2752 // CHECK-LE: @llvm.ppc.altivec.vrlh
2754 res_vus = vec_rl(vus, vus);
2755 // CHECK: @llvm.ppc.altivec.vrlh
2756 // CHECK-LE: @llvm.ppc.altivec.vrlh
2758 res_vi = vec_rl(vi, vui);
2759 // CHECK: @llvm.ppc.altivec.vrlw
2760 // CHECK-LE: @llvm.ppc.altivec.vrlw
2762 res_vui = vec_rl(vui, vui);
2763 // CHECK: @llvm.ppc.altivec.vrlw
2764 // CHECK-LE: @llvm.ppc.altivec.vrlw
2766 res_vsc = vec_vrlb(vsc, vuc);
2767 // CHECK: @llvm.ppc.altivec.vrlb
2768 // CHECK-LE: @llvm.ppc.altivec.vrlb
2770 res_vuc = vec_vrlb(vuc, vuc);
2771 // CHECK: @llvm.ppc.altivec.vrlb
2772 // CHECK-LE: @llvm.ppc.altivec.vrlb
2774 res_vs = vec_vrlh(vs, vus);
2775 // CHECK: @llvm.ppc.altivec.vrlh
2776 // CHECK-LE: @llvm.ppc.altivec.vrlh
2778 res_vus = vec_vrlh(vus, vus);
2779 // CHECK: @llvm.ppc.altivec.vrlh
2780 // CHECK-LE: @llvm.ppc.altivec.vrlh
2782 res_vi = vec_vrlw(vi, vui);
2783 // CHECK: @llvm.ppc.altivec.vrlw
2784 // CHECK-LE: @llvm.ppc.altivec.vrlw
2786 res_vui = vec_vrlw(vui, vui);
2787 // CHECK: @llvm.ppc.altivec.vrlw
2788 // CHECK-LE: @llvm.ppc.altivec.vrlw
2791 res_vf = vec_round(vf);
2792 // CHECK: @llvm.ppc.altivec.vrfin
2793 // CHECK-LE: @llvm.ppc.altivec.vrfin
2795 res_vf = vec_vrfin(vf);
2796 // CHECK: @llvm.ppc.altivec.vrfin
2797 // CHECK-LE: @llvm.ppc.altivec.vrfin
2800 res_vf = vec_rsqrte(vf);
2801 // CHECK: @llvm.ppc.altivec.vrsqrtefp
2802 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp
2804 res_vf = vec_vrsqrtefp(vf);
2805 // CHECK: @llvm.ppc.altivec.vrsqrtefp
2806 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp
2809 res_vsc = vec_sel(vsc, vsc, vuc);
2810 // CHECK: xor <16 x i8>
2811 // CHECK: and <16 x i8>
2812 // CHECK: and <16 x i8>
2813 // CHECK: or <16 x i8>
2814 // CHECK-LE: xor <16 x i8>
2815 // CHECK-LE: and <16 x i8>
2816 // CHECK-LE: and <16 x i8>
2817 // CHECK-LE: or <16 x i8>
2819 res_vsc = vec_sel(vsc, vsc, vbc);
2820 // CHECK: xor <16 x i8>
2821 // CHECK: and <16 x i8>
2822 // CHECK: and <16 x i8>
2823 // CHECK: or <16 x i8>
2824 // CHECK-LE: xor <16 x i8>
2825 // CHECK-LE: and <16 x i8>
2826 // CHECK-LE: and <16 x i8>
2827 // CHECK-LE: or <16 x i8>
2829 res_vuc = vec_sel(vuc, vuc, vuc);
2830 // CHECK: xor <16 x i8>
2831 // CHECK: and <16 x i8>
2832 // CHECK: and <16 x i8>
2833 // CHECK: or <16 x i8>
2834 // CHECK-LE: xor <16 x i8>
2835 // CHECK-LE: and <16 x i8>
2836 // CHECK-LE: and <16 x i8>
2837 // CHECK-LE: or <16 x i8>
2839 res_vuc = vec_sel(vuc, vuc, vbc);
2840 // CHECK: xor <16 x i8>
2841 // CHECK: and <16 x i8>
2842 // CHECK: and <16 x i8>
2843 // CHECK: or <16 x i8>
2844 // CHECK-LE: xor <16 x i8>
2845 // CHECK-LE: and <16 x i8>
2846 // CHECK-LE: and <16 x i8>
2847 // CHECK-LE: or <16 x i8>
2849 res_vbc = vec_sel(vbc, vbc, vuc);
2850 // CHECK: xor <16 x i8>
2851 // CHECK: and <16 x i8>
2852 // CHECK: and <16 x i8>
2853 // CHECK: or <16 x i8>
2854 // CHECK-LE: xor <16 x i8>
2855 // CHECK-LE: and <16 x i8>
2856 // CHECK-LE: and <16 x i8>
2857 // CHECK-LE: or <16 x i8>
2859 res_vbc = vec_sel(vbc, vbc, vbc);
2860 // CHECK: xor <16 x i8>
2861 // CHECK: and <16 x i8>
2862 // CHECK: and <16 x i8>
2863 // CHECK: or <16 x i8>
2864 // CHECK-LE: xor <16 x i8>
2865 // CHECK-LE: and <16 x i8>
2866 // CHECK-LE: and <16 x i8>
2867 // CHECK-LE: or <16 x i8>
2869 res_vs = vec_sel(vs, vs, vus);
2870 // CHECK: xor <8 x i16>
2871 // CHECK: and <8 x i16>
2872 // CHECK: and <8 x i16>
2873 // CHECK: or <8 x i16>
2874 // CHECK-LE: xor <8 x i16>
2875 // CHECK-LE: and <8 x i16>
2876 // CHECK-LE: and <8 x i16>
2877 // CHECK-LE: or <8 x i16>
2879 res_vs = vec_sel(vs, vs, vbs);
2880 // CHECK: xor <8 x i16>
2881 // CHECK: and <8 x i16>
2882 // CHECK: and <8 x i16>
2883 // CHECK: or <8 x i16>
2884 // CHECK-LE: xor <8 x i16>
2885 // CHECK-LE: and <8 x i16>
2886 // CHECK-LE: and <8 x i16>
2887 // CHECK-LE: or <8 x i16>
2889 res_vus = vec_sel(vus, vus, vus);
2890 // CHECK: xor <8 x i16>
2891 // CHECK: and <8 x i16>
2892 // CHECK: and <8 x i16>
2893 // CHECK: or <8 x i16>
2894 // CHECK-LE: xor <8 x i16>
2895 // CHECK-LE: and <8 x i16>
2896 // CHECK-LE: and <8 x i16>
2897 // CHECK-LE: or <8 x i16>
2899 res_vus = vec_sel(vus, vus, vbs);
2900 // CHECK: xor <8 x i16>
2901 // CHECK: and <8 x i16>
2902 // CHECK: and <8 x i16>
2903 // CHECK: or <8 x i16>
2904 // CHECK-LE: xor <8 x i16>
2905 // CHECK-LE: and <8 x i16>
2906 // CHECK-LE: and <8 x i16>
2907 // CHECK-LE: or <8 x i16>
2909 res_vbs = vec_sel(vbs, vbs, vus);
2910 // CHECK: xor <8 x i16>
2911 // CHECK: and <8 x i16>
2912 // CHECK: and <8 x i16>
2913 // CHECK: or <8 x i16>
2914 // CHECK-LE: xor <8 x i16>
2915 // CHECK-LE: and <8 x i16>
2916 // CHECK-LE: and <8 x i16>
2917 // CHECK-LE: or <8 x i16>
2919 res_vbs = vec_sel(vbs, vbs, vbs);
2920 // CHECK: xor <8 x i16>
2921 // CHECK: and <8 x i16>
2922 // CHECK: and <8 x i16>
2923 // CHECK: or <8 x i16>
2924 // CHECK-LE: xor <8 x i16>
2925 // CHECK-LE: and <8 x i16>
2926 // CHECK-LE: and <8 x i16>
2927 // CHECK-LE: or <8 x i16>
2929 res_vi = vec_sel(vi, vi, vui);
2930 // CHECK: xor <4 x i32>
2931 // CHECK: and <4 x i32>
2932 // CHECK: and <4 x i32>
2933 // CHECK: or <4 x i32>
2934 // CHECK-LE: xor <4 x i32>
2935 // CHECK-LE: and <4 x i32>
2936 // CHECK-LE: and <4 x i32>
2937 // CHECK-LE: or <4 x i32>
2939 res_vi = vec_sel(vi, vi, vbi);
2940 // CHECK: xor <4 x i32>
2941 // CHECK: and <4 x i32>
2942 // CHECK: and <4 x i32>
2943 // CHECK: or <4 x i32>
2944 // CHECK-LE: xor <4 x i32>
2945 // CHECK-LE: and <4 x i32>
2946 // CHECK-LE: and <4 x i32>
2947 // CHECK-LE: or <4 x i32>
2949 res_vui = vec_sel(vui, vui, vui);
2950 // CHECK: xor <4 x i32>
2951 // CHECK: and <4 x i32>
2952 // CHECK: and <4 x i32>
2953 // CHECK: or <4 x i32>
2954 // CHECK-LE: xor <4 x i32>
2955 // CHECK-LE: and <4 x i32>
2956 // CHECK-LE: and <4 x i32>
2957 // CHECK-LE: or <4 x i32>
2959 res_vui = vec_sel(vui, vui, vbi);
2960 // CHECK: xor <4 x i32>
2961 // CHECK: and <4 x i32>
2962 // CHECK: and <4 x i32>
2963 // CHECK: or <4 x i32>
2964 // CHECK-LE: xor <4 x i32>
2965 // CHECK-LE: and <4 x i32>
2966 // CHECK-LE: and <4 x i32>
2967 // CHECK-LE: or <4 x i32>
2969 res_vbi = vec_sel(vbi, vbi, vui);
2970 // CHECK: xor <4 x i32>
2971 // CHECK: and <4 x i32>
2972 // CHECK: and <4 x i32>
2973 // CHECK: or <4 x i32>
2974 // CHECK-LE: xor <4 x i32>
2975 // CHECK-LE: and <4 x i32>
2976 // CHECK-LE: and <4 x i32>
2977 // CHECK-LE: or <4 x i32>
2979 res_vbi = vec_sel(vbi, vbi, vbi);
2980 // CHECK: xor <4 x i32>
2981 // CHECK: and <4 x i32>
2982 // CHECK: and <4 x i32>
2983 // CHECK: or <4 x i32>
2984 // CHECK-LE: xor <4 x i32>
2985 // CHECK-LE: and <4 x i32>
2986 // CHECK-LE: and <4 x i32>
2987 // CHECK-LE: or <4 x i32>
2989 res_vf = vec_sel(vf, vf, vui);
2990 // CHECK: xor <4 x i32>
2991 // CHECK: and <4 x i32>
2992 // CHECK: and <4 x i32>
2993 // CHECK: or <4 x i32>
2994 // CHECK-LE: xor <4 x i32>
2995 // CHECK-LE: and <4 x i32>
2996 // CHECK-LE: and <4 x i32>
2997 // CHECK-LE: or <4 x i32>
2999 res_vf = vec_sel(vf, vf, vbi);
3000 // CHECK: xor <4 x i32>
3001 // CHECK: and <4 x i32>
3002 // CHECK: and <4 x i32>
3003 // CHECK: or <4 x i32>
3004 // CHECK-LE: xor <4 x i32>
3005 // CHECK-LE: and <4 x i32>
3006 // CHECK-LE: and <4 x i32>
3007 // CHECK-LE: or <4 x i32>
3009 res_vsc = vec_vsel(vsc, vsc, vuc);
3010 // CHECK: xor <16 x i8>
3011 // CHECK: and <16 x i8>
3012 // CHECK: and <16 x i8>
3013 // CHECK: or <16 x i8>
3014 // CHECK-LE: xor <16 x i8>
3015 // CHECK-LE: and <16 x i8>
3016 // CHECK-LE: and <16 x i8>
3017 // CHECK-LE: or <16 x i8>
3019 res_vsc = vec_vsel(vsc, vsc, vbc);
3020 // CHECK: xor <16 x i8>
3021 // CHECK: and <16 x i8>
3022 // CHECK: and <16 x i8>
3023 // CHECK: or <16 x i8>
3024 // CHECK-LE: xor <16 x i8>
3025 // CHECK-LE: and <16 x i8>
3026 // CHECK-LE: and <16 x i8>
3027 // CHECK-LE: or <16 x i8>
3029 res_vuc = vec_vsel(vuc, vuc, vuc);
3030 // CHECK: xor <16 x i8>
3031 // CHECK: and <16 x i8>
3032 // CHECK: and <16 x i8>
3033 // CHECK: or <16 x i8>
3034 // CHECK-LE: xor <16 x i8>
3035 // CHECK-LE: and <16 x i8>
3036 // CHECK-LE: and <16 x i8>
3037 // CHECK-LE: or <16 x i8>
3039 res_vuc = vec_vsel(vuc, vuc, vbc);
3040 // CHECK: xor <16 x i8>
3041 // CHECK: and <16 x i8>
3042 // CHECK: and <16 x i8>
3043 // CHECK: or <16 x i8>
3044 // CHECK-LE: xor <16 x i8>
3045 // CHECK-LE: and <16 x i8>
3046 // CHECK-LE: and <16 x i8>
3047 // CHECK-LE: or <16 x i8>
3049 res_vbc = vec_vsel(vbc, vbc, vuc);
3050 // CHECK: xor <16 x i8>
3051 // CHECK: and <16 x i8>
3052 // CHECK: and <16 x i8>
3053 // CHECK: or <16 x i8>
3054 // CHECK-LE: xor <16 x i8>
3055 // CHECK-LE: and <16 x i8>
3056 // CHECK-LE: and <16 x i8>
3057 // CHECK-LE: or <16 x i8>
3059 res_vbc = vec_vsel(vbc, vbc, vbc);
3060 // CHECK: xor <16 x i8>
3061 // CHECK: and <16 x i8>
3062 // CHECK: and <16 x i8>
3063 // CHECK: or <16 x i8>
3064 // CHECK-LE: xor <16 x i8>
3065 // CHECK-LE: and <16 x i8>
3066 // CHECK-LE: and <16 x i8>
3067 // CHECK-LE: or <16 x i8>
3069 res_vs = vec_vsel(vs, vs, vus);
3070 // CHECK: xor <8 x i16>
3071 // CHECK: and <8 x i16>
3072 // CHECK: and <8 x i16>
3073 // CHECK: or <8 x i16>
3074 // CHECK-LE: xor <8 x i16>
3075 // CHECK-LE: and <8 x i16>
3076 // CHECK-LE: and <8 x i16>
3077 // CHECK-LE: or <8 x i16>
3079 res_vs = vec_vsel(vs, vs, vbs);
3080 // CHECK: xor <8 x i16>
3081 // CHECK: and <8 x i16>
3082 // CHECK: and <8 x i16>
3083 // CHECK: or <8 x i16>
3084 // CHECK-LE: xor <8 x i16>
3085 // CHECK-LE: and <8 x i16>
3086 // CHECK-LE: and <8 x i16>
3087 // CHECK-LE: or <8 x i16>
3089 res_vus = vec_vsel(vus, vus, vus);
3090 // CHECK: xor <8 x i16>
3091 // CHECK: and <8 x i16>
3092 // CHECK: and <8 x i16>
3093 // CHECK: or <8 x i16>
3094 // CHECK-LE: xor <8 x i16>
3095 // CHECK-LE: and <8 x i16>
3096 // CHECK-LE: and <8 x i16>
3097 // CHECK-LE: or <8 x i16>
3099 res_vus = vec_vsel(vus, vus, vbs);
3100 // CHECK: xor <8 x i16>
3101 // CHECK: and <8 x i16>
3102 // CHECK: and <8 x i16>
3103 // CHECK: or <8 x i16>
3104 // CHECK-LE: xor <8 x i16>
3105 // CHECK-LE: and <8 x i16>
3106 // CHECK-LE: and <8 x i16>
3107 // CHECK-LE: or <8 x i16>
3109 res_vbs = vec_vsel(vbs, vbs, vus);
3110 // CHECK: xor <8 x i16>
3111 // CHECK: and <8 x i16>
3112 // CHECK: and <8 x i16>
3113 // CHECK: or <8 x i16>
3114 // CHECK-LE: xor <8 x i16>
3115 // CHECK-LE: and <8 x i16>
3116 // CHECK-LE: and <8 x i16>
3117 // CHECK-LE: or <8 x i16>
3119 res_vbs = vec_vsel(vbs, vbs, vbs);
3120 // CHECK: xor <8 x i16>
3121 // CHECK: and <8 x i16>
3122 // CHECK: and <8 x i16>
3123 // CHECK: or <8 x i16>
3124 // CHECK-LE: xor <8 x i16>
3125 // CHECK-LE: and <8 x i16>
3126 // CHECK-LE: and <8 x i16>
3127 // CHECK-LE: or <8 x i16>
3129 res_vi = vec_vsel(vi, vi, vui);
3130 // CHECK: xor <4 x i32>
3131 // CHECK: and <4 x i32>
3132 // CHECK: and <4 x i32>
3133 // CHECK: or <4 x i32>
3134 // CHECK-LE: xor <4 x i32>
3135 // CHECK-LE: and <4 x i32>
3136 // CHECK-LE: and <4 x i32>
3137 // CHECK-LE: or <4 x i32>
3139 res_vi = vec_vsel(vi, vi, vbi);
3140 // CHECK: xor <4 x i32>
3141 // CHECK: and <4 x i32>
3142 // CHECK: and <4 x i32>
3143 // CHECK: or <4 x i32>
3144 // CHECK-LE: xor <4 x i32>
3145 // CHECK-LE: and <4 x i32>
3146 // CHECK-LE: and <4 x i32>
3147 // CHECK-LE: or <4 x i32>
3149 res_vui = vec_vsel(vui, vui, vui);
3150 // CHECK: xor <4 x i32>
3151 // CHECK: and <4 x i32>
3152 // CHECK: and <4 x i32>
3153 // CHECK: or <4 x i32>
3154 // CHECK-LE: xor <4 x i32>
3155 // CHECK-LE: and <4 x i32>
3156 // CHECK-LE: and <4 x i32>
3157 // CHECK-LE: or <4 x i32>
3159 res_vui = vec_vsel(vui, vui, vbi);
3160 // CHECK: xor <4 x i32>
3161 // CHECK: and <4 x i32>
3162 // CHECK: and <4 x i32>
3163 // CHECK: or <4 x i32>
3164 // CHECK-LE: xor <4 x i32>
3165 // CHECK-LE: and <4 x i32>
3166 // CHECK-LE: and <4 x i32>
3167 // CHECK-LE: or <4 x i32>
3169 res_vbi = vec_vsel(vbi, vbi, vui);
3170 // CHECK: xor <4 x i32>
3171 // CHECK: and <4 x i32>
3172 // CHECK: and <4 x i32>
3173 // CHECK: or <4 x i32>
3174 // CHECK-LE: xor <4 x i32>
3175 // CHECK-LE: and <4 x i32>
3176 // CHECK-LE: and <4 x i32>
3177 // CHECK-LE: or <4 x i32>
3179 res_vbi = vec_vsel(vbi, vbi, vbi);
3180 // CHECK: xor <4 x i32>
3181 // CHECK: and <4 x i32>
3182 // CHECK: and <4 x i32>
3183 // CHECK: or <4 x i32>
3184 // CHECK-LE: xor <4 x i32>
3185 // CHECK-LE: and <4 x i32>
3186 // CHECK-LE: and <4 x i32>
3187 // CHECK-LE: or <4 x i32>
3189 res_vf = vec_vsel(vf, vf, vui);
3190 // CHECK: xor <4 x i32>
3191 // CHECK: and <4 x i32>
3192 // CHECK: and <4 x i32>
3193 // CHECK: or <4 x i32>
3194 // CHECK-LE: xor <4 x i32>
3195 // CHECK-LE: and <4 x i32>
3196 // CHECK-LE: and <4 x i32>
3197 // CHECK-LE: or <4 x i32>
3199 res_vf = vec_vsel(vf, vf, vbi);
3200 // CHECK: xor <4 x i32>
3201 // CHECK: and <4 x i32>
3202 // CHECK: and <4 x i32>
3203 // CHECK: or <4 x i32>
3204 // CHECK-LE: xor <4 x i32>
3205 // CHECK-LE: and <4 x i32>
3206 // CHECK-LE: and <4 x i32>
3207 // CHECK-LE: or <4 x i32>
3210 res_vsc = vec_sl(vsc, vuc);
3211 // CHECK: shl <16 x i8>
3212 // CHECK-LE: shl <16 x i8>
3214 res_vuc = vec_sl(vuc, vuc);
3215 // CHECK: shl <16 x i8>
3216 // CHECK-LE: shl <16 x i8>
3218 res_vs = vec_sl(vs, vus);
3219 // CHECK: shl <8 x i16>
3220 // CHECK-LE: shl <8 x i16>
3222 res_vus = vec_sl(vus, vus);
3223 // CHECK: shl <8 x i16>
3224 // CHECK-LE: shl <8 x i16>
3226 res_vi = vec_sl(vi, vui);
3227 // CHECK: shl <4 x i32>
3228 // CHECK-LE: shl <4 x i32>
3230 res_vui = vec_sl(vui, vui);
3231 // CHECK: shl <4 x i32>
3232 // CHECK-LE: shl <4 x i32>
3234 res_vsc = vec_vslb(vsc, vuc);
3235 // CHECK: shl <16 x i8>
3236 // CHECK-LE: shl <16 x i8>
3238 res_vuc = vec_vslb(vuc, vuc);
3239 // CHECK: shl <16 x i8>
3240 // CHECK-LE: shl <16 x i8>
3242 res_vs = vec_vslh(vs, vus);
3243 // CHECK: shl <8 x i16>
3244 // CHECK-LE: shl <8 x i16>
3246 res_vus = vec_vslh(vus, vus);
3247 // CHECK: shl <8 x i16>
3248 // CHECK-LE: shl <8 x i16>
3250 res_vi = vec_vslw(vi, vui);
3251 // CHECK: shl <4 x i32>
3252 // CHECK-LE: shl <4 x i32>
3254 res_vui = vec_vslw(vui, vui);
3255 // CHECK: shl <4 x i32>
3256 // CHECK-LE: shl <4 x i32>
3259 res_vsc = vec_sld(vsc, vsc, 0);
3260 // CHECK: @llvm.ppc.altivec.vperm
3261 // CHECK-LE: @llvm.ppc.altivec.vperm
3263 res_vuc = vec_sld(vuc, vuc, 0);
3264 // CHECK: @llvm.ppc.altivec.vperm
3265 // CHECK-LE: @llvm.ppc.altivec.vperm
3267 res_vs = vec_sld(vs, vs, 0);
3268 // CHECK: @llvm.ppc.altivec.vperm
3269 // CHECK-LE: @llvm.ppc.altivec.vperm
3271 res_vus = vec_sld(vus, vus, 0);
3272 // CHECK: @llvm.ppc.altivec.vperm
3273 // CHECK-LE: @llvm.ppc.altivec.vperm
3275 res_vp = vec_sld(vp, vp, 0);
3276 // CHECK: @llvm.ppc.altivec.vperm
3277 // CHECK-LE: @llvm.ppc.altivec.vperm
3279 res_vi = vec_sld(vi, vi, 0);
3280 // CHECK: @llvm.ppc.altivec.vperm
3281 // CHECK-LE: @llvm.ppc.altivec.vperm
3283 res_vui = vec_sld(vui, vui, 0);
3284 // CHECK: @llvm.ppc.altivec.vperm
3285 // CHECK-LE: @llvm.ppc.altivec.vperm
3287 res_vf = vec_sld(vf, vf, 0);
3288 // CHECK: @llvm.ppc.altivec.vperm
3289 // CHECK-LE: @llvm.ppc.altivec.vperm
3291 res_vsc = vec_vsldoi(vsc, vsc, 0);
3292 // CHECK: @llvm.ppc.altivec.vperm
3293 // CHECK-LE: @llvm.ppc.altivec.vperm
3295 res_vuc = vec_vsldoi(vuc, vuc, 0);
3296 // CHECK: @llvm.ppc.altivec.vperm
3297 // CHECK-LE: @llvm.ppc.altivec.vperm
3299 res_vs = vec_vsldoi(vs, vs, 0);
3300 // CHECK: @llvm.ppc.altivec.vperm
3301 // CHECK-LE: @llvm.ppc.altivec.vperm
3303 res_vus = vec_vsldoi(vus, vus, 0);
3304 // CHECK: @llvm.ppc.altivec.vperm
3305 // CHECK-LE: @llvm.ppc.altivec.vperm
3307 res_vp = vec_vsldoi(vp, vp, 0);
3308 // CHECK: @llvm.ppc.altivec.vperm
3309 // CHECK-LE: @llvm.ppc.altivec.vperm
3311 res_vi = vec_vsldoi(vi, vi, 0);
3312 // CHECK: @llvm.ppc.altivec.vperm
3313 // CHECK-LE: @llvm.ppc.altivec.vperm
3315 res_vui = vec_vsldoi(vui, vui, 0);
3316 // CHECK: @llvm.ppc.altivec.vperm
3317 // CHECK-LE: @llvm.ppc.altivec.vperm
3319 res_vf = vec_vsldoi(vf, vf, 0);
3320 // CHECK: @llvm.ppc.altivec.vperm
3321 // CHECK-LE: @llvm.ppc.altivec.vperm
3324 res_vsc = vec_sll(vsc, vuc);
3325 // CHECK: @llvm.ppc.altivec.vsl
3326 // CHECK-LE: @llvm.ppc.altivec.vsl
3328 res_vsc = vec_sll(vsc, vus);
3329 // CHECK: @llvm.ppc.altivec.vsl
3330 // CHECK-LE: @llvm.ppc.altivec.vsl
3332 res_vsc = vec_sll(vsc, vui);
3333 // CHECK: @llvm.ppc.altivec.vsl
3334 // CHECK-LE: @llvm.ppc.altivec.vsl
3336 res_vuc = vec_sll(vuc, vuc);
3337 // CHECK: @llvm.ppc.altivec.vsl
3338 // CHECK-LE: @llvm.ppc.altivec.vsl
3340 res_vuc = vec_sll(vuc, vus);
3341 // CHECK: @llvm.ppc.altivec.vsl
3342 // CHECK-LE: @llvm.ppc.altivec.vsl
3344 res_vuc = vec_sll(vuc, vui);
3345 // CHECK: @llvm.ppc.altivec.vsl
3346 // CHECK-LE: @llvm.ppc.altivec.vsl
3348 res_vbc = vec_sll(vbc, vuc);
3349 // CHECK: @llvm.ppc.altivec.vsl
3350 // CHECK-LE: @llvm.ppc.altivec.vsl
3352 res_vbc = vec_sll(vbc, vus);
3353 // CHECK: @llvm.ppc.altivec.vsl
3354 // CHECK-LE: @llvm.ppc.altivec.vsl
3356 res_vbc = vec_sll(vbc, vui);
3357 // CHECK: @llvm.ppc.altivec.vsl
3358 // CHECK-LE: @llvm.ppc.altivec.vsl
3360 res_vs = vec_sll(vs, vuc);
3361 // CHECK: @llvm.ppc.altivec.vsl
3362 // CHECK-LE: @llvm.ppc.altivec.vsl
3364 res_vs = vec_sll(vs, vus);
3365 // CHECK: @llvm.ppc.altivec.vsl
3366 // CHECK-LE: @llvm.ppc.altivec.vsl
3368 res_vs = vec_sll(vs, vui);
3369 // CHECK: @llvm.ppc.altivec.vsl
3370 // CHECK-LE: @llvm.ppc.altivec.vsl
3372 res_vus = vec_sll(vus, vuc);
3373 // CHECK: @llvm.ppc.altivec.vsl
3374 // CHECK-LE: @llvm.ppc.altivec.vsl
3376 res_vus = vec_sll(vus, vus);
3377 // CHECK: @llvm.ppc.altivec.vsl
3378 // CHECK-LE: @llvm.ppc.altivec.vsl
3380 res_vus = vec_sll(vus, vui);
3381 // CHECK: @llvm.ppc.altivec.vsl
3382 // CHECK-LE: @llvm.ppc.altivec.vsl
3384 res_vbs = vec_sll(vbs, vuc);
3385 // CHECK: @llvm.ppc.altivec.vsl
3386 // CHECK-LE: @llvm.ppc.altivec.vsl
3388 res_vbs = vec_sll(vbs, vus);
3389 // CHECK: @llvm.ppc.altivec.vsl
3390 // CHECK-LE: @llvm.ppc.altivec.vsl
3392 res_vbs = vec_sll(vbs, vui);
3393 // CHECK: @llvm.ppc.altivec.vsl
3394 // CHECK-LE: @llvm.ppc.altivec.vsl
3396 res_vp = vec_sll(vp, vuc);
3397 // CHECK: @llvm.ppc.altivec.vsl
3398 // CHECK-LE: @llvm.ppc.altivec.vsl
3400 res_vp = vec_sll(vp, vus);
3401 // CHECK: @llvm.ppc.altivec.vsl
3402 // CHECK-LE: @llvm.ppc.altivec.vsl
3404 res_vp = vec_sll(vp, vui);
3405 // CHECK: @llvm.ppc.altivec.vsl
3406 // CHECK-LE: @llvm.ppc.altivec.vsl
3408 res_vi = vec_sll(vi, vuc);
3409 // CHECK: @llvm.ppc.altivec.vsl
3410 // CHECK-LE: @llvm.ppc.altivec.vsl
3412 res_vi = vec_sll(vi, vus);
3413 // CHECK: @llvm.ppc.altivec.vsl
3414 // CHECK-LE: @llvm.ppc.altivec.vsl
3416 res_vi = vec_sll(vi, vui);
3417 // CHECK: @llvm.ppc.altivec.vsl
3418 // CHECK-LE: @llvm.ppc.altivec.vsl
3420 res_vui = vec_sll(vui, vuc);
3421 // CHECK: @llvm.ppc.altivec.vsl
3422 // CHECK-LE: @llvm.ppc.altivec.vsl
3424 res_vui = vec_sll(vui, vus);
3425 // CHECK: @llvm.ppc.altivec.vsl
3426 // CHECK-LE: @llvm.ppc.altivec.vsl
3428 res_vui = vec_sll(vui, vui);
3429 // CHECK: @llvm.ppc.altivec.vsl
3430 // CHECK-LE: @llvm.ppc.altivec.vsl
3432 res_vbi = vec_sll(vbi, vuc);
3433 // CHECK: @llvm.ppc.altivec.vsl
3434 // CHECK-LE: @llvm.ppc.altivec.vsl
3436 res_vbi = vec_sll(vbi, vus);
3437 // CHECK: @llvm.ppc.altivec.vsl
3438 // CHECK-LE: @llvm.ppc.altivec.vsl
3440 res_vbi = vec_sll(vbi, vui);
3441 // CHECK: @llvm.ppc.altivec.vsl
3442 // CHECK-LE: @llvm.ppc.altivec.vsl
3444 res_vsc = vec_vsl(vsc, vuc);
3445 // CHECK: @llvm.ppc.altivec.vsl
3446 // CHECK-LE: @llvm.ppc.altivec.vsl
3448 res_vsc = vec_vsl(vsc, vus);
3449 // CHECK: @llvm.ppc.altivec.vsl
3450 // CHECK-LE: @llvm.ppc.altivec.vsl
3452 res_vsc = vec_vsl(vsc, vui);
3453 // CHECK: @llvm.ppc.altivec.vsl
3454 // CHECK-LE: @llvm.ppc.altivec.vsl
3456 res_vuc = vec_vsl(vuc, vuc);
3457 // CHECK: @llvm.ppc.altivec.vsl
3458 // CHECK-LE: @llvm.ppc.altivec.vsl
3460 res_vuc = vec_vsl(vuc, vus);
3461 // CHECK: @llvm.ppc.altivec.vsl
3462 // CHECK-LE: @llvm.ppc.altivec.vsl
3464 res_vuc = vec_vsl(vuc, vui);
3465 // CHECK: @llvm.ppc.altivec.vsl
3466 // CHECK-LE: @llvm.ppc.altivec.vsl
3468 res_vbc = vec_vsl(vbc, vuc);
3469 // CHECK: @llvm.ppc.altivec.vsl
3470 // CHECK-LE: @llvm.ppc.altivec.vsl
3472 res_vbc = vec_vsl(vbc, vus);
3473 // CHECK: @llvm.ppc.altivec.vsl
3474 // CHECK-LE: @llvm.ppc.altivec.vsl
3476 res_vbc = vec_vsl(vbc, vui);
3477 // CHECK: @llvm.ppc.altivec.vsl
3478 // CHECK-LE: @llvm.ppc.altivec.vsl
3480 res_vs = vec_vsl(vs, vuc);
3481 // CHECK: @llvm.ppc.altivec.vsl
3482 // CHECK-LE: @llvm.ppc.altivec.vsl
3484 res_vs = vec_vsl(vs, vus);
3485 // CHECK: @llvm.ppc.altivec.vsl
3486 // CHECK-LE: @llvm.ppc.altivec.vsl
3488 res_vs = vec_vsl(vs, vui);
3489 // CHECK: @llvm.ppc.altivec.vsl
3490 // CHECK-LE: @llvm.ppc.altivec.vsl
3492 res_vus = vec_vsl(vus, vuc);
3493 // CHECK: @llvm.ppc.altivec.vsl
3494 // CHECK-LE: @llvm.ppc.altivec.vsl
3496 res_vus = vec_vsl(vus, vus);
3497 // CHECK: @llvm.ppc.altivec.vsl
3498 // CHECK-LE: @llvm.ppc.altivec.vsl
3500 res_vus = vec_vsl(vus, vui);
3501 // CHECK: @llvm.ppc.altivec.vsl
3502 // CHECK-LE: @llvm.ppc.altivec.vsl
3504 res_vbs = vec_vsl(vbs, vuc);
3505 // CHECK: @llvm.ppc.altivec.vsl
3506 // CHECK-LE: @llvm.ppc.altivec.vsl
3508 res_vbs = vec_vsl(vbs, vus);
3509 // CHECK: @llvm.ppc.altivec.vsl
3510 // CHECK-LE: @llvm.ppc.altivec.vsl
3512 res_vbs = vec_vsl(vbs, vui);
3513 // CHECK: @llvm.ppc.altivec.vsl
3514 // CHECK-LE: @llvm.ppc.altivec.vsl
3516 res_vp = vec_vsl(vp, vuc);
3517 // CHECK: @llvm.ppc.altivec.vsl
3518 // CHECK-LE: @llvm.ppc.altivec.vsl
3520 res_vp = vec_vsl(vp, vus);
3521 // CHECK: @llvm.ppc.altivec.vsl
3522 // CHECK-LE: @llvm.ppc.altivec.vsl
3524 res_vp = vec_vsl(vp, vui);
3525 // CHECK: @llvm.ppc.altivec.vsl
3526 // CHECK-LE: @llvm.ppc.altivec.vsl
3528 res_vi = vec_vsl(vi, vuc);
3529 // CHECK: @llvm.ppc.altivec.vsl
3530 // CHECK-LE: @llvm.ppc.altivec.vsl
3532 res_vi = vec_vsl(vi, vus);
3533 // CHECK: @llvm.ppc.altivec.vsl
3534 // CHECK-LE: @llvm.ppc.altivec.vsl
3536 res_vi = vec_vsl(vi, vui);
3537 // CHECK: @llvm.ppc.altivec.vsl
3538 // CHECK-LE: @llvm.ppc.altivec.vsl
3540 res_vui = vec_vsl(vui, vuc);
3541 // CHECK: @llvm.ppc.altivec.vsl
3542 // CHECK-LE: @llvm.ppc.altivec.vsl
3544 res_vui = vec_vsl(vui, vus);
3545 // CHECK: @llvm.ppc.altivec.vsl
3546 // CHECK-LE: @llvm.ppc.altivec.vsl
3548 res_vui = vec_vsl(vui, vui);
3549 // CHECK: @llvm.ppc.altivec.vsl
3550 // CHECK-LE: @llvm.ppc.altivec.vsl
3552 res_vbi = vec_vsl(vbi, vuc);
3553 // CHECK: @llvm.ppc.altivec.vsl
3554 // CHECK-LE: @llvm.ppc.altivec.vsl
3556 res_vbi = vec_vsl(vbi, vus);
3557 // CHECK: @llvm.ppc.altivec.vsl
3558 // CHECK-LE: @llvm.ppc.altivec.vsl
3560 res_vbi = vec_vsl(vbi, vui);
3561 // CHECK: @llvm.ppc.altivec.vsl
3562 // CHECK-LE: @llvm.ppc.altivec.vsl
3565 res_vsc = vec_slo(vsc, vsc);
3566 // CHECK: @llvm.ppc.altivec.vslo
3567 // CHECK-LE: @llvm.ppc.altivec.vslo
3569 res_vsc = vec_slo(vsc, vuc);
3570 // CHECK: @llvm.ppc.altivec.vslo
3571 // CHECK-LE: @llvm.ppc.altivec.vslo
3573 res_vuc = vec_slo(vuc, vsc);
3574 // CHECK: @llvm.ppc.altivec.vslo
3575 // CHECK-LE: @llvm.ppc.altivec.vslo
3577 res_vuc = vec_slo(vuc, vuc);
3578 // CHECK: @llvm.ppc.altivec.vslo
3579 // CHECK-LE: @llvm.ppc.altivec.vslo
3581 res_vs = vec_slo(vs, vsc);
3582 // CHECK: @llvm.ppc.altivec.vslo
3583 // CHECK-LE: @llvm.ppc.altivec.vslo
3585 res_vs = vec_slo(vs, vuc);
3586 // CHECK: @llvm.ppc.altivec.vslo
3587 // CHECK-LE: @llvm.ppc.altivec.vslo
3589 res_vus = vec_slo(vus, vsc);
3590 // CHECK: @llvm.ppc.altivec.vslo
3591 // CHECK-LE: @llvm.ppc.altivec.vslo
3593 res_vus = vec_slo(vus, vuc);
3594 // CHECK: @llvm.ppc.altivec.vslo
3595 // CHECK-LE: @llvm.ppc.altivec.vslo
3597 res_vp = vec_slo(vp, vsc);
3598 // CHECK: @llvm.ppc.altivec.vslo
3599 // CHECK-LE: @llvm.ppc.altivec.vslo
3601 res_vp = vec_slo(vp, vuc);
3602 // CHECK: @llvm.ppc.altivec.vslo
3603 // CHECK-LE: @llvm.ppc.altivec.vslo
3605 res_vi = vec_slo(vi, vsc);
3606 // CHECK: @llvm.ppc.altivec.vslo
3607 // CHECK-LE: @llvm.ppc.altivec.vslo
3609 res_vi = vec_slo(vi, vuc);
3610 // CHECK: @llvm.ppc.altivec.vslo
3611 // CHECK-LE: @llvm.ppc.altivec.vslo
3613 res_vui = vec_slo(vui, vsc);
3614 // CHECK: @llvm.ppc.altivec.vslo
3615 // CHECK-LE: @llvm.ppc.altivec.vslo
3617 res_vui = vec_slo(vui, vuc);
3618 // CHECK: @llvm.ppc.altivec.vslo
3619 // CHECK-LE: @llvm.ppc.altivec.vslo
3621 res_vf = vec_slo(vf, vsc);
3622 // CHECK: @llvm.ppc.altivec.vslo
3623 // CHECK-LE: @llvm.ppc.altivec.vslo
3625 res_vf = vec_slo(vf, vuc);
3626 // CHECK: @llvm.ppc.altivec.vslo
3627 // CHECK-LE: @llvm.ppc.altivec.vslo
3629 res_vsc = vec_vslo(vsc, vsc);
3630 // CHECK: @llvm.ppc.altivec.vslo
3631 // CHECK-LE: @llvm.ppc.altivec.vslo
3633 res_vsc = vec_vslo(vsc, vuc);
3634 // CHECK: @llvm.ppc.altivec.vslo
3635 // CHECK-LE: @llvm.ppc.altivec.vslo
3637 res_vuc = vec_vslo(vuc, vsc);
3638 // CHECK: @llvm.ppc.altivec.vslo
3639 // CHECK-LE: @llvm.ppc.altivec.vslo
3641 res_vuc = vec_vslo(vuc, vuc);
3642 // CHECK: @llvm.ppc.altivec.vslo
3643 // CHECK-LE: @llvm.ppc.altivec.vslo
3645 res_vs = vec_vslo(vs, vsc);
3646 // CHECK: @llvm.ppc.altivec.vslo
3647 // CHECK-LE: @llvm.ppc.altivec.vslo
3649 res_vs = vec_vslo(vs, vuc);
3650 // CHECK: @llvm.ppc.altivec.vslo
3651 // CHECK-LE: @llvm.ppc.altivec.vslo
3653 res_vus = vec_vslo(vus, vsc);
3654 // CHECK: @llvm.ppc.altivec.vslo
3655 // CHECK-LE: @llvm.ppc.altivec.vslo
3657 res_vus = vec_vslo(vus, vuc);
3658 // CHECK: @llvm.ppc.altivec.vslo
3659 // CHECK-LE: @llvm.ppc.altivec.vslo
3661 res_vp = vec_vslo(vp, vsc);
3662 // CHECK: @llvm.ppc.altivec.vslo
3663 // CHECK-LE: @llvm.ppc.altivec.vslo
3665 res_vp = vec_vslo(vp, vuc);
3666 // CHECK: @llvm.ppc.altivec.vslo
3667 // CHECK-LE: @llvm.ppc.altivec.vslo
3669 res_vi = vec_vslo(vi, vsc);
3670 // CHECK: @llvm.ppc.altivec.vslo
3671 // CHECK-LE: @llvm.ppc.altivec.vslo
3673 res_vi = vec_vslo(vi, vuc);
3674 // CHECK: @llvm.ppc.altivec.vslo
3675 // CHECK-LE: @llvm.ppc.altivec.vslo
3677 res_vui = vec_vslo(vui, vsc);
3678 // CHECK: @llvm.ppc.altivec.vslo
3679 // CHECK-LE: @llvm.ppc.altivec.vslo
3681 res_vui = vec_vslo(vui, vuc);
3682 // CHECK: @llvm.ppc.altivec.vslo
3683 // CHECK-LE: @llvm.ppc.altivec.vslo
3685 res_vf = vec_vslo(vf, vsc);
3686 // CHECK: @llvm.ppc.altivec.vslo
3687 // CHECK-LE: @llvm.ppc.altivec.vslo
3689 res_vf = vec_vslo(vf, vuc);
3690 // CHECK: @llvm.ppc.altivec.vslo
3691 // CHECK-LE: @llvm.ppc.altivec.vslo
3694 res_vsc = vec_splat(vsc, 0);
3695 // CHECK: @llvm.ppc.altivec.vperm
3696 // CHECK-LE: @llvm.ppc.altivec.vperm
3698 res_vuc = vec_splat(vuc, 0);
3699 // CHECK: @llvm.ppc.altivec.vperm
3700 // CHECK-LE: @llvm.ppc.altivec.vperm
3702 res_vbc = vec_splat(vbc, 0);
3703 // CHECK: @llvm.ppc.altivec.vperm
3704 // CHECK-LE: @llvm.ppc.altivec.vperm
3706 res_vs = vec_splat(vs, 0);
3707 // CHECK: @llvm.ppc.altivec.vperm
3708 // CHECK-LE: @llvm.ppc.altivec.vperm
3710 res_vus = vec_splat(vus, 0);
3711 // CHECK: @llvm.ppc.altivec.vperm
3712 // CHECK-LE: @llvm.ppc.altivec.vperm
3714 res_vbs = vec_splat(vbs, 0);
3715 // CHECK: @llvm.ppc.altivec.vperm
3716 // CHECK-LE: @llvm.ppc.altivec.vperm
3718 res_vp = vec_splat(vp, 0);
3719 // CHECK: @llvm.ppc.altivec.vperm
3720 // CHECK-LE: @llvm.ppc.altivec.vperm
3722 res_vi = vec_splat(vi, 0);
3723 // CHECK: @llvm.ppc.altivec.vperm
3724 // CHECK-LE: @llvm.ppc.altivec.vperm
3726 res_vui = vec_splat(vui, 0);
3727 // CHECK: @llvm.ppc.altivec.vperm
3728 // CHECK-LE: @llvm.ppc.altivec.vperm
3730 res_vbi = vec_splat(vbi, 0);
3731 // CHECK: @llvm.ppc.altivec.vperm
3732 // CHECK-LE: @llvm.ppc.altivec.vperm
3734 res_vf = vec_splat(vf, 0);
3735 // CHECK: @llvm.ppc.altivec.vperm
3736 // CHECK-LE: @llvm.ppc.altivec.vperm
3738 res_vsc = vec_vspltb(vsc, 0);
3739 // CHECK: @llvm.ppc.altivec.vperm
3740 // CHECK-LE: @llvm.ppc.altivec.vperm
3742 res_vuc = vec_vspltb(vuc, 0);
3743 // CHECK: @llvm.ppc.altivec.vperm
3744 // CHECK-LE: @llvm.ppc.altivec.vperm
3746 res_vbc = vec_vspltb(vbc, 0);
3747 // CHECK: @llvm.ppc.altivec.vperm
3748 // CHECK-LE: @llvm.ppc.altivec.vperm
3750 res_vs = vec_vsplth(vs, 0);
3751 // CHECK: @llvm.ppc.altivec.vperm
3752 // CHECK-LE: @llvm.ppc.altivec.vperm
3754 res_vus = vec_vsplth(vus, 0);
3755 // CHECK: @llvm.ppc.altivec.vperm
3756 // CHECK-LE: @llvm.ppc.altivec.vperm
3758 res_vbs = vec_vsplth(vbs, 0);
3759 // CHECK: @llvm.ppc.altivec.vperm
3760 // CHECK-LE: @llvm.ppc.altivec.vperm
3762 res_vp = vec_vsplth(vp, 0);
3763 // CHECK: @llvm.ppc.altivec.vperm
3764 // CHECK-LE: @llvm.ppc.altivec.vperm
3766 res_vi = vec_vspltw(vi, 0);
3767 // CHECK: @llvm.ppc.altivec.vperm
3768 // CHECK-LE: @llvm.ppc.altivec.vperm
3770 res_vui = vec_vspltw(vui, 0);
3771 // CHECK: @llvm.ppc.altivec.vperm
3772 // CHECK-LE: @llvm.ppc.altivec.vperm
3774 res_vbi = vec_vspltw(vbi, 0);
3775 // CHECK: @llvm.ppc.altivec.vperm
3776 // CHECK-LE: @llvm.ppc.altivec.vperm
3778 res_vf = vec_vspltw(vf, 0);
3779 // CHECK: @llvm.ppc.altivec.vperm
3780 // CHECK-LE: @llvm.ppc.altivec.vperm
3783 res_vsc = vec_splat_s8(0x09); // TODO: add check
3784 res_vsc = vec_vspltisb(0x09); // TODO: add check
3787 res_vs = vec_splat_s16(0x09); // TODO: add check
3788 res_vs = vec_vspltish(0x09); // TODO: add check
3791 res_vi = vec_splat_s32(0x09); // TODO: add check
3792 res_vi = vec_vspltisw(0x09); // TODO: add check
3795 res_vuc = vec_splat_u8(0x09); // TODO: add check
3798 res_vus = vec_splat_u16(0x09); // TODO: add check
3801 res_vui = vec_splat_u32(0x09); // TODO: add check
3804 res_vsc = vec_sr(vsc, vuc);
3805 // CHECK: shr <16 x i8>
3806 // CHECK-LE: shr <16 x i8>
3808 res_vuc = vec_sr(vuc, vuc);
3809 // CHECK: shr <16 x i8>
3810 // CHECK-LE: shr <16 x i8>
3812 res_vs = vec_sr(vs, vus);
3813 // CHECK: shr <8 x i16>
3814 // CHECK-LE: shr <8 x i16>
3816 res_vus = vec_sr(vus, vus);
3817 // CHECK: shr <8 x i16>
3818 // CHECK-LE: shr <8 x i16>
3820 res_vi = vec_sr(vi, vui);
3821 // CHECK: shr <4 x i32>
3822 // CHECK-LE: shr <4 x i32>
3824 res_vui = vec_sr(vui, vui);
3825 // CHECK: shr <4 x i32>
3826 // CHECK-LE: shr <4 x i32>
3828 res_vsc = vec_vsrb(vsc, vuc);
3829 // CHECK: shr <16 x i8>
3830 // CHECK-LE: shr <16 x i8>
3832 res_vuc = vec_vsrb(vuc, vuc);
3833 // CHECK: shr <16 x i8>
3834 // CHECK-LE: shr <16 x i8>
3836 res_vs = vec_vsrh(vs, vus);
3837 // CHECK: shr <8 x i16>
3838 // CHECK-LE: shr <8 x i16>
3840 res_vus = vec_vsrh(vus, vus);
3841 // CHECK: shr <8 x i16>
3842 // CHECK-LE: shr <8 x i16>
3844 res_vi = vec_vsrw(vi, vui);
3845 // CHECK: shr <4 x i32>
3846 // CHECK-LE: shr <4 x i32>
3848 res_vui = vec_vsrw(vui, vui);
3849 // CHECK: shr <4 x i32>
3850 // CHECK-LE: shr <4 x i32>
3853 res_vsc = vec_sra(vsc, vuc);
3854 // CHECK: @llvm.ppc.altivec.vsrab
3855 // CHECK-LE: @llvm.ppc.altivec.vsrab
3857 res_vuc = vec_sra(vuc, vuc);
3858 // CHECK: @llvm.ppc.altivec.vsrab
3859 // CHECK-LE: @llvm.ppc.altivec.vsrab
3861 res_vs = vec_sra(vs, vus);
3862 // CHECK: @llvm.ppc.altivec.vsrah
3863 // CHECK-LE: @llvm.ppc.altivec.vsrah
3865 res_vus = vec_sra(vus, vus);
3866 // CHECK: @llvm.ppc.altivec.vsrah
3867 // CHECK-LE: @llvm.ppc.altivec.vsrah
3869 res_vi = vec_sra(vi, vui);
3870 // CHECK: @llvm.ppc.altivec.vsraw
3871 // CHECK-LE: @llvm.ppc.altivec.vsraw
3873 res_vui = vec_sra(vui, vui);
3874 // CHECK: @llvm.ppc.altivec.vsraw
3875 // CHECK-LE: @llvm.ppc.altivec.vsraw
3877 res_vsc = vec_vsrab(vsc, vuc);
3878 // CHECK: @llvm.ppc.altivec.vsrab
3879 // CHECK-LE: @llvm.ppc.altivec.vsrab
3881 res_vuc = vec_vsrab(vuc, vuc);
3882 // CHECK: @llvm.ppc.altivec.vsrab
3883 // CHECK-LE: @llvm.ppc.altivec.vsrab
3885 res_vs = vec_vsrah(vs, vus);
3886 // CHECK: @llvm.ppc.altivec.vsrah
3887 // CHECK-LE: @llvm.ppc.altivec.vsrah
3889 res_vus = vec_vsrah(vus, vus);
3890 // CHECK: @llvm.ppc.altivec.vsrah
3891 // CHECK-LE: @llvm.ppc.altivec.vsrah
3893 res_vi = vec_vsraw(vi, vui);
3894 // CHECK: @llvm.ppc.altivec.vsraw
3895 // CHECK-LE: @llvm.ppc.altivec.vsraw
3897 res_vui = vec_vsraw(vui, vui);
3898 // CHECK: @llvm.ppc.altivec.vsraw
3899 // CHECK-LE: @llvm.ppc.altivec.vsraw
3902 res_vsc = vec_srl(vsc, vuc);
3903 // CHECK: @llvm.ppc.altivec.vsr
3904 // CHECK-LE: @llvm.ppc.altivec.vsr
3906 res_vsc = vec_srl(vsc, vus);
3907 // CHECK: @llvm.ppc.altivec.vsr
3908 // CHECK-LE: @llvm.ppc.altivec.vsr
3910 res_vsc = vec_srl(vsc, vui);
3911 // CHECK: @llvm.ppc.altivec.vsr
3912 // CHECK-LE: @llvm.ppc.altivec.vsr
3914 res_vuc = vec_srl(vuc, vuc);
3915 // CHECK: @llvm.ppc.altivec.vsr
3916 // CHECK-LE: @llvm.ppc.altivec.vsr
3918 res_vuc = vec_srl(vuc, vus);
3919 // CHECK: @llvm.ppc.altivec.vsr
3920 // CHECK-LE: @llvm.ppc.altivec.vsr
3922 res_vuc = vec_srl(vuc, vui);
3923 // CHECK: @llvm.ppc.altivec.vsr
3924 // CHECK-LE: @llvm.ppc.altivec.vsr
3926 res_vbc = vec_srl(vbc, vuc);
3927 // CHECK: @llvm.ppc.altivec.vsr
3928 // CHECK-LE: @llvm.ppc.altivec.vsr
3930 res_vbc = vec_srl(vbc, vus);
3931 // CHECK: @llvm.ppc.altivec.vsr
3932 // CHECK-LE: @llvm.ppc.altivec.vsr
3934 res_vbc = vec_srl(vbc, vui);
3935 // CHECK: @llvm.ppc.altivec.vsr
3936 // CHECK-LE: @llvm.ppc.altivec.vsr
3938 res_vs = vec_srl(vs, vuc);
3939 // CHECK: @llvm.ppc.altivec.vsr
3940 // CHECK-LE: @llvm.ppc.altivec.vsr
3942 res_vs = vec_srl(vs, vus);
3943 // CHECK: @llvm.ppc.altivec.vsr
3944 // CHECK-LE: @llvm.ppc.altivec.vsr
3946 res_vs = vec_srl(vs, vui);
3947 // CHECK: @llvm.ppc.altivec.vsr
3948 // CHECK-LE: @llvm.ppc.altivec.vsr
3950 res_vus = vec_srl(vus, vuc);
3951 // CHECK: @llvm.ppc.altivec.vsr
3952 // CHECK-LE: @llvm.ppc.altivec.vsr
3954 res_vus = vec_srl(vus, vus);
3955 // CHECK: @llvm.ppc.altivec.vsr
3956 // CHECK-LE: @llvm.ppc.altivec.vsr
3958 res_vus = vec_srl(vus, vui);
3959 // CHECK: @llvm.ppc.altivec.vsr
3960 // CHECK-LE: @llvm.ppc.altivec.vsr
3962 res_vbs = vec_srl(vbs, vuc);
3963 // CHECK: @llvm.ppc.altivec.vsr
3964 // CHECK-LE: @llvm.ppc.altivec.vsr
3966 res_vbs = vec_srl(vbs, vus);
3967 // CHECK: @llvm.ppc.altivec.vsr
3968 // CHECK-LE: @llvm.ppc.altivec.vsr
3970 res_vbs = vec_srl(vbs, vui);
3971 // CHECK: @llvm.ppc.altivec.vsr
3972 // CHECK-LE: @llvm.ppc.altivec.vsr
3974 res_vp = vec_srl(vp, vuc);
3975 // CHECK: @llvm.ppc.altivec.vsr
3976 // CHECK-LE: @llvm.ppc.altivec.vsr
3978 res_vp = vec_srl(vp, vus);
3979 // CHECK: @llvm.ppc.altivec.vsr
3980 // CHECK-LE: @llvm.ppc.altivec.vsr
3982 res_vp = vec_srl(vp, vui);
3983 // CHECK: @llvm.ppc.altivec.vsr
3984 // CHECK-LE: @llvm.ppc.altivec.vsr
3986 res_vi = vec_srl(vi, vuc);
3987 // CHECK: @llvm.ppc.altivec.vsr
3988 // CHECK-LE: @llvm.ppc.altivec.vsr
3990 res_vi = vec_srl(vi, vus);
3991 // CHECK: @llvm.ppc.altivec.vsr
3992 // CHECK-LE: @llvm.ppc.altivec.vsr
3994 res_vi = vec_srl(vi, vui);
3995 // CHECK: @llvm.ppc.altivec.vsr
3996 // CHECK-LE: @llvm.ppc.altivec.vsr
3998 res_vui = vec_srl(vui, vuc);
3999 // CHECK: @llvm.ppc.altivec.vsr
4000 // CHECK-LE: @llvm.ppc.altivec.vsr
4002 res_vui = vec_srl(vui, vus);
4003 // CHECK: @llvm.ppc.altivec.vsr
4004 // CHECK-LE: @llvm.ppc.altivec.vsr
4006 res_vui = vec_srl(vui, vui);
4007 // CHECK: @llvm.ppc.altivec.vsr
4008 // CHECK-LE: @llvm.ppc.altivec.vsr
4010 res_vbi = vec_srl(vbi, vuc);
4011 // CHECK: @llvm.ppc.altivec.vsr
4012 // CHECK-LE: @llvm.ppc.altivec.vsr
4014 res_vbi = vec_srl(vbi, vus);
4015 // CHECK: @llvm.ppc.altivec.vsr
4016 // CHECK-LE: @llvm.ppc.altivec.vsr
4018 res_vbi = vec_srl(vbi, vui);
4019 // CHECK: @llvm.ppc.altivec.vsr
4020 // CHECK-LE: @llvm.ppc.altivec.vsr
4022 res_vsc = vec_vsr(vsc, vuc);
4023 // CHECK: @llvm.ppc.altivec.vsr
4024 // CHECK-LE: @llvm.ppc.altivec.vsr
4026 res_vsc = vec_vsr(vsc, vus);
4027 // CHECK: @llvm.ppc.altivec.vsr
4028 // CHECK-LE: @llvm.ppc.altivec.vsr
4030 res_vsc = vec_vsr(vsc, vui);
4031 // CHECK: @llvm.ppc.altivec.vsr
4032 // CHECK-LE: @llvm.ppc.altivec.vsr
4034 res_vuc = vec_vsr(vuc, vuc);
4035 // CHECK: @llvm.ppc.altivec.vsr
4036 // CHECK-LE: @llvm.ppc.altivec.vsr
4038 res_vuc = vec_vsr(vuc, vus);
4039 // CHECK: @llvm.ppc.altivec.vsr
4040 // CHECK-LE: @llvm.ppc.altivec.vsr
4042 res_vuc = vec_vsr(vuc, vui);
4043 // CHECK: @llvm.ppc.altivec.vsr
4044 // CHECK-LE: @llvm.ppc.altivec.vsr
4046 res_vbc = vec_vsr(vbc, vuc);
4047 // CHECK: @llvm.ppc.altivec.vsr
4048 // CHECK-LE: @llvm.ppc.altivec.vsr
4050 res_vbc = vec_vsr(vbc, vus);
4051 // CHECK: @llvm.ppc.altivec.vsr
4052 // CHECK-LE: @llvm.ppc.altivec.vsr
4054 res_vbc = vec_vsr(vbc, vui);
4055 // CHECK: @llvm.ppc.altivec.vsr
4056 // CHECK-LE: @llvm.ppc.altivec.vsr
4058 res_vs = vec_vsr(vs, vuc);
4059 // CHECK: @llvm.ppc.altivec.vsr
4060 // CHECK-LE: @llvm.ppc.altivec.vsr
4062 res_vs = vec_vsr(vs, vus);
4063 // CHECK: @llvm.ppc.altivec.vsr
4064 // CHECK-LE: @llvm.ppc.altivec.vsr
4066 res_vs = vec_vsr(vs, vui);
4067 // CHECK: @llvm.ppc.altivec.vsr
4068 // CHECK-LE: @llvm.ppc.altivec.vsr
4070 res_vus = vec_vsr(vus, vuc);
4071 // CHECK: @llvm.ppc.altivec.vsr
4072 // CHECK-LE: @llvm.ppc.altivec.vsr
4074 res_vus = vec_vsr(vus, vus);
4075 // CHECK: @llvm.ppc.altivec.vsr
4076 // CHECK-LE: @llvm.ppc.altivec.vsr
4078 res_vus = vec_vsr(vus, vui);
4079 // CHECK: @llvm.ppc.altivec.vsr
4080 // CHECK-LE: @llvm.ppc.altivec.vsr
4082 res_vbs = vec_vsr(vbs, vuc);
4083 // CHECK: @llvm.ppc.altivec.vsr
4084 // CHECK-LE: @llvm.ppc.altivec.vsr
4086 res_vbs = vec_vsr(vbs, vus);
4087 // CHECK: @llvm.ppc.altivec.vsr
4088 // CHECK-LE: @llvm.ppc.altivec.vsr
4090 res_vbs = vec_vsr(vbs, vui);
4091 // CHECK: @llvm.ppc.altivec.vsr
4092 // CHECK-LE: @llvm.ppc.altivec.vsr
4094 res_vp = vec_vsr(vp, vuc);
4095 // CHECK: @llvm.ppc.altivec.vsr
4096 // CHECK-LE: @llvm.ppc.altivec.vsr
4098 res_vp = vec_vsr(vp, vus);
4099 // CHECK: @llvm.ppc.altivec.vsr
4100 // CHECK-LE: @llvm.ppc.altivec.vsr
4102 res_vp = vec_vsr(vp, vui);
4103 // CHECK: @llvm.ppc.altivec.vsr
4104 // CHECK-LE: @llvm.ppc.altivec.vsr
4106 res_vi = vec_vsr(vi, vuc);
4107 // CHECK: @llvm.ppc.altivec.vsr
4108 // CHECK-LE: @llvm.ppc.altivec.vsr
4110 res_vi = vec_vsr(vi, vus);
4111 // CHECK: @llvm.ppc.altivec.vsr
4112 // CHECK-LE: @llvm.ppc.altivec.vsr
4114 res_vi = vec_vsr(vi, vui);
4115 // CHECK: @llvm.ppc.altivec.vsr
4116 // CHECK-LE: @llvm.ppc.altivec.vsr
4118 res_vui = vec_vsr(vui, vuc);
4119 // CHECK: @llvm.ppc.altivec.vsr
4120 // CHECK-LE: @llvm.ppc.altivec.vsr
4122 res_vui = vec_vsr(vui, vus);
4123 // CHECK: @llvm.ppc.altivec.vsr
4124 // CHECK-LE: @llvm.ppc.altivec.vsr
4126 res_vui = vec_vsr(vui, vui);
4127 // CHECK: @llvm.ppc.altivec.vsr
4128 // CHECK-LE: @llvm.ppc.altivec.vsr
4130 res_vbi = vec_vsr(vbi, vuc);
4131 // CHECK: @llvm.ppc.altivec.vsr
4132 // CHECK-LE: @llvm.ppc.altivec.vsr
4134 res_vbi = vec_vsr(vbi, vus);
4135 // CHECK: @llvm.ppc.altivec.vsr
4136 // CHECK-LE: @llvm.ppc.altivec.vsr
4138 res_vbi = vec_vsr(vbi, vui);
4139 // CHECK: @llvm.ppc.altivec.vsr
4140 // CHECK-LE: @llvm.ppc.altivec.vsr
4143 res_vsc = vec_sro(vsc, vsc);
4144 // CHECK: @llvm.ppc.altivec.vsro
4145 // CHECK-LE: @llvm.ppc.altivec.vsro
4147 res_vsc = vec_sro(vsc, vuc);
4148 // CHECK: @llvm.ppc.altivec.vsro
4149 // CHECK-LE: @llvm.ppc.altivec.vsro
4151 res_vuc = vec_sro(vuc, vsc);
4152 // CHECK: @llvm.ppc.altivec.vsro
4153 // CHECK-LE: @llvm.ppc.altivec.vsro
4155 res_vuc = vec_sro(vuc, vuc);
4156 // CHECK: @llvm.ppc.altivec.vsro
4157 // CHECK-LE: @llvm.ppc.altivec.vsro
4159 res_vs = vec_sro(vs, vsc);
4160 // CHECK: @llvm.ppc.altivec.vsro
4161 // CHECK-LE: @llvm.ppc.altivec.vsro
4163 res_vs = vec_sro(vs, vuc);
4164 // CHECK: @llvm.ppc.altivec.vsro
4165 // CHECK-LE: @llvm.ppc.altivec.vsro
4167 res_vus = vec_sro(vus, vsc);
4168 // CHECK: @llvm.ppc.altivec.vsro
4169 // CHECK-LE: @llvm.ppc.altivec.vsro
4171 res_vus = vec_sro(vus, vuc);
4172 // CHECK: @llvm.ppc.altivec.vsro
4173 // CHECK-LE: @llvm.ppc.altivec.vsro
4175 res_vp = vec_sro(vp, vsc);
4176 // CHECK: @llvm.ppc.altivec.vsro
4177 // CHECK-LE: @llvm.ppc.altivec.vsro
4179 res_vp = vec_sro(vp, vuc);
4180 // CHECK: @llvm.ppc.altivec.vsro
4181 // CHECK-LE: @llvm.ppc.altivec.vsro
4183 res_vi = vec_sro(vi, vsc);
4184 // CHECK: @llvm.ppc.altivec.vsro
4185 // CHECK-LE: @llvm.ppc.altivec.vsro
4187 res_vi = vec_sro(vi, vuc);
4188 // CHECK: @llvm.ppc.altivec.vsro
4189 // CHECK-LE: @llvm.ppc.altivec.vsro
4191 res_vui = vec_sro(vui, vsc);
4192 // CHECK: @llvm.ppc.altivec.vsro
4193 // CHECK-LE: @llvm.ppc.altivec.vsro
4195 res_vui = vec_sro(vui, vuc);
4196 // CHECK: @llvm.ppc.altivec.vsro
4197 // CHECK-LE: @llvm.ppc.altivec.vsro
4199 res_vf = vec_sro(vf, vsc);
4200 // CHECK: @llvm.ppc.altivec.vsro
4201 // CHECK-LE: @llvm.ppc.altivec.vsro
4203 res_vf = vec_sro(vf, vuc);
4204 // CHECK: @llvm.ppc.altivec.vsro
4205 // CHECK-LE: @llvm.ppc.altivec.vsro
4207 res_vsc = vec_vsro(vsc, vsc);
4208 // CHECK: @llvm.ppc.altivec.vsro
4209 // CHECK-LE: @llvm.ppc.altivec.vsro
4211 res_vsc = vec_vsro(vsc, vuc);
4212 // CHECK: @llvm.ppc.altivec.vsro
4213 // CHECK-LE: @llvm.ppc.altivec.vsro
4215 res_vuc = vec_vsro(vuc, vsc);
4216 // CHECK: @llvm.ppc.altivec.vsro
4217 // CHECK-LE: @llvm.ppc.altivec.vsro
4219 res_vuc = vec_vsro(vuc, vuc);
4220 // CHECK: @llvm.ppc.altivec.vsro
4221 // CHECK-LE: @llvm.ppc.altivec.vsro
4223 res_vs = vec_vsro(vs, vsc);
4224 // CHECK: @llvm.ppc.altivec.vsro
4225 // CHECK-LE: @llvm.ppc.altivec.vsro
4227 res_vs = vec_vsro(vs, vuc);
4228 // CHECK: @llvm.ppc.altivec.vsro
4229 // CHECK-LE: @llvm.ppc.altivec.vsro
4231 res_vus = vec_vsro(vus, vsc);
4232 // CHECK: @llvm.ppc.altivec.vsro
4233 // CHECK-LE: @llvm.ppc.altivec.vsro
4235 res_vus = vec_vsro(vus, vuc);
4236 // CHECK: @llvm.ppc.altivec.vsro
4237 // CHECK-LE: @llvm.ppc.altivec.vsro
4239 res_vp = vec_vsro(vp, vsc);
4240 // CHECK: @llvm.ppc.altivec.vsro
4241 // CHECK-LE: @llvm.ppc.altivec.vsro
4243 res_vp = vec_vsro(vp, vuc);
4244 // CHECK: @llvm.ppc.altivec.vsro
4245 // CHECK-LE: @llvm.ppc.altivec.vsro
4247 res_vi = vec_vsro(vi, vsc);
4248 // CHECK: @llvm.ppc.altivec.vsro
4249 // CHECK-LE: @llvm.ppc.altivec.vsro
4251 res_vi = vec_vsro(vi, vuc);
4252 // CHECK: @llvm.ppc.altivec.vsro
4253 // CHECK-LE: @llvm.ppc.altivec.vsro
4255 res_vui = vec_vsro(vui, vsc);
4256 // CHECK: @llvm.ppc.altivec.vsro
4257 // CHECK-LE: @llvm.ppc.altivec.vsro
4259 res_vui = vec_vsro(vui, vuc);
4260 // CHECK: @llvm.ppc.altivec.vsro
4261 // CHECK-LE: @llvm.ppc.altivec.vsro
4263 res_vf = vec_vsro(vf, vsc);
4264 // CHECK: @llvm.ppc.altivec.vsro
4265 // CHECK-LE: @llvm.ppc.altivec.vsro
4267 res_vf = vec_vsro(vf, vuc);
4268 // CHECK: @llvm.ppc.altivec.vsro
4269 // CHECK-LE: @llvm.ppc.altivec.vsro
4272 vec_st(vsc, 0, &vsc);
4273 // CHECK: @llvm.ppc.altivec.stvx
4274 // CHECK-LE: @llvm.ppc.altivec.stvx
4276 vec_st(vsc, 0, ¶m_sc);
4277 // CHECK: @llvm.ppc.altivec.stvx
4278 // CHECK-LE: @llvm.ppc.altivec.stvx
4280 vec_st(vuc, 0, &vuc);
4281 // CHECK: @llvm.ppc.altivec.stvx
4282 // CHECK-LE: @llvm.ppc.altivec.stvx
4284 vec_st(vuc, 0, ¶m_uc);
4285 // CHECK: @llvm.ppc.altivec.stvx
4286 // CHECK-LE: @llvm.ppc.altivec.stvx
4288 vec_st(vbc, 0, ¶m_uc);
4289 // CHECK: @llvm.ppc.altivec.stvx
4290 // CHECK-LE: @llvm.ppc.altivec.stvx
4292 vec_st(vbc, 0, ¶m_uc);
4293 // CHECK: @llvm.ppc.altivec.stvx
4294 // CHECK-LE: @llvm.ppc.altivec.stvx
4296 vec_st(vbc, 0, &vbc);
4297 // CHECK: @llvm.ppc.altivec.stvx
4298 // CHECK-LE: @llvm.ppc.altivec.stvx
4301 // CHECK: @llvm.ppc.altivec.stvx
4302 // CHECK-LE: @llvm.ppc.altivec.stvx
4304 vec_st(vs, 0, ¶m_s);
4305 // CHECK: @llvm.ppc.altivec.stvx
4306 // CHECK-LE: @llvm.ppc.altivec.stvx
4308 vec_st(vus, 0, &vus);
4309 // CHECK: @llvm.ppc.altivec.stvx
4310 // CHECK-LE: @llvm.ppc.altivec.stvx
4312 vec_st(vus, 0, ¶m_us);
4313 // CHECK: @llvm.ppc.altivec.stvx
4314 // CHECK-LE: @llvm.ppc.altivec.stvx
4316 vec_st(vbs, 0, ¶m_s);
4317 // CHECK: @llvm.ppc.altivec.stvx
4318 // CHECK-LE: @llvm.ppc.altivec.stvx
4320 vec_st(vbs, 0, ¶m_us);
4321 // CHECK: @llvm.ppc.altivec.stvx
4322 // CHECK-LE: @llvm.ppc.altivec.stvx
4324 vec_st(vbs, 0, &vbs);
4325 // CHECK: @llvm.ppc.altivec.stvx
4326 // CHECK-LE: @llvm.ppc.altivec.stvx
4328 vec_st(vp, 0, ¶m_s);
4329 // CHECK: @llvm.ppc.altivec.stvx
4330 // CHECK-LE: @llvm.ppc.altivec.stvx
4332 vec_st(vp, 0, ¶m_us);
4333 // CHECK: @llvm.ppc.altivec.stvx
4334 // CHECK-LE: @llvm.ppc.altivec.stvx
4337 // CHECK: @llvm.ppc.altivec.stvx
4338 // CHECK-LE: @llvm.ppc.altivec.stvx
4341 // CHECK: @llvm.ppc.altivec.stvx
4342 // CHECK-LE: @llvm.ppc.altivec.stvx
4344 vec_st(vi, 0, ¶m_i);
4345 // CHECK: @llvm.ppc.altivec.stvx
4346 // CHECK-LE: @llvm.ppc.altivec.stvx
4348 vec_st(vui, 0, &vui);
4349 // CHECK: @llvm.ppc.altivec.stvx
4350 // CHECK-LE: @llvm.ppc.altivec.stvx
4352 vec_st(vui, 0, ¶m_ui);
4353 // CHECK: @llvm.ppc.altivec.stvx
4354 // CHECK-LE: @llvm.ppc.altivec.stvx
4356 vec_st(vbi, 0, ¶m_i);
4357 // CHECK: @llvm.ppc.altivec.stvx
4358 // CHECK-LE: @llvm.ppc.altivec.stvx
4360 vec_st(vbi, 0, ¶m_ui);
4361 // CHECK: @llvm.ppc.altivec.stvx
4362 // CHECK-LE: @llvm.ppc.altivec.stvx
4364 vec_st(vbi, 0, &vbi);
4365 // CHECK: @llvm.ppc.altivec.stvx
4366 // CHECK-LE: @llvm.ppc.altivec.stvx
4369 // CHECK: @llvm.ppc.altivec.stvx
4370 // CHECK-LE: @llvm.ppc.altivec.stvx
4372 vec_st(vf, 0, ¶m_f);
4373 // CHECK: @llvm.ppc.altivec.stvx
4374 // CHECK-LE: @llvm.ppc.altivec.stvx
4376 vec_stvx(vsc, 0, &vsc);
4377 // CHECK: @llvm.ppc.altivec.stvx
4378 // CHECK-LE: @llvm.ppc.altivec.stvx
4380 vec_stvx(vsc, 0, ¶m_sc);
4381 // CHECK: @llvm.ppc.altivec.stvx
4382 // CHECK-LE: @llvm.ppc.altivec.stvx
4384 vec_stvx(vuc, 0, &vuc);
4385 // CHECK: @llvm.ppc.altivec.stvx
4386 // CHECK-LE: @llvm.ppc.altivec.stvx
4388 vec_stvx(vuc, 0, ¶m_uc);
4389 // CHECK: @llvm.ppc.altivec.stvx
4390 // CHECK-LE: @llvm.ppc.altivec.stvx
4392 vec_stvx(vbc, 0, ¶m_uc);
4393 // CHECK: @llvm.ppc.altivec.stvx
4394 // CHECK-LE: @llvm.ppc.altivec.stvx
4396 vec_stvx(vbc, 0, ¶m_uc);
4397 // CHECK: @llvm.ppc.altivec.stvx
4398 // CHECK-LE: @llvm.ppc.altivec.stvx
4400 vec_stvx(vbc, 0, &vbc);
4401 // CHECK: @llvm.ppc.altivec.stvx
4402 // CHECK-LE: @llvm.ppc.altivec.stvx
4404 vec_stvx(vs, 0, &vs);
4405 // CHECK: @llvm.ppc.altivec.stvx
4406 // CHECK-LE: @llvm.ppc.altivec.stvx
4408 vec_stvx(vs, 0, ¶m_s);
4409 // CHECK: @llvm.ppc.altivec.stvx
4410 // CHECK-LE: @llvm.ppc.altivec.stvx
4412 vec_stvx(vus, 0, &vus);
4413 // CHECK: @llvm.ppc.altivec.stvx
4414 // CHECK-LE: @llvm.ppc.altivec.stvx
4416 vec_stvx(vus, 0, ¶m_us);
4417 // CHECK: @llvm.ppc.altivec.stvx
4418 // CHECK-LE: @llvm.ppc.altivec.stvx
4420 vec_stvx(vbs, 0, ¶m_s);
4421 // CHECK: @llvm.ppc.altivec.stvx
4422 // CHECK-LE: @llvm.ppc.altivec.stvx
4424 vec_stvx(vbs, 0, ¶m_us);
4425 // CHECK: @llvm.ppc.altivec.stvx
4426 // CHECK-LE: @llvm.ppc.altivec.stvx
4428 vec_stvx(vbs, 0, &vbs);
4429 // CHECK: @llvm.ppc.altivec.stvx
4430 // CHECK-LE: @llvm.ppc.altivec.stvx
4432 vec_stvx(vp, 0, ¶m_s);
4433 // CHECK: @llvm.ppc.altivec.stvx
4434 // CHECK-LE: @llvm.ppc.altivec.stvx
4436 vec_stvx(vp, 0, ¶m_us);
4437 // CHECK: @llvm.ppc.altivec.stvx
4438 // CHECK-LE: @llvm.ppc.altivec.stvx
4440 vec_stvx(vp, 0, &vp);
4441 // CHECK: @llvm.ppc.altivec.stvx
4442 // CHECK-LE: @llvm.ppc.altivec.stvx
4444 vec_stvx(vi, 0, &vi);
4445 // CHECK: @llvm.ppc.altivec.stvx
4446 // CHECK-LE: @llvm.ppc.altivec.stvx
4448 vec_stvx(vi, 0, ¶m_i);
4449 // CHECK: @llvm.ppc.altivec.stvx
4450 // CHECK-LE: @llvm.ppc.altivec.stvx
4452 vec_stvx(vui, 0, &vui);
4453 // CHECK: @llvm.ppc.altivec.stvx
4454 // CHECK-LE: @llvm.ppc.altivec.stvx
4456 vec_stvx(vui, 0, ¶m_ui);
4457 // CHECK: @llvm.ppc.altivec.stvx
4458 // CHECK-LE: @llvm.ppc.altivec.stvx
4460 vec_stvx(vbi, 0, ¶m_i);
4461 // CHECK: @llvm.ppc.altivec.stvx
4462 // CHECK-LE: @llvm.ppc.altivec.stvx
4464 vec_stvx(vbi, 0, ¶m_ui);
4465 // CHECK: @llvm.ppc.altivec.stvx
4466 // CHECK-LE: @llvm.ppc.altivec.stvx
4468 vec_stvx(vbi, 0, &vbi);
4469 // CHECK: @llvm.ppc.altivec.stvx
4470 // CHECK-LE: @llvm.ppc.altivec.stvx
4472 vec_stvx(vf, 0, &vf);
4473 // CHECK: @llvm.ppc.altivec.stvx
4474 // CHECK-LE: @llvm.ppc.altivec.stvx
4476 vec_stvx(vf, 0, ¶m_f);
4477 // CHECK: @llvm.ppc.altivec.stvx
4478 // CHECK-LE: @llvm.ppc.altivec.stvx
4481 vec_ste(vsc, 0, ¶m_sc);
4482 // CHECK: @llvm.ppc.altivec.stvebx
4483 // CHECK-LE: @llvm.ppc.altivec.stvebx
4485 vec_ste(vuc, 0, ¶m_uc);
4486 // CHECK: @llvm.ppc.altivec.stvebx
4487 // CHECK-LE: @llvm.ppc.altivec.stvebx
4489 vec_ste(vbc, 0, ¶m_sc);
4490 // CHECK: @llvm.ppc.altivec.stvebx
4491 // CHECK-LE: @llvm.ppc.altivec.stvebx
4493 vec_ste(vbc, 0, ¶m_uc);
4494 // CHECK: @llvm.ppc.altivec.stvebx
4495 // CHECK-LE: @llvm.ppc.altivec.stvebx
4497 vec_ste(vs, 0, ¶m_s);
4498 // CHECK: @llvm.ppc.altivec.stvehx
4499 // CHECK-LE: @llvm.ppc.altivec.stvehx
4501 vec_ste(vus, 0, ¶m_us);
4502 // CHECK: @llvm.ppc.altivec.stvehx
4503 // CHECK-LE: @llvm.ppc.altivec.stvehx
4505 vec_ste(vbs, 0, ¶m_s);
4506 // CHECK: @llvm.ppc.altivec.stvehx
4507 // CHECK-LE: @llvm.ppc.altivec.stvehx
4509 vec_ste(vbs, 0, ¶m_us);
4510 // CHECK: @llvm.ppc.altivec.stvehx
4511 // CHECK-LE: @llvm.ppc.altivec.stvehx
4513 vec_ste(vp, 0, ¶m_s);
4514 // CHECK: @llvm.ppc.altivec.stvehx
4515 // CHECK-LE: @llvm.ppc.altivec.stvehx
4517 vec_ste(vp, 0, ¶m_us);
4518 // CHECK: @llvm.ppc.altivec.stvehx
4519 // CHECK-LE: @llvm.ppc.altivec.stvehx
4521 vec_ste(vi, 0, ¶m_i);
4522 // CHECK: @llvm.ppc.altivec.stvewx
4523 // CHECK-LE: @llvm.ppc.altivec.stvewx
4525 vec_ste(vui, 0, ¶m_ui);
4526 // CHECK: @llvm.ppc.altivec.stvewx
4527 // CHECK-LE: @llvm.ppc.altivec.stvewx
4529 vec_ste(vbi, 0, ¶m_i);
4530 // CHECK: @llvm.ppc.altivec.stvewx
4531 // CHECK-LE: @llvm.ppc.altivec.stvewx
4533 vec_ste(vbi, 0, ¶m_ui);
4534 // CHECK: @llvm.ppc.altivec.stvewx
4535 // CHECK-LE: @llvm.ppc.altivec.stvewx
4537 vec_ste(vf, 0, ¶m_f);
4538 // CHECK: @llvm.ppc.altivec.stvewx
4539 // CHECK-LE: @llvm.ppc.altivec.stvewx
4541 vec_stvebx(vsc, 0, ¶m_sc);
4542 // CHECK: @llvm.ppc.altivec.stvebx
4543 // CHECK-LE: @llvm.ppc.altivec.stvebx
4545 vec_stvebx(vuc, 0, ¶m_uc);
4546 // CHECK: @llvm.ppc.altivec.stvebx
4547 // CHECK-LE: @llvm.ppc.altivec.stvebx
4549 vec_stvebx(vbc, 0, ¶m_sc);
4550 // CHECK: @llvm.ppc.altivec.stvebx
4551 // CHECK-LE: @llvm.ppc.altivec.stvebx
4553 vec_stvebx(vbc, 0, ¶m_uc);
4554 // CHECK: @llvm.ppc.altivec.stvebx
4555 // CHECK-LE: @llvm.ppc.altivec.stvebx
4557 vec_stvehx(vs, 0, ¶m_s);
4558 // CHECK: @llvm.ppc.altivec.stvehx
4559 // CHECK-LE: @llvm.ppc.altivec.stvehx
4561 vec_stvehx(vus, 0, ¶m_us);
4562 // CHECK: @llvm.ppc.altivec.stvehx
4563 // CHECK-LE: @llvm.ppc.altivec.stvehx
4565 vec_stvehx(vbs, 0, ¶m_s);
4566 // CHECK: @llvm.ppc.altivec.stvehx
4567 // CHECK-LE: @llvm.ppc.altivec.stvehx
4569 vec_stvehx(vbs, 0, ¶m_us);
4570 // CHECK: @llvm.ppc.altivec.stvehx
4571 // CHECK-LE: @llvm.ppc.altivec.stvehx
4573 vec_stvehx(vp, 0, ¶m_s);
4574 // CHECK: @llvm.ppc.altivec.stvehx
4575 // CHECK-LE: @llvm.ppc.altivec.stvehx
4577 vec_stvehx(vp, 0, ¶m_us);
4578 // CHECK: @llvm.ppc.altivec.stvehx
4579 // CHECK-LE: @llvm.ppc.altivec.stvehx
4581 vec_stvewx(vi, 0, ¶m_i);
4582 // CHECK: @llvm.ppc.altivec.stvewx
4583 // CHECK-LE: @llvm.ppc.altivec.stvewx
4585 vec_stvewx(vui, 0, ¶m_ui);
4586 // CHECK: @llvm.ppc.altivec.stvewx
4587 // CHECK-LE: @llvm.ppc.altivec.stvewx
4589 vec_stvewx(vbi, 0, ¶m_i);
4590 // CHECK: @llvm.ppc.altivec.stvewx
4591 // CHECK-LE: @llvm.ppc.altivec.stvewx
4593 vec_stvewx(vbi, 0, ¶m_ui);
4594 // CHECK: @llvm.ppc.altivec.stvewx
4595 // CHECK-LE: @llvm.ppc.altivec.stvewx
4597 vec_stvewx(vf, 0, ¶m_f);
4598 // CHECK: @llvm.ppc.altivec.stvewx
4599 // CHECK-LE: @llvm.ppc.altivec.stvewx
4602 vec_stl(vsc, 0, &vsc);
4603 // CHECK: @llvm.ppc.altivec.stvxl
4604 // CHECK-LE: @llvm.ppc.altivec.stvxl
4606 vec_stl(vsc, 0, ¶m_sc);
4607 // CHECK: @llvm.ppc.altivec.stvxl
4608 // CHECK-LE: @llvm.ppc.altivec.stvxl
4610 vec_stl(vuc, 0, &vuc);
4611 // CHECK: @llvm.ppc.altivec.stvxl
4612 // CHECK-LE: @llvm.ppc.altivec.stvxl
4614 vec_stl(vuc, 0, ¶m_uc);
4615 // CHECK: @llvm.ppc.altivec.stvxl
4616 // CHECK-LE: @llvm.ppc.altivec.stvxl
4618 vec_stl(vbc, 0, ¶m_sc);
4619 // CHECK: @llvm.ppc.altivec.stvxl
4620 // CHECK-LE: @llvm.ppc.altivec.stvxl
4622 vec_stl(vbc, 0, ¶m_uc);
4623 // CHECK: @llvm.ppc.altivec.stvxl
4624 // CHECK-LE: @llvm.ppc.altivec.stvxl
4626 vec_stl(vbc, 0, &vbc);
4627 // CHECK: @llvm.ppc.altivec.stvxl
4628 // CHECK-LE: @llvm.ppc.altivec.stvxl
4630 vec_stl(vs, 0, &vs);
4631 // CHECK: @llvm.ppc.altivec.stvxl
4632 // CHECK-LE: @llvm.ppc.altivec.stvxl
4634 vec_stl(vs, 0, ¶m_s);
4635 // CHECK: @llvm.ppc.altivec.stvxl
4636 // CHECK-LE: @llvm.ppc.altivec.stvxl
4638 vec_stl(vus, 0, &vus);
4639 // CHECK: @llvm.ppc.altivec.stvxl
4640 // CHECK-LE: @llvm.ppc.altivec.stvxl
4642 vec_stl(vus, 0, ¶m_us);
4643 // CHECK: @llvm.ppc.altivec.stvxl
4644 // CHECK-LE: @llvm.ppc.altivec.stvxl
4646 vec_stl(vbs, 0, ¶m_s);
4647 // CHECK: @llvm.ppc.altivec.stvxl
4648 // CHECK-LE: @llvm.ppc.altivec.stvxl
4650 vec_stl(vbs, 0, ¶m_us);
4651 // CHECK: @llvm.ppc.altivec.stvxl
4652 // CHECK-LE: @llvm.ppc.altivec.stvxl
4654 vec_stl(vbs, 0, &vbs);
4655 // CHECK: @llvm.ppc.altivec.stvxl
4656 // CHECK-LE: @llvm.ppc.altivec.stvxl
4658 vec_stl(vp, 0, ¶m_s);
4659 // CHECK: @llvm.ppc.altivec.stvxl
4660 // CHECK-LE: @llvm.ppc.altivec.stvxl
4662 vec_stl(vp, 0, ¶m_us);
4663 // CHECK: @llvm.ppc.altivec.stvxl
4664 // CHECK-LE: @llvm.ppc.altivec.stvxl
4666 vec_stl(vp, 0, &vp);
4667 // CHECK: @llvm.ppc.altivec.stvxl
4668 // CHECK-LE: @llvm.ppc.altivec.stvxl
4670 vec_stl(vi, 0, &vi);
4671 // CHECK: @llvm.ppc.altivec.stvxl
4672 // CHECK-LE: @llvm.ppc.altivec.stvxl
4674 vec_stl(vi, 0, ¶m_i);
4675 // CHECK: @llvm.ppc.altivec.stvxl
4676 // CHECK-LE: @llvm.ppc.altivec.stvxl
4678 vec_stl(vui, 0, &vui);
4679 // CHECK: @llvm.ppc.altivec.stvxl
4680 // CHECK-LE: @llvm.ppc.altivec.stvxl
4682 vec_stl(vui, 0, ¶m_ui);
4683 // CHECK: @llvm.ppc.altivec.stvxl
4684 // CHECK-LE: @llvm.ppc.altivec.stvxl
4686 vec_stl(vbi, 0, ¶m_i);
4687 // CHECK: @llvm.ppc.altivec.stvxl
4688 // CHECK-LE: @llvm.ppc.altivec.stvxl
4690 vec_stl(vbi, 0, ¶m_ui);
4691 // CHECK: @llvm.ppc.altivec.stvxl
4692 // CHECK-LE: @llvm.ppc.altivec.stvxl
4694 vec_stl(vbi, 0, &vbi);
4695 // CHECK: @llvm.ppc.altivec.stvxl
4696 // CHECK-LE: @llvm.ppc.altivec.stvxl
4698 vec_stl(vf, 0, &vf);
4699 // CHECK: @llvm.ppc.altivec.stvxl
4700 // CHECK-LE: @llvm.ppc.altivec.stvxl
4702 vec_stl(vf, 0, ¶m_f);
4703 // CHECK: @llvm.ppc.altivec.stvxl
4704 // CHECK-LE: @llvm.ppc.altivec.stvxl
4706 vec_stvxl(vsc, 0, &vsc);
4707 // CHECK: @llvm.ppc.altivec.stvxl
4708 // CHECK-LE: @llvm.ppc.altivec.stvxl
4710 vec_stvxl(vsc, 0, ¶m_sc);
4711 // CHECK: @llvm.ppc.altivec.stvxl
4712 // CHECK-LE: @llvm.ppc.altivec.stvxl
4714 vec_stvxl(vuc, 0, &vuc);
4715 // CHECK: @llvm.ppc.altivec.stvxl
4716 // CHECK-LE: @llvm.ppc.altivec.stvxl
4718 vec_stvxl(vuc, 0, ¶m_uc);
4719 // CHECK: @llvm.ppc.altivec.stvxl
4720 // CHECK-LE: @llvm.ppc.altivec.stvxl
4722 vec_stvxl(vbc, 0, ¶m_sc);
4723 // CHECK: @llvm.ppc.altivec.stvxl
4724 // CHECK-LE: @llvm.ppc.altivec.stvxl
4726 vec_stvxl(vbc, 0, ¶m_uc);
4727 // CHECK: @llvm.ppc.altivec.stvxl
4728 // CHECK-LE: @llvm.ppc.altivec.stvxl
4730 vec_stvxl(vbc, 0, &vbc);
4731 // CHECK: @llvm.ppc.altivec.stvxl
4732 // CHECK-LE: @llvm.ppc.altivec.stvxl
4734 vec_stvxl(vs, 0, &vs);
4735 // CHECK: @llvm.ppc.altivec.stvxl
4736 // CHECK-LE: @llvm.ppc.altivec.stvxl
4738 vec_stvxl(vs, 0, ¶m_s);
4739 // CHECK: @llvm.ppc.altivec.stvxl
4740 // CHECK-LE: @llvm.ppc.altivec.stvxl
4742 vec_stvxl(vus, 0, &vus);
4743 // CHECK: @llvm.ppc.altivec.stvxl
4744 // CHECK-LE: @llvm.ppc.altivec.stvxl
4746 vec_stvxl(vus, 0, ¶m_us);
4747 // CHECK: @llvm.ppc.altivec.stvxl
4748 // CHECK-LE: @llvm.ppc.altivec.stvxl
4750 vec_stvxl(vbs, 0, ¶m_s);
4751 // CHECK: @llvm.ppc.altivec.stvxl
4752 // CHECK-LE: @llvm.ppc.altivec.stvxl
4754 vec_stvxl(vbs, 0, ¶m_us);
4755 // CHECK: @llvm.ppc.altivec.stvxl
4756 // CHECK-LE: @llvm.ppc.altivec.stvxl
4758 vec_stvxl(vbs, 0, &vbs);
4759 // CHECK: @llvm.ppc.altivec.stvxl
4760 // CHECK-LE: @llvm.ppc.altivec.stvxl
4762 vec_stvxl(vp, 0, ¶m_s);
4763 // CHECK: @llvm.ppc.altivec.stvxl
4764 // CHECK-LE: @llvm.ppc.altivec.stvxl
4766 vec_stvxl(vp, 0, ¶m_us);
4767 // CHECK: @llvm.ppc.altivec.stvxl
4768 // CHECK-LE: @llvm.ppc.altivec.stvxl
4770 vec_stvxl(vp, 0, &vp);
4771 // CHECK: @llvm.ppc.altivec.stvxl
4772 // CHECK-LE: @llvm.ppc.altivec.stvxl
4774 vec_stvxl(vi, 0, &vi);
4775 // CHECK: @llvm.ppc.altivec.stvxl
4776 // CHECK-LE: @llvm.ppc.altivec.stvxl
4778 vec_stvxl(vi, 0, ¶m_i);
4779 // CHECK: @llvm.ppc.altivec.stvxl
4780 // CHECK-LE: @llvm.ppc.altivec.stvxl
4782 vec_stvxl(vui, 0, &vui);
4783 // CHECK: @llvm.ppc.altivec.stvxl
4784 // CHECK-LE: @llvm.ppc.altivec.stvxl
4786 vec_stvxl(vui, 0, ¶m_ui);
4787 // CHECK: @llvm.ppc.altivec.stvxl
4788 // CHECK-LE: @llvm.ppc.altivec.stvxl
4790 vec_stvxl(vbi, 0, ¶m_i);
4791 // CHECK: @llvm.ppc.altivec.stvxl
4792 // CHECK-LE: @llvm.ppc.altivec.stvxl
4794 vec_stvxl(vbi, 0, ¶m_ui);
4795 // CHECK: @llvm.ppc.altivec.stvxl
4796 // CHECK-LE: @llvm.ppc.altivec.stvxl
4798 vec_stvxl(vbi, 0, &vbi);
4799 // CHECK: @llvm.ppc.altivec.stvxl
4800 // CHECK-LE: @llvm.ppc.altivec.stvxl
4802 vec_stvxl(vf, 0, &vf);
4803 // CHECK: @llvm.ppc.altivec.stvxl
4804 // CHECK-LE: @llvm.ppc.altivec.stvxl
4806 vec_stvxl(vf, 0, ¶m_f);
4807 // CHECK: @llvm.ppc.altivec.stvxl
4808 // CHECK-LE: @llvm.ppc.altivec.stvxl
4811 res_vsc = vec_sub(vsc, vsc);
4812 // CHECK: sub <16 x i8>
4813 // CHECK-LE: sub <16 x i8>
4815 res_vsc = vec_sub(vbc, vsc);
4816 // CHECK: sub <16 x i8>
4817 // CHECK-LE: sub <16 x i8>
4819 res_vsc = vec_sub(vsc, vbc);
4820 // CHECK: sub <16 x i8>
4821 // CHECK-LE: sub <16 x i8>
4823 res_vuc = vec_sub(vuc, vuc);
4824 // CHECK: sub <16 x i8>
4825 // CHECK-LE: sub <16 x i8>
4827 res_vuc = vec_sub(vbc, vuc);
4828 // CHECK: sub <16 x i8>
4829 // CHECK-LE: sub <16 x i8>
4831 res_vuc = vec_sub(vuc, vbc);
4832 // CHECK: sub <16 x i8>
4833 // CHECK-LE: sub <16 x i8>
4835 res_vs = vec_sub(vs, vs);
4836 // CHECK: sub <8 x i16>
4837 // CHECK-LE: sub <8 x i16>
4839 res_vs = vec_sub(vbs, vs);
4840 // CHECK: sub <8 x i16>
4841 // CHECK-LE: sub <8 x i16>
4843 res_vs = vec_sub(vs, vbs);
4844 // CHECK: sub <8 x i16>
4845 // CHECK-LE: sub <8 x i16>
4847 res_vus = vec_sub(vus, vus);
4848 // CHECK: sub <8 x i16>
4849 // CHECK-LE: sub <8 x i16>
4851 res_vus = vec_sub(vbs, vus);
4852 // CHECK: sub <8 x i16>
4853 // CHECK-LE: sub <8 x i16>
4855 res_vus = vec_sub(vus, vbs);
4856 // CHECK: sub <8 x i16>
4857 // CHECK-LE: sub <8 x i16>
4859 res_vi = vec_sub(vi, vi);
4860 // CHECK: sub <4 x i32>
4861 // CHECK-LE: sub <4 x i32>
4863 res_vi = vec_sub(vbi, vi);
4864 // CHECK: sub <4 x i32>
4865 // CHECK-LE: sub <4 x i32>
4867 res_vi = vec_sub(vi, vbi);
4868 // CHECK: sub <4 x i32>
4869 // CHECK-LE: sub <4 x i32>
4871 res_vui = vec_sub(vui, vui);
4872 // CHECK: sub <4 x i32>
4873 // CHECK-LE: sub <4 x i32>
4875 res_vui = vec_sub(vbi, vui);
4876 // CHECK: sub <4 x i32>
4877 // CHECK-LE: sub <4 x i32>
4879 res_vui = vec_sub(vui, vbi);
4880 // CHECK: sub <4 x i32>
4881 // CHECK-LE: sub <4 x i32>
4883 res_vf = vec_sub(vf, vf);
4884 // CHECK: fsub <4 x float>
4885 // CHECK-LE: fsub <4 x float>
4887 res_vsc = vec_vsububm(vsc, vsc);
4888 // CHECK: sub <16 x i8>
4889 // CHECK-LE: sub <16 x i8>
4891 res_vsc = vec_vsububm(vbc, vsc);
4892 // CHECK: sub <16 x i8>
4893 // CHECK-LE: sub <16 x i8>
4895 res_vsc = vec_vsububm(vsc, vbc);
4896 // CHECK: sub <16 x i8>
4897 // CHECK-LE: sub <16 x i8>
4899 res_vuc = vec_vsububm(vuc, vuc);
4900 // CHECK: sub <16 x i8>
4901 // CHECK-LE: sub <16 x i8>
4903 res_vuc = vec_vsububm(vbc, vuc);
4904 // CHECK: sub <16 x i8>
4905 // CHECK-LE: sub <16 x i8>
4907 res_vuc = vec_vsububm(vuc, vbc);
4908 // CHECK: sub <16 x i8>
4909 // CHECK-LE: sub <16 x i8>
4911 res_vs = vec_vsubuhm(vs, vs);
4912 // CHECK: sub <8 x i16>
4913 // CHECK-LE: sub <8 x i16>
4915 res_vs = vec_vsubuhm(vbs, vus);
4916 // CHECK: sub <8 x i16>
4917 // CHECK-LE: sub <8 x i16>
4919 res_vs = vec_vsubuhm(vus, vbs);
4920 // CHECK: sub <8 x i16>
4921 // CHECK-LE: sub <8 x i16>
4923 res_vus = vec_vsubuhm(vus, vus);
4924 // CHECK: sub <8 x i16>
4925 // CHECK-LE: sub <8 x i16>
4927 res_vus = vec_vsubuhm(vbs, vus);
4928 // CHECK: sub <8 x i16>
4929 // CHECK-LE: sub <8 x i16>
4931 res_vus = vec_vsubuhm(vus, vbs);
4932 // CHECK: sub <8 x i16>
4933 // CHECK-LE: sub <8 x i16>
4935 res_vi = vec_vsubuwm(vi, vi);
4936 // CHECK: sub <4 x i32>
4937 // CHECK-LE: sub <4 x i32>
4939 res_vi = vec_vsubuwm(vbi, vi);
4940 // CHECK: sub <4 x i32>
4941 // CHECK-LE: sub <4 x i32>
4943 res_vi = vec_vsubuwm(vi, vbi);
4944 // CHECK: sub <4 x i32>
4945 // CHECK-LE: sub <4 x i32>
4947 res_vui = vec_vsubuwm(vui, vui);
4948 // CHECK: sub <4 x i32>
4949 // CHECK-LE: sub <4 x i32>
4951 res_vui = vec_vsubuwm(vbi, vui);
4952 // CHECK: sub <4 x i32>
4953 // CHECK-LE: sub <4 x i32>
4955 res_vui = vec_vsubuwm(vui, vbi);
4956 // CHECK: sub <4 x i32>
4957 // CHECK-LE: sub <4 x i32>
4959 res_vf = vec_vsubfp(vf, vf);
4960 // CHECK: fsub <4 x float>
4961 // CHECK-LE: fsub <4 x float>
4964 res_vui = vec_subc(vui, vui);
4965 // CHECK: @llvm.ppc.altivec.vsubcuw
4966 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
4968 res_vui = vec_vsubcuw(vui, vui);
4969 // CHECK: @llvm.ppc.altivec.vsubcuw
4970 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
4973 res_vsc = vec_subs(vsc, vsc);
4974 // CHECK: @llvm.ppc.altivec.vsubsbs
4975 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
4977 res_vsc = vec_subs(vbc, vsc);
4978 // CHECK: @llvm.ppc.altivec.vsubsbs
4979 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
4981 res_vsc = vec_subs(vsc, vbc);
4982 // CHECK: @llvm.ppc.altivec.vsubsbs
4983 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
4985 res_vuc = vec_subs(vuc, vuc);
4986 // CHECK: @llvm.ppc.altivec.vsububs
4987 // CHECK-LE: @llvm.ppc.altivec.vsububs
4989 res_vuc = vec_subs(vbc, vuc);
4990 // CHECK: @llvm.ppc.altivec.vsububs
4991 // CHECK-LE: @llvm.ppc.altivec.vsububs
4993 res_vuc = vec_subs(vuc, vbc);
4994 // CHECK: @llvm.ppc.altivec.vsububs
4995 // CHECK-LE: @llvm.ppc.altivec.vsububs
4997 res_vs = vec_subs(vs, vs);
4998 // CHECK: @llvm.ppc.altivec.vsubshs
4999 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5001 res_vs = vec_subs(vbs, vs);
5002 // CHECK: @llvm.ppc.altivec.vsubshs
5003 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5005 res_vs = vec_subs(vs, vbs);
5006 // CHECK: @llvm.ppc.altivec.vsubshs
5007 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5009 res_vus = vec_subs(vus, vus);
5010 // CHECK: @llvm.ppc.altivec.vsubuhs
5011 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5013 res_vus = vec_subs(vbs, vus);
5014 // CHECK: @llvm.ppc.altivec.vsubuhs
5015 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5017 res_vus = vec_subs(vus, vbs);
5018 // CHECK: @llvm.ppc.altivec.vsubuhs
5019 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5021 res_vi = vec_subs(vi, vi);
5022 // CHECK: @llvm.ppc.altivec.vsubsws
5023 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5025 res_vi = vec_subs(vbi, vi);
5026 // CHECK: @llvm.ppc.altivec.vsubsws
5027 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5029 res_vi = vec_subs(vi, vbi);
5030 // CHECK: @llvm.ppc.altivec.vsubsws
5031 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5033 res_vui = vec_subs(vui, vui);
5034 // CHECK: @llvm.ppc.altivec.vsubuws
5035 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5037 res_vui = vec_subs(vbi, vui);
5038 // CHECK: @llvm.ppc.altivec.vsubuws
5039 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5041 res_vui = vec_subs(vui, vbi);
5042 // CHECK: @llvm.ppc.altivec.vsubuws
5043 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5045 res_vsc = vec_vsubsbs(vsc, vsc);
5046 // CHECK: @llvm.ppc.altivec.vsubsbs
5047 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5049 res_vsc = vec_vsubsbs(vbc, vsc);
5050 // CHECK: @llvm.ppc.altivec.vsubsbs
5051 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5053 res_vsc = vec_vsubsbs(vsc, vbc);
5054 // CHECK: @llvm.ppc.altivec.vsubsbs
5055 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
5057 res_vuc = vec_vsububs(vuc, vuc);
5058 // CHECK: @llvm.ppc.altivec.vsububs
5059 // CHECK-LE: @llvm.ppc.altivec.vsububs
5061 res_vuc = vec_vsububs(vbc, vuc);
5062 // CHECK: @llvm.ppc.altivec.vsububs
5063 // CHECK-LE: @llvm.ppc.altivec.vsububs
5065 res_vuc = vec_vsububs(vuc, vbc);
5066 // CHECK: @llvm.ppc.altivec.vsububs
5067 // CHECK-LE: @llvm.ppc.altivec.vsububs
5069 res_vs = vec_vsubshs(vs, vs);
5070 // CHECK: @llvm.ppc.altivec.vsubshs
5071 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5073 res_vs = vec_vsubshs(vbs, vs);
5074 // CHECK: @llvm.ppc.altivec.vsubshs
5075 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5077 res_vs = vec_vsubshs(vs, vbs);
5078 // CHECK: @llvm.ppc.altivec.vsubshs
5079 // CHECK-LE: @llvm.ppc.altivec.vsubshs
5081 res_vus = vec_vsubuhs(vus, vus);
5082 // CHECK: @llvm.ppc.altivec.vsubuhs
5083 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5085 res_vus = vec_vsubuhs(vbs, vus);
5086 // CHECK: @llvm.ppc.altivec.vsubuhs
5087 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5089 res_vus = vec_vsubuhs(vus, vbs);
5090 // CHECK: @llvm.ppc.altivec.vsubuhs
5091 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
5093 res_vi = vec_vsubsws(vi, vi);
5094 // CHECK: @llvm.ppc.altivec.vsubsws
5095 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5097 res_vi = vec_vsubsws(vbi, vi);
5098 // CHECK: @llvm.ppc.altivec.vsubsws
5099 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5101 res_vi = vec_vsubsws(vi, vbi);
5102 // CHECK: @llvm.ppc.altivec.vsubsws
5103 // CHECK-LE: @llvm.ppc.altivec.vsubsws
5105 res_vui = vec_vsubuws(vui, vui);
5106 // CHECK: @llvm.ppc.altivec.vsubuws
5107 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5109 res_vui = vec_vsubuws(vbi, vui);
5110 // CHECK: @llvm.ppc.altivec.vsubuws
5111 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5113 res_vui = vec_vsubuws(vui, vbi);
5114 // CHECK: @llvm.ppc.altivec.vsubuws
5115 // CHECK-LE: @llvm.ppc.altivec.vsubuws
5118 res_vi = vec_sum4s(vsc, vi);
5119 // CHECK: @llvm.ppc.altivec.vsum4sbs
5120 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs
5122 res_vui = vec_sum4s(vuc, vui);
5123 // CHECK: @llvm.ppc.altivec.vsum4ubs
5124 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs
5126 res_vi = vec_sum4s(vs, vi);
5127 // CHECK: @llvm.ppc.altivec.vsum4shs
5128 // CHECK-LE: @llvm.ppc.altivec.vsum4shs
5130 res_vi = vec_vsum4sbs(vsc, vi);
5131 // CHECK: @llvm.ppc.altivec.vsum4sbs
5132 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs
5134 res_vui = vec_vsum4ubs(vuc, vui);
5135 // CHECK: @llvm.ppc.altivec.vsum4ubs
5136 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs
5138 res_vi = vec_vsum4shs(vs, vi);
5139 // CHECK: @llvm.ppc.altivec.vsum4shs
5140 // CHECK-LE: @llvm.ppc.altivec.vsum4shs
5143 res_vi = vec_sum2s(vi, vi);
5144 // CHECK: @llvm.ppc.altivec.vsum2sws
5145 // CHECK-LE: @llvm.ppc.altivec.vperm
5146 // CHECK-LE: @llvm.ppc.altivec.vsum2sws
5147 // CHECK-LE: @llvm.ppc.altivec.vperm
5149 res_vi = vec_vsum2sws(vi, vi);
5150 // CHECK: @llvm.ppc.altivec.vsum2sws
5151 // CHECK-LE: @llvm.ppc.altivec.vperm
5152 // CHECK-LE: @llvm.ppc.altivec.vsum2sws
5153 // CHECK-LE: @llvm.ppc.altivec.vperm
5156 res_vi = vec_sums(vi, vi);
5157 // CHECK: @llvm.ppc.altivec.vsumsws
5158 // CHECK-LE: @llvm.ppc.altivec.vperm
5159 // CHECK-LE: @llvm.ppc.altivec.vsumsws
5161 res_vi = vec_vsumsws(vi, vi);
5162 // CHECK: @llvm.ppc.altivec.vsumsws
5163 // CHECK-LE: @llvm.ppc.altivec.vperm
5164 // CHECK-LE: @llvm.ppc.altivec.vsumsws
5167 res_vf = vec_trunc(vf);
5168 // CHECK: @llvm.ppc.altivec.vrfiz
5169 // CHECK-LE: @llvm.ppc.altivec.vrfiz
5171 res_vf = vec_vrfiz(vf);
5172 // CHECK: @llvm.ppc.altivec.vrfiz
5173 // CHECK-LE: @llvm.ppc.altivec.vrfiz
5176 res_vs = vec_unpackh(vsc);
5177 // CHECK: @llvm.ppc.altivec.vupkhsb
5178 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5180 res_vbs = vec_unpackh(vbc);
5181 // CHECK: @llvm.ppc.altivec.vupkhsb
5182 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5184 res_vi = vec_unpackh(vs);
5185 // CHECK: @llvm.ppc.altivec.vupkhsh
5186 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5188 res_vbi = vec_unpackh(vbs);
5189 // CHECK: @llvm.ppc.altivec.vupkhsh
5190 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5192 res_vui = vec_unpackh(vp);
5193 // CHECK: @llvm.ppc.altivec.vupkhpx
5194 // CHECK-LE: @llvm.ppc.altivec.vupklpx
5196 res_vs = vec_vupkhsb(vsc);
5197 // CHECK: @llvm.ppc.altivec.vupkhsb
5198 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5200 res_vbs = vec_vupkhsb(vbc);
5201 // CHECK: @llvm.ppc.altivec.vupkhsb
5202 // CHECK-LE: @llvm.ppc.altivec.vupklsb
5204 res_vi = vec_vupkhsh(vs);
5205 // CHECK: @llvm.ppc.altivec.vupkhsh
5206 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5208 res_vbi = vec_vupkhsh(vbs);
5209 // CHECK: @llvm.ppc.altivec.vupkhsh
5210 // CHECK-LE: @llvm.ppc.altivec.vupklsh
5212 res_vui = vec_vupkhsh(vp);
5213 // CHECK: @llvm.ppc.altivec.vupkhpx
5214 // CHECK-LE: @llvm.ppc.altivec.vupklpx
5217 res_vs = vec_unpackl(vsc);
5218 // CHECK: @llvm.ppc.altivec.vupklsb
5219 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5221 res_vbs = vec_unpackl(vbc);
5222 // CHECK: @llvm.ppc.altivec.vupklsb
5223 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5225 res_vi = vec_unpackl(vs);
5226 // CHECK: @llvm.ppc.altivec.vupklsh
5227 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5229 res_vbi = vec_unpackl(vbs);
5230 // CHECK: @llvm.ppc.altivec.vupklsh
5231 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5233 res_vui = vec_unpackl(vp);
5234 // CHECK: @llvm.ppc.altivec.vupklpx
5235 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
5237 res_vs = vec_vupklsb(vsc);
5238 // CHECK: @llvm.ppc.altivec.vupklsb
5239 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5241 res_vbs = vec_vupklsb(vbc);
5242 // CHECK: @llvm.ppc.altivec.vupklsb
5243 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
5245 res_vi = vec_vupklsh(vs);
5246 // CHECK: @llvm.ppc.altivec.vupklsh
5247 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5249 res_vbi = vec_vupklsh(vbs);
5250 // CHECK: @llvm.ppc.altivec.vupklsh
5251 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
5253 res_vui = vec_vupklsh(vp);
5254 // CHECK: @llvm.ppc.altivec.vupklpx
5255 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
5258 res_vsc = vec_xor(vsc, vsc);
5259 // CHECK: xor <16 x i8>
5260 // CHECK-LE: xor <16 x i8>
5262 res_vsc = vec_xor(vbc, vsc);
5263 // CHECK: xor <16 x i8>
5264 // CHECK-LE: xor <16 x i8>
5266 res_vsc = vec_xor(vsc, vbc);
5267 // CHECK: xor <16 x i8>
5268 // CHECK-LE: xor <16 x i8>
5270 res_vuc = vec_xor(vuc, vuc);
5271 // CHECK: xor <16 x i8>
5272 // CHECK-LE: xor <16 x i8>
5274 res_vuc = vec_xor(vbc, vuc);
5275 // CHECK: xor <16 x i8>
5276 // CHECK-LE: xor <16 x i8>
5278 res_vuc = vec_xor(vuc, vbc);
5279 // CHECK: xor <16 x i8>
5280 // CHECK-LE: xor <16 x i8>
5282 res_vbc = vec_xor(vbc, vbc);
5283 // CHECK: xor <16 x i8>
5284 // CHECK-LE: xor <16 x i8>
5286 res_vs = vec_xor(vs, vs);
5287 // CHECK: xor <8 x i16>
5288 // CHECK-LE: xor <8 x i16>
5290 res_vs = vec_xor(vbs, vs);
5291 // CHECK: xor <8 x i16>
5292 // CHECK-LE: xor <8 x i16>
5294 res_vs = vec_xor(vs, vbs);
5295 // CHECK: xor <8 x i16>
5296 // CHECK-LE: xor <8 x i16>
5298 res_vus = vec_xor(vus, vus);
5299 // CHECK: xor <8 x i16>
5300 // CHECK-LE: xor <8 x i16>
5302 res_vus = vec_xor(vbs, vus);
5303 // CHECK: xor <8 x i16>
5304 // CHECK-LE: xor <8 x i16>
5306 res_vus = vec_xor(vus, vbs);
5307 // CHECK: xor <8 x i16>
5308 // CHECK-LE: xor <8 x i16>
5310 res_vbs = vec_xor(vbs, vbs);
5311 // CHECK: xor <8 x i16>
5312 // CHECK-LE: xor <8 x i16>
5314 res_vi = vec_xor(vi, vi);
5315 // CHECK: xor <4 x i32>
5316 // CHECK-LE: xor <4 x i32>
5318 res_vi = vec_xor(vbi, vi);
5319 // CHECK: xor <4 x i32>
5320 // CHECK-LE: xor <4 x i32>
5322 res_vi = vec_xor(vi, vbi);
5323 // CHECK: xor <4 x i32>
5324 // CHECK-LE: xor <4 x i32>
5326 res_vui = vec_xor(vui, vui);
5327 // CHECK: xor <4 x i32>
5328 // CHECK-LE: xor <4 x i32>
5330 res_vui = vec_xor(vbi, vui);
5331 // CHECK: xor <4 x i32>
5332 // CHECK-LE: xor <4 x i32>
5334 res_vui = vec_xor(vui, vbi);
5335 // CHECK: xor <4 x i32>
5336 // CHECK-LE: xor <4 x i32>
5338 res_vbi = vec_xor(vbi, vbi);
5339 // CHECK: xor <4 x i32>
5340 // CHECK-LE: xor <4 x i32>
5342 res_vf = vec_xor(vf, vf);
5343 // CHECK: xor <4 x i32>
5344 // CHECK-LE: xor <4 x i32>
5346 res_vf = vec_xor(vbi, vf);
5347 // CHECK: xor <4 x i32>
5348 // CHECK-LE: xor <4 x i32>
5350 res_vf = vec_xor(vf, vbi);
5351 // CHECK: xor <4 x i32>
5352 // CHECK-LE: xor <4 x i32>
5354 res_vsc = vec_vxor(vsc, vsc);
5355 // CHECK: xor <16 x i8>
5356 // CHECK-LE: xor <16 x i8>
5358 res_vsc = vec_vxor(vbc, vsc);
5359 // CHECK: xor <16 x i8>
5360 // CHECK-LE: xor <16 x i8>
5362 res_vsc = vec_vxor(vsc, vbc);
5363 // CHECK: xor <16 x i8>
5364 // CHECK-LE: xor <16 x i8>
5366 res_vuc = vec_vxor(vuc, vuc);
5367 // CHECK: xor <16 x i8>
5368 // CHECK-LE: xor <16 x i8>
5370 res_vuc = vec_vxor(vbc, vuc);
5371 // CHECK: xor <16 x i8>
5372 // CHECK-LE: xor <16 x i8>
5374 res_vuc = vec_vxor(vuc, vbc);
5375 // CHECK: xor <16 x i8>
5376 // CHECK-LE: xor <16 x i8>
5378 res_vbc = vec_vxor(vbc, vbc);
5379 // CHECK: xor <16 x i8>
5380 // CHECK-LE: xor <16 x i8>
5382 res_vs = vec_vxor(vs, vs);
5383 // CHECK: xor <8 x i16>
5384 // CHECK-LE: xor <8 x i16>
5386 res_vs = vec_vxor(vbs, vs);
5387 // CHECK: xor <8 x i16>
5388 // CHECK-LE: xor <8 x i16>
5390 res_vs = vec_vxor(vs, vbs);
5391 // CHECK: xor <8 x i16>
5392 // CHECK-LE: xor <8 x i16>
5394 res_vus = vec_vxor(vus, vus);
5395 // CHECK: xor <8 x i16>
5396 // CHECK-LE: xor <8 x i16>
5398 res_vus = vec_vxor(vbs, vus);
5399 // CHECK: xor <8 x i16>
5400 // CHECK-LE: xor <8 x i16>
5402 res_vus = vec_vxor(vus, vbs);
5403 // CHECK: xor <8 x i16>
5404 // CHECK-LE: xor <8 x i16>
5406 res_vbs = vec_vxor(vbs, vbs);
5407 // CHECK: xor <8 x i16>
5408 // CHECK-LE: xor <8 x i16>
5410 res_vi = vec_vxor(vi, vi);
5411 // CHECK: xor <4 x i32>
5412 // CHECK-LE: xor <4 x i32>
5414 res_vi = vec_vxor(vbi, vi);
5415 // CHECK: xor <4 x i32>
5416 // CHECK-LE: xor <4 x i32>
5418 res_vi = vec_vxor(vi, vbi);
5419 // CHECK: xor <4 x i32>
5420 // CHECK-LE: xor <4 x i32>
5422 res_vui = vec_vxor(vui, vui);
5423 // CHECK: xor <4 x i32>
5424 // CHECK-LE: xor <4 x i32>
5426 res_vui = vec_vxor(vbi, vui);
5427 // CHECK: xor <4 x i32>
5428 // CHECK-LE: xor <4 x i32>
5430 res_vui = vec_vxor(vui, vbi);
5431 // CHECK: xor <4 x i32>
5432 // CHECK-LE: xor <4 x i32>
5434 res_vbi = vec_vxor(vbi, vbi);
5435 // CHECK: xor <4 x i32>
5436 // CHECK-LE: xor <4 x i32>
5438 res_vf = vec_vxor(vf, vf);
5439 // CHECK: xor <4 x i32>
5440 // CHECK-LE: xor <4 x i32>
5442 res_vf = vec_vxor(vbi, vf);
5443 // CHECK: xor <4 x i32>
5444 // CHECK-LE: xor <4 x i32>
5446 res_vf = vec_vxor(vf, vbi);
5447 // CHECK: xor <4 x i32>
5448 // CHECK-LE: xor <4 x i32>
5450 /* ------------------------------ extensions -------------------------------------- */
5453 res_sc = vec_extract(vsc, param_i);
5454 // CHECK: extractelement <16 x i8>
5455 // CHECK-LE: extractelement <16 x i8>
5457 res_uc = vec_extract(vuc, param_i);
5458 // CHECK: extractelement <16 x i8>
5459 // CHECK-LE: extractelement <16 x i8>
5461 res_s = vec_extract(vs, param_i);
5462 // CHECK: extractelement <8 x i16>
5463 // CHECK-LE: extractelement <8 x i16>
5465 res_us = vec_extract(vus, param_i);
5466 // CHECK: extractelement <8 x i16>
5467 // CHECK-LE: extractelement <8 x i16>
5469 res_i = vec_extract(vi, param_i);
5470 // CHECK: extractelement <4 x i32>
5471 // CHECK-LE: extractelement <4 x i32>
5473 res_ui = vec_extract(vui, param_i);
5474 // CHECK: extractelement <4 x i32>
5475 // CHECK-LE: extractelement <4 x i32>
5477 res_f = vec_extract(vf, param_i);
5478 // CHECK: extractelement <4 x float>
5479 // CHECK-LE: extractelement <4 x float>
5482 res_vsc = vec_insert(param_sc, vsc, param_i);
5483 // CHECK: insertelement <16 x i8>
5484 // CHECK-LE: insertelement <16 x i8>
5486 res_vuc = vec_insert(param_uc, vuc, param_i);
5487 // CHECK: insertelement <16 x i8>
5488 // CHECK-LE: insertelement <16 x i8>
5490 res_vs = vec_insert(param_s, vs, param_i);
5491 // CHECK: insertelement <8 x i16>
5492 // CHECK-LE: insertelement <8 x i16>
5494 res_vus = vec_insert(param_us, vus, param_i);
5495 // CHECK: insertelement <8 x i16>
5496 // CHECK-LE: insertelement <8 x i16>
5498 res_vi = vec_insert(param_i, vi, param_i);
5499 // CHECK: insertelement <4 x i32>
5500 // CHECK-LE: insertelement <4 x i32>
5502 res_vui = vec_insert(param_ui, vui, param_i);
5503 // CHECK: insertelement <4 x i32>
5504 // CHECK-LE: insertelement <4 x i32>
5506 res_vf = vec_insert(param_f, vf, param_i);
5507 // CHECK: insertelement <4 x float>
5508 // CHECK-LE: insertelement <4 x float>
5511 res_vsc = vec_lvlx(0, ¶m_sc);
5512 // CHECK: @llvm.ppc.altivec.lvx
5513 // CHECK: @llvm.ppc.altivec.lvsl
5514 // CHECK: store <16 x i8> zeroinitializer
5515 // CHECK: @llvm.ppc.altivec.vperm
5516 // CHECK-LE: @llvm.ppc.altivec.lvx
5517 // CHECK-LE: @llvm.ppc.altivec.lvsl
5518 // CHECK-LE: store <16 x i8> zeroinitializer
5519 // CHECK-LE: @llvm.ppc.altivec.vperm
5521 res_vsc = vec_lvlx(0, &vsc);
5522 // CHECK: @llvm.ppc.altivec.lvx
5523 // CHECK: @llvm.ppc.altivec.lvsl
5524 // CHECK: store <16 x i8> zeroinitializer
5525 // CHECK: @llvm.ppc.altivec.vperm
5526 // CHECK-LE: @llvm.ppc.altivec.lvx
5527 // CHECK-LE: @llvm.ppc.altivec.lvsl
5528 // CHECK-LE: store <16 x i8> zeroinitializer
5529 // CHECK-LE: @llvm.ppc.altivec.vperm
5531 res_vuc = vec_lvlx(0, ¶m_uc);
5532 // CHECK: @llvm.ppc.altivec.lvx
5533 // CHECK: @llvm.ppc.altivec.lvsl
5534 // CHECK: store <16 x i8> zeroinitializer
5535 // CHECK: @llvm.ppc.altivec.vperm
5536 // CHECK-LE: @llvm.ppc.altivec.lvx
5537 // CHECK-LE: @llvm.ppc.altivec.lvsl
5538 // CHECK-LE: store <16 x i8> zeroinitializer
5539 // CHECK-LE: @llvm.ppc.altivec.vperm
5541 res_vuc = vec_lvlx(0, &vuc);
5542 // CHECK: @llvm.ppc.altivec.lvx
5543 // CHECK: @llvm.ppc.altivec.lvsl
5544 // CHECK: store <16 x i8> zeroinitializer
5545 // CHECK: @llvm.ppc.altivec.vperm
5546 // CHECK-LE: @llvm.ppc.altivec.lvx
5547 // CHECK-LE: @llvm.ppc.altivec.lvsl
5548 // CHECK-LE: store <16 x i8> zeroinitializer
5549 // CHECK-LE: @llvm.ppc.altivec.vperm
5551 res_vbc = vec_lvlx(0, &vbc);
5552 // CHECK: @llvm.ppc.altivec.lvx
5553 // CHECK: store <16 x i8> zeroinitializer
5554 // CHECK: @llvm.ppc.altivec.lvsl
5555 // CHECK: @llvm.ppc.altivec.vperm
5556 // CHECK-LE: @llvm.ppc.altivec.lvx
5557 // CHECK-LE: store <16 x i8> zeroinitializer
5558 // CHECK-LE: @llvm.ppc.altivec.lvsl
5559 // CHECK-LE: @llvm.ppc.altivec.vperm
5561 res_vs = vec_lvlx(0, ¶m_s);
5562 // CHECK: @llvm.ppc.altivec.lvx
5563 // CHECK: @llvm.ppc.altivec.lvsl
5564 // CHECK: store <8 x i16> zeroinitializer
5565 // CHECK: @llvm.ppc.altivec.vperm
5566 // CHECK-LE: @llvm.ppc.altivec.lvx
5567 // CHECK-LE: @llvm.ppc.altivec.lvsl
5568 // CHECK-LE: store <8 x i16> zeroinitializer
5569 // CHECK-LE: @llvm.ppc.altivec.vperm
5571 res_vs = vec_lvlx(0, &vs);
5572 // CHECK: @llvm.ppc.altivec.lvx
5573 // CHECK: @llvm.ppc.altivec.lvsl
5574 // CHECK: store <8 x i16> zeroinitializer
5575 // CHECK: @llvm.ppc.altivec.vperm
5576 // CHECK-LE: @llvm.ppc.altivec.lvx
5577 // CHECK-LE: @llvm.ppc.altivec.lvsl
5578 // CHECK-LE: store <8 x i16> zeroinitializer
5579 // CHECK-LE: @llvm.ppc.altivec.vperm
5581 res_vus = vec_lvlx(0, ¶m_us);
5582 // CHECK: @llvm.ppc.altivec.lvx
5583 // CHECK: @llvm.ppc.altivec.lvsl
5584 // CHECK: store <8 x i16> zeroinitializer
5585 // CHECK: @llvm.ppc.altivec.vperm
5586 // CHECK-LE: @llvm.ppc.altivec.lvx
5587 // CHECK-LE: @llvm.ppc.altivec.lvsl
5588 // CHECK-LE: store <8 x i16> zeroinitializer
5589 // CHECK-LE: @llvm.ppc.altivec.vperm
5591 res_vus = vec_lvlx(0, &vus);
5592 // CHECK: @llvm.ppc.altivec.lvx
5593 // CHECK: @llvm.ppc.altivec.lvsl
5594 // CHECK: store <8 x i16> zeroinitializer
5595 // CHECK: @llvm.ppc.altivec.vperm
5596 // CHECK-LE: @llvm.ppc.altivec.lvx
5597 // CHECK-LE: @llvm.ppc.altivec.lvsl
5598 // CHECK-LE: store <8 x i16> zeroinitializer
5599 // CHECK-LE: @llvm.ppc.altivec.vperm
5601 res_vbs = vec_lvlx(0, &vbs);
5602 // CHECK: @llvm.ppc.altivec.lvx
5603 // CHECK: store <8 x i16> zeroinitializer
5604 // CHECK: @llvm.ppc.altivec.lvsl
5605 // CHECK: @llvm.ppc.altivec.vperm
5606 // CHECK-LE: @llvm.ppc.altivec.lvx
5607 // CHECK-LE: store <8 x i16> zeroinitializer
5608 // CHECK-LE: @llvm.ppc.altivec.lvsl
5609 // CHECK-LE: @llvm.ppc.altivec.vperm
5611 res_vp = vec_lvlx(0, &vp);
5612 // CHECK: @llvm.ppc.altivec.lvx
5613 // CHECK: store <8 x i16> zeroinitializer
5614 // CHECK: @llvm.ppc.altivec.lvsl
5615 // CHECK: @llvm.ppc.altivec.vperm
5616 // CHECK-LE: @llvm.ppc.altivec.lvx
5617 // CHECK-LE: store <8 x i16> zeroinitializer
5618 // CHECK-LE: @llvm.ppc.altivec.lvsl
5619 // CHECK-LE: @llvm.ppc.altivec.vperm
5621 res_vi = vec_lvlx(0, ¶m_i);
5622 // CHECK: @llvm.ppc.altivec.lvx
5623 // CHECK: @llvm.ppc.altivec.lvsl
5624 // CHECK: store <4 x i32> zeroinitializer
5625 // CHECK: @llvm.ppc.altivec.vperm
5626 // CHECK-LE: @llvm.ppc.altivec.lvx
5627 // CHECK-LE: @llvm.ppc.altivec.lvsl
5628 // CHECK-LE: store <4 x i32> zeroinitializer
5629 // CHECK-LE: @llvm.ppc.altivec.vperm
5631 res_vi = vec_lvlx(0, &vi);
5632 // CHECK: @llvm.ppc.altivec.lvx
5633 // CHECK: @llvm.ppc.altivec.lvsl
5634 // CHECK: store <4 x i32> zeroinitializer
5635 // CHECK: @llvm.ppc.altivec.vperm
5636 // CHECK-LE: @llvm.ppc.altivec.lvx
5637 // CHECK-LE: @llvm.ppc.altivec.lvsl
5638 // CHECK-LE: store <4 x i32> zeroinitializer
5639 // CHECK-LE: @llvm.ppc.altivec.vperm
5641 res_vui = vec_lvlx(0, ¶m_ui);
5642 // CHECK: @llvm.ppc.altivec.lvx
5643 // CHECK: @llvm.ppc.altivec.lvsl
5644 // CHECK: store <4 x i32> zeroinitializer
5645 // CHECK: @llvm.ppc.altivec.vperm
5646 // CHECK-LE: @llvm.ppc.altivec.lvx
5647 // CHECK-LE: @llvm.ppc.altivec.lvsl
5648 // CHECK-LE: store <4 x i32> zeroinitializer
5649 // CHECK-LE: @llvm.ppc.altivec.vperm
5651 res_vui = vec_lvlx(0, &vui);
5652 // CHECK: @llvm.ppc.altivec.lvx
5653 // CHECK: @llvm.ppc.altivec.lvsl
5654 // CHECK: store <4 x i32> zeroinitializer
5655 // CHECK: @llvm.ppc.altivec.vperm
5656 // CHECK-LE: @llvm.ppc.altivec.lvx
5657 // CHECK-LE: @llvm.ppc.altivec.lvsl
5658 // CHECK-LE: store <4 x i32> zeroinitializer
5659 // CHECK-LE: @llvm.ppc.altivec.vperm
5661 res_vbi = vec_lvlx(0, &vbi);
5662 // CHECK: @llvm.ppc.altivec.lvx
5663 // CHECK: store <4 x i32> zeroinitializer
5664 // CHECK: @llvm.ppc.altivec.lvsl
5665 // CHECK: @llvm.ppc.altivec.vperm
5666 // CHECK-LE: @llvm.ppc.altivec.lvx
5667 // CHECK-LE: store <4 x i32> zeroinitializer
5668 // CHECK-LE: @llvm.ppc.altivec.lvsl
5669 // CHECK-LE: @llvm.ppc.altivec.vperm
5671 res_vf = vec_lvlx(0, &vf);
5672 // CHECK: @llvm.ppc.altivec.lvx
5673 // CHECK: @llvm.ppc.altivec.lvsl
5674 // CHECK: store <4 x float> zeroinitializer
5675 // CHECK: @llvm.ppc.altivec.vperm
5676 // CHECK-LE: @llvm.ppc.altivec.lvx
5677 // CHECK-LE: @llvm.ppc.altivec.lvsl
5678 // CHECK-LE: store <4 x float> zeroinitializer
5679 // CHECK-LE: @llvm.ppc.altivec.vperm
5682 res_vsc = vec_lvlxl(0, ¶m_sc);
5683 // CHECK: @llvm.ppc.altivec.lvxl
5684 // CHECK: @llvm.ppc.altivec.lvsl
5685 // CHECK: store <16 x i8> zeroinitializer
5686 // CHECK: @llvm.ppc.altivec.vperm
5687 // CHECK-LE: @llvm.ppc.altivec.lvxl
5688 // CHECK-LE: @llvm.ppc.altivec.lvsl
5689 // CHECK-LE: store <16 x i8> zeroinitializer
5690 // CHECK-LE: @llvm.ppc.altivec.vperm
5692 res_vsc = vec_lvlxl(0, &vsc);
5693 // CHECK: @llvm.ppc.altivec.lvxl
5694 // CHECK: @llvm.ppc.altivec.lvsl
5695 // CHECK: store <16 x i8> zeroinitializer
5696 // CHECK: @llvm.ppc.altivec.vperm
5697 // CHECK-LE: @llvm.ppc.altivec.lvxl
5698 // CHECK-LE: @llvm.ppc.altivec.lvsl
5699 // CHECK-LE: store <16 x i8> zeroinitializer
5700 // CHECK-LE: @llvm.ppc.altivec.vperm
5702 res_vuc = vec_lvlxl(0, ¶m_uc);
5703 // CHECK: @llvm.ppc.altivec.lvxl
5704 // CHECK: @llvm.ppc.altivec.lvsl
5705 // CHECK: store <16 x i8> zeroinitializer
5706 // CHECK: @llvm.ppc.altivec.vperm
5707 // CHECK-LE: @llvm.ppc.altivec.lvxl
5708 // CHECK-LE: @llvm.ppc.altivec.lvsl
5709 // CHECK-LE: store <16 x i8> zeroinitializer
5710 // CHECK-LE: @llvm.ppc.altivec.vperm
5712 res_vuc = vec_lvlxl(0, &vuc);
5713 // CHECK: @llvm.ppc.altivec.lvxl
5714 // CHECK: @llvm.ppc.altivec.lvsl
5715 // CHECK: store <16 x i8> zeroinitializer
5716 // CHECK: @llvm.ppc.altivec.vperm
5717 // CHECK-LE: @llvm.ppc.altivec.lvxl
5718 // CHECK-LE: @llvm.ppc.altivec.lvsl
5719 // CHECK-LE: store <16 x i8> zeroinitializer
5720 // CHECK-LE: @llvm.ppc.altivec.vperm
5722 res_vbc = vec_lvlxl(0, &vbc);
5723 // CHECK: @llvm.ppc.altivec.lvxl
5724 // CHECK: store <16 x i8> zeroinitializer
5725 // CHECK: @llvm.ppc.altivec.lvsl
5726 // CHECK: @llvm.ppc.altivec.vperm
5727 // CHECK-LE: @llvm.ppc.altivec.lvxl
5728 // CHECK-LE: store <16 x i8> zeroinitializer
5729 // CHECK-LE: @llvm.ppc.altivec.lvsl
5730 // CHECK-LE: @llvm.ppc.altivec.vperm
5732 res_vs = vec_lvlxl(0, ¶m_s);
5733 // CHECK: @llvm.ppc.altivec.lvxl
5734 // CHECK: @llvm.ppc.altivec.lvsl
5735 // CHECK: store <8 x i16> zeroinitializer
5736 // CHECK: @llvm.ppc.altivec.vperm
5737 // CHECK-LE: @llvm.ppc.altivec.lvxl
5738 // CHECK-LE: @llvm.ppc.altivec.lvsl
5739 // CHECK-LE: store <8 x i16> zeroinitializer
5740 // CHECK-LE: @llvm.ppc.altivec.vperm
5742 res_vs = vec_lvlxl(0, &vs);
5743 // CHECK: @llvm.ppc.altivec.lvxl
5744 // CHECK: @llvm.ppc.altivec.lvsl
5745 // CHECK: store <8 x i16> zeroinitializer
5746 // CHECK: @llvm.ppc.altivec.vperm
5747 // CHECK-LE: @llvm.ppc.altivec.lvxl
5748 // CHECK-LE: @llvm.ppc.altivec.lvsl
5749 // CHECK-LE: store <8 x i16> zeroinitializer
5750 // CHECK-LE: @llvm.ppc.altivec.vperm
5752 res_vus = vec_lvlxl(0, ¶m_us);
5753 // CHECK: @llvm.ppc.altivec.lvxl
5754 // CHECK: @llvm.ppc.altivec.lvsl
5755 // CHECK: store <8 x i16> zeroinitializer
5756 // CHECK: @llvm.ppc.altivec.vperm
5757 // CHECK-LE: @llvm.ppc.altivec.lvxl
5758 // CHECK-LE: @llvm.ppc.altivec.lvsl
5759 // CHECK-LE: store <8 x i16> zeroinitializer
5760 // CHECK-LE: @llvm.ppc.altivec.vperm
5762 res_vus = vec_lvlxl(0, &vus);
5763 // CHECK: @llvm.ppc.altivec.lvxl
5764 // CHECK: @llvm.ppc.altivec.lvsl
5765 // CHECK: store <8 x i16> zeroinitializer
5766 // CHECK: @llvm.ppc.altivec.vperm
5767 // CHECK-LE: @llvm.ppc.altivec.lvxl
5768 // CHECK-LE: @llvm.ppc.altivec.lvsl
5769 // CHECK-LE: store <8 x i16> zeroinitializer
5770 // CHECK-LE: @llvm.ppc.altivec.vperm
5772 res_vbs = vec_lvlxl(0, &vbs);
5773 // CHECK: @llvm.ppc.altivec.lvxl
5774 // CHECK: store <8 x i16> zeroinitializer
5775 // CHECK: @llvm.ppc.altivec.lvsl
5776 // CHECK: @llvm.ppc.altivec.vperm
5777 // CHECK-LE: @llvm.ppc.altivec.lvxl
5778 // CHECK-LE: store <8 x i16> zeroinitializer
5779 // CHECK-LE: @llvm.ppc.altivec.lvsl
5780 // CHECK-LE: @llvm.ppc.altivec.vperm
5782 res_vp = vec_lvlxl(0, &vp);
5783 // CHECK: @llvm.ppc.altivec.lvxl
5784 // CHECK: store <8 x i16> zeroinitializer
5785 // CHECK: @llvm.ppc.altivec.lvsl
5786 // CHECK: @llvm.ppc.altivec.vperm
5787 // CHECK-LE: @llvm.ppc.altivec.lvxl
5788 // CHECK-LE: store <8 x i16> zeroinitializer
5789 // CHECK-LE: @llvm.ppc.altivec.lvsl
5790 // CHECK-LE: @llvm.ppc.altivec.vperm
5792 res_vi = vec_lvlxl(0, ¶m_i);
5793 // CHECK: @llvm.ppc.altivec.lvxl
5794 // CHECK: @llvm.ppc.altivec.lvsl
5795 // CHECK: store <4 x i32> zeroinitializer
5796 // CHECK: @llvm.ppc.altivec.vperm
5797 // CHECK-LE: @llvm.ppc.altivec.lvxl
5798 // CHECK-LE: @llvm.ppc.altivec.lvsl
5799 // CHECK-LE: store <4 x i32> zeroinitializer
5800 // CHECK-LE: @llvm.ppc.altivec.vperm
5802 res_vi = vec_lvlxl(0, &vi);
5803 // CHECK: @llvm.ppc.altivec.lvxl
5804 // CHECK: @llvm.ppc.altivec.lvsl
5805 // CHECK: store <4 x i32> zeroinitializer
5806 // CHECK: @llvm.ppc.altivec.vperm
5807 // CHECK-LE: @llvm.ppc.altivec.lvxl
5808 // CHECK-LE: @llvm.ppc.altivec.lvsl
5809 // CHECK-LE: store <4 x i32> zeroinitializer
5810 // CHECK-LE: @llvm.ppc.altivec.vperm
5812 res_vui = vec_lvlxl(0, ¶m_ui);
5813 // CHECK: @llvm.ppc.altivec.lvxl
5814 // CHECK: @llvm.ppc.altivec.lvsl
5815 // CHECK: store <4 x i32> zeroinitializer
5816 // CHECK: @llvm.ppc.altivec.vperm
5817 // CHECK-LE: @llvm.ppc.altivec.lvxl
5818 // CHECK-LE: @llvm.ppc.altivec.lvsl
5819 // CHECK-LE: store <4 x i32> zeroinitializer
5820 // CHECK-LE: @llvm.ppc.altivec.vperm
5822 res_vui = vec_lvlxl(0, &vui);
5823 // CHECK: @llvm.ppc.altivec.lvxl
5824 // CHECK: @llvm.ppc.altivec.lvsl
5825 // CHECK: store <4 x i32> zeroinitializer
5826 // CHECK: @llvm.ppc.altivec.vperm
5827 // CHECK-LE: @llvm.ppc.altivec.lvxl
5828 // CHECK-LE: @llvm.ppc.altivec.lvsl
5829 // CHECK-LE: store <4 x i32> zeroinitializer
5830 // CHECK-LE: @llvm.ppc.altivec.vperm
5832 res_vbi = vec_lvlxl(0, &vbi);
5833 // CHECK: @llvm.ppc.altivec.lvxl
5834 // CHECK: store <4 x i32> zeroinitializer
5835 // CHECK: @llvm.ppc.altivec.lvsl
5836 // CHECK: @llvm.ppc.altivec.vperm
5837 // CHECK-LE: @llvm.ppc.altivec.lvxl
5838 // CHECK-LE: store <4 x i32> zeroinitializer
5839 // CHECK-LE: @llvm.ppc.altivec.lvsl
5840 // CHECK-LE: @llvm.ppc.altivec.vperm
5842 res_vf = vec_lvlxl(0, &vf);
5843 // CHECK: @llvm.ppc.altivec.lvxl
5844 // CHECK: @llvm.ppc.altivec.lvsl
5845 // CHECK: store <4 x float> zeroinitializer
5846 // CHECK: @llvm.ppc.altivec.vperm
5847 // CHECK-LE: @llvm.ppc.altivec.lvxl
5848 // CHECK-LE: @llvm.ppc.altivec.lvsl
5849 // CHECK-LE: store <4 x float> zeroinitializer
5850 // CHECK-LE: @llvm.ppc.altivec.vperm
5853 res_vsc = vec_lvrx(0, ¶m_sc);
5854 // CHECK: @llvm.ppc.altivec.lvx
5855 // CHECK: @llvm.ppc.altivec.lvsl
5856 // CHECK: store <16 x i8> zeroinitializer
5857 // CHECK: @llvm.ppc.altivec.vperm
5858 // CHECK-LE: @llvm.ppc.altivec.lvx
5859 // CHECK-LE: @llvm.ppc.altivec.lvsl
5860 // CHECK-LE: store <16 x i8> zeroinitializer
5861 // CHECK-LE: @llvm.ppc.altivec.vperm
5863 res_vsc = vec_lvrx(0, &vsc);
5864 // CHECK: @llvm.ppc.altivec.lvx
5865 // CHECK: @llvm.ppc.altivec.lvsl
5866 // CHECK: store <16 x i8> zeroinitializer
5867 // CHECK: @llvm.ppc.altivec.vperm
5868 // CHECK-LE: @llvm.ppc.altivec.lvx
5869 // CHECK-LE: @llvm.ppc.altivec.lvsl
5870 // CHECK-LE: store <16 x i8> zeroinitializer
5871 // CHECK-LE: @llvm.ppc.altivec.vperm
5873 res_vuc = vec_lvrx(0, ¶m_uc);
5874 // CHECK: @llvm.ppc.altivec.lvx
5875 // CHECK: @llvm.ppc.altivec.lvsl
5876 // CHECK: store <16 x i8> zeroinitializer
5877 // CHECK: @llvm.ppc.altivec.vperm
5878 // CHECK-LE: @llvm.ppc.altivec.lvx
5879 // CHECK-LE: @llvm.ppc.altivec.lvsl
5880 // CHECK-LE: store <16 x i8> zeroinitializer
5881 // CHECK-LE: @llvm.ppc.altivec.vperm
5883 res_vuc = vec_lvrx(0, &vuc);
5884 // CHECK: @llvm.ppc.altivec.lvx
5885 // CHECK: @llvm.ppc.altivec.lvsl
5886 // CHECK: store <16 x i8> zeroinitializer
5887 // CHECK: @llvm.ppc.altivec.vperm
5888 // CHECK-LE: @llvm.ppc.altivec.lvx
5889 // CHECK-LE: @llvm.ppc.altivec.lvsl
5890 // CHECK-LE: store <16 x i8> zeroinitializer
5891 // CHECK-LE: @llvm.ppc.altivec.vperm
5893 res_vbc = vec_lvrx(0, &vbc);
5894 // CHECK: store <16 x i8> zeroinitializer
5895 // CHECK: @llvm.ppc.altivec.lvx
5896 // CHECK: @llvm.ppc.altivec.lvsl
5897 // CHECK: @llvm.ppc.altivec.vperm
5898 // CHECK-LE: store <16 x i8> zeroinitializer
5899 // CHECK-LE: @llvm.ppc.altivec.lvx
5900 // CHECK-LE: @llvm.ppc.altivec.lvsl
5901 // CHECK-LE: @llvm.ppc.altivec.vperm
5903 res_vs = vec_lvrx(0, ¶m_s);
5904 // CHECK: @llvm.ppc.altivec.lvx
5905 // CHECK: @llvm.ppc.altivec.lvsl
5906 // CHECK: store <8 x i16> zeroinitializer
5907 // CHECK: @llvm.ppc.altivec.vperm
5908 // CHECK-LE: @llvm.ppc.altivec.lvx
5909 // CHECK-LE: @llvm.ppc.altivec.lvsl
5910 // CHECK-LE: store <8 x i16> zeroinitializer
5911 // CHECK-LE: @llvm.ppc.altivec.vperm
5913 res_vs = vec_lvrx(0, &vs);
5914 // CHECK: @llvm.ppc.altivec.lvx
5915 // CHECK: @llvm.ppc.altivec.lvsl
5916 // CHECK: store <8 x i16> zeroinitializer
5917 // CHECK: @llvm.ppc.altivec.vperm
5918 // CHECK-LE: @llvm.ppc.altivec.lvx
5919 // CHECK-LE: @llvm.ppc.altivec.lvsl
5920 // CHECK-LE: store <8 x i16> zeroinitializer
5921 // CHECK-LE: @llvm.ppc.altivec.vperm
5923 res_vus = vec_lvrx(0, ¶m_us);
5924 // CHECK: @llvm.ppc.altivec.lvx
5925 // CHECK: @llvm.ppc.altivec.lvsl
5926 // CHECK: store <8 x i16> zeroinitializer
5927 // CHECK: @llvm.ppc.altivec.vperm
5928 // CHECK-LE: @llvm.ppc.altivec.lvx
5929 // CHECK-LE: @llvm.ppc.altivec.lvsl
5930 // CHECK-LE: store <8 x i16> zeroinitializer
5931 // CHECK-LE: @llvm.ppc.altivec.vperm
5933 res_vus = vec_lvrx(0, &vus);
5934 // CHECK: @llvm.ppc.altivec.lvx
5935 // CHECK: @llvm.ppc.altivec.lvsl
5936 // CHECK: store <8 x i16> zeroinitializer
5937 // CHECK: @llvm.ppc.altivec.vperm
5938 // CHECK-LE: @llvm.ppc.altivec.lvx
5939 // CHECK-LE: @llvm.ppc.altivec.lvsl
5940 // CHECK-LE: store <8 x i16> zeroinitializer
5941 // CHECK-LE: @llvm.ppc.altivec.vperm
5943 res_vbs = vec_lvrx(0, &vbs);
5944 // CHECK: store <8 x i16> zeroinitializer
5945 // CHECK: @llvm.ppc.altivec.lvx
5946 // CHECK: @llvm.ppc.altivec.lvsl
5947 // CHECK: @llvm.ppc.altivec.vperm
5948 // CHECK-LE: store <8 x i16> zeroinitializer
5949 // CHECK-LE: @llvm.ppc.altivec.lvx
5950 // CHECK-LE: @llvm.ppc.altivec.lvsl
5951 // CHECK-LE: @llvm.ppc.altivec.vperm
5953 res_vp = vec_lvrx(0, &vp);
5954 // CHECK: store <8 x i16> zeroinitializer
5955 // CHECK: @llvm.ppc.altivec.lvx
5956 // CHECK: @llvm.ppc.altivec.lvsl
5957 // CHECK: @llvm.ppc.altivec.vperm
5958 // CHECK-LE: store <8 x i16> zeroinitializer
5959 // CHECK-LE: @llvm.ppc.altivec.lvx
5960 // CHECK-LE: @llvm.ppc.altivec.lvsl
5961 // CHECK-LE: @llvm.ppc.altivec.vperm
5963 res_vi = vec_lvrx(0, ¶m_i);
5964 // CHECK: @llvm.ppc.altivec.lvx
5965 // CHECK: @llvm.ppc.altivec.lvsl
5966 // CHECK: store <4 x i32> zeroinitializer
5967 // CHECK: @llvm.ppc.altivec.vperm
5968 // CHECK-LE: @llvm.ppc.altivec.lvx
5969 // CHECK-LE: @llvm.ppc.altivec.lvsl
5970 // CHECK-LE: store <4 x i32> zeroinitializer
5971 // CHECK-LE: @llvm.ppc.altivec.vperm
5973 res_vi = vec_lvrx(0, &vi);
5974 // CHECK: @llvm.ppc.altivec.lvx
5975 // CHECK: @llvm.ppc.altivec.lvsl
5976 // CHECK: store <4 x i32> zeroinitializer
5977 // CHECK: @llvm.ppc.altivec.vperm
5978 // CHECK-LE: @llvm.ppc.altivec.lvx
5979 // CHECK-LE: @llvm.ppc.altivec.lvsl
5980 // CHECK-LE: store <4 x i32> zeroinitializer
5981 // CHECK-LE: @llvm.ppc.altivec.vperm
5983 res_vui = vec_lvrx(0, ¶m_ui);
5984 // CHECK: @llvm.ppc.altivec.lvx
5985 // CHECK: @llvm.ppc.altivec.lvsl
5986 // CHECK: store <4 x i32> zeroinitializer
5987 // CHECK: @llvm.ppc.altivec.vperm
5988 // CHECK-LE: @llvm.ppc.altivec.lvx
5989 // CHECK-LE: @llvm.ppc.altivec.lvsl
5990 // CHECK-LE: store <4 x i32> zeroinitializer
5991 // CHECK-LE: @llvm.ppc.altivec.vperm
5993 res_vui = vec_lvrx(0, &vui);
5994 // CHECK: @llvm.ppc.altivec.lvx
5995 // CHECK: @llvm.ppc.altivec.lvsl
5996 // CHECK: store <4 x i32> zeroinitializer
5997 // CHECK: @llvm.ppc.altivec.vperm
5998 // CHECK-LE: @llvm.ppc.altivec.lvx
5999 // CHECK-LE: @llvm.ppc.altivec.lvsl
6000 // CHECK-LE: store <4 x i32> zeroinitializer
6001 // CHECK-LE: @llvm.ppc.altivec.vperm
6003 res_vbi = vec_lvrx(0, &vbi);
6004 // CHECK: store <4 x i32> zeroinitializer
6005 // CHECK: @llvm.ppc.altivec.lvx
6006 // CHECK: @llvm.ppc.altivec.lvsl
6007 // CHECK: @llvm.ppc.altivec.vperm
6008 // CHECK-LE: store <4 x i32> zeroinitializer
6009 // CHECK-LE: @llvm.ppc.altivec.lvx
6010 // CHECK-LE: @llvm.ppc.altivec.lvsl
6011 // CHECK-LE: @llvm.ppc.altivec.vperm
6013 res_vf = vec_lvrx(0, &vf);
6014 // CHECK: @llvm.ppc.altivec.lvx
6015 // CHECK: @llvm.ppc.altivec.lvsl
6016 // CHECK: store <4 x float> zeroinitializer
6017 // CHECK: @llvm.ppc.altivec.vperm
6018 // CHECK-LE: @llvm.ppc.altivec.lvx
6019 // CHECK-LE: @llvm.ppc.altivec.lvsl
6020 // CHECK-LE: store <4 x float> zeroinitializer
6021 // CHECK-LE: @llvm.ppc.altivec.vperm
6024 res_vsc = vec_lvrxl(0, ¶m_sc);
6025 // CHECK: @llvm.ppc.altivec.lvxl
6026 // CHECK: @llvm.ppc.altivec.lvsl
6027 // CHECK: store <16 x i8> zeroinitializer
6028 // CHECK: @llvm.ppc.altivec.vperm
6029 // CHECK-LE: @llvm.ppc.altivec.lvxl
6030 // CHECK-LE: @llvm.ppc.altivec.lvsl
6031 // CHECK-LE: store <16 x i8> zeroinitializer
6032 // CHECK-LE: @llvm.ppc.altivec.vperm
6034 res_vsc = vec_lvrxl(0, &vsc);
6035 // CHECK: @llvm.ppc.altivec.lvxl
6036 // CHECK: @llvm.ppc.altivec.lvsl
6037 // CHECK: store <16 x i8> zeroinitializer
6038 // CHECK: @llvm.ppc.altivec.vperm
6039 // CHECK-LE: @llvm.ppc.altivec.lvxl
6040 // CHECK-LE: @llvm.ppc.altivec.lvsl
6041 // CHECK-LE: store <16 x i8> zeroinitializer
6042 // CHECK-LE: @llvm.ppc.altivec.vperm
6044 res_vuc = vec_lvrxl(0, ¶m_uc);
6045 // CHECK: @llvm.ppc.altivec.lvxl
6046 // CHECK: @llvm.ppc.altivec.lvsl
6047 // CHECK: store <16 x i8> zeroinitializer
6048 // CHECK: @llvm.ppc.altivec.vperm
6049 // CHECK-LE: @llvm.ppc.altivec.lvxl
6050 // CHECK-LE: @llvm.ppc.altivec.lvsl
6051 // CHECK-LE: store <16 x i8> zeroinitializer
6052 // CHECK-LE: @llvm.ppc.altivec.vperm
6054 res_vuc = vec_lvrxl(0, &vuc);
6055 // CHECK: @llvm.ppc.altivec.lvxl
6056 // CHECK: @llvm.ppc.altivec.lvsl
6057 // CHECK: store <16 x i8> zeroinitializer
6058 // CHECK: @llvm.ppc.altivec.vperm
6059 // CHECK-LE: @llvm.ppc.altivec.lvxl
6060 // CHECK-LE: @llvm.ppc.altivec.lvsl
6061 // CHECK-LE: store <16 x i8> zeroinitializer
6062 // CHECK-LE: @llvm.ppc.altivec.vperm
6064 res_vbc = vec_lvrxl(0, &vbc);
6065 // CHECK: store <16 x i8> zeroinitializer
6066 // CHECK: @llvm.ppc.altivec.lvxl
6067 // CHECK: @llvm.ppc.altivec.lvsl
6068 // CHECK: @llvm.ppc.altivec.vperm
6069 // CHECK-LE: store <16 x i8> zeroinitializer
6070 // CHECK-LE: @llvm.ppc.altivec.lvxl
6071 // CHECK-LE: @llvm.ppc.altivec.lvsl
6072 // CHECK-LE: @llvm.ppc.altivec.vperm
6074 res_vs = vec_lvrxl(0, ¶m_s);
6075 // CHECK: @llvm.ppc.altivec.lvxl
6076 // CHECK: @llvm.ppc.altivec.lvsl
6077 // CHECK: store <8 x i16> zeroinitializer
6078 // CHECK: @llvm.ppc.altivec.vperm
6079 // CHECK-LE: @llvm.ppc.altivec.lvxl
6080 // CHECK-LE: @llvm.ppc.altivec.lvsl
6081 // CHECK-LE: store <8 x i16> zeroinitializer
6082 // CHECK-LE: @llvm.ppc.altivec.vperm
6084 res_vs = vec_lvrxl(0, &vs);
6085 // CHECK: @llvm.ppc.altivec.lvxl
6086 // CHECK: @llvm.ppc.altivec.lvsl
6087 // CHECK: store <8 x i16> zeroinitializer
6088 // CHECK: @llvm.ppc.altivec.vperm
6089 // CHECK-LE: @llvm.ppc.altivec.lvxl
6090 // CHECK-LE: @llvm.ppc.altivec.lvsl
6091 // CHECK-LE: store <8 x i16> zeroinitializer
6092 // CHECK-LE: @llvm.ppc.altivec.vperm
6094 res_vus = vec_lvrxl(0, ¶m_us);
6095 // CHECK: @llvm.ppc.altivec.lvxl
6096 // CHECK: @llvm.ppc.altivec.lvsl
6097 // CHECK: store <8 x i16> zeroinitializer
6098 // CHECK: @llvm.ppc.altivec.vperm
6099 // CHECK-LE: @llvm.ppc.altivec.lvxl
6100 // CHECK-LE: @llvm.ppc.altivec.lvsl
6101 // CHECK-LE: store <8 x i16> zeroinitializer
6102 // CHECK-LE: @llvm.ppc.altivec.vperm
6104 res_vus = vec_lvrxl(0, &vus);
6105 // CHECK: @llvm.ppc.altivec.lvxl
6106 // CHECK: @llvm.ppc.altivec.lvsl
6107 // CHECK: store <8 x i16> zeroinitializer
6108 // CHECK: @llvm.ppc.altivec.vperm
6109 // CHECK-LE: @llvm.ppc.altivec.lvxl
6110 // CHECK-LE: @llvm.ppc.altivec.lvsl
6111 // CHECK-LE: store <8 x i16> zeroinitializer
6112 // CHECK-LE: @llvm.ppc.altivec.vperm
6114 res_vbs = vec_lvrxl(0, &vbs);
6115 // CHECK: store <8 x i16> zeroinitializer
6116 // CHECK: @llvm.ppc.altivec.lvxl
6117 // CHECK: @llvm.ppc.altivec.lvsl
6118 // CHECK: @llvm.ppc.altivec.vperm
6119 // CHECK-LE: store <8 x i16> zeroinitializer
6120 // CHECK-LE: @llvm.ppc.altivec.lvxl
6121 // CHECK-LE: @llvm.ppc.altivec.lvsl
6122 // CHECK-LE: @llvm.ppc.altivec.vperm
6124 res_vp = vec_lvrxl(0, &vp);
6125 // CHECK: store <8 x i16> zeroinitializer
6126 // CHECK: @llvm.ppc.altivec.lvxl
6127 // CHECK: @llvm.ppc.altivec.lvsl
6128 // CHECK: @llvm.ppc.altivec.vperm
6129 // CHECK-LE: store <8 x i16> zeroinitializer
6130 // CHECK-LE: @llvm.ppc.altivec.lvxl
6131 // CHECK-LE: @llvm.ppc.altivec.lvsl
6132 // CHECK-LE: @llvm.ppc.altivec.vperm
6134 res_vi = vec_lvrxl(0, ¶m_i);
6135 // CHECK: @llvm.ppc.altivec.lvxl
6136 // CHECK: @llvm.ppc.altivec.lvsl
6137 // CHECK: store <4 x i32> zeroinitializer
6138 // CHECK: @llvm.ppc.altivec.vperm
6139 // CHECK-LE: @llvm.ppc.altivec.lvxl
6140 // CHECK-LE: @llvm.ppc.altivec.lvsl
6141 // CHECK-LE: store <4 x i32> zeroinitializer
6142 // CHECK-LE: @llvm.ppc.altivec.vperm
6144 res_vi = vec_lvrxl(0, &vi);
6145 // CHECK: @llvm.ppc.altivec.lvxl
6146 // CHECK: @llvm.ppc.altivec.lvsl
6147 // CHECK: store <4 x i32> zeroinitializer
6148 // CHECK: @llvm.ppc.altivec.vperm
6149 // CHECK-LE: @llvm.ppc.altivec.lvxl
6150 // CHECK-LE: @llvm.ppc.altivec.lvsl
6151 // CHECK-LE: store <4 x i32> zeroinitializer
6152 // CHECK-LE: @llvm.ppc.altivec.vperm
6154 res_vui = vec_lvrxl(0, ¶m_ui);
6155 // CHECK: @llvm.ppc.altivec.lvxl
6156 // CHECK: @llvm.ppc.altivec.lvsl
6157 // CHECK: store <4 x i32> zeroinitializer
6158 // CHECK: @llvm.ppc.altivec.vperm
6159 // CHECK-LE: @llvm.ppc.altivec.lvxl
6160 // CHECK-LE: @llvm.ppc.altivec.lvsl
6161 // CHECK-LE: store <4 x i32> zeroinitializer
6162 // CHECK-LE: @llvm.ppc.altivec.vperm
6164 res_vui = vec_lvrxl(0, &vui);
6165 // CHECK: @llvm.ppc.altivec.lvxl
6166 // CHECK: @llvm.ppc.altivec.lvsl
6167 // CHECK: store <4 x i32> zeroinitializer
6168 // CHECK: @llvm.ppc.altivec.vperm
6169 // CHECK-LE: @llvm.ppc.altivec.lvxl
6170 // CHECK-LE: @llvm.ppc.altivec.lvsl
6171 // CHECK-LE: store <4 x i32> zeroinitializer
6172 // CHECK-LE: @llvm.ppc.altivec.vperm
6174 res_vbi = vec_lvrxl(0, &vbi);
6175 // CHECK: store <4 x i32> zeroinitializer
6176 // CHECK: @llvm.ppc.altivec.lvxl
6177 // CHECK: @llvm.ppc.altivec.lvsl
6178 // CHECK: @llvm.ppc.altivec.vperm
6179 // CHECK-LE: store <4 x i32> zeroinitializer
6180 // CHECK-LE: @llvm.ppc.altivec.lvxl
6181 // CHECK-LE: @llvm.ppc.altivec.lvsl
6182 // CHECK-LE: @llvm.ppc.altivec.vperm
6184 res_vf = vec_lvrxl(0, &vf);
6185 // CHECK: @llvm.ppc.altivec.lvxl
6186 // CHECK: @llvm.ppc.altivec.lvsl
6187 // CHECK: store <4 x float> zeroinitializer
6188 // CHECK: @llvm.ppc.altivec.vperm
6189 // CHECK-LE: @llvm.ppc.altivec.lvxl
6190 // CHECK-LE: @llvm.ppc.altivec.lvsl
6191 // CHECK-LE: store <4 x float> zeroinitializer
6192 // CHECK-LE: @llvm.ppc.altivec.vperm
6195 vec_stvlx(vsc, 0, ¶m_sc);
6196 // CHECK: @llvm.ppc.altivec.lvx
6197 // CHECK: @llvm.ppc.altivec.lvsl
6198 // CHECK: store <16 x i8> zeroinitializer
6199 // CHECK: @llvm.ppc.altivec.vperm
6200 // CHECK: @llvm.ppc.altivec.lvsr
6201 // CHECK: @llvm.ppc.altivec.vperm
6202 // CHECK: @llvm.ppc.altivec.stvx
6203 // CHECK-LE: @llvm.ppc.altivec.lvx
6204 // CHECK-LE: @llvm.ppc.altivec.lvsl
6205 // CHECK-LE: store <16 x i8> zeroinitializer
6206 // CHECK-LE: @llvm.ppc.altivec.vperm
6207 // CHECK-LE: @llvm.ppc.altivec.lvsr
6208 // CHECK-LE: @llvm.ppc.altivec.vperm
6209 // CHECK-LE: @llvm.ppc.altivec.stvx
6211 vec_stvlx(vsc, 0, &vsc);
6212 // CHECK: @llvm.ppc.altivec.lvx
6213 // CHECK: @llvm.ppc.altivec.lvsl
6214 // CHECK: store <16 x i8> zeroinitializer
6215 // CHECK: @llvm.ppc.altivec.vperm
6216 // CHECK: @llvm.ppc.altivec.lvsr
6217 // CHECK: @llvm.ppc.altivec.vperm
6218 // CHECK: @llvm.ppc.altivec.stvx
6219 // CHECK-LE: @llvm.ppc.altivec.lvx
6220 // CHECK-LE: @llvm.ppc.altivec.lvsl
6221 // CHECK-LE: store <16 x i8> zeroinitializer
6222 // CHECK-LE: @llvm.ppc.altivec.vperm
6223 // CHECK-LE: @llvm.ppc.altivec.lvsr
6224 // CHECK-LE: @llvm.ppc.altivec.vperm
6225 // CHECK-LE: @llvm.ppc.altivec.stvx
6227 vec_stvlx(vuc, 0, ¶m_uc);
6228 // CHECK: @llvm.ppc.altivec.lvx
6229 // CHECK: @llvm.ppc.altivec.lvsl
6230 // CHECK: store <16 x i8> zeroinitializer
6231 // CHECK: @llvm.ppc.altivec.vperm
6232 // CHECK: @llvm.ppc.altivec.lvsr
6233 // CHECK: @llvm.ppc.altivec.vperm
6234 // CHECK: @llvm.ppc.altivec.stvx
6235 // CHECK-LE: @llvm.ppc.altivec.lvx
6236 // CHECK-LE: @llvm.ppc.altivec.lvsl
6237 // CHECK-LE: store <16 x i8> zeroinitializer
6238 // CHECK-LE: @llvm.ppc.altivec.vperm
6239 // CHECK-LE: @llvm.ppc.altivec.lvsr
6240 // CHECK-LE: @llvm.ppc.altivec.vperm
6241 // CHECK-LE: @llvm.ppc.altivec.stvx
6243 vec_stvlx(vuc, 0, &vuc);
6244 // CHECK: @llvm.ppc.altivec.lvx
6245 // CHECK: @llvm.ppc.altivec.lvsl
6246 // CHECK: store <16 x i8> zeroinitializer
6247 // CHECK: @llvm.ppc.altivec.vperm
6248 // CHECK: @llvm.ppc.altivec.lvsr
6249 // CHECK: @llvm.ppc.altivec.vperm
6250 // CHECK: @llvm.ppc.altivec.stvx
6251 // CHECK-LE: @llvm.ppc.altivec.lvx
6252 // CHECK-LE: @llvm.ppc.altivec.lvsl
6253 // CHECK-LE: store <16 x i8> zeroinitializer
6254 // CHECK-LE: @llvm.ppc.altivec.vperm
6255 // CHECK-LE: @llvm.ppc.altivec.lvsr
6256 // CHECK-LE: @llvm.ppc.altivec.vperm
6257 // CHECK-LE: @llvm.ppc.altivec.stvx
6259 vec_stvlx(vbc, 0, &vbc);
6260 // CHECK: store <16 x i8> zeroinitializer
6261 // CHECK: @llvm.ppc.altivec.lvx
6262 // CHECK: @llvm.ppc.altivec.lvsl
6263 // CHECK: @llvm.ppc.altivec.vperm
6264 // CHECK: @llvm.ppc.altivec.lvsr
6265 // CHECK: @llvm.ppc.altivec.vperm
6266 // CHECK: @llvm.ppc.altivec.stvx
6267 // CHECK-LE: store <16 x i8> zeroinitializer
6268 // CHECK-LE: @llvm.ppc.altivec.lvx
6269 // CHECK-LE: @llvm.ppc.altivec.lvsl
6270 // CHECK-LE: @llvm.ppc.altivec.vperm
6271 // CHECK-LE: @llvm.ppc.altivec.lvsr
6272 // CHECK-LE: @llvm.ppc.altivec.vperm
6273 // CHECK-LE: @llvm.ppc.altivec.stvx
6275 vec_stvlx(vs, 0, ¶m_s);
6276 // CHECK: @llvm.ppc.altivec.lvx
6277 // CHECK: @llvm.ppc.altivec.lvsl
6278 // CHECK: store <8 x i16> zeroinitializer
6279 // CHECK: @llvm.ppc.altivec.vperm
6280 // CHECK: @llvm.ppc.altivec.lvsr
6281 // CHECK: @llvm.ppc.altivec.vperm
6282 // CHECK: @llvm.ppc.altivec.stvx
6283 // CHECK-LE: @llvm.ppc.altivec.lvx
6284 // CHECK-LE: @llvm.ppc.altivec.lvsl
6285 // CHECK-LE: store <8 x i16> zeroinitializer
6286 // CHECK-LE: @llvm.ppc.altivec.vperm
6287 // CHECK-LE: @llvm.ppc.altivec.lvsr
6288 // CHECK-LE: @llvm.ppc.altivec.vperm
6289 // CHECK-LE: @llvm.ppc.altivec.stvx
6291 vec_stvlx(vs, 0, &vs);
6292 // CHECK: @llvm.ppc.altivec.lvx
6293 // CHECK: @llvm.ppc.altivec.lvsl
6294 // CHECK: store <8 x i16> zeroinitializer
6295 // CHECK: @llvm.ppc.altivec.vperm
6296 // CHECK: @llvm.ppc.altivec.lvsr
6297 // CHECK: @llvm.ppc.altivec.vperm
6298 // CHECK: @llvm.ppc.altivec.stvx
6299 // CHECK-LE: @llvm.ppc.altivec.lvx
6300 // CHECK-LE: @llvm.ppc.altivec.lvsl
6301 // CHECK-LE: store <8 x i16> zeroinitializer
6302 // CHECK-LE: @llvm.ppc.altivec.vperm
6303 // CHECK-LE: @llvm.ppc.altivec.lvsr
6304 // CHECK-LE: @llvm.ppc.altivec.vperm
6305 // CHECK-LE: @llvm.ppc.altivec.stvx
6307 vec_stvlx(vus, 0, ¶m_us);
6308 // CHECK: @llvm.ppc.altivec.lvx
6309 // CHECK: @llvm.ppc.altivec.lvsl
6310 // CHECK: store <8 x i16> zeroinitializer
6311 // CHECK: @llvm.ppc.altivec.vperm
6312 // CHECK: @llvm.ppc.altivec.lvsr
6313 // CHECK: @llvm.ppc.altivec.vperm
6314 // CHECK: @llvm.ppc.altivec.stvx
6315 // CHECK-LE: @llvm.ppc.altivec.lvx
6316 // CHECK-LE: @llvm.ppc.altivec.lvsl
6317 // CHECK-LE: store <8 x i16> zeroinitializer
6318 // CHECK-LE: @llvm.ppc.altivec.vperm
6319 // CHECK-LE: @llvm.ppc.altivec.lvsr
6320 // CHECK-LE: @llvm.ppc.altivec.vperm
6321 // CHECK-LE: @llvm.ppc.altivec.stvx
6323 vec_stvlx(vus, 0, &vus);
6324 // CHECK: @llvm.ppc.altivec.lvx
6325 // CHECK: @llvm.ppc.altivec.lvsl
6326 // CHECK: store <8 x i16> zeroinitializer
6327 // CHECK: @llvm.ppc.altivec.vperm
6328 // CHECK: @llvm.ppc.altivec.lvsr
6329 // CHECK: @llvm.ppc.altivec.vperm
6330 // CHECK: @llvm.ppc.altivec.stvx
6331 // CHECK-LE: @llvm.ppc.altivec.lvx
6332 // CHECK-LE: @llvm.ppc.altivec.lvsl
6333 // CHECK-LE: store <8 x i16> zeroinitializer
6334 // CHECK-LE: @llvm.ppc.altivec.vperm
6335 // CHECK-LE: @llvm.ppc.altivec.lvsr
6336 // CHECK-LE: @llvm.ppc.altivec.vperm
6337 // CHECK-LE: @llvm.ppc.altivec.stvx
6339 vec_stvlx(vbs, 0, &vbs);
6340 // CHECK: store <8 x i16> zeroinitializer
6341 // CHECK: @llvm.ppc.altivec.lvx
6342 // CHECK: @llvm.ppc.altivec.lvsl
6343 // CHECK: @llvm.ppc.altivec.vperm
6344 // CHECK: @llvm.ppc.altivec.lvsr
6345 // CHECK: @llvm.ppc.altivec.vperm
6346 // CHECK: @llvm.ppc.altivec.stvx
6347 // CHECK-LE: store <8 x i16> zeroinitializer
6348 // CHECK-LE: @llvm.ppc.altivec.lvx
6349 // CHECK-LE: @llvm.ppc.altivec.lvsl
6350 // CHECK-LE: @llvm.ppc.altivec.vperm
6351 // CHECK-LE: @llvm.ppc.altivec.lvsr
6352 // CHECK-LE: @llvm.ppc.altivec.vperm
6353 // CHECK-LE: @llvm.ppc.altivec.stvx
6355 vec_stvlx(vp, 0, &vp);
6356 // CHECK: store <8 x i16> zeroinitializer
6357 // CHECK: @llvm.ppc.altivec.lvx
6358 // CHECK: @llvm.ppc.altivec.lvsl
6359 // CHECK: @llvm.ppc.altivec.vperm
6360 // CHECK: @llvm.ppc.altivec.lvsr
6361 // CHECK: @llvm.ppc.altivec.vperm
6362 // CHECK: @llvm.ppc.altivec.stvx
6363 // CHECK-LE: store <8 x i16> zeroinitializer
6364 // CHECK-LE: @llvm.ppc.altivec.lvx
6365 // CHECK-LE: @llvm.ppc.altivec.lvsl
6366 // CHECK-LE: @llvm.ppc.altivec.vperm
6367 // CHECK-LE: @llvm.ppc.altivec.lvsr
6368 // CHECK-LE: @llvm.ppc.altivec.vperm
6369 // CHECK-LE: @llvm.ppc.altivec.stvx
6371 vec_stvlx(vi, 0, ¶m_i);
6372 // CHECK: @llvm.ppc.altivec.lvx
6373 // CHECK: @llvm.ppc.altivec.lvsl
6374 // CHECK: store <4 x i32> zeroinitializer
6375 // CHECK: @llvm.ppc.altivec.vperm
6376 // CHECK: @llvm.ppc.altivec.lvsr
6377 // CHECK: @llvm.ppc.altivec.vperm
6378 // CHECK: @llvm.ppc.altivec.stvx
6379 // CHECK-LE: @llvm.ppc.altivec.lvx
6380 // CHECK-LE: @llvm.ppc.altivec.lvsl
6381 // CHECK-LE: store <4 x i32> zeroinitializer
6382 // CHECK-LE: @llvm.ppc.altivec.vperm
6383 // CHECK-LE: @llvm.ppc.altivec.lvsr
6384 // CHECK-LE: @llvm.ppc.altivec.vperm
6385 // CHECK-LE: @llvm.ppc.altivec.stvx
6387 vec_stvlx(vi, 0, &vi);
6388 // CHECK: @llvm.ppc.altivec.lvx
6389 // CHECK: @llvm.ppc.altivec.lvsl
6390 // CHECK: store <4 x i32> zeroinitializer
6391 // CHECK: @llvm.ppc.altivec.vperm
6392 // CHECK: @llvm.ppc.altivec.lvsr
6393 // CHECK: @llvm.ppc.altivec.vperm
6394 // CHECK: @llvm.ppc.altivec.stvx
6395 // CHECK-LE: @llvm.ppc.altivec.lvx
6396 // CHECK-LE: @llvm.ppc.altivec.lvsl
6397 // CHECK-LE: store <4 x i32> zeroinitializer
6398 // CHECK-LE: @llvm.ppc.altivec.vperm
6399 // CHECK-LE: @llvm.ppc.altivec.lvsr
6400 // CHECK-LE: @llvm.ppc.altivec.vperm
6401 // CHECK-LE: @llvm.ppc.altivec.stvx
6403 vec_stvlx(vui, 0, ¶m_ui);
6404 // CHECK: @llvm.ppc.altivec.lvx
6405 // CHECK: @llvm.ppc.altivec.lvsl
6406 // CHECK: store <4 x i32> zeroinitializer
6407 // CHECK: @llvm.ppc.altivec.vperm
6408 // CHECK: @llvm.ppc.altivec.lvsr
6409 // CHECK: @llvm.ppc.altivec.vperm
6410 // CHECK: @llvm.ppc.altivec.stvx
6411 // CHECK-LE: @llvm.ppc.altivec.lvx
6412 // CHECK-LE: @llvm.ppc.altivec.lvsl
6413 // CHECK-LE: store <4 x i32> zeroinitializer
6414 // CHECK-LE: @llvm.ppc.altivec.vperm
6415 // CHECK-LE: @llvm.ppc.altivec.lvsr
6416 // CHECK-LE: @llvm.ppc.altivec.vperm
6417 // CHECK-LE: @llvm.ppc.altivec.stvx
6419 vec_stvlx(vui, 0, &vui);
6420 // CHECK: @llvm.ppc.altivec.lvx
6421 // CHECK: @llvm.ppc.altivec.lvsl
6422 // CHECK: store <4 x i32> zeroinitializer
6423 // CHECK: @llvm.ppc.altivec.vperm
6424 // CHECK: @llvm.ppc.altivec.lvsr
6425 // CHECK: @llvm.ppc.altivec.vperm
6426 // CHECK: @llvm.ppc.altivec.stvx
6427 // CHECK-LE: @llvm.ppc.altivec.lvx
6428 // CHECK-LE: @llvm.ppc.altivec.lvsl
6429 // CHECK-LE: store <4 x i32> zeroinitializer
6430 // CHECK-LE: @llvm.ppc.altivec.vperm
6431 // CHECK-LE: @llvm.ppc.altivec.lvsr
6432 // CHECK-LE: @llvm.ppc.altivec.vperm
6433 // CHECK-LE: @llvm.ppc.altivec.stvx
6435 vec_stvlx(vbi, 0, &vbi);
6436 // CHECK: store <4 x i32> zeroinitializer
6437 // CHECK: @llvm.ppc.altivec.lvx
6438 // CHECK: @llvm.ppc.altivec.lvsl
6439 // CHECK: @llvm.ppc.altivec.vperm
6440 // CHECK: @llvm.ppc.altivec.lvsr
6441 // CHECK: @llvm.ppc.altivec.vperm
6442 // CHECK: @llvm.ppc.altivec.stvx
6443 // CHECK-LE: store <4 x i32> zeroinitializer
6444 // CHECK-LE: @llvm.ppc.altivec.lvx
6445 // CHECK-LE: @llvm.ppc.altivec.lvsl
6446 // CHECK-LE: @llvm.ppc.altivec.vperm
6447 // CHECK-LE: @llvm.ppc.altivec.lvsr
6448 // CHECK-LE: @llvm.ppc.altivec.vperm
6449 // CHECK-LE: @llvm.ppc.altivec.stvx
6451 vec_stvlx(vf, 0, &vf);
6452 // CHECK: @llvm.ppc.altivec.lvx
6453 // CHECK: @llvm.ppc.altivec.lvsl
6454 // CHECK: store <4 x float> zeroinitializer
6455 // CHECK: @llvm.ppc.altivec.vperm
6456 // CHECK: @llvm.ppc.altivec.lvsr
6457 // CHECK: @llvm.ppc.altivec.vperm
6458 // CHECK: @llvm.ppc.altivec.stvx
6459 // CHECK-LE: @llvm.ppc.altivec.lvx
6460 // CHECK-LE: @llvm.ppc.altivec.lvsl
6461 // CHECK-LE: store <4 x float> zeroinitializer
6462 // CHECK-LE: @llvm.ppc.altivec.vperm
6463 // CHECK-LE: @llvm.ppc.altivec.lvsr
6464 // CHECK-LE: @llvm.ppc.altivec.vperm
6465 // CHECK-LE: @llvm.ppc.altivec.stvx
6468 vec_stvlxl(vsc, 0, ¶m_sc);
6469 // CHECK: @llvm.ppc.altivec.lvx
6470 // CHECK: @llvm.ppc.altivec.lvsl
6471 // CHECK: store <16 x i8> zeroinitializer
6472 // CHECK: @llvm.ppc.altivec.vperm
6473 // CHECK: @llvm.ppc.altivec.lvsr
6474 // CHECK: @llvm.ppc.altivec.vperm
6475 // CHECK: @llvm.ppc.altivec.stvxl
6476 // CHECK-LE: @llvm.ppc.altivec.lvx
6477 // CHECK-LE: @llvm.ppc.altivec.lvsl
6478 // CHECK-LE: store <16 x i8> zeroinitializer
6479 // CHECK-LE: @llvm.ppc.altivec.vperm
6480 // CHECK-LE: @llvm.ppc.altivec.lvsr
6481 // CHECK-LE: @llvm.ppc.altivec.vperm
6482 // CHECK-LE: @llvm.ppc.altivec.stvxl
6484 vec_stvlxl(vsc, 0, &vsc);
6485 // CHECK: @llvm.ppc.altivec.lvx
6486 // CHECK: @llvm.ppc.altivec.lvsl
6487 // CHECK: store <16 x i8> zeroinitializer
6488 // CHECK: @llvm.ppc.altivec.vperm
6489 // CHECK: @llvm.ppc.altivec.lvsr
6490 // CHECK: @llvm.ppc.altivec.vperm
6491 // CHECK: @llvm.ppc.altivec.stvxl
6492 // CHECK-LE: @llvm.ppc.altivec.lvx
6493 // CHECK-LE: @llvm.ppc.altivec.lvsl
6494 // CHECK-LE: store <16 x i8> zeroinitializer
6495 // CHECK-LE: @llvm.ppc.altivec.vperm
6496 // CHECK-LE: @llvm.ppc.altivec.lvsr
6497 // CHECK-LE: @llvm.ppc.altivec.vperm
6498 // CHECK-LE: @llvm.ppc.altivec.stvxl
6500 vec_stvlxl(vuc, 0, ¶m_uc);
6501 // CHECK: @llvm.ppc.altivec.lvx
6502 // CHECK: @llvm.ppc.altivec.lvsl
6503 // CHECK: store <16 x i8> zeroinitializer
6504 // CHECK: @llvm.ppc.altivec.vperm
6505 // CHECK: @llvm.ppc.altivec.lvsr
6506 // CHECK: @llvm.ppc.altivec.vperm
6507 // CHECK: @llvm.ppc.altivec.stvxl
6508 // CHECK-LE: @llvm.ppc.altivec.lvx
6509 // CHECK-LE: @llvm.ppc.altivec.lvsl
6510 // CHECK-LE: store <16 x i8> zeroinitializer
6511 // CHECK-LE: @llvm.ppc.altivec.vperm
6512 // CHECK-LE: @llvm.ppc.altivec.lvsr
6513 // CHECK-LE: @llvm.ppc.altivec.vperm
6514 // CHECK-LE: @llvm.ppc.altivec.stvxl
6516 vec_stvlxl(vuc, 0, &vuc);
6517 // CHECK: @llvm.ppc.altivec.lvx
6518 // CHECK: @llvm.ppc.altivec.lvsl
6519 // CHECK: store <16 x i8> zeroinitializer
6520 // CHECK: @llvm.ppc.altivec.vperm
6521 // CHECK: @llvm.ppc.altivec.lvsr
6522 // CHECK: @llvm.ppc.altivec.vperm
6523 // CHECK: @llvm.ppc.altivec.stvxl
6524 // CHECK-LE: @llvm.ppc.altivec.lvx
6525 // CHECK-LE: @llvm.ppc.altivec.lvsl
6526 // CHECK-LE: store <16 x i8> zeroinitializer
6527 // CHECK-LE: @llvm.ppc.altivec.vperm
6528 // CHECK-LE: @llvm.ppc.altivec.lvsr
6529 // CHECK-LE: @llvm.ppc.altivec.vperm
6530 // CHECK-LE: @llvm.ppc.altivec.stvxl
6532 vec_stvlxl(vbc, 0, &vbc);
6533 // CHECK: store <16 x i8> zeroinitializer
6534 // CHECK: @llvm.ppc.altivec.lvx
6535 // CHECK: @llvm.ppc.altivec.lvsl
6536 // CHECK: @llvm.ppc.altivec.vperm
6537 // CHECK: @llvm.ppc.altivec.lvsr
6538 // CHECK: @llvm.ppc.altivec.vperm
6539 // CHECK: @llvm.ppc.altivec.stvxl
6540 // CHECK-LE: store <16 x i8> zeroinitializer
6541 // CHECK-LE: @llvm.ppc.altivec.lvx
6542 // CHECK-LE: @llvm.ppc.altivec.lvsl
6543 // CHECK-LE: @llvm.ppc.altivec.vperm
6544 // CHECK-LE: @llvm.ppc.altivec.lvsr
6545 // CHECK-LE: @llvm.ppc.altivec.vperm
6546 // CHECK-LE: @llvm.ppc.altivec.stvxl
6548 vec_stvlxl(vs, 0, ¶m_s);
6549 // CHECK: @llvm.ppc.altivec.lvx
6550 // CHECK: @llvm.ppc.altivec.lvsl
6551 // CHECK: store <8 x i16> zeroinitializer
6552 // CHECK: @llvm.ppc.altivec.vperm
6553 // CHECK: @llvm.ppc.altivec.lvsr
6554 // CHECK: @llvm.ppc.altivec.vperm
6555 // CHECK: @llvm.ppc.altivec.stvxl
6556 // CHECK-LE: @llvm.ppc.altivec.lvx
6557 // CHECK-LE: @llvm.ppc.altivec.lvsl
6558 // CHECK-LE: store <8 x i16> zeroinitializer
6559 // CHECK-LE: @llvm.ppc.altivec.vperm
6560 // CHECK-LE: @llvm.ppc.altivec.lvsr
6561 // CHECK-LE: @llvm.ppc.altivec.vperm
6562 // CHECK-LE: @llvm.ppc.altivec.stvxl
6564 vec_stvlxl(vs, 0, &vs);
6565 // CHECK: @llvm.ppc.altivec.lvx
6566 // CHECK: @llvm.ppc.altivec.lvsl
6567 // CHECK: store <8 x i16> zeroinitializer
6568 // CHECK: @llvm.ppc.altivec.vperm
6569 // CHECK: @llvm.ppc.altivec.lvsr
6570 // CHECK: @llvm.ppc.altivec.vperm
6571 // CHECK: @llvm.ppc.altivec.stvxl
6572 // CHECK-LE: @llvm.ppc.altivec.lvx
6573 // CHECK-LE: @llvm.ppc.altivec.lvsl
6574 // CHECK-LE: store <8 x i16> zeroinitializer
6575 // CHECK-LE: @llvm.ppc.altivec.vperm
6576 // CHECK-LE: @llvm.ppc.altivec.lvsr
6577 // CHECK-LE: @llvm.ppc.altivec.vperm
6578 // CHECK-LE: @llvm.ppc.altivec.stvxl
6580 vec_stvlxl(vus, 0, ¶m_us);
6581 // CHECK: @llvm.ppc.altivec.lvx
6582 // CHECK: @llvm.ppc.altivec.lvsl
6583 // CHECK: store <8 x i16> zeroinitializer
6584 // CHECK: @llvm.ppc.altivec.vperm
6585 // CHECK: @llvm.ppc.altivec.lvsr
6586 // CHECK: @llvm.ppc.altivec.vperm
6587 // CHECK: @llvm.ppc.altivec.stvxl
6588 // CHECK-LE: @llvm.ppc.altivec.lvx
6589 // CHECK-LE: @llvm.ppc.altivec.lvsl
6590 // CHECK-LE: store <8 x i16> zeroinitializer
6591 // CHECK-LE: @llvm.ppc.altivec.vperm
6592 // CHECK-LE: @llvm.ppc.altivec.lvsr
6593 // CHECK-LE: @llvm.ppc.altivec.vperm
6594 // CHECK-LE: @llvm.ppc.altivec.stvxl
6596 vec_stvlxl(vus, 0, &vus);
6597 // CHECK: @llvm.ppc.altivec.lvx
6598 // CHECK: @llvm.ppc.altivec.lvsl
6599 // CHECK: store <8 x i16> zeroinitializer
6600 // CHECK: @llvm.ppc.altivec.vperm
6601 // CHECK: @llvm.ppc.altivec.lvsr
6602 // CHECK: @llvm.ppc.altivec.vperm
6603 // CHECK: @llvm.ppc.altivec.stvxl
6604 // CHECK-LE: @llvm.ppc.altivec.lvx
6605 // CHECK-LE: @llvm.ppc.altivec.lvsl
6606 // CHECK-LE: store <8 x i16> zeroinitializer
6607 // CHECK-LE: @llvm.ppc.altivec.vperm
6608 // CHECK-LE: @llvm.ppc.altivec.lvsr
6609 // CHECK-LE: @llvm.ppc.altivec.vperm
6610 // CHECK-LE: @llvm.ppc.altivec.stvxl
6612 vec_stvlxl(vbs, 0, &vbs);
6613 // CHECK: store <8 x i16> zeroinitializer
6614 // CHECK: @llvm.ppc.altivec.lvx
6615 // CHECK: @llvm.ppc.altivec.lvsl
6616 // CHECK: @llvm.ppc.altivec.vperm
6617 // CHECK: @llvm.ppc.altivec.lvsr
6618 // CHECK: @llvm.ppc.altivec.vperm
6619 // CHECK: @llvm.ppc.altivec.stvxl
6620 // CHECK-LE: store <8 x i16> zeroinitializer
6621 // CHECK-LE: @llvm.ppc.altivec.lvx
6622 // CHECK-LE: @llvm.ppc.altivec.lvsl
6623 // CHECK-LE: @llvm.ppc.altivec.vperm
6624 // CHECK-LE: @llvm.ppc.altivec.lvsr
6625 // CHECK-LE: @llvm.ppc.altivec.vperm
6626 // CHECK-LE: @llvm.ppc.altivec.stvxl
6628 vec_stvlxl(vp, 0, &vp);
6629 // CHECK: store <8 x i16> zeroinitializer
6630 // CHECK: @llvm.ppc.altivec.lvx
6631 // CHECK: @llvm.ppc.altivec.lvsl
6632 // CHECK: @llvm.ppc.altivec.vperm
6633 // CHECK: @llvm.ppc.altivec.lvsr
6634 // CHECK: @llvm.ppc.altivec.vperm
6635 // CHECK: @llvm.ppc.altivec.stvxl
6636 // CHECK-LE: store <8 x i16> zeroinitializer
6637 // CHECK-LE: @llvm.ppc.altivec.lvx
6638 // CHECK-LE: @llvm.ppc.altivec.lvsl
6639 // CHECK-LE: @llvm.ppc.altivec.vperm
6640 // CHECK-LE: @llvm.ppc.altivec.lvsr
6641 // CHECK-LE: @llvm.ppc.altivec.vperm
6642 // CHECK-LE: @llvm.ppc.altivec.stvxl
6644 vec_stvlxl(vi, 0, ¶m_i);
6645 // CHECK: @llvm.ppc.altivec.lvx
6646 // CHECK: @llvm.ppc.altivec.lvsl
6647 // CHECK: store <4 x i32> zeroinitializer
6648 // CHECK: @llvm.ppc.altivec.vperm
6649 // CHECK: @llvm.ppc.altivec.lvsr
6650 // CHECK: @llvm.ppc.altivec.vperm
6651 // CHECK: @llvm.ppc.altivec.stvxl
6652 // CHECK-LE: @llvm.ppc.altivec.lvx
6653 // CHECK-LE: @llvm.ppc.altivec.lvsl
6654 // CHECK-LE: store <4 x i32> zeroinitializer
6655 // CHECK-LE: @llvm.ppc.altivec.vperm
6656 // CHECK-LE: @llvm.ppc.altivec.lvsr
6657 // CHECK-LE: @llvm.ppc.altivec.vperm
6658 // CHECK-LE: @llvm.ppc.altivec.stvxl
6660 vec_stvlxl(vi, 0, &vi);
6661 // CHECK: @llvm.ppc.altivec.lvx
6662 // CHECK: @llvm.ppc.altivec.lvsl
6663 // CHECK: store <4 x i32> zeroinitializer
6664 // CHECK: @llvm.ppc.altivec.vperm
6665 // CHECK: @llvm.ppc.altivec.lvsr
6666 // CHECK: @llvm.ppc.altivec.vperm
6667 // CHECK: @llvm.ppc.altivec.stvxl
6668 // CHECK-LE: @llvm.ppc.altivec.lvx
6669 // CHECK-LE: @llvm.ppc.altivec.lvsl
6670 // CHECK-LE: store <4 x i32> zeroinitializer
6671 // CHECK-LE: @llvm.ppc.altivec.vperm
6672 // CHECK-LE: @llvm.ppc.altivec.lvsr
6673 // CHECK-LE: @llvm.ppc.altivec.vperm
6674 // CHECK-LE: @llvm.ppc.altivec.stvxl
6676 vec_stvlxl(vui, 0, ¶m_ui);
6677 // CHECK: @llvm.ppc.altivec.lvx
6678 // CHECK: @llvm.ppc.altivec.lvsl
6679 // CHECK: store <4 x i32> zeroinitializer
6680 // CHECK: @llvm.ppc.altivec.vperm
6681 // CHECK: @llvm.ppc.altivec.lvsr
6682 // CHECK: @llvm.ppc.altivec.vperm
6683 // CHECK: @llvm.ppc.altivec.stvxl
6684 // CHECK-LE: @llvm.ppc.altivec.lvx
6685 // CHECK-LE: @llvm.ppc.altivec.lvsl
6686 // CHECK-LE: store <4 x i32> zeroinitializer
6687 // CHECK-LE: @llvm.ppc.altivec.vperm
6688 // CHECK-LE: @llvm.ppc.altivec.lvsr
6689 // CHECK-LE: @llvm.ppc.altivec.vperm
6690 // CHECK-LE: @llvm.ppc.altivec.stvxl
6692 vec_stvlxl(vui, 0, &vui);
6693 // CHECK: @llvm.ppc.altivec.lvx
6694 // CHECK: @llvm.ppc.altivec.lvsl
6695 // CHECK: store <4 x i32> zeroinitializer
6696 // CHECK: @llvm.ppc.altivec.vperm
6697 // CHECK: @llvm.ppc.altivec.lvsr
6698 // CHECK: @llvm.ppc.altivec.vperm
6699 // CHECK: @llvm.ppc.altivec.stvxl
6700 // CHECK-LE: @llvm.ppc.altivec.lvx
6701 // CHECK-LE: @llvm.ppc.altivec.lvsl
6702 // CHECK-LE: store <4 x i32> zeroinitializer
6703 // CHECK-LE: @llvm.ppc.altivec.vperm
6704 // CHECK-LE: @llvm.ppc.altivec.lvsr
6705 // CHECK-LE: @llvm.ppc.altivec.vperm
6706 // CHECK-LE: @llvm.ppc.altivec.stvxl
6708 vec_stvlxl(vbi, 0, &vbi);
6709 // CHECK: store <4 x i32> zeroinitializer
6710 // CHECK: @llvm.ppc.altivec.lvx
6711 // CHECK: @llvm.ppc.altivec.lvsl
6712 // CHECK: @llvm.ppc.altivec.vperm
6713 // CHECK: @llvm.ppc.altivec.lvsr
6714 // CHECK: @llvm.ppc.altivec.vperm
6715 // CHECK: @llvm.ppc.altivec.stvxl
6716 // CHECK-LE: store <4 x i32> zeroinitializer
6717 // CHECK-LE: @llvm.ppc.altivec.lvx
6718 // CHECK-LE: @llvm.ppc.altivec.lvsl
6719 // CHECK-LE: @llvm.ppc.altivec.vperm
6720 // CHECK-LE: @llvm.ppc.altivec.lvsr
6721 // CHECK-LE: @llvm.ppc.altivec.vperm
6722 // CHECK-LE: @llvm.ppc.altivec.stvxl
6724 vec_stvlxl(vf, 0, &vf);
6725 // CHECK: @llvm.ppc.altivec.lvx
6726 // CHECK: @llvm.ppc.altivec.lvsl
6727 // CHECK: store <4 x float> zeroinitializer
6728 // CHECK: @llvm.ppc.altivec.vperm
6729 // CHECK: @llvm.ppc.altivec.lvsr
6730 // CHECK: @llvm.ppc.altivec.vperm
6731 // CHECK: @llvm.ppc.altivec.stvxl
6732 // CHECK-LE: @llvm.ppc.altivec.lvx
6733 // CHECK-LE: @llvm.ppc.altivec.lvsl
6734 // CHECK-LE: store <4 x float> zeroinitializer
6735 // CHECK-LE: @llvm.ppc.altivec.vperm
6736 // CHECK-LE: @llvm.ppc.altivec.lvsr
6737 // CHECK-LE: @llvm.ppc.altivec.vperm
6738 // CHECK-LE: @llvm.ppc.altivec.stvxl
6741 vec_stvrx(vsc, 0, ¶m_sc);
6742 // CHECK: @llvm.ppc.altivec.lvx
6743 // CHECK: @llvm.ppc.altivec.lvsl
6744 // CHECK: store <16 x i8> zeroinitializer
6745 // CHECK: @llvm.ppc.altivec.vperm
6746 // CHECK: @llvm.ppc.altivec.lvsr
6747 // CHECK: @llvm.ppc.altivec.vperm
6748 // CHECK: @llvm.ppc.altivec.stvx
6749 // CHECK-LE: @llvm.ppc.altivec.lvx
6750 // CHECK-LE: @llvm.ppc.altivec.lvsl
6751 // CHECK-LE: store <16 x i8> zeroinitializer
6752 // CHECK-LE: @llvm.ppc.altivec.vperm
6753 // CHECK-LE: @llvm.ppc.altivec.lvsr
6754 // CHECK-LE: @llvm.ppc.altivec.vperm
6755 // CHECK-LE: @llvm.ppc.altivec.stvx
6757 vec_stvrx(vsc, 0, &vsc);
6758 // CHECK: @llvm.ppc.altivec.lvx
6759 // CHECK: @llvm.ppc.altivec.lvsl
6760 // CHECK: store <16 x i8> zeroinitializer
6761 // CHECK: @llvm.ppc.altivec.vperm
6762 // CHECK: @llvm.ppc.altivec.lvsr
6763 // CHECK: @llvm.ppc.altivec.vperm
6764 // CHECK: @llvm.ppc.altivec.stvx
6765 // CHECK-LE: @llvm.ppc.altivec.lvx
6766 // CHECK-LE: @llvm.ppc.altivec.lvsl
6767 // CHECK-LE: store <16 x i8> zeroinitializer
6768 // CHECK-LE: @llvm.ppc.altivec.vperm
6769 // CHECK-LE: @llvm.ppc.altivec.lvsr
6770 // CHECK-LE: @llvm.ppc.altivec.vperm
6771 // CHECK-LE: @llvm.ppc.altivec.stvx
6773 vec_stvrx(vuc, 0, ¶m_uc);
6774 // CHECK: @llvm.ppc.altivec.lvx
6775 // CHECK: @llvm.ppc.altivec.lvsl
6776 // CHECK: store <16 x i8> zeroinitializer
6777 // CHECK: @llvm.ppc.altivec.vperm
6778 // CHECK: @llvm.ppc.altivec.lvsr
6779 // CHECK: @llvm.ppc.altivec.vperm
6780 // CHECK: @llvm.ppc.altivec.stvx
6781 // CHECK-LE: @llvm.ppc.altivec.lvx
6782 // CHECK-LE: @llvm.ppc.altivec.lvsl
6783 // CHECK-LE: store <16 x i8> zeroinitializer
6784 // CHECK-LE: @llvm.ppc.altivec.vperm
6785 // CHECK-LE: @llvm.ppc.altivec.lvsr
6786 // CHECK-LE: @llvm.ppc.altivec.vperm
6787 // CHECK-LE: @llvm.ppc.altivec.stvx
6789 vec_stvrx(vuc, 0, &vuc);
6790 // CHECK: @llvm.ppc.altivec.lvx
6791 // CHECK: @llvm.ppc.altivec.lvsl
6792 // CHECK: store <16 x i8> zeroinitializer
6793 // CHECK: @llvm.ppc.altivec.vperm
6794 // CHECK: @llvm.ppc.altivec.lvsr
6795 // CHECK: @llvm.ppc.altivec.vperm
6796 // CHECK: @llvm.ppc.altivec.stvx
6797 // CHECK-LE: @llvm.ppc.altivec.lvx
6798 // CHECK-LE: @llvm.ppc.altivec.lvsl
6799 // CHECK-LE: store <16 x i8> zeroinitializer
6800 // CHECK-LE: @llvm.ppc.altivec.vperm
6801 // CHECK-LE: @llvm.ppc.altivec.lvsr
6802 // CHECK-LE: @llvm.ppc.altivec.vperm
6803 // CHECK-LE: @llvm.ppc.altivec.stvx
6805 vec_stvrx(vbc, 0, &vbc);
6806 // CHECK: @llvm.ppc.altivec.lvx
6807 // CHECK: store <16 x i8> zeroinitializer
6808 // CHECK: @llvm.ppc.altivec.lvsl
6809 // CHECK: @llvm.ppc.altivec.vperm
6810 // CHECK: @llvm.ppc.altivec.lvsr
6811 // CHECK: @llvm.ppc.altivec.vperm
6812 // CHECK: @llvm.ppc.altivec.stvx
6813 // CHECK-LE: @llvm.ppc.altivec.lvx
6814 // CHECK-LE: store <16 x i8> zeroinitializer
6815 // CHECK-LE: @llvm.ppc.altivec.lvsl
6816 // CHECK-LE: @llvm.ppc.altivec.vperm
6817 // CHECK-LE: @llvm.ppc.altivec.lvsr
6818 // CHECK-LE: @llvm.ppc.altivec.vperm
6819 // CHECK-LE: @llvm.ppc.altivec.stvx
6821 vec_stvrx(vs, 0, ¶m_s);
6822 // CHECK: @llvm.ppc.altivec.lvx
6823 // CHECK: @llvm.ppc.altivec.lvsl
6824 // CHECK: store <8 x i16> zeroinitializer
6825 // CHECK: @llvm.ppc.altivec.vperm
6826 // CHECK: @llvm.ppc.altivec.lvsr
6827 // CHECK: @llvm.ppc.altivec.vperm
6828 // CHECK: @llvm.ppc.altivec.stvx
6829 // CHECK-LE: @llvm.ppc.altivec.lvx
6830 // CHECK-LE: @llvm.ppc.altivec.lvsl
6831 // CHECK-LE: store <8 x i16> zeroinitializer
6832 // CHECK-LE: @llvm.ppc.altivec.vperm
6833 // CHECK-LE: @llvm.ppc.altivec.lvsr
6834 // CHECK-LE: @llvm.ppc.altivec.vperm
6835 // CHECK-LE: @llvm.ppc.altivec.stvx
6837 vec_stvrx(vs, 0, &vs);
6838 // CHECK: @llvm.ppc.altivec.lvx
6839 // CHECK: @llvm.ppc.altivec.lvsl
6840 // CHECK: store <8 x i16> zeroinitializer
6841 // CHECK: @llvm.ppc.altivec.vperm
6842 // CHECK: @llvm.ppc.altivec.lvsr
6843 // CHECK: @llvm.ppc.altivec.vperm
6844 // CHECK: @llvm.ppc.altivec.stvx
6845 // CHECK-LE: @llvm.ppc.altivec.lvx
6846 // CHECK-LE: @llvm.ppc.altivec.lvsl
6847 // CHECK-LE: store <8 x i16> zeroinitializer
6848 // CHECK-LE: @llvm.ppc.altivec.vperm
6849 // CHECK-LE: @llvm.ppc.altivec.lvsr
6850 // CHECK-LE: @llvm.ppc.altivec.vperm
6851 // CHECK-LE: @llvm.ppc.altivec.stvx
6853 vec_stvrx(vus, 0, ¶m_us);
6854 // CHECK: @llvm.ppc.altivec.lvx
6855 // CHECK: @llvm.ppc.altivec.lvsl
6856 // CHECK: store <8 x i16> zeroinitializer
6857 // CHECK: @llvm.ppc.altivec.vperm
6858 // CHECK: @llvm.ppc.altivec.lvsr
6859 // CHECK: @llvm.ppc.altivec.vperm
6860 // CHECK: @llvm.ppc.altivec.stvx
6861 // CHECK-LE: @llvm.ppc.altivec.lvx
6862 // CHECK-LE: @llvm.ppc.altivec.lvsl
6863 // CHECK-LE: store <8 x i16> zeroinitializer
6864 // CHECK-LE: @llvm.ppc.altivec.vperm
6865 // CHECK-LE: @llvm.ppc.altivec.lvsr
6866 // CHECK-LE: @llvm.ppc.altivec.vperm
6867 // CHECK-LE: @llvm.ppc.altivec.stvx
6869 vec_stvrx(vus, 0, &vus);
6870 // CHECK: @llvm.ppc.altivec.lvx
6871 // CHECK: @llvm.ppc.altivec.lvsl
6872 // CHECK: store <8 x i16> zeroinitializer
6873 // CHECK: @llvm.ppc.altivec.vperm
6874 // CHECK: @llvm.ppc.altivec.lvsr
6875 // CHECK: @llvm.ppc.altivec.vperm
6876 // CHECK: @llvm.ppc.altivec.stvx
6877 // CHECK-LE: @llvm.ppc.altivec.lvx
6878 // CHECK-LE: @llvm.ppc.altivec.lvsl
6879 // CHECK-LE: store <8 x i16> zeroinitializer
6880 // CHECK-LE: @llvm.ppc.altivec.vperm
6881 // CHECK-LE: @llvm.ppc.altivec.lvsr
6882 // CHECK-LE: @llvm.ppc.altivec.vperm
6883 // CHECK-LE: @llvm.ppc.altivec.stvx
6885 vec_stvrx(vbs, 0, &vbs);
6886 // CHECK: @llvm.ppc.altivec.lvx
6887 // CHECK: store <8 x i16> zeroinitializer
6888 // CHECK: @llvm.ppc.altivec.lvsl
6889 // CHECK: @llvm.ppc.altivec.vperm
6890 // CHECK: @llvm.ppc.altivec.lvsr
6891 // CHECK: @llvm.ppc.altivec.vperm
6892 // CHECK: @llvm.ppc.altivec.stvx
6893 // CHECK-LE: @llvm.ppc.altivec.lvx
6894 // CHECK-LE: store <8 x i16> zeroinitializer
6895 // CHECK-LE: @llvm.ppc.altivec.lvsl
6896 // CHECK-LE: @llvm.ppc.altivec.vperm
6897 // CHECK-LE: @llvm.ppc.altivec.lvsr
6898 // CHECK-LE: @llvm.ppc.altivec.vperm
6899 // CHECK-LE: @llvm.ppc.altivec.stvx
6901 vec_stvrx(vp, 0, &vp);
6902 // CHECK: @llvm.ppc.altivec.lvx
6903 // CHECK: store <8 x i16> zeroinitializer
6904 // CHECK: @llvm.ppc.altivec.lvsl
6905 // CHECK: @llvm.ppc.altivec.vperm
6906 // CHECK: @llvm.ppc.altivec.lvsr
6907 // CHECK: @llvm.ppc.altivec.vperm
6908 // CHECK: @llvm.ppc.altivec.stvx
6909 // CHECK-LE: @llvm.ppc.altivec.lvx
6910 // CHECK-LE: store <8 x i16> zeroinitializer
6911 // CHECK-LE: @llvm.ppc.altivec.lvsl
6912 // CHECK-LE: @llvm.ppc.altivec.vperm
6913 // CHECK-LE: @llvm.ppc.altivec.lvsr
6914 // CHECK-LE: @llvm.ppc.altivec.vperm
6915 // CHECK-LE: @llvm.ppc.altivec.stvx
6917 vec_stvrx(vi, 0, ¶m_i);
6918 // CHECK: @llvm.ppc.altivec.lvx
6919 // CHECK: @llvm.ppc.altivec.lvsl
6920 // CHECK: store <4 x i32> zeroinitializer
6921 // CHECK: @llvm.ppc.altivec.vperm
6922 // CHECK: @llvm.ppc.altivec.lvsr
6923 // CHECK: @llvm.ppc.altivec.vperm
6924 // CHECK: @llvm.ppc.altivec.stvx
6925 // CHECK-LE: @llvm.ppc.altivec.lvx
6926 // CHECK-LE: @llvm.ppc.altivec.lvsl
6927 // CHECK-LE: store <4 x i32> zeroinitializer
6928 // CHECK-LE: @llvm.ppc.altivec.vperm
6929 // CHECK-LE: @llvm.ppc.altivec.lvsr
6930 // CHECK-LE: @llvm.ppc.altivec.vperm
6931 // CHECK-LE: @llvm.ppc.altivec.stvx
6933 vec_stvrx(vi, 0, &vi);
6934 // CHECK: @llvm.ppc.altivec.lvx
6935 // CHECK: @llvm.ppc.altivec.lvsl
6936 // CHECK: store <4 x i32> zeroinitializer
6937 // CHECK: @llvm.ppc.altivec.vperm
6938 // CHECK: @llvm.ppc.altivec.lvsr
6939 // CHECK: @llvm.ppc.altivec.vperm
6940 // CHECK: @llvm.ppc.altivec.stvx
6941 // CHECK-LE: @llvm.ppc.altivec.lvx
6942 // CHECK-LE: @llvm.ppc.altivec.lvsl
6943 // CHECK-LE: store <4 x i32> zeroinitializer
6944 // CHECK-LE: @llvm.ppc.altivec.vperm
6945 // CHECK-LE: @llvm.ppc.altivec.lvsr
6946 // CHECK-LE: @llvm.ppc.altivec.vperm
6947 // CHECK-LE: @llvm.ppc.altivec.stvx
6949 vec_stvrx(vui, 0, ¶m_ui);
6950 // CHECK: @llvm.ppc.altivec.lvx
6951 // CHECK: @llvm.ppc.altivec.lvsl
6952 // CHECK: store <4 x i32> zeroinitializer
6953 // CHECK: @llvm.ppc.altivec.vperm
6954 // CHECK: @llvm.ppc.altivec.lvsr
6955 // CHECK: @llvm.ppc.altivec.vperm
6956 // CHECK: @llvm.ppc.altivec.stvx
6957 // CHECK-LE: @llvm.ppc.altivec.lvx
6958 // CHECK-LE: @llvm.ppc.altivec.lvsl
6959 // CHECK-LE: store <4 x i32> zeroinitializer
6960 // CHECK-LE: @llvm.ppc.altivec.vperm
6961 // CHECK-LE: @llvm.ppc.altivec.lvsr
6962 // CHECK-LE: @llvm.ppc.altivec.vperm
6963 // CHECK-LE: @llvm.ppc.altivec.stvx
6965 vec_stvrx(vui, 0, &vui);
6966 // CHECK: @llvm.ppc.altivec.lvx
6967 // CHECK: @llvm.ppc.altivec.lvsl
6968 // CHECK: store <4 x i32> zeroinitializer
6969 // CHECK: @llvm.ppc.altivec.vperm
6970 // CHECK: @llvm.ppc.altivec.lvsr
6971 // CHECK: @llvm.ppc.altivec.vperm
6972 // CHECK: @llvm.ppc.altivec.stvx
6973 // CHECK-LE: @llvm.ppc.altivec.lvx
6974 // CHECK-LE: @llvm.ppc.altivec.lvsl
6975 // CHECK-LE: store <4 x i32> zeroinitializer
6976 // CHECK-LE: @llvm.ppc.altivec.vperm
6977 // CHECK-LE: @llvm.ppc.altivec.lvsr
6978 // CHECK-LE: @llvm.ppc.altivec.vperm
6979 // CHECK-LE: @llvm.ppc.altivec.stvx
6981 vec_stvrx(vbi, 0, &vbi);
6982 // CHECK: @llvm.ppc.altivec.lvx
6983 // CHECK: store <4 x i32> zeroinitializer
6984 // CHECK: @llvm.ppc.altivec.lvsl
6985 // CHECK: @llvm.ppc.altivec.vperm
6986 // CHECK: @llvm.ppc.altivec.lvsr
6987 // CHECK: @llvm.ppc.altivec.vperm
6988 // CHECK: @llvm.ppc.altivec.stvx
6989 // CHECK-LE: @llvm.ppc.altivec.lvx
6990 // CHECK-LE: store <4 x i32> zeroinitializer
6991 // CHECK-LE: @llvm.ppc.altivec.lvsl
6992 // CHECK-LE: @llvm.ppc.altivec.vperm
6993 // CHECK-LE: @llvm.ppc.altivec.lvsr
6994 // CHECK-LE: @llvm.ppc.altivec.vperm
6995 // CHECK-LE: @llvm.ppc.altivec.stvx
6997 vec_stvrx(vf, 0, &vf);
6998 // CHECK: @llvm.ppc.altivec.lvx
6999 // CHECK: @llvm.ppc.altivec.lvsl
7000 // CHECK: store <4 x float> zeroinitializer
7001 // CHECK: @llvm.ppc.altivec.vperm
7002 // CHECK: @llvm.ppc.altivec.lvsr
7003 // CHECK: @llvm.ppc.altivec.vperm
7004 // CHECK: @llvm.ppc.altivec.stvx
7005 // CHECK-LE: @llvm.ppc.altivec.lvx
7006 // CHECK-LE: @llvm.ppc.altivec.lvsl
7007 // CHECK-LE: store <4 x float> zeroinitializer
7008 // CHECK-LE: @llvm.ppc.altivec.vperm
7009 // CHECK-LE: @llvm.ppc.altivec.lvsr
7010 // CHECK-LE: @llvm.ppc.altivec.vperm
7011 // CHECK-LE: @llvm.ppc.altivec.stvx
7014 vec_stvrxl(vsc, 0, ¶m_sc);
7015 // CHECK: @llvm.ppc.altivec.lvx
7016 // CHECK: @llvm.ppc.altivec.lvsl
7017 // CHECK: store <16 x i8> zeroinitializer
7018 // CHECK: @llvm.ppc.altivec.vperm
7019 // CHECK: @llvm.ppc.altivec.lvsr
7020 // CHECK: @llvm.ppc.altivec.vperm
7021 // CHECK: @llvm.ppc.altivec.stvxl
7022 // CHECK-LE: @llvm.ppc.altivec.lvx
7023 // CHECK-LE: @llvm.ppc.altivec.lvsl
7024 // CHECK-LE: store <16 x i8> zeroinitializer
7025 // CHECK-LE: @llvm.ppc.altivec.vperm
7026 // CHECK-LE: @llvm.ppc.altivec.lvsr
7027 // CHECK-LE: @llvm.ppc.altivec.vperm
7028 // CHECK-LE: @llvm.ppc.altivec.stvxl
7030 vec_stvrxl(vsc, 0, &vsc);
7031 // CHECK: @llvm.ppc.altivec.lvx
7032 // CHECK: @llvm.ppc.altivec.lvsl
7033 // CHECK: store <16 x i8> zeroinitializer
7034 // CHECK: @llvm.ppc.altivec.vperm
7035 // CHECK: @llvm.ppc.altivec.lvsr
7036 // CHECK: @llvm.ppc.altivec.vperm
7037 // CHECK: @llvm.ppc.altivec.stvxl
7038 // CHECK-LE: @llvm.ppc.altivec.lvx
7039 // CHECK-LE: @llvm.ppc.altivec.lvsl
7040 // CHECK-LE: store <16 x i8> zeroinitializer
7041 // CHECK-LE: @llvm.ppc.altivec.vperm
7042 // CHECK-LE: @llvm.ppc.altivec.lvsr
7043 // CHECK-LE: @llvm.ppc.altivec.vperm
7044 // CHECK-LE: @llvm.ppc.altivec.stvxl
7046 vec_stvrxl(vuc, 0, ¶m_uc);
7047 // CHECK: @llvm.ppc.altivec.lvx
7048 // CHECK: @llvm.ppc.altivec.lvsl
7049 // CHECK: store <16 x i8> zeroinitializer
7050 // CHECK: @llvm.ppc.altivec.vperm
7051 // CHECK: @llvm.ppc.altivec.lvsr
7052 // CHECK: @llvm.ppc.altivec.vperm
7053 // CHECK: @llvm.ppc.altivec.stvxl
7054 // CHECK-LE: @llvm.ppc.altivec.lvx
7055 // CHECK-LE: @llvm.ppc.altivec.lvsl
7056 // CHECK-LE: store <16 x i8> zeroinitializer
7057 // CHECK-LE: @llvm.ppc.altivec.vperm
7058 // CHECK-LE: @llvm.ppc.altivec.lvsr
7059 // CHECK-LE: @llvm.ppc.altivec.vperm
7060 // CHECK-LE: @llvm.ppc.altivec.stvxl
7062 vec_stvrxl(vuc, 0, &vuc);
7063 // CHECK: @llvm.ppc.altivec.lvx
7064 // CHECK: @llvm.ppc.altivec.lvsl
7065 // CHECK: store <16 x i8> zeroinitializer
7066 // CHECK: @llvm.ppc.altivec.vperm
7067 // CHECK: @llvm.ppc.altivec.lvsr
7068 // CHECK: @llvm.ppc.altivec.vperm
7069 // CHECK: @llvm.ppc.altivec.stvxl
7070 // CHECK-LE: @llvm.ppc.altivec.lvx
7071 // CHECK-LE: @llvm.ppc.altivec.lvsl
7072 // CHECK-LE: store <16 x i8> zeroinitializer
7073 // CHECK-LE: @llvm.ppc.altivec.vperm
7074 // CHECK-LE: @llvm.ppc.altivec.lvsr
7075 // CHECK-LE: @llvm.ppc.altivec.vperm
7076 // CHECK-LE: @llvm.ppc.altivec.stvxl
7078 vec_stvrxl(vbc, 0, &vbc);
7079 // CHECK: @llvm.ppc.altivec.lvx
7080 // CHECK: store <16 x i8> zeroinitializer
7081 // CHECK: @llvm.ppc.altivec.lvsl
7082 // CHECK: @llvm.ppc.altivec.vperm
7083 // CHECK: @llvm.ppc.altivec.lvsr
7084 // CHECK: @llvm.ppc.altivec.vperm
7085 // CHECK: @llvm.ppc.altivec.stvxl
7086 // CHECK-LE: @llvm.ppc.altivec.lvx
7087 // CHECK-LE: store <16 x i8> zeroinitializer
7088 // CHECK-LE: @llvm.ppc.altivec.lvsl
7089 // CHECK-LE: @llvm.ppc.altivec.vperm
7090 // CHECK-LE: @llvm.ppc.altivec.lvsr
7091 // CHECK-LE: @llvm.ppc.altivec.vperm
7092 // CHECK-LE: @llvm.ppc.altivec.stvxl
7094 vec_stvrxl(vs, 0, ¶m_s);
7095 // CHECK: @llvm.ppc.altivec.lvx
7096 // CHECK: @llvm.ppc.altivec.lvsl
7097 // CHECK: store <8 x i16> zeroinitializer
7098 // CHECK: @llvm.ppc.altivec.vperm
7099 // CHECK: @llvm.ppc.altivec.lvsr
7100 // CHECK: @llvm.ppc.altivec.vperm
7101 // CHECK: @llvm.ppc.altivec.stvxl
7102 // CHECK-LE: @llvm.ppc.altivec.lvx
7103 // CHECK-LE: @llvm.ppc.altivec.lvsl
7104 // CHECK-LE: store <8 x i16> zeroinitializer
7105 // CHECK-LE: @llvm.ppc.altivec.vperm
7106 // CHECK-LE: @llvm.ppc.altivec.lvsr
7107 // CHECK-LE: @llvm.ppc.altivec.vperm
7108 // CHECK-LE: @llvm.ppc.altivec.stvxl
7110 vec_stvrxl(vs, 0, &vs);
7111 // CHECK: @llvm.ppc.altivec.lvx
7112 // CHECK: @llvm.ppc.altivec.lvsl
7113 // CHECK: store <8 x i16> zeroinitializer
7114 // CHECK: @llvm.ppc.altivec.vperm
7115 // CHECK: @llvm.ppc.altivec.lvsr
7116 // CHECK: @llvm.ppc.altivec.vperm
7117 // CHECK: @llvm.ppc.altivec.stvxl
7118 // CHECK-LE: @llvm.ppc.altivec.lvx
7119 // CHECK-LE: @llvm.ppc.altivec.lvsl
7120 // CHECK-LE: store <8 x i16> zeroinitializer
7121 // CHECK-LE: @llvm.ppc.altivec.vperm
7122 // CHECK-LE: @llvm.ppc.altivec.lvsr
7123 // CHECK-LE: @llvm.ppc.altivec.vperm
7124 // CHECK-LE: @llvm.ppc.altivec.stvxl
7126 vec_stvrxl(vus, 0, ¶m_us);
7127 // CHECK: @llvm.ppc.altivec.lvx
7128 // CHECK: @llvm.ppc.altivec.lvsl
7129 // CHECK: store <8 x i16> zeroinitializer
7130 // CHECK: @llvm.ppc.altivec.vperm
7131 // CHECK: @llvm.ppc.altivec.lvsr
7132 // CHECK: @llvm.ppc.altivec.vperm
7133 // CHECK: @llvm.ppc.altivec.stvxl
7134 // CHECK-LE: @llvm.ppc.altivec.lvx
7135 // CHECK-LE: @llvm.ppc.altivec.lvsl
7136 // CHECK-LE: store <8 x i16> zeroinitializer
7137 // CHECK-LE: @llvm.ppc.altivec.vperm
7138 // CHECK-LE: @llvm.ppc.altivec.lvsr
7139 // CHECK-LE: @llvm.ppc.altivec.vperm
7140 // CHECK-LE: @llvm.ppc.altivec.stvxl
7142 vec_stvrxl(vus, 0, &vus);
7143 // CHECK: @llvm.ppc.altivec.lvx
7144 // CHECK: @llvm.ppc.altivec.lvsl
7145 // CHECK: store <8 x i16> zeroinitializer
7146 // CHECK: @llvm.ppc.altivec.vperm
7147 // CHECK: @llvm.ppc.altivec.lvsr
7148 // CHECK: @llvm.ppc.altivec.vperm
7149 // CHECK: @llvm.ppc.altivec.stvxl
7150 // CHECK-LE: @llvm.ppc.altivec.lvx
7151 // CHECK-LE: @llvm.ppc.altivec.lvsl
7152 // CHECK-LE: store <8 x i16> zeroinitializer
7153 // CHECK-LE: @llvm.ppc.altivec.vperm
7154 // CHECK-LE: @llvm.ppc.altivec.lvsr
7155 // CHECK-LE: @llvm.ppc.altivec.vperm
7156 // CHECK-LE: @llvm.ppc.altivec.stvxl
7158 vec_stvrxl(vbs, 0, &vbs);
7159 // CHECK: @llvm.ppc.altivec.lvx
7160 // CHECK: store <8 x i16> zeroinitializer
7161 // CHECK: @llvm.ppc.altivec.lvsl
7162 // CHECK: @llvm.ppc.altivec.vperm
7163 // CHECK: @llvm.ppc.altivec.lvsr
7164 // CHECK: @llvm.ppc.altivec.vperm
7165 // CHECK: @llvm.ppc.altivec.stvxl
7166 // CHECK-LE: @llvm.ppc.altivec.lvx
7167 // CHECK-LE: store <8 x i16> zeroinitializer
7168 // CHECK-LE: @llvm.ppc.altivec.lvsl
7169 // CHECK-LE: @llvm.ppc.altivec.vperm
7170 // CHECK-LE: @llvm.ppc.altivec.lvsr
7171 // CHECK-LE: @llvm.ppc.altivec.vperm
7172 // CHECK-LE: @llvm.ppc.altivec.stvxl
7174 vec_stvrxl(vp, 0, &vp);
7175 // CHECK: @llvm.ppc.altivec.lvx
7176 // CHECK: store <8 x i16> zeroinitializer
7177 // CHECK: @llvm.ppc.altivec.lvsl
7178 // CHECK: @llvm.ppc.altivec.vperm
7179 // CHECK: @llvm.ppc.altivec.lvsr
7180 // CHECK: @llvm.ppc.altivec.vperm
7181 // CHECK: @llvm.ppc.altivec.stvxl
7182 // CHECK-LE: @llvm.ppc.altivec.lvx
7183 // CHECK-LE: store <8 x i16> zeroinitializer
7184 // CHECK-LE: @llvm.ppc.altivec.lvsl
7185 // CHECK-LE: @llvm.ppc.altivec.vperm
7186 // CHECK-LE: @llvm.ppc.altivec.lvsr
7187 // CHECK-LE: @llvm.ppc.altivec.vperm
7188 // CHECK-LE: @llvm.ppc.altivec.stvxl
7190 vec_stvrxl(vi, 0, ¶m_i);
7191 // CHECK: @llvm.ppc.altivec.lvx
7192 // CHECK: @llvm.ppc.altivec.lvsl
7193 // CHECK: store <4 x i32> zeroinitializer
7194 // CHECK: @llvm.ppc.altivec.vperm
7195 // CHECK: @llvm.ppc.altivec.lvsr
7196 // CHECK: @llvm.ppc.altivec.vperm
7197 // CHECK: @llvm.ppc.altivec.stvxl
7198 // CHECK-LE: @llvm.ppc.altivec.lvx
7199 // CHECK-LE: @llvm.ppc.altivec.lvsl
7200 // CHECK-LE: store <4 x i32> zeroinitializer
7201 // CHECK-LE: @llvm.ppc.altivec.vperm
7202 // CHECK-LE: @llvm.ppc.altivec.lvsr
7203 // CHECK-LE: @llvm.ppc.altivec.vperm
7204 // CHECK-LE: @llvm.ppc.altivec.stvxl
7206 vec_stvrxl(vi, 0, &vi);
7207 // CHECK: @llvm.ppc.altivec.lvx
7208 // CHECK: @llvm.ppc.altivec.lvsl
7209 // CHECK: store <4 x i32> zeroinitializer
7210 // CHECK: @llvm.ppc.altivec.vperm
7211 // CHECK: @llvm.ppc.altivec.lvsr
7212 // CHECK: @llvm.ppc.altivec.vperm
7213 // CHECK: @llvm.ppc.altivec.stvxl
7214 // CHECK-LE: @llvm.ppc.altivec.lvx
7215 // CHECK-LE: @llvm.ppc.altivec.lvsl
7216 // CHECK-LE: store <4 x i32> zeroinitializer
7217 // CHECK-LE: @llvm.ppc.altivec.vperm
7218 // CHECK-LE: @llvm.ppc.altivec.lvsr
7219 // CHECK-LE: @llvm.ppc.altivec.vperm
7220 // CHECK-LE: @llvm.ppc.altivec.stvxl
7222 vec_stvrxl(vui, 0, ¶m_ui);
7223 // CHECK: @llvm.ppc.altivec.lvx
7224 // CHECK: @llvm.ppc.altivec.lvsl
7225 // CHECK: store <4 x i32> zeroinitializer
7226 // CHECK: @llvm.ppc.altivec.vperm
7227 // CHECK: @llvm.ppc.altivec.lvsr
7228 // CHECK: @llvm.ppc.altivec.vperm
7229 // CHECK: @llvm.ppc.altivec.stvxl
7230 // CHECK-LE: @llvm.ppc.altivec.lvx
7231 // CHECK-LE: @llvm.ppc.altivec.lvsl
7232 // CHECK-LE: store <4 x i32> zeroinitializer
7233 // CHECK-LE: @llvm.ppc.altivec.vperm
7234 // CHECK-LE: @llvm.ppc.altivec.lvsr
7235 // CHECK-LE: @llvm.ppc.altivec.vperm
7236 // CHECK-LE: @llvm.ppc.altivec.stvxl
7238 vec_stvrxl(vui, 0, &vui);
7239 // CHECK: @llvm.ppc.altivec.lvx
7240 // CHECK: @llvm.ppc.altivec.lvsl
7241 // CHECK: store <4 x i32> zeroinitializer
7242 // CHECK: @llvm.ppc.altivec.vperm
7243 // CHECK: @llvm.ppc.altivec.lvsr
7244 // CHECK: @llvm.ppc.altivec.vperm
7245 // CHECK: @llvm.ppc.altivec.stvxl
7246 // CHECK-LE: @llvm.ppc.altivec.lvx
7247 // CHECK-LE: @llvm.ppc.altivec.lvsl
7248 // CHECK-LE: store <4 x i32> zeroinitializer
7249 // CHECK-LE: @llvm.ppc.altivec.vperm
7250 // CHECK-LE: @llvm.ppc.altivec.lvsr
7251 // CHECK-LE: @llvm.ppc.altivec.vperm
7252 // CHECK-LE: @llvm.ppc.altivec.stvxl
7254 vec_stvrxl(vbi, 0, &vbi);
7255 // CHECK: @llvm.ppc.altivec.lvx
7256 // CHECK: store <4 x i32> zeroinitializer
7257 // CHECK: @llvm.ppc.altivec.lvsl
7258 // CHECK: @llvm.ppc.altivec.vperm
7259 // CHECK: @llvm.ppc.altivec.lvsr
7260 // CHECK: @llvm.ppc.altivec.vperm
7261 // CHECK: @llvm.ppc.altivec.stvxl
7262 // CHECK-LE: @llvm.ppc.altivec.lvx
7263 // CHECK-LE: store <4 x i32> zeroinitializer
7264 // CHECK-LE: @llvm.ppc.altivec.lvsl
7265 // CHECK-LE: @llvm.ppc.altivec.vperm
7266 // CHECK-LE: @llvm.ppc.altivec.lvsr
7267 // CHECK-LE: @llvm.ppc.altivec.vperm
7268 // CHECK-LE: @llvm.ppc.altivec.stvxl
7270 vec_stvrxl(vf, 0, &vf);
7271 // CHECK: @llvm.ppc.altivec.lvx
7272 // CHECK: @llvm.ppc.altivec.lvsl
7273 // CHECK: store <4 x float> zeroinitializer
7274 // CHECK: @llvm.ppc.altivec.vperm
7275 // CHECK: @llvm.ppc.altivec.lvsr
7276 // CHECK: @llvm.ppc.altivec.vperm
7277 // CHECK: @llvm.ppc.altivec.stvxl
7278 // CHECK-LE: @llvm.ppc.altivec.lvx
7279 // CHECK-LE: @llvm.ppc.altivec.lvsl
7280 // CHECK-LE: store <4 x float> zeroinitializer
7281 // CHECK-LE: @llvm.ppc.altivec.vperm
7282 // CHECK-LE: @llvm.ppc.altivec.lvsr
7283 // CHECK-LE: @llvm.ppc.altivec.vperm
7284 // CHECK-LE: @llvm.ppc.altivec.stvxl
7287 res_vsc = vec_promote(param_sc, 0);
7288 // CHECK: store <16 x i8> zeroinitializer
7289 // CHECK: insertelement <16 x i8>
7290 // CHECK-LE: store <16 x i8> zeroinitializer
7291 // CHECK-LE: insertelement <16 x i8>
7293 res_vuc = vec_promote(param_uc, 0);
7294 // CHECK: store <16 x i8> zeroinitializer
7295 // CHECK: insertelement <16 x i8>
7296 // CHECK-LE: store <16 x i8> zeroinitializer
7297 // CHECK-LE: insertelement <16 x i8>
7299 res_vs = vec_promote(param_s, 0);
7300 // CHECK: store <8 x i16> zeroinitializer
7301 // CHECK: insertelement <8 x i16>
7302 // CHECK-LE: store <8 x i16> zeroinitializer
7303 // CHECK-LE: insertelement <8 x i16>
7305 res_vus = vec_promote(param_us, 0);
7306 // CHECK: store <8 x i16> zeroinitializer
7307 // CHECK: insertelement <8 x i16>
7308 // CHECK-LE: store <8 x i16> zeroinitializer
7309 // CHECK-LE: insertelement <8 x i16>
7311 res_vi = vec_promote(param_i, 0);
7312 // CHECK: store <4 x i32> zeroinitializer
7313 // CHECK: insertelement <4 x i32>
7314 // CHECK-LE: store <4 x i32> zeroinitializer
7315 // CHECK-LE: insertelement <4 x i32>
7317 res_vui = vec_promote(param_ui, 0);
7318 // CHECK: store <4 x i32> zeroinitializer
7319 // CHECK: insertelement <4 x i32>
7320 // CHECK-LE: store <4 x i32> zeroinitializer
7321 // CHECK-LE: insertelement <4 x i32>
7323 res_vf = vec_promote(param_f, 0);
7324 // CHECK: store <4 x float> zeroinitializer
7325 // CHECK: insertelement <4 x float>
7326 // CHECK-LE: store <4 x float> zeroinitializer
7327 // CHECK-LE: insertelement <4 x float>
7330 res_vsc = vec_splats(param_sc);
7331 // CHECK: insertelement <16 x i8>
7332 // CHECK-LE: insertelement <16 x i8>
7334 res_vuc = vec_splats(param_uc);
7335 // CHECK: insertelement <16 x i8>
7336 // CHECK-LE: insertelement <16 x i8>
7338 res_vs = vec_splats(param_s);
7339 // CHECK: insertelement <8 x i16>
7340 // CHECK-LE: insertelement <8 x i16>
7342 res_vus = vec_splats(param_us);
7343 // CHECK: insertelement <8 x i16>
7344 // CHECK-LE: insertelement <8 x i16>
7346 res_vi = vec_splats(param_i);
7347 // CHECK: insertelement <4 x i32>
7348 // CHECK-LE: insertelement <4 x i32>
7350 res_vui = vec_splats(param_ui);
7351 // CHECK: insertelement <4 x i32>
7352 // CHECK-LE: insertelement <4 x i32>
7354 res_vf = vec_splats(param_f);
7355 // CHECK: insertelement <4 x float>
7356 // CHECK-LE: insertelement <4 x float>
7358 /* ------------------------------ predicates -------------------------------------- */
7361 res_i = vec_all_eq(vsc, vsc);
7362 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7363 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7365 res_i = vec_all_eq(vsc, vbc);
7366 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7367 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7369 res_i = vec_all_eq(vuc, vuc);
7370 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7371 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7373 res_i = vec_all_eq(vuc, vbc);
7374 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7375 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7377 res_i = vec_all_eq(vbc, vsc);
7378 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7379 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7381 res_i = vec_all_eq(vbc, vuc);
7382 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7383 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7385 res_i = vec_all_eq(vbc, vbc);
7386 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7387 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7389 res_i = vec_all_eq(vs, vs);
7390 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7391 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7393 res_i = vec_all_eq(vs, vbs);
7394 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7395 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7397 res_i = vec_all_eq(vus, vus);
7398 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7399 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7401 res_i = vec_all_eq(vus, vbs);
7402 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7403 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7405 res_i = vec_all_eq(vbs, vs);
7406 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7407 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7409 res_i = vec_all_eq(vbs, vus);
7410 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7411 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7413 res_i = vec_all_eq(vbs, vbs);
7414 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7415 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7417 res_i = vec_all_eq(vp, vp);
7418 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7419 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7421 res_i = vec_all_eq(vi, vi);
7422 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7423 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7425 res_i = vec_all_eq(vi, vbi);
7426 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7427 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7429 res_i = vec_all_eq(vui, vui);
7430 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7431 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7433 res_i = vec_all_eq(vui, vbi);
7434 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7435 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7437 res_i = vec_all_eq(vbi, vi);
7438 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7439 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7441 res_i = vec_all_eq(vbi, vui);
7442 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7443 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7445 res_i = vec_all_eq(vbi, vbi);
7446 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7447 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7449 res_i = vec_all_eq(vf, vf);
7450 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
7451 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
7454 res_i = vec_all_ge(vsc, vsc);
7455 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7456 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7458 res_i = vec_all_ge(vsc, vbc);
7459 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7460 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7462 res_i = vec_all_ge(vuc, vuc);
7463 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7464 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7466 res_i = vec_all_ge(vuc, vbc);
7467 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7468 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7470 res_i = vec_all_ge(vbc, vsc);
7471 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7472 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7474 res_i = vec_all_ge(vbc, vuc);
7475 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7476 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7478 res_i = vec_all_ge(vbc, vbc);
7479 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7480 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7482 res_i = vec_all_ge(vs, vs);
7483 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7484 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7486 res_i = vec_all_ge(vs, vbs);
7487 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7488 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7490 res_i = vec_all_ge(vus, vus);
7491 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7492 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7494 res_i = vec_all_ge(vus, vbs);
7495 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7496 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7498 res_i = vec_all_ge(vbs, vs);
7499 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7500 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7502 res_i = vec_all_ge(vbs, vus);
7503 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7504 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7506 res_i = vec_all_ge(vbs, vbs);
7507 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7508 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7510 res_i = vec_all_ge(vi, vi);
7511 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7512 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7514 res_i = vec_all_ge(vi, vbi);
7515 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7516 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7518 res_i = vec_all_ge(vui, vui);
7519 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7520 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7522 res_i = vec_all_ge(vui, vbi);
7523 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7524 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7526 res_i = vec_all_ge(vbi, vi);
7527 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7528 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7530 res_i = vec_all_ge(vbi, vui);
7531 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7532 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7534 res_i = vec_all_ge(vbi, vbi);
7535 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7536 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7538 res_i = vec_all_ge(vf, vf);
7539 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
7540 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
7543 res_i = vec_all_gt(vsc, vsc);
7544 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7545 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7547 res_i = vec_all_gt(vsc, vbc);
7548 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7549 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7551 res_i = vec_all_gt(vuc, vuc);
7552 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7553 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7555 res_i = vec_all_gt(vuc, vbc);
7556 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7557 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7559 res_i = vec_all_gt(vbc, vsc);
7560 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7561 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7563 res_i = vec_all_gt(vbc, vuc);
7564 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7565 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7567 res_i = vec_all_gt(vbc, vbc);
7568 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7569 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7571 res_i = vec_all_gt(vs, vs);
7572 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7573 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7575 res_i = vec_all_gt(vs, vbs);
7576 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7577 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7579 res_i = vec_all_gt(vus, vus);
7580 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7581 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7583 res_i = vec_all_gt(vus, vbs);
7584 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7585 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7587 res_i = vec_all_gt(vbs, vs);
7588 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7589 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7591 res_i = vec_all_gt(vbs, vus);
7592 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7593 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7595 res_i = vec_all_gt(vbs, vbs);
7596 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7597 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7599 res_i = vec_all_gt(vi, vi);
7600 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7601 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7603 res_i = vec_all_gt(vi, vbi);
7604 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7605 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7607 res_i = vec_all_gt(vui, vui);
7608 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7609 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7611 res_i = vec_all_gt(vui, vbi);
7612 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7613 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7615 res_i = vec_all_gt(vbi, vi);
7616 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7617 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7619 res_i = vec_all_gt(vbi, vui);
7620 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7621 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7623 res_i = vec_all_gt(vbi, vbi);
7624 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7625 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7627 res_i = vec_all_gt(vf, vf);
7628 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
7629 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
7632 res_i = vec_all_in(vf, vf);
7633 // CHECK: @llvm.ppc.altivec.vcmpbfp.p
7634 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p
7637 res_i = vec_all_le(vsc, vsc);
7638 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7639 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7641 res_i = vec_all_le(vsc, vbc);
7642 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7643 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7645 res_i = vec_all_le(vuc, vuc);
7646 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7647 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7649 res_i = vec_all_le(vuc, vbc);
7650 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7651 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7653 res_i = vec_all_le(vbc, vsc);
7654 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7655 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7657 res_i = vec_all_le(vbc, vuc);
7658 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7659 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7661 res_i = vec_all_le(vbc, vbc);
7662 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7663 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7665 res_i = vec_all_le(vs, vs);
7666 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7667 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7669 res_i = vec_all_le(vs, vbs);
7670 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7671 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7673 res_i = vec_all_le(vus, vus);
7674 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7675 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7677 res_i = vec_all_le(vus, vbs);
7678 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7679 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7681 res_i = vec_all_le(vbs, vs);
7682 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7683 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7685 res_i = vec_all_le(vbs, vus);
7686 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7687 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7689 res_i = vec_all_le(vbs, vbs);
7690 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7691 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7693 res_i = vec_all_le(vi, vi);
7694 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7695 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7697 res_i = vec_all_le(vi, vbi);
7698 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7699 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7701 res_i = vec_all_le(vui, vui);
7702 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7703 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7705 res_i = vec_all_le(vui, vbi);
7706 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7707 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7709 res_i = vec_all_le(vbi, vi);
7710 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7711 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7713 res_i = vec_all_le(vbi, vui);
7714 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7715 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7717 res_i = vec_all_le(vbi, vbi);
7718 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7719 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7721 res_i = vec_all_le(vf, vf);
7722 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
7723 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
7726 res_i = vec_all_lt(vsc, vsc);
7727 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7728 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7730 res_i = vec_all_lt(vsc, vbc);
7731 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
7732 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
7734 res_i = vec_all_lt(vuc, vuc);
7735 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7736 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7738 res_i = vec_all_lt(vuc, vbc);
7739 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7740 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7742 res_i = vec_all_lt(vbc, vsc);
7743 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7744 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7746 res_i = vec_all_lt(vbc, vuc);
7747 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7748 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7750 res_i = vec_all_lt(vbc, vbc);
7751 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
7752 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
7754 res_i = vec_all_lt(vs, vs);
7755 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7756 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7758 res_i = vec_all_lt(vs, vbs);
7759 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
7760 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
7762 res_i = vec_all_lt(vus, vus);
7763 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7764 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7766 res_i = vec_all_lt(vus, vbs);
7767 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7768 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7770 res_i = vec_all_lt(vbs, vs);
7771 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7772 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7774 res_i = vec_all_lt(vbs, vus);
7775 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7776 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7778 res_i = vec_all_lt(vbs, vbs);
7779 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
7780 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
7782 res_i = vec_all_lt(vi, vi);
7783 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7784 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7786 res_i = vec_all_lt(vi, vbi);
7787 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
7788 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
7790 res_i = vec_all_lt(vui, vui);
7791 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7792 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7794 res_i = vec_all_lt(vui, vbi);
7795 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7796 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7798 res_i = vec_all_lt(vbi, vi);
7799 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7800 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7802 res_i = vec_all_lt(vbi, vui);
7803 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7804 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7806 res_i = vec_all_lt(vbi, vbi);
7807 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
7808 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
7810 res_i = vec_all_lt(vf, vf);
7811 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
7812 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
7815 res_i = vec_all_nan(vf);
7816 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
7817 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
7820 res_i = vec_all_ne(vsc, vsc);
7821 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7822 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7824 res_i = vec_all_ne(vsc, vbc);
7825 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7826 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7828 res_i = vec_all_ne(vuc, vuc);
7829 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7830 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7832 res_i = vec_all_ne(vuc, vbc);
7833 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7834 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7836 res_i = vec_all_ne(vbc, vsc);
7837 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7838 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7840 res_i = vec_all_ne(vbc, vuc);
7841 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7842 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7844 res_i = vec_all_ne(vbc, vbc);
7845 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7846 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7848 res_i = vec_all_ne(vs, vs);
7849 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7850 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7852 res_i = vec_all_ne(vs, vbs);
7853 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7854 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7856 res_i = vec_all_ne(vus, vus);
7857 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7858 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7860 res_i = vec_all_ne(vus, vbs);
7861 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7862 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7864 res_i = vec_all_ne(vbs, vs);
7865 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7866 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7868 res_i = vec_all_ne(vbs, vus);
7869 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7870 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7872 res_i = vec_all_ne(vbs, vbs);
7873 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7874 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7876 res_i = vec_all_ne(vp, vp);
7877 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7878 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7880 res_i = vec_all_ne(vi, vi);
7881 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7882 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7884 res_i = vec_all_ne(vi, vbi);
7885 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7886 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7888 res_i = vec_all_ne(vui, vui);
7889 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7890 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7892 res_i = vec_all_ne(vui, vbi);
7893 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7894 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7896 res_i = vec_all_ne(vbi, vi);
7897 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7898 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7900 res_i = vec_all_ne(vbi, vui);
7901 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7902 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7904 res_i = vec_all_ne(vbi, vbi);
7905 // CHECK: @llvm.ppc.altivec.vcmpequw.p
7906 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
7908 res_i = vec_all_ne(vf, vf);
7909 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
7910 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
7913 res_i = vec_all_nge(vf, vf);
7914 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
7915 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
7918 res_i = vec_all_ngt(vf, vf);
7919 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
7920 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
7923 res_i = vec_all_nle(vf, vf);
7924 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
7925 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
7928 res_i = vec_all_nlt(vf, vf);
7929 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
7930 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
7932 /* vec_all_numeric */
7933 res_i = vec_all_numeric(vf);
7934 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
7935 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
7938 res_i = vec_any_eq(vsc, vsc);
7939 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7940 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7942 res_i = vec_any_eq(vsc, vbc);
7943 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7944 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7946 res_i = vec_any_eq(vuc, vuc);
7947 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7948 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7950 res_i = vec_any_eq(vuc, vbc);
7951 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7952 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7954 res_i = vec_any_eq(vbc, vsc);
7955 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7956 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7958 res_i = vec_any_eq(vbc, vuc);
7959 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7960 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7962 res_i = vec_any_eq(vbc, vbc);
7963 // CHECK: @llvm.ppc.altivec.vcmpequb.p
7964 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
7966 res_i = vec_any_eq(vs, vs);
7967 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7968 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7970 res_i = vec_any_eq(vs, vbs);
7971 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7972 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7974 res_i = vec_any_eq(vus, vus);
7975 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7976 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7978 res_i = vec_any_eq(vus, vbs);
7979 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7980 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7982 res_i = vec_any_eq(vbs, vs);
7983 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7984 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7986 res_i = vec_any_eq(vbs, vus);
7987 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7988 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7990 res_i = vec_any_eq(vbs, vbs);
7991 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7992 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7994 res_i = vec_any_eq(vp, vp);
7995 // CHECK: @llvm.ppc.altivec.vcmpequh.p
7996 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
7998 res_i = vec_any_eq(vi, vi);
7999 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8000 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8002 res_i = vec_any_eq(vi, vbi);
8003 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8004 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8006 res_i = vec_any_eq(vui, vui);
8007 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8008 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8010 res_i = vec_any_eq(vui, vbi);
8011 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8012 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8014 res_i = vec_any_eq(vbi, vi);
8015 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8016 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8018 res_i = vec_any_eq(vbi, vui);
8019 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8020 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8022 res_i = vec_any_eq(vbi, vbi);
8023 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8024 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8026 res_i = vec_any_eq(vf, vf);
8027 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8028 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8031 res_i = vec_any_ge(vsc, vsc);
8032 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8033 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8035 res_i = vec_any_ge(vsc, vbc);
8036 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8037 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8039 res_i = vec_any_ge(vuc, vuc);
8040 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8041 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8043 res_i = vec_any_ge(vuc, vbc);
8044 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8045 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8047 res_i = vec_any_ge(vbc, vsc);
8048 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8049 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8051 res_i = vec_any_ge(vbc, vuc);
8052 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8053 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8055 res_i = vec_any_ge(vbc, vbc);
8056 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8057 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8059 res_i = vec_any_ge(vs, vs);
8060 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8061 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8063 res_i = vec_any_ge(vs, vbs);
8064 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8065 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8067 res_i = vec_any_ge(vus, vus);
8068 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8069 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8071 res_i = vec_any_ge(vus, vbs);
8072 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8073 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8075 res_i = vec_any_ge(vbs, vs);
8076 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8077 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8079 res_i = vec_any_ge(vbs, vus);
8080 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8081 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8083 res_i = vec_any_ge(vbs, vbs);
8084 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8085 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8087 res_i = vec_any_ge(vi, vi);
8088 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8089 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8091 res_i = vec_any_ge(vi, vbi);
8092 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8093 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8095 res_i = vec_any_ge(vui, vui);
8096 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8097 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8099 res_i = vec_any_ge(vui, vbi);
8100 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8101 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8103 res_i = vec_any_ge(vbi, vi);
8104 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8105 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8107 res_i = vec_any_ge(vbi, vui);
8108 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8109 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8111 res_i = vec_any_ge(vbi, vbi);
8112 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8113 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8115 res_i = vec_any_ge(vf, vf);
8116 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8117 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8120 res_i = vec_any_gt(vsc, vsc);
8121 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8122 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8124 res_i = vec_any_gt(vsc, vbc);
8125 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8126 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8128 res_i = vec_any_gt(vuc, vuc);
8129 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8130 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8132 res_i = vec_any_gt(vuc, vbc);
8133 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8134 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8136 res_i = vec_any_gt(vbc, vsc);
8137 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8138 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8140 res_i = vec_any_gt(vbc, vuc);
8141 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8142 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8144 res_i = vec_any_gt(vbc, vbc);
8145 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8146 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8148 res_i = vec_any_gt(vs, vs);
8149 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8150 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8152 res_i = vec_any_gt(vs, vbs);
8153 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8154 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8156 res_i = vec_any_gt(vus, vus);
8157 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8158 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8160 res_i = vec_any_gt(vus, vbs);
8161 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8162 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8164 res_i = vec_any_gt(vbs, vs);
8165 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8166 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8168 res_i = vec_any_gt(vbs, vus);
8169 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8170 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8172 res_i = vec_any_gt(vbs, vbs);
8173 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8174 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8176 res_i = vec_any_gt(vi, vi);
8177 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8178 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8180 res_i = vec_any_gt(vi, vbi);
8181 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8182 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8184 res_i = vec_any_gt(vui, vui);
8185 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8186 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8188 res_i = vec_any_gt(vui, vbi);
8189 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8190 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8192 res_i = vec_any_gt(vbi, vi);
8193 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8194 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8196 res_i = vec_any_gt(vbi, vui);
8197 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8198 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8200 res_i = vec_any_gt(vbi, vbi);
8201 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8202 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8204 res_i = vec_any_gt(vf, vf);
8205 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8206 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8209 res_i = vec_any_le(vsc, vsc);
8210 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8211 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8213 res_i = vec_any_le(vsc, vbc);
8214 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8215 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8217 res_i = vec_any_le(vuc, vuc);
8218 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8219 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8221 res_i = vec_any_le(vuc, vbc);
8222 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8223 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8225 res_i = vec_any_le(vbc, vsc);
8226 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8227 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8229 res_i = vec_any_le(vbc, vuc);
8230 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8231 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8233 res_i = vec_any_le(vbc, vbc);
8234 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8235 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8237 res_i = vec_any_le(vs, vs);
8238 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8239 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8241 res_i = vec_any_le(vs, vbs);
8242 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8243 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8245 res_i = vec_any_le(vus, vus);
8246 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8247 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8249 res_i = vec_any_le(vus, vbs);
8250 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8251 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8253 res_i = vec_any_le(vbs, vs);
8254 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8255 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8257 res_i = vec_any_le(vbs, vus);
8258 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8259 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8261 res_i = vec_any_le(vbs, vbs);
8262 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8263 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8265 res_i = vec_any_le(vi, vi);
8266 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8267 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8269 res_i = vec_any_le(vi, vbi);
8270 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8271 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8273 res_i = vec_any_le(vui, vui);
8274 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8275 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8277 res_i = vec_any_le(vui, vbi);
8278 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8279 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8281 res_i = vec_any_le(vbi, vi);
8282 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8283 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8285 res_i = vec_any_le(vbi, vui);
8286 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8287 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8289 res_i = vec_any_le(vbi, vbi);
8290 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8291 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8293 res_i = vec_any_le(vf, vf);
8294 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8295 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8298 res_i = vec_any_lt(vsc, vsc);
8299 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8300 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8302 res_i = vec_any_lt(vsc, vbc);
8303 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
8304 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
8306 res_i = vec_any_lt(vuc, vuc);
8307 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8308 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8310 res_i = vec_any_lt(vuc, vbc);
8311 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8312 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8314 res_i = vec_any_lt(vbc, vsc);
8315 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8316 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8318 res_i = vec_any_lt(vbc, vuc);
8319 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8320 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8322 res_i = vec_any_lt(vbc, vbc);
8323 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
8324 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
8326 res_i = vec_any_lt(vs, vs);
8327 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8328 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8330 res_i = vec_any_lt(vs, vbs);
8331 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
8332 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
8334 res_i = vec_any_lt(vus, vus);
8335 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8336 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8338 res_i = vec_any_lt(vus, vbs);
8339 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8340 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8342 res_i = vec_any_lt(vbs, vs);
8343 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8344 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8346 res_i = vec_any_lt(vbs, vus);
8347 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8348 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8350 res_i = vec_any_lt(vbs, vbs);
8351 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
8352 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
8354 res_i = vec_any_lt(vi, vi);
8355 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8356 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8358 res_i = vec_any_lt(vi, vbi);
8359 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
8360 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
8362 res_i = vec_any_lt(vui, vui);
8363 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8364 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8366 res_i = vec_any_lt(vui, vbi);
8367 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8368 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8370 res_i = vec_any_lt(vbi, vi);
8371 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8372 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8374 res_i = vec_any_lt(vbi, vui);
8375 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8376 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8378 res_i = vec_any_lt(vbi, vbi);
8379 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
8380 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
8382 res_i = vec_any_lt(vf, vf);
8383 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8384 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8387 res_i = vec_any_nan(vf);
8388 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8389 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8392 res_i = vec_any_ne(vsc, vsc);
8393 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8394 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8396 res_i = vec_any_ne(vsc, vbc);
8397 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8398 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8400 res_i = vec_any_ne(vuc, vuc);
8401 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8402 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8404 res_i = vec_any_ne(vuc, vbc);
8405 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8406 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8408 res_i = vec_any_ne(vbc, vsc);
8409 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8410 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8412 res_i = vec_any_ne(vbc, vuc);
8413 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8414 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8416 res_i = vec_any_ne(vbc, vbc);
8417 // CHECK: @llvm.ppc.altivec.vcmpequb.p
8418 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
8420 res_i = vec_any_ne(vs, vs);
8421 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8422 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8424 res_i = vec_any_ne(vs, vbs);
8425 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8426 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8428 res_i = vec_any_ne(vus, vus);
8429 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8430 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8432 res_i = vec_any_ne(vus, vbs);
8433 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8434 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8436 res_i = vec_any_ne(vbs, vs);
8437 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8438 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8440 res_i = vec_any_ne(vbs, vus);
8441 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8442 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8444 res_i = vec_any_ne(vbs, vbs);
8445 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8446 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8448 res_i = vec_any_ne(vp, vp);
8449 // CHECK: @llvm.ppc.altivec.vcmpequh.p
8450 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
8452 res_i = vec_any_ne(vi, vi);
8453 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8454 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8456 res_i = vec_any_ne(vi, vbi);
8457 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8458 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8460 res_i = vec_any_ne(vui, vui);
8461 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8462 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8464 res_i = vec_any_ne(vui, vbi);
8465 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8466 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8468 res_i = vec_any_ne(vbi, vi);
8469 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8470 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8472 res_i = vec_any_ne(vbi, vui);
8473 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8474 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8476 res_i = vec_any_ne(vbi, vbi);
8477 // CHECK: @llvm.ppc.altivec.vcmpequw.p
8478 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
8480 res_i = vec_any_ne(vf, vf);
8481 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8482 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8485 res_i = vec_any_nge(vf, vf);
8486 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8487 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8490 res_i = vec_any_ngt(vf, vf);
8491 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8492 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8495 res_i = vec_any_nle(vf, vf);
8496 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
8497 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
8500 res_i = vec_any_nlt(vf, vf);
8501 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
8502 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
8504 /* vec_any_numeric */
8505 res_i = vec_any_numeric(vf);
8506 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
8507 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
8510 res_i = vec_any_out(vf, vf);
8511 // CHECK: @llvm.ppc.altivec.vcmpbfp.p
8512 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p
8515 /* ------------------------------ Relational Operators ------------------------------ */
8516 // CHECK-LABEL: define void @test7
8518 vector signed char vsc1 = (vector signed char)(-1);
8519 vector signed char vsc2 = (vector signed char)(-2);
8520 res_i = (vsc1 == vsc2);
8521 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2
8522 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2
8524 res_i = (vsc1 != vsc2);
8525 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0
8526 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0
8528 res_i = (vsc1 < vsc2);
8529 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
8530 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
8532 res_i = (vsc1 > vsc2);
8533 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
8534 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
8536 res_i = (vsc1 <= vsc2);
8537 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
8538 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
8540 res_i = (vsc1 >= vsc2);
8541 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
8542 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
8544 vector unsigned char vuc1 = (vector unsigned char)(1);
8545 vector unsigned char vuc2 = (vector unsigned char)(2);
8546 res_i = (vuc1 == vuc2);
8547 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2
8548 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2
8550 res_i = (vuc1 != vuc2);
8551 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0
8552 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0
8554 res_i = (vuc1 < vuc2);
8555 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2
8556 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2
8558 res_i = (vuc1 > vuc2);
8559 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2
8560 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2
8562 res_i = (vuc1 <= vuc2);
8563 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0
8564 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0
8566 res_i = (vuc1 >= vuc2);
8567 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0
8568 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0
8570 vector short vs1 = (vector short)(-1);
8571 vector short vs2 = (vector short)(-2);
8572 res_i = (vs1 == vs2);
8573 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2
8574 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2
8576 res_i = (vs1 != vs2);
8577 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0
8578 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0
8580 res_i = (vs1 < vs2);
8581 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
8582 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
8584 res_i = (vs1 > vs2);
8585 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
8586 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
8588 res_i = (vs1 <= vs2);
8589 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
8590 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
8592 res_i = (vs1 >= vs2);
8593 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
8594 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
8596 vector unsigned short vus1 = (vector unsigned short)(1);
8597 vector unsigned short vus2 = (vector unsigned short)(2);
8598 res_i = (vus1 == vus2);
8599 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2
8600 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2
8602 res_i = (vus1 != vus2);
8603 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0
8604 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0
8606 res_i = (vus1 < vus2);
8607 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
8608 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
8610 res_i = (vus1 > vus2);
8611 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
8612 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
8614 res_i = (vus1 <= vus2);
8615 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
8616 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
8618 res_i = (vus1 >= vus2);
8619 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
8620 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
8622 vector int vi1 = (vector int)(-1);
8623 vector int vi2 = (vector int)(-2);
8624 res_i = (vi1 == vi2);
8625 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2
8626 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2
8628 res_i = (vi1 != vi2);
8629 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0
8630 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0
8632 res_i = (vi1 < vi2);
8633 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
8634 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
8636 res_i = (vi1 > vi2);
8637 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
8638 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
8640 res_i = (vi1 <= vi2);
8641 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
8642 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
8644 res_i = (vi1 >= vi2);
8645 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
8646 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
8648 vector unsigned int vui1 = (vector unsigned int)(1);
8649 vector unsigned int vui2 = (vector unsigned int)(2);
8650 res_i = (vui1 == vui2);
8651 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2
8652 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2
8654 res_i = (vui1 != vui2);
8655 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0
8656 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0
8658 res_i = (vui1 < vui2);
8659 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
8660 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
8662 res_i = (vui1 > vui2);
8663 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
8664 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
8666 res_i = (vui1 <= vui2);
8667 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
8668 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
8670 res_i = (vui1 >= vui2);
8671 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
8672 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
8674 vector float vf1 = (vector float)(1.0);
8675 vector float vf2 = (vector float)(2.0);
8676 res_i = (vf1 == vf2);
8677 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2
8678 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 2
8680 res_i = (vf1 != vf2);
8681 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0
8682 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 0
8684 res_i = (vf1 < vf2);
8685 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
8686 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
8688 res_i = (vf1 > vf2);
8689 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
8690 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
8692 res_i = (vf1 <= vf2);
8693 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2
8694 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2
8696 res_i = (vf1 >= vf2);
8697 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2
8698 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2