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