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