]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/llvm/tools/clang/lib/Headers/altivec.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / llvm / tools / clang / lib / Headers / altivec.h
1 /*===---- altivec.h - Standard header for type generic math ---------------===*\
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining a copy
4  * of this software and associated documentation files (the "Software"), to deal
5  * in the Software without restriction, including without limitation the rights
6  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7  * copies of the Software, and to permit persons to whom the Software is
8  * furnished to do so, subject to the following conditions:
9  *
10  * The above copyright notice and this permission notice shall be included in
11  * all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19  * THE SOFTWARE.
20  *
21 \*===----------------------------------------------------------------------===*/
22
23 #ifndef __ALTIVEC_H
24 #define __ALTIVEC_H
25
26 #ifndef __ALTIVEC__
27 #error "AltiVec support not enabled"
28 #endif
29
30 /* constants for mapping CR6 bits to predicate result. */
31
32 #define __CR6_EQ     0
33 #define __CR6_EQ_REV 1
34 #define __CR6_LT     2
35 #define __CR6_LT_REV 3
36
37 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
38
39 static vector signed char __ATTRS_o_ai
40 vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c);
41
42 static vector unsigned char __ATTRS_o_ai
43 vec_perm(vector unsigned char __a,
44          vector unsigned char __b,
45          vector unsigned char __c);
46
47 static vector bool char __ATTRS_o_ai
48 vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c);
49
50 static vector short __ATTRS_o_ai
51 vec_perm(vector short __a, vector short __b, vector unsigned char __c);
52
53 static vector unsigned short __ATTRS_o_ai
54 vec_perm(vector unsigned short __a,
55          vector unsigned short __b,
56          vector unsigned char __c);
57
58 static vector bool short __ATTRS_o_ai
59 vec_perm(vector bool short __a, vector bool short __b, vector unsigned char __c);
60
61 static vector pixel __ATTRS_o_ai
62 vec_perm(vector pixel __a, vector pixel __b, vector unsigned char __c);
63
64 static vector int __ATTRS_o_ai
65 vec_perm(vector int __a, vector int __b, vector unsigned char __c);
66
67 static vector unsigned int __ATTRS_o_ai
68 vec_perm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c);
69
70 static vector bool int __ATTRS_o_ai
71 vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c);
72
73 static vector float __ATTRS_o_ai
74 vec_perm(vector float __a, vector float __b, vector unsigned char __c);
75
76 /* vec_abs */
77
78 #define __builtin_altivec_abs_v16qi vec_abs
79 #define __builtin_altivec_abs_v8hi  vec_abs
80 #define __builtin_altivec_abs_v4si  vec_abs
81
82 static vector signed char __ATTRS_o_ai
83 vec_abs(vector signed char __a)
84 {
85   return __builtin_altivec_vmaxsb(__a, -__a);
86 }
87
88 static vector signed short __ATTRS_o_ai
89 vec_abs(vector signed short __a)
90 {
91   return __builtin_altivec_vmaxsh(__a, -__a);
92 }
93
94 static vector signed int __ATTRS_o_ai
95 vec_abs(vector signed int __a)
96 {
97   return __builtin_altivec_vmaxsw(__a, -__a);
98 }
99
100 static vector float __ATTRS_o_ai
101 vec_abs(vector float __a)
102 {
103   vector unsigned int __res = (vector unsigned int)__a
104                             & (vector unsigned int)(0x7FFFFFFF);
105   return (vector float)__res;
106 }
107
108 /* vec_abss */
109
110 #define __builtin_altivec_abss_v16qi vec_abss
111 #define __builtin_altivec_abss_v8hi  vec_abss
112 #define __builtin_altivec_abss_v4si  vec_abss
113
114 static vector signed char __ATTRS_o_ai
115 vec_abss(vector signed char __a)
116 {
117   return __builtin_altivec_vmaxsb
118            (__a, __builtin_altivec_vsubsbs((vector signed char)(0), __a));
119 }
120
121 static vector signed short __ATTRS_o_ai
122 vec_abss(vector signed short __a)
123 {
124   return __builtin_altivec_vmaxsh
125            (__a, __builtin_altivec_vsubshs((vector signed short)(0), __a));
126 }
127
128 static vector signed int __ATTRS_o_ai
129 vec_abss(vector signed int __a)
130 {
131   return __builtin_altivec_vmaxsw
132            (__a, __builtin_altivec_vsubsws((vector signed int)(0), __a));
133 }
134
135 /* vec_add */
136
137 static vector signed char __ATTRS_o_ai
138 vec_add(vector signed char __a, vector signed char __b)
139 {
140   return __a + __b;
141 }
142
143 static vector signed char __ATTRS_o_ai
144 vec_add(vector bool char __a, vector signed char __b)
145 {
146   return (vector signed char)__a + __b;
147 }
148
149 static vector signed char __ATTRS_o_ai
150 vec_add(vector signed char __a, vector bool char __b)
151 {
152   return __a + (vector signed char)__b;
153 }
154
155 static vector unsigned char __ATTRS_o_ai
156 vec_add(vector unsigned char __a, vector unsigned char __b)
157 {
158   return __a + __b;
159 }
160
161 static vector unsigned char __ATTRS_o_ai
162 vec_add(vector bool char __a, vector unsigned char __b)
163 {
164   return (vector unsigned char)__a + __b;
165 }
166
167 static vector unsigned char __ATTRS_o_ai
168 vec_add(vector unsigned char __a, vector bool char __b)
169 {
170   return __a + (vector unsigned char)__b;
171 }
172
173 static vector short __ATTRS_o_ai
174 vec_add(vector short __a, vector short __b)
175 {
176   return __a + __b;
177 }
178
179 static vector short __ATTRS_o_ai
180 vec_add(vector bool short __a, vector short __b)
181 {
182   return (vector short)__a + __b;
183 }
184
185 static vector short __ATTRS_o_ai
186 vec_add(vector short __a, vector bool short __b)
187 {
188   return __a + (vector short)__b;
189 }
190
191 static vector unsigned short __ATTRS_o_ai
192 vec_add(vector unsigned short __a, vector unsigned short __b)
193 {
194   return __a + __b;
195 }
196
197 static vector unsigned short __ATTRS_o_ai
198 vec_add(vector bool short __a, vector unsigned short __b)
199 {
200   return (vector unsigned short)__a + __b;
201 }
202
203 static vector unsigned short __ATTRS_o_ai
204 vec_add(vector unsigned short __a, vector bool short __b)
205 {
206   return __a + (vector unsigned short)__b;
207 }
208
209 static vector int __ATTRS_o_ai
210 vec_add(vector int __a, vector int __b)
211 {
212   return __a + __b;
213 }
214
215 static vector int __ATTRS_o_ai
216 vec_add(vector bool int __a, vector int __b)
217 {
218   return (vector int)__a + __b;
219 }
220
221 static vector int __ATTRS_o_ai
222 vec_add(vector int __a, vector bool int __b)
223 {
224   return __a + (vector int)__b;
225 }
226
227 static vector unsigned int __ATTRS_o_ai
228 vec_add(vector unsigned int __a, vector unsigned int __b)
229 {
230   return __a + __b;
231 }
232
233 static vector unsigned int __ATTRS_o_ai
234 vec_add(vector bool int __a, vector unsigned int __b)
235 {
236   return (vector unsigned int)__a + __b;
237 }
238
239 static vector unsigned int __ATTRS_o_ai
240 vec_add(vector unsigned int __a, vector bool int __b)
241 {
242   return __a + (vector unsigned int)__b;
243 }
244
245 static vector float __ATTRS_o_ai
246 vec_add(vector float __a, vector float __b)
247 {
248   return __a + __b;
249 }
250
251 /* vec_vaddubm */
252
253 #define __builtin_altivec_vaddubm vec_vaddubm
254
255 static vector signed char __ATTRS_o_ai
256 vec_vaddubm(vector signed char __a, vector signed char __b)
257 {
258   return __a + __b;
259 }
260
261 static vector signed char __ATTRS_o_ai
262 vec_vaddubm(vector bool char __a, vector signed char __b)
263 {
264   return (vector signed char)__a + __b;
265 }
266
267 static vector signed char __ATTRS_o_ai
268 vec_vaddubm(vector signed char __a, vector bool char __b)
269 {
270   return __a + (vector signed char)__b;
271 }
272
273 static vector unsigned char __ATTRS_o_ai
274 vec_vaddubm(vector unsigned char __a, vector unsigned char __b)
275 {
276   return __a + __b;
277 }
278
279 static vector unsigned char __ATTRS_o_ai
280 vec_vaddubm(vector bool char __a, vector unsigned char __b)
281 {
282   return (vector unsigned char)__a + __b;
283 }
284
285 static vector unsigned char __ATTRS_o_ai
286 vec_vaddubm(vector unsigned char __a, vector bool char __b)
287 {
288   return __a + (vector unsigned char)__b;
289 }
290
291 /* vec_vadduhm */
292
293 #define __builtin_altivec_vadduhm vec_vadduhm
294
295 static vector short __ATTRS_o_ai
296 vec_vadduhm(vector short __a, vector short __b)
297 {
298   return __a + __b;
299 }
300
301 static vector short __ATTRS_o_ai
302 vec_vadduhm(vector bool short __a, vector short __b)
303 {
304   return (vector short)__a + __b;
305 }
306
307 static vector short __ATTRS_o_ai
308 vec_vadduhm(vector short __a, vector bool short __b)
309 {
310   return __a + (vector short)__b;
311 }
312
313 static vector unsigned short __ATTRS_o_ai
314 vec_vadduhm(vector unsigned short __a, vector unsigned short __b)
315 {
316   return __a + __b;
317 }
318
319 static vector unsigned short __ATTRS_o_ai
320 vec_vadduhm(vector bool short __a, vector unsigned short __b)
321 {
322   return (vector unsigned short)__a + __b;
323 }
324
325 static vector unsigned short __ATTRS_o_ai
326 vec_vadduhm(vector unsigned short __a, vector bool short __b)
327 {
328   return __a + (vector unsigned short)__b;
329 }
330
331 /* vec_vadduwm */
332
333 #define __builtin_altivec_vadduwm vec_vadduwm
334
335 static vector int __ATTRS_o_ai
336 vec_vadduwm(vector int __a, vector int __b)
337 {
338   return __a + __b;
339 }
340
341 static vector int __ATTRS_o_ai
342 vec_vadduwm(vector bool int __a, vector int __b)
343 {
344   return (vector int)__a + __b;
345 }
346
347 static vector int __ATTRS_o_ai
348 vec_vadduwm(vector int __a, vector bool int __b)
349 {
350   return __a + (vector int)__b;
351 }
352
353 static vector unsigned int __ATTRS_o_ai
354 vec_vadduwm(vector unsigned int __a, vector unsigned int __b)
355 {
356   return __a + __b;
357 }
358
359 static vector unsigned int __ATTRS_o_ai
360 vec_vadduwm(vector bool int __a, vector unsigned int __b)
361 {
362   return (vector unsigned int)__a + __b;
363 }
364
365 static vector unsigned int __ATTRS_o_ai
366 vec_vadduwm(vector unsigned int __a, vector bool int __b)
367 {
368   return __a + (vector unsigned int)__b;
369 }
370
371 /* vec_vaddfp */
372
373 #define __builtin_altivec_vaddfp  vec_vaddfp
374
375 static vector float __attribute__((__always_inline__))
376 vec_vaddfp(vector float __a, vector float __b)
377 {
378   return __a + __b;
379 }
380
381 /* vec_addc */
382
383 static vector unsigned int __attribute__((__always_inline__))
384 vec_addc(vector unsigned int __a, vector unsigned int __b)
385 {
386   return __builtin_altivec_vaddcuw(__a, __b);
387 }
388
389 /* vec_vaddcuw */
390
391 static vector unsigned int __attribute__((__always_inline__))
392 vec_vaddcuw(vector unsigned int __a, vector unsigned int __b)
393 {
394   return __builtin_altivec_vaddcuw(__a, __b);
395 }
396
397 /* vec_adds */
398
399 static vector signed char __ATTRS_o_ai
400 vec_adds(vector signed char __a, vector signed char __b)
401 {
402   return __builtin_altivec_vaddsbs(__a, __b);
403 }
404
405 static vector signed char __ATTRS_o_ai
406 vec_adds(vector bool char __a, vector signed char __b)
407 {
408   return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
409 }
410
411 static vector signed char __ATTRS_o_ai
412 vec_adds(vector signed char __a, vector bool char __b)
413 {
414   return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
415 }
416
417 static vector unsigned char __ATTRS_o_ai
418 vec_adds(vector unsigned char __a, vector unsigned char __b)
419 {
420   return __builtin_altivec_vaddubs(__a, __b);
421 }
422
423 static vector unsigned char __ATTRS_o_ai
424 vec_adds(vector bool char __a, vector unsigned char __b)
425 {
426   return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
427 }
428
429 static vector unsigned char __ATTRS_o_ai
430 vec_adds(vector unsigned char __a, vector bool char __b)
431 {
432   return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
433 }
434
435 static vector short __ATTRS_o_ai
436 vec_adds(vector short __a, vector short __b)
437 {
438   return __builtin_altivec_vaddshs(__a, __b);
439 }
440
441 static vector short __ATTRS_o_ai
442 vec_adds(vector bool short __a, vector short __b)
443 {
444   return __builtin_altivec_vaddshs((vector short)__a, __b);
445 }
446
447 static vector short __ATTRS_o_ai
448 vec_adds(vector short __a, vector bool short __b)
449 {
450   return __builtin_altivec_vaddshs(__a, (vector short)__b);
451 }
452
453 static vector unsigned short __ATTRS_o_ai
454 vec_adds(vector unsigned short __a, vector unsigned short __b)
455 {
456   return __builtin_altivec_vadduhs(__a, __b);
457 }
458
459 static vector unsigned short __ATTRS_o_ai
460 vec_adds(vector bool short __a, vector unsigned short __b)
461 {
462   return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
463 }
464
465 static vector unsigned short __ATTRS_o_ai
466 vec_adds(vector unsigned short __a, vector bool short __b)
467 {
468   return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
469 }
470
471 static vector int __ATTRS_o_ai
472 vec_adds(vector int __a, vector int __b)
473 {
474   return __builtin_altivec_vaddsws(__a, __b);
475 }
476
477 static vector int __ATTRS_o_ai
478 vec_adds(vector bool int __a, vector int __b)
479 {
480   return __builtin_altivec_vaddsws((vector int)__a, __b);
481 }
482
483 static vector int __ATTRS_o_ai
484 vec_adds(vector int __a, vector bool int __b)
485 {
486   return __builtin_altivec_vaddsws(__a, (vector int)__b);
487 }
488
489 static vector unsigned int __ATTRS_o_ai
490 vec_adds(vector unsigned int __a, vector unsigned int __b)
491 {
492   return __builtin_altivec_vadduws(__a, __b);
493 }
494
495 static vector unsigned int __ATTRS_o_ai
496 vec_adds(vector bool int __a, vector unsigned int __b)
497 {
498   return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
499 }
500
501 static vector unsigned int __ATTRS_o_ai
502 vec_adds(vector unsigned int __a, vector bool int __b)
503 {
504   return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
505 }
506
507 /* vec_vaddsbs */
508
509 static vector signed char __ATTRS_o_ai
510 vec_vaddsbs(vector signed char __a, vector signed char __b)
511 {
512   return __builtin_altivec_vaddsbs(__a, __b);
513 }
514
515 static vector signed char __ATTRS_o_ai
516 vec_vaddsbs(vector bool char __a, vector signed char __b)
517 {
518   return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
519 }
520
521 static vector signed char __ATTRS_o_ai
522 vec_vaddsbs(vector signed char __a, vector bool char __b)
523 {
524   return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
525 }
526
527 /* vec_vaddubs */
528
529 static vector unsigned char __ATTRS_o_ai
530 vec_vaddubs(vector unsigned char __a, vector unsigned char __b)
531 {
532   return __builtin_altivec_vaddubs(__a, __b);
533 }
534
535 static vector unsigned char __ATTRS_o_ai
536 vec_vaddubs(vector bool char __a, vector unsigned char __b)
537 {
538   return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
539 }
540
541 static vector unsigned char __ATTRS_o_ai
542 vec_vaddubs(vector unsigned char __a, vector bool char __b)
543 {
544   return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
545 }
546
547 /* vec_vaddshs */
548
549 static vector short __ATTRS_o_ai
550 vec_vaddshs(vector short __a, vector short __b)
551 {
552   return __builtin_altivec_vaddshs(__a, __b);
553 }
554
555 static vector short __ATTRS_o_ai
556 vec_vaddshs(vector bool short __a, vector short __b)
557 {
558   return __builtin_altivec_vaddshs((vector short)__a, __b);
559 }
560
561 static vector short __ATTRS_o_ai
562 vec_vaddshs(vector short __a, vector bool short __b)
563 {
564   return __builtin_altivec_vaddshs(__a, (vector short)__b);
565 }
566
567 /* vec_vadduhs */
568
569 static vector unsigned short __ATTRS_o_ai
570 vec_vadduhs(vector unsigned short __a, vector unsigned short __b)
571 {
572   return __builtin_altivec_vadduhs(__a, __b);
573 }
574
575 static vector unsigned short __ATTRS_o_ai
576 vec_vadduhs(vector bool short __a, vector unsigned short __b)
577 {
578   return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
579 }
580
581 static vector unsigned short __ATTRS_o_ai
582 vec_vadduhs(vector unsigned short __a, vector bool short __b)
583 {
584   return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
585 }
586
587 /* vec_vaddsws */
588
589 static vector int __ATTRS_o_ai
590 vec_vaddsws(vector int __a, vector int __b)
591 {
592   return __builtin_altivec_vaddsws(__a, __b);
593 }
594
595 static vector int __ATTRS_o_ai
596 vec_vaddsws(vector bool int __a, vector int __b)
597 {
598   return __builtin_altivec_vaddsws((vector int)__a, __b);
599 }
600
601 static vector int __ATTRS_o_ai
602 vec_vaddsws(vector int __a, vector bool int __b)
603 {
604   return __builtin_altivec_vaddsws(__a, (vector int)__b);
605 }
606
607 /* vec_vadduws */
608
609 static vector unsigned int __ATTRS_o_ai
610 vec_vadduws(vector unsigned int __a, vector unsigned int __b)
611 {
612   return __builtin_altivec_vadduws(__a, __b);
613 }
614
615 static vector unsigned int __ATTRS_o_ai
616 vec_vadduws(vector bool int __a, vector unsigned int __b)
617 {
618   return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
619 }
620
621 static vector unsigned int __ATTRS_o_ai
622 vec_vadduws(vector unsigned int __a, vector bool int __b)
623 {
624   return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
625 }
626
627 /* vec_and */
628
629 #define __builtin_altivec_vand vec_and
630
631 static vector signed char __ATTRS_o_ai
632 vec_and(vector signed char __a, vector signed char __b)
633 {
634   return __a & __b;
635 }
636
637 static vector signed char __ATTRS_o_ai
638 vec_and(vector bool char __a, vector signed char __b)
639 {
640   return (vector signed char)__a & __b;
641 }
642
643 static vector signed char __ATTRS_o_ai
644 vec_and(vector signed char __a, vector bool char __b)
645 {
646   return __a & (vector signed char)__b;
647 }
648
649 static vector unsigned char __ATTRS_o_ai
650 vec_and(vector unsigned char __a, vector unsigned char __b)
651 {
652   return __a & __b;
653 }
654
655 static vector unsigned char __ATTRS_o_ai
656 vec_and(vector bool char __a, vector unsigned char __b)
657 {
658   return (vector unsigned char)__a & __b;
659 }
660
661 static vector unsigned char __ATTRS_o_ai
662 vec_and(vector unsigned char __a, vector bool char __b)
663 {
664   return __a & (vector unsigned char)__b;
665 }
666
667 static vector bool char __ATTRS_o_ai
668 vec_and(vector bool char __a, vector bool char __b)
669 {
670   return __a & __b;
671 }
672
673 static vector short __ATTRS_o_ai
674 vec_and(vector short __a, vector short __b)
675 {
676   return __a & __b;
677 }
678
679 static vector short __ATTRS_o_ai
680 vec_and(vector bool short __a, vector short __b)
681 {
682   return (vector short)__a & __b;
683 }
684
685 static vector short __ATTRS_o_ai
686 vec_and(vector short __a, vector bool short __b)
687 {
688   return __a & (vector short)__b;
689 }
690
691 static vector unsigned short __ATTRS_o_ai
692 vec_and(vector unsigned short __a, vector unsigned short __b)
693 {
694   return __a & __b;
695 }
696
697 static vector unsigned short __ATTRS_o_ai
698 vec_and(vector bool short __a, vector unsigned short __b)
699 {
700   return (vector unsigned short)__a & __b;
701 }
702
703 static vector unsigned short __ATTRS_o_ai
704 vec_and(vector unsigned short __a, vector bool short __b)
705 {
706   return __a & (vector unsigned short)__b;
707 }
708
709 static vector bool short __ATTRS_o_ai
710 vec_and(vector bool short __a, vector bool short __b)
711 {
712   return __a & __b;
713 }
714
715 static vector int __ATTRS_o_ai
716 vec_and(vector int __a, vector int __b)
717 {
718   return __a & __b;
719 }
720
721 static vector int __ATTRS_o_ai
722 vec_and(vector bool int __a, vector int __b)
723 {
724   return (vector int)__a & __b;
725 }
726
727 static vector int __ATTRS_o_ai
728 vec_and(vector int __a, vector bool int __b)
729 {
730   return __a & (vector int)__b;
731 }
732
733 static vector unsigned int __ATTRS_o_ai
734 vec_and(vector unsigned int __a, vector unsigned int __b)
735 {
736   return __a & __b;
737 }
738
739 static vector unsigned int __ATTRS_o_ai
740 vec_and(vector bool int __a, vector unsigned int __b)
741 {
742   return (vector unsigned int)__a & __b;
743 }
744
745 static vector unsigned int __ATTRS_o_ai
746 vec_and(vector unsigned int __a, vector bool int __b)
747 {
748   return __a & (vector unsigned int)__b;
749 }
750
751 static vector bool int __ATTRS_o_ai
752 vec_and(vector bool int __a, vector bool int __b)
753 {
754   return __a & __b;
755 }
756
757 static vector float __ATTRS_o_ai
758 vec_and(vector float __a, vector float __b)
759 {
760   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
761   return (vector float)__res;
762 }
763
764 static vector float __ATTRS_o_ai
765 vec_and(vector bool int __a, vector float __b)
766 {
767   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
768   return (vector float)__res;
769 }
770
771 static vector float __ATTRS_o_ai
772 vec_and(vector float __a, vector bool int __b)
773 {
774   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
775   return (vector float)__res;
776 }
777
778 /* vec_vand */
779
780 static vector signed char __ATTRS_o_ai
781 vec_vand(vector signed char __a, vector signed char __b)
782 {
783   return __a & __b;
784 }
785
786 static vector signed char __ATTRS_o_ai
787 vec_vand(vector bool char __a, vector signed char __b)
788 {
789   return (vector signed char)__a & __b;
790 }
791
792 static vector signed char __ATTRS_o_ai
793 vec_vand(vector signed char __a, vector bool char __b)
794 {
795   return __a & (vector signed char)__b;
796 }
797
798 static vector unsigned char __ATTRS_o_ai
799 vec_vand(vector unsigned char __a, vector unsigned char __b)
800 {
801   return __a & __b;
802 }
803
804 static vector unsigned char __ATTRS_o_ai
805 vec_vand(vector bool char __a, vector unsigned char __b)
806 {
807   return (vector unsigned char)__a & __b;
808 }
809
810 static vector unsigned char __ATTRS_o_ai
811 vec_vand(vector unsigned char __a, vector bool char __b)
812 {
813   return __a & (vector unsigned char)__b;
814 }
815
816 static vector bool char __ATTRS_o_ai
817 vec_vand(vector bool char __a, vector bool char __b)
818 {
819   return __a & __b;
820 }
821
822 static vector short __ATTRS_o_ai
823 vec_vand(vector short __a, vector short __b)
824 {
825   return __a & __b;
826 }
827
828 static vector short __ATTRS_o_ai
829 vec_vand(vector bool short __a, vector short __b)
830 {
831   return (vector short)__a & __b;
832 }
833
834 static vector short __ATTRS_o_ai
835 vec_vand(vector short __a, vector bool short __b)
836 {
837   return __a & (vector short)__b;
838 }
839
840 static vector unsigned short __ATTRS_o_ai
841 vec_vand(vector unsigned short __a, vector unsigned short __b)
842 {
843   return __a & __b;
844 }
845
846 static vector unsigned short __ATTRS_o_ai
847 vec_vand(vector bool short __a, vector unsigned short __b)
848 {
849   return (vector unsigned short)__a & __b;
850 }
851
852 static vector unsigned short __ATTRS_o_ai
853 vec_vand(vector unsigned short __a, vector bool short __b)
854 {
855   return __a & (vector unsigned short)__b;
856 }
857
858 static vector bool short __ATTRS_o_ai
859 vec_vand(vector bool short __a, vector bool short __b)
860 {
861   return __a & __b;
862 }
863
864 static vector int __ATTRS_o_ai
865 vec_vand(vector int __a, vector int __b)
866 {
867   return __a & __b;
868 }
869
870 static vector int __ATTRS_o_ai
871 vec_vand(vector bool int __a, vector int __b)
872 {
873   return (vector int)__a & __b;
874 }
875
876 static vector int __ATTRS_o_ai
877 vec_vand(vector int __a, vector bool int __b)
878 {
879   return __a & (vector int)__b;
880 }
881
882 static vector unsigned int __ATTRS_o_ai
883 vec_vand(vector unsigned int __a, vector unsigned int __b)
884 {
885   return __a & __b;
886 }
887
888 static vector unsigned int __ATTRS_o_ai
889 vec_vand(vector bool int __a, vector unsigned int __b)
890 {
891   return (vector unsigned int)__a & __b;
892 }
893
894 static vector unsigned int __ATTRS_o_ai
895 vec_vand(vector unsigned int __a, vector bool int __b)
896 {
897   return __a & (vector unsigned int)__b;
898 }
899
900 static vector bool int __ATTRS_o_ai
901 vec_vand(vector bool int __a, vector bool int __b)
902 {
903   return __a & __b;
904 }
905
906 static vector float __ATTRS_o_ai
907 vec_vand(vector float __a, vector float __b)
908 {
909   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
910   return (vector float)__res;
911 }
912
913 static vector float __ATTRS_o_ai
914 vec_vand(vector bool int __a, vector float __b)
915 {
916   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
917   return (vector float)__res;
918 }
919
920 static vector float __ATTRS_o_ai
921 vec_vand(vector float __a, vector bool int __b)
922 {
923   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
924   return (vector float)__res;
925 }
926
927 /* vec_andc */
928
929 #define __builtin_altivec_vandc vec_andc
930
931 static vector signed char __ATTRS_o_ai
932 vec_andc(vector signed char __a, vector signed char __b)
933 {
934   return __a & ~__b;
935 }
936
937 static vector signed char __ATTRS_o_ai
938 vec_andc(vector bool char __a, vector signed char __b)
939 {
940   return (vector signed char)__a & ~__b;
941 }
942
943 static vector signed char __ATTRS_o_ai
944 vec_andc(vector signed char __a, vector bool char __b)
945 {
946   return __a & ~(vector signed char)__b;
947 }
948
949 static vector unsigned char __ATTRS_o_ai
950 vec_andc(vector unsigned char __a, vector unsigned char __b)
951 {
952   return __a & ~__b;
953 }
954
955 static vector unsigned char __ATTRS_o_ai
956 vec_andc(vector bool char __a, vector unsigned char __b)
957 {
958   return (vector unsigned char)__a & ~__b;
959 }
960
961 static vector unsigned char __ATTRS_o_ai
962 vec_andc(vector unsigned char __a, vector bool char __b)
963 {
964   return __a & ~(vector unsigned char)__b;
965 }
966
967 static vector bool char __ATTRS_o_ai
968 vec_andc(vector bool char __a, vector bool char __b)
969 {
970   return __a & ~__b;
971 }
972
973 static vector short __ATTRS_o_ai
974 vec_andc(vector short __a, vector short __b)
975 {
976   return __a & ~__b;
977 }
978
979 static vector short __ATTRS_o_ai
980 vec_andc(vector bool short __a, vector short __b)
981 {
982   return (vector short)__a & ~__b;
983 }
984
985 static vector short __ATTRS_o_ai
986 vec_andc(vector short __a, vector bool short __b)
987 {
988   return __a & ~(vector short)__b;
989 }
990
991 static vector unsigned short __ATTRS_o_ai
992 vec_andc(vector unsigned short __a, vector unsigned short __b)
993 {
994   return __a & ~__b;
995 }
996
997 static vector unsigned short __ATTRS_o_ai
998 vec_andc(vector bool short __a, vector unsigned short __b)
999 {
1000   return (vector unsigned short)__a & ~__b;
1001 }
1002
1003 static vector unsigned short __ATTRS_o_ai
1004 vec_andc(vector unsigned short __a, vector bool short __b)
1005 {
1006   return __a & ~(vector unsigned short)__b;
1007 }
1008
1009 static vector bool short __ATTRS_o_ai
1010 vec_andc(vector bool short __a, vector bool short __b)
1011 {
1012   return __a & ~__b;
1013 }
1014
1015 static vector int __ATTRS_o_ai
1016 vec_andc(vector int __a, vector int __b)
1017 {
1018   return __a & ~__b;
1019 }
1020
1021 static vector int __ATTRS_o_ai
1022 vec_andc(vector bool int __a, vector int __b)
1023 {
1024   return (vector int)__a & ~__b;
1025 }
1026
1027 static vector int __ATTRS_o_ai
1028 vec_andc(vector int __a, vector bool int __b)
1029 {
1030   return __a & ~(vector int)__b;
1031 }
1032
1033 static vector unsigned int __ATTRS_o_ai
1034 vec_andc(vector unsigned int __a, vector unsigned int __b)
1035 {
1036   return __a & ~__b;
1037 }
1038
1039 static vector unsigned int __ATTRS_o_ai
1040 vec_andc(vector bool int __a, vector unsigned int __b)
1041 {
1042   return (vector unsigned int)__a & ~__b;
1043 }
1044
1045 static vector unsigned int __ATTRS_o_ai
1046 vec_andc(vector unsigned int __a, vector bool int __b)
1047 {
1048   return __a & ~(vector unsigned int)__b;
1049 }
1050
1051 static vector bool int __ATTRS_o_ai
1052 vec_andc(vector bool int __a, vector bool int __b)
1053 {
1054   return __a & ~__b;
1055 }
1056
1057 static vector float __ATTRS_o_ai
1058 vec_andc(vector float __a, vector float __b)
1059 {
1060   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
1061   return (vector float)__res;
1062 }
1063
1064 static vector float __ATTRS_o_ai
1065 vec_andc(vector bool int __a, vector float __b)
1066 {
1067   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
1068   return (vector float)__res;
1069 }
1070
1071 static vector float __ATTRS_o_ai
1072 vec_andc(vector float __a, vector bool int __b)
1073 {
1074   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
1075   return (vector float)__res;
1076 }
1077
1078 /* vec_vandc */
1079
1080 static vector signed char __ATTRS_o_ai
1081 vec_vandc(vector signed char __a, vector signed char __b)
1082 {
1083   return __a & ~__b;
1084 }
1085
1086 static vector signed char __ATTRS_o_ai
1087 vec_vandc(vector bool char __a, vector signed char __b)
1088 {
1089   return (vector signed char)__a & ~__b;
1090 }
1091
1092 static vector signed char __ATTRS_o_ai
1093 vec_vandc(vector signed char __a, vector bool char __b)
1094 {
1095   return __a & ~(vector signed char)__b;
1096 }
1097
1098 static vector unsigned char __ATTRS_o_ai
1099 vec_vandc(vector unsigned char __a, vector unsigned char __b)
1100 {
1101   return __a & ~__b;
1102 }
1103
1104 static vector unsigned char __ATTRS_o_ai
1105 vec_vandc(vector bool char __a, vector unsigned char __b)
1106 {
1107   return (vector unsigned char)__a & ~__b;
1108 }
1109
1110 static vector unsigned char __ATTRS_o_ai
1111 vec_vandc(vector unsigned char __a, vector bool char __b)
1112 {
1113   return __a & ~(vector unsigned char)__b;
1114 }
1115
1116 static vector bool char __ATTRS_o_ai
1117 vec_vandc(vector bool char __a, vector bool char __b)
1118 {
1119   return __a & ~__b;
1120 }
1121
1122 static vector short __ATTRS_o_ai
1123 vec_vandc(vector short __a, vector short __b)
1124 {
1125   return __a & ~__b;
1126 }
1127
1128 static vector short __ATTRS_o_ai
1129 vec_vandc(vector bool short __a, vector short __b)
1130 {
1131   return (vector short)__a & ~__b;
1132 }
1133
1134 static vector short __ATTRS_o_ai
1135 vec_vandc(vector short __a, vector bool short __b)
1136 {
1137   return __a & ~(vector short)__b;
1138 }
1139
1140 static vector unsigned short __ATTRS_o_ai
1141 vec_vandc(vector unsigned short __a, vector unsigned short __b)
1142 {
1143   return __a & ~__b;
1144 }
1145
1146 static vector unsigned short __ATTRS_o_ai
1147 vec_vandc(vector bool short __a, vector unsigned short __b)
1148 {
1149   return (vector unsigned short)__a & ~__b;
1150 }
1151
1152 static vector unsigned short __ATTRS_o_ai
1153 vec_vandc(vector unsigned short __a, vector bool short __b)
1154 {
1155   return __a & ~(vector unsigned short)__b;
1156 }
1157
1158 static vector bool short __ATTRS_o_ai
1159 vec_vandc(vector bool short __a, vector bool short __b)
1160 {
1161   return __a & ~__b;
1162 }
1163
1164 static vector int __ATTRS_o_ai
1165 vec_vandc(vector int __a, vector int __b)
1166 {
1167   return __a & ~__b;
1168 }
1169
1170 static vector int __ATTRS_o_ai
1171 vec_vandc(vector bool int __a, vector int __b)
1172 {
1173   return (vector int)__a & ~__b;
1174 }
1175
1176 static vector int __ATTRS_o_ai
1177 vec_vandc(vector int __a, vector bool int __b)
1178 {
1179   return __a & ~(vector int)__b;
1180 }
1181
1182 static vector unsigned int __ATTRS_o_ai
1183 vec_vandc(vector unsigned int __a, vector unsigned int __b)
1184 {
1185   return __a & ~__b;
1186 }
1187
1188 static vector unsigned int __ATTRS_o_ai
1189 vec_vandc(vector bool int __a, vector unsigned int __b)
1190 {
1191   return (vector unsigned int)__a & ~__b;
1192 }
1193
1194 static vector unsigned int __ATTRS_o_ai
1195 vec_vandc(vector unsigned int __a, vector bool int __b)
1196 {
1197   return __a & ~(vector unsigned int)__b;
1198 }
1199
1200 static vector bool int __ATTRS_o_ai
1201 vec_vandc(vector bool int __a, vector bool int __b)
1202 {
1203   return __a & ~__b;
1204 }
1205
1206 static vector float __ATTRS_o_ai
1207 vec_vandc(vector float __a, vector float __b)
1208 {
1209   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
1210   return (vector float)__res;
1211 }
1212
1213 static vector float __ATTRS_o_ai
1214 vec_vandc(vector bool int __a, vector float __b)
1215 {
1216   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
1217   return (vector float)__res;
1218 }
1219
1220 static vector float __ATTRS_o_ai
1221 vec_vandc(vector float __a, vector bool int __b)
1222 {
1223   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
1224   return (vector float)__res;
1225 }
1226
1227 /* vec_avg */
1228
1229 static vector signed char __ATTRS_o_ai
1230 vec_avg(vector signed char __a, vector signed char __b)
1231 {
1232   return __builtin_altivec_vavgsb(__a, __b);
1233 }
1234
1235 static vector unsigned char __ATTRS_o_ai
1236 vec_avg(vector unsigned char __a, vector unsigned char __b)
1237 {
1238   return __builtin_altivec_vavgub(__a, __b);
1239 }
1240
1241 static vector short __ATTRS_o_ai
1242 vec_avg(vector short __a, vector short __b)
1243 {
1244   return __builtin_altivec_vavgsh(__a, __b);
1245 }
1246
1247 static vector unsigned short __ATTRS_o_ai
1248 vec_avg(vector unsigned short __a, vector unsigned short __b)
1249 {
1250   return __builtin_altivec_vavguh(__a, __b);
1251 }
1252
1253 static vector int __ATTRS_o_ai
1254 vec_avg(vector int __a, vector int __b)
1255 {
1256   return __builtin_altivec_vavgsw(__a, __b);
1257 }
1258
1259 static vector unsigned int __ATTRS_o_ai
1260 vec_avg(vector unsigned int __a, vector unsigned int __b)
1261 {
1262   return __builtin_altivec_vavguw(__a, __b);
1263 }
1264
1265 /* vec_vavgsb */
1266
1267 static vector signed char __attribute__((__always_inline__))
1268 vec_vavgsb(vector signed char __a, vector signed char __b)
1269 {
1270   return __builtin_altivec_vavgsb(__a, __b);
1271 }
1272
1273 /* vec_vavgub */
1274
1275 static vector unsigned char __attribute__((__always_inline__))
1276 vec_vavgub(vector unsigned char __a, vector unsigned char __b)
1277 {
1278   return __builtin_altivec_vavgub(__a, __b);
1279 }
1280
1281 /* vec_vavgsh */
1282
1283 static vector short __attribute__((__always_inline__))
1284 vec_vavgsh(vector short __a, vector short __b)
1285 {
1286   return __builtin_altivec_vavgsh(__a, __b);
1287 }
1288
1289 /* vec_vavguh */
1290
1291 static vector unsigned short __attribute__((__always_inline__))
1292 vec_vavguh(vector unsigned short __a, vector unsigned short __b)
1293 {
1294   return __builtin_altivec_vavguh(__a, __b);
1295 }
1296
1297 /* vec_vavgsw */
1298
1299 static vector int __attribute__((__always_inline__))
1300 vec_vavgsw(vector int __a, vector int __b)
1301 {
1302   return __builtin_altivec_vavgsw(__a, __b);
1303 }
1304
1305 /* vec_vavguw */
1306
1307 static vector unsigned int __attribute__((__always_inline__))
1308 vec_vavguw(vector unsigned int __a, vector unsigned int __b)
1309 {
1310   return __builtin_altivec_vavguw(__a, __b);
1311 }
1312
1313 /* vec_ceil */
1314
1315 static vector float __attribute__((__always_inline__))
1316 vec_ceil(vector float __a)
1317 {
1318   return __builtin_altivec_vrfip(__a);
1319 }
1320
1321 /* vec_vrfip */
1322
1323 static vector float __attribute__((__always_inline__))
1324 vec_vrfip(vector float __a)
1325 {
1326   return __builtin_altivec_vrfip(__a);
1327 }
1328
1329 /* vec_cmpb */
1330
1331 static vector int __attribute__((__always_inline__))
1332 vec_cmpb(vector float __a, vector float __b)
1333 {
1334   return __builtin_altivec_vcmpbfp(__a, __b);
1335 }
1336
1337 /* vec_vcmpbfp */
1338
1339 static vector int __attribute__((__always_inline__))
1340 vec_vcmpbfp(vector float __a, vector float __b)
1341 {
1342   return __builtin_altivec_vcmpbfp(__a, __b);
1343 }
1344
1345 /* vec_cmpeq */
1346
1347 static vector bool char __ATTRS_o_ai
1348 vec_cmpeq(vector signed char __a, vector signed char __b)
1349 {
1350   return (vector bool char)
1351     __builtin_altivec_vcmpequb((vector char)__a, (vector char)__b);
1352 }
1353
1354 static vector bool char __ATTRS_o_ai
1355 vec_cmpeq(vector unsigned char __a, vector unsigned char __b)
1356 {
1357   return (vector bool char)
1358     __builtin_altivec_vcmpequb((vector char)__a, (vector char)__b);
1359 }
1360
1361 static vector bool short __ATTRS_o_ai
1362 vec_cmpeq(vector short __a, vector short __b)
1363 {
1364   return (vector bool short)__builtin_altivec_vcmpequh(__a, __b);
1365 }
1366
1367 static vector bool short __ATTRS_o_ai
1368 vec_cmpeq(vector unsigned short __a, vector unsigned short __b)
1369 {
1370   return (vector bool short)
1371     __builtin_altivec_vcmpequh((vector short)__a, (vector short)__b);
1372 }
1373
1374 static vector bool int __ATTRS_o_ai
1375 vec_cmpeq(vector int __a, vector int __b)
1376 {
1377   return (vector bool int)__builtin_altivec_vcmpequw(__a, __b);
1378 }
1379
1380 static vector bool int __ATTRS_o_ai
1381 vec_cmpeq(vector unsigned int __a, vector unsigned int __b)
1382 {
1383   return (vector bool int)
1384     __builtin_altivec_vcmpequw((vector int)__a, (vector int)__b);
1385 }
1386
1387 static vector bool int __ATTRS_o_ai
1388 vec_cmpeq(vector float __a, vector float __b)
1389 {
1390   return (vector bool int)__builtin_altivec_vcmpeqfp(__a, __b);
1391 }
1392
1393 /* vec_cmpge */
1394
1395 static vector bool int __attribute__((__always_inline__))
1396 vec_cmpge(vector float __a, vector float __b)
1397 {
1398   return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
1399 }
1400
1401 /* vec_vcmpgefp */
1402
1403 static vector bool int __attribute__((__always_inline__))
1404 vec_vcmpgefp(vector float __a, vector float __b)
1405 {
1406   return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
1407 }
1408
1409 /* vec_cmpgt */
1410
1411 static vector bool char __ATTRS_o_ai
1412 vec_cmpgt(vector signed char __a, vector signed char __b)
1413 {
1414   return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
1415 }
1416
1417 static vector bool char __ATTRS_o_ai
1418 vec_cmpgt(vector unsigned char __a, vector unsigned char __b)
1419 {
1420   return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
1421 }
1422
1423 static vector bool short __ATTRS_o_ai
1424 vec_cmpgt(vector short __a, vector short __b)
1425 {
1426   return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
1427 }
1428
1429 static vector bool short __ATTRS_o_ai
1430 vec_cmpgt(vector unsigned short __a, vector unsigned short __b)
1431 {
1432   return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
1433 }
1434
1435 static vector bool int __ATTRS_o_ai
1436 vec_cmpgt(vector int __a, vector int __b)
1437 {
1438   return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
1439 }
1440
1441 static vector bool int __ATTRS_o_ai
1442 vec_cmpgt(vector unsigned int __a, vector unsigned int __b)
1443 {
1444   return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
1445 }
1446
1447 static vector bool int __ATTRS_o_ai
1448 vec_cmpgt(vector float __a, vector float __b)
1449 {
1450   return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
1451 }
1452
1453 /* vec_vcmpgtsb */
1454
1455 static vector bool char __attribute__((__always_inline__))
1456 vec_vcmpgtsb(vector signed char __a, vector signed char __b)
1457 {
1458   return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
1459 }
1460
1461 /* vec_vcmpgtub */
1462
1463 static vector bool char __attribute__((__always_inline__))
1464 vec_vcmpgtub(vector unsigned char __a, vector unsigned char __b)
1465 {
1466   return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
1467 }
1468
1469 /* vec_vcmpgtsh */
1470
1471 static vector bool short __attribute__((__always_inline__))
1472 vec_vcmpgtsh(vector short __a, vector short __b)
1473 {
1474   return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
1475 }
1476
1477 /* vec_vcmpgtuh */
1478
1479 static vector bool short __attribute__((__always_inline__))
1480 vec_vcmpgtuh(vector unsigned short __a, vector unsigned short __b)
1481 {
1482   return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
1483 }
1484
1485 /* vec_vcmpgtsw */
1486
1487 static vector bool int __attribute__((__always_inline__))
1488 vec_vcmpgtsw(vector int __a, vector int __b)
1489 {
1490   return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
1491 }
1492
1493 /* vec_vcmpgtuw */
1494
1495 static vector bool int __attribute__((__always_inline__))
1496 vec_vcmpgtuw(vector unsigned int __a, vector unsigned int __b)
1497 {
1498   return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
1499 }
1500
1501 /* vec_vcmpgtfp */
1502
1503 static vector bool int __attribute__((__always_inline__))
1504 vec_vcmpgtfp(vector float __a, vector float __b)
1505 {
1506   return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
1507 }
1508
1509 /* vec_cmple */
1510
1511 static vector bool int __attribute__((__always_inline__))
1512 vec_cmple(vector float __a, vector float __b)
1513 {
1514   return (vector bool int)__builtin_altivec_vcmpgefp(__b, __a);
1515 }
1516
1517 /* vec_cmplt */
1518
1519 static vector bool char __ATTRS_o_ai
1520 vec_cmplt(vector signed char __a, vector signed char __b)
1521 {
1522   return (vector bool char)__builtin_altivec_vcmpgtsb(__b, __a);
1523 }
1524
1525 static vector bool char __ATTRS_o_ai
1526 vec_cmplt(vector unsigned char __a, vector unsigned char __b)
1527 {
1528   return (vector bool char)__builtin_altivec_vcmpgtub(__b, __a);
1529 }
1530
1531 static vector bool short __ATTRS_o_ai
1532 vec_cmplt(vector short __a, vector short __b)
1533 {
1534   return (vector bool short)__builtin_altivec_vcmpgtsh(__b, __a);
1535 }
1536
1537 static vector bool short __ATTRS_o_ai
1538 vec_cmplt(vector unsigned short __a, vector unsigned short __b)
1539 {
1540   return (vector bool short)__builtin_altivec_vcmpgtuh(__b, __a);
1541 }
1542
1543 static vector bool int __ATTRS_o_ai
1544 vec_cmplt(vector int __a, vector int __b)
1545 {
1546   return (vector bool int)__builtin_altivec_vcmpgtsw(__b, __a);
1547 }
1548
1549 static vector bool int __ATTRS_o_ai
1550 vec_cmplt(vector unsigned int __a, vector unsigned int __b)
1551 {
1552   return (vector bool int)__builtin_altivec_vcmpgtuw(__b, __a);
1553 }
1554
1555 static vector bool int __ATTRS_o_ai
1556 vec_cmplt(vector float __a, vector float __b)
1557 {
1558   return (vector bool int)__builtin_altivec_vcmpgtfp(__b, __a);
1559 }
1560
1561 /* vec_ctf */
1562
1563 static vector float __ATTRS_o_ai
1564 vec_ctf(vector int __a, int __b)
1565 {
1566   return __builtin_altivec_vcfsx(__a, __b);
1567 }
1568
1569 static vector float __ATTRS_o_ai
1570 vec_ctf(vector unsigned int __a, int __b)
1571 {
1572   return __builtin_altivec_vcfux((vector int)__a, __b);
1573 }
1574
1575 /* vec_vcfsx */
1576
1577 static vector float __attribute__((__always_inline__))
1578 vec_vcfsx(vector int __a, int __b)
1579 {
1580   return __builtin_altivec_vcfsx(__a, __b);
1581 }
1582
1583 /* vec_vcfux */
1584
1585 static vector float __attribute__((__always_inline__))
1586 vec_vcfux(vector unsigned int __a, int __b)
1587 {
1588   return __builtin_altivec_vcfux((vector int)__a, __b);
1589 }
1590
1591 /* vec_cts */
1592
1593 static vector int __attribute__((__always_inline__))
1594 vec_cts(vector float __a, int __b)
1595 {
1596   return __builtin_altivec_vctsxs(__a, __b);
1597 }
1598
1599 /* vec_vctsxs */
1600
1601 static vector int __attribute__((__always_inline__))
1602 vec_vctsxs(vector float __a, int __b)
1603 {
1604   return __builtin_altivec_vctsxs(__a, __b);
1605 }
1606
1607 /* vec_ctu */
1608
1609 static vector unsigned int __attribute__((__always_inline__))
1610 vec_ctu(vector float __a, int __b)
1611 {
1612   return __builtin_altivec_vctuxs(__a, __b);
1613 }
1614
1615 /* vec_vctuxs */
1616
1617 static vector unsigned int __attribute__((__always_inline__))
1618 vec_vctuxs(vector float __a, int __b)
1619 {
1620   return __builtin_altivec_vctuxs(__a, __b);
1621 }
1622
1623 /* vec_dss */
1624
1625 static void __attribute__((__always_inline__))
1626 vec_dss(int __a)
1627 {
1628   __builtin_altivec_dss(__a);
1629 }
1630
1631 /* vec_dssall */
1632
1633 static void __attribute__((__always_inline__))
1634 vec_dssall(void)
1635 {
1636   __builtin_altivec_dssall();
1637 }
1638
1639 /* vec_dst */
1640
1641 static void __attribute__((__always_inline__))
1642 vec_dst(const void *__a, int __b, int __c)
1643 {
1644   __builtin_altivec_dst(__a, __b, __c);
1645 }
1646
1647 /* vec_dstst */
1648
1649 static void __attribute__((__always_inline__))
1650 vec_dstst(const void *__a, int __b, int __c)
1651 {
1652   __builtin_altivec_dstst(__a, __b, __c);
1653 }
1654
1655 /* vec_dststt */
1656
1657 static void __attribute__((__always_inline__))
1658 vec_dststt(const void *__a, int __b, int __c)
1659 {
1660   __builtin_altivec_dststt(__a, __b, __c);
1661 }
1662
1663 /* vec_dstt */
1664
1665 static void __attribute__((__always_inline__))
1666 vec_dstt(const void *__a, int __b, int __c)
1667 {
1668   __builtin_altivec_dstt(__a, __b, __c);
1669 }
1670
1671 /* vec_expte */
1672
1673 static vector float __attribute__((__always_inline__))
1674 vec_expte(vector float __a)
1675 {
1676   return __builtin_altivec_vexptefp(__a);
1677 }
1678
1679 /* vec_vexptefp */
1680
1681 static vector float __attribute__((__always_inline__))
1682 vec_vexptefp(vector float __a)
1683 {
1684   return __builtin_altivec_vexptefp(__a);
1685 }
1686
1687 /* vec_floor */
1688
1689 static vector float __attribute__((__always_inline__))
1690 vec_floor(vector float __a)
1691 {
1692   return __builtin_altivec_vrfim(__a);
1693 }
1694
1695 /* vec_vrfim */
1696
1697 static vector float __attribute__((__always_inline__))
1698 vec_vrfim(vector float __a)
1699 {
1700   return __builtin_altivec_vrfim(__a);
1701 }
1702
1703 /* vec_ld */
1704
1705 static vector signed char __ATTRS_o_ai
1706 vec_ld(int __a, const vector signed char *__b)
1707 {
1708   return (vector signed char)__builtin_altivec_lvx(__a, __b);
1709 }
1710
1711 static vector signed char __ATTRS_o_ai
1712 vec_ld(int __a, const signed char *__b)
1713 {
1714   return (vector signed char)__builtin_altivec_lvx(__a, __b);
1715 }
1716
1717 static vector unsigned char __ATTRS_o_ai
1718 vec_ld(int __a, const vector unsigned char *__b)
1719 {
1720   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
1721 }
1722
1723 static vector unsigned char __ATTRS_o_ai
1724 vec_ld(int __a, const unsigned char *__b)
1725 {
1726   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
1727 }
1728
1729 static vector bool char __ATTRS_o_ai
1730 vec_ld(int __a, const vector bool char *__b)
1731 {
1732   return (vector bool char)__builtin_altivec_lvx(__a, __b);
1733 }
1734
1735 static vector short __ATTRS_o_ai
1736 vec_ld(int __a, const vector short *__b)
1737 {
1738   return (vector short)__builtin_altivec_lvx(__a, __b);
1739 }
1740
1741 static vector short __ATTRS_o_ai
1742 vec_ld(int __a, const short *__b)
1743 {
1744   return (vector short)__builtin_altivec_lvx(__a, __b);
1745 }
1746
1747 static vector unsigned short __ATTRS_o_ai
1748 vec_ld(int __a, const vector unsigned short *__b)
1749 {
1750   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
1751 }
1752
1753 static vector unsigned short __ATTRS_o_ai
1754 vec_ld(int __a, const unsigned short *__b)
1755 {
1756   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
1757 }
1758
1759 static vector bool short __ATTRS_o_ai
1760 vec_ld(int __a, const vector bool short *__b)
1761 {
1762   return (vector bool short)__builtin_altivec_lvx(__a, __b);
1763 }
1764
1765 static vector pixel __ATTRS_o_ai
1766 vec_ld(int __a, const vector pixel *__b)
1767 {
1768   return (vector pixel)__builtin_altivec_lvx(__a, __b);
1769 }
1770
1771 static vector int __ATTRS_o_ai
1772 vec_ld(int __a, const vector int *__b)
1773 {
1774   return (vector int)__builtin_altivec_lvx(__a, __b);
1775 }
1776
1777 static vector int __ATTRS_o_ai
1778 vec_ld(int __a, const int *__b)
1779 {
1780   return (vector int)__builtin_altivec_lvx(__a, __b);
1781 }
1782
1783 static vector unsigned int __ATTRS_o_ai
1784 vec_ld(int __a, const vector unsigned int *__b)
1785 {
1786   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
1787 }
1788
1789 static vector unsigned int __ATTRS_o_ai
1790 vec_ld(int __a, const unsigned int *__b)
1791 {
1792   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
1793 }
1794
1795 static vector bool int __ATTRS_o_ai
1796 vec_ld(int __a, const vector bool int *__b)
1797 {
1798   return (vector bool int)__builtin_altivec_lvx(__a, __b);
1799 }
1800
1801 static vector float __ATTRS_o_ai
1802 vec_ld(int __a, const vector float *__b)
1803 {
1804   return (vector float)__builtin_altivec_lvx(__a, __b);
1805 }
1806
1807 static vector float __ATTRS_o_ai
1808 vec_ld(int __a, const float *__b)
1809 {
1810   return (vector float)__builtin_altivec_lvx(__a, __b);
1811 }
1812
1813 /* vec_lvx */
1814
1815 static vector signed char __ATTRS_o_ai
1816 vec_lvx(int __a, const vector signed char *__b)
1817 {
1818   return (vector signed char)__builtin_altivec_lvx(__a, __b);
1819 }
1820
1821 static vector signed char __ATTRS_o_ai
1822 vec_lvx(int __a, const signed char *__b)
1823 {
1824   return (vector signed char)__builtin_altivec_lvx(__a, __b);
1825 }
1826
1827 static vector unsigned char __ATTRS_o_ai
1828 vec_lvx(int __a, const vector unsigned char *__b)
1829 {
1830   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
1831 }
1832
1833 static vector unsigned char __ATTRS_o_ai
1834 vec_lvx(int __a, const unsigned char *__b)
1835 {
1836   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
1837 }
1838
1839 static vector bool char __ATTRS_o_ai
1840 vec_lvx(int __a, const vector bool char *__b)
1841 {
1842   return (vector bool char)__builtin_altivec_lvx(__a, __b);
1843 }
1844
1845 static vector short __ATTRS_o_ai
1846 vec_lvx(int __a, const vector short *__b)
1847 {
1848   return (vector short)__builtin_altivec_lvx(__a, __b);
1849 }
1850
1851 static vector short __ATTRS_o_ai
1852 vec_lvx(int __a, const short *__b)
1853 {
1854   return (vector short)__builtin_altivec_lvx(__a, __b);
1855 }
1856
1857 static vector unsigned short __ATTRS_o_ai
1858 vec_lvx(int __a, const vector unsigned short *__b)
1859 {
1860   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
1861 }
1862
1863 static vector unsigned short __ATTRS_o_ai
1864 vec_lvx(int __a, const unsigned short *__b)
1865 {
1866   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
1867 }
1868
1869 static vector bool short __ATTRS_o_ai
1870 vec_lvx(int __a, const vector bool short *__b)
1871 {
1872   return (vector bool short)__builtin_altivec_lvx(__a, __b);
1873 }
1874
1875 static vector pixel __ATTRS_o_ai
1876 vec_lvx(int __a, const vector pixel *__b)
1877 {
1878   return (vector pixel)__builtin_altivec_lvx(__a, __b);
1879 }
1880
1881 static vector int __ATTRS_o_ai
1882 vec_lvx(int __a, const vector int *__b)
1883 {
1884   return (vector int)__builtin_altivec_lvx(__a, __b);
1885 }
1886
1887 static vector int __ATTRS_o_ai
1888 vec_lvx(int __a, const int *__b)
1889 {
1890   return (vector int)__builtin_altivec_lvx(__a, __b);
1891 }
1892
1893 static vector unsigned int __ATTRS_o_ai
1894 vec_lvx(int __a, const vector unsigned int *__b)
1895 {
1896   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
1897 }
1898
1899 static vector unsigned int __ATTRS_o_ai
1900 vec_lvx(int __a, const unsigned int *__b)
1901 {
1902   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
1903 }
1904
1905 static vector bool int __ATTRS_o_ai
1906 vec_lvx(int __a, const vector bool int *__b)
1907 {
1908   return (vector bool int)__builtin_altivec_lvx(__a, __b);
1909 }
1910
1911 static vector float __ATTRS_o_ai
1912 vec_lvx(int __a, const vector float *__b)
1913 {
1914   return (vector float)__builtin_altivec_lvx(__a, __b);
1915 }
1916
1917 static vector float __ATTRS_o_ai
1918 vec_lvx(int __a, const float *__b)
1919 {
1920   return (vector float)__builtin_altivec_lvx(__a, __b);
1921 }
1922
1923 /* vec_lde */
1924
1925 static vector signed char __ATTRS_o_ai
1926 vec_lde(int __a, const signed char *__b)
1927 {
1928   return (vector signed char)__builtin_altivec_lvebx(__a, __b);
1929 }
1930
1931 static vector unsigned char __ATTRS_o_ai
1932 vec_lde(int __a, const unsigned char *__b)
1933 {
1934   return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
1935 }
1936
1937 static vector short __ATTRS_o_ai
1938 vec_lde(int __a, const short *__b)
1939 {
1940   return (vector short)__builtin_altivec_lvehx(__a, __b);
1941 }
1942
1943 static vector unsigned short __ATTRS_o_ai
1944 vec_lde(int __a, const unsigned short *__b)
1945 {
1946   return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
1947 }
1948
1949 static vector int __ATTRS_o_ai
1950 vec_lde(int __a, const int *__b)
1951 {
1952   return (vector int)__builtin_altivec_lvewx(__a, __b);
1953 }
1954
1955 static vector unsigned int __ATTRS_o_ai
1956 vec_lde(int __a, const unsigned int *__b)
1957 {
1958   return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
1959 }
1960
1961 static vector float __ATTRS_o_ai
1962 vec_lde(int __a, const float *__b)
1963 {
1964   return (vector float)__builtin_altivec_lvewx(__a, __b);
1965 }
1966
1967 /* vec_lvebx */
1968
1969 static vector signed char __ATTRS_o_ai
1970 vec_lvebx(int __a, const signed char *__b)
1971 {
1972   return (vector signed char)__builtin_altivec_lvebx(__a, __b);
1973 }
1974
1975 static vector unsigned char __ATTRS_o_ai
1976 vec_lvebx(int __a, const unsigned char *__b)
1977 {
1978   return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
1979 }
1980
1981 /* vec_lvehx */
1982
1983 static vector short __ATTRS_o_ai
1984 vec_lvehx(int __a, const short *__b)
1985 {
1986   return (vector short)__builtin_altivec_lvehx(__a, __b);
1987 }
1988
1989 static vector unsigned short __ATTRS_o_ai
1990 vec_lvehx(int __a, const unsigned short *__b)
1991 {
1992   return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
1993 }
1994
1995 /* vec_lvewx */
1996
1997 static vector int __ATTRS_o_ai
1998 vec_lvewx(int __a, const int *__b)
1999 {
2000   return (vector int)__builtin_altivec_lvewx(__a, __b);
2001 }
2002
2003 static vector unsigned int __ATTRS_o_ai
2004 vec_lvewx(int __a, const unsigned int *__b)
2005 {
2006   return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
2007 }
2008
2009 static vector float __ATTRS_o_ai
2010 vec_lvewx(int __a, const float *__b)
2011 {
2012   return (vector float)__builtin_altivec_lvewx(__a, __b);
2013 }
2014
2015 /* vec_ldl */
2016
2017 static vector signed char __ATTRS_o_ai
2018 vec_ldl(int __a, const vector signed char *__b)
2019 {
2020   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2021 }
2022
2023 static vector signed char __ATTRS_o_ai
2024 vec_ldl(int __a, const signed char *__b)
2025 {
2026   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2027 }
2028
2029 static vector unsigned char __ATTRS_o_ai
2030 vec_ldl(int __a, const vector unsigned char *__b)
2031 {
2032   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2033 }
2034
2035 static vector unsigned char __ATTRS_o_ai
2036 vec_ldl(int __a, const unsigned char *__b)
2037 {
2038   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2039 }
2040
2041 static vector bool char __ATTRS_o_ai
2042 vec_ldl(int __a, const vector bool char *__b)
2043 {
2044   return (vector bool char)__builtin_altivec_lvxl(__a, __b);
2045 }
2046
2047 static vector short __ATTRS_o_ai
2048 vec_ldl(int __a, const vector short *__b)
2049 {
2050   return (vector short)__builtin_altivec_lvxl(__a, __b);
2051 }
2052
2053 static vector short __ATTRS_o_ai
2054 vec_ldl(int __a, const short *__b)
2055 {
2056   return (vector short)__builtin_altivec_lvxl(__a, __b);
2057 }
2058
2059 static vector unsigned short __ATTRS_o_ai
2060 vec_ldl(int __a, const vector unsigned short *__b)
2061 {
2062   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2063 }
2064
2065 static vector unsigned short __ATTRS_o_ai
2066 vec_ldl(int __a, const unsigned short *__b)
2067 {
2068   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2069 }
2070
2071 static vector bool short __ATTRS_o_ai
2072 vec_ldl(int __a, const vector bool short *__b)
2073 {
2074   return (vector bool short)__builtin_altivec_lvxl(__a, __b);
2075 }
2076
2077 static vector pixel __ATTRS_o_ai
2078 vec_ldl(int __a, const vector pixel *__b)
2079 {
2080   return (vector pixel short)__builtin_altivec_lvxl(__a, __b);
2081 }
2082
2083 static vector int __ATTRS_o_ai
2084 vec_ldl(int __a, const vector int *__b)
2085 {
2086   return (vector int)__builtin_altivec_lvxl(__a, __b);
2087 }
2088
2089 static vector int __ATTRS_o_ai
2090 vec_ldl(int __a, const int *__b)
2091 {
2092   return (vector int)__builtin_altivec_lvxl(__a, __b);
2093 }
2094
2095 static vector unsigned int __ATTRS_o_ai
2096 vec_ldl(int __a, const vector unsigned int *__b)
2097 {
2098   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2099 }
2100
2101 static vector unsigned int __ATTRS_o_ai
2102 vec_ldl(int __a, const unsigned int *__b)
2103 {
2104   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2105 }
2106
2107 static vector bool int __ATTRS_o_ai
2108 vec_ldl(int __a, const vector bool int *__b)
2109 {
2110   return (vector bool int)__builtin_altivec_lvxl(__a, __b);
2111 }
2112
2113 static vector float __ATTRS_o_ai
2114 vec_ldl(int __a, const vector float *__b)
2115 {
2116   return (vector float)__builtin_altivec_lvxl(__a, __b);
2117 }
2118
2119 static vector float __ATTRS_o_ai
2120 vec_ldl(int __a, const float *__b)
2121 {
2122   return (vector float)__builtin_altivec_lvxl(__a, __b);
2123 }
2124
2125 /* vec_lvxl */
2126
2127 static vector signed char __ATTRS_o_ai
2128 vec_lvxl(int __a, const vector signed char *__b)
2129 {
2130   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2131 }
2132
2133 static vector signed char __ATTRS_o_ai
2134 vec_lvxl(int __a, const signed char *__b)
2135 {
2136   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2137 }
2138
2139 static vector unsigned char __ATTRS_o_ai
2140 vec_lvxl(int __a, const vector unsigned char *__b)
2141 {
2142   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2143 }
2144
2145 static vector unsigned char __ATTRS_o_ai
2146 vec_lvxl(int __a, const unsigned char *__b)
2147 {
2148   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2149 }
2150
2151 static vector bool char __ATTRS_o_ai
2152 vec_lvxl(int __a, const vector bool char *__b)
2153 {
2154   return (vector bool char)__builtin_altivec_lvxl(__a, __b);
2155 }
2156
2157 static vector short __ATTRS_o_ai
2158 vec_lvxl(int __a, const vector short *__b)
2159 {
2160   return (vector short)__builtin_altivec_lvxl(__a, __b);
2161 }
2162
2163 static vector short __ATTRS_o_ai
2164 vec_lvxl(int __a, const short *__b)
2165 {
2166   return (vector short)__builtin_altivec_lvxl(__a, __b);
2167 }
2168
2169 static vector unsigned short __ATTRS_o_ai
2170 vec_lvxl(int __a, const vector unsigned short *__b)
2171 {
2172   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2173 }
2174
2175 static vector unsigned short __ATTRS_o_ai
2176 vec_lvxl(int __a, const unsigned short *__b)
2177 {
2178   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2179 }
2180
2181 static vector bool short __ATTRS_o_ai
2182 vec_lvxl(int __a, const vector bool short *__b)
2183 {
2184   return (vector bool short)__builtin_altivec_lvxl(__a, __b);
2185 }
2186
2187 static vector pixel __ATTRS_o_ai
2188 vec_lvxl(int __a, const vector pixel *__b)
2189 {
2190   return (vector pixel)__builtin_altivec_lvxl(__a, __b);
2191 }
2192
2193 static vector int __ATTRS_o_ai
2194 vec_lvxl(int __a, const vector int *__b)
2195 {
2196   return (vector int)__builtin_altivec_lvxl(__a, __b);
2197 }
2198
2199 static vector int __ATTRS_o_ai
2200 vec_lvxl(int __a, const int *__b)
2201 {
2202   return (vector int)__builtin_altivec_lvxl(__a, __b);
2203 }
2204
2205 static vector unsigned int __ATTRS_o_ai
2206 vec_lvxl(int __a, const vector unsigned int *__b)
2207 {
2208   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2209 }
2210
2211 static vector unsigned int __ATTRS_o_ai
2212 vec_lvxl(int __a, const unsigned int *__b)
2213 {
2214   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2215 }
2216
2217 static vector bool int __ATTRS_o_ai
2218 vec_lvxl(int __a, const vector bool int *__b)
2219 {
2220   return (vector bool int)__builtin_altivec_lvxl(__a, __b);
2221 }
2222
2223 static vector float __ATTRS_o_ai
2224 vec_lvxl(int __a, const vector float *__b)
2225 {
2226   return (vector float)__builtin_altivec_lvxl(__a, __b);
2227 }
2228
2229 static vector float __ATTRS_o_ai
2230 vec_lvxl(int __a, const float *__b)
2231 {
2232   return (vector float)__builtin_altivec_lvxl(__a, __b);
2233 }
2234
2235 /* vec_loge */
2236
2237 static vector float __attribute__((__always_inline__))
2238 vec_loge(vector float __a)
2239 {
2240   return __builtin_altivec_vlogefp(__a);
2241 }
2242
2243 /* vec_vlogefp */
2244
2245 static vector float __attribute__((__always_inline__))
2246 vec_vlogefp(vector float __a)
2247 {
2248   return __builtin_altivec_vlogefp(__a);
2249 }
2250
2251 /* vec_lvsl */
2252
2253 static vector unsigned char __ATTRS_o_ai
2254 vec_lvsl(int __a, const signed char *__b)
2255 {
2256   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2257 }
2258
2259 static vector unsigned char __ATTRS_o_ai
2260 vec_lvsl(int __a, const unsigned char *__b)
2261 {
2262   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2263 }
2264
2265 static vector unsigned char __ATTRS_o_ai
2266 vec_lvsl(int __a, const short *__b)
2267 {
2268   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2269 }
2270
2271 static vector unsigned char __ATTRS_o_ai
2272 vec_lvsl(int __a, const unsigned short *__b)
2273 {
2274   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2275 }
2276
2277 static vector unsigned char __ATTRS_o_ai
2278 vec_lvsl(int __a, const int *__b)
2279 {
2280   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2281 }
2282
2283 static vector unsigned char __ATTRS_o_ai
2284 vec_lvsl(int __a, const unsigned int *__b)
2285 {
2286   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2287 }
2288
2289 static vector unsigned char __ATTRS_o_ai
2290 vec_lvsl(int __a, const float *__b)
2291 {
2292   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2293 }
2294
2295 /* vec_lvsr */
2296
2297 static vector unsigned char __ATTRS_o_ai
2298 vec_lvsr(int __a, const signed char *__b)
2299 {
2300   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2301 }
2302
2303 static vector unsigned char __ATTRS_o_ai
2304 vec_lvsr(int __a, const unsigned char *__b)
2305 {
2306   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2307 }
2308
2309 static vector unsigned char __ATTRS_o_ai
2310 vec_lvsr(int __a, const short *__b)
2311 {
2312   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2313 }
2314
2315 static vector unsigned char __ATTRS_o_ai
2316 vec_lvsr(int __a, const unsigned short *__b)
2317 {
2318   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2319 }
2320
2321 static vector unsigned char __ATTRS_o_ai
2322 vec_lvsr(int __a, const int *__b)
2323 {
2324   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2325 }
2326
2327 static vector unsigned char __ATTRS_o_ai
2328 vec_lvsr(int __a, const unsigned int *__b)
2329 {
2330   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2331 }
2332
2333 static vector unsigned char __ATTRS_o_ai
2334 vec_lvsr(int __a, const float *__b)
2335 {
2336   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2337 }
2338
2339 /* vec_madd */
2340
2341 static vector float __attribute__((__always_inline__))
2342 vec_madd(vector float __a, vector float __b, vector float __c)
2343 {
2344   return __builtin_altivec_vmaddfp(__a, __b, __c);
2345 }
2346
2347 /* vec_vmaddfp */
2348
2349 static vector float __attribute__((__always_inline__))
2350 vec_vmaddfp(vector float __a, vector float __b, vector float __c)
2351 {
2352   return __builtin_altivec_vmaddfp(__a, __b, __c);
2353 }
2354
2355 /* vec_madds */
2356
2357 static vector signed short __attribute__((__always_inline__))
2358 vec_madds(vector signed short __a, vector signed short __b, vector signed short __c)
2359 {
2360   return __builtin_altivec_vmhaddshs(__a, __b, __c);
2361 }
2362
2363 /* vec_vmhaddshs */
2364 static vector signed short __attribute__((__always_inline__))
2365 vec_vmhaddshs(vector signed short __a,
2366               vector signed short __b,
2367               vector signed short __c)
2368 {
2369   return __builtin_altivec_vmhaddshs(__a, __b, __c);
2370 }
2371
2372 /* vec_max */
2373
2374 static vector signed char __ATTRS_o_ai
2375 vec_max(vector signed char __a, vector signed char __b)
2376 {
2377   return __builtin_altivec_vmaxsb(__a, __b);
2378 }
2379
2380 static vector signed char __ATTRS_o_ai
2381 vec_max(vector bool char __a, vector signed char __b)
2382 {
2383   return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
2384 }
2385
2386 static vector signed char __ATTRS_o_ai
2387 vec_max(vector signed char __a, vector bool char __b)
2388 {
2389   return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
2390 }
2391
2392 static vector unsigned char __ATTRS_o_ai
2393 vec_max(vector unsigned char __a, vector unsigned char __b)
2394 {
2395   return __builtin_altivec_vmaxub(__a, __b);
2396 }
2397
2398 static vector unsigned char __ATTRS_o_ai
2399 vec_max(vector bool char __a, vector unsigned char __b)
2400 {
2401   return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
2402 }
2403
2404 static vector unsigned char __ATTRS_o_ai
2405 vec_max(vector unsigned char __a, vector bool char __b)
2406 {
2407   return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
2408 }
2409
2410 static vector short __ATTRS_o_ai
2411 vec_max(vector short __a, vector short __b)
2412 {
2413   return __builtin_altivec_vmaxsh(__a, __b);
2414 }
2415
2416 static vector short __ATTRS_o_ai
2417 vec_max(vector bool short __a, vector short __b)
2418 {
2419   return __builtin_altivec_vmaxsh((vector short)__a, __b);
2420 }
2421
2422 static vector short __ATTRS_o_ai
2423 vec_max(vector short __a, vector bool short __b)
2424 {
2425   return __builtin_altivec_vmaxsh(__a, (vector short)__b);
2426 }
2427
2428 static vector unsigned short __ATTRS_o_ai
2429 vec_max(vector unsigned short __a, vector unsigned short __b)
2430 {
2431   return __builtin_altivec_vmaxuh(__a, __b);
2432 }
2433
2434 static vector unsigned short __ATTRS_o_ai
2435 vec_max(vector bool short __a, vector unsigned short __b)
2436 {
2437   return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
2438 }
2439
2440 static vector unsigned short __ATTRS_o_ai
2441 vec_max(vector unsigned short __a, vector bool short __b)
2442 {
2443   return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
2444 }
2445
2446 static vector int __ATTRS_o_ai
2447 vec_max(vector int __a, vector int __b)
2448 {
2449   return __builtin_altivec_vmaxsw(__a, __b);
2450 }
2451
2452 static vector int __ATTRS_o_ai
2453 vec_max(vector bool int __a, vector int __b)
2454 {
2455   return __builtin_altivec_vmaxsw((vector int)__a, __b);
2456 }
2457
2458 static vector int __ATTRS_o_ai
2459 vec_max(vector int __a, vector bool int __b)
2460 {
2461   return __builtin_altivec_vmaxsw(__a, (vector int)__b);
2462 }
2463
2464 static vector unsigned int __ATTRS_o_ai
2465 vec_max(vector unsigned int __a, vector unsigned int __b)
2466 {
2467   return __builtin_altivec_vmaxuw(__a, __b);
2468 }
2469
2470 static vector unsigned int __ATTRS_o_ai
2471 vec_max(vector bool int __a, vector unsigned int __b)
2472 {
2473   return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
2474 }
2475
2476 static vector unsigned int __ATTRS_o_ai
2477 vec_max(vector unsigned int __a, vector bool int __b)
2478 {
2479   return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
2480 }
2481
2482 static vector float __ATTRS_o_ai
2483 vec_max(vector float __a, vector float __b)
2484 {
2485   return __builtin_altivec_vmaxfp(__a, __b);
2486 }
2487
2488 /* vec_vmaxsb */
2489
2490 static vector signed char __ATTRS_o_ai
2491 vec_vmaxsb(vector signed char __a, vector signed char __b)
2492 {
2493   return __builtin_altivec_vmaxsb(__a, __b);
2494 }
2495
2496 static vector signed char __ATTRS_o_ai
2497 vec_vmaxsb(vector bool char __a, vector signed char __b)
2498 {
2499   return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
2500 }
2501
2502 static vector signed char __ATTRS_o_ai
2503 vec_vmaxsb(vector signed char __a, vector bool char __b)
2504 {
2505   return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
2506 }
2507
2508 /* vec_vmaxub */
2509
2510 static vector unsigned char __ATTRS_o_ai
2511 vec_vmaxub(vector unsigned char __a, vector unsigned char __b)
2512 {
2513   return __builtin_altivec_vmaxub(__a, __b);
2514 }
2515
2516 static vector unsigned char __ATTRS_o_ai
2517 vec_vmaxub(vector bool char __a, vector unsigned char __b)
2518 {
2519   return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
2520 }
2521
2522 static vector unsigned char __ATTRS_o_ai
2523 vec_vmaxub(vector unsigned char __a, vector bool char __b)
2524 {
2525   return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
2526 }
2527
2528 /* vec_vmaxsh */
2529
2530 static vector short __ATTRS_o_ai
2531 vec_vmaxsh(vector short __a, vector short __b)
2532 {
2533   return __builtin_altivec_vmaxsh(__a, __b);
2534 }
2535
2536 static vector short __ATTRS_o_ai
2537 vec_vmaxsh(vector bool short __a, vector short __b)
2538 {
2539   return __builtin_altivec_vmaxsh((vector short)__a, __b);
2540 }
2541
2542 static vector short __ATTRS_o_ai
2543 vec_vmaxsh(vector short __a, vector bool short __b)
2544 {
2545   return __builtin_altivec_vmaxsh(__a, (vector short)__b);
2546 }
2547
2548 /* vec_vmaxuh */
2549
2550 static vector unsigned short __ATTRS_o_ai
2551 vec_vmaxuh(vector unsigned short __a, vector unsigned short __b)
2552 {
2553   return __builtin_altivec_vmaxuh(__a, __b);
2554 }
2555
2556 static vector unsigned short __ATTRS_o_ai
2557 vec_vmaxuh(vector bool short __a, vector unsigned short __b)
2558 {
2559   return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
2560 }
2561
2562 static vector unsigned short __ATTRS_o_ai
2563 vec_vmaxuh(vector unsigned short __a, vector bool short __b)
2564 {
2565   return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
2566 }
2567
2568 /* vec_vmaxsw */
2569
2570 static vector int __ATTRS_o_ai
2571 vec_vmaxsw(vector int __a, vector int __b)
2572 {
2573   return __builtin_altivec_vmaxsw(__a, __b);
2574 }
2575
2576 static vector int __ATTRS_o_ai
2577 vec_vmaxsw(vector bool int __a, vector int __b)
2578 {
2579   return __builtin_altivec_vmaxsw((vector int)__a, __b);
2580 }
2581
2582 static vector int __ATTRS_o_ai
2583 vec_vmaxsw(vector int __a, vector bool int __b)
2584 {
2585   return __builtin_altivec_vmaxsw(__a, (vector int)__b);
2586 }
2587
2588 /* vec_vmaxuw */
2589
2590 static vector unsigned int __ATTRS_o_ai
2591 vec_vmaxuw(vector unsigned int __a, vector unsigned int __b)
2592 {
2593   return __builtin_altivec_vmaxuw(__a, __b);
2594 }
2595
2596 static vector unsigned int __ATTRS_o_ai
2597 vec_vmaxuw(vector bool int __a, vector unsigned int __b)
2598 {
2599   return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
2600 }
2601
2602 static vector unsigned int __ATTRS_o_ai
2603 vec_vmaxuw(vector unsigned int __a, vector bool int __b)
2604 {
2605   return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
2606 }
2607
2608 /* vec_vmaxfp */
2609
2610 static vector float __attribute__((__always_inline__))
2611 vec_vmaxfp(vector float __a, vector float __b)
2612 {
2613   return __builtin_altivec_vmaxfp(__a, __b);
2614 }
2615
2616 /* vec_mergeh */
2617
2618 static vector signed char __ATTRS_o_ai
2619 vec_mergeh(vector signed char __a, vector signed char __b)
2620 {
2621   return vec_perm(__a, __b, (vector unsigned char)
2622     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 
2623      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2624 }
2625
2626 static vector unsigned char __ATTRS_o_ai
2627 vec_mergeh(vector unsigned char __a, vector unsigned char __b)
2628 {
2629   return vec_perm(__a, __b, (vector unsigned char)
2630     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 
2631      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2632 }
2633
2634 static vector bool char __ATTRS_o_ai
2635 vec_mergeh(vector bool char __a, vector bool char __b)
2636 {
2637   return vec_perm(__a, __b, (vector unsigned char)
2638     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 
2639      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2640 }
2641
2642 static vector short __ATTRS_o_ai
2643 vec_mergeh(vector short __a, vector short __b)
2644 {
2645   return vec_perm(__a, __b, (vector unsigned char)
2646     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2647      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2648 }
2649
2650 static vector unsigned short __ATTRS_o_ai
2651 vec_mergeh(vector unsigned short __a, vector unsigned short __b)
2652 {
2653   return vec_perm(__a, __b, (vector unsigned char)
2654     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2655      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2656 }
2657
2658 static vector bool short __ATTRS_o_ai
2659 vec_mergeh(vector bool short __a, vector bool short __b)
2660 {
2661   return vec_perm(__a, __b, (vector unsigned char)
2662     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2663      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2664 }
2665
2666 static vector pixel __ATTRS_o_ai
2667 vec_mergeh(vector pixel __a, vector pixel __b)
2668 {
2669   return vec_perm(__a, __b, (vector unsigned char)
2670     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2671      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2672 }
2673
2674 static vector int __ATTRS_o_ai
2675 vec_mergeh(vector int __a, vector int __b)
2676 {
2677   return vec_perm(__a, __b, (vector unsigned char)
2678     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2679      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2680 }
2681
2682 static vector unsigned int __ATTRS_o_ai
2683 vec_mergeh(vector unsigned int __a, vector unsigned int __b)
2684 {
2685   return vec_perm(__a, __b, (vector unsigned char)
2686     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2687      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2688 }
2689
2690 static vector bool int __ATTRS_o_ai
2691 vec_mergeh(vector bool int __a, vector bool int __b)
2692 {
2693   return vec_perm(__a, __b, (vector unsigned char)
2694     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2695      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2696 }
2697
2698 static vector float __ATTRS_o_ai
2699 vec_mergeh(vector float __a, vector float __b)
2700 {
2701   return vec_perm(__a, __b, (vector unsigned char)
2702     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2703      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2704 }
2705
2706 /* vec_vmrghb */
2707
2708 #define __builtin_altivec_vmrghb vec_vmrghb
2709
2710 static vector signed char __ATTRS_o_ai
2711 vec_vmrghb(vector signed char __a, vector signed char __b)
2712 {
2713   return vec_perm(__a, __b, (vector unsigned char)
2714     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 
2715      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2716 }
2717
2718 static vector unsigned char __ATTRS_o_ai
2719 vec_vmrghb(vector unsigned char __a, vector unsigned char __b)
2720 {
2721   return vec_perm(__a, __b, (vector unsigned char)
2722     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 
2723      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2724 }
2725
2726 static vector bool char __ATTRS_o_ai
2727 vec_vmrghb(vector bool char __a, vector bool char __b)
2728 {
2729   return vec_perm(__a, __b, (vector unsigned char)
2730     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13, 
2731      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2732 }
2733
2734 /* vec_vmrghh */
2735
2736 #define __builtin_altivec_vmrghh vec_vmrghh
2737
2738 static vector short __ATTRS_o_ai
2739 vec_vmrghh(vector short __a, vector short __b)
2740 {
2741   return vec_perm(__a, __b, (vector unsigned char)
2742     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2743      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2744 }
2745
2746 static vector unsigned short __ATTRS_o_ai
2747 vec_vmrghh(vector unsigned short __a, vector unsigned short __b)
2748 {
2749   return vec_perm(__a, __b, (vector unsigned char)
2750     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2751      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2752 }
2753
2754 static vector bool short __ATTRS_o_ai
2755 vec_vmrghh(vector bool short __a, vector bool short __b)
2756 {
2757   return vec_perm(__a, __b, (vector unsigned char)
2758     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2759      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2760 }
2761
2762 static vector pixel __ATTRS_o_ai
2763 vec_vmrghh(vector pixel __a, vector pixel __b)
2764 {
2765   return vec_perm(__a, __b, (vector unsigned char)
2766     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2767      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2768 }
2769
2770 /* vec_vmrghw */
2771
2772 #define __builtin_altivec_vmrghw vec_vmrghw
2773
2774 static vector int __ATTRS_o_ai
2775 vec_vmrghw(vector int __a, vector int __b)
2776 {
2777   return vec_perm(__a, __b, (vector unsigned char)
2778     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2779      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2780 }
2781
2782 static vector unsigned int __ATTRS_o_ai
2783 vec_vmrghw(vector unsigned int __a, vector unsigned int __b)
2784 {
2785   return vec_perm(__a, __b, (vector unsigned char)
2786     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2787      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2788 }
2789
2790 static vector bool int __ATTRS_o_ai
2791 vec_vmrghw(vector bool int __a, vector bool int __b)
2792 {
2793   return vec_perm(__a, __b, (vector unsigned char)
2794     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2795      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2796 }
2797
2798 static vector float __ATTRS_o_ai
2799 vec_vmrghw(vector float __a, vector float __b)
2800 {
2801   return vec_perm(__a, __b, (vector unsigned char)
2802     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2803      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2804 }
2805
2806 /* vec_mergel */
2807
2808 static vector signed char __ATTRS_o_ai
2809 vec_mergel(vector signed char __a, vector signed char __b)
2810 {
2811   return vec_perm(__a, __b, (vector unsigned char)
2812     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B, 
2813      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2814 }
2815
2816 static vector unsigned char __ATTRS_o_ai
2817 vec_mergel(vector unsigned char __a, vector unsigned char __b)
2818 {
2819   return vec_perm(__a, __b, (vector unsigned char)
2820     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B, 
2821      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2822 }
2823
2824 static vector bool char __ATTRS_o_ai
2825 vec_mergel(vector bool char __a, vector bool char __b)
2826 {
2827   return vec_perm(__a, __b, (vector unsigned char)
2828     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B, 
2829      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2830 }
2831
2832 static vector short __ATTRS_o_ai
2833 vec_mergel(vector short __a, vector short __b)
2834 {
2835   return vec_perm(__a, __b, (vector unsigned char)
2836     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2837      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2838 }
2839
2840 static vector unsigned short __ATTRS_o_ai
2841 vec_mergel(vector unsigned short __a, vector unsigned short __b)
2842 {
2843   return vec_perm(__a, __b, (vector unsigned char)
2844     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2845      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2846 }
2847
2848 static vector bool short __ATTRS_o_ai
2849 vec_mergel(vector bool short __a, vector bool short __b)
2850 {
2851   return vec_perm(__a, __b, (vector unsigned char)
2852     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2853      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2854 }
2855
2856 static vector pixel __ATTRS_o_ai
2857 vec_mergel(vector pixel __a, vector pixel __b)
2858 {
2859   return vec_perm(__a, __b, (vector unsigned char)
2860     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2861      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2862 }
2863
2864 static vector int __ATTRS_o_ai
2865 vec_mergel(vector int __a, vector int __b)
2866 {
2867   return vec_perm(__a, __b, (vector unsigned char)
2868     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2869      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2870 }
2871
2872 static vector unsigned int __ATTRS_o_ai
2873 vec_mergel(vector unsigned int __a, vector unsigned int __b)
2874 {
2875   return vec_perm(__a, __b, (vector unsigned char)
2876     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2877      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2878 }
2879
2880 static vector bool int __ATTRS_o_ai
2881 vec_mergel(vector bool int __a, vector bool int __b)
2882 {
2883   return vec_perm(__a, __b, (vector unsigned char)
2884     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2885      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2886 }
2887
2888 static vector float __ATTRS_o_ai
2889 vec_mergel(vector float __a, vector float __b)
2890 {
2891   return vec_perm(__a, __b, (vector unsigned char)
2892     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2893      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2894 }
2895
2896 /* vec_vmrglb */
2897
2898 #define __builtin_altivec_vmrglb vec_vmrglb
2899
2900 static vector signed char __ATTRS_o_ai
2901 vec_vmrglb(vector signed char __a, vector signed char __b)
2902 {
2903   return vec_perm(__a, __b, (vector unsigned char)
2904     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B, 
2905      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2906 }
2907
2908 static vector unsigned char __ATTRS_o_ai
2909 vec_vmrglb(vector unsigned char __a, vector unsigned char __b)
2910 {
2911   return vec_perm(__a, __b, (vector unsigned char)
2912     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B, 
2913      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2914 }
2915
2916 static vector bool char __ATTRS_o_ai
2917 vec_vmrglb(vector bool char __a, vector bool char __b)
2918 {
2919   return vec_perm(__a, __b, (vector unsigned char)
2920     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B, 
2921      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2922 }
2923
2924 /* vec_vmrglh */
2925
2926 #define __builtin_altivec_vmrglh vec_vmrglh
2927
2928 static vector short __ATTRS_o_ai
2929 vec_vmrglh(vector short __a, vector short __b)
2930 {
2931   return vec_perm(__a, __b, (vector unsigned char)
2932     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2933      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2934 }
2935
2936 static vector unsigned short __ATTRS_o_ai
2937 vec_vmrglh(vector unsigned short __a, vector unsigned short __b)
2938 {
2939   return vec_perm(__a, __b, (vector unsigned char)
2940     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2941      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2942 }
2943
2944 static vector bool short __ATTRS_o_ai
2945 vec_vmrglh(vector bool short __a, vector bool short __b)
2946 {
2947   return vec_perm(__a, __b, (vector unsigned char)
2948     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2949      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2950 }
2951
2952 static vector pixel __ATTRS_o_ai
2953 vec_vmrglh(vector pixel __a, vector pixel __b)
2954 {
2955   return vec_perm(__a, __b, (vector unsigned char)
2956     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2957      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2958 }
2959
2960 /* vec_vmrglw */
2961
2962 #define __builtin_altivec_vmrglw vec_vmrglw
2963
2964 static vector int __ATTRS_o_ai
2965 vec_vmrglw(vector int __a, vector int __b)
2966 {
2967   return vec_perm(__a, __b, (vector unsigned char)
2968     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2969      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2970 }
2971
2972 static vector unsigned int __ATTRS_o_ai
2973 vec_vmrglw(vector unsigned int __a, vector unsigned int __b)
2974 {
2975   return vec_perm(__a, __b, (vector unsigned char)
2976     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2977      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2978 }
2979
2980 static vector bool int __ATTRS_o_ai
2981 vec_vmrglw(vector bool int __a, vector bool int __b)
2982 {
2983   return vec_perm(__a, __b, (vector unsigned char)
2984     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2985      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2986 }
2987
2988 static vector float __ATTRS_o_ai
2989 vec_vmrglw(vector float __a, vector float __b)
2990 {
2991   return vec_perm(__a, __b, (vector unsigned char)
2992     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2993      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2994 }
2995
2996 /* vec_mfvscr */
2997
2998 static vector unsigned short __attribute__((__always_inline__))
2999 vec_mfvscr(void)
3000 {
3001   return __builtin_altivec_mfvscr();
3002 }
3003
3004 /* vec_min */
3005
3006 static vector signed char __ATTRS_o_ai
3007 vec_min(vector signed char __a, vector signed char __b)
3008 {
3009   return __builtin_altivec_vminsb(__a, __b);
3010 }
3011
3012 static vector signed char __ATTRS_o_ai
3013 vec_min(vector bool char __a, vector signed char __b)
3014 {
3015   return __builtin_altivec_vminsb((vector signed char)__a, __b);
3016 }
3017
3018 static vector signed char __ATTRS_o_ai
3019 vec_min(vector signed char __a, vector bool char __b)
3020 {
3021   return __builtin_altivec_vminsb(__a, (vector signed char)__b);
3022 }
3023
3024 static vector unsigned char __ATTRS_o_ai
3025 vec_min(vector unsigned char __a, vector unsigned char __b)
3026 {
3027   return __builtin_altivec_vminub(__a, __b);
3028 }
3029
3030 static vector unsigned char __ATTRS_o_ai
3031 vec_min(vector bool char __a, vector unsigned char __b)
3032 {
3033   return __builtin_altivec_vminub((vector unsigned char)__a, __b);
3034 }
3035
3036 static vector unsigned char __ATTRS_o_ai
3037 vec_min(vector unsigned char __a, vector bool char __b)
3038 {
3039   return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
3040 }
3041
3042 static vector short __ATTRS_o_ai
3043 vec_min(vector short __a, vector short __b)
3044 {
3045   return __builtin_altivec_vminsh(__a, __b);
3046 }
3047
3048 static vector short __ATTRS_o_ai
3049 vec_min(vector bool short __a, vector short __b)
3050 {
3051   return __builtin_altivec_vminsh((vector short)__a, __b);
3052 }
3053
3054 static vector short __ATTRS_o_ai
3055 vec_min(vector short __a, vector bool short __b)
3056 {
3057   return __builtin_altivec_vminsh(__a, (vector short)__b);
3058 }
3059
3060 static vector unsigned short __ATTRS_o_ai
3061 vec_min(vector unsigned short __a, vector unsigned short __b)
3062 {
3063   return __builtin_altivec_vminuh(__a, __b);
3064 }
3065
3066 static vector unsigned short __ATTRS_o_ai
3067 vec_min(vector bool short __a, vector unsigned short __b)
3068 {
3069   return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
3070 }
3071
3072 static vector unsigned short __ATTRS_o_ai
3073 vec_min(vector unsigned short __a, vector bool short __b)
3074 {
3075   return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
3076 }
3077
3078 static vector int __ATTRS_o_ai
3079 vec_min(vector int __a, vector int __b)
3080 {
3081   return __builtin_altivec_vminsw(__a, __b);
3082 }
3083
3084 static vector int __ATTRS_o_ai
3085 vec_min(vector bool int __a, vector int __b)
3086 {
3087   return __builtin_altivec_vminsw((vector int)__a, __b);
3088 }
3089
3090 static vector int __ATTRS_o_ai
3091 vec_min(vector int __a, vector bool int __b)
3092 {
3093   return __builtin_altivec_vminsw(__a, (vector int)__b);
3094 }
3095
3096 static vector unsigned int __ATTRS_o_ai
3097 vec_min(vector unsigned int __a, vector unsigned int __b)
3098 {
3099   return __builtin_altivec_vminuw(__a, __b);
3100 }
3101
3102 static vector unsigned int __ATTRS_o_ai
3103 vec_min(vector bool int __a, vector unsigned int __b)
3104 {
3105   return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
3106 }
3107
3108 static vector unsigned int __ATTRS_o_ai
3109 vec_min(vector unsigned int __a, vector bool int __b)
3110 {
3111   return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
3112 }
3113
3114 static vector float __ATTRS_o_ai
3115 vec_min(vector float __a, vector float __b)
3116 {
3117   return __builtin_altivec_vminfp(__a, __b);
3118 }
3119
3120 /* vec_vminsb */
3121
3122 static vector signed char __ATTRS_o_ai
3123 vec_vminsb(vector signed char __a, vector signed char __b)
3124 {
3125   return __builtin_altivec_vminsb(__a, __b);
3126 }
3127
3128 static vector signed char __ATTRS_o_ai
3129 vec_vminsb(vector bool char __a, vector signed char __b)
3130 {
3131   return __builtin_altivec_vminsb((vector signed char)__a, __b);
3132 }
3133
3134 static vector signed char __ATTRS_o_ai
3135 vec_vminsb(vector signed char __a, vector bool char __b)
3136 {
3137   return __builtin_altivec_vminsb(__a, (vector signed char)__b);
3138 }
3139
3140 /* vec_vminub */
3141
3142 static vector unsigned char __ATTRS_o_ai
3143 vec_vminub(vector unsigned char __a, vector unsigned char __b)
3144 {
3145   return __builtin_altivec_vminub(__a, __b);
3146 }
3147
3148 static vector unsigned char __ATTRS_o_ai
3149 vec_vminub(vector bool char __a, vector unsigned char __b)
3150 {
3151   return __builtin_altivec_vminub((vector unsigned char)__a, __b);
3152 }
3153
3154 static vector unsigned char __ATTRS_o_ai
3155 vec_vminub(vector unsigned char __a, vector bool char __b)
3156 {
3157   return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
3158 }
3159
3160 /* vec_vminsh */
3161
3162 static vector short __ATTRS_o_ai
3163 vec_vminsh(vector short __a, vector short __b)
3164 {
3165   return __builtin_altivec_vminsh(__a, __b);
3166 }
3167
3168 static vector short __ATTRS_o_ai
3169 vec_vminsh(vector bool short __a, vector short __b)
3170 {
3171   return __builtin_altivec_vminsh((vector short)__a, __b);
3172 }
3173
3174 static vector short __ATTRS_o_ai
3175 vec_vminsh(vector short __a, vector bool short __b)
3176 {
3177   return __builtin_altivec_vminsh(__a, (vector short)__b);
3178 }
3179
3180 /* vec_vminuh */
3181
3182 static vector unsigned short __ATTRS_o_ai
3183 vec_vminuh(vector unsigned short __a, vector unsigned short __b)
3184 {
3185   return __builtin_altivec_vminuh(__a, __b);
3186 }
3187
3188 static vector unsigned short __ATTRS_o_ai
3189 vec_vminuh(vector bool short __a, vector unsigned short __b)
3190 {
3191   return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
3192 }
3193
3194 static vector unsigned short __ATTRS_o_ai
3195 vec_vminuh(vector unsigned short __a, vector bool short __b)
3196 {
3197   return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
3198 }
3199
3200 /* vec_vminsw */
3201
3202 static vector int __ATTRS_o_ai
3203 vec_vminsw(vector int __a, vector int __b)
3204 {
3205   return __builtin_altivec_vminsw(__a, __b);
3206 }
3207
3208 static vector int __ATTRS_o_ai
3209 vec_vminsw(vector bool int __a, vector int __b)
3210 {
3211   return __builtin_altivec_vminsw((vector int)__a, __b);
3212 }
3213
3214 static vector int __ATTRS_o_ai
3215 vec_vminsw(vector int __a, vector bool int __b)
3216 {
3217   return __builtin_altivec_vminsw(__a, (vector int)__b);
3218 }
3219
3220 /* vec_vminuw */
3221
3222 static vector unsigned int __ATTRS_o_ai
3223 vec_vminuw(vector unsigned int __a, vector unsigned int __b)
3224 {
3225   return __builtin_altivec_vminuw(__a, __b);
3226 }
3227
3228 static vector unsigned int __ATTRS_o_ai
3229 vec_vminuw(vector bool int __a, vector unsigned int __b)
3230 {
3231   return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
3232 }
3233
3234 static vector unsigned int __ATTRS_o_ai
3235 vec_vminuw(vector unsigned int __a, vector bool int __b)
3236 {
3237   return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
3238 }
3239
3240 /* vec_vminfp */
3241
3242 static vector float __attribute__((__always_inline__))
3243 vec_vminfp(vector float __a, vector float __b)
3244 {
3245   return __builtin_altivec_vminfp(__a, __b);
3246 }
3247
3248 /* vec_mladd */
3249
3250 #define __builtin_altivec_vmladduhm vec_mladd
3251
3252 static vector short __ATTRS_o_ai
3253 vec_mladd(vector short __a, vector short __b, vector short __c)
3254 {
3255   return __a * __b + __c;
3256 }
3257
3258 static vector short __ATTRS_o_ai
3259 vec_mladd(vector short __a, vector unsigned short __b, vector unsigned short __c)
3260 {
3261   return __a * (vector short)__b + (vector short)__c;
3262 }
3263
3264 static vector short __ATTRS_o_ai
3265 vec_mladd(vector unsigned short __a, vector short __b, vector short __c)
3266 {
3267   return (vector short)__a * __b + __c;
3268 }
3269
3270 static vector unsigned short __ATTRS_o_ai
3271 vec_mladd(vector unsigned short __a,
3272           vector unsigned short __b,
3273           vector unsigned short __c)
3274 {
3275   return __a * __b + __c;
3276 }
3277
3278 /* vec_vmladduhm */
3279
3280 static vector short __ATTRS_o_ai
3281 vec_vmladduhm(vector short __a, vector short __b, vector short __c)
3282 {
3283   return __a * __b + __c;
3284 }
3285
3286 static vector short __ATTRS_o_ai
3287 vec_vmladduhm(vector short __a, vector unsigned short __b, vector unsigned short __c)
3288 {
3289   return __a * (vector short)__b + (vector short)__c;
3290 }
3291
3292 static vector short __ATTRS_o_ai
3293 vec_vmladduhm(vector unsigned short __a, vector short __b, vector short __c)
3294 {
3295   return (vector short)__a * __b + __c;
3296 }
3297
3298 static vector unsigned short __ATTRS_o_ai
3299 vec_vmladduhm(vector unsigned short __a,
3300               vector unsigned short __b,
3301               vector unsigned short __c)
3302 {
3303   return __a * __b + __c;
3304 }
3305
3306 /* vec_mradds */
3307
3308 static vector short __attribute__((__always_inline__))
3309 vec_mradds(vector short __a, vector short __b, vector short __c)
3310 {
3311   return __builtin_altivec_vmhraddshs(__a, __b, __c);
3312 }
3313
3314 /* vec_vmhraddshs */
3315
3316 static vector short __attribute__((__always_inline__))
3317 vec_vmhraddshs(vector short __a, vector short __b, vector short __c)
3318 {
3319   return __builtin_altivec_vmhraddshs(__a, __b, __c);
3320 }
3321
3322 /* vec_msum */
3323
3324 static vector int __ATTRS_o_ai
3325 vec_msum(vector signed char __a, vector unsigned char __b, vector int __c)
3326 {
3327   return __builtin_altivec_vmsummbm(__a, __b, __c);
3328 }
3329
3330 static vector unsigned int __ATTRS_o_ai
3331 vec_msum(vector unsigned char __a, vector unsigned char __b, vector unsigned int __c)
3332 {
3333   return __builtin_altivec_vmsumubm(__a, __b, __c);
3334 }
3335
3336 static vector int __ATTRS_o_ai
3337 vec_msum(vector short __a, vector short __b, vector int __c)
3338 {
3339   return __builtin_altivec_vmsumshm(__a, __b, __c);
3340 }
3341
3342 static vector unsigned int __ATTRS_o_ai
3343 vec_msum(vector unsigned short __a,
3344          vector unsigned short __b,
3345          vector unsigned int __c)
3346 {
3347   return __builtin_altivec_vmsumuhm(__a, __b, __c);
3348 }
3349
3350 /* vec_vmsummbm */
3351
3352 static vector int __attribute__((__always_inline__))
3353 vec_vmsummbm(vector signed char __a, vector unsigned char __b, vector int __c)
3354 {
3355   return __builtin_altivec_vmsummbm(__a, __b, __c);
3356 }
3357
3358 /* vec_vmsumubm */
3359
3360 static vector unsigned int __attribute__((__always_inline__))
3361 vec_vmsumubm(vector unsigned char __a,
3362              vector unsigned char __b,
3363              vector unsigned int __c)
3364 {
3365   return __builtin_altivec_vmsumubm(__a, __b, __c);
3366 }
3367
3368 /* vec_vmsumshm */
3369
3370 static vector int __attribute__((__always_inline__))
3371 vec_vmsumshm(vector short __a, vector short __b, vector int __c)
3372 {
3373   return __builtin_altivec_vmsumshm(__a, __b, __c);
3374 }
3375
3376 /* vec_vmsumuhm */
3377
3378 static vector unsigned int __attribute__((__always_inline__))
3379 vec_vmsumuhm(vector unsigned short __a,
3380              vector unsigned short __b,
3381              vector unsigned int __c)
3382 {
3383   return __builtin_altivec_vmsumuhm(__a, __b, __c);
3384 }
3385
3386 /* vec_msums */
3387
3388 static vector int __ATTRS_o_ai
3389 vec_msums(vector short __a, vector short __b, vector int __c)
3390 {
3391   return __builtin_altivec_vmsumshs(__a, __b, __c);
3392 }
3393
3394 static vector unsigned int __ATTRS_o_ai
3395 vec_msums(vector unsigned short __a,
3396           vector unsigned short __b,
3397           vector unsigned int __c)
3398 {
3399   return __builtin_altivec_vmsumuhs(__a, __b, __c);
3400 }
3401
3402 /* vec_vmsumshs */
3403
3404 static vector int __attribute__((__always_inline__))
3405 vec_vmsumshs(vector short __a, vector short __b, vector int __c)
3406 {
3407   return __builtin_altivec_vmsumshs(__a, __b, __c);
3408 }
3409
3410 /* vec_vmsumuhs */
3411
3412 static vector unsigned int __attribute__((__always_inline__))
3413 vec_vmsumuhs(vector unsigned short __a,
3414              vector unsigned short __b,
3415              vector unsigned int __c)
3416 {
3417   return __builtin_altivec_vmsumuhs(__a, __b, __c);
3418 }
3419
3420 /* vec_mtvscr */
3421
3422 static void __ATTRS_o_ai
3423 vec_mtvscr(vector signed char __a)
3424 {
3425   __builtin_altivec_mtvscr((vector int)__a);
3426 }
3427
3428 static void __ATTRS_o_ai
3429 vec_mtvscr(vector unsigned char __a)
3430 {
3431   __builtin_altivec_mtvscr((vector int)__a);
3432 }
3433
3434 static void __ATTRS_o_ai
3435 vec_mtvscr(vector bool char __a)
3436 {
3437   __builtin_altivec_mtvscr((vector int)__a);
3438 }
3439
3440 static void __ATTRS_o_ai
3441 vec_mtvscr(vector short __a)
3442 {
3443   __builtin_altivec_mtvscr((vector int)__a);
3444 }
3445
3446 static void __ATTRS_o_ai
3447 vec_mtvscr(vector unsigned short __a)
3448 {
3449   __builtin_altivec_mtvscr((vector int)__a);
3450 }
3451
3452 static void __ATTRS_o_ai
3453 vec_mtvscr(vector bool short __a)
3454 {
3455   __builtin_altivec_mtvscr((vector int)__a);
3456 }
3457
3458 static void __ATTRS_o_ai
3459 vec_mtvscr(vector pixel __a)
3460 {
3461   __builtin_altivec_mtvscr((vector int)__a);
3462 }
3463
3464 static void __ATTRS_o_ai
3465 vec_mtvscr(vector int __a)
3466 {
3467   __builtin_altivec_mtvscr((vector int)__a);
3468 }
3469
3470 static void __ATTRS_o_ai
3471 vec_mtvscr(vector unsigned int __a)
3472 {
3473   __builtin_altivec_mtvscr((vector int)__a);
3474 }
3475
3476 static void __ATTRS_o_ai
3477 vec_mtvscr(vector bool int __a)
3478 {
3479   __builtin_altivec_mtvscr((vector int)__a);
3480 }
3481
3482 static void __ATTRS_o_ai
3483 vec_mtvscr(vector float __a)
3484 {
3485   __builtin_altivec_mtvscr((vector int)__a);
3486 }
3487
3488 /* vec_mule */
3489
3490 static vector short __ATTRS_o_ai
3491 vec_mule(vector signed char __a, vector signed char __b)
3492 {
3493   return __builtin_altivec_vmulesb(__a, __b);
3494 }
3495
3496 static vector unsigned short __ATTRS_o_ai
3497 vec_mule(vector unsigned char __a, vector unsigned char __b)
3498 {
3499   return __builtin_altivec_vmuleub(__a, __b);
3500 }
3501
3502 static vector int __ATTRS_o_ai
3503 vec_mule(vector short __a, vector short __b)
3504 {
3505   return __builtin_altivec_vmulesh(__a, __b);
3506 }
3507
3508 static vector unsigned int __ATTRS_o_ai
3509 vec_mule(vector unsigned short __a, vector unsigned short __b)
3510 {
3511   return __builtin_altivec_vmuleuh(__a, __b);
3512 }
3513
3514 /* vec_vmulesb */
3515
3516 static vector short __attribute__((__always_inline__))
3517 vec_vmulesb(vector signed char __a, vector signed char __b)
3518 {
3519   return __builtin_altivec_vmulesb(__a, __b);
3520 }
3521
3522 /* vec_vmuleub */
3523
3524 static vector unsigned short __attribute__((__always_inline__))
3525 vec_vmuleub(vector unsigned char __a, vector unsigned char __b)
3526 {
3527   return __builtin_altivec_vmuleub(__a, __b);
3528 }
3529
3530 /* vec_vmulesh */
3531
3532 static vector int __attribute__((__always_inline__))
3533 vec_vmulesh(vector short __a, vector short __b)
3534 {
3535   return __builtin_altivec_vmulesh(__a, __b);
3536 }
3537
3538 /* vec_vmuleuh */
3539
3540 static vector unsigned int __attribute__((__always_inline__))
3541 vec_vmuleuh(vector unsigned short __a, vector unsigned short __b)
3542 {
3543   return __builtin_altivec_vmuleuh(__a, __b);
3544 }
3545
3546 /* vec_mulo */
3547
3548 static vector short __ATTRS_o_ai
3549 vec_mulo(vector signed char __a, vector signed char __b)
3550 {
3551   return __builtin_altivec_vmulosb(__a, __b);
3552 }
3553
3554 static vector unsigned short __ATTRS_o_ai
3555 vec_mulo(vector unsigned char __a, vector unsigned char __b)
3556 {
3557   return __builtin_altivec_vmuloub(__a, __b);
3558 }
3559
3560 static vector int __ATTRS_o_ai
3561 vec_mulo(vector short __a, vector short __b)
3562 {
3563   return __builtin_altivec_vmulosh(__a, __b);
3564 }
3565
3566 static vector unsigned int __ATTRS_o_ai
3567 vec_mulo(vector unsigned short __a, vector unsigned short __b)
3568 {
3569   return __builtin_altivec_vmulouh(__a, __b);
3570 }
3571
3572 /* vec_vmulosb */
3573
3574 static vector short __attribute__((__always_inline__))
3575 vec_vmulosb(vector signed char __a, vector signed char __b)
3576 {
3577   return __builtin_altivec_vmulosb(__a, __b);
3578 }
3579
3580 /* vec_vmuloub */
3581
3582 static vector unsigned short __attribute__((__always_inline__))
3583 vec_vmuloub(vector unsigned char __a, vector unsigned char __b)
3584 {
3585   return __builtin_altivec_vmuloub(__a, __b);
3586 }
3587
3588 /* vec_vmulosh */
3589
3590 static vector int __attribute__((__always_inline__))
3591 vec_vmulosh(vector short __a, vector short __b)
3592 {
3593   return __builtin_altivec_vmulosh(__a, __b);
3594 }
3595
3596 /* vec_vmulouh */
3597
3598 static vector unsigned int __attribute__((__always_inline__))
3599 vec_vmulouh(vector unsigned short __a, vector unsigned short __b)
3600 {
3601   return __builtin_altivec_vmulouh(__a, __b);
3602 }
3603
3604 /* vec_nmsub */
3605
3606 static vector float __attribute__((__always_inline__))
3607 vec_nmsub(vector float __a, vector float __b, vector float __c)
3608 {
3609   return __builtin_altivec_vnmsubfp(__a, __b, __c);
3610 }
3611
3612 /* vec_vnmsubfp */
3613
3614 static vector float __attribute__((__always_inline__))
3615 vec_vnmsubfp(vector float __a, vector float __b, vector float __c)
3616 {
3617   return __builtin_altivec_vnmsubfp(__a, __b, __c);
3618 }
3619
3620 /* vec_nor */
3621
3622 #define __builtin_altivec_vnor vec_nor
3623
3624 static vector signed char __ATTRS_o_ai
3625 vec_nor(vector signed char __a, vector signed char __b)
3626 {
3627   return ~(__a | __b);
3628 }
3629
3630 static vector unsigned char __ATTRS_o_ai
3631 vec_nor(vector unsigned char __a, vector unsigned char __b)
3632 {
3633   return ~(__a | __b);
3634 }
3635
3636 static vector bool char __ATTRS_o_ai
3637 vec_nor(vector bool char __a, vector bool char __b)
3638 {
3639   return ~(__a | __b);
3640 }
3641
3642 static vector short __ATTRS_o_ai
3643 vec_nor(vector short __a, vector short __b)
3644 {
3645   return ~(__a | __b);
3646 }
3647
3648 static vector unsigned short __ATTRS_o_ai
3649 vec_nor(vector unsigned short __a, vector unsigned short __b)
3650 {
3651   return ~(__a | __b);
3652 }
3653
3654 static vector bool short __ATTRS_o_ai
3655 vec_nor(vector bool short __a, vector bool short __b)
3656 {
3657   return ~(__a | __b);
3658 }
3659
3660 static vector int __ATTRS_o_ai
3661 vec_nor(vector int __a, vector int __b)
3662 {
3663   return ~(__a | __b);
3664 }
3665
3666 static vector unsigned int __ATTRS_o_ai
3667 vec_nor(vector unsigned int __a, vector unsigned int __b)
3668 {
3669   return ~(__a | __b);
3670 }
3671
3672 static vector bool int __ATTRS_o_ai
3673 vec_nor(vector bool int __a, vector bool int __b)
3674 {
3675   return ~(__a | __b);
3676 }
3677
3678 static vector float __ATTRS_o_ai
3679 vec_nor(vector float __a, vector float __b)
3680 {
3681   vector unsigned int __res = ~((vector unsigned int)__a | (vector unsigned int)__b);
3682   return (vector float)__res;
3683 }
3684
3685 /* vec_vnor */
3686
3687 static vector signed char __ATTRS_o_ai
3688 vec_vnor(vector signed char __a, vector signed char __b)
3689 {
3690   return ~(__a | __b);
3691 }
3692
3693 static vector unsigned char __ATTRS_o_ai
3694 vec_vnor(vector unsigned char __a, vector unsigned char __b)
3695 {
3696   return ~(__a | __b);
3697 }
3698
3699 static vector bool char __ATTRS_o_ai
3700 vec_vnor(vector bool char __a, vector bool char __b)
3701 {
3702   return ~(__a | __b);
3703 }
3704
3705 static vector short __ATTRS_o_ai
3706 vec_vnor(vector short __a, vector short __b)
3707 {
3708   return ~(__a | __b);
3709 }
3710
3711 static vector unsigned short __ATTRS_o_ai
3712 vec_vnor(vector unsigned short __a, vector unsigned short __b)
3713 {
3714   return ~(__a | __b);
3715 }
3716
3717 static vector bool short __ATTRS_o_ai
3718 vec_vnor(vector bool short __a, vector bool short __b)
3719 {
3720   return ~(__a | __b);
3721 }
3722
3723 static vector int __ATTRS_o_ai
3724 vec_vnor(vector int __a, vector int __b)
3725 {
3726   return ~(__a | __b);
3727 }
3728
3729 static vector unsigned int __ATTRS_o_ai
3730 vec_vnor(vector unsigned int __a, vector unsigned int __b)
3731 {
3732   return ~(__a | __b);
3733 }
3734
3735 static vector bool int __ATTRS_o_ai
3736 vec_vnor(vector bool int __a, vector bool int __b)
3737 {
3738   return ~(__a | __b);
3739 }
3740
3741 static vector float __ATTRS_o_ai
3742 vec_vnor(vector float __a, vector float __b)
3743 {
3744   vector unsigned int __res = ~((vector unsigned int)__a | (vector unsigned int)__b);
3745   return (vector float)__res;
3746 }
3747
3748 /* vec_or */
3749
3750 #define __builtin_altivec_vor vec_or
3751
3752 static vector signed char __ATTRS_o_ai
3753 vec_or(vector signed char __a, vector signed char __b)
3754 {
3755   return __a | __b;
3756 }
3757
3758 static vector signed char __ATTRS_o_ai
3759 vec_or(vector bool char __a, vector signed char __b)
3760 {
3761   return (vector signed char)__a | __b;
3762 }
3763
3764 static vector signed char __ATTRS_o_ai
3765 vec_or(vector signed char __a, vector bool char __b)
3766 {
3767   return __a | (vector signed char)__b;
3768 }
3769
3770 static vector unsigned char __ATTRS_o_ai
3771 vec_or(vector unsigned char __a, vector unsigned char __b)
3772 {
3773   return __a | __b;
3774 }
3775
3776 static vector unsigned char __ATTRS_o_ai
3777 vec_or(vector bool char __a, vector unsigned char __b)
3778 {
3779   return (vector unsigned char)__a | __b;
3780 }
3781
3782 static vector unsigned char __ATTRS_o_ai
3783 vec_or(vector unsigned char __a, vector bool char __b)
3784 {
3785   return __a | (vector unsigned char)__b;
3786 }
3787
3788 static vector bool char __ATTRS_o_ai
3789 vec_or(vector bool char __a, vector bool char __b)
3790 {
3791   return __a | __b;
3792 }
3793
3794 static vector short __ATTRS_o_ai
3795 vec_or(vector short __a, vector short __b)
3796 {
3797   return __a | __b;
3798 }
3799
3800 static vector short __ATTRS_o_ai
3801 vec_or(vector bool short __a, vector short __b)
3802 {
3803   return (vector short)__a | __b;
3804 }
3805
3806 static vector short __ATTRS_o_ai
3807 vec_or(vector short __a, vector bool short __b)
3808 {
3809   return __a | (vector short)__b;
3810 }
3811
3812 static vector unsigned short __ATTRS_o_ai
3813 vec_or(vector unsigned short __a, vector unsigned short __b)
3814 {
3815   return __a | __b;
3816 }
3817
3818 static vector unsigned short __ATTRS_o_ai
3819 vec_or(vector bool short __a, vector unsigned short __b)
3820 {
3821   return (vector unsigned short)__a | __b;
3822 }
3823
3824 static vector unsigned short __ATTRS_o_ai
3825 vec_or(vector unsigned short __a, vector bool short __b)
3826 {
3827   return __a | (vector unsigned short)__b;
3828 }
3829
3830 static vector bool short __ATTRS_o_ai
3831 vec_or(vector bool short __a, vector bool short __b)
3832 {
3833   return __a | __b;
3834 }
3835
3836 static vector int __ATTRS_o_ai
3837 vec_or(vector int __a, vector int __b)
3838 {
3839   return __a | __b;
3840 }
3841
3842 static vector int __ATTRS_o_ai
3843 vec_or(vector bool int __a, vector int __b)
3844 {
3845   return (vector int)__a | __b;
3846 }
3847
3848 static vector int __ATTRS_o_ai
3849 vec_or(vector int __a, vector bool int __b)
3850 {
3851   return __a | (vector int)__b;
3852 }
3853
3854 static vector unsigned int __ATTRS_o_ai
3855 vec_or(vector unsigned int __a, vector unsigned int __b)
3856 {
3857   return __a | __b;
3858 }
3859
3860 static vector unsigned int __ATTRS_o_ai
3861 vec_or(vector bool int __a, vector unsigned int __b)
3862 {
3863   return (vector unsigned int)__a | __b;
3864 }
3865
3866 static vector unsigned int __ATTRS_o_ai
3867 vec_or(vector unsigned int __a, vector bool int __b)
3868 {
3869   return __a | (vector unsigned int)__b;
3870 }
3871
3872 static vector bool int __ATTRS_o_ai
3873 vec_or(vector bool int __a, vector bool int __b)
3874 {
3875   return __a | __b;
3876 }
3877
3878 static vector float __ATTRS_o_ai
3879 vec_or(vector float __a, vector float __b)
3880 {
3881   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
3882   return (vector float)__res;
3883 }
3884
3885 static vector float __ATTRS_o_ai
3886 vec_or(vector bool int __a, vector float __b)
3887 {
3888   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
3889   return (vector float)__res;
3890 }
3891
3892 static vector float __ATTRS_o_ai
3893 vec_or(vector float __a, vector bool int __b)
3894 {
3895   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
3896   return (vector float)__res;
3897 }
3898
3899 /* vec_vor */
3900
3901 static vector signed char __ATTRS_o_ai
3902 vec_vor(vector signed char __a, vector signed char __b)
3903 {
3904   return __a | __b;
3905 }
3906
3907 static vector signed char __ATTRS_o_ai
3908 vec_vor(vector bool char __a, vector signed char __b)
3909 {
3910   return (vector signed char)__a | __b;
3911 }
3912
3913 static vector signed char __ATTRS_o_ai
3914 vec_vor(vector signed char __a, vector bool char __b)
3915 {
3916   return __a | (vector signed char)__b;
3917 }
3918
3919 static vector unsigned char __ATTRS_o_ai
3920 vec_vor(vector unsigned char __a, vector unsigned char __b)
3921 {
3922   return __a | __b;
3923 }
3924
3925 static vector unsigned char __ATTRS_o_ai
3926 vec_vor(vector bool char __a, vector unsigned char __b)
3927 {
3928   return (vector unsigned char)__a | __b;
3929 }
3930
3931 static vector unsigned char __ATTRS_o_ai
3932 vec_vor(vector unsigned char __a, vector bool char __b)
3933 {
3934   return __a | (vector unsigned char)__b;
3935 }
3936
3937 static vector bool char __ATTRS_o_ai
3938 vec_vor(vector bool char __a, vector bool char __b)
3939 {
3940   return __a | __b;
3941 }
3942
3943 static vector short __ATTRS_o_ai
3944 vec_vor(vector short __a, vector short __b)
3945 {
3946   return __a | __b;
3947 }
3948
3949 static vector short __ATTRS_o_ai
3950 vec_vor(vector bool short __a, vector short __b)
3951 {
3952   return (vector short)__a | __b;
3953 }
3954
3955 static vector short __ATTRS_o_ai
3956 vec_vor(vector short __a, vector bool short __b)
3957 {
3958   return __a | (vector short)__b;
3959 }
3960
3961 static vector unsigned short __ATTRS_o_ai
3962 vec_vor(vector unsigned short __a, vector unsigned short __b)
3963 {
3964   return __a | __b;
3965 }
3966
3967 static vector unsigned short __ATTRS_o_ai
3968 vec_vor(vector bool short __a, vector unsigned short __b)
3969 {
3970   return (vector unsigned short)__a | __b;
3971 }
3972
3973 static vector unsigned short __ATTRS_o_ai
3974 vec_vor(vector unsigned short __a, vector bool short __b)
3975 {
3976   return __a | (vector unsigned short)__b;
3977 }
3978
3979 static vector bool short __ATTRS_o_ai
3980 vec_vor(vector bool short __a, vector bool short __b)
3981 {
3982   return __a | __b;
3983 }
3984
3985 static vector int __ATTRS_o_ai
3986 vec_vor(vector int __a, vector int __b)
3987 {
3988   return __a | __b;
3989 }
3990
3991 static vector int __ATTRS_o_ai
3992 vec_vor(vector bool int __a, vector int __b)
3993 {
3994   return (vector int)__a | __b;
3995 }
3996
3997 static vector int __ATTRS_o_ai
3998 vec_vor(vector int __a, vector bool int __b)
3999 {
4000   return __a | (vector int)__b;
4001 }
4002
4003 static vector unsigned int __ATTRS_o_ai
4004 vec_vor(vector unsigned int __a, vector unsigned int __b)
4005 {
4006   return __a | __b;
4007 }
4008
4009 static vector unsigned int __ATTRS_o_ai
4010 vec_vor(vector bool int __a, vector unsigned int __b)
4011 {
4012   return (vector unsigned int)__a | __b;
4013 }
4014
4015 static vector unsigned int __ATTRS_o_ai
4016 vec_vor(vector unsigned int __a, vector bool int __b)
4017 {
4018   return __a | (vector unsigned int)__b;
4019 }
4020
4021 static vector bool int __ATTRS_o_ai
4022 vec_vor(vector bool int __a, vector bool int __b)
4023 {
4024   return __a | __b;
4025 }
4026
4027 static vector float __ATTRS_o_ai
4028 vec_vor(vector float __a, vector float __b)
4029 {
4030   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
4031   return (vector float)__res;
4032 }
4033
4034 static vector float __ATTRS_o_ai
4035 vec_vor(vector bool int __a, vector float __b)
4036 {
4037   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
4038   return (vector float)__res;
4039 }
4040
4041 static vector float __ATTRS_o_ai
4042 vec_vor(vector float __a, vector bool int __b)
4043 {
4044   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
4045   return (vector float)__res;
4046 }
4047
4048 /* vec_pack */
4049
4050 static vector signed char __ATTRS_o_ai
4051 vec_pack(vector signed short __a, vector signed short __b)
4052 {
4053   return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
4054     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4055      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4056 }
4057
4058 static vector unsigned char __ATTRS_o_ai
4059 vec_pack(vector unsigned short __a, vector unsigned short __b)
4060 {
4061   return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
4062     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4063      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4064 }
4065
4066 static vector bool char __ATTRS_o_ai
4067 vec_pack(vector bool short __a, vector bool short __b)
4068 {
4069   return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
4070     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4071      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4072 }
4073
4074 static vector short __ATTRS_o_ai
4075 vec_pack(vector int __a, vector int __b)
4076 {
4077   return (vector short)vec_perm(__a, __b, (vector unsigned char)
4078     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4079      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4080 }
4081
4082 static vector unsigned short __ATTRS_o_ai
4083 vec_pack(vector unsigned int __a, vector unsigned int __b)
4084 {
4085   return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
4086     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4087      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4088 }
4089
4090 static vector bool short __ATTRS_o_ai
4091 vec_pack(vector bool int __a, vector bool int __b)
4092 {
4093   return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
4094     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4095      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4096 }
4097
4098 /* vec_vpkuhum */
4099
4100 #define __builtin_altivec_vpkuhum vec_vpkuhum
4101
4102 static vector signed char __ATTRS_o_ai
4103 vec_vpkuhum(vector signed short __a, vector signed short __b)
4104 {
4105   return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
4106     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4107      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4108 }
4109
4110 static vector unsigned char __ATTRS_o_ai
4111 vec_vpkuhum(vector unsigned short __a, vector unsigned short __b)
4112 {
4113   return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
4114     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4115      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4116 }
4117
4118 static vector bool char __ATTRS_o_ai
4119 vec_vpkuhum(vector bool short __a, vector bool short __b)
4120 {
4121   return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
4122     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4123      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4124 }
4125
4126 /* vec_vpkuwum */
4127
4128 #define __builtin_altivec_vpkuwum vec_vpkuwum
4129
4130 static vector short __ATTRS_o_ai
4131 vec_vpkuwum(vector int __a, vector int __b)
4132 {
4133   return (vector short)vec_perm(__a, __b, (vector unsigned char)
4134     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4135      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4136 }
4137
4138 static vector unsigned short __ATTRS_o_ai
4139 vec_vpkuwum(vector unsigned int __a, vector unsigned int __b)
4140 {
4141   return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
4142     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4143      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4144 }
4145
4146 static vector bool short __ATTRS_o_ai
4147 vec_vpkuwum(vector bool int __a, vector bool int __b)
4148 {
4149   return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
4150     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4151      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4152 }
4153
4154 /* vec_packpx */
4155
4156 static vector pixel __attribute__((__always_inline__))
4157 vec_packpx(vector unsigned int __a, vector unsigned int __b)
4158 {
4159   return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
4160 }
4161
4162 /* vec_vpkpx */
4163
4164 static vector pixel __attribute__((__always_inline__))
4165 vec_vpkpx(vector unsigned int __a, vector unsigned int __b)
4166 {
4167   return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
4168 }
4169
4170 /* vec_packs */
4171
4172 static vector signed char __ATTRS_o_ai
4173 vec_packs(vector short __a, vector short __b)
4174 {
4175   return __builtin_altivec_vpkshss(__a, __b);
4176 }
4177
4178 static vector unsigned char __ATTRS_o_ai
4179 vec_packs(vector unsigned short __a, vector unsigned short __b)
4180 {
4181   return __builtin_altivec_vpkuhus(__a, __b);
4182 }
4183
4184 static vector signed short __ATTRS_o_ai
4185 vec_packs(vector int __a, vector int __b)
4186 {
4187   return __builtin_altivec_vpkswss(__a, __b);
4188 }
4189
4190 static vector unsigned short __ATTRS_o_ai
4191 vec_packs(vector unsigned int __a, vector unsigned int __b)
4192 {
4193   return __builtin_altivec_vpkuwus(__a, __b);
4194 }
4195
4196 /* vec_vpkshss */
4197
4198 static vector signed char __attribute__((__always_inline__))
4199 vec_vpkshss(vector short __a, vector short __b)
4200 {
4201   return __builtin_altivec_vpkshss(__a, __b);
4202 }
4203
4204 /* vec_vpkuhus */
4205
4206 static vector unsigned char __attribute__((__always_inline__))
4207 vec_vpkuhus(vector unsigned short __a, vector unsigned short __b)
4208 {
4209   return __builtin_altivec_vpkuhus(__a, __b);
4210 }
4211
4212 /* vec_vpkswss */
4213
4214 static vector signed short __attribute__((__always_inline__))
4215 vec_vpkswss(vector int __a, vector int __b)
4216 {
4217   return __builtin_altivec_vpkswss(__a, __b);
4218 }
4219
4220 /* vec_vpkuwus */
4221
4222 static vector unsigned short __attribute__((__always_inline__))
4223 vec_vpkuwus(vector unsigned int __a, vector unsigned int __b)
4224 {
4225   return __builtin_altivec_vpkuwus(__a, __b);
4226 }
4227
4228 /* vec_packsu */
4229
4230 static vector unsigned char __ATTRS_o_ai
4231 vec_packsu(vector short __a, vector short __b)
4232 {
4233   return __builtin_altivec_vpkshus(__a, __b);
4234 }
4235
4236 static vector unsigned char __ATTRS_o_ai
4237 vec_packsu(vector unsigned short __a, vector unsigned short __b)
4238 {
4239   return __builtin_altivec_vpkuhus(__a, __b);
4240 }
4241
4242 static vector unsigned short __ATTRS_o_ai
4243 vec_packsu(vector int __a, vector int __b)
4244 {
4245   return __builtin_altivec_vpkswus(__a, __b);
4246 }
4247
4248 static vector unsigned short __ATTRS_o_ai
4249 vec_packsu(vector unsigned int __a, vector unsigned int __b)
4250 {
4251   return __builtin_altivec_vpkuwus(__a, __b);
4252 }
4253
4254 /* vec_vpkshus */
4255
4256 static vector unsigned char __ATTRS_o_ai
4257 vec_vpkshus(vector short __a, vector short __b)
4258 {
4259   return __builtin_altivec_vpkshus(__a, __b);
4260 }
4261
4262 static vector unsigned char __ATTRS_o_ai
4263 vec_vpkshus(vector unsigned short __a, vector unsigned short __b)
4264 {
4265   return __builtin_altivec_vpkuhus(__a, __b);
4266 }
4267
4268 /* vec_vpkswus */
4269
4270 static vector unsigned short __ATTRS_o_ai
4271 vec_vpkswus(vector int __a, vector int __b)
4272 {
4273   return __builtin_altivec_vpkswus(__a, __b);
4274 }
4275
4276 static vector unsigned short __ATTRS_o_ai
4277 vec_vpkswus(vector unsigned int __a, vector unsigned int __b)
4278 {
4279   return __builtin_altivec_vpkuwus(__a, __b);
4280 }
4281
4282 /* vec_perm */
4283
4284 vector signed char __ATTRS_o_ai
4285 vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
4286 {
4287   return (vector signed char)
4288            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4289 }
4290
4291 vector unsigned char __ATTRS_o_ai
4292 vec_perm(vector unsigned char __a,
4293          vector unsigned char __b,
4294          vector unsigned char __c)
4295 {
4296   return (vector unsigned char)
4297            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4298 }
4299
4300 vector bool char __ATTRS_o_ai
4301 vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c)
4302 {
4303   return (vector bool char)
4304            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4305 }
4306
4307 vector short __ATTRS_o_ai
4308 vec_perm(vector short __a, vector short __b, vector unsigned char __c)
4309 {
4310   return (vector short)
4311            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4312 }
4313
4314 vector unsigned short __ATTRS_o_ai
4315 vec_perm(vector unsigned short __a,
4316          vector unsigned short __b,
4317          vector unsigned char __c)
4318 {
4319   return (vector unsigned short)
4320            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4321 }
4322
4323 vector bool short __ATTRS_o_ai
4324 vec_perm(vector bool short __a, vector bool short __b, vector unsigned char __c)
4325 {
4326   return (vector bool short)
4327            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4328 }
4329
4330 vector pixel __ATTRS_o_ai
4331 vec_perm(vector pixel __a, vector pixel __b, vector unsigned char __c)
4332 {
4333   return (vector pixel)
4334            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4335 }
4336
4337 vector int __ATTRS_o_ai
4338 vec_perm(vector int __a, vector int __b, vector unsigned char __c)
4339 {
4340   return (vector int)__builtin_altivec_vperm_4si(__a, __b, __c);
4341 }
4342
4343 vector unsigned int __ATTRS_o_ai
4344 vec_perm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c)
4345 {
4346   return (vector unsigned int)
4347            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4348 }
4349
4350 vector bool int __ATTRS_o_ai
4351 vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c)
4352 {
4353   return (vector bool int)
4354            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4355 }
4356
4357 vector float __ATTRS_o_ai
4358 vec_perm(vector float __a, vector float __b, vector unsigned char __c)
4359 {
4360   return (vector float)
4361            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4362 }
4363
4364 /* vec_vperm */
4365
4366 static vector signed char __ATTRS_o_ai
4367 vec_vperm(vector signed char __a, vector signed char __b, vector unsigned char __c)
4368 {
4369   return (vector signed char)
4370            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4371 }
4372
4373 static vector unsigned char __ATTRS_o_ai
4374 vec_vperm(vector unsigned char __a,
4375           vector unsigned char __b,
4376           vector unsigned char __c)
4377 {
4378   return (vector unsigned char)
4379            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4380 }
4381
4382 static vector bool char __ATTRS_o_ai
4383 vec_vperm(vector bool char __a, vector bool char __b, vector unsigned char __c)
4384 {
4385   return (vector bool char)
4386            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4387 }
4388
4389 static vector short __ATTRS_o_ai
4390 vec_vperm(vector short __a, vector short __b, vector unsigned char __c)
4391 {
4392   return (vector short)
4393            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4394 }
4395
4396 static vector unsigned short __ATTRS_o_ai
4397 vec_vperm(vector unsigned short __a,
4398           vector unsigned short __b,
4399           vector unsigned char __c)
4400 {
4401   return (vector unsigned short)
4402            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4403 }
4404
4405 static vector bool short __ATTRS_o_ai
4406 vec_vperm(vector bool short __a, vector bool short __b, vector unsigned char __c)
4407 {
4408   return (vector bool short)
4409            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4410 }
4411
4412 static vector pixel __ATTRS_o_ai
4413 vec_vperm(vector pixel __a, vector pixel __b, vector unsigned char __c)
4414 {
4415   return (vector pixel)
4416            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4417 }
4418
4419 static vector int __ATTRS_o_ai
4420 vec_vperm(vector int __a, vector int __b, vector unsigned char __c)
4421 {
4422   return (vector int)__builtin_altivec_vperm_4si(__a, __b, __c);
4423 }
4424
4425 static vector unsigned int __ATTRS_o_ai
4426 vec_vperm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c)
4427 {
4428   return (vector unsigned int)
4429            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4430 }
4431
4432 static vector bool int __ATTRS_o_ai
4433 vec_vperm(vector bool int __a, vector bool int __b, vector unsigned char __c)
4434 {
4435   return (vector bool int)
4436            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4437 }
4438
4439 static vector float __ATTRS_o_ai
4440 vec_vperm(vector float __a, vector float __b, vector unsigned char __c)
4441 {
4442   return (vector float)
4443            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
4444 }
4445
4446 /* vec_re */
4447
4448 static vector float __attribute__((__always_inline__))
4449 vec_re(vector float __a)
4450 {
4451   return __builtin_altivec_vrefp(__a);
4452 }
4453
4454 /* vec_vrefp */
4455
4456 static vector float __attribute__((__always_inline__))
4457 vec_vrefp(vector float __a)
4458 {
4459   return __builtin_altivec_vrefp(__a);
4460 }
4461
4462 /* vec_rl */
4463
4464 static vector signed char __ATTRS_o_ai
4465 vec_rl(vector signed char __a, vector unsigned char __b)
4466 {
4467   return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
4468 }
4469
4470 static vector unsigned char __ATTRS_o_ai
4471 vec_rl(vector unsigned char __a, vector unsigned char __b)
4472 {
4473   return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
4474 }
4475
4476 static vector short __ATTRS_o_ai
4477 vec_rl(vector short __a, vector unsigned short __b)
4478 {
4479   return __builtin_altivec_vrlh(__a, __b);
4480 }
4481
4482 static vector unsigned short __ATTRS_o_ai
4483 vec_rl(vector unsigned short __a, vector unsigned short __b)
4484 {
4485   return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
4486 }
4487
4488 static vector int __ATTRS_o_ai
4489 vec_rl(vector int __a, vector unsigned int __b)
4490 {
4491   return __builtin_altivec_vrlw(__a, __b);
4492 }
4493
4494 static vector unsigned int __ATTRS_o_ai
4495 vec_rl(vector unsigned int __a, vector unsigned int __b)
4496 {
4497   return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
4498 }
4499
4500 /* vec_vrlb */
4501
4502 static vector signed char __ATTRS_o_ai
4503 vec_vrlb(vector signed char __a, vector unsigned char __b)
4504 {
4505   return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
4506 }
4507
4508 static vector unsigned char __ATTRS_o_ai
4509 vec_vrlb(vector unsigned char __a, vector unsigned char __b)
4510 {
4511   return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
4512 }
4513
4514 /* vec_vrlh */
4515
4516 static vector short __ATTRS_o_ai
4517 vec_vrlh(vector short __a, vector unsigned short __b)
4518 {
4519   return __builtin_altivec_vrlh(__a, __b);
4520 }
4521
4522 static vector unsigned short __ATTRS_o_ai
4523 vec_vrlh(vector unsigned short __a, vector unsigned short __b)
4524 {
4525   return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
4526 }
4527
4528 /* vec_vrlw */
4529
4530 static vector int __ATTRS_o_ai
4531 vec_vrlw(vector int __a, vector unsigned int __b)
4532 {
4533   return __builtin_altivec_vrlw(__a, __b);
4534 }
4535
4536 static vector unsigned int __ATTRS_o_ai
4537 vec_vrlw(vector unsigned int __a, vector unsigned int __b)
4538 {
4539   return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
4540 }
4541
4542 /* vec_round */
4543
4544 static vector float __attribute__((__always_inline__))
4545 vec_round(vector float __a)
4546 {
4547   return __builtin_altivec_vrfin(__a);
4548 }
4549
4550 /* vec_vrfin */
4551
4552 static vector float __attribute__((__always_inline__))
4553 vec_vrfin(vector float __a)
4554 {
4555   return __builtin_altivec_vrfin(__a);
4556 }
4557
4558 /* vec_rsqrte */
4559
4560 static __vector float __attribute__((__always_inline__))
4561 vec_rsqrte(vector float __a)
4562 {
4563   return __builtin_altivec_vrsqrtefp(__a);
4564 }
4565
4566 /* vec_vrsqrtefp */
4567
4568 static __vector float __attribute__((__always_inline__))
4569 vec_vrsqrtefp(vector float __a)
4570 {
4571   return __builtin_altivec_vrsqrtefp(__a);
4572 }
4573
4574 /* vec_sel */
4575
4576 #define __builtin_altivec_vsel_4si vec_sel
4577
4578 static vector signed char __ATTRS_o_ai
4579 vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
4580 {
4581   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
4582 }
4583
4584 static vector signed char __ATTRS_o_ai
4585 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c)
4586 {
4587   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
4588 }
4589
4590 static vector unsigned char __ATTRS_o_ai
4591 vec_sel(vector unsigned char __a, vector unsigned char __b, vector unsigned char __c)
4592 {
4593   return (__a & ~__c) | (__b & __c);
4594 }
4595
4596 static vector unsigned char __ATTRS_o_ai
4597 vec_sel(vector unsigned char __a, vector unsigned char __b, vector bool char __c)
4598 {
4599   return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
4600 }
4601
4602 static vector bool char __ATTRS_o_ai
4603 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c)
4604 {
4605   return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
4606 }
4607
4608 static vector bool char __ATTRS_o_ai
4609 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c)
4610 {
4611   return (__a & ~__c) | (__b & __c);
4612 }
4613
4614 static vector short __ATTRS_o_ai
4615 vec_sel(vector short __a, vector short __b, vector unsigned short __c)
4616 {
4617   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
4618 }
4619
4620 static vector short __ATTRS_o_ai
4621 vec_sel(vector short __a, vector short __b, vector bool short __c)
4622 {
4623   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
4624 }
4625
4626 static vector unsigned short __ATTRS_o_ai
4627 vec_sel(vector unsigned short __a,
4628         vector unsigned short __b,
4629         vector unsigned short __c)
4630 {
4631   return (__a & ~__c) | (__b & __c);
4632 }
4633
4634 static vector unsigned short __ATTRS_o_ai
4635 vec_sel(vector unsigned short __a, vector unsigned short __b, vector bool short __c)
4636 {
4637   return (__a & ~(vector unsigned short)__c) | (__b & (vector unsigned short)__c);
4638 }
4639
4640 static vector bool short __ATTRS_o_ai
4641 vec_sel(vector bool short __a, vector bool short __b, vector unsigned short __c)
4642 {
4643   return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
4644 }
4645
4646 static vector bool short __ATTRS_o_ai
4647 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c)
4648 {
4649   return (__a & ~__c) | (__b & __c);
4650 }
4651
4652 static vector int __ATTRS_o_ai
4653 vec_sel(vector int __a, vector int __b, vector unsigned int __c)
4654 {
4655   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
4656 }
4657
4658 static vector int __ATTRS_o_ai
4659 vec_sel(vector int __a, vector int __b, vector bool int __c)
4660 {
4661   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
4662 }
4663
4664 static vector unsigned int __ATTRS_o_ai
4665 vec_sel(vector unsigned int __a, vector unsigned int __b, vector unsigned int __c)
4666 {
4667   return (__a & ~__c) | (__b & __c);
4668 }
4669
4670 static vector unsigned int __ATTRS_o_ai
4671 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c)
4672 {
4673   return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
4674 }
4675
4676 static vector bool int __ATTRS_o_ai
4677 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c)
4678 {
4679   return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
4680 }
4681
4682 static vector bool int __ATTRS_o_ai
4683 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c)
4684 {
4685   return (__a & ~__c) | (__b & __c);
4686 }
4687
4688 static vector float __ATTRS_o_ai
4689 vec_sel(vector float __a, vector float __b, vector unsigned int __c)
4690 {
4691   vector int __res = ((vector int)__a & ~(vector int)__c)
4692                    | ((vector int)__b & (vector int)__c);
4693   return (vector float)__res;
4694 }
4695
4696 static vector float __ATTRS_o_ai
4697 vec_sel(vector float __a, vector float __b, vector bool int __c)
4698 {
4699   vector int __res = ((vector int)__a & ~(vector int)__c)
4700                    | ((vector int)__b & (vector int)__c);
4701   return (vector float)__res;
4702 }
4703
4704 /* vec_vsel */
4705
4706 static vector signed char __ATTRS_o_ai
4707 vec_vsel(vector signed char __a, vector signed char __b, vector unsigned char __c)
4708 {
4709   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
4710 }
4711
4712 static vector signed char __ATTRS_o_ai
4713 vec_vsel(vector signed char __a, vector signed char __b, vector bool char __c)
4714 {
4715   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
4716 }
4717
4718 static vector unsigned char __ATTRS_o_ai
4719 vec_vsel(vector unsigned char __a, vector unsigned char __b, vector unsigned char __c)
4720 {
4721   return (__a & ~__c) | (__b & __c);
4722 }
4723
4724 static vector unsigned char __ATTRS_o_ai
4725 vec_vsel(vector unsigned char __a, vector unsigned char __b, vector bool char __c)
4726 {
4727   return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
4728 }
4729
4730 static vector bool char __ATTRS_o_ai
4731 vec_vsel(vector bool char __a, vector bool char __b, vector unsigned char __c)
4732 {
4733   return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
4734 }
4735
4736 static vector bool char __ATTRS_o_ai
4737 vec_vsel(vector bool char __a, vector bool char __b, vector bool char __c)
4738 {
4739   return (__a & ~__c) | (__b & __c);
4740 }
4741
4742 static vector short __ATTRS_o_ai
4743 vec_vsel(vector short __a, vector short __b, vector unsigned short __c)
4744 {
4745   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
4746 }
4747
4748 static vector short __ATTRS_o_ai
4749 vec_vsel(vector short __a, vector short __b, vector bool short __c)
4750 {
4751   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
4752 }
4753
4754 static vector unsigned short __ATTRS_o_ai
4755 vec_vsel(vector unsigned short __a,
4756          vector unsigned short __b,
4757          vector unsigned short __c)
4758 {
4759   return (__a & ~__c) | (__b & __c);
4760 }
4761
4762 static vector unsigned short __ATTRS_o_ai
4763 vec_vsel(vector unsigned short __a, vector unsigned short __b, vector bool short __c)
4764 {
4765   return (__a & ~(vector unsigned short)__c) | (__b & (vector unsigned short)__c);
4766 }
4767
4768 static vector bool short __ATTRS_o_ai
4769 vec_vsel(vector bool short __a, vector bool short __b, vector unsigned short __c)
4770 {
4771   return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
4772 }
4773
4774 static vector bool short __ATTRS_o_ai
4775 vec_vsel(vector bool short __a, vector bool short __b, vector bool short __c)
4776 {
4777   return (__a & ~__c) | (__b & __c);
4778 }
4779
4780 static vector int __ATTRS_o_ai
4781 vec_vsel(vector int __a, vector int __b, vector unsigned int __c)
4782 {
4783   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
4784 }
4785
4786 static vector int __ATTRS_o_ai
4787 vec_vsel(vector int __a, vector int __b, vector bool int __c)
4788 {
4789   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
4790 }
4791
4792 static vector unsigned int __ATTRS_o_ai
4793 vec_vsel(vector unsigned int __a, vector unsigned int __b, vector unsigned int __c)
4794 {
4795   return (__a & ~__c) | (__b & __c);
4796 }
4797
4798 static vector unsigned int __ATTRS_o_ai
4799 vec_vsel(vector unsigned int __a, vector unsigned int __b, vector bool int __c)
4800 {
4801   return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
4802 }
4803
4804 static vector bool int __ATTRS_o_ai
4805 vec_vsel(vector bool int __a, vector bool int __b, vector unsigned int __c)
4806 {
4807   return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
4808 }
4809
4810 static vector bool int __ATTRS_o_ai
4811 vec_vsel(vector bool int __a, vector bool int __b, vector bool int __c)
4812 {
4813   return (__a & ~__c) | (__b & __c);
4814 }
4815
4816 static vector float __ATTRS_o_ai
4817 vec_vsel(vector float __a, vector float __b, vector unsigned int __c)
4818 {
4819   vector int __res = ((vector int)__a & ~(vector int)__c)
4820                    | ((vector int)__b & (vector int)__c);
4821   return (vector float)__res;
4822 }
4823
4824 static vector float __ATTRS_o_ai
4825 vec_vsel(vector float __a, vector float __b, vector bool int __c)
4826 {
4827   vector int __res = ((vector int)__a & ~(vector int)__c)
4828                    | ((vector int)__b & (vector int)__c);
4829   return (vector float)__res;
4830 }
4831
4832 /* vec_sl */
4833
4834 static vector signed char __ATTRS_o_ai
4835 vec_sl(vector signed char __a, vector unsigned char __b)
4836 {
4837   return __a << (vector signed char)__b;
4838 }
4839
4840 static vector unsigned char __ATTRS_o_ai
4841 vec_sl(vector unsigned char __a, vector unsigned char __b)
4842 {
4843   return __a << __b;
4844 }
4845
4846 static vector short __ATTRS_o_ai
4847 vec_sl(vector short __a, vector unsigned short __b)
4848 {
4849   return __a << (vector short)__b;
4850 }
4851
4852 static vector unsigned short __ATTRS_o_ai
4853 vec_sl(vector unsigned short __a, vector unsigned short __b)
4854 {
4855   return __a << __b;
4856 }
4857
4858 static vector int __ATTRS_o_ai
4859 vec_sl(vector int __a, vector unsigned int __b)
4860 {
4861   return __a << (vector int)__b;
4862 }
4863
4864 static vector unsigned int __ATTRS_o_ai
4865 vec_sl(vector unsigned int __a, vector unsigned int __b)
4866 {
4867   return __a << __b;
4868 }
4869
4870 /* vec_vslb */
4871
4872 #define __builtin_altivec_vslb vec_vslb
4873
4874 static vector signed char __ATTRS_o_ai
4875 vec_vslb(vector signed char __a, vector unsigned char __b)
4876 {
4877   return vec_sl(__a, __b);
4878 }
4879
4880 static vector unsigned char __ATTRS_o_ai
4881 vec_vslb(vector unsigned char __a, vector unsigned char __b)
4882 {
4883   return vec_sl(__a, __b);
4884 }
4885
4886 /* vec_vslh */
4887
4888 #define __builtin_altivec_vslh vec_vslh
4889
4890 static vector short __ATTRS_o_ai
4891 vec_vslh(vector short __a, vector unsigned short __b)
4892 {
4893   return vec_sl(__a, __b);
4894 }
4895
4896 static vector unsigned short __ATTRS_o_ai
4897 vec_vslh(vector unsigned short __a, vector unsigned short __b)
4898 {
4899   return vec_sl(__a, __b);
4900 }
4901
4902 /* vec_vslw */
4903
4904 #define __builtin_altivec_vslw vec_vslw
4905
4906 static vector int __ATTRS_o_ai
4907 vec_vslw(vector int __a, vector unsigned int __b)
4908 {
4909   return vec_sl(__a, __b);
4910 }
4911
4912 static vector unsigned int __ATTRS_o_ai
4913 vec_vslw(vector unsigned int __a, vector unsigned int __b)
4914 {
4915   return vec_sl(__a, __b);
4916 }
4917
4918 /* vec_sld */
4919
4920 #define __builtin_altivec_vsldoi_4si vec_sld
4921
4922 static vector signed char __ATTRS_o_ai
4923 vec_sld(vector signed char __a, vector signed char __b, unsigned char __c)
4924 {
4925   return vec_perm(__a, __b, (vector unsigned char)
4926     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4927      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4928 }
4929
4930 static vector unsigned char __ATTRS_o_ai
4931 vec_sld(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
4932 {
4933   return vec_perm(__a, __b, (vector unsigned char)
4934     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4935      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4936 }
4937
4938 static vector short __ATTRS_o_ai
4939 vec_sld(vector short __a, vector short __b, unsigned char __c)
4940 {
4941   return vec_perm(__a, __b, (vector unsigned char)
4942     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4943      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4944 }
4945
4946 static vector unsigned short __ATTRS_o_ai
4947 vec_sld(vector unsigned short __a, vector unsigned short __b, unsigned char __c)
4948 {
4949   return vec_perm(__a, __b, (vector unsigned char)
4950     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4951      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4952 }
4953
4954 static vector pixel __ATTRS_o_ai
4955 vec_sld(vector pixel __a, vector pixel __b, unsigned char __c)
4956 {
4957   return vec_perm(__a, __b, (vector unsigned char)
4958     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4959      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4960 }
4961
4962 static vector int __ATTRS_o_ai
4963 vec_sld(vector int __a, vector int __b, unsigned char __c)
4964 {
4965   return vec_perm(__a, __b, (vector unsigned char)
4966     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4967      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4968 }
4969
4970 static vector unsigned int __ATTRS_o_ai
4971 vec_sld(vector unsigned int __a, vector unsigned int __b, unsigned char __c)
4972 {
4973   return vec_perm(__a, __b, (vector unsigned char)
4974     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4975      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4976 }
4977
4978 static vector float __ATTRS_o_ai
4979 vec_sld(vector float __a, vector float __b, unsigned char __c)
4980 {
4981   return vec_perm(__a, __b, (vector unsigned char)
4982     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4983      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4984 }
4985
4986 /* vec_vsldoi */
4987
4988 static vector signed char __ATTRS_o_ai
4989 vec_vsldoi(vector signed char __a, vector signed char __b, unsigned char __c)
4990 {
4991   return vec_perm(__a, __b, (vector unsigned char)
4992     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
4993      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
4994 }
4995
4996 static vector unsigned char __ATTRS_o_ai
4997 vec_vsldoi(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
4998 {
4999   return vec_perm(__a, __b, (vector unsigned char)
5000     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5001      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5002 }
5003
5004 static vector short __ATTRS_o_ai
5005 vec_vsldoi(vector short __a, vector short __b, unsigned char __c)
5006 {
5007   return vec_perm(__a, __b, (vector unsigned char)
5008     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5009      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5010 }
5011
5012 static vector unsigned short __ATTRS_o_ai
5013 vec_vsldoi(vector unsigned short __a, vector unsigned short __b, unsigned char __c)
5014 {
5015   return vec_perm(__a, __b, (vector unsigned char)
5016     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5017      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5018 }
5019
5020 static vector pixel __ATTRS_o_ai
5021 vec_vsldoi(vector pixel __a, vector pixel __b, unsigned char __c)
5022 {
5023   return vec_perm(__a, __b, (vector unsigned char)
5024     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5025      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5026 }
5027
5028 static vector int __ATTRS_o_ai
5029 vec_vsldoi(vector int __a, vector int __b, unsigned char __c)
5030 {
5031   return vec_perm(__a, __b, (vector unsigned char)
5032     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5033      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5034 }
5035
5036 static vector unsigned int __ATTRS_o_ai
5037 vec_vsldoi(vector unsigned int __a, vector unsigned int __b, unsigned char __c)
5038 {
5039   return vec_perm(__a, __b, (vector unsigned char)
5040     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5041      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5042 }
5043
5044 static vector float __ATTRS_o_ai
5045 vec_vsldoi(vector float __a, vector float __b, unsigned char __c)
5046 {
5047   return vec_perm(__a, __b, (vector unsigned char)
5048     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
5049      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
5050 }
5051
5052 /* vec_sll */
5053
5054 static vector signed char __ATTRS_o_ai
5055 vec_sll(vector signed char __a, vector unsigned char __b)
5056 {
5057   return (vector signed char)
5058            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5059 }
5060
5061 static vector signed char __ATTRS_o_ai
5062 vec_sll(vector signed char __a, vector unsigned short __b)
5063 {
5064   return (vector signed char)
5065            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5066 }
5067
5068 static vector signed char __ATTRS_o_ai
5069 vec_sll(vector signed char __a, vector unsigned int __b)
5070 {
5071   return (vector signed char)
5072            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5073 }
5074
5075 static vector unsigned char __ATTRS_o_ai
5076 vec_sll(vector unsigned char __a, vector unsigned char __b)
5077 {
5078   return (vector unsigned char)
5079            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5080 }
5081
5082 static vector unsigned char __ATTRS_o_ai
5083 vec_sll(vector unsigned char __a, vector unsigned short __b)
5084 {
5085   return (vector unsigned char)
5086            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5087 }
5088
5089 static vector unsigned char __ATTRS_o_ai
5090 vec_sll(vector unsigned char __a, vector unsigned int __b)
5091 {
5092   return (vector unsigned char)
5093            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5094 }
5095
5096 static vector bool char __ATTRS_o_ai
5097 vec_sll(vector bool char __a, vector unsigned char __b)
5098 {
5099   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5100 }
5101
5102 static vector bool char __ATTRS_o_ai
5103 vec_sll(vector bool char __a, vector unsigned short __b)
5104 {
5105   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5106 }
5107
5108 static vector bool char __ATTRS_o_ai
5109 vec_sll(vector bool char __a, vector unsigned int __b)
5110 {
5111   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5112 }
5113
5114 static vector short __ATTRS_o_ai
5115 vec_sll(vector short __a, vector unsigned char __b)
5116 {
5117   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5118 }
5119
5120 static vector short __ATTRS_o_ai
5121 vec_sll(vector short __a, vector unsigned short __b)
5122 {
5123   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5124 }
5125
5126 static vector short __ATTRS_o_ai
5127 vec_sll(vector short __a, vector unsigned int __b)
5128 {
5129   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5130 }
5131
5132 static vector unsigned short __ATTRS_o_ai
5133 vec_sll(vector unsigned short __a, vector unsigned char __b)
5134 {
5135   return (vector unsigned short)
5136            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5137 }
5138
5139 static vector unsigned short __ATTRS_o_ai
5140 vec_sll(vector unsigned short __a, vector unsigned short __b)
5141 {
5142   return (vector unsigned short)
5143            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5144 }
5145
5146 static vector unsigned short __ATTRS_o_ai
5147 vec_sll(vector unsigned short __a, vector unsigned int __b)
5148 {
5149   return (vector unsigned short)
5150            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5151 }
5152
5153 static vector bool short __ATTRS_o_ai
5154 vec_sll(vector bool short __a, vector unsigned char __b)
5155 {
5156   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5157 }
5158
5159 static vector bool short __ATTRS_o_ai
5160 vec_sll(vector bool short __a, vector unsigned short __b)
5161 {
5162   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5163 }
5164
5165 static vector bool short __ATTRS_o_ai
5166 vec_sll(vector bool short __a, vector unsigned int __b)
5167 {
5168   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5169 }
5170
5171 static vector pixel __ATTRS_o_ai
5172 vec_sll(vector pixel __a, vector unsigned char __b)
5173 {
5174   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5175 }
5176
5177 static vector pixel __ATTRS_o_ai
5178 vec_sll(vector pixel __a, vector unsigned short __b)
5179 {
5180   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5181 }
5182
5183 static vector pixel __ATTRS_o_ai
5184 vec_sll(vector pixel __a, vector unsigned int __b)
5185 {
5186   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5187 }
5188
5189 static vector int __ATTRS_o_ai
5190 vec_sll(vector int __a, vector unsigned char __b)
5191 {
5192   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
5193 }
5194
5195 static vector int __ATTRS_o_ai
5196 vec_sll(vector int __a, vector unsigned short __b)
5197 {
5198   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
5199 }
5200
5201 static vector int __ATTRS_o_ai
5202 vec_sll(vector int __a, vector unsigned int __b)
5203 {
5204   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
5205 }
5206
5207 static vector unsigned int __ATTRS_o_ai
5208 vec_sll(vector unsigned int __a, vector unsigned char __b)
5209 {
5210   return (vector unsigned int)
5211            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5212 }
5213
5214 static vector unsigned int __ATTRS_o_ai
5215 vec_sll(vector unsigned int __a, vector unsigned short __b)
5216 {
5217   return (vector unsigned int)
5218            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5219 }
5220
5221 static vector unsigned int __ATTRS_o_ai
5222 vec_sll(vector unsigned int __a, vector unsigned int __b)
5223 {
5224   return (vector unsigned int)
5225            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5226 }
5227
5228 static vector bool int __ATTRS_o_ai
5229 vec_sll(vector bool int __a, vector unsigned char __b)
5230 {
5231   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5232 }
5233
5234 static vector bool int __ATTRS_o_ai
5235 vec_sll(vector bool int __a, vector unsigned short __b)
5236 {
5237   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5238 }
5239
5240 static vector bool int __ATTRS_o_ai
5241 vec_sll(vector bool int __a, vector unsigned int __b)
5242 {
5243   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5244 }
5245
5246 /* vec_vsl */
5247
5248 static vector signed char __ATTRS_o_ai
5249 vec_vsl(vector signed char __a, vector unsigned char __b)
5250 {
5251   return (vector signed char)
5252            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5253 }
5254
5255 static vector signed char __ATTRS_o_ai
5256 vec_vsl(vector signed char __a, vector unsigned short __b)
5257 {
5258   return (vector signed char)
5259            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5260 }
5261
5262 static vector signed char __ATTRS_o_ai
5263 vec_vsl(vector signed char __a, vector unsigned int __b)
5264 {
5265   return (vector signed char)
5266            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5267 }
5268
5269 static vector unsigned char __ATTRS_o_ai
5270 vec_vsl(vector unsigned char __a, vector unsigned char __b)
5271 {
5272   return (vector unsigned char)
5273            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5274 }
5275
5276 static vector unsigned char __ATTRS_o_ai
5277 vec_vsl(vector unsigned char __a, vector unsigned short __b)
5278 {
5279   return (vector unsigned char)
5280            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5281 }
5282
5283 static vector unsigned char __ATTRS_o_ai
5284 vec_vsl(vector unsigned char __a, vector unsigned int __b)
5285 {
5286   return (vector unsigned char)
5287            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5288 }
5289
5290 static vector bool char __ATTRS_o_ai
5291 vec_vsl(vector bool char __a, vector unsigned char __b)
5292 {
5293   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5294 }
5295
5296 static vector bool char __ATTRS_o_ai
5297 vec_vsl(vector bool char __a, vector unsigned short __b)
5298 {
5299   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5300 }
5301
5302 static vector bool char __ATTRS_o_ai
5303 vec_vsl(vector bool char __a, vector unsigned int __b)
5304 {
5305   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5306 }
5307
5308 static vector short __ATTRS_o_ai
5309 vec_vsl(vector short __a, vector unsigned char __b)
5310 {
5311   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5312 }
5313
5314 static vector short __ATTRS_o_ai
5315 vec_vsl(vector short __a, vector unsigned short __b)
5316 {
5317   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5318 }
5319
5320 static vector short __ATTRS_o_ai
5321 vec_vsl(vector short __a, vector unsigned int __b)
5322 {
5323   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5324 }
5325
5326 static vector unsigned short __ATTRS_o_ai
5327 vec_vsl(vector unsigned short __a, vector unsigned char __b)
5328 {
5329   return (vector unsigned short)
5330            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5331 }
5332
5333 static vector unsigned short __ATTRS_o_ai
5334 vec_vsl(vector unsigned short __a, vector unsigned short __b)
5335 {
5336   return (vector unsigned short)
5337            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5338 }
5339
5340 static vector unsigned short __ATTRS_o_ai
5341 vec_vsl(vector unsigned short __a, vector unsigned int __b)
5342 {
5343   return (vector unsigned short)
5344            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5345 }
5346
5347 static vector bool short __ATTRS_o_ai
5348 vec_vsl(vector bool short __a, vector unsigned char __b)
5349 {
5350   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5351 }
5352
5353 static vector bool short __ATTRS_o_ai
5354 vec_vsl(vector bool short __a, vector unsigned short __b)
5355 {
5356   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5357 }
5358
5359 static vector bool short __ATTRS_o_ai
5360 vec_vsl(vector bool short __a, vector unsigned int __b)
5361 {
5362   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5363 }
5364
5365 static vector pixel __ATTRS_o_ai
5366 vec_vsl(vector pixel __a, vector unsigned char __b)
5367 {
5368   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5369 }
5370
5371 static vector pixel __ATTRS_o_ai
5372 vec_vsl(vector pixel __a, vector unsigned short __b)
5373 {
5374   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5375 }
5376
5377 static vector pixel __ATTRS_o_ai
5378 vec_vsl(vector pixel __a, vector unsigned int __b)
5379 {
5380   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5381 }
5382
5383 static vector int __ATTRS_o_ai
5384 vec_vsl(vector int __a, vector unsigned char __b)
5385 {
5386   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
5387 }
5388
5389 static vector int __ATTRS_o_ai
5390 vec_vsl(vector int __a, vector unsigned short __b)
5391 {
5392   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
5393 }
5394
5395 static vector int __ATTRS_o_ai
5396 vec_vsl(vector int __a, vector unsigned int __b)
5397 {
5398   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
5399 }
5400
5401 static vector unsigned int __ATTRS_o_ai
5402 vec_vsl(vector unsigned int __a, vector unsigned char __b)
5403 {
5404   return (vector unsigned int)
5405            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5406 }
5407
5408 static vector unsigned int __ATTRS_o_ai
5409 vec_vsl(vector unsigned int __a, vector unsigned short __b)
5410 {
5411   return (vector unsigned int)
5412            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5413 }
5414
5415 static vector unsigned int __ATTRS_o_ai
5416 vec_vsl(vector unsigned int __a, vector unsigned int __b)
5417 {
5418   return (vector unsigned int)
5419            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
5420 }
5421
5422 static vector bool int __ATTRS_o_ai
5423 vec_vsl(vector bool int __a, vector unsigned char __b)
5424 {
5425   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5426 }
5427
5428 static vector bool int __ATTRS_o_ai
5429 vec_vsl(vector bool int __a, vector unsigned short __b)
5430 {
5431   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5432 }
5433
5434 static vector bool int __ATTRS_o_ai
5435 vec_vsl(vector bool int __a, vector unsigned int __b)
5436 {
5437   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
5438 }
5439
5440 /* vec_slo */
5441
5442 static vector signed char __ATTRS_o_ai
5443 vec_slo(vector signed char __a, vector signed char __b)
5444 {
5445   return (vector signed char)
5446            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5447 }
5448
5449 static vector signed char __ATTRS_o_ai
5450 vec_slo(vector signed char __a, vector unsigned char __b)
5451 {
5452   return (vector signed char)
5453            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5454 }
5455
5456 static vector unsigned char __ATTRS_o_ai
5457 vec_slo(vector unsigned char __a, vector signed char __b)
5458 {
5459   return (vector unsigned char)
5460            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5461 }
5462
5463 static vector unsigned char __ATTRS_o_ai
5464 vec_slo(vector unsigned char __a, vector unsigned char __b)
5465 {
5466   return (vector unsigned char)
5467            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5468 }
5469
5470 static vector short __ATTRS_o_ai
5471 vec_slo(vector short __a, vector signed char __b)
5472 {
5473   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5474 }
5475
5476 static vector short __ATTRS_o_ai
5477 vec_slo(vector short __a, vector unsigned char __b)
5478 {
5479   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5480 }
5481
5482 static vector unsigned short __ATTRS_o_ai
5483 vec_slo(vector unsigned short __a, vector signed char __b)
5484 {
5485   return (vector unsigned short)
5486            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5487 }
5488
5489 static vector unsigned short __ATTRS_o_ai
5490 vec_slo(vector unsigned short __a, vector unsigned char __b)
5491 {
5492   return (vector unsigned short)
5493            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5494 }
5495
5496 static vector pixel __ATTRS_o_ai
5497 vec_slo(vector pixel __a, vector signed char __b)
5498 {
5499   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5500 }
5501
5502 static vector pixel __ATTRS_o_ai
5503 vec_slo(vector pixel __a, vector unsigned char __b)
5504 {
5505   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5506 }
5507
5508 static vector int __ATTRS_o_ai
5509 vec_slo(vector int __a, vector signed char __b)
5510 {
5511   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
5512 }
5513
5514 static vector int __ATTRS_o_ai
5515 vec_slo(vector int __a, vector unsigned char __b)
5516 {
5517   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
5518 }
5519
5520 static vector unsigned int __ATTRS_o_ai
5521 vec_slo(vector unsigned int __a, vector signed char __b)
5522 {
5523   return (vector unsigned int)
5524            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5525 }
5526
5527 static vector unsigned int __ATTRS_o_ai
5528 vec_slo(vector unsigned int __a, vector unsigned char __b)
5529 {
5530   return (vector unsigned int)
5531            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5532 }
5533
5534 static vector float __ATTRS_o_ai
5535 vec_slo(vector float __a, vector signed char __b)
5536 {
5537   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5538 }
5539
5540 static vector float __ATTRS_o_ai
5541 vec_slo(vector float __a, vector unsigned char __b)
5542 {
5543   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5544 }
5545
5546 /* vec_vslo */
5547
5548 static vector signed char __ATTRS_o_ai
5549 vec_vslo(vector signed char __a, vector signed char __b)
5550 {
5551   return (vector signed char)
5552            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5553 }
5554
5555 static vector signed char __ATTRS_o_ai
5556 vec_vslo(vector signed char __a, vector unsigned char __b)
5557 {
5558   return (vector signed char)
5559            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5560 }
5561
5562 static vector unsigned char __ATTRS_o_ai
5563 vec_vslo(vector unsigned char __a, vector signed char __b)
5564 {
5565   return (vector unsigned char)
5566            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5567 }
5568
5569 static vector unsigned char __ATTRS_o_ai
5570 vec_vslo(vector unsigned char __a, vector unsigned char __b)
5571 {
5572   return (vector unsigned char)
5573            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5574 }
5575
5576 static vector short __ATTRS_o_ai
5577 vec_vslo(vector short __a, vector signed char __b)
5578 {
5579   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5580 }
5581
5582 static vector short __ATTRS_o_ai
5583 vec_vslo(vector short __a, vector unsigned char __b)
5584 {
5585   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5586 }
5587
5588 static vector unsigned short __ATTRS_o_ai
5589 vec_vslo(vector unsigned short __a, vector signed char __b)
5590 {
5591   return (vector unsigned short)
5592            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5593 }
5594
5595 static vector unsigned short __ATTRS_o_ai
5596 vec_vslo(vector unsigned short __a, vector unsigned char __b)
5597 {
5598   return (vector unsigned short)
5599            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5600 }
5601
5602 static vector pixel __ATTRS_o_ai
5603 vec_vslo(vector pixel __a, vector signed char __b)
5604 {
5605   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5606 }
5607
5608 static vector pixel __ATTRS_o_ai
5609 vec_vslo(vector pixel __a, vector unsigned char __b)
5610 {
5611   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5612 }
5613
5614 static vector int __ATTRS_o_ai
5615 vec_vslo(vector int __a, vector signed char __b)
5616 {
5617   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
5618 }
5619
5620 static vector int __ATTRS_o_ai
5621 vec_vslo(vector int __a, vector unsigned char __b)
5622 {
5623   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
5624 }
5625
5626 static vector unsigned int __ATTRS_o_ai
5627 vec_vslo(vector unsigned int __a, vector signed char __b)
5628 {
5629   return (vector unsigned int)
5630            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5631 }
5632
5633 static vector unsigned int __ATTRS_o_ai
5634 vec_vslo(vector unsigned int __a, vector unsigned char __b)
5635 {
5636   return (vector unsigned int)
5637            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
5638 }
5639
5640 static vector float __ATTRS_o_ai
5641 vec_vslo(vector float __a, vector signed char __b)
5642 {
5643   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5644 }
5645
5646 static vector float __ATTRS_o_ai
5647 vec_vslo(vector float __a, vector unsigned char __b)
5648 {
5649   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
5650 }
5651
5652 /* vec_splat */
5653
5654 static vector signed char __ATTRS_o_ai
5655 vec_splat(vector signed char __a, unsigned char __b)
5656 {
5657   return vec_perm(__a, __a, (vector unsigned char)(__b));
5658 }
5659
5660 static vector unsigned char __ATTRS_o_ai
5661 vec_splat(vector unsigned char __a, unsigned char __b)
5662 {
5663   return vec_perm(__a, __a, (vector unsigned char)(__b));
5664 }
5665
5666 static vector bool char __ATTRS_o_ai
5667 vec_splat(vector bool char __a, unsigned char __b)
5668 {
5669   return vec_perm(__a, __a, (vector unsigned char)(__b));
5670 }
5671
5672 static vector short __ATTRS_o_ai
5673 vec_splat(vector short __a, unsigned char __b)
5674
5675   __b *= 2;
5676   unsigned char b1=__b+1;
5677   return vec_perm(__a, __a, (vector unsigned char)
5678     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5679 }
5680
5681 static vector unsigned short __ATTRS_o_ai
5682 vec_splat(vector unsigned short __a, unsigned char __b)
5683
5684   __b *= 2;
5685   unsigned char b1=__b+1;
5686   return vec_perm(__a, __a, (vector unsigned char)
5687     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5688 }
5689
5690 static vector bool short __ATTRS_o_ai
5691 vec_splat(vector bool short __a, unsigned char __b)
5692
5693   __b *= 2;
5694   unsigned char b1=__b+1;
5695   return vec_perm(__a, __a, (vector unsigned char)
5696     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5697 }
5698
5699 static vector pixel __ATTRS_o_ai
5700 vec_splat(vector pixel __a, unsigned char __b)
5701
5702   __b *= 2;
5703   unsigned char b1=__b+1;
5704   return vec_perm(__a, __a, (vector unsigned char)
5705     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5706 }
5707
5708 static vector int __ATTRS_o_ai
5709 vec_splat(vector int __a, unsigned char __b)
5710
5711   __b *= 4;
5712   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5713   return vec_perm(__a, __a, (vector unsigned char)
5714     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5715 }
5716
5717 static vector unsigned int __ATTRS_o_ai
5718 vec_splat(vector unsigned int __a, unsigned char __b)
5719
5720   __b *= 4;
5721   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5722   return vec_perm(__a, __a, (vector unsigned char)
5723     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5724 }
5725
5726 static vector bool int __ATTRS_o_ai
5727 vec_splat(vector bool int __a, unsigned char __b)
5728
5729   __b *= 4;
5730   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5731   return vec_perm(__a, __a, (vector unsigned char)
5732     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5733 }
5734
5735 static vector float __ATTRS_o_ai
5736 vec_splat(vector float __a, unsigned char __b)
5737
5738   __b *= 4;
5739   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5740   return vec_perm(__a, __a, (vector unsigned char)
5741     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5742 }
5743
5744 /* vec_vspltb */
5745
5746 #define __builtin_altivec_vspltb vec_vspltb
5747
5748 static vector signed char __ATTRS_o_ai
5749 vec_vspltb(vector signed char __a, unsigned char __b)
5750 {
5751   return vec_perm(__a, __a, (vector unsigned char)(__b));
5752 }
5753
5754 static vector unsigned char __ATTRS_o_ai
5755 vec_vspltb(vector unsigned char __a, unsigned char __b)
5756 {
5757   return vec_perm(__a, __a, (vector unsigned char)(__b));
5758 }
5759
5760 static vector bool char __ATTRS_o_ai
5761 vec_vspltb(vector bool char __a, unsigned char __b)
5762 {
5763   return vec_perm(__a, __a, (vector unsigned char)(__b));
5764 }
5765
5766 /* vec_vsplth */
5767
5768 #define __builtin_altivec_vsplth vec_vsplth
5769
5770 static vector short __ATTRS_o_ai
5771 vec_vsplth(vector short __a, unsigned char __b)
5772 {
5773   __b *= 2;
5774   unsigned char b1=__b+1;
5775   return vec_perm(__a, __a, (vector unsigned char)
5776     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5777 }
5778
5779 static vector unsigned short __ATTRS_o_ai
5780 vec_vsplth(vector unsigned short __a, unsigned char __b)
5781 {
5782   __b *= 2;
5783   unsigned char b1=__b+1;
5784   return vec_perm(__a, __a, (vector unsigned char)
5785     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5786 }
5787
5788 static vector bool short __ATTRS_o_ai
5789 vec_vsplth(vector bool short __a, unsigned char __b)
5790 {
5791   __b *= 2;
5792   unsigned char b1=__b+1;
5793   return vec_perm(__a, __a, (vector unsigned char)
5794     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5795 }
5796
5797 static vector pixel __ATTRS_o_ai
5798 vec_vsplth(vector pixel __a, unsigned char __b)
5799 {
5800   __b *= 2;
5801   unsigned char b1=__b+1;
5802   return vec_perm(__a, __a, (vector unsigned char)
5803     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
5804 }
5805
5806 /* vec_vspltw */
5807
5808 #define __builtin_altivec_vspltw vec_vspltw
5809
5810 static vector int __ATTRS_o_ai
5811 vec_vspltw(vector int __a, unsigned char __b)
5812 {
5813   __b *= 4;
5814   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5815   return vec_perm(__a, __a, (vector unsigned char)
5816     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5817 }
5818
5819 static vector unsigned int __ATTRS_o_ai
5820 vec_vspltw(vector unsigned int __a, unsigned char __b)
5821 {
5822   __b *= 4;
5823   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5824   return vec_perm(__a, __a, (vector unsigned char)
5825     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5826 }
5827
5828 static vector bool int __ATTRS_o_ai
5829 vec_vspltw(vector bool int __a, unsigned char __b)
5830 {
5831   __b *= 4;
5832   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5833   return vec_perm(__a, __a, (vector unsigned char)
5834     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5835 }
5836
5837 static vector float __ATTRS_o_ai
5838 vec_vspltw(vector float __a, unsigned char __b)
5839 {
5840   __b *= 4;
5841   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
5842   return vec_perm(__a, __a, (vector unsigned char)
5843     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
5844 }
5845
5846 /* vec_splat_s8 */
5847
5848 #define __builtin_altivec_vspltisb vec_splat_s8
5849
5850 // FIXME: parameter should be treated as 5-bit signed literal
5851 static vector signed char __ATTRS_o_ai
5852 vec_splat_s8(signed char __a)
5853 {
5854   return (vector signed char)(__a);
5855 }
5856
5857 /* vec_vspltisb */
5858
5859 // FIXME: parameter should be treated as 5-bit signed literal
5860 static vector signed char __ATTRS_o_ai
5861 vec_vspltisb(signed char __a)
5862 {
5863   return (vector signed char)(__a);
5864 }
5865
5866 /* vec_splat_s16 */
5867
5868 #define __builtin_altivec_vspltish vec_splat_s16
5869
5870 // FIXME: parameter should be treated as 5-bit signed literal
5871 static vector short __ATTRS_o_ai
5872 vec_splat_s16(signed char __a)
5873 {
5874   return (vector short)(__a);
5875 }
5876
5877 /* vec_vspltish */
5878
5879 // FIXME: parameter should be treated as 5-bit signed literal
5880 static vector short __ATTRS_o_ai
5881 vec_vspltish(signed char __a)
5882 {
5883   return (vector short)(__a);
5884 }
5885
5886 /* vec_splat_s32 */
5887
5888 #define __builtin_altivec_vspltisw vec_splat_s32
5889
5890 // FIXME: parameter should be treated as 5-bit signed literal
5891 static vector int __ATTRS_o_ai
5892 vec_splat_s32(signed char __a)
5893 {
5894   return (vector int)(__a);
5895 }
5896
5897 /* vec_vspltisw */
5898
5899 // FIXME: parameter should be treated as 5-bit signed literal
5900 static vector int __ATTRS_o_ai
5901 vec_vspltisw(signed char __a)
5902 {
5903   return (vector int)(__a);
5904 }
5905
5906 /* vec_splat_u8 */
5907
5908 // FIXME: parameter should be treated as 5-bit signed literal
5909 static vector unsigned char __ATTRS_o_ai
5910 vec_splat_u8(unsigned char __a)
5911 {
5912   return (vector unsigned char)(__a);
5913 }
5914
5915 /* vec_splat_u16 */
5916
5917 // FIXME: parameter should be treated as 5-bit signed literal
5918 static vector unsigned short __ATTRS_o_ai
5919 vec_splat_u16(signed char __a)
5920 {
5921   return (vector unsigned short)(__a);
5922 }
5923
5924 /* vec_splat_u32 */
5925
5926 // FIXME: parameter should be treated as 5-bit signed literal
5927 static vector unsigned int __ATTRS_o_ai
5928 vec_splat_u32(signed char __a)
5929 {
5930   return (vector unsigned int)(__a);
5931 }
5932
5933 /* vec_sr */
5934
5935 static vector signed char __ATTRS_o_ai
5936 vec_sr(vector signed char __a, vector unsigned char __b)
5937 {
5938   return __a >> (vector signed char)__b;
5939 }
5940
5941 static vector unsigned char __ATTRS_o_ai
5942 vec_sr(vector unsigned char __a, vector unsigned char __b)
5943 {
5944   return __a >> __b;
5945 }
5946
5947 static vector short __ATTRS_o_ai
5948 vec_sr(vector short __a, vector unsigned short __b)
5949 {
5950   return __a >> (vector short)__b;
5951 }
5952
5953 static vector unsigned short __ATTRS_o_ai
5954 vec_sr(vector unsigned short __a, vector unsigned short __b)
5955 {
5956   return __a >> __b;
5957 }
5958
5959 static vector int __ATTRS_o_ai
5960 vec_sr(vector int __a, vector unsigned int __b)
5961 {
5962   return __a >> (vector int)__b;
5963 }
5964
5965 static vector unsigned int __ATTRS_o_ai
5966 vec_sr(vector unsigned int __a, vector unsigned int __b)
5967 {
5968   return __a >> __b;
5969 }
5970
5971 /* vec_vsrb */
5972
5973 #define __builtin_altivec_vsrb vec_vsrb
5974
5975 static vector signed char __ATTRS_o_ai
5976 vec_vsrb(vector signed char __a, vector unsigned char __b)
5977 {
5978   return __a >> (vector signed char)__b;
5979 }
5980
5981 static vector unsigned char __ATTRS_o_ai
5982 vec_vsrb(vector unsigned char __a, vector unsigned char __b)
5983 {
5984   return __a >> __b;
5985 }
5986
5987 /* vec_vsrh */
5988
5989 #define __builtin_altivec_vsrh vec_vsrh
5990
5991 static vector short __ATTRS_o_ai
5992 vec_vsrh(vector short __a, vector unsigned short __b)
5993 {
5994   return __a >> (vector short)__b;
5995 }
5996
5997 static vector unsigned short __ATTRS_o_ai
5998 vec_vsrh(vector unsigned short __a, vector unsigned short __b)
5999 {
6000   return __a >> __b;
6001 }
6002
6003 /* vec_vsrw */
6004
6005 #define __builtin_altivec_vsrw vec_vsrw
6006
6007 static vector int __ATTRS_o_ai
6008 vec_vsrw(vector int __a, vector unsigned int __b)
6009 {
6010   return __a >> (vector int)__b;
6011 }
6012
6013 static vector unsigned int __ATTRS_o_ai
6014 vec_vsrw(vector unsigned int __a, vector unsigned int __b)
6015 {
6016   return __a >> __b;
6017 }
6018
6019 /* vec_sra */
6020
6021 static vector signed char __ATTRS_o_ai
6022 vec_sra(vector signed char __a, vector unsigned char __b)
6023 {
6024   return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
6025 }
6026
6027 static vector unsigned char __ATTRS_o_ai
6028 vec_sra(vector unsigned char __a, vector unsigned char __b)
6029 {
6030   return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
6031 }
6032
6033 static vector short __ATTRS_o_ai
6034 vec_sra(vector short __a, vector unsigned short __b)
6035 {
6036   return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
6037 }
6038
6039 static vector unsigned short __ATTRS_o_ai
6040 vec_sra(vector unsigned short __a, vector unsigned short __b)
6041 {
6042   return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
6043 }
6044
6045 static vector int __ATTRS_o_ai
6046 vec_sra(vector int __a, vector unsigned int __b)
6047 {
6048   return __builtin_altivec_vsraw(__a, __b);
6049 }
6050
6051 static vector unsigned int __ATTRS_o_ai
6052 vec_sra(vector unsigned int __a, vector unsigned int __b)
6053 {
6054   return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
6055 }
6056
6057 /* vec_vsrab */
6058
6059 static vector signed char __ATTRS_o_ai
6060 vec_vsrab(vector signed char __a, vector unsigned char __b)
6061 {
6062   return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
6063 }
6064
6065 static vector unsigned char __ATTRS_o_ai
6066 vec_vsrab(vector unsigned char __a, vector unsigned char __b)
6067 {
6068   return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
6069 }
6070
6071 /* vec_vsrah */
6072
6073 static vector short __ATTRS_o_ai
6074 vec_vsrah(vector short __a, vector unsigned short __b)
6075 {
6076   return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
6077 }
6078
6079 static vector unsigned short __ATTRS_o_ai
6080 vec_vsrah(vector unsigned short __a, vector unsigned short __b)
6081 {
6082   return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
6083 }
6084
6085 /* vec_vsraw */
6086
6087 static vector int __ATTRS_o_ai
6088 vec_vsraw(vector int __a, vector unsigned int __b)
6089 {
6090   return __builtin_altivec_vsraw(__a, __b);
6091 }
6092
6093 static vector unsigned int __ATTRS_o_ai
6094 vec_vsraw(vector unsigned int __a, vector unsigned int __b)
6095 {
6096   return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
6097 }
6098
6099 /* vec_srl */
6100
6101 static vector signed char __ATTRS_o_ai
6102 vec_srl(vector signed char __a, vector unsigned char __b)
6103 {
6104   return (vector signed char)
6105            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6106 }
6107
6108 static vector signed char __ATTRS_o_ai
6109 vec_srl(vector signed char __a, vector unsigned short __b)
6110 {
6111   return (vector signed char)
6112            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6113 }
6114
6115 static vector signed char __ATTRS_o_ai
6116 vec_srl(vector signed char __a, vector unsigned int __b)
6117 {
6118   return (vector signed char)
6119            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6120 }
6121
6122 static vector unsigned char __ATTRS_o_ai
6123 vec_srl(vector unsigned char __a, vector unsigned char __b)
6124 {
6125   return (vector unsigned char)
6126            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6127 }
6128
6129 static vector unsigned char __ATTRS_o_ai
6130 vec_srl(vector unsigned char __a, vector unsigned short __b)
6131 {
6132   return (vector unsigned char)
6133            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6134 }
6135
6136 static vector unsigned char __ATTRS_o_ai
6137 vec_srl(vector unsigned char __a, vector unsigned int __b)
6138 {
6139   return (vector unsigned char)
6140            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6141 }
6142
6143 static vector bool char __ATTRS_o_ai
6144 vec_srl(vector bool char __a, vector unsigned char __b)
6145 {
6146   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6147 }
6148
6149 static vector bool char __ATTRS_o_ai
6150 vec_srl(vector bool char __a, vector unsigned short __b)
6151 {
6152   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6153 }
6154
6155 static vector bool char __ATTRS_o_ai
6156 vec_srl(vector bool char __a, vector unsigned int __b)
6157 {
6158   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6159 }
6160
6161 static vector short __ATTRS_o_ai
6162 vec_srl(vector short __a, vector unsigned char __b)
6163 {
6164   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6165 }
6166
6167 static vector short __ATTRS_o_ai
6168 vec_srl(vector short __a, vector unsigned short __b)
6169 {
6170   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6171 }
6172
6173 static vector short __ATTRS_o_ai
6174 vec_srl(vector short __a, vector unsigned int __b)
6175 {
6176   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6177 }
6178
6179 static vector unsigned short __ATTRS_o_ai
6180 vec_srl(vector unsigned short __a, vector unsigned char __b)
6181 {
6182   return (vector unsigned short)
6183            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6184 }
6185
6186 static vector unsigned short __ATTRS_o_ai
6187 vec_srl(vector unsigned short __a, vector unsigned short __b)
6188 {
6189   return (vector unsigned short)
6190            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6191 }
6192
6193 static vector unsigned short __ATTRS_o_ai
6194 vec_srl(vector unsigned short __a, vector unsigned int __b)
6195 {
6196   return (vector unsigned short)
6197            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6198 }
6199
6200 static vector bool short __ATTRS_o_ai
6201 vec_srl(vector bool short __a, vector unsigned char __b)
6202 {
6203   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6204 }
6205
6206 static vector bool short __ATTRS_o_ai
6207 vec_srl(vector bool short __a, vector unsigned short __b)
6208 {
6209   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6210 }
6211
6212 static vector bool short __ATTRS_o_ai
6213 vec_srl(vector bool short __a, vector unsigned int __b)
6214 {
6215   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6216 }
6217
6218 static vector pixel __ATTRS_o_ai
6219 vec_srl(vector pixel __a, vector unsigned char __b)
6220 {
6221   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6222 }
6223
6224 static vector pixel __ATTRS_o_ai
6225 vec_srl(vector pixel __a, vector unsigned short __b)
6226 {
6227   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6228 }
6229
6230 static vector pixel __ATTRS_o_ai
6231 vec_srl(vector pixel __a, vector unsigned int __b)
6232 {
6233   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6234 }
6235
6236 static vector int __ATTRS_o_ai
6237 vec_srl(vector int __a, vector unsigned char __b)
6238 {
6239   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
6240 }
6241
6242 static vector int __ATTRS_o_ai
6243 vec_srl(vector int __a, vector unsigned short __b)
6244 {
6245   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
6246 }
6247
6248 static vector int __ATTRS_o_ai
6249 vec_srl(vector int __a, vector unsigned int __b)
6250 {
6251   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
6252 }
6253
6254 static vector unsigned int __ATTRS_o_ai
6255 vec_srl(vector unsigned int __a, vector unsigned char __b)
6256 {
6257   return (vector unsigned int)
6258            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6259 }
6260
6261 static vector unsigned int __ATTRS_o_ai
6262 vec_srl(vector unsigned int __a, vector unsigned short __b)
6263 {
6264   return (vector unsigned int)
6265            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6266 }
6267
6268 static vector unsigned int __ATTRS_o_ai
6269 vec_srl(vector unsigned int __a, vector unsigned int __b)
6270 {
6271   return (vector unsigned int)
6272            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6273 }
6274
6275 static vector bool int __ATTRS_o_ai
6276 vec_srl(vector bool int __a, vector unsigned char __b)
6277 {
6278   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6279 }
6280
6281 static vector bool int __ATTRS_o_ai
6282 vec_srl(vector bool int __a, vector unsigned short __b)
6283 {
6284   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6285 }
6286
6287 static vector bool int __ATTRS_o_ai
6288 vec_srl(vector bool int __a, vector unsigned int __b)
6289 {
6290   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6291 }
6292
6293 /* vec_vsr */
6294
6295 static vector signed char __ATTRS_o_ai
6296 vec_vsr(vector signed char __a, vector unsigned char __b)
6297 {
6298   return (vector signed char)
6299            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6300 }
6301
6302 static vector signed char __ATTRS_o_ai
6303 vec_vsr(vector signed char __a, vector unsigned short __b)
6304 {
6305   return (vector signed char)
6306            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6307 }
6308
6309 static vector signed char __ATTRS_o_ai
6310 vec_vsr(vector signed char __a, vector unsigned int __b)
6311 {
6312   return (vector signed char)
6313            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6314 }
6315
6316 static vector unsigned char __ATTRS_o_ai
6317 vec_vsr(vector unsigned char __a, vector unsigned char __b)
6318 {
6319   return (vector unsigned char)
6320            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6321 }
6322
6323 static vector unsigned char __ATTRS_o_ai
6324 vec_vsr(vector unsigned char __a, vector unsigned short __b)
6325 {
6326   return (vector unsigned char)
6327            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6328 }
6329
6330 static vector unsigned char __ATTRS_o_ai
6331 vec_vsr(vector unsigned char __a, vector unsigned int __b)
6332 {
6333   return (vector unsigned char)
6334            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6335 }
6336
6337 static vector bool char __ATTRS_o_ai
6338 vec_vsr(vector bool char __a, vector unsigned char __b)
6339 {
6340   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6341 }
6342
6343 static vector bool char __ATTRS_o_ai
6344 vec_vsr(vector bool char __a, vector unsigned short __b)
6345 {
6346   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6347 }
6348
6349 static vector bool char __ATTRS_o_ai
6350 vec_vsr(vector bool char __a, vector unsigned int __b)
6351 {
6352   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6353 }
6354
6355 static vector short __ATTRS_o_ai
6356 vec_vsr(vector short __a, vector unsigned char __b)
6357 {
6358   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6359 }
6360
6361 static vector short __ATTRS_o_ai
6362 vec_vsr(vector short __a, vector unsigned short __b)
6363 {
6364   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6365 }
6366
6367 static vector short __ATTRS_o_ai
6368 vec_vsr(vector short __a, vector unsigned int __b)
6369 {
6370   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6371 }
6372
6373 static vector unsigned short __ATTRS_o_ai
6374 vec_vsr(vector unsigned short __a, vector unsigned char __b)
6375 {
6376   return (vector unsigned short)
6377            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6378 }
6379
6380 static vector unsigned short __ATTRS_o_ai
6381 vec_vsr(vector unsigned short __a, vector unsigned short __b)
6382 {
6383   return (vector unsigned short)
6384            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6385 }
6386
6387 static vector unsigned short __ATTRS_o_ai
6388 vec_vsr(vector unsigned short __a, vector unsigned int __b)
6389 {
6390   return (vector unsigned short)
6391            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6392 }
6393
6394 static vector bool short __ATTRS_o_ai
6395 vec_vsr(vector bool short __a, vector unsigned char __b)
6396 {
6397   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6398 }
6399
6400 static vector bool short __ATTRS_o_ai
6401 vec_vsr(vector bool short __a, vector unsigned short __b)
6402 {
6403   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6404 }
6405
6406 static vector bool short __ATTRS_o_ai
6407 vec_vsr(vector bool short __a, vector unsigned int __b)
6408 {
6409   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6410 }
6411
6412 static vector pixel __ATTRS_o_ai
6413 vec_vsr(vector pixel __a, vector unsigned char __b)
6414 {
6415   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6416 }
6417
6418 static vector pixel __ATTRS_o_ai
6419 vec_vsr(vector pixel __a, vector unsigned short __b)
6420 {
6421   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6422 }
6423
6424 static vector pixel __ATTRS_o_ai
6425 vec_vsr(vector pixel __a, vector unsigned int __b)
6426 {
6427   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6428 }
6429
6430 static vector int __ATTRS_o_ai
6431 vec_vsr(vector int __a, vector unsigned char __b)
6432 {
6433   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
6434 }
6435
6436 static vector int __ATTRS_o_ai
6437 vec_vsr(vector int __a, vector unsigned short __b)
6438 {
6439   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
6440 }
6441
6442 static vector int __ATTRS_o_ai
6443 vec_vsr(vector int __a, vector unsigned int __b)
6444 {
6445   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
6446 }
6447
6448 static vector unsigned int __ATTRS_o_ai
6449 vec_vsr(vector unsigned int __a, vector unsigned char __b)
6450 {
6451   return (vector unsigned int)
6452            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6453 }
6454
6455 static vector unsigned int __ATTRS_o_ai
6456 vec_vsr(vector unsigned int __a, vector unsigned short __b)
6457 {
6458   return (vector unsigned int)
6459            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6460 }
6461
6462 static vector unsigned int __ATTRS_o_ai
6463 vec_vsr(vector unsigned int __a, vector unsigned int __b)
6464 {
6465   return (vector unsigned int)
6466            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
6467 }
6468
6469 static vector bool int __ATTRS_o_ai
6470 vec_vsr(vector bool int __a, vector unsigned char __b)
6471 {
6472   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6473 }
6474
6475 static vector bool int __ATTRS_o_ai
6476 vec_vsr(vector bool int __a, vector unsigned short __b)
6477 {
6478   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6479 }
6480
6481 static vector bool int __ATTRS_o_ai
6482 vec_vsr(vector bool int __a, vector unsigned int __b)
6483 {
6484   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
6485 }
6486
6487 /* vec_sro */
6488
6489 static vector signed char __ATTRS_o_ai
6490 vec_sro(vector signed char __a, vector signed char __b)
6491 {
6492   return (vector signed char)
6493            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6494 }
6495
6496 static vector signed char __ATTRS_o_ai
6497 vec_sro(vector signed char __a, vector unsigned char __b)
6498 {
6499   return (vector signed char)
6500            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6501 }
6502
6503 static vector unsigned char __ATTRS_o_ai
6504 vec_sro(vector unsigned char __a, vector signed char __b)
6505 {
6506   return (vector unsigned char)
6507            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6508 }
6509
6510 static vector unsigned char __ATTRS_o_ai
6511 vec_sro(vector unsigned char __a, vector unsigned char __b)
6512 {
6513   return (vector unsigned char)
6514            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6515 }
6516
6517 static vector short __ATTRS_o_ai
6518 vec_sro(vector short __a, vector signed char __b)
6519 {
6520   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6521 }
6522
6523 static vector short __ATTRS_o_ai
6524 vec_sro(vector short __a, vector unsigned char __b)
6525 {
6526   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6527 }
6528
6529 static vector unsigned short __ATTRS_o_ai
6530 vec_sro(vector unsigned short __a, vector signed char __b)
6531 {
6532   return (vector unsigned short)
6533            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6534 }
6535
6536 static vector unsigned short __ATTRS_o_ai
6537 vec_sro(vector unsigned short __a, vector unsigned char __b)
6538 {
6539   return (vector unsigned short)
6540            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6541 }
6542
6543 static vector pixel __ATTRS_o_ai
6544 vec_sro(vector pixel __a, vector signed char __b)
6545 {
6546   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6547 }
6548
6549 static vector pixel __ATTRS_o_ai
6550 vec_sro(vector pixel __a, vector unsigned char __b)
6551 {
6552   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6553 }
6554
6555 static vector int __ATTRS_o_ai
6556 vec_sro(vector int __a, vector signed char __b)
6557 {
6558   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
6559 }
6560
6561 static vector int __ATTRS_o_ai
6562 vec_sro(vector int __a, vector unsigned char __b)
6563 {
6564   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
6565 }
6566
6567 static vector unsigned int __ATTRS_o_ai
6568 vec_sro(vector unsigned int __a, vector signed char __b)
6569 {
6570   return (vector unsigned int)
6571            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6572 }
6573
6574 static vector unsigned int __ATTRS_o_ai
6575 vec_sro(vector unsigned int __a, vector unsigned char __b)
6576 {
6577   return (vector unsigned int)
6578            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6579 }
6580
6581 static vector float __ATTRS_o_ai
6582 vec_sro(vector float __a, vector signed char __b)
6583 {
6584   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6585 }
6586
6587 static vector float __ATTRS_o_ai
6588 vec_sro(vector float __a, vector unsigned char __b)
6589 {
6590   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6591 }
6592
6593 /* vec_vsro */
6594
6595 static vector signed char __ATTRS_o_ai
6596 vec_vsro(vector signed char __a, vector signed char __b)
6597 {
6598   return (vector signed char)
6599            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6600 }
6601
6602 static vector signed char __ATTRS_o_ai
6603 vec_vsro(vector signed char __a, vector unsigned char __b)
6604 {
6605   return (vector signed char)
6606            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6607 }
6608
6609 static vector unsigned char __ATTRS_o_ai
6610 vec_vsro(vector unsigned char __a, vector signed char __b)
6611 {
6612   return (vector unsigned char)
6613            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6614 }
6615
6616 static vector unsigned char __ATTRS_o_ai
6617 vec_vsro(vector unsigned char __a, vector unsigned char __b)
6618 {
6619   return (vector unsigned char)
6620            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6621 }
6622
6623 static vector short __ATTRS_o_ai
6624 vec_vsro(vector short __a, vector signed char __b)
6625 {
6626   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6627 }
6628
6629 static vector short __ATTRS_o_ai
6630 vec_vsro(vector short __a, vector unsigned char __b)
6631 {
6632   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6633 }
6634
6635 static vector unsigned short __ATTRS_o_ai
6636 vec_vsro(vector unsigned short __a, vector signed char __b)
6637 {
6638   return (vector unsigned short)
6639            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6640 }
6641
6642 static vector unsigned short __ATTRS_o_ai
6643 vec_vsro(vector unsigned short __a, vector unsigned char __b)
6644 {
6645   return (vector unsigned short)
6646            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6647 }
6648
6649 static vector pixel __ATTRS_o_ai
6650 vec_vsro(vector pixel __a, vector signed char __b)
6651 {
6652   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6653 }
6654
6655 static vector pixel __ATTRS_o_ai
6656 vec_vsro(vector pixel __a, vector unsigned char __b)
6657 {
6658   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6659 }
6660
6661 static vector int __ATTRS_o_ai
6662 vec_vsro(vector int __a, vector signed char __b)
6663 {
6664   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
6665 }
6666
6667 static vector int __ATTRS_o_ai
6668 vec_vsro(vector int __a, vector unsigned char __b)
6669 {
6670   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
6671 }
6672
6673 static vector unsigned int __ATTRS_o_ai
6674 vec_vsro(vector unsigned int __a, vector signed char __b)
6675 {
6676   return (vector unsigned int)
6677            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6678 }
6679
6680 static vector unsigned int __ATTRS_o_ai
6681 vec_vsro(vector unsigned int __a, vector unsigned char __b)
6682 {
6683   return (vector unsigned int)
6684            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
6685 }
6686
6687 static vector float __ATTRS_o_ai
6688 vec_vsro(vector float __a, vector signed char __b)
6689 {
6690   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6691 }
6692
6693 static vector float __ATTRS_o_ai
6694 vec_vsro(vector float __a, vector unsigned char __b)
6695 {
6696   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
6697 }
6698
6699 /* vec_st */
6700
6701 static void __ATTRS_o_ai
6702 vec_st(vector signed char __a, int __b, vector signed char *__c)
6703 {
6704   __builtin_altivec_stvx((vector int)__a, __b, __c);
6705 }
6706
6707 static void __ATTRS_o_ai
6708 vec_st(vector signed char __a, int __b, signed char *__c)
6709 {
6710   __builtin_altivec_stvx((vector int)__a, __b, __c);
6711 }
6712
6713 static void __ATTRS_o_ai
6714 vec_st(vector unsigned char __a, int __b, vector unsigned char *__c)
6715 {
6716   __builtin_altivec_stvx((vector int)__a, __b, __c);
6717 }
6718
6719 static void __ATTRS_o_ai
6720 vec_st(vector unsigned char __a, int __b, unsigned char *__c)
6721 {
6722   __builtin_altivec_stvx((vector int)__a, __b, __c);
6723 }
6724
6725 static void __ATTRS_o_ai
6726 vec_st(vector bool char __a, int __b, signed char *__c)
6727 {
6728   __builtin_altivec_stvx((vector int)__a, __b, __c);
6729 }
6730
6731 static void __ATTRS_o_ai
6732 vec_st(vector bool char __a, int __b, unsigned char *__c)
6733 {
6734   __builtin_altivec_stvx((vector int)__a, __b, __c);
6735 }
6736
6737 static void __ATTRS_o_ai
6738 vec_st(vector bool char __a, int __b, vector bool char *__c)
6739 {
6740   __builtin_altivec_stvx((vector int)__a, __b, __c);
6741 }
6742
6743 static void __ATTRS_o_ai
6744 vec_st(vector short __a, int __b, vector short *__c)
6745 {
6746   __builtin_altivec_stvx((vector int)__a, __b, __c);
6747 }
6748
6749 static void __ATTRS_o_ai
6750 vec_st(vector short __a, int __b, short *__c)
6751 {
6752   __builtin_altivec_stvx((vector int)__a, __b, __c);
6753 }
6754
6755 static void __ATTRS_o_ai
6756 vec_st(vector unsigned short __a, int __b, vector unsigned short *__c)
6757 {
6758   __builtin_altivec_stvx((vector int)__a, __b, __c);
6759 }
6760
6761 static void __ATTRS_o_ai
6762 vec_st(vector unsigned short __a, int __b, unsigned short *__c)
6763 {
6764   __builtin_altivec_stvx((vector int)__a, __b, __c);
6765 }
6766
6767 static void __ATTRS_o_ai
6768 vec_st(vector bool short __a, int __b, short *__c)
6769 {
6770   __builtin_altivec_stvx((vector int)__a, __b, __c);
6771 }
6772
6773 static void __ATTRS_o_ai
6774 vec_st(vector bool short __a, int __b, unsigned short *__c)
6775 {
6776   __builtin_altivec_stvx((vector int)__a, __b, __c);
6777 }
6778
6779 static void __ATTRS_o_ai
6780 vec_st(vector bool short __a, int __b, vector bool short *__c)
6781 {
6782   __builtin_altivec_stvx((vector int)__a, __b, __c);
6783 }
6784
6785 static void __ATTRS_o_ai
6786 vec_st(vector pixel __a, int __b, short *__c)
6787 {
6788   __builtin_altivec_stvx((vector int)__a, __b, __c);
6789 }
6790
6791 static void __ATTRS_o_ai
6792 vec_st(vector pixel __a, int __b, unsigned short *__c)
6793 {
6794   __builtin_altivec_stvx((vector int)__a, __b, __c);
6795 }
6796
6797 static void __ATTRS_o_ai
6798 vec_st(vector pixel __a, int __b, vector pixel *__c)
6799 {
6800   __builtin_altivec_stvx((vector int)__a, __b, __c);
6801 }
6802
6803 static void __ATTRS_o_ai
6804 vec_st(vector int __a, int __b, vector int *__c)
6805 {
6806   __builtin_altivec_stvx(__a, __b, __c);
6807 }
6808
6809 static void __ATTRS_o_ai
6810 vec_st(vector int __a, int __b, int *__c)
6811 {
6812   __builtin_altivec_stvx(__a, __b, __c);
6813 }
6814
6815 static void __ATTRS_o_ai
6816 vec_st(vector unsigned int __a, int __b, vector unsigned int *__c)
6817 {
6818   __builtin_altivec_stvx((vector int)__a, __b, __c);
6819 }
6820
6821 static void __ATTRS_o_ai
6822 vec_st(vector unsigned int __a, int __b, unsigned int *__c)
6823 {
6824   __builtin_altivec_stvx((vector int)__a, __b, __c);
6825 }
6826
6827 static void __ATTRS_o_ai
6828 vec_st(vector bool int __a, int __b, int *__c)
6829 {
6830   __builtin_altivec_stvx((vector int)__a, __b, __c);
6831 }
6832
6833 static void __ATTRS_o_ai
6834 vec_st(vector bool int __a, int __b, unsigned int *__c)
6835 {
6836   __builtin_altivec_stvx((vector int)__a, __b, __c);
6837 }
6838
6839 static void __ATTRS_o_ai
6840 vec_st(vector bool int __a, int __b, vector bool int *__c)
6841 {
6842   __builtin_altivec_stvx((vector int)__a, __b, __c);
6843 }
6844
6845 static void __ATTRS_o_ai
6846 vec_st(vector float __a, int __b, vector float *__c)
6847 {
6848   __builtin_altivec_stvx((vector int)__a, __b, __c);
6849 }
6850
6851 static void __ATTRS_o_ai
6852 vec_st(vector float __a, int __b, float *__c)
6853 {
6854   __builtin_altivec_stvx((vector int)__a, __b, __c);
6855 }
6856
6857 /* vec_stvx */
6858
6859 static void __ATTRS_o_ai
6860 vec_stvx(vector signed char __a, int __b, vector signed char *__c)
6861 {
6862   __builtin_altivec_stvx((vector int)__a, __b, __c);
6863 }
6864
6865 static void __ATTRS_o_ai
6866 vec_stvx(vector signed char __a, int __b, signed char *__c)
6867 {
6868   __builtin_altivec_stvx((vector int)__a, __b, __c);
6869 }
6870
6871 static void __ATTRS_o_ai
6872 vec_stvx(vector unsigned char __a, int __b, vector unsigned char *__c)
6873 {
6874   __builtin_altivec_stvx((vector int)__a, __b, __c);
6875 }
6876
6877 static void __ATTRS_o_ai
6878 vec_stvx(vector unsigned char __a, int __b, unsigned char *__c)
6879 {
6880   __builtin_altivec_stvx((vector int)__a, __b, __c);
6881 }
6882
6883 static void __ATTRS_o_ai
6884 vec_stvx(vector bool char __a, int __b, signed char *__c)
6885 {
6886   __builtin_altivec_stvx((vector int)__a, __b, __c);
6887 }
6888
6889 static void __ATTRS_o_ai
6890 vec_stvx(vector bool char __a, int __b, unsigned char *__c)
6891 {
6892   __builtin_altivec_stvx((vector int)__a, __b, __c);
6893 }
6894
6895 static void __ATTRS_o_ai
6896 vec_stvx(vector bool char __a, int __b, vector bool char *__c)
6897 {
6898   __builtin_altivec_stvx((vector int)__a, __b, __c);
6899 }
6900
6901 static void __ATTRS_o_ai
6902 vec_stvx(vector short __a, int __b, vector short *__c)
6903 {
6904   __builtin_altivec_stvx((vector int)__a, __b, __c);
6905 }
6906
6907 static void __ATTRS_o_ai
6908 vec_stvx(vector short __a, int __b, short *__c)
6909 {
6910   __builtin_altivec_stvx((vector int)__a, __b, __c);
6911 }
6912
6913 static void __ATTRS_o_ai
6914 vec_stvx(vector unsigned short __a, int __b, vector unsigned short *__c)
6915 {
6916   __builtin_altivec_stvx((vector int)__a, __b, __c);
6917 }
6918
6919 static void __ATTRS_o_ai
6920 vec_stvx(vector unsigned short __a, int __b, unsigned short *__c)
6921 {
6922   __builtin_altivec_stvx((vector int)__a, __b, __c);
6923 }
6924
6925 static void __ATTRS_o_ai
6926 vec_stvx(vector bool short __a, int __b, short *__c)
6927 {
6928   __builtin_altivec_stvx((vector int)__a, __b, __c);
6929 }
6930
6931 static void __ATTRS_o_ai
6932 vec_stvx(vector bool short __a, int __b, unsigned short *__c)
6933 {
6934   __builtin_altivec_stvx((vector int)__a, __b, __c);
6935 }
6936
6937 static void __ATTRS_o_ai
6938 vec_stvx(vector bool short __a, int __b, vector bool short *__c)
6939 {
6940   __builtin_altivec_stvx((vector int)__a, __b, __c);
6941 }
6942
6943 static void __ATTRS_o_ai
6944 vec_stvx(vector pixel __a, int __b, short *__c)
6945 {
6946   __builtin_altivec_stvx((vector int)__a, __b, __c);
6947 }
6948
6949 static void __ATTRS_o_ai
6950 vec_stvx(vector pixel __a, int __b, unsigned short *__c)
6951 {
6952   __builtin_altivec_stvx((vector int)__a, __b, __c);
6953 }
6954
6955 static void __ATTRS_o_ai
6956 vec_stvx(vector pixel __a, int __b, vector pixel *__c)
6957 {
6958   __builtin_altivec_stvx((vector int)__a, __b, __c);
6959 }
6960
6961 static void __ATTRS_o_ai
6962 vec_stvx(vector int __a, int __b, vector int *__c)
6963 {
6964   __builtin_altivec_stvx(__a, __b, __c);
6965 }
6966
6967 static void __ATTRS_o_ai
6968 vec_stvx(vector int __a, int __b, int *__c)
6969 {
6970   __builtin_altivec_stvx(__a, __b, __c);
6971 }
6972
6973 static void __ATTRS_o_ai
6974 vec_stvx(vector unsigned int __a, int __b, vector unsigned int *__c)
6975 {
6976   __builtin_altivec_stvx((vector int)__a, __b, __c);
6977 }
6978
6979 static void __ATTRS_o_ai
6980 vec_stvx(vector unsigned int __a, int __b, unsigned int *__c)
6981 {
6982   __builtin_altivec_stvx((vector int)__a, __b, __c);
6983 }
6984
6985 static void __ATTRS_o_ai
6986 vec_stvx(vector bool int __a, int __b, int *__c)
6987 {
6988   __builtin_altivec_stvx((vector int)__a, __b, __c);
6989 }
6990
6991 static void __ATTRS_o_ai
6992 vec_stvx(vector bool int __a, int __b, unsigned int *__c)
6993 {
6994   __builtin_altivec_stvx((vector int)__a, __b, __c);
6995 }
6996
6997 static void __ATTRS_o_ai
6998 vec_stvx(vector bool int __a, int __b, vector bool int *__c)
6999 {
7000   __builtin_altivec_stvx((vector int)__a, __b, __c);
7001 }
7002
7003 static void __ATTRS_o_ai
7004 vec_stvx(vector float __a, int __b, vector float *__c)
7005 {
7006   __builtin_altivec_stvx((vector int)__a, __b, __c);
7007 }
7008
7009 static void __ATTRS_o_ai
7010 vec_stvx(vector float __a, int __b, float *__c)
7011 {
7012   __builtin_altivec_stvx((vector int)__a, __b, __c);
7013 }
7014
7015 /* vec_ste */
7016
7017 static void __ATTRS_o_ai
7018 vec_ste(vector signed char __a, int __b, signed char *__c)
7019 {
7020   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7021 }
7022
7023 static void __ATTRS_o_ai
7024 vec_ste(vector unsigned char __a, int __b, unsigned char *__c)
7025 {
7026   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7027 }
7028
7029 static void __ATTRS_o_ai
7030 vec_ste(vector bool char __a, int __b, signed char *__c)
7031 {
7032   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7033 }
7034
7035 static void __ATTRS_o_ai
7036 vec_ste(vector bool char __a, int __b, unsigned char *__c)
7037 {
7038   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7039 }
7040
7041 static void __ATTRS_o_ai
7042 vec_ste(vector short __a, int __b, short *__c)
7043 {
7044   __builtin_altivec_stvehx(__a, __b, __c);
7045 }
7046
7047 static void __ATTRS_o_ai
7048 vec_ste(vector unsigned short __a, int __b, unsigned short *__c)
7049 {
7050   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7051 }
7052
7053 static void __ATTRS_o_ai
7054 vec_ste(vector bool short __a, int __b, short *__c)
7055 {
7056   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7057 }
7058
7059 static void __ATTRS_o_ai
7060 vec_ste(vector bool short __a, int __b, unsigned short *__c)
7061 {
7062   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7063 }
7064
7065 static void __ATTRS_o_ai
7066 vec_ste(vector pixel __a, int __b, short *__c)
7067 {
7068   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7069 }
7070
7071 static void __ATTRS_o_ai
7072 vec_ste(vector pixel __a, int __b, unsigned short *__c)
7073 {
7074   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7075 }
7076
7077 static void __ATTRS_o_ai
7078 vec_ste(vector int __a, int __b, int *__c)
7079 {
7080   __builtin_altivec_stvewx(__a, __b, __c);
7081 }
7082
7083 static void __ATTRS_o_ai
7084 vec_ste(vector unsigned int __a, int __b, unsigned int *__c)
7085 {
7086   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7087 }
7088
7089 static void __ATTRS_o_ai
7090 vec_ste(vector bool int __a, int __b, int *__c)
7091 {
7092   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7093 }
7094
7095 static void __ATTRS_o_ai
7096 vec_ste(vector bool int __a, int __b, unsigned int *__c)
7097 {
7098   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7099 }
7100
7101 static void __ATTRS_o_ai
7102 vec_ste(vector float __a, int __b, float *__c)
7103 {
7104   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7105 }
7106
7107 /* vec_stvebx */
7108
7109 static void __ATTRS_o_ai
7110 vec_stvebx(vector signed char __a, int __b, signed char *__c)
7111 {
7112   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7113 }
7114
7115 static void __ATTRS_o_ai
7116 vec_stvebx(vector unsigned char __a, int __b, unsigned char *__c)
7117 {
7118   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7119 }
7120
7121 static void __ATTRS_o_ai
7122 vec_stvebx(vector bool char __a, int __b, signed char *__c)
7123 {
7124   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7125 }
7126
7127 static void __ATTRS_o_ai
7128 vec_stvebx(vector bool char __a, int __b, unsigned char *__c)
7129 {
7130   __builtin_altivec_stvebx((vector char)__a, __b, __c);
7131 }
7132
7133 /* vec_stvehx */
7134
7135 static void __ATTRS_o_ai
7136 vec_stvehx(vector short __a, int __b, short *__c)
7137 {
7138   __builtin_altivec_stvehx(__a, __b, __c);
7139 }
7140
7141 static void __ATTRS_o_ai
7142 vec_stvehx(vector unsigned short __a, int __b, unsigned short *__c)
7143 {
7144   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7145 }
7146
7147 static void __ATTRS_o_ai
7148 vec_stvehx(vector bool short __a, int __b, short *__c)
7149 {
7150   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7151 }
7152
7153 static void __ATTRS_o_ai
7154 vec_stvehx(vector bool short __a, int __b, unsigned short *__c)
7155 {
7156   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7157 }
7158
7159 static void __ATTRS_o_ai
7160 vec_stvehx(vector pixel __a, int __b, short *__c)
7161 {
7162   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7163 }
7164
7165 static void __ATTRS_o_ai
7166 vec_stvehx(vector pixel __a, int __b, unsigned short *__c)
7167 {
7168   __builtin_altivec_stvehx((vector short)__a, __b, __c);
7169 }
7170
7171 /* vec_stvewx */
7172
7173 static void __ATTRS_o_ai
7174 vec_stvewx(vector int __a, int __b, int *__c)
7175 {
7176   __builtin_altivec_stvewx(__a, __b, __c);
7177 }
7178
7179 static void __ATTRS_o_ai
7180 vec_stvewx(vector unsigned int __a, int __b, unsigned int *__c)
7181 {
7182   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7183 }
7184
7185 static void __ATTRS_o_ai
7186 vec_stvewx(vector bool int __a, int __b, int *__c)
7187 {
7188   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7189 }
7190
7191 static void __ATTRS_o_ai
7192 vec_stvewx(vector bool int __a, int __b, unsigned int *__c)
7193 {
7194   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7195 }
7196
7197 static void __ATTRS_o_ai
7198 vec_stvewx(vector float __a, int __b, float *__c)
7199 {
7200   __builtin_altivec_stvewx((vector int)__a, __b, __c);
7201 }
7202
7203 /* vec_stl */
7204
7205 static void __ATTRS_o_ai
7206 vec_stl(vector signed char __a, int __b, vector signed char *__c)
7207 {
7208   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7209 }
7210
7211 static void __ATTRS_o_ai
7212 vec_stl(vector signed char __a, int __b, signed char *__c)
7213 {
7214   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7215 }
7216
7217 static void __ATTRS_o_ai
7218 vec_stl(vector unsigned char __a, int __b, vector unsigned char *__c)
7219 {
7220   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7221 }
7222
7223 static void __ATTRS_o_ai
7224 vec_stl(vector unsigned char __a, int __b, unsigned char *__c)
7225 {
7226   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7227 }
7228
7229 static void __ATTRS_o_ai
7230 vec_stl(vector bool char __a, int __b, signed char *__c)
7231 {
7232   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7233 }
7234
7235 static void __ATTRS_o_ai
7236 vec_stl(vector bool char __a, int __b, unsigned char *__c)
7237 {
7238   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7239 }
7240
7241 static void __ATTRS_o_ai
7242 vec_stl(vector bool char __a, int __b, vector bool char *__c)
7243 {
7244   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7245 }
7246
7247 static void __ATTRS_o_ai
7248 vec_stl(vector short __a, int __b, vector short *__c)
7249 {
7250   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7251 }
7252
7253 static void __ATTRS_o_ai
7254 vec_stl(vector short __a, int __b, short *__c)
7255 {
7256   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7257 }
7258
7259 static void __ATTRS_o_ai
7260 vec_stl(vector unsigned short __a, int __b, vector unsigned short *__c)
7261 {
7262   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7263 }
7264
7265 static void __ATTRS_o_ai
7266 vec_stl(vector unsigned short __a, int __b, unsigned short *__c)
7267 {
7268   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7269 }
7270
7271 static void __ATTRS_o_ai
7272 vec_stl(vector bool short __a, int __b, short *__c)
7273 {
7274   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7275 }
7276
7277 static void __ATTRS_o_ai
7278 vec_stl(vector bool short __a, int __b, unsigned short *__c)
7279 {
7280   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7281 }
7282
7283 static void __ATTRS_o_ai
7284 vec_stl(vector bool short __a, int __b, vector bool short *__c)
7285 {
7286   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7287 }
7288
7289 static void __ATTRS_o_ai
7290 vec_stl(vector pixel __a, int __b, short *__c)
7291 {
7292   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7293 }
7294
7295 static void __ATTRS_o_ai
7296 vec_stl(vector pixel __a, int __b, unsigned short *__c)
7297 {
7298   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7299 }
7300
7301 static void __ATTRS_o_ai
7302 vec_stl(vector pixel __a, int __b, vector pixel *__c)
7303 {
7304   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7305 }
7306
7307 static void __ATTRS_o_ai
7308 vec_stl(vector int __a, int __b, vector int *__c)
7309 {
7310   __builtin_altivec_stvxl(__a, __b, __c);
7311 }
7312
7313 static void __ATTRS_o_ai
7314 vec_stl(vector int __a, int __b, int *__c)
7315 {
7316   __builtin_altivec_stvxl(__a, __b, __c);
7317 }
7318
7319 static void __ATTRS_o_ai
7320 vec_stl(vector unsigned int __a, int __b, vector unsigned int *__c)
7321 {
7322   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7323 }
7324
7325 static void __ATTRS_o_ai
7326 vec_stl(vector unsigned int __a, int __b, unsigned int *__c)
7327 {
7328   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7329 }
7330
7331 static void __ATTRS_o_ai
7332 vec_stl(vector bool int __a, int __b, int *__c)
7333 {
7334   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7335 }
7336
7337 static void __ATTRS_o_ai
7338 vec_stl(vector bool int __a, int __b, unsigned int *__c)
7339 {
7340   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7341 }
7342
7343 static void __ATTRS_o_ai
7344 vec_stl(vector bool int __a, int __b, vector bool int *__c)
7345 {
7346   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7347 }
7348
7349 static void __ATTRS_o_ai
7350 vec_stl(vector float __a, int __b, vector float *__c)
7351 {
7352   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7353 }
7354
7355 static void __ATTRS_o_ai
7356 vec_stl(vector float __a, int __b, float *__c)
7357 {
7358   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7359 }
7360
7361 /* vec_stvxl */
7362
7363 static void __ATTRS_o_ai
7364 vec_stvxl(vector signed char __a, int __b, vector signed char *__c)
7365 {
7366   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7367 }
7368
7369 static void __ATTRS_o_ai
7370 vec_stvxl(vector signed char __a, int __b, signed char *__c)
7371 {
7372   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7373 }
7374
7375 static void __ATTRS_o_ai
7376 vec_stvxl(vector unsigned char __a, int __b, vector unsigned char *__c)
7377 {
7378   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7379 }
7380
7381 static void __ATTRS_o_ai
7382 vec_stvxl(vector unsigned char __a, int __b, unsigned char *__c)
7383 {
7384   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7385 }
7386
7387 static void __ATTRS_o_ai
7388 vec_stvxl(vector bool char __a, int __b, signed char *__c)
7389 {
7390   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7391 }
7392
7393 static void __ATTRS_o_ai
7394 vec_stvxl(vector bool char __a, int __b, unsigned char *__c)
7395 {
7396   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7397 }
7398
7399 static void __ATTRS_o_ai
7400 vec_stvxl(vector bool char __a, int __b, vector bool char *__c)
7401 {
7402   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7403 }
7404
7405 static void __ATTRS_o_ai
7406 vec_stvxl(vector short __a, int __b, vector short *__c)
7407 {
7408   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7409 }
7410
7411 static void __ATTRS_o_ai
7412 vec_stvxl(vector short __a, int __b, short *__c)
7413 {
7414   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7415 }
7416
7417 static void __ATTRS_o_ai
7418 vec_stvxl(vector unsigned short __a, int __b, vector unsigned short *__c)
7419 {
7420   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7421 }
7422
7423 static void __ATTRS_o_ai
7424 vec_stvxl(vector unsigned short __a, int __b, unsigned short *__c)
7425 {
7426   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7427 }
7428
7429 static void __ATTRS_o_ai
7430 vec_stvxl(vector bool short __a, int __b, short *__c)
7431 {
7432   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7433 }
7434
7435 static void __ATTRS_o_ai
7436 vec_stvxl(vector bool short __a, int __b, unsigned short *__c)
7437 {
7438   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7439 }
7440
7441 static void __ATTRS_o_ai
7442 vec_stvxl(vector bool short __a, int __b, vector bool short *__c)
7443 {
7444   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7445 }
7446
7447 static void __ATTRS_o_ai
7448 vec_stvxl(vector pixel __a, int __b, short *__c)
7449 {
7450   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7451 }
7452
7453 static void __ATTRS_o_ai
7454 vec_stvxl(vector pixel __a, int __b, unsigned short *__c)
7455 {
7456   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7457 }
7458
7459 static void __ATTRS_o_ai
7460 vec_stvxl(vector pixel __a, int __b, vector pixel *__c)
7461 {
7462   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7463 }
7464
7465 static void __ATTRS_o_ai
7466 vec_stvxl(vector int __a, int __b, vector int *__c)
7467 {
7468   __builtin_altivec_stvxl(__a, __b, __c);
7469 }
7470
7471 static void __ATTRS_o_ai
7472 vec_stvxl(vector int __a, int __b, int *__c)
7473 {
7474   __builtin_altivec_stvxl(__a, __b, __c);
7475 }
7476
7477 static void __ATTRS_o_ai
7478 vec_stvxl(vector unsigned int __a, int __b, vector unsigned int *__c)
7479 {
7480   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7481 }
7482
7483 static void __ATTRS_o_ai
7484 vec_stvxl(vector unsigned int __a, int __b, unsigned int *__c)
7485 {
7486   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7487 }
7488
7489 static void __ATTRS_o_ai
7490 vec_stvxl(vector bool int __a, int __b, int *__c)
7491 {
7492   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7493 }
7494
7495 static void __ATTRS_o_ai
7496 vec_stvxl(vector bool int __a, int __b, unsigned int *__c)
7497 {
7498   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7499 }
7500
7501 static void __ATTRS_o_ai
7502 vec_stvxl(vector bool int __a, int __b, vector bool int *__c)
7503 {
7504   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7505 }
7506
7507 static void __ATTRS_o_ai
7508 vec_stvxl(vector float __a, int __b, vector float *__c)
7509 {
7510   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7511 }
7512
7513 static void __ATTRS_o_ai
7514 vec_stvxl(vector float __a, int __b, float *__c)
7515 {
7516   __builtin_altivec_stvxl((vector int)__a, __b, __c);
7517 }
7518
7519 /* vec_sub */
7520
7521 static vector signed char __ATTRS_o_ai
7522 vec_sub(vector signed char __a, vector signed char __b)
7523 {
7524   return __a - __b;
7525 }
7526
7527 static vector signed char __ATTRS_o_ai
7528 vec_sub(vector bool char __a, vector signed char __b)
7529 {
7530   return (vector signed char)__a - __b;
7531 }
7532
7533 static vector signed char __ATTRS_o_ai
7534 vec_sub(vector signed char __a, vector bool char __b)
7535 {
7536   return __a - (vector signed char)__b;
7537 }
7538
7539 static vector unsigned char __ATTRS_o_ai
7540 vec_sub(vector unsigned char __a, vector unsigned char __b)
7541 {
7542   return __a - __b;
7543 }
7544
7545 static vector unsigned char __ATTRS_o_ai
7546 vec_sub(vector bool char __a, vector unsigned char __b)
7547 {
7548   return (vector unsigned char)__a - __b;
7549 }
7550
7551 static vector unsigned char __ATTRS_o_ai
7552 vec_sub(vector unsigned char __a, vector bool char __b)
7553 {
7554   return __a - (vector unsigned char)__b;
7555 }
7556
7557 static vector short __ATTRS_o_ai
7558 vec_sub(vector short __a, vector short __b)
7559 {
7560   return __a - __b;
7561 }
7562
7563 static vector short __ATTRS_o_ai
7564 vec_sub(vector bool short __a, vector short __b)
7565 {
7566   return (vector short)__a - __b;
7567 }
7568
7569 static vector short __ATTRS_o_ai
7570 vec_sub(vector short __a, vector bool short __b)
7571 {
7572   return __a - (vector short)__b;
7573 }
7574
7575 static vector unsigned short __ATTRS_o_ai
7576 vec_sub(vector unsigned short __a, vector unsigned short __b)
7577 {
7578   return __a - __b;
7579 }
7580
7581 static vector unsigned short __ATTRS_o_ai
7582 vec_sub(vector bool short __a, vector unsigned short __b)
7583 {
7584   return (vector unsigned short)__a - __b;
7585 }
7586
7587 static vector unsigned short __ATTRS_o_ai
7588 vec_sub(vector unsigned short __a, vector bool short __b)
7589 {
7590   return __a - (vector unsigned short)__b;
7591 }
7592
7593 static vector int __ATTRS_o_ai
7594 vec_sub(vector int __a, vector int __b)
7595 {
7596   return __a - __b;
7597 }
7598
7599 static vector int __ATTRS_o_ai
7600 vec_sub(vector bool int __a, vector int __b)
7601 {
7602   return (vector int)__a - __b;
7603 }
7604
7605 static vector int __ATTRS_o_ai
7606 vec_sub(vector int __a, vector bool int __b)
7607 {
7608   return __a - (vector int)__b;
7609 }
7610
7611 static vector unsigned int __ATTRS_o_ai
7612 vec_sub(vector unsigned int __a, vector unsigned int __b)
7613 {
7614   return __a - __b;
7615 }
7616
7617 static vector unsigned int __ATTRS_o_ai
7618 vec_sub(vector bool int __a, vector unsigned int __b)
7619 {
7620   return (vector unsigned int)__a - __b;
7621 }
7622
7623 static vector unsigned int __ATTRS_o_ai
7624 vec_sub(vector unsigned int __a, vector bool int __b)
7625 {
7626   return __a - (vector unsigned int)__b;
7627 }
7628
7629 static vector float __ATTRS_o_ai
7630 vec_sub(vector float __a, vector float __b)
7631 {
7632   return __a - __b;
7633 }
7634
7635 /* vec_vsububm */
7636
7637 #define __builtin_altivec_vsububm vec_vsububm
7638
7639 static vector signed char __ATTRS_o_ai
7640 vec_vsububm(vector signed char __a, vector signed char __b)
7641 {
7642   return __a - __b;
7643 }
7644
7645 static vector signed char __ATTRS_o_ai
7646 vec_vsububm(vector bool char __a, vector signed char __b)
7647 {
7648   return (vector signed char)__a - __b;
7649 }
7650
7651 static vector signed char __ATTRS_o_ai
7652 vec_vsububm(vector signed char __a, vector bool char __b)
7653 {
7654   return __a - (vector signed char)__b;
7655 }
7656
7657 static vector unsigned char __ATTRS_o_ai
7658 vec_vsububm(vector unsigned char __a, vector unsigned char __b)
7659 {
7660   return __a - __b;
7661 }
7662
7663 static vector unsigned char __ATTRS_o_ai
7664 vec_vsububm(vector bool char __a, vector unsigned char __b)
7665 {
7666   return (vector unsigned char)__a - __b;
7667 }
7668
7669 static vector unsigned char __ATTRS_o_ai
7670 vec_vsububm(vector unsigned char __a, vector bool char __b)
7671 {
7672   return __a - (vector unsigned char)__b;
7673 }
7674
7675 /* vec_vsubuhm */
7676
7677 #define __builtin_altivec_vsubuhm vec_vsubuhm
7678
7679 static vector short __ATTRS_o_ai
7680 vec_vsubuhm(vector short __a, vector short __b)
7681 {
7682   return __a - __b;
7683 }
7684
7685 static vector short __ATTRS_o_ai
7686 vec_vsubuhm(vector bool short __a, vector short __b)
7687 {
7688   return (vector short)__a - __b;
7689 }
7690
7691 static vector short __ATTRS_o_ai
7692 vec_vsubuhm(vector short __a, vector bool short __b)
7693 {
7694   return __a - (vector short)__b;
7695 }
7696
7697 static vector unsigned short __ATTRS_o_ai
7698 vec_vsubuhm(vector unsigned short __a, vector unsigned short __b)
7699 {
7700   return __a - __b;
7701 }
7702
7703 static vector unsigned short __ATTRS_o_ai
7704 vec_vsubuhm(vector bool short __a, vector unsigned short __b)
7705 {
7706   return (vector unsigned short)__a - __b;
7707 }
7708
7709 static vector unsigned short __ATTRS_o_ai
7710 vec_vsubuhm(vector unsigned short __a, vector bool short __b)
7711 {
7712   return __a - (vector unsigned short)__b;
7713 }
7714
7715 /* vec_vsubuwm */
7716
7717 #define __builtin_altivec_vsubuwm vec_vsubuwm
7718
7719 static vector int __ATTRS_o_ai
7720 vec_vsubuwm(vector int __a, vector int __b)
7721 {
7722   return __a - __b;
7723 }
7724
7725 static vector int __ATTRS_o_ai
7726 vec_vsubuwm(vector bool int __a, vector int __b)
7727 {
7728   return (vector int)__a - __b;
7729 }
7730
7731 static vector int __ATTRS_o_ai
7732 vec_vsubuwm(vector int __a, vector bool int __b)
7733 {
7734   return __a - (vector int)__b;
7735 }
7736
7737 static vector unsigned int __ATTRS_o_ai
7738 vec_vsubuwm(vector unsigned int __a, vector unsigned int __b)
7739 {
7740   return __a - __b;
7741 }
7742
7743 static vector unsigned int __ATTRS_o_ai
7744 vec_vsubuwm(vector bool int __a, vector unsigned int __b)
7745 {
7746   return (vector unsigned int)__a - __b;
7747 }
7748
7749 static vector unsigned int __ATTRS_o_ai
7750 vec_vsubuwm(vector unsigned int __a, vector bool int __b)
7751 {
7752   return __a - (vector unsigned int)__b;
7753 }
7754
7755 /* vec_vsubfp */
7756
7757 #define __builtin_altivec_vsubfp vec_vsubfp
7758
7759 static vector float __attribute__((__always_inline__))
7760 vec_vsubfp(vector float __a, vector float __b)
7761 {
7762   return __a - __b;
7763 }
7764
7765 /* vec_subc */
7766
7767 static vector unsigned int __attribute__((__always_inline__))
7768 vec_subc(vector unsigned int __a, vector unsigned int __b)
7769 {
7770   return __builtin_altivec_vsubcuw(__a, __b);
7771 }
7772
7773 /* vec_vsubcuw */
7774
7775 static vector unsigned int __attribute__((__always_inline__))
7776 vec_vsubcuw(vector unsigned int __a, vector unsigned int __b)
7777 {
7778   return __builtin_altivec_vsubcuw(__a, __b);
7779 }
7780
7781 /* vec_subs */
7782
7783 static vector signed char __ATTRS_o_ai
7784 vec_subs(vector signed char __a, vector signed char __b)
7785 {
7786   return __builtin_altivec_vsubsbs(__a, __b);
7787 }
7788
7789 static vector signed char __ATTRS_o_ai
7790 vec_subs(vector bool char __a, vector signed char __b)
7791 {
7792   return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
7793 }
7794
7795 static vector signed char __ATTRS_o_ai
7796 vec_subs(vector signed char __a, vector bool char __b)
7797 {
7798   return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
7799 }
7800
7801 static vector unsigned char __ATTRS_o_ai
7802 vec_subs(vector unsigned char __a, vector unsigned char __b)
7803 {
7804   return __builtin_altivec_vsububs(__a, __b);
7805 }
7806
7807 static vector unsigned char __ATTRS_o_ai
7808 vec_subs(vector bool char __a, vector unsigned char __b)
7809 {
7810   return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
7811 }
7812
7813 static vector unsigned char __ATTRS_o_ai
7814 vec_subs(vector unsigned char __a, vector bool char __b)
7815 {
7816   return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
7817 }
7818
7819 static vector short __ATTRS_o_ai
7820 vec_subs(vector short __a, vector short __b)
7821 {
7822   return __builtin_altivec_vsubshs(__a, __b);
7823 }
7824
7825 static vector short __ATTRS_o_ai
7826 vec_subs(vector bool short __a, vector short __b)
7827 {
7828   return __builtin_altivec_vsubshs((vector short)__a, __b);
7829 }
7830
7831 static vector short __ATTRS_o_ai
7832 vec_subs(vector short __a, vector bool short __b)
7833 {
7834   return __builtin_altivec_vsubshs(__a, (vector short)__b);
7835 }
7836
7837 static vector unsigned short __ATTRS_o_ai
7838 vec_subs(vector unsigned short __a, vector unsigned short __b)
7839 {
7840   return __builtin_altivec_vsubuhs(__a, __b);
7841 }
7842
7843 static vector unsigned short __ATTRS_o_ai
7844 vec_subs(vector bool short __a, vector unsigned short __b)
7845 {
7846   return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
7847 }
7848
7849 static vector unsigned short __ATTRS_o_ai
7850 vec_subs(vector unsigned short __a, vector bool short __b)
7851 {
7852   return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
7853 }
7854
7855 static vector int __ATTRS_o_ai
7856 vec_subs(vector int __a, vector int __b)
7857 {
7858   return __builtin_altivec_vsubsws(__a, __b);
7859 }
7860
7861 static vector int __ATTRS_o_ai
7862 vec_subs(vector bool int __a, vector int __b)
7863 {
7864   return __builtin_altivec_vsubsws((vector int)__a, __b);
7865 }
7866
7867 static vector int __ATTRS_o_ai
7868 vec_subs(vector int __a, vector bool int __b)
7869 {
7870   return __builtin_altivec_vsubsws(__a, (vector int)__b);
7871 }
7872
7873 static vector unsigned int __ATTRS_o_ai
7874 vec_subs(vector unsigned int __a, vector unsigned int __b)
7875 {
7876   return __builtin_altivec_vsubuws(__a, __b);
7877 }
7878
7879 static vector unsigned int __ATTRS_o_ai
7880 vec_subs(vector bool int __a, vector unsigned int __b)
7881 {
7882   return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
7883 }
7884
7885 static vector unsigned int __ATTRS_o_ai
7886 vec_subs(vector unsigned int __a, vector bool int __b)
7887 {
7888   return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
7889 }
7890
7891 /* vec_vsubsbs */
7892
7893 static vector signed char __ATTRS_o_ai
7894 vec_vsubsbs(vector signed char __a, vector signed char __b)
7895 {
7896   return __builtin_altivec_vsubsbs(__a, __b);
7897 }
7898
7899 static vector signed char __ATTRS_o_ai
7900 vec_vsubsbs(vector bool char __a, vector signed char __b)
7901 {
7902   return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
7903 }
7904
7905 static vector signed char __ATTRS_o_ai
7906 vec_vsubsbs(vector signed char __a, vector bool char __b)
7907 {
7908   return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
7909 }
7910
7911 /* vec_vsububs */
7912
7913 static vector unsigned char __ATTRS_o_ai
7914 vec_vsububs(vector unsigned char __a, vector unsigned char __b)
7915 {
7916   return __builtin_altivec_vsububs(__a, __b);
7917 }
7918
7919 static vector unsigned char __ATTRS_o_ai
7920 vec_vsububs(vector bool char __a, vector unsigned char __b)
7921 {
7922   return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
7923 }
7924
7925 static vector unsigned char __ATTRS_o_ai
7926 vec_vsububs(vector unsigned char __a, vector bool char __b)
7927 {
7928   return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
7929 }
7930
7931 /* vec_vsubshs */
7932
7933 static vector short __ATTRS_o_ai
7934 vec_vsubshs(vector short __a, vector short __b)
7935 {
7936   return __builtin_altivec_vsubshs(__a, __b);
7937 }
7938
7939 static vector short __ATTRS_o_ai
7940 vec_vsubshs(vector bool short __a, vector short __b)
7941 {
7942   return __builtin_altivec_vsubshs((vector short)__a, __b);
7943 }
7944
7945 static vector short __ATTRS_o_ai
7946 vec_vsubshs(vector short __a, vector bool short __b)
7947 {
7948   return __builtin_altivec_vsubshs(__a, (vector short)__b);
7949 }
7950
7951 /* vec_vsubuhs */
7952
7953 static vector unsigned short __ATTRS_o_ai
7954 vec_vsubuhs(vector unsigned short __a, vector unsigned short __b)
7955 {
7956   return __builtin_altivec_vsubuhs(__a, __b);
7957 }
7958
7959 static vector unsigned short __ATTRS_o_ai
7960 vec_vsubuhs(vector bool short __a, vector unsigned short __b)
7961 {
7962   return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
7963 }
7964
7965 static vector unsigned short __ATTRS_o_ai
7966 vec_vsubuhs(vector unsigned short __a, vector bool short __b)
7967 {
7968   return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
7969 }
7970
7971 /* vec_vsubsws */
7972
7973 static vector int __ATTRS_o_ai
7974 vec_vsubsws(vector int __a, vector int __b)
7975 {
7976   return __builtin_altivec_vsubsws(__a, __b);
7977 }
7978
7979 static vector int __ATTRS_o_ai
7980 vec_vsubsws(vector bool int __a, vector int __b)
7981 {
7982   return __builtin_altivec_vsubsws((vector int)__a, __b);
7983 }
7984
7985 static vector int __ATTRS_o_ai
7986 vec_vsubsws(vector int __a, vector bool int __b)
7987 {
7988   return __builtin_altivec_vsubsws(__a, (vector int)__b);
7989 }
7990
7991 /* vec_vsubuws */
7992
7993 static vector unsigned int __ATTRS_o_ai
7994 vec_vsubuws(vector unsigned int __a, vector unsigned int __b)
7995 {
7996   return __builtin_altivec_vsubuws(__a, __b);
7997 }
7998
7999 static vector unsigned int __ATTRS_o_ai
8000 vec_vsubuws(vector bool int __a, vector unsigned int __b)
8001 {
8002   return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
8003 }
8004
8005 static vector unsigned int __ATTRS_o_ai
8006 vec_vsubuws(vector unsigned int __a, vector bool int __b)
8007 {
8008   return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
8009 }
8010
8011 /* vec_sum4s */
8012
8013 static vector int __ATTRS_o_ai
8014 vec_sum4s(vector signed char __a, vector int __b)
8015 {
8016   return __builtin_altivec_vsum4sbs(__a, __b);
8017 }
8018
8019 static vector unsigned int __ATTRS_o_ai
8020 vec_sum4s(vector unsigned char __a, vector unsigned int __b)
8021 {
8022   return __builtin_altivec_vsum4ubs(__a, __b);
8023 }
8024
8025 static vector int __ATTRS_o_ai
8026 vec_sum4s(vector signed short __a, vector int __b)
8027 {
8028   return __builtin_altivec_vsum4shs(__a, __b);
8029 }
8030
8031 /* vec_vsum4sbs */
8032
8033 static vector int __attribute__((__always_inline__))
8034 vec_vsum4sbs(vector signed char __a, vector int __b)
8035 {
8036   return __builtin_altivec_vsum4sbs(__a, __b);
8037 }
8038
8039 /* vec_vsum4ubs */
8040
8041 static vector unsigned int __attribute__((__always_inline__))
8042 vec_vsum4ubs(vector unsigned char __a, vector unsigned int __b)
8043 {
8044   return __builtin_altivec_vsum4ubs(__a, __b);
8045 }
8046
8047 /* vec_vsum4shs */
8048
8049 static vector int __attribute__((__always_inline__))
8050 vec_vsum4shs(vector signed short __a, vector int __b)
8051 {
8052   return __builtin_altivec_vsum4shs(__a, __b);
8053 }
8054
8055 /* vec_sum2s */
8056
8057 static vector signed int __attribute__((__always_inline__))
8058 vec_sum2s(vector int __a, vector int __b)
8059 {
8060   return __builtin_altivec_vsum2sws(__a, __b);
8061 }
8062
8063 /* vec_vsum2sws */
8064
8065 static vector signed int __attribute__((__always_inline__))
8066 vec_vsum2sws(vector int __a, vector int __b)
8067 {
8068   return __builtin_altivec_vsum2sws(__a, __b);
8069 }
8070
8071 /* vec_sums */
8072
8073 static vector signed int __attribute__((__always_inline__))
8074 vec_sums(vector signed int __a, vector signed int __b)
8075 {
8076   return __builtin_altivec_vsumsws(__a, __b);
8077 }
8078
8079 /* vec_vsumsws */
8080
8081 static vector signed int __attribute__((__always_inline__))
8082 vec_vsumsws(vector signed int __a, vector signed int __b)
8083 {
8084   return __builtin_altivec_vsumsws(__a, __b);
8085 }
8086
8087 /* vec_trunc */
8088
8089 static vector float __attribute__((__always_inline__))
8090 vec_trunc(vector float __a)
8091 {
8092   return __builtin_altivec_vrfiz(__a);
8093 }
8094
8095 /* vec_vrfiz */
8096
8097 static vector float __attribute__((__always_inline__))
8098 vec_vrfiz(vector float __a)
8099 {
8100   return __builtin_altivec_vrfiz(__a);
8101 }
8102
8103 /* vec_unpackh */
8104
8105 static vector short __ATTRS_o_ai
8106 vec_unpackh(vector signed char __a)
8107 {
8108   return __builtin_altivec_vupkhsb((vector char)__a);
8109 }
8110
8111 static vector bool short __ATTRS_o_ai
8112 vec_unpackh(vector bool char __a)
8113 {
8114   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
8115 }
8116
8117 static vector int __ATTRS_o_ai
8118 vec_unpackh(vector short __a)
8119 {
8120   return __builtin_altivec_vupkhsh(__a);
8121 }
8122
8123 static vector bool int __ATTRS_o_ai
8124 vec_unpackh(vector bool short __a)
8125 {
8126   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
8127 }
8128
8129 static vector unsigned int __ATTRS_o_ai
8130 vec_unpackh(vector pixel __a)
8131 {
8132   return (vector unsigned int)__builtin_altivec_vupkhsh((vector short)__a);
8133 }
8134
8135 /* vec_vupkhsb */
8136
8137 static vector short __ATTRS_o_ai
8138 vec_vupkhsb(vector signed char __a)
8139 {
8140   return __builtin_altivec_vupkhsb((vector char)__a);
8141 }
8142
8143 static vector bool short __ATTRS_o_ai
8144 vec_vupkhsb(vector bool char __a)
8145 {
8146   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
8147 }
8148
8149 /* vec_vupkhsh */
8150
8151 static vector int __ATTRS_o_ai
8152 vec_vupkhsh(vector short __a)
8153 {
8154   return __builtin_altivec_vupkhsh(__a);
8155 }
8156
8157 static vector bool int __ATTRS_o_ai
8158 vec_vupkhsh(vector bool short __a)
8159 {
8160   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
8161 }
8162
8163 static vector unsigned int __ATTRS_o_ai
8164 vec_vupkhsh(vector pixel __a)
8165 {
8166   return (vector unsigned int)__builtin_altivec_vupkhsh((vector short)__a);
8167 }
8168
8169 /* vec_unpackl */
8170
8171 static vector short __ATTRS_o_ai
8172 vec_unpackl(vector signed char __a)
8173 {
8174   return __builtin_altivec_vupklsb((vector char)__a);
8175 }
8176
8177 static vector bool short __ATTRS_o_ai
8178 vec_unpackl(vector bool char __a)
8179 {
8180   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
8181 }
8182
8183 static vector int __ATTRS_o_ai
8184 vec_unpackl(vector short __a)
8185 {
8186   return __builtin_altivec_vupklsh(__a);
8187 }
8188
8189 static vector bool int __ATTRS_o_ai
8190 vec_unpackl(vector bool short __a)
8191 {
8192   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
8193 }
8194
8195 static vector unsigned int __ATTRS_o_ai
8196 vec_unpackl(vector pixel __a)
8197 {
8198   return (vector unsigned int)__builtin_altivec_vupklsh((vector short)__a);
8199 }
8200
8201 /* vec_vupklsb */
8202
8203 static vector short __ATTRS_o_ai
8204 vec_vupklsb(vector signed char __a)
8205 {
8206   return __builtin_altivec_vupklsb((vector char)__a);
8207 }
8208
8209 static vector bool short __ATTRS_o_ai
8210 vec_vupklsb(vector bool char __a)
8211 {
8212   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
8213 }
8214
8215 /* vec_vupklsh */
8216
8217 static vector int __ATTRS_o_ai
8218 vec_vupklsh(vector short __a)
8219 {
8220   return __builtin_altivec_vupklsh(__a);
8221 }
8222
8223 static vector bool int __ATTRS_o_ai
8224 vec_vupklsh(vector bool short __a)
8225 {
8226   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
8227 }
8228
8229 static vector unsigned int __ATTRS_o_ai
8230 vec_vupklsh(vector pixel __a)
8231 {
8232   return (vector unsigned int)__builtin_altivec_vupklsh((vector short)__a);
8233 }
8234
8235 /* vec_xor */
8236
8237 #define __builtin_altivec_vxor vec_xor
8238
8239 static vector signed char __ATTRS_o_ai
8240 vec_xor(vector signed char __a, vector signed char __b)
8241 {
8242   return __a ^ __b;
8243 }
8244
8245 static vector signed char __ATTRS_o_ai
8246 vec_xor(vector bool char __a, vector signed char __b)
8247 {
8248   return (vector signed char)__a ^ __b;
8249 }
8250
8251 static vector signed char __ATTRS_o_ai
8252 vec_xor(vector signed char __a, vector bool char __b)
8253 {
8254   return __a ^ (vector signed char)__b;
8255 }
8256
8257 static vector unsigned char __ATTRS_o_ai
8258 vec_xor(vector unsigned char __a, vector unsigned char __b)
8259 {
8260   return __a ^ __b;
8261 }
8262
8263 static vector unsigned char __ATTRS_o_ai
8264 vec_xor(vector bool char __a, vector unsigned char __b)
8265 {
8266   return (vector unsigned char)__a ^ __b;
8267 }
8268
8269 static vector unsigned char __ATTRS_o_ai
8270 vec_xor(vector unsigned char __a, vector bool char __b)
8271 {
8272   return __a ^ (vector unsigned char)__b;
8273 }
8274
8275 static vector bool char __ATTRS_o_ai
8276 vec_xor(vector bool char __a, vector bool char __b)
8277 {
8278   return __a ^ __b;
8279 }
8280
8281 static vector short __ATTRS_o_ai
8282 vec_xor(vector short __a, vector short __b)
8283 {
8284   return __a ^ __b;
8285 }
8286
8287 static vector short __ATTRS_o_ai
8288 vec_xor(vector bool short __a, vector short __b)
8289 {
8290   return (vector short)__a ^ __b;
8291 }
8292
8293 static vector short __ATTRS_o_ai
8294 vec_xor(vector short __a, vector bool short __b)
8295 {
8296   return __a ^ (vector short)__b;
8297 }
8298
8299 static vector unsigned short __ATTRS_o_ai
8300 vec_xor(vector unsigned short __a, vector unsigned short __b)
8301 {
8302   return __a ^ __b;
8303 }
8304
8305 static vector unsigned short __ATTRS_o_ai
8306 vec_xor(vector bool short __a, vector unsigned short __b)
8307 {
8308   return (vector unsigned short)__a ^ __b;
8309 }
8310
8311 static vector unsigned short __ATTRS_o_ai
8312 vec_xor(vector unsigned short __a, vector bool short __b)
8313 {
8314   return __a ^ (vector unsigned short)__b;
8315 }
8316
8317 static vector bool short __ATTRS_o_ai
8318 vec_xor(vector bool short __a, vector bool short __b)
8319 {
8320   return __a ^ __b;
8321 }
8322
8323 static vector int __ATTRS_o_ai
8324 vec_xor(vector int __a, vector int __b)
8325 {
8326   return __a ^ __b;
8327 }
8328
8329 static vector int __ATTRS_o_ai
8330 vec_xor(vector bool int __a, vector int __b)
8331 {
8332   return (vector int)__a ^ __b;
8333 }
8334
8335 static vector int __ATTRS_o_ai
8336 vec_xor(vector int __a, vector bool int __b)
8337 {
8338   return __a ^ (vector int)__b;
8339 }
8340
8341 static vector unsigned int __ATTRS_o_ai
8342 vec_xor(vector unsigned int __a, vector unsigned int __b)
8343 {
8344   return __a ^ __b;
8345 }
8346
8347 static vector unsigned int __ATTRS_o_ai
8348 vec_xor(vector bool int __a, vector unsigned int __b)
8349 {
8350   return (vector unsigned int)__a ^ __b;
8351 }
8352
8353 static vector unsigned int __ATTRS_o_ai
8354 vec_xor(vector unsigned int __a, vector bool int __b)
8355 {
8356   return __a ^ (vector unsigned int)__b;
8357 }
8358
8359 static vector bool int __ATTRS_o_ai
8360 vec_xor(vector bool int __a, vector bool int __b)
8361 {
8362   return __a ^ __b;
8363 }
8364
8365 static vector float __ATTRS_o_ai
8366 vec_xor(vector float __a, vector float __b)
8367 {
8368   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
8369   return (vector float)__res;
8370 }
8371
8372 static vector float __ATTRS_o_ai
8373 vec_xor(vector bool int __a, vector float __b)
8374 {
8375   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
8376   return (vector float)__res;
8377 }
8378
8379 static vector float __ATTRS_o_ai
8380 vec_xor(vector float __a, vector bool int __b)
8381 {
8382   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
8383   return (vector float)__res;
8384 }
8385
8386 /* vec_vxor */
8387
8388 static vector signed char __ATTRS_o_ai
8389 vec_vxor(vector signed char __a, vector signed char __b)
8390 {
8391   return __a ^ __b;
8392 }
8393
8394 static vector signed char __ATTRS_o_ai
8395 vec_vxor(vector bool char __a, vector signed char __b)
8396 {
8397   return (vector signed char)__a ^ __b;
8398 }
8399
8400 static vector signed char __ATTRS_o_ai
8401 vec_vxor(vector signed char __a, vector bool char __b)
8402 {
8403   return __a ^ (vector signed char)__b;
8404 }
8405
8406 static vector unsigned char __ATTRS_o_ai
8407 vec_vxor(vector unsigned char __a, vector unsigned char __b)
8408 {
8409   return __a ^ __b;
8410 }
8411
8412 static vector unsigned char __ATTRS_o_ai
8413 vec_vxor(vector bool char __a, vector unsigned char __b)
8414 {
8415   return (vector unsigned char)__a ^ __b;
8416 }
8417
8418 static vector unsigned char __ATTRS_o_ai
8419 vec_vxor(vector unsigned char __a, vector bool char __b)
8420 {
8421   return __a ^ (vector unsigned char)__b;
8422 }
8423
8424 static vector bool char __ATTRS_o_ai
8425 vec_vxor(vector bool char __a, vector bool char __b)
8426 {
8427   return __a ^ __b;
8428 }
8429
8430 static vector short __ATTRS_o_ai
8431 vec_vxor(vector short __a, vector short __b)
8432 {
8433   return __a ^ __b;
8434 }
8435
8436 static vector short __ATTRS_o_ai
8437 vec_vxor(vector bool short __a, vector short __b)
8438 {
8439   return (vector short)__a ^ __b;
8440 }
8441
8442 static vector short __ATTRS_o_ai
8443 vec_vxor(vector short __a, vector bool short __b)
8444 {
8445   return __a ^ (vector short)__b;
8446 }
8447
8448 static vector unsigned short __ATTRS_o_ai
8449 vec_vxor(vector unsigned short __a, vector unsigned short __b)
8450 {
8451   return __a ^ __b;
8452 }
8453
8454 static vector unsigned short __ATTRS_o_ai
8455 vec_vxor(vector bool short __a, vector unsigned short __b)
8456 {
8457   return (vector unsigned short)__a ^ __b;
8458 }
8459
8460 static vector unsigned short __ATTRS_o_ai
8461 vec_vxor(vector unsigned short __a, vector bool short __b)
8462 {
8463   return __a ^ (vector unsigned short)__b;
8464 }
8465
8466 static vector bool short __ATTRS_o_ai
8467 vec_vxor(vector bool short __a, vector bool short __b)
8468 {
8469   return __a ^ __b;
8470 }
8471
8472 static vector int __ATTRS_o_ai
8473 vec_vxor(vector int __a, vector int __b)
8474 {
8475   return __a ^ __b;
8476 }
8477
8478 static vector int __ATTRS_o_ai
8479 vec_vxor(vector bool int __a, vector int __b)
8480 {
8481   return (vector int)__a ^ __b;
8482 }
8483
8484 static vector int __ATTRS_o_ai
8485 vec_vxor(vector int __a, vector bool int __b)
8486 {
8487   return __a ^ (vector int)__b;
8488 }
8489
8490 static vector unsigned int __ATTRS_o_ai
8491 vec_vxor(vector unsigned int __a, vector unsigned int __b)
8492 {
8493   return __a ^ __b;
8494 }
8495
8496 static vector unsigned int __ATTRS_o_ai
8497 vec_vxor(vector bool int __a, vector unsigned int __b)
8498 {
8499   return (vector unsigned int)__a ^ __b;
8500 }
8501
8502 static vector unsigned int __ATTRS_o_ai
8503 vec_vxor(vector unsigned int __a, vector bool int __b)
8504 {
8505   return __a ^ (vector unsigned int)__b;
8506 }
8507
8508 static vector bool int __ATTRS_o_ai
8509 vec_vxor(vector bool int __a, vector bool int __b)
8510 {
8511   return __a ^ __b;
8512 }
8513
8514 static vector float __ATTRS_o_ai
8515 vec_vxor(vector float __a, vector float __b)
8516 {
8517   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
8518   return (vector float)__res;
8519 }
8520
8521 static vector float __ATTRS_o_ai
8522 vec_vxor(vector bool int __a, vector float __b)
8523 {
8524   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
8525   return (vector float)__res;
8526 }
8527
8528 static vector float __ATTRS_o_ai
8529 vec_vxor(vector float __a, vector bool int __b)
8530 {
8531   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
8532   return (vector float)__res;
8533 }
8534
8535 /* ------------------------ extensions for CBEA ----------------------------- */
8536
8537 /* vec_extract */
8538
8539 static signed char __ATTRS_o_ai
8540 vec_extract(vector signed char __a, int __b)
8541 {
8542   return __a[__b];
8543 }
8544
8545 static unsigned char __ATTRS_o_ai
8546 vec_extract(vector unsigned char __a, int __b)
8547 {
8548   return __a[__b];
8549 }
8550
8551 static short __ATTRS_o_ai
8552 vec_extract(vector short __a, int __b)
8553 {
8554   return __a[__b];
8555 }
8556
8557 static unsigned short __ATTRS_o_ai
8558 vec_extract(vector unsigned short __a, int __b)
8559 {
8560   return __a[__b];
8561 }
8562
8563 static int __ATTRS_o_ai
8564 vec_extract(vector int __a, int __b)
8565 {
8566   return __a[__b];
8567 }
8568
8569 static unsigned int __ATTRS_o_ai
8570 vec_extract(vector unsigned int __a, int __b)
8571 {
8572   return __a[__b];
8573 }
8574
8575 static float __ATTRS_o_ai
8576 vec_extract(vector float __a, int __b)
8577 {
8578   return __a[__b];
8579 }
8580
8581 /* vec_insert */
8582
8583 static vector signed char __ATTRS_o_ai
8584 vec_insert(signed char __a, vector signed char __b, int __c)
8585 {
8586   __b[__c] = __a;
8587   return __b;
8588 }
8589
8590 static vector unsigned char __ATTRS_o_ai
8591 vec_insert(unsigned char __a, vector unsigned char __b, int __c)
8592 {
8593   __b[__c] = __a;
8594   return __b;
8595 }
8596
8597 static vector short __ATTRS_o_ai
8598 vec_insert(short __a, vector short __b, int __c)
8599 {
8600   __b[__c] = __a;
8601   return __b;
8602 }
8603
8604 static vector unsigned short __ATTRS_o_ai
8605 vec_insert(unsigned short __a, vector unsigned short __b, int __c)
8606 {
8607   __b[__c] = __a;
8608   return __b;
8609 }
8610
8611 static vector int __ATTRS_o_ai
8612 vec_insert(int __a, vector int __b, int __c)
8613 {
8614   __b[__c] = __a;
8615   return __b;
8616 }
8617
8618 static vector unsigned int __ATTRS_o_ai
8619 vec_insert(unsigned int __a, vector unsigned int __b, int __c)
8620 {
8621   __b[__c] = __a;
8622   return __b;
8623 }
8624
8625 static vector float __ATTRS_o_ai
8626 vec_insert(float __a, vector float __b, int __c)
8627 {
8628   __b[__c] = __a;
8629   return __b;
8630 }
8631
8632 /* vec_lvlx */
8633
8634 static vector signed char __ATTRS_o_ai
8635 vec_lvlx(int __a, const signed char *__b)
8636 {
8637   return vec_perm(vec_ld(__a, __b),
8638                   (vector signed char)(0),
8639                   vec_lvsl(__a, __b));
8640 }
8641
8642 static vector signed char __ATTRS_o_ai
8643 vec_lvlx(int __a, const vector signed char *__b)
8644 {
8645   return vec_perm(vec_ld(__a, __b),
8646                   (vector signed char)(0),
8647                   vec_lvsl(__a, (unsigned char *)__b));
8648 }
8649
8650 static vector unsigned char __ATTRS_o_ai
8651 vec_lvlx(int __a, const unsigned char *__b)
8652 {
8653   return vec_perm(vec_ld(__a, __b),
8654                   (vector unsigned char)(0),
8655                   vec_lvsl(__a, __b));
8656 }
8657
8658 static vector unsigned char __ATTRS_o_ai
8659 vec_lvlx(int __a, const vector unsigned char *__b)
8660 {
8661   return vec_perm(vec_ld(__a, __b),
8662                   (vector unsigned char)(0),
8663                   vec_lvsl(__a, (unsigned char *)__b));
8664 }
8665
8666 static vector bool char __ATTRS_o_ai
8667 vec_lvlx(int __a, const vector bool char *__b)
8668 {
8669   return vec_perm(vec_ld(__a, __b),
8670                   (vector bool char)(0),
8671                   vec_lvsl(__a, (unsigned char *)__b));
8672 }
8673
8674 static vector short __ATTRS_o_ai
8675 vec_lvlx(int __a, const short *__b)
8676 {
8677   return vec_perm(vec_ld(__a, __b),
8678                   (vector short)(0),
8679                   vec_lvsl(__a, __b));
8680 }
8681
8682 static vector short __ATTRS_o_ai
8683 vec_lvlx(int __a, const vector short *__b)
8684 {
8685   return vec_perm(vec_ld(__a, __b),
8686                   (vector short)(0),
8687                   vec_lvsl(__a, (unsigned char *)__b));
8688 }
8689
8690 static vector unsigned short __ATTRS_o_ai
8691 vec_lvlx(int __a, const unsigned short *__b)
8692 {
8693   return vec_perm(vec_ld(__a, __b),
8694                   (vector unsigned short)(0),
8695                   vec_lvsl(__a, __b));
8696 }
8697
8698 static vector unsigned short __ATTRS_o_ai
8699 vec_lvlx(int __a, const vector unsigned short *__b)
8700 {
8701   return vec_perm(vec_ld(__a, __b),
8702                   (vector unsigned short)(0),
8703                   vec_lvsl(__a, (unsigned char *)__b));
8704 }
8705
8706 static vector bool short __ATTRS_o_ai
8707 vec_lvlx(int __a, const vector bool short *__b)
8708 {
8709   return vec_perm(vec_ld(__a, __b),
8710                   (vector bool short)(0),
8711                   vec_lvsl(__a, (unsigned char *)__b));
8712 }
8713
8714 static vector pixel __ATTRS_o_ai
8715 vec_lvlx(int __a, const vector pixel *__b)
8716 {
8717   return vec_perm(vec_ld(__a, __b),
8718                   (vector pixel)(0),
8719                   vec_lvsl(__a, (unsigned char *)__b));
8720 }
8721
8722 static vector int __ATTRS_o_ai
8723 vec_lvlx(int __a, const int *__b)
8724 {
8725   return vec_perm(vec_ld(__a, __b),
8726                   (vector int)(0),
8727                   vec_lvsl(__a, __b));
8728 }
8729
8730 static vector int __ATTRS_o_ai
8731 vec_lvlx(int __a, const vector int *__b)
8732 {
8733   return vec_perm(vec_ld(__a, __b),
8734                   (vector int)(0),
8735                   vec_lvsl(__a, (unsigned char *)__b));
8736 }
8737
8738 static vector unsigned int __ATTRS_o_ai
8739 vec_lvlx(int __a, const unsigned int *__b)
8740 {
8741   return vec_perm(vec_ld(__a, __b),
8742                   (vector unsigned int)(0),
8743                   vec_lvsl(__a, __b));
8744 }
8745
8746 static vector unsigned int __ATTRS_o_ai
8747 vec_lvlx(int __a, const vector unsigned int *__b)
8748 {
8749   return vec_perm(vec_ld(__a, __b),
8750                   (vector unsigned int)(0),
8751                   vec_lvsl(__a, (unsigned char *)__b));
8752 }
8753
8754 static vector bool int __ATTRS_o_ai
8755 vec_lvlx(int __a, const vector bool int *__b)
8756 {
8757   return vec_perm(vec_ld(__a, __b),
8758                   (vector bool int)(0),
8759                   vec_lvsl(__a, (unsigned char *)__b));
8760 }
8761
8762 static vector float __ATTRS_o_ai
8763 vec_lvlx(int __a, const float *__b)
8764 {
8765   return vec_perm(vec_ld(__a, __b),
8766                   (vector float)(0),
8767                   vec_lvsl(__a, __b));
8768 }
8769
8770 static vector float __ATTRS_o_ai
8771 vec_lvlx(int __a, const vector float *__b)
8772 {
8773   return vec_perm(vec_ld(__a, __b),
8774                   (vector float)(0),
8775                   vec_lvsl(__a, (unsigned char *)__b));
8776 }
8777
8778 /* vec_lvlxl */
8779
8780 static vector signed char __ATTRS_o_ai
8781 vec_lvlxl(int __a, const signed char *__b)
8782 {
8783   return vec_perm(vec_ldl(__a, __b),
8784                   (vector signed char)(0),
8785                   vec_lvsl(__a, __b));
8786 }
8787
8788 static vector signed char __ATTRS_o_ai
8789 vec_lvlxl(int __a, const vector signed char *__b)
8790 {
8791   return vec_perm(vec_ldl(__a, __b),
8792                   (vector signed char)(0),
8793                   vec_lvsl(__a, (unsigned char *)__b));
8794 }
8795
8796 static vector unsigned char __ATTRS_o_ai
8797 vec_lvlxl(int __a, const unsigned char *__b)
8798 {
8799   return vec_perm(vec_ldl(__a, __b),
8800                   (vector unsigned char)(0),
8801                   vec_lvsl(__a, __b));
8802 }
8803
8804 static vector unsigned char __ATTRS_o_ai
8805 vec_lvlxl(int __a, const vector unsigned char *__b)
8806 {
8807   return vec_perm(vec_ldl(__a, __b),
8808                   (vector unsigned char)(0),
8809                   vec_lvsl(__a, (unsigned char *)__b));
8810 }
8811
8812 static vector bool char __ATTRS_o_ai
8813 vec_lvlxl(int __a, const vector bool char *__b)
8814 {
8815   return vec_perm(vec_ldl(__a, __b),
8816                   (vector bool char)(0),
8817                   vec_lvsl(__a, (unsigned char *)__b));
8818 }
8819
8820 static vector short __ATTRS_o_ai
8821 vec_lvlxl(int __a, const short *__b)
8822 {
8823   return vec_perm(vec_ldl(__a, __b),
8824                   (vector short)(0),
8825                   vec_lvsl(__a, __b));
8826 }
8827
8828 static vector short __ATTRS_o_ai
8829 vec_lvlxl(int __a, const vector short *__b)
8830 {
8831   return vec_perm(vec_ldl(__a, __b),
8832                   (vector short)(0),
8833                   vec_lvsl(__a, (unsigned char *)__b));
8834 }
8835
8836 static vector unsigned short __ATTRS_o_ai
8837 vec_lvlxl(int __a, const unsigned short *__b)
8838 {
8839   return vec_perm(vec_ldl(__a, __b),
8840                   (vector unsigned short)(0),
8841                   vec_lvsl(__a, __b));
8842 }
8843
8844 static vector unsigned short __ATTRS_o_ai
8845 vec_lvlxl(int __a, const vector unsigned short *__b)
8846 {
8847   return vec_perm(vec_ldl(__a, __b),
8848                   (vector unsigned short)(0),
8849                   vec_lvsl(__a, (unsigned char *)__b));
8850 }
8851
8852 static vector bool short __ATTRS_o_ai
8853 vec_lvlxl(int __a, const vector bool short *__b)
8854 {
8855   return vec_perm(vec_ldl(__a, __b),
8856                   (vector bool short)(0),
8857                   vec_lvsl(__a, (unsigned char *)__b));
8858 }
8859
8860 static vector pixel __ATTRS_o_ai
8861 vec_lvlxl(int __a, const vector pixel *__b)
8862 {
8863   return vec_perm(vec_ldl(__a, __b),
8864                   (vector pixel)(0),
8865                   vec_lvsl(__a, (unsigned char *)__b));
8866 }
8867
8868 static vector int __ATTRS_o_ai
8869 vec_lvlxl(int __a, const int *__b)
8870 {
8871   return vec_perm(vec_ldl(__a, __b),
8872                   (vector int)(0),
8873                   vec_lvsl(__a, __b));
8874 }
8875
8876 static vector int __ATTRS_o_ai
8877 vec_lvlxl(int __a, const vector int *__b)
8878 {
8879   return vec_perm(vec_ldl(__a, __b),
8880                   (vector int)(0),
8881                   vec_lvsl(__a, (unsigned char *)__b));
8882 }
8883
8884 static vector unsigned int __ATTRS_o_ai
8885 vec_lvlxl(int __a, const unsigned int *__b)
8886 {
8887   return vec_perm(vec_ldl(__a, __b),
8888                   (vector unsigned int)(0),
8889                   vec_lvsl(__a, __b));
8890 }
8891
8892 static vector unsigned int __ATTRS_o_ai
8893 vec_lvlxl(int __a, const vector unsigned int *__b)
8894 {
8895   return vec_perm(vec_ldl(__a, __b),
8896                   (vector unsigned int)(0),
8897                   vec_lvsl(__a, (unsigned char *)__b));
8898 }
8899
8900 static vector bool int __ATTRS_o_ai
8901 vec_lvlxl(int __a, const vector bool int *__b)
8902 {
8903   return vec_perm(vec_ldl(__a, __b),
8904                   (vector bool int)(0),
8905                   vec_lvsl(__a, (unsigned char *)__b));
8906 }
8907
8908 static vector float __ATTRS_o_ai
8909 vec_lvlxl(int __a, const float *__b)
8910 {
8911   return vec_perm(vec_ldl(__a, __b),
8912                   (vector float)(0),
8913                   vec_lvsl(__a, __b));
8914 }
8915
8916 static vector float __ATTRS_o_ai
8917 vec_lvlxl(int __a, vector float *__b)
8918 {
8919   return vec_perm(vec_ldl(__a, __b),
8920                   (vector float)(0),
8921                   vec_lvsl(__a, (unsigned char *)__b));
8922 }
8923
8924 /* vec_lvrx */
8925
8926 static vector signed char __ATTRS_o_ai
8927 vec_lvrx(int __a, const signed char *__b)
8928 {
8929   return vec_perm((vector signed char)(0),
8930                   vec_ld(__a, __b),
8931                   vec_lvsl(__a, __b));
8932 }
8933
8934 static vector signed char __ATTRS_o_ai
8935 vec_lvrx(int __a, const vector signed char *__b)
8936 {
8937   return vec_perm((vector signed char)(0),
8938                   vec_ld(__a, __b),
8939                   vec_lvsl(__a, (unsigned char *)__b));
8940 }
8941
8942 static vector unsigned char __ATTRS_o_ai
8943 vec_lvrx(int __a, const unsigned char *__b)
8944 {
8945   return vec_perm((vector unsigned char)(0),
8946                   vec_ld(__a, __b),
8947                   vec_lvsl(__a, __b));
8948 }
8949
8950 static vector unsigned char __ATTRS_o_ai
8951 vec_lvrx(int __a, const vector unsigned char *__b)
8952 {
8953   return vec_perm((vector unsigned char)(0),
8954                   vec_ld(__a, __b),
8955                   vec_lvsl(__a, (unsigned char *)__b));
8956 }
8957
8958 static vector bool char __ATTRS_o_ai
8959 vec_lvrx(int __a, const vector bool char *__b)
8960 {
8961   return vec_perm((vector bool char)(0),
8962                   vec_ld(__a, __b),
8963                   vec_lvsl(__a, (unsigned char *)__b));
8964 }
8965
8966 static vector short __ATTRS_o_ai
8967 vec_lvrx(int __a, const short *__b)
8968 {
8969   return vec_perm((vector short)(0),
8970                   vec_ld(__a, __b),
8971                   vec_lvsl(__a, __b));
8972 }
8973
8974 static vector short __ATTRS_o_ai
8975 vec_lvrx(int __a, const vector short *__b)
8976 {
8977   return vec_perm((vector short)(0),
8978                   vec_ld(__a, __b),
8979                   vec_lvsl(__a, (unsigned char *)__b));
8980 }
8981
8982 static vector unsigned short __ATTRS_o_ai
8983 vec_lvrx(int __a, const unsigned short *__b)
8984 {
8985   return vec_perm((vector unsigned short)(0),
8986                   vec_ld(__a, __b),
8987                   vec_lvsl(__a, __b));
8988 }
8989
8990 static vector unsigned short __ATTRS_o_ai
8991 vec_lvrx(int __a, const vector unsigned short *__b)
8992 {
8993   return vec_perm((vector unsigned short)(0),
8994                   vec_ld(__a, __b),
8995                   vec_lvsl(__a, (unsigned char *)__b));
8996 }
8997
8998 static vector bool short __ATTRS_o_ai
8999 vec_lvrx(int __a, const vector bool short *__b)
9000 {
9001   return vec_perm((vector bool short)(0),
9002                   vec_ld(__a, __b),
9003                   vec_lvsl(__a, (unsigned char *)__b));
9004 }
9005
9006 static vector pixel __ATTRS_o_ai
9007 vec_lvrx(int __a, const vector pixel *__b)
9008 {
9009   return vec_perm((vector pixel)(0),
9010                   vec_ld(__a, __b),
9011                   vec_lvsl(__a, (unsigned char *)__b));
9012 }
9013
9014 static vector int __ATTRS_o_ai
9015 vec_lvrx(int __a, const int *__b)
9016 {
9017   return vec_perm((vector int)(0),
9018                   vec_ld(__a, __b),
9019                   vec_lvsl(__a, __b));
9020 }
9021
9022 static vector int __ATTRS_o_ai
9023 vec_lvrx(int __a, const vector int *__b)
9024 {
9025   return vec_perm((vector int)(0),
9026                   vec_ld(__a, __b),
9027                   vec_lvsl(__a, (unsigned char *)__b));
9028 }
9029
9030 static vector unsigned int __ATTRS_o_ai
9031 vec_lvrx(int __a, const unsigned int *__b)
9032 {
9033   return vec_perm((vector unsigned int)(0),
9034                   vec_ld(__a, __b),
9035                   vec_lvsl(__a, __b));
9036 }
9037
9038 static vector unsigned int __ATTRS_o_ai
9039 vec_lvrx(int __a, const vector unsigned int *__b)
9040 {
9041   return vec_perm((vector unsigned int)(0),
9042                   vec_ld(__a, __b),
9043                   vec_lvsl(__a, (unsigned char *)__b));
9044 }
9045
9046 static vector bool int __ATTRS_o_ai
9047 vec_lvrx(int __a, const vector bool int *__b)
9048 {
9049   return vec_perm((vector bool int)(0),
9050                   vec_ld(__a, __b),
9051                   vec_lvsl(__a, (unsigned char *)__b));
9052 }
9053
9054 static vector float __ATTRS_o_ai
9055 vec_lvrx(int __a, const float *__b)
9056 {
9057   return vec_perm((vector float)(0),
9058                   vec_ld(__a, __b),
9059                   vec_lvsl(__a, __b));
9060 }
9061
9062 static vector float __ATTRS_o_ai
9063 vec_lvrx(int __a, const vector float *__b)
9064 {
9065   return vec_perm((vector float)(0),
9066                   vec_ld(__a, __b),
9067                   vec_lvsl(__a, (unsigned char *)__b));
9068 }
9069
9070 /* vec_lvrxl */
9071
9072 static vector signed char __ATTRS_o_ai
9073 vec_lvrxl(int __a, const signed char *__b)
9074 {
9075   return vec_perm((vector signed char)(0),
9076                   vec_ldl(__a, __b),
9077                   vec_lvsl(__a, __b));
9078 }
9079
9080 static vector signed char __ATTRS_o_ai
9081 vec_lvrxl(int __a, const vector signed char *__b)
9082 {
9083   return vec_perm((vector signed char)(0),
9084                   vec_ldl(__a, __b),
9085                   vec_lvsl(__a, (unsigned char *)__b));
9086 }
9087
9088 static vector unsigned char __ATTRS_o_ai
9089 vec_lvrxl(int __a, const unsigned char *__b)
9090 {
9091   return vec_perm((vector unsigned char)(0),
9092                   vec_ldl(__a, __b),
9093                   vec_lvsl(__a, __b));
9094 }
9095
9096 static vector unsigned char __ATTRS_o_ai
9097 vec_lvrxl(int __a, const vector unsigned char *__b)
9098 {
9099   return vec_perm((vector unsigned char)(0),
9100                   vec_ldl(__a, __b),
9101                   vec_lvsl(__a, (unsigned char *)__b));
9102 }
9103
9104 static vector bool char __ATTRS_o_ai
9105 vec_lvrxl(int __a, const vector bool char *__b)
9106 {
9107   return vec_perm((vector bool char)(0),
9108                   vec_ldl(__a, __b),
9109                   vec_lvsl(__a, (unsigned char *)__b));
9110 }
9111
9112 static vector short __ATTRS_o_ai
9113 vec_lvrxl(int __a, const short *__b)
9114 {
9115   return vec_perm((vector short)(0),
9116                   vec_ldl(__a, __b),
9117                   vec_lvsl(__a, __b));
9118 }
9119
9120 static vector short __ATTRS_o_ai
9121 vec_lvrxl(int __a, const vector short *__b)
9122 {
9123   return vec_perm((vector short)(0),
9124                   vec_ldl(__a, __b),
9125                   vec_lvsl(__a, (unsigned char *)__b));
9126 }
9127
9128 static vector unsigned short __ATTRS_o_ai
9129 vec_lvrxl(int __a, const unsigned short *__b)
9130 {
9131   return vec_perm((vector unsigned short)(0),
9132                   vec_ldl(__a, __b),
9133                   vec_lvsl(__a, __b));
9134 }
9135
9136 static vector unsigned short __ATTRS_o_ai
9137 vec_lvrxl(int __a, const vector unsigned short *__b)
9138 {
9139   return vec_perm((vector unsigned short)(0),
9140                   vec_ldl(__a, __b),
9141                   vec_lvsl(__a, (unsigned char *)__b));
9142 }
9143
9144 static vector bool short __ATTRS_o_ai
9145 vec_lvrxl(int __a, const vector bool short *__b)
9146 {
9147   return vec_perm((vector bool short)(0),
9148                   vec_ldl(__a, __b),
9149                   vec_lvsl(__a, (unsigned char *)__b));
9150 }
9151
9152 static vector pixel __ATTRS_o_ai
9153 vec_lvrxl(int __a, const vector pixel *__b)
9154 {
9155   return vec_perm((vector pixel)(0),
9156                   vec_ldl(__a, __b),
9157                   vec_lvsl(__a, (unsigned char *)__b));
9158 }
9159
9160 static vector int __ATTRS_o_ai
9161 vec_lvrxl(int __a, const int *__b)
9162 {
9163   return vec_perm((vector int)(0),
9164                   vec_ldl(__a, __b),
9165                   vec_lvsl(__a, __b));
9166 }
9167
9168 static vector int __ATTRS_o_ai
9169 vec_lvrxl(int __a, const vector int *__b)
9170 {
9171   return vec_perm((vector int)(0),
9172                   vec_ldl(__a, __b),
9173                   vec_lvsl(__a, (unsigned char *)__b));
9174 }
9175
9176 static vector unsigned int __ATTRS_o_ai
9177 vec_lvrxl(int __a, const unsigned int *__b)
9178 {
9179   return vec_perm((vector unsigned int)(0),
9180                   vec_ldl(__a, __b),
9181                   vec_lvsl(__a, __b));
9182 }
9183
9184 static vector unsigned int __ATTRS_o_ai
9185 vec_lvrxl(int __a, const vector unsigned int *__b)
9186 {
9187   return vec_perm((vector unsigned int)(0),
9188                   vec_ldl(__a, __b),
9189                   vec_lvsl(__a, (unsigned char *)__b));
9190 }
9191
9192 static vector bool int __ATTRS_o_ai
9193 vec_lvrxl(int __a, const vector bool int *__b)
9194 {
9195   return vec_perm((vector bool int)(0),
9196                   vec_ldl(__a, __b),
9197                   vec_lvsl(__a, (unsigned char *)__b));
9198 }
9199
9200 static vector float __ATTRS_o_ai
9201 vec_lvrxl(int __a, const float *__b)
9202 {
9203   return vec_perm((vector float)(0),
9204                   vec_ldl(__a, __b),
9205                   vec_lvsl(__a, __b));
9206 }
9207
9208 static vector float __ATTRS_o_ai
9209 vec_lvrxl(int __a, const vector float *__b)
9210 {
9211   return vec_perm((vector float)(0),
9212                   vec_ldl(__a, __b),
9213                   vec_lvsl(__a, (unsigned char *)__b));
9214 }
9215
9216 /* vec_stvlx */
9217
9218 static void __ATTRS_o_ai
9219 vec_stvlx(vector signed char __a, int __b, signed char *__c)
9220 {
9221   return vec_st(vec_perm(vec_lvrx(__b, __c),
9222                          __a,
9223                          vec_lvsr(__b, __c)),
9224                 __b, __c);
9225 }
9226
9227 static void __ATTRS_o_ai
9228 vec_stvlx(vector signed char __a, int __b, vector signed char *__c)
9229 {
9230   return vec_st(vec_perm(vec_lvrx(__b, __c),
9231                          __a,
9232                          vec_lvsr(__b, (unsigned char *)__c)),
9233                 __b, __c);
9234 }
9235
9236 static void __ATTRS_o_ai
9237 vec_stvlx(vector unsigned char __a, int __b, unsigned char *__c)
9238 {
9239   return vec_st(vec_perm(vec_lvrx(__b, __c),
9240                          __a,
9241                          vec_lvsr(__b, __c)),
9242                 __b, __c);
9243 }
9244
9245 static void __ATTRS_o_ai
9246 vec_stvlx(vector unsigned char __a, int __b, vector unsigned char *__c)
9247 {
9248   return vec_st(vec_perm(vec_lvrx(__b, __c),
9249                          __a,
9250                          vec_lvsr(__b, (unsigned char *)__c)),
9251                 __b, __c);
9252 }
9253
9254 static void __ATTRS_o_ai
9255 vec_stvlx(vector bool char __a, int __b, vector bool char *__c)
9256 {
9257   return vec_st(vec_perm(vec_lvrx(__b, __c),
9258                          __a,
9259                          vec_lvsr(__b, (unsigned char *)__c)),
9260                 __b, __c);
9261 }
9262
9263 static void __ATTRS_o_ai
9264 vec_stvlx(vector short __a, int __b, short *__c)
9265 {
9266   return vec_st(vec_perm(vec_lvrx(__b, __c),
9267                          __a,
9268                          vec_lvsr(__b, __c)),
9269                 __b, __c);
9270 }
9271
9272 static void __ATTRS_o_ai
9273 vec_stvlx(vector short __a, int __b, vector short *__c)
9274 {
9275   return vec_st(vec_perm(vec_lvrx(__b, __c),
9276                          __a,
9277                          vec_lvsr(__b, (unsigned char *)__c)),
9278                 __b, __c);
9279 }
9280
9281 static void __ATTRS_o_ai
9282 vec_stvlx(vector unsigned short __a, int __b, unsigned short *__c)
9283 {
9284   return vec_st(vec_perm(vec_lvrx(__b, __c),
9285                          __a,
9286                          vec_lvsr(__b, __c)),
9287                 __b, __c);
9288 }
9289
9290 static void __ATTRS_o_ai
9291 vec_stvlx(vector unsigned short __a, int __b, vector unsigned short *__c)
9292 {
9293   return vec_st(vec_perm(vec_lvrx(__b, __c),
9294                          __a,
9295                          vec_lvsr(__b, (unsigned char *)__c)),
9296                 __b, __c);
9297 }
9298
9299 static void __ATTRS_o_ai
9300 vec_stvlx(vector bool short __a, int __b, vector bool short *__c)
9301 {
9302   return vec_st(vec_perm(vec_lvrx(__b, __c),
9303                          __a,
9304                          vec_lvsr(__b, (unsigned char *)__c)),
9305                 __b, __c);
9306 }
9307
9308 static void __ATTRS_o_ai
9309 vec_stvlx(vector pixel __a, int __b, vector pixel *__c)
9310 {
9311   return vec_st(vec_perm(vec_lvrx(__b, __c),
9312                          __a,
9313                          vec_lvsr(__b, (unsigned char *)__c)),
9314                 __b, __c);
9315 }
9316
9317 static void __ATTRS_o_ai
9318 vec_stvlx(vector int __a, int __b, int *__c)
9319 {
9320   return vec_st(vec_perm(vec_lvrx(__b, __c),
9321                          __a,
9322                          vec_lvsr(__b, __c)),
9323                 __b, __c);
9324 }
9325
9326 static void __ATTRS_o_ai
9327 vec_stvlx(vector int __a, int __b, vector int *__c)
9328 {
9329   return vec_st(vec_perm(vec_lvrx(__b, __c),
9330                          __a,
9331                          vec_lvsr(__b, (unsigned char *)__c)),
9332                 __b, __c);
9333 }
9334
9335 static void __ATTRS_o_ai
9336 vec_stvlx(vector unsigned int __a, int __b, unsigned int *__c)
9337 {
9338   return vec_st(vec_perm(vec_lvrx(__b, __c),
9339                          __a,
9340                          vec_lvsr(__b, __c)),
9341                 __b, __c);
9342 }
9343
9344 static void __ATTRS_o_ai
9345 vec_stvlx(vector unsigned int __a, int __b, vector unsigned int *__c)
9346 {
9347   return vec_st(vec_perm(vec_lvrx(__b, __c),
9348                          __a,
9349                          vec_lvsr(__b, (unsigned char *)__c)),
9350                 __b, __c);
9351 }
9352
9353 static void __ATTRS_o_ai
9354 vec_stvlx(vector bool int __a, int __b, vector bool int *__c)
9355 {
9356   return vec_st(vec_perm(vec_lvrx(__b, __c),
9357                          __a,
9358                          vec_lvsr(__b, (unsigned char *)__c)),
9359                 __b, __c);
9360 }
9361
9362 static void __ATTRS_o_ai
9363 vec_stvlx(vector float __a, int __b, vector float *__c)
9364 {
9365   return vec_st(vec_perm(vec_lvrx(__b, __c),
9366                          __a,
9367                          vec_lvsr(__b, (unsigned char *)__c)),
9368                 __b, __c);
9369 }
9370
9371 /* vec_stvlxl */
9372
9373 static void __ATTRS_o_ai
9374 vec_stvlxl(vector signed char __a, int __b, signed char *__c)
9375 {
9376   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9377                           __a,
9378                           vec_lvsr(__b, __c)),
9379                  __b, __c);
9380 }
9381
9382 static void __ATTRS_o_ai
9383 vec_stvlxl(vector signed char __a, int __b, vector signed char *__c)
9384 {
9385   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9386                           __a,
9387                           vec_lvsr(__b, (unsigned char *)__c)),
9388                  __b, __c);
9389 }
9390
9391 static void __ATTRS_o_ai
9392 vec_stvlxl(vector unsigned char __a, int __b, unsigned char *__c)
9393 {
9394   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9395                           __a,
9396                           vec_lvsr(__b, __c)),
9397                  __b, __c);
9398 }
9399
9400 static void __ATTRS_o_ai
9401 vec_stvlxl(vector unsigned char __a, int __b, vector unsigned char *__c)
9402 {
9403   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9404                           __a,
9405                           vec_lvsr(__b, (unsigned char *)__c)),
9406                  __b, __c);
9407 }
9408
9409 static void __ATTRS_o_ai
9410 vec_stvlxl(vector bool char __a, int __b, vector bool char *__c)
9411 {
9412   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9413                           __a,
9414                           vec_lvsr(__b, (unsigned char *)__c)),
9415                  __b, __c);
9416 }
9417
9418 static void __ATTRS_o_ai
9419 vec_stvlxl(vector short __a, int __b, short *__c)
9420 {
9421   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9422                           __a,
9423                           vec_lvsr(__b, __c)),
9424                  __b, __c);
9425 }
9426
9427 static void __ATTRS_o_ai
9428 vec_stvlxl(vector short __a, int __b, vector short *__c)
9429 {
9430   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9431                           __a,
9432                           vec_lvsr(__b, (unsigned char *)__c)),
9433                  __b, __c);
9434 }
9435
9436 static void __ATTRS_o_ai
9437 vec_stvlxl(vector unsigned short __a, int __b, unsigned short *__c)
9438 {
9439   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9440                           __a,
9441                           vec_lvsr(__b, __c)),
9442                  __b, __c);
9443 }
9444
9445 static void __ATTRS_o_ai
9446 vec_stvlxl(vector unsigned short __a, int __b, vector unsigned short *__c)
9447 {
9448   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9449                           __a,
9450                           vec_lvsr(__b, (unsigned char *)__c)),
9451                  __b, __c);
9452 }
9453
9454 static void __ATTRS_o_ai
9455 vec_stvlxl(vector bool short __a, int __b, vector bool short *__c)
9456 {
9457   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9458                           __a,
9459                           vec_lvsr(__b, (unsigned char *)__c)),
9460                  __b, __c);
9461 }
9462
9463 static void __ATTRS_o_ai
9464 vec_stvlxl(vector pixel __a, int __b, vector pixel *__c)
9465 {
9466   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9467                           __a,
9468                           vec_lvsr(__b, (unsigned char *)__c)),
9469                  __b, __c);
9470 }
9471
9472 static void __ATTRS_o_ai
9473 vec_stvlxl(vector int __a, int __b, int *__c)
9474 {
9475   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9476                           __a,
9477                           vec_lvsr(__b, __c)),
9478                  __b, __c);
9479 }
9480
9481 static void __ATTRS_o_ai
9482 vec_stvlxl(vector int __a, int __b, vector int *__c)
9483 {
9484   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9485                           __a,
9486                           vec_lvsr(__b, (unsigned char *)__c)),
9487                  __b, __c);
9488 }
9489
9490 static void __ATTRS_o_ai
9491 vec_stvlxl(vector unsigned int __a, int __b, unsigned int *__c)
9492 {
9493   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9494                           __a,
9495                           vec_lvsr(__b, __c)),
9496                  __b, __c);
9497 }
9498
9499 static void __ATTRS_o_ai
9500 vec_stvlxl(vector unsigned int __a, int __b, vector unsigned int *__c)
9501 {
9502   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9503                           __a,
9504                           vec_lvsr(__b, (unsigned char *)__c)),
9505                  __b, __c);
9506 }
9507
9508 static void __ATTRS_o_ai
9509 vec_stvlxl(vector bool int __a, int __b, vector bool int *__c)
9510 {
9511   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9512                           __a,
9513                           vec_lvsr(__b, (unsigned char *)__c)),
9514                  __b, __c);
9515 }
9516
9517 static void __ATTRS_o_ai
9518 vec_stvlxl(vector float __a, int __b, vector float *__c)
9519 {
9520   return vec_stl(vec_perm(vec_lvrx(__b, __c),
9521                           __a,
9522                           vec_lvsr(__b, (unsigned char *)__c)),
9523                  __b, __c);
9524 }
9525
9526 /* vec_stvrx */
9527
9528 static void __ATTRS_o_ai
9529 vec_stvrx(vector signed char __a, int __b, signed char *__c)
9530 {
9531   return vec_st(vec_perm(__a,
9532                          vec_lvlx(__b, __c),
9533                          vec_lvsr(__b, __c)),
9534                 __b, __c);
9535 }
9536
9537 static void __ATTRS_o_ai
9538 vec_stvrx(vector signed char __a, int __b, vector signed char *__c)
9539 {
9540   return vec_st(vec_perm(__a,
9541                          vec_lvlx(__b, __c),
9542                          vec_lvsr(__b, (unsigned char *)__c)),
9543                 __b, __c);
9544 }
9545
9546 static void __ATTRS_o_ai
9547 vec_stvrx(vector unsigned char __a, int __b, unsigned char *__c)
9548 {
9549   return vec_st(vec_perm(__a,
9550                          vec_lvlx(__b, __c),
9551                          vec_lvsr(__b, __c)),
9552                 __b, __c);
9553 }
9554
9555 static void __ATTRS_o_ai
9556 vec_stvrx(vector unsigned char __a, int __b, vector unsigned char *__c)
9557 {
9558   return vec_st(vec_perm(__a,
9559                          vec_lvlx(__b, __c),
9560                          vec_lvsr(__b, (unsigned char *)__c)),
9561                 __b, __c);
9562 }
9563
9564 static void __ATTRS_o_ai
9565 vec_stvrx(vector bool char __a, int __b, vector bool char *__c)
9566 {
9567   return vec_st(vec_perm(__a,
9568                          vec_lvlx(__b, __c),
9569                          vec_lvsr(__b, (unsigned char *)__c)),
9570                 __b, __c);
9571 }
9572
9573 static void __ATTRS_o_ai
9574 vec_stvrx(vector short __a, int __b, short *__c)
9575 {
9576   return vec_st(vec_perm(__a,
9577                          vec_lvlx(__b, __c),
9578                          vec_lvsr(__b, __c)),
9579                 __b, __c);
9580 }
9581
9582 static void __ATTRS_o_ai
9583 vec_stvrx(vector short __a, int __b, vector short *__c)
9584 {
9585   return vec_st(vec_perm(__a,
9586                          vec_lvlx(__b, __c),
9587                          vec_lvsr(__b, (unsigned char *)__c)),
9588                 __b, __c);
9589 }
9590
9591 static void __ATTRS_o_ai
9592 vec_stvrx(vector unsigned short __a, int __b, unsigned short *__c)
9593 {
9594   return vec_st(vec_perm(__a,
9595                          vec_lvlx(__b, __c),
9596                          vec_lvsr(__b, __c)),
9597                 __b, __c);
9598 }
9599
9600 static void __ATTRS_o_ai
9601 vec_stvrx(vector unsigned short __a, int __b, vector unsigned short *__c)
9602 {
9603   return vec_st(vec_perm(__a,
9604                          vec_lvlx(__b, __c),
9605                          vec_lvsr(__b, (unsigned char *)__c)),
9606                 __b, __c);
9607 }
9608
9609 static void __ATTRS_o_ai
9610 vec_stvrx(vector bool short __a, int __b, vector bool short *__c)
9611 {
9612   return vec_st(vec_perm(__a,
9613                          vec_lvlx(__b, __c),
9614                          vec_lvsr(__b, (unsigned char *)__c)),
9615                 __b, __c);
9616 }
9617
9618 static void __ATTRS_o_ai
9619 vec_stvrx(vector pixel __a, int __b, vector pixel *__c)
9620 {
9621   return vec_st(vec_perm(__a,
9622                          vec_lvlx(__b, __c),
9623                          vec_lvsr(__b, (unsigned char *)__c)),
9624                 __b, __c);
9625 }
9626
9627 static void __ATTRS_o_ai
9628 vec_stvrx(vector int __a, int __b, int *__c)
9629 {
9630   return vec_st(vec_perm(__a,
9631                          vec_lvlx(__b, __c),
9632                          vec_lvsr(__b, __c)),
9633                 __b, __c);
9634 }
9635
9636 static void __ATTRS_o_ai
9637 vec_stvrx(vector int __a, int __b, vector int *__c)
9638 {
9639   return vec_st(vec_perm(__a,
9640                          vec_lvlx(__b, __c),
9641                          vec_lvsr(__b, (unsigned char *)__c)),
9642                 __b, __c);
9643 }
9644
9645 static void __ATTRS_o_ai
9646 vec_stvrx(vector unsigned int __a, int __b, unsigned int *__c)
9647 {
9648   return vec_st(vec_perm(__a,
9649                          vec_lvlx(__b, __c),
9650                          vec_lvsr(__b, __c)),
9651                 __b, __c);
9652 }
9653
9654 static void __ATTRS_o_ai
9655 vec_stvrx(vector unsigned int __a, int __b, vector unsigned int *__c)
9656 {
9657   return vec_st(vec_perm(__a,
9658                          vec_lvlx(__b, __c),
9659                          vec_lvsr(__b, (unsigned char *)__c)),
9660                 __b, __c);
9661 }
9662
9663 static void __ATTRS_o_ai
9664 vec_stvrx(vector bool int __a, int __b, vector bool int *__c)
9665 {
9666   return vec_st(vec_perm(__a,
9667                          vec_lvlx(__b, __c),
9668                          vec_lvsr(__b, (unsigned char *)__c)),
9669                 __b, __c);
9670 }
9671
9672 static void __ATTRS_o_ai
9673 vec_stvrx(vector float __a, int __b, vector float *__c)
9674 {
9675   return vec_st(vec_perm(__a,
9676                          vec_lvlx(__b, __c),
9677                          vec_lvsr(__b, (unsigned char *)__c)),
9678                 __b, __c);
9679 }
9680
9681 /* vec_stvrxl */
9682
9683 static void __ATTRS_o_ai
9684 vec_stvrxl(vector signed char __a, int __b, signed char *__c)
9685 {
9686   return vec_stl(vec_perm(__a,
9687                           vec_lvlx(__b, __c),
9688                           vec_lvsr(__b, __c)),
9689                  __b, __c);
9690 }
9691
9692 static void __ATTRS_o_ai
9693 vec_stvrxl(vector signed char __a, int __b, vector signed char *__c)
9694 {
9695   return vec_stl(vec_perm(__a,
9696                           vec_lvlx(__b, __c),
9697                           vec_lvsr(__b, (unsigned char *)__c)),
9698                  __b, __c);
9699 }
9700
9701 static void __ATTRS_o_ai
9702 vec_stvrxl(vector unsigned char __a, int __b, unsigned char *__c)
9703 {
9704   return vec_stl(vec_perm(__a,
9705                           vec_lvlx(__b, __c),
9706                           vec_lvsr(__b, __c)),
9707                  __b, __c);
9708 }
9709
9710 static void __ATTRS_o_ai
9711 vec_stvrxl(vector unsigned char __a, int __b, vector unsigned char *__c)
9712 {
9713   return vec_stl(vec_perm(__a,
9714                           vec_lvlx(__b, __c),
9715                           vec_lvsr(__b, (unsigned char *)__c)),
9716                  __b, __c);
9717 }
9718
9719 static void __ATTRS_o_ai
9720 vec_stvrxl(vector bool char __a, int __b, vector bool char *__c)
9721 {
9722   return vec_stl(vec_perm(__a,
9723                           vec_lvlx(__b, __c),
9724                           vec_lvsr(__b, (unsigned char *)__c)),
9725                  __b, __c);
9726 }
9727
9728 static void __ATTRS_o_ai
9729 vec_stvrxl(vector short __a, int __b, short *__c)
9730 {
9731   return vec_stl(vec_perm(__a,
9732                           vec_lvlx(__b, __c),
9733                           vec_lvsr(__b, __c)),
9734                  __b, __c);
9735 }
9736
9737 static void __ATTRS_o_ai
9738 vec_stvrxl(vector short __a, int __b, vector short *__c)
9739 {
9740   return vec_stl(vec_perm(__a,
9741                           vec_lvlx(__b, __c),
9742                           vec_lvsr(__b, (unsigned char *)__c)),
9743                  __b, __c);
9744 }
9745
9746 static void __ATTRS_o_ai
9747 vec_stvrxl(vector unsigned short __a, int __b, unsigned short *__c)
9748 {
9749   return vec_stl(vec_perm(__a,
9750                           vec_lvlx(__b, __c),
9751                           vec_lvsr(__b, __c)),
9752                  __b, __c);
9753 }
9754
9755 static void __ATTRS_o_ai
9756 vec_stvrxl(vector unsigned short __a, int __b, vector unsigned short *__c)
9757 {
9758   return vec_stl(vec_perm(__a,
9759                           vec_lvlx(__b, __c),
9760                           vec_lvsr(__b, (unsigned char *)__c)),
9761                  __b, __c);
9762 }
9763
9764 static void __ATTRS_o_ai
9765 vec_stvrxl(vector bool short __a, int __b, vector bool short *__c)
9766 {
9767   return vec_stl(vec_perm(__a,
9768                           vec_lvlx(__b, __c),
9769                           vec_lvsr(__b, (unsigned char *)__c)),
9770                  __b, __c);
9771 }
9772
9773 static void __ATTRS_o_ai
9774 vec_stvrxl(vector pixel __a, int __b, vector pixel *__c)
9775 {
9776   return vec_stl(vec_perm(__a,
9777                           vec_lvlx(__b, __c),
9778                           vec_lvsr(__b, (unsigned char *)__c)),
9779                  __b, __c);
9780 }
9781
9782 static void __ATTRS_o_ai
9783 vec_stvrxl(vector int __a, int __b, int *__c)
9784 {
9785   return vec_stl(vec_perm(__a,
9786                           vec_lvlx(__b, __c),
9787                           vec_lvsr(__b, __c)),
9788                  __b, __c);
9789 }
9790
9791 static void __ATTRS_o_ai
9792 vec_stvrxl(vector int __a, int __b, vector int *__c)
9793 {
9794   return vec_stl(vec_perm(__a,
9795                           vec_lvlx(__b, __c),
9796                           vec_lvsr(__b, (unsigned char *)__c)),
9797                  __b, __c);
9798 }
9799
9800 static void __ATTRS_o_ai
9801 vec_stvrxl(vector unsigned int __a, int __b, unsigned int *__c)
9802 {
9803   return vec_stl(vec_perm(__a,
9804                           vec_lvlx(__b, __c),
9805                           vec_lvsr(__b, __c)),
9806                  __b, __c);
9807 }
9808
9809 static void __ATTRS_o_ai
9810 vec_stvrxl(vector unsigned int __a, int __b, vector unsigned int *__c)
9811 {
9812   return vec_stl(vec_perm(__a,
9813                           vec_lvlx(__b, __c),
9814                           vec_lvsr(__b, (unsigned char *)__c)),
9815                  __b, __c);
9816 }
9817
9818 static void __ATTRS_o_ai
9819 vec_stvrxl(vector bool int __a, int __b, vector bool int *__c)
9820 {
9821   return vec_stl(vec_perm(__a,
9822                           vec_lvlx(__b, __c),
9823                           vec_lvsr(__b, (unsigned char *)__c)),
9824                  __b, __c);
9825 }
9826
9827 static void __ATTRS_o_ai
9828 vec_stvrxl(vector float __a, int __b, vector float *__c)
9829 {
9830   return vec_stl(vec_perm(__a,
9831                           vec_lvlx(__b, __c),
9832                           vec_lvsr(__b, (unsigned char *)__c)),
9833                  __b, __c);
9834 }
9835
9836 /* vec_promote */
9837
9838 static vector signed char __ATTRS_o_ai
9839 vec_promote(signed char __a, int __b)
9840 {
9841   vector signed char __res = (vector signed char)(0);
9842   __res[__b] = __a;
9843   return __res;
9844 }
9845
9846 static vector unsigned char __ATTRS_o_ai
9847 vec_promote(unsigned char __a, int __b)
9848 {
9849   vector unsigned char __res = (vector unsigned char)(0);
9850   __res[__b] = __a;
9851   return __res;
9852 }
9853
9854 static vector short __ATTRS_o_ai
9855 vec_promote(short __a, int __b)
9856 {
9857   vector short __res = (vector short)(0);
9858   __res[__b] = __a;
9859   return __res;
9860 }
9861
9862 static vector unsigned short __ATTRS_o_ai
9863 vec_promote(unsigned short __a, int __b)
9864 {
9865   vector unsigned short __res = (vector unsigned short)(0);
9866   __res[__b] = __a;
9867   return __res;
9868 }
9869
9870 static vector int __ATTRS_o_ai
9871 vec_promote(int __a, int __b)
9872 {
9873   vector int __res = (vector int)(0);
9874   __res[__b] = __a;
9875   return __res;
9876 }
9877
9878 static vector unsigned int __ATTRS_o_ai
9879 vec_promote(unsigned int __a, int __b)
9880 {
9881   vector unsigned int __res = (vector unsigned int)(0);
9882   __res[__b] = __a;
9883   return __res;
9884 }
9885
9886 static vector float __ATTRS_o_ai
9887 vec_promote(float __a, int __b)
9888 {
9889   vector float __res = (vector float)(0);
9890   __res[__b] = __a;
9891   return __res;
9892 }
9893
9894 /* vec_splats */
9895
9896 static vector signed char __ATTRS_o_ai
9897 vec_splats(signed char __a)
9898 {
9899   return (vector signed char)(__a);
9900 }
9901
9902 static vector unsigned char __ATTRS_o_ai
9903 vec_splats(unsigned char __a)
9904 {
9905   return (vector unsigned char)(__a);
9906 }
9907
9908 static vector short __ATTRS_o_ai
9909 vec_splats(short __a)
9910 {
9911   return (vector short)(__a);
9912 }
9913
9914 static vector unsigned short __ATTRS_o_ai
9915 vec_splats(unsigned short __a)
9916 {
9917   return (vector unsigned short)(__a);
9918 }
9919
9920 static vector int __ATTRS_o_ai
9921 vec_splats(int __a)
9922 {
9923   return (vector int)(__a);
9924 }
9925
9926 static vector unsigned int __ATTRS_o_ai
9927 vec_splats(unsigned int __a)
9928 {
9929   return (vector unsigned int)(__a);
9930 }
9931
9932 static vector float __ATTRS_o_ai
9933 vec_splats(float __a)
9934 {
9935   return (vector float)(__a);
9936 }
9937
9938 /* ----------------------------- predicates --------------------------------- */
9939
9940 /* vec_all_eq */
9941
9942 static int __ATTRS_o_ai
9943 vec_all_eq(vector signed char __a, vector signed char __b)
9944 {
9945   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9946 }
9947
9948 static int __ATTRS_o_ai
9949 vec_all_eq(vector signed char __a, vector bool char __b)
9950 {
9951   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9952 }
9953
9954 static int __ATTRS_o_ai
9955 vec_all_eq(vector unsigned char __a, vector unsigned char __b)
9956 {
9957   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9958 }
9959
9960 static int __ATTRS_o_ai
9961 vec_all_eq(vector unsigned char __a, vector bool char __b)
9962 {
9963   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9964 }
9965
9966 static int __ATTRS_o_ai
9967 vec_all_eq(vector bool char __a, vector signed char __b)
9968 {
9969   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9970 }
9971
9972 static int __ATTRS_o_ai
9973 vec_all_eq(vector bool char __a, vector unsigned char __b)
9974 {
9975   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9976 }
9977
9978 static int __ATTRS_o_ai
9979 vec_all_eq(vector bool char __a, vector bool char __b)
9980 {
9981   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
9982 }
9983
9984 static int __ATTRS_o_ai
9985 vec_all_eq(vector short __a, vector short __b)
9986 {
9987   return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, __b);
9988 }
9989
9990 static int __ATTRS_o_ai
9991 vec_all_eq(vector short __a, vector bool short __b)
9992 {
9993   return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, (vector short)__b);
9994 }
9995
9996 static int __ATTRS_o_ai
9997 vec_all_eq(vector unsigned short __a, vector unsigned short __b)
9998 {
9999   return
10000     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
10001 }
10002
10003 static int __ATTRS_o_ai
10004 vec_all_eq(vector unsigned short __a, vector bool short __b)
10005 {
10006   return
10007     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
10008 }
10009
10010 static int __ATTRS_o_ai
10011 vec_all_eq(vector bool short __a, vector short __b)
10012 {
10013   return
10014     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
10015 }
10016
10017 static int __ATTRS_o_ai
10018 vec_all_eq(vector bool short __a, vector unsigned short __b)
10019 {
10020   return
10021     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
10022 }
10023
10024 static int __ATTRS_o_ai
10025 vec_all_eq(vector bool short __a, vector bool short __b)
10026 {
10027   return
10028     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
10029 }
10030
10031 static int __ATTRS_o_ai
10032 vec_all_eq(vector pixel __a, vector pixel __b)
10033 {
10034   return
10035     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
10036 }
10037
10038 static int __ATTRS_o_ai
10039 vec_all_eq(vector int __a, vector int __b)
10040 {
10041   return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, __b);
10042 }
10043
10044 static int __ATTRS_o_ai
10045 vec_all_eq(vector int __a, vector bool int __b)
10046 {
10047   return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, (vector int)__b);
10048 }
10049
10050 static int __ATTRS_o_ai
10051 vec_all_eq(vector unsigned int __a, vector unsigned int __b)
10052 {
10053   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
10054 }
10055
10056 static int __ATTRS_o_ai
10057 vec_all_eq(vector unsigned int __a, vector bool int __b)
10058 {
10059   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
10060 }
10061
10062 static int __ATTRS_o_ai
10063 vec_all_eq(vector bool int __a, vector int __b)
10064 {
10065   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
10066 }
10067
10068 static int __ATTRS_o_ai
10069 vec_all_eq(vector bool int __a, vector unsigned int __b)
10070 {
10071   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
10072 }
10073
10074 static int __ATTRS_o_ai
10075 vec_all_eq(vector bool int __a, vector bool int __b)
10076 {
10077   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
10078 }
10079
10080 static int __ATTRS_o_ai
10081 vec_all_eq(vector float __a, vector float __b)
10082 {
10083   return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __b);
10084 }
10085
10086 /* vec_all_ge */
10087
10088 static int __ATTRS_o_ai
10089 vec_all_ge(vector signed char __a, vector signed char __b)
10090 {
10091   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, __a);
10092 }
10093
10094 static int __ATTRS_o_ai
10095 vec_all_ge(vector signed char __a, vector bool char __b)
10096 {
10097   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__b, __a);
10098 }
10099
10100 static int __ATTRS_o_ai
10101 vec_all_ge(vector unsigned char __a, vector unsigned char __b)
10102 {
10103   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, __a);
10104 }
10105
10106 static int __ATTRS_o_ai
10107 vec_all_ge(vector unsigned char __a, vector bool char __b)
10108 {
10109   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, __a);
10110 }
10111
10112 static int __ATTRS_o_ai
10113 vec_all_ge(vector bool char __a, vector signed char __b)
10114 {
10115   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
10116                                       (vector unsigned char)__b,
10117                                       (vector unsigned char)__a);
10118 }
10119
10120 static int __ATTRS_o_ai
10121 vec_all_ge(vector bool char __a, vector unsigned char __b)
10122 {
10123   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, (vector unsigned char)__a);
10124 }
10125
10126 static int __ATTRS_o_ai
10127 vec_all_ge(vector bool char __a, vector bool char __b)
10128 {
10129   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
10130                                       (vector unsigned char)__b,
10131                                       (vector unsigned char)__a);
10132 }
10133
10134 static int __ATTRS_o_ai
10135 vec_all_ge(vector short __a, vector short __b)
10136 {
10137   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, __a);
10138 }
10139
10140 static int __ATTRS_o_ai
10141 vec_all_ge(vector short __a, vector bool short __b)
10142 {
10143   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)__b, __a);
10144 }
10145
10146 static int __ATTRS_o_ai
10147 vec_all_ge(vector unsigned short __a, vector unsigned short __b)
10148 {
10149   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, __a);
10150 }
10151
10152 static int __ATTRS_o_ai
10153 vec_all_ge(vector unsigned short __a, vector bool short __b)
10154 {
10155   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b, __a);
10156 }
10157
10158 static int __ATTRS_o_ai
10159 vec_all_ge(vector bool short __a, vector short __b)
10160 {
10161   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
10162                                       (vector unsigned short)__b,
10163                                       (vector unsigned short)__a);
10164 }
10165
10166 static int __ATTRS_o_ai
10167 vec_all_ge(vector bool short __a, vector unsigned short __b)
10168 {
10169   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, (vector unsigned short)__a);
10170 }
10171
10172 static int __ATTRS_o_ai
10173 vec_all_ge(vector bool short __a, vector bool short __b)
10174 {
10175   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
10176                                       (vector unsigned short)__b,
10177                                       (vector unsigned short)__a);
10178 }
10179
10180 static int __ATTRS_o_ai
10181 vec_all_ge(vector int __a, vector int __b)
10182 {
10183   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, __a);
10184 }
10185
10186 static int __ATTRS_o_ai
10187 vec_all_ge(vector int __a, vector bool int __b)
10188 {
10189   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)__b, __a);
10190 }
10191
10192 static int __ATTRS_o_ai
10193 vec_all_ge(vector unsigned int __a, vector unsigned int __b)
10194 {
10195   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, __a);
10196 }
10197
10198 static int __ATTRS_o_ai
10199 vec_all_ge(vector unsigned int __a, vector bool int __b)
10200 {
10201   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, __a);
10202 }
10203
10204 static int __ATTRS_o_ai
10205 vec_all_ge(vector bool int __a, vector int __b)
10206 {
10207   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
10208                                       (vector unsigned int)__b,
10209                                       (vector unsigned int)__a);
10210 }
10211
10212 static int __ATTRS_o_ai
10213 vec_all_ge(vector bool int __a, vector unsigned int __b)
10214 {
10215   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, (vector unsigned int)__a);
10216 }
10217
10218 static int __ATTRS_o_ai
10219 vec_all_ge(vector bool int __a, vector bool int __b)
10220 {
10221   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
10222                                       (vector unsigned int)__b,
10223                                       (vector unsigned int)__a);
10224 }
10225
10226 static int __ATTRS_o_ai
10227 vec_all_ge(vector float __a, vector float __b)
10228 {
10229   return __builtin_altivec_vcmpgefp_p(__CR6_LT, __a, __b);
10230 }
10231
10232 /* vec_all_gt */
10233
10234 static int __ATTRS_o_ai
10235 vec_all_gt(vector signed char __a, vector signed char __b)
10236 {
10237   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, __b);
10238 }
10239
10240 static int __ATTRS_o_ai
10241 vec_all_gt(vector signed char __a, vector bool char __b)
10242 {
10243   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, (vector signed char)__b);
10244 }
10245
10246 static int __ATTRS_o_ai
10247 vec_all_gt(vector unsigned char __a, vector unsigned char __b)
10248 {
10249   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, __b);
10250 }
10251
10252 static int __ATTRS_o_ai
10253 vec_all_gt(vector unsigned char __a, vector bool char __b)
10254 {
10255   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, (vector unsigned char)__b);
10256 }
10257
10258 static int __ATTRS_o_ai
10259 vec_all_gt(vector bool char __a, vector signed char __b)
10260 {
10261   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
10262                                       (vector unsigned char)__a,
10263                                       (vector unsigned char)__b);
10264 }
10265
10266 static int __ATTRS_o_ai
10267 vec_all_gt(vector bool char __a, vector unsigned char __b)
10268 {
10269   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, __b);
10270 }
10271
10272 static int __ATTRS_o_ai
10273 vec_all_gt(vector bool char __a, vector bool char __b)
10274 {
10275   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
10276                                       (vector unsigned char)__a,
10277                                       (vector unsigned char)__b);
10278 }
10279
10280 static int __ATTRS_o_ai
10281 vec_all_gt(vector short __a, vector short __b)
10282 {
10283   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, __b);
10284 }
10285
10286 static int __ATTRS_o_ai
10287 vec_all_gt(vector short __a, vector bool short __b)
10288 {
10289   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, (vector short)__b);
10290 }
10291
10292 static int __ATTRS_o_ai
10293 vec_all_gt(vector unsigned short __a, vector unsigned short __b)
10294 {
10295   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, __b);
10296 }
10297
10298 static int __ATTRS_o_ai
10299 vec_all_gt(vector unsigned short __a, vector bool short __b)
10300 {
10301   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, (vector unsigned short)__b);
10302 }
10303
10304 static int __ATTRS_o_ai
10305 vec_all_gt(vector bool short __a, vector short __b)
10306 {
10307   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
10308                                       (vector unsigned short)__a,
10309                                       (vector unsigned short)__b);
10310 }
10311
10312 static int __ATTRS_o_ai
10313 vec_all_gt(vector bool short __a, vector unsigned short __b)
10314 {
10315   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a, __b);
10316 }
10317
10318 static int __ATTRS_o_ai
10319 vec_all_gt(vector bool short __a, vector bool short __b)
10320 {
10321   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
10322                                       (vector unsigned short)__a,
10323                                       (vector unsigned short)__b);
10324 }
10325
10326 static int __ATTRS_o_ai
10327 vec_all_gt(vector int __a, vector int __b)
10328 {
10329   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, __b);
10330 }
10331
10332 static int __ATTRS_o_ai
10333 vec_all_gt(vector int __a, vector bool int __b)
10334 {
10335   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, (vector int)__b);
10336 }
10337
10338 static int __ATTRS_o_ai
10339 vec_all_gt(vector unsigned int __a, vector unsigned int __b)
10340 {
10341   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, __b);
10342 }
10343
10344 static int __ATTRS_o_ai
10345 vec_all_gt(vector unsigned int __a, vector bool int __b)
10346 {
10347   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, (vector unsigned int)__b);
10348 }
10349
10350 static int __ATTRS_o_ai
10351 vec_all_gt(vector bool int __a, vector int __b)
10352 {
10353   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
10354                                       (vector unsigned int)__a,
10355                                       (vector unsigned int)__b);
10356 }
10357
10358 static int __ATTRS_o_ai
10359 vec_all_gt(vector bool int __a, vector unsigned int __b)
10360 {
10361   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, __b);
10362 }
10363
10364 static int __ATTRS_o_ai
10365 vec_all_gt(vector bool int __a, vector bool int __b)
10366 {
10367   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
10368                                       (vector unsigned int)__a,
10369                                       (vector unsigned int)__b);
10370 }
10371
10372 static int __ATTRS_o_ai
10373 vec_all_gt(vector float __a, vector float __b)
10374 {
10375   return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __a, __b);
10376 }
10377
10378 /* vec_all_in */
10379
10380 static int __attribute__((__always_inline__))
10381 vec_all_in(vector float __a, vector float __b)
10382 {
10383   return __builtin_altivec_vcmpbfp_p(__CR6_EQ, __a, __b);
10384 }
10385
10386 /* vec_all_le */
10387
10388 static int __ATTRS_o_ai
10389 vec_all_le(vector signed char __a, vector signed char __b)
10390 {
10391   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, __b);
10392 }
10393
10394 static int __ATTRS_o_ai
10395 vec_all_le(vector signed char __a, vector bool char __b)
10396 {
10397   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, (vector signed char)__b);
10398 }
10399
10400 static int __ATTRS_o_ai
10401 vec_all_le(vector unsigned char __a, vector unsigned char __b)
10402 {
10403   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, __b);
10404 }
10405
10406 static int __ATTRS_o_ai
10407 vec_all_le(vector unsigned char __a, vector bool char __b)
10408 {
10409   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, (vector unsigned char)__b);
10410 }
10411
10412 static int __ATTRS_o_ai
10413 vec_all_le(vector bool char __a, vector signed char __b)
10414 {
10415   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
10416                                       (vector unsigned char)__a,
10417                                       (vector unsigned char)__b);
10418 }
10419
10420 static int __ATTRS_o_ai
10421 vec_all_le(vector bool char __a, vector unsigned char __b)
10422 {
10423   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, __b);
10424 }
10425
10426 static int __ATTRS_o_ai
10427 vec_all_le(vector bool char __a, vector bool char __b)
10428 {
10429   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
10430                                       (vector unsigned char)__a,
10431                                       (vector unsigned char)__b);
10432 }
10433
10434 static int __ATTRS_o_ai
10435 vec_all_le(vector short __a, vector short __b)
10436 {
10437   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, __b);
10438 }
10439
10440 static int __ATTRS_o_ai
10441 vec_all_le(vector short __a, vector bool short __b)
10442 {
10443   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, (vector short)__b);
10444 }
10445
10446 static int __ATTRS_o_ai
10447 vec_all_le(vector unsigned short __a, vector unsigned short __b)
10448 {
10449   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, __b);
10450 }
10451
10452 static int __ATTRS_o_ai
10453 vec_all_le(vector unsigned short __a, vector bool short __b)
10454 {
10455   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, (vector unsigned short)__b);
10456 }
10457
10458 static int __ATTRS_o_ai
10459 vec_all_le(vector bool short __a, vector short __b)
10460 {
10461   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
10462                                       (vector unsigned short)__a,
10463                                       (vector unsigned short)__b);
10464 }
10465
10466 static int __ATTRS_o_ai
10467 vec_all_le(vector bool short __a, vector unsigned short __b)
10468 {
10469   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a, __b);
10470 }
10471
10472 static int __ATTRS_o_ai
10473 vec_all_le(vector bool short __a, vector bool short __b)
10474 {
10475   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
10476                                       (vector unsigned short)__a,
10477                                       (vector unsigned short)__b);
10478 }
10479
10480 static int __ATTRS_o_ai
10481 vec_all_le(vector int __a, vector int __b)
10482 {
10483   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, __b);
10484 }
10485
10486 static int __ATTRS_o_ai
10487 vec_all_le(vector int __a, vector bool int __b)
10488 {
10489   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, (vector int)__b);
10490 }
10491
10492 static int __ATTRS_o_ai
10493 vec_all_le(vector unsigned int __a, vector unsigned int __b)
10494 {
10495   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, __b);
10496 }
10497
10498 static int __ATTRS_o_ai
10499 vec_all_le(vector unsigned int __a, vector bool int __b)
10500 {
10501   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, (vector unsigned int)__b);
10502 }
10503
10504 static int __ATTRS_o_ai
10505 vec_all_le(vector bool int __a, vector int __b)
10506 {
10507   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
10508                                       (vector unsigned int)__a,
10509                                       (vector unsigned int)__b);
10510 }
10511
10512 static int __ATTRS_o_ai
10513 vec_all_le(vector bool int __a, vector unsigned int __b)
10514 {
10515   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, __b);
10516 }
10517
10518 static int __ATTRS_o_ai
10519 vec_all_le(vector bool int __a, vector bool int __b)
10520 {
10521   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
10522                                       (vector unsigned int)__a,
10523                                       (vector unsigned int)__b);
10524 }
10525
10526 static int __ATTRS_o_ai
10527 vec_all_le(vector float __a, vector float __b)
10528 {
10529   return __builtin_altivec_vcmpgefp_p(__CR6_LT, __b, __a);
10530 }
10531
10532 /* vec_all_lt */
10533
10534 static int __ATTRS_o_ai
10535 vec_all_lt(vector signed char __a, vector signed char __b)
10536 {
10537   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, __a);
10538 }
10539
10540 static int __ATTRS_o_ai
10541 vec_all_lt(vector signed char __a, vector bool char __b)
10542 {
10543   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__b, __a);
10544 }
10545
10546 static int __ATTRS_o_ai
10547 vec_all_lt(vector unsigned char __a, vector unsigned char __b)
10548 {
10549   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, __a);
10550 }
10551
10552 static int __ATTRS_o_ai
10553 vec_all_lt(vector unsigned char __a, vector bool char __b)
10554 {
10555   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, __a);
10556 }
10557
10558 static int __ATTRS_o_ai
10559 vec_all_lt(vector bool char __a, vector signed char __b)
10560 {
10561   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
10562                                       (vector unsigned char)__b,
10563                                       (vector unsigned char)__a);
10564 }
10565
10566 static int __ATTRS_o_ai
10567 vec_all_lt(vector bool char __a, vector unsigned char __b)
10568 {
10569   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, (vector unsigned char)__a);
10570 }
10571
10572 static int __ATTRS_o_ai
10573 vec_all_lt(vector bool char __a, vector bool char __b)
10574 {
10575   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
10576                                       (vector unsigned char)__b,
10577                                       (vector unsigned char)__a);
10578 }
10579
10580 static int __ATTRS_o_ai
10581 vec_all_lt(vector short __a, vector short __b)
10582 {
10583   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, __a);
10584 }
10585
10586 static int __ATTRS_o_ai
10587 vec_all_lt(vector short __a, vector bool short __b)
10588 {
10589   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)__b, __a);
10590 }
10591
10592 static int __ATTRS_o_ai
10593 vec_all_lt(vector unsigned short __a, vector unsigned short __b)
10594 {
10595   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, __a);
10596 }
10597
10598 static int __ATTRS_o_ai
10599 vec_all_lt(vector unsigned short __a, vector bool short __b)
10600 {
10601   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b, __a);
10602 }
10603
10604 static int __ATTRS_o_ai
10605 vec_all_lt(vector bool short __a, vector short __b)
10606 {
10607   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
10608                                       (vector unsigned short)__b,
10609                                       (vector unsigned short)__a);
10610 }
10611
10612 static int __ATTRS_o_ai
10613 vec_all_lt(vector bool short __a, vector unsigned short __b)
10614 {
10615   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, (vector unsigned short)__a);
10616 }
10617
10618 static int __ATTRS_o_ai
10619 vec_all_lt(vector bool short __a, vector bool short __b)
10620 {
10621   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
10622                                       (vector unsigned short)__b,
10623                                       (vector unsigned short)__a);
10624 }
10625
10626 static int __ATTRS_o_ai
10627 vec_all_lt(vector int __a, vector int __b)
10628 {
10629   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, __a);
10630 }
10631
10632 static int __ATTRS_o_ai
10633 vec_all_lt(vector int __a, vector bool int __b)
10634 {
10635   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)__b, __a);
10636 }
10637
10638 static int __ATTRS_o_ai
10639 vec_all_lt(vector unsigned int __a, vector unsigned int __b)
10640 {
10641   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, __a);
10642 }
10643
10644 static int __ATTRS_o_ai
10645 vec_all_lt(vector unsigned int __a, vector bool int __b)
10646 {
10647   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, __a);
10648 }
10649
10650 static int __ATTRS_o_ai
10651 vec_all_lt(vector bool int __a, vector int __b)
10652 {
10653   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
10654                                       (vector unsigned int)__b,
10655                                       (vector unsigned int)__a);
10656 }
10657
10658 static int __ATTRS_o_ai
10659 vec_all_lt(vector bool int __a, vector unsigned int __b)
10660 {
10661   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, (vector unsigned int)__a);
10662 }
10663
10664 static int __ATTRS_o_ai
10665 vec_all_lt(vector bool int __a, vector bool int __b)
10666 {
10667   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
10668                                       (vector unsigned int)__b,
10669                                       (vector unsigned int)__a);
10670 }
10671
10672 static int __ATTRS_o_ai
10673 vec_all_lt(vector float __a, vector float __b)
10674 {
10675   return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __b, __a);
10676 }
10677
10678 /* vec_all_nan */
10679
10680 static int __attribute__((__always_inline__))
10681 vec_all_nan(vector float __a)
10682 {
10683   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __a);
10684 }
10685
10686 /* vec_all_ne */
10687
10688 static int __ATTRS_o_ai
10689 vec_all_ne(vector signed char __a, vector signed char __b)
10690 {
10691   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10692 }
10693
10694 static int __ATTRS_o_ai
10695 vec_all_ne(vector signed char __a, vector bool char __b)
10696 {
10697   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10698 }
10699
10700 static int __ATTRS_o_ai
10701 vec_all_ne(vector unsigned char __a, vector unsigned char __b)
10702 {
10703   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10704 }
10705
10706 static int __ATTRS_o_ai
10707 vec_all_ne(vector unsigned char __a, vector bool char __b)
10708 {
10709   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10710 }
10711
10712 static int __ATTRS_o_ai
10713 vec_all_ne(vector bool char __a, vector signed char __b)
10714 {
10715   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10716 }
10717
10718 static int __ATTRS_o_ai
10719 vec_all_ne(vector bool char __a, vector unsigned char __b)
10720 {
10721   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10722 }
10723
10724 static int __ATTRS_o_ai
10725 vec_all_ne(vector bool char __a, vector bool char __b)
10726 {
10727   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
10728 }
10729
10730 static int __ATTRS_o_ai
10731 vec_all_ne(vector short __a, vector short __b)
10732 {
10733   return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, __b);
10734 }
10735
10736 static int __ATTRS_o_ai
10737 vec_all_ne(vector short __a, vector bool short __b)
10738 {
10739   return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, (vector short)__b);
10740 }
10741
10742 static int __ATTRS_o_ai
10743 vec_all_ne(vector unsigned short __a, vector unsigned short __b)
10744 {
10745   return
10746     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
10747 }
10748
10749 static int __ATTRS_o_ai
10750 vec_all_ne(vector unsigned short __a, vector bool short __b)
10751 {
10752   return
10753     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
10754 }
10755
10756 static int __ATTRS_o_ai
10757 vec_all_ne(vector bool short __a, vector short __b)
10758 {
10759   return
10760     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
10761 }
10762
10763 static int __ATTRS_o_ai
10764 vec_all_ne(vector bool short __a, vector unsigned short __b)
10765 {
10766   return
10767     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
10768 }
10769
10770 static int __ATTRS_o_ai
10771 vec_all_ne(vector bool short __a, vector bool short __b)
10772 {
10773   return
10774     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
10775 }
10776
10777 static int __ATTRS_o_ai
10778 vec_all_ne(vector pixel __a, vector pixel __b)
10779 {
10780   return
10781     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
10782 }
10783
10784 static int __ATTRS_o_ai
10785 vec_all_ne(vector int __a, vector int __b)
10786 {
10787   return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, __b);
10788 }
10789
10790 static int __ATTRS_o_ai
10791 vec_all_ne(vector int __a, vector bool int __b)
10792 {
10793   return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, (vector int)__b);
10794 }
10795
10796 static int __ATTRS_o_ai
10797 vec_all_ne(vector unsigned int __a, vector unsigned int __b)
10798 {
10799   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
10800 }
10801
10802 static int __ATTRS_o_ai
10803 vec_all_ne(vector unsigned int __a, vector bool int __b)
10804 {
10805   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
10806 }
10807
10808 static int __ATTRS_o_ai
10809 vec_all_ne(vector bool int __a, vector int __b)
10810 {
10811   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
10812 }
10813
10814 static int __ATTRS_o_ai
10815 vec_all_ne(vector bool int __a, vector unsigned int __b)
10816 {
10817   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
10818 }
10819
10820 static int __ATTRS_o_ai
10821 vec_all_ne(vector bool int __a, vector bool int __b)
10822 {
10823   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
10824 }
10825
10826 static int __ATTRS_o_ai
10827 vec_all_ne(vector float __a, vector float __b)
10828 {
10829   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __b);
10830 }
10831
10832 /* vec_all_nge */
10833
10834 static int __attribute__((__always_inline__))
10835 vec_all_nge(vector float __a, vector float __b)
10836 {
10837   return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __a, __b);
10838 }
10839
10840 /* vec_all_ngt */
10841
10842 static int __attribute__((__always_inline__))
10843 vec_all_ngt(vector float __a, vector float __b)
10844 {
10845   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __a, __b);
10846 }
10847
10848 /* vec_all_nle */
10849
10850 static int __attribute__((__always_inline__))
10851 vec_all_nle(vector float __a, vector float __b)
10852 {
10853   return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __b, __a);
10854 }
10855
10856 /* vec_all_nlt */
10857
10858 static int __attribute__((__always_inline__))
10859 vec_all_nlt(vector float __a, vector float __b)
10860 {
10861   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __b, __a);
10862 }
10863
10864 /* vec_all_numeric */
10865
10866 static int __attribute__((__always_inline__))
10867 vec_all_numeric(vector float __a)
10868 {
10869   return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __a);
10870 }
10871
10872 /* vec_any_eq */
10873
10874 static int __ATTRS_o_ai
10875 vec_any_eq(vector signed char __a, vector signed char __b)
10876 {
10877   return
10878     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10879 }
10880
10881 static int __ATTRS_o_ai
10882 vec_any_eq(vector signed char __a, vector bool char __b)
10883 {
10884   return
10885     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10886 }
10887
10888 static int __ATTRS_o_ai
10889 vec_any_eq(vector unsigned char __a, vector unsigned char __b)
10890 {
10891   return
10892     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10893 }
10894
10895 static int __ATTRS_o_ai
10896 vec_any_eq(vector unsigned char __a, vector bool char __b)
10897 {
10898   return
10899     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10900 }
10901
10902 static int __ATTRS_o_ai
10903 vec_any_eq(vector bool char __a, vector signed char __b)
10904 {
10905   return
10906     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10907 }
10908
10909 static int __ATTRS_o_ai
10910 vec_any_eq(vector bool char __a, vector unsigned char __b)
10911 {
10912   return
10913     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10914 }
10915
10916 static int __ATTRS_o_ai
10917 vec_any_eq(vector bool char __a, vector bool char __b)
10918 {
10919   return
10920     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
10921 }
10922
10923 static int __ATTRS_o_ai
10924 vec_any_eq(vector short __a, vector short __b)
10925 {
10926   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, __b);
10927 }
10928
10929 static int __ATTRS_o_ai
10930 vec_any_eq(vector short __a, vector bool short __b)
10931 {
10932   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, (vector short)__b);
10933 }
10934
10935 static int __ATTRS_o_ai
10936 vec_any_eq(vector unsigned short __a, vector unsigned short __b)
10937 {
10938   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, 
10939                                       (vector short)__a,
10940                                       (vector short)__b);
10941 }
10942
10943 static int __ATTRS_o_ai
10944 vec_any_eq(vector unsigned short __a, vector bool short __b)
10945 {
10946   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, 
10947                                       (vector short)__a,
10948                                       (vector short)__b);
10949 }
10950
10951 static int __ATTRS_o_ai
10952 vec_any_eq(vector bool short __a, vector short __b)
10953 {
10954   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
10955                                       (vector short)__a,
10956                                       (vector short)__b);
10957 }
10958
10959 static int __ATTRS_o_ai
10960 vec_any_eq(vector bool short __a, vector unsigned short __b)
10961 {
10962   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
10963                                       (vector short)__a,
10964                                       (vector short)__b);
10965 }
10966
10967 static int __ATTRS_o_ai
10968 vec_any_eq(vector bool short __a, vector bool short __b)
10969 {
10970   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
10971                                       (vector short)__a,
10972                                       (vector short)__b);
10973 }
10974
10975 static int __ATTRS_o_ai
10976 vec_any_eq(vector pixel __a, vector pixel __b)
10977 {
10978   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, 
10979                                       (vector short)__a,
10980                                       (vector short)__b);
10981 }
10982
10983 static int __ATTRS_o_ai
10984 vec_any_eq(vector int __a, vector int __b)
10985 {
10986   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, __b);
10987 }
10988
10989 static int __ATTRS_o_ai
10990 vec_any_eq(vector int __a, vector bool int __b)
10991 {
10992   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, (vector int)__b);
10993 }
10994
10995 static int __ATTRS_o_ai
10996 vec_any_eq(vector unsigned int __a, vector unsigned int __b)
10997 {
10998   return
10999     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
11000 }
11001
11002 static int __ATTRS_o_ai
11003 vec_any_eq(vector unsigned int __a, vector bool int __b)
11004 {
11005   return
11006     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
11007 }
11008
11009 static int __ATTRS_o_ai
11010 vec_any_eq(vector bool int __a, vector int __b)
11011 {
11012   return
11013     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
11014 }
11015
11016 static int __ATTRS_o_ai
11017 vec_any_eq(vector bool int __a, vector unsigned int __b)
11018 {
11019   return
11020     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
11021 }
11022
11023 static int __ATTRS_o_ai
11024 vec_any_eq(vector bool int __a, vector bool int __b)
11025 {
11026   return
11027     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
11028 }
11029
11030 static int __ATTRS_o_ai
11031 vec_any_eq(vector float __a, vector float __b)
11032 {
11033   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __b);
11034 }
11035
11036 /* vec_any_ge */
11037
11038 static int __ATTRS_o_ai
11039 vec_any_ge(vector signed char __a, vector signed char __b)
11040 {
11041   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b, __a);
11042 }
11043
11044 static int __ATTRS_o_ai
11045 vec_any_ge(vector signed char __a, vector bool char __b)
11046 {
11047   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__b, __a);
11048 }
11049
11050 static int __ATTRS_o_ai
11051 vec_any_ge(vector unsigned char __a, vector unsigned char __b)
11052 {
11053   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, __a);
11054 }
11055
11056 static int __ATTRS_o_ai
11057 vec_any_ge(vector unsigned char __a, vector bool char __b)
11058 {
11059   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b, __a);
11060 }
11061
11062 static int __ATTRS_o_ai
11063 vec_any_ge(vector bool char __a, vector signed char __b)
11064 {
11065   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
11066                                       (vector unsigned char)__b,
11067                                       (vector unsigned char)__a);
11068 }
11069
11070 static int __ATTRS_o_ai
11071 vec_any_ge(vector bool char __a, vector unsigned char __b)
11072 {
11073   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, (vector unsigned char)__a);
11074 }
11075
11076 static int __ATTRS_o_ai
11077 vec_any_ge(vector bool char __a, vector bool char __b)
11078 {
11079   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
11080                                       (vector unsigned char)__b,
11081                                       (vector unsigned char)__a);
11082 }
11083
11084 static int __ATTRS_o_ai
11085 vec_any_ge(vector short __a, vector short __b)
11086 {
11087   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b, __a);
11088 }
11089
11090 static int __ATTRS_o_ai
11091 vec_any_ge(vector short __a, vector bool short __b)
11092 {
11093   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)__b, __a);
11094 }
11095
11096 static int __ATTRS_o_ai
11097 vec_any_ge(vector unsigned short __a, vector unsigned short __b)
11098 {
11099   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, __a);
11100 }
11101
11102 static int __ATTRS_o_ai
11103 vec_any_ge(vector unsigned short __a, vector bool short __b)
11104 {
11105   return
11106     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b, __a);
11107 }
11108
11109 static int __ATTRS_o_ai
11110 vec_any_ge(vector bool short __a, vector short __b)
11111 {
11112   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
11113                                       (vector unsigned short)__b,
11114                                       (vector unsigned short)__a);
11115 }
11116
11117 static int __ATTRS_o_ai
11118 vec_any_ge(vector bool short __a, vector unsigned short __b)
11119 {
11120   return 
11121     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, (vector unsigned short)__a);
11122 }
11123
11124 static int __ATTRS_o_ai
11125 vec_any_ge(vector bool short __a, vector bool short __b)
11126 {
11127   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
11128                                       (vector unsigned short)__b,
11129                                       (vector unsigned short)__a);
11130 }
11131
11132 static int __ATTRS_o_ai
11133 vec_any_ge(vector int __a, vector int __b)
11134 {
11135   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b, __a);
11136 }
11137
11138 static int __ATTRS_o_ai
11139 vec_any_ge(vector int __a, vector bool int __b)
11140 {
11141   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)__b, __a);
11142 }
11143
11144 static int __ATTRS_o_ai
11145 vec_any_ge(vector unsigned int __a, vector unsigned int __b)
11146 {
11147   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, __a);
11148 }
11149
11150 static int __ATTRS_o_ai
11151 vec_any_ge(vector unsigned int __a, vector bool int __b)
11152 {
11153   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b, __a);
11154 }
11155
11156 static int __ATTRS_o_ai
11157 vec_any_ge(vector bool int __a, vector int __b)
11158 {
11159   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
11160                                       (vector unsigned int)__b,
11161                                       (vector unsigned int)__a);
11162 }
11163
11164 static int __ATTRS_o_ai
11165 vec_any_ge(vector bool int __a, vector unsigned int __b)
11166 {
11167   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, (vector unsigned int)__a);
11168 }
11169
11170 static int __ATTRS_o_ai
11171 vec_any_ge(vector bool int __a, vector bool int __b)
11172 {
11173   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
11174                                       (vector unsigned int)__b,
11175                                       (vector unsigned int)__a);
11176 }
11177
11178 static int __ATTRS_o_ai
11179 vec_any_ge(vector float __a, vector float __b)
11180 {
11181   return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __a, __b);
11182 }
11183
11184 /* vec_any_gt */
11185
11186 static int __ATTRS_o_ai
11187 vec_any_gt(vector signed char __a, vector signed char __b)
11188 {
11189   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, __b);
11190 }
11191
11192 static int __ATTRS_o_ai
11193 vec_any_gt(vector signed char __a, vector bool char __b)
11194 {
11195   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, (vector signed char)__b);
11196 }
11197
11198 static int __ATTRS_o_ai
11199 vec_any_gt(vector unsigned char __a, vector unsigned char __b)
11200 {
11201   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, __b);
11202 }
11203
11204 static int __ATTRS_o_ai
11205 vec_any_gt(vector unsigned char __a, vector bool char __b)
11206 {
11207   return 
11208     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, (vector unsigned char)__b);
11209 }
11210
11211 static int __ATTRS_o_ai
11212 vec_any_gt(vector bool char __a, vector signed char __b)
11213 {
11214   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
11215                                       (vector unsigned char)__a,
11216                                       (vector unsigned char)__b);
11217 }
11218
11219 static int __ATTRS_o_ai
11220 vec_any_gt(vector bool char __a, vector unsigned char __b)
11221 {
11222   return 
11223     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a, __b);
11224 }
11225
11226 static int __ATTRS_o_ai
11227 vec_any_gt(vector bool char __a, vector bool char __b)
11228 {
11229   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
11230                                       (vector unsigned char)__a,
11231                                       (vector unsigned char)__b);
11232 }
11233
11234 static int __ATTRS_o_ai
11235 vec_any_gt(vector short __a, vector short __b)
11236 {
11237   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, __b);
11238 }
11239
11240 static int __ATTRS_o_ai
11241 vec_any_gt(vector short __a, vector bool short __b)
11242 {
11243   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, (vector short)__b);
11244 }
11245
11246 static int __ATTRS_o_ai
11247 vec_any_gt(vector unsigned short __a, vector unsigned short __b)
11248 {
11249   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, __b);
11250 }
11251
11252 static int __ATTRS_o_ai
11253 vec_any_gt(vector unsigned short __a, vector bool short __b)
11254 {
11255   return 
11256     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, (vector unsigned short)__b);
11257 }
11258
11259 static int __ATTRS_o_ai
11260 vec_any_gt(vector bool short __a, vector short __b)
11261 {
11262   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
11263                                       (vector unsigned short)__a,
11264                                       (vector unsigned short)__b);
11265 }
11266
11267 static int __ATTRS_o_ai
11268 vec_any_gt(vector bool short __a, vector unsigned short __b)
11269 {
11270   return
11271     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a, __b);
11272 }
11273
11274 static int __ATTRS_o_ai
11275 vec_any_gt(vector bool short __a, vector bool short __b)
11276 {
11277   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
11278                                       (vector unsigned short)__a,
11279                                       (vector unsigned short)__b);
11280 }
11281
11282 static int __ATTRS_o_ai
11283 vec_any_gt(vector int __a, vector int __b)
11284 {
11285   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, __b);
11286 }
11287
11288 static int __ATTRS_o_ai
11289 vec_any_gt(vector int __a, vector bool int __b)
11290 {
11291   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, (vector int)__b);
11292 }
11293
11294 static int __ATTRS_o_ai
11295 vec_any_gt(vector unsigned int __a, vector unsigned int __b)
11296 {
11297   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, __b);
11298 }
11299
11300 static int __ATTRS_o_ai
11301 vec_any_gt(vector unsigned int __a, vector bool int __b)
11302 {
11303   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, (vector unsigned int)__b);
11304 }
11305
11306 static int __ATTRS_o_ai
11307 vec_any_gt(vector bool int __a, vector int __b)
11308 {
11309   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
11310                                       (vector unsigned int)__a,
11311                                       (vector unsigned int)__b);
11312 }
11313
11314 static int __ATTRS_o_ai
11315 vec_any_gt(vector bool int __a, vector unsigned int __b)
11316 {
11317   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a, __b);
11318 }
11319
11320 static int __ATTRS_o_ai
11321 vec_any_gt(vector bool int __a, vector bool int __b)
11322 {
11323   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
11324                                       (vector unsigned int)__a,
11325                                       (vector unsigned int)__b);
11326 }
11327
11328 static int __ATTRS_o_ai
11329 vec_any_gt(vector float __a, vector float __b)
11330 {
11331   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __a, __b);
11332 }
11333
11334 /* vec_any_le */
11335
11336 static int __ATTRS_o_ai
11337 vec_any_le(vector signed char __a, vector signed char __b)
11338 {
11339   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, __b);
11340 }
11341
11342 static int __ATTRS_o_ai
11343 vec_any_le(vector signed char __a, vector bool char __b)
11344 {
11345   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, (vector signed char)__b);
11346 }
11347
11348 static int __ATTRS_o_ai
11349 vec_any_le(vector unsigned char __a, vector unsigned char __b)
11350 {
11351   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, __b);
11352 }
11353
11354 static int __ATTRS_o_ai
11355 vec_any_le(vector unsigned char __a, vector bool char __b)
11356 {
11357   return 
11358     __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, (vector unsigned char)__b);
11359 }
11360
11361 static int __ATTRS_o_ai
11362 vec_any_le(vector bool char __a, vector signed char __b)
11363 {
11364   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
11365                                       (vector unsigned char)__a,
11366                                       (vector unsigned char)__b);
11367 }
11368
11369 static int __ATTRS_o_ai
11370 vec_any_le(vector bool char __a, vector unsigned char __b)
11371 {
11372   return 
11373     __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a, __b);
11374 }
11375
11376 static int __ATTRS_o_ai
11377 vec_any_le(vector bool char __a, vector bool char __b)
11378 {
11379   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
11380                                       (vector unsigned char)__a,
11381                                       (vector unsigned char)__b);
11382 }
11383
11384 static int __ATTRS_o_ai
11385 vec_any_le(vector short __a, vector short __b)
11386 {
11387   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, __b);
11388 }
11389
11390 static int __ATTRS_o_ai
11391 vec_any_le(vector short __a, vector bool short __b)
11392 {
11393   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, (vector short)__b);
11394 }
11395
11396 static int __ATTRS_o_ai
11397 vec_any_le(vector unsigned short __a, vector unsigned short __b)
11398 {
11399   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, __b);
11400 }
11401
11402 static int __ATTRS_o_ai
11403 vec_any_le(vector unsigned short __a, vector bool short __b)
11404 {
11405   return 
11406     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, (vector unsigned short)__b);
11407 }
11408
11409 static int __ATTRS_o_ai
11410 vec_any_le(vector bool short __a, vector short __b)
11411 {
11412   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
11413                                       (vector unsigned short)__a,
11414                                       (vector unsigned short)__b);
11415 }
11416
11417 static int __ATTRS_o_ai
11418 vec_any_le(vector bool short __a, vector unsigned short __b)
11419 {
11420   return 
11421     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a, __b);
11422 }
11423
11424 static int __ATTRS_o_ai
11425 vec_any_le(vector bool short __a, vector bool short __b)
11426 {
11427   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
11428                                       (vector unsigned short)__a,
11429                                       (vector unsigned short)__b);
11430 }
11431
11432 static int __ATTRS_o_ai
11433 vec_any_le(vector int __a, vector int __b)
11434 {
11435   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, __b);
11436 }
11437
11438 static int __ATTRS_o_ai
11439 vec_any_le(vector int __a, vector bool int __b)
11440 {
11441   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, (vector int)__b);
11442 }
11443
11444 static int __ATTRS_o_ai
11445 vec_any_le(vector unsigned int __a, vector unsigned int __b)
11446 {
11447   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, __b);
11448 }
11449
11450 static int __ATTRS_o_ai
11451 vec_any_le(vector unsigned int __a, vector bool int __b)
11452 {
11453   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, (vector unsigned int)__b);
11454 }
11455
11456 static int __ATTRS_o_ai
11457 vec_any_le(vector bool int __a, vector int __b)
11458 {
11459   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
11460                                       (vector unsigned int)__a,
11461                                       (vector unsigned int)__b);
11462 }
11463
11464 static int __ATTRS_o_ai
11465 vec_any_le(vector bool int __a, vector unsigned int __b)
11466 {
11467   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a, __b);
11468 }
11469
11470 static int __ATTRS_o_ai
11471 vec_any_le(vector bool int __a, vector bool int __b)
11472 {
11473   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
11474                                       (vector unsigned int)__a,
11475                                       (vector unsigned int)__b);
11476 }
11477
11478 static int __ATTRS_o_ai
11479 vec_any_le(vector float __a, vector float __b)
11480 {
11481   return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __b, __a);
11482 }
11483
11484 /* vec_any_lt */
11485
11486 static int __ATTRS_o_ai
11487 vec_any_lt(vector signed char __a, vector signed char __b)
11488 {
11489   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b, __a);
11490 }
11491
11492 static int __ATTRS_o_ai
11493 vec_any_lt(vector signed char __a, vector bool char __b)
11494 {
11495   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__b, __a);
11496 }
11497
11498 static int __ATTRS_o_ai
11499 vec_any_lt(vector unsigned char __a, vector unsigned char __b)
11500 {
11501   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, __a);
11502 }
11503
11504 static int __ATTRS_o_ai
11505 vec_any_lt(vector unsigned char __a, vector bool char __b)
11506 {
11507   return 
11508     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b, __a);
11509 }
11510
11511 static int __ATTRS_o_ai
11512 vec_any_lt(vector bool char __a, vector signed char __b)
11513 {
11514   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
11515                                       (vector unsigned char)__b,
11516                                       (vector unsigned char)__a);
11517 }
11518
11519 static int __ATTRS_o_ai
11520 vec_any_lt(vector bool char __a, vector unsigned char __b)
11521 {
11522   return 
11523     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, (vector unsigned char)__a);
11524 }
11525
11526 static int __ATTRS_o_ai
11527 vec_any_lt(vector bool char __a, vector bool char __b)
11528 {
11529   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
11530                                       (vector unsigned char)__b,
11531                                       (vector unsigned char)__a);
11532 }
11533
11534 static int __ATTRS_o_ai
11535 vec_any_lt(vector short __a, vector short __b)
11536 {
11537   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b, __a);
11538 }
11539
11540 static int __ATTRS_o_ai
11541 vec_any_lt(vector short __a, vector bool short __b)
11542 {
11543   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)__b, __a);
11544 }
11545
11546 static int __ATTRS_o_ai
11547 vec_any_lt(vector unsigned short __a, vector unsigned short __b)
11548 {
11549   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, __a);
11550 }
11551
11552 static int __ATTRS_o_ai
11553 vec_any_lt(vector unsigned short __a, vector bool short __b)
11554 {
11555   return 
11556     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b, __a);
11557 }
11558
11559 static int __ATTRS_o_ai
11560 vec_any_lt(vector bool short __a, vector short __b)
11561 {
11562   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
11563                                       (vector unsigned short)__b,
11564                                       (vector unsigned short)__a);
11565 }
11566
11567 static int __ATTRS_o_ai
11568 vec_any_lt(vector bool short __a, vector unsigned short __b)
11569 {
11570   return 
11571     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, (vector unsigned short)__a);
11572 }
11573
11574 static int __ATTRS_o_ai
11575 vec_any_lt(vector bool short __a, vector bool short __b)
11576 {
11577   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
11578                                       (vector unsigned short)__b,
11579                                       (vector unsigned short)__a);
11580 }
11581
11582 static int __ATTRS_o_ai
11583 vec_any_lt(vector int __a, vector int __b)
11584 {
11585   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b, __a);
11586 }
11587
11588 static int __ATTRS_o_ai
11589 vec_any_lt(vector int __a, vector bool int __b)
11590 {
11591   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)__b, __a);
11592 }
11593
11594 static int __ATTRS_o_ai
11595 vec_any_lt(vector unsigned int __a, vector unsigned int __b)
11596 {
11597   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, __a);
11598 }
11599
11600 static int __ATTRS_o_ai
11601 vec_any_lt(vector unsigned int __a, vector bool int __b)
11602 {
11603   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b, __a);
11604 }
11605
11606 static int __ATTRS_o_ai
11607 vec_any_lt(vector bool int __a, vector int __b)
11608 {
11609   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
11610                                       (vector unsigned int)__b,
11611                                       (vector unsigned int)__a);
11612 }
11613
11614 static int __ATTRS_o_ai
11615 vec_any_lt(vector bool int __a, vector unsigned int __b)
11616 {
11617   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, (vector unsigned int)__a);
11618 }
11619
11620 static int __ATTRS_o_ai
11621 vec_any_lt(vector bool int __a, vector bool int __b)
11622 {
11623   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
11624                                       (vector unsigned int)__b,
11625                                       (vector unsigned int)__a);
11626 }
11627
11628 static int __ATTRS_o_ai
11629 vec_any_lt(vector float __a, vector float __b)
11630 {
11631   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __b, __a);
11632 }
11633
11634 /* vec_any_nan */
11635
11636 static int __attribute__((__always_inline__))
11637 vec_any_nan(vector float __a)
11638 {
11639   return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __a);
11640 }
11641
11642 /* vec_any_ne */
11643
11644 static int __ATTRS_o_ai
11645 vec_any_ne(vector signed char __a, vector signed char __b)
11646 {
11647   return
11648     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11649 }
11650
11651 static int __ATTRS_o_ai
11652 vec_any_ne(vector signed char __a, vector bool char __b)
11653 {
11654   return
11655     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11656 }
11657
11658 static int __ATTRS_o_ai
11659 vec_any_ne(vector unsigned char __a, vector unsigned char __b)
11660 {
11661   return
11662     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11663 }
11664
11665 static int __ATTRS_o_ai
11666 vec_any_ne(vector unsigned char __a, vector bool char __b)
11667 {
11668   return
11669     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11670 }
11671
11672 static int __ATTRS_o_ai
11673 vec_any_ne(vector bool char __a, vector signed char __b)
11674 {
11675   return
11676     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11677 }
11678
11679 static int __ATTRS_o_ai
11680 vec_any_ne(vector bool char __a, vector unsigned char __b)
11681 {
11682   return
11683     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11684 }
11685
11686 static int __ATTRS_o_ai
11687 vec_any_ne(vector bool char __a, vector bool char __b)
11688 {
11689   return
11690     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
11691 }
11692
11693 static int __ATTRS_o_ai
11694 vec_any_ne(vector short __a, vector short __b)
11695 {
11696   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, __b);
11697 }
11698
11699 static int __ATTRS_o_ai
11700 vec_any_ne(vector short __a, vector bool short __b)
11701 {
11702   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, (vector short)__b);
11703 }
11704
11705 static int __ATTRS_o_ai
11706 vec_any_ne(vector unsigned short __a, vector unsigned short __b)
11707 {
11708   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, 
11709                                       (vector short)__a,
11710                                       (vector short)__b);
11711 }
11712
11713 static int __ATTRS_o_ai
11714 vec_any_ne(vector unsigned short __a, vector bool short __b)
11715 {
11716   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
11717                                       (vector short)__a,
11718                                       (vector short)__b);
11719 }
11720
11721 static int __ATTRS_o_ai
11722 vec_any_ne(vector bool short __a, vector short __b)
11723 {
11724   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
11725                                       (vector short)__a,
11726                                       (vector short)__b);
11727 }
11728
11729 static int __ATTRS_o_ai
11730 vec_any_ne(vector bool short __a, vector unsigned short __b)
11731 {
11732   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
11733                                       (vector short)__a,
11734                                       (vector short)__b);
11735 }
11736
11737 static int __ATTRS_o_ai
11738 vec_any_ne(vector bool short __a, vector bool short __b)
11739 {
11740   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
11741                                       (vector short)__a,
11742                                       (vector short)__b);
11743 }
11744
11745 static int __ATTRS_o_ai
11746 vec_any_ne(vector pixel __a, vector pixel __b)
11747 {
11748   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
11749                                       (vector short)__a,
11750                                       (vector short)__b);
11751 }
11752
11753 static int __ATTRS_o_ai
11754 vec_any_ne(vector int __a, vector int __b)
11755 {
11756   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, __b);
11757 }
11758
11759 static int __ATTRS_o_ai
11760 vec_any_ne(vector int __a, vector bool int __b)
11761 {
11762   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, (vector int)__b);
11763 }
11764
11765 static int __ATTRS_o_ai
11766 vec_any_ne(vector unsigned int __a, vector unsigned int __b)
11767 {
11768   return
11769     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
11770 }
11771
11772 static int __ATTRS_o_ai
11773 vec_any_ne(vector unsigned int __a, vector bool int __b)
11774 {
11775   return
11776     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
11777 }
11778
11779 static int __ATTRS_o_ai
11780 vec_any_ne(vector bool int __a, vector int __b)
11781 {
11782   return
11783     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
11784 }
11785
11786 static int __ATTRS_o_ai
11787 vec_any_ne(vector bool int __a, vector unsigned int __b)
11788 {
11789   return
11790     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
11791 }
11792
11793 static int __ATTRS_o_ai
11794 vec_any_ne(vector bool int __a, vector bool int __b)
11795 {
11796   return
11797     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
11798 }
11799
11800 static int __ATTRS_o_ai
11801 vec_any_ne(vector float __a, vector float __b)
11802 {
11803   return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __b);
11804 }
11805
11806 /* vec_any_nge */
11807
11808 static int __attribute__((__always_inline__))
11809 vec_any_nge(vector float __a, vector float __b)
11810 {
11811   return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __a, __b);
11812 }
11813
11814 /* vec_any_ngt */
11815
11816 static int __attribute__((__always_inline__))
11817 vec_any_ngt(vector float __a, vector float __b)
11818 {
11819   return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __a, __b);
11820 }
11821
11822 /* vec_any_nle */
11823
11824 static int __attribute__((__always_inline__))
11825 vec_any_nle(vector float __a, vector float __b)
11826 {
11827   return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __b, __a);
11828 }
11829
11830 /* vec_any_nlt */
11831
11832 static int __attribute__((__always_inline__))
11833 vec_any_nlt(vector float __a, vector float __b)
11834 {
11835   return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __b, __a);
11836 }
11837
11838 /* vec_any_numeric */
11839
11840 static int __attribute__((__always_inline__))
11841 vec_any_numeric(vector float __a)
11842 {
11843   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __a);
11844 }
11845
11846 /* vec_any_out */
11847
11848 static int __attribute__((__always_inline__))
11849 vec_any_out(vector float __a, vector float __b)
11850 {
11851   return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, __a, __b);
11852 }
11853
11854 #undef __ATTRS_o_ai
11855
11856 #endif /* __ALTIVEC_H */