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