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