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