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