1 /* PowerPC AltiVec include file.
2 Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
3 Contributed by Aldy Hernandez (aldyh@redhat.com).
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
9 by the Free Software Foundation; either version 2, or (at your
10 option) any later version.
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING. If not, write to the
19 Free Software Foundation, 59 Temple Place - Suite 330, Boston,
20 MA 02111-1307, USA. */
22 /* As a special exception, if you include this header file into source
23 files compiled by GCC, this header file does not by itself cause
24 the resulting executable to be covered by the GNU General Public
25 License. This exception does not however invalidate any other
26 reasons why the executable file might be covered by the GNU General
29 /* Implemented to conform to the specification included in the AltiVec
30 Technology Programming Interface Manual (ALTIVECPIM/D 6/1999 Rev 0). */
35 #if !defined(__VEC__) || !defined(__ALTIVEC__)
36 #error Use the "-maltivec" flag to enable PowerPC AltiVec support
39 /* If __APPLE_ALTIVEC__ is defined, the compiler supports 'vector',
40 'pixel' and 'bool' as context-sensitive AltiVec keywords (in
41 non-AltiVec contexts, they revert to their original meanings,
42 if any), so we do not need to define them as macros. */
44 #if !defined(__APPLE_ALTIVEC__)
45 /* You are allowed to undef these for C++ compatibility. */
46 #define vector __vector
51 /* Condition register codes for AltiVec predicates. */
54 #define __CR6_EQ_REV 1
56 #define __CR6_LT_REV 3
58 /* These are easy... Same exact arguments. */
60 #define vec_vaddcuw vec_addc
61 #define vec_vand vec_and
62 #define vec_vandc vec_andc
63 #define vec_vrfip vec_ceil
64 #define vec_vcmpbfp vec_cmpb
65 #define vec_vcmpgefp vec_cmpge
66 #define vec_vctsxs vec_cts
67 #define vec_vctuxs vec_ctu
68 #define vec_vexptefp vec_expte
69 #define vec_vrfim vec_floor
70 #define vec_lvx vec_ld
71 #define vec_lvxl vec_ldl
72 #define vec_vlogefp vec_loge
73 #define vec_vmaddfp vec_madd
74 #define vec_vmhaddshs vec_madds
75 #define vec_vmladduhm vec_mladd
76 #define vec_vmhraddshs vec_mradds
77 #define vec_vnmsubfp vec_nmsub
78 #define vec_vnor vec_nor
79 #define vec_vor vec_or
80 #define vec_vpkpx vec_packpx
81 #define vec_vperm vec_perm
82 #define vec_vrefp vec_re
83 #define vec_vrfin vec_round
84 #define vec_vrsqrtefp vec_rsqrte
85 #define vec_vsel vec_sel
86 #define vec_vsldoi vec_sld
87 #define vec_vsl vec_sll
88 #define vec_vslo vec_slo
89 #define vec_vspltisb vec_splat_s8
90 #define vec_vspltish vec_splat_s16
91 #define vec_vspltisw vec_splat_s32
92 #define vec_vsr vec_srl
93 #define vec_vsro vec_sro
94 #define vec_stvx vec_st
95 #define vec_stvxl vec_stl
96 #define vec_vsubcuw vec_subc
97 #define vec_vsum2sws vec_sum2s
98 #define vec_vsumsws vec_sums
99 #define vec_vrfiz vec_trunc
100 #define vec_vxor vec_xor
106 /* Prototypes for builtins that take literals and must always be
108 inline vector float vec_ctf (vector unsigned int, const int) __attribute__ ((always_inline));
109 inline vector float vec_ctf (vector signed int, const int) __attribute__ ((always_inline));
110 inline vector float vec_vcfsx (vector signed int a1, const int a2) __attribute__ ((always_inline));
111 inline vector float vec_vcfux (vector unsigned int a1, const int a2) __attribute__ ((always_inline));
112 inline vector signed int vec_cts (vector float, const int) __attribute__ ((always_inline));
113 inline vector unsigned int vec_ctu (vector float, const int) __attribute__ ((always_inline));
114 inline void vec_dss (const int) __attribute__ ((always_inline));
116 inline void vec_dst (const vector unsigned char *, int, const int) __attribute__ ((always_inline));
117 inline void vec_dst (const vector signed char *, int, const int) __attribute__ ((always_inline));
118 inline void vec_dst (const vector bool char *, int, const int) __attribute__ ((always_inline));
119 inline void vec_dst (const vector unsigned short *, int, const int) __attribute__ ((always_inline));
120 inline void vec_dst (const vector signed short *, int, const int) __attribute__ ((always_inline));
121 inline void vec_dst (const vector bool short *, int, const int) __attribute__ ((always_inline));
122 inline void vec_dst (const vector pixel *, int, const int) __attribute__ ((always_inline));
123 inline void vec_dst (const vector unsigned int *, int, const int) __attribute__ ((always_inline));
124 inline void vec_dst (const vector signed int *, int, const int) __attribute__ ((always_inline));
125 inline void vec_dst (const vector bool int *, int, const int) __attribute__ ((always_inline));
126 inline void vec_dst (const vector float *, int, const int) __attribute__ ((always_inline));
127 inline void vec_dst (const unsigned char *, int, const int) __attribute__ ((always_inline));
128 inline void vec_dst (const signed char *, int, const int) __attribute__ ((always_inline));
129 inline void vec_dst (const unsigned short *, int, const int) __attribute__ ((always_inline));
130 inline void vec_dst (const short *, int, const int) __attribute__ ((always_inline));
131 inline void vec_dst (const unsigned int *, int, const int) __attribute__ ((always_inline));
132 inline void vec_dst (const int *, int, const int) __attribute__ ((always_inline));
133 inline void vec_dst (const unsigned long *, int, const int) __attribute__ ((always_inline));
134 inline void vec_dst (const long *, int, const int) __attribute__ ((always_inline));
135 inline void vec_dst (const float *, int, const int) __attribute__ ((always_inline));
137 inline void vec_dstst (const vector unsigned char *, int, const int) __attribute__ ((always_inline));
138 inline void vec_dstst (const vector signed char *, int, const int) __attribute__ ((always_inline));
139 inline void vec_dstst (const vector bool char *, int, const int) __attribute__ ((always_inline));
140 inline void vec_dstst (const vector unsigned short *, int, const int) __attribute__ ((always_inline));
141 inline void vec_dstst (const vector signed short *, int, const int) __attribute__ ((always_inline));
142 inline void vec_dstst (const vector bool short *, int, const int) __attribute__ ((always_inline));
143 inline void vec_dstst (const vector pixel *, int, const int) __attribute__ ((always_inline));
144 inline void vec_dstst (const vector unsigned int *, int, const int) __attribute__ ((always_inline));
145 inline void vec_dstst (const vector signed int *, int, const int) __attribute__ ((always_inline));
146 inline void vec_dstst (const vector bool int *, int, const int) __attribute__ ((always_inline));
147 inline void vec_dstst (const vector float *, int, const int) __attribute__ ((always_inline));
148 inline void vec_dstst (const unsigned char *, int, const int) __attribute__ ((always_inline));
149 inline void vec_dstst (const signed char *, int, const int) __attribute__ ((always_inline));
150 inline void vec_dstst (const unsigned short *, int, const int) __attribute__ ((always_inline));
151 inline void vec_dstst (const short *, int, const int) __attribute__ ((always_inline));
152 inline void vec_dstst (const unsigned int *, int, const int) __attribute__ ((always_inline));
153 inline void vec_dstst (const int *, int, const int) __attribute__ ((always_inline));
154 inline void vec_dstst (const unsigned long *, int, const int) __attribute__ ((always_inline));
155 inline void vec_dstst (const long *, int, const int) __attribute__ ((always_inline));
156 inline void vec_dstst (const float *, int, const int) __attribute__ ((always_inline));
158 inline void vec_dststt (const vector unsigned char *, int, const int) __attribute__ ((always_inline));
159 inline void vec_dststt (const vector signed char *, int, const int) __attribute__ ((always_inline));
160 inline void vec_dststt (const vector bool char *, int, const int) __attribute__ ((always_inline));
161 inline void vec_dststt (const vector unsigned short *, int, const int) __attribute__ ((always_inline));
162 inline void vec_dststt (const vector signed short *, int, const int) __attribute__ ((always_inline));
163 inline void vec_dststt (const vector bool short *, int, const int) __attribute__ ((always_inline));
164 inline void vec_dststt (const vector pixel *, int, const int) __attribute__ ((always_inline));
165 inline void vec_dststt (const vector unsigned int *, int, const int) __attribute__ ((always_inline));
166 inline void vec_dststt (const vector signed int *, int, const int) __attribute__ ((always_inline));
167 inline void vec_dststt (const vector bool int *, int, const int) __attribute__ ((always_inline));
168 inline void vec_dststt (const vector float *, int, const int) __attribute__ ((always_inline));
169 inline void vec_dststt (const unsigned char *, int, const int) __attribute__ ((always_inline));
170 inline void vec_dststt (const signed char *, int, const int) __attribute__ ((always_inline));
171 inline void vec_dststt (const unsigned short *, int, const int) __attribute__ ((always_inline));
172 inline void vec_dststt (const short *, int, const int) __attribute__ ((always_inline));
173 inline void vec_dststt (const unsigned int *, int, const int) __attribute__ ((always_inline));
174 inline void vec_dststt (const int *, int, const int) __attribute__ ((always_inline));
175 inline void vec_dststt (const unsigned long *, int, const int) __attribute__ ((always_inline));
176 inline void vec_dststt (const long *, int, const int) __attribute__ ((always_inline));
177 inline void vec_dststt (const float *, int, const int) __attribute__ ((always_inline));
179 inline void vec_dstt (const vector unsigned char *, int, const int) __attribute__ ((always_inline));
180 inline void vec_dstt (const vector signed char *, int, const int) __attribute__ ((always_inline));
181 inline void vec_dstt (const vector bool char *, int, const int) __attribute__ ((always_inline));
182 inline void vec_dstt (const vector unsigned short *, int, const int) __attribute__ ((always_inline));
183 inline void vec_dstt (const vector signed short *, int, const int) __attribute__ ((always_inline));
184 inline void vec_dstt (const vector bool short *, int, const int) __attribute__ ((always_inline));
185 inline void vec_dstt (const vector pixel *, int, const int) __attribute__ ((always_inline));
186 inline void vec_dstt (const vector unsigned int *, int, const int) __attribute__ ((always_inline));
187 inline void vec_dstt (const vector signed int *, int, const int) __attribute__ ((always_inline));
188 inline void vec_dstt (const vector bool int *, int, const int) __attribute__ ((always_inline));
189 inline void vec_dstt (const vector float *, int, const int) __attribute__ ((always_inline));
190 inline void vec_dstt (const unsigned char *, int, const int) __attribute__ ((always_inline));
191 inline void vec_dstt (const signed char *, int, const int) __attribute__ ((always_inline));
192 inline void vec_dstt (const unsigned short *, int, const int) __attribute__ ((always_inline));
193 inline void vec_dstt (const short *, int, const int) __attribute__ ((always_inline));
194 inline void vec_dstt (const unsigned int *, int, const int) __attribute__ ((always_inline));
195 inline void vec_dstt (const int *, int, const int) __attribute__ ((always_inline));
196 inline void vec_dstt (const unsigned long *, int, const int) __attribute__ ((always_inline));
197 inline void vec_dstt (const long *, int, const int) __attribute__ ((always_inline));
198 inline void vec_dstt (const float *, int, const int) __attribute__ ((always_inline));
200 inline vector float vec_sld (vector float, vector float, const int) __attribute__ ((always_inline));
201 inline vector signed int vec_sld (vector signed int, vector signed int, const int) __attribute__ ((always_inline));
202 inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const int) __attribute__ ((always_inline));
203 inline vector bool int vec_sld (vector bool int, vector bool int, const int) __attribute__ ((always_inline));
204 inline vector signed short vec_sld (vector signed short, vector signed short, const int) __attribute__ ((always_inline));
205 inline vector unsigned short vec_sld (vector unsigned short, vector unsigned short, const int) __attribute__ ((always_inline));
206 inline vector bool short vec_sld (vector bool short, vector bool short, const int) __attribute__ ((always_inline));
207 inline vector pixel vec_sld (vector pixel, vector pixel, const int) __attribute__ ((always_inline));
208 inline vector signed char vec_sld (vector signed char, vector signed char, const int) __attribute__ ((always_inline));
209 inline vector unsigned char vec_sld (vector unsigned char, vector unsigned char, const int) __attribute__ ((always_inline));
210 inline vector bool char vec_sld (vector bool char, vector bool char, const int) __attribute__ ((always_inline));
211 inline vector signed char vec_splat (vector signed char, const int) __attribute__ ((always_inline));
212 inline vector unsigned char vec_splat (vector unsigned char, const int) __attribute__ ((always_inline));
213 inline vector bool char vec_splat (vector bool char, const int) __attribute__ ((always_inline));
214 inline vector signed short vec_splat (vector signed short, const int) __attribute__ ((always_inline));
215 inline vector unsigned short vec_splat (vector unsigned short, const int) __attribute__ ((always_inline));
216 inline vector bool short vec_splat (vector bool short, const int) __attribute__ ((always_inline));
217 inline vector pixel vec_splat (vector pixel, const int) __attribute__ ((always_inline));
218 inline vector float vec_splat (vector float, const int) __attribute__ ((always_inline));
219 inline vector signed int vec_splat (vector signed int, const int) __attribute__ ((always_inline));
220 inline vector unsigned int vec_splat (vector unsigned int, const int) __attribute__ ((always_inline));
221 inline vector bool int vec_splat (vector bool int, const int) __attribute__ ((always_inline));
222 inline vector signed char vec_splat_s8 (const int) __attribute__ ((always_inline));
223 inline vector signed short vec_splat_s16 (const int) __attribute__ ((always_inline));
224 inline vector signed int vec_splat_s32 (const int) __attribute__ ((always_inline));
225 inline vector unsigned char vec_splat_u8 (const int) __attribute__ ((always_inline));
226 inline vector unsigned short vec_splat_u16 (const int) __attribute__ ((always_inline));
227 inline vector unsigned int vec_splat_u32 (const int) __attribute__ ((always_inline));
228 inline vector float vec_vspltw (vector float a1, const int a2) __attribute__ ((always_inline));
229 inline vector signed int vec_vspltw (vector signed int a1, const int a2) __attribute__ ((always_inline));
230 inline vector unsigned int vec_vspltw (vector unsigned int a1, const int a2) __attribute__ ((always_inline));
231 inline vector signed short vec_vsplth (vector signed short a1, const int a2) __attribute__ ((always_inline));
232 inline vector unsigned short vec_vsplth (vector unsigned short a1, const int a2) __attribute__ ((always_inline));
233 inline vector signed char vec_vspltb (vector signed char a1, const int a2) __attribute__ ((always_inline));
234 inline vector unsigned char vec_vspltb (vector unsigned char a1, const int a2) __attribute__ ((always_inline));
238 template<typename _Tp>
239 struct __vec_step_help
241 // All proper vector types will specialize _S_elem.
245 struct __vec_step_help<vector signed short>
247 static const int _S_elem = 8;
251 struct __vec_step_help<vector unsigned short>
253 static const int _S_elem = 8;
257 struct __vec_step_help<vector bool short>
259 static const int _S_elem = 8;
263 struct __vec_step_help<vector pixel>
265 static const int _S_elem = 8;
269 struct __vec_step_help<vector signed int>
271 static const int _S_elem = 4;
275 struct __vec_step_help<vector unsigned int>
277 static const int _S_elem = 4;
281 struct __vec_step_help<vector bool int>
283 static const int _S_elem = 4;
287 struct __vec_step_help<vector unsigned char>
289 static const int _S_elem = 16;
293 struct __vec_step_help<vector signed char>
295 static const int _S_elem = 16;
299 struct __vec_step_help<vector bool char>
301 static const int _S_elem = 16;
305 struct __vec_step_help<vector float>
307 static const int _S_elem = 4;
310 #define vec_step(t) __vec_step_help<typeof(t)>::_S_elem
314 inline vector signed char
315 vec_abs (vector signed char a1)
317 return __builtin_altivec_abs_v16qi (a1);
320 inline vector signed short
321 vec_abs (vector signed short a1)
323 return __builtin_altivec_abs_v8hi (a1);
326 inline vector signed int
327 vec_abs (vector signed int a1)
329 return __builtin_altivec_abs_v4si (a1);
333 vec_abs (vector float a1)
335 return __builtin_altivec_abs_v4sf (a1);
340 inline vector signed char
341 vec_abss (vector signed char a1)
343 return __builtin_altivec_abss_v16qi (a1);
346 inline vector signed short
347 vec_abss (vector signed short a1)
349 return __builtin_altivec_abss_v8hi (a1);
352 inline vector signed int
353 vec_abss (vector signed int a1)
355 return __builtin_altivec_abss_v4si (a1);
360 inline vector signed char
361 vec_add (vector bool char a1, vector signed char a2)
363 return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
366 inline vector signed char
367 vec_add (vector signed char a1, vector bool char a2)
369 return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
372 inline vector signed char
373 vec_add (vector signed char a1, vector signed char a2)
375 return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
378 inline vector unsigned char
379 vec_add (vector bool char a1, vector unsigned char a2)
381 return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
384 inline vector unsigned char
385 vec_add (vector unsigned char a1, vector bool char a2)
387 return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
390 inline vector unsigned char
391 vec_add (vector unsigned char a1, vector unsigned char a2)
393 return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
396 inline vector signed short
397 vec_add (vector bool short a1, vector signed short a2)
399 return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
402 inline vector signed short
403 vec_add (vector signed short a1, vector bool short a2)
405 return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
408 inline vector signed short
409 vec_add (vector signed short a1, vector signed short a2)
411 return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
414 inline vector unsigned short
415 vec_add (vector bool short a1, vector unsigned short a2)
417 return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
420 inline vector unsigned short
421 vec_add (vector unsigned short a1, vector bool short a2)
423 return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
426 inline vector unsigned short
427 vec_add (vector unsigned short a1, vector unsigned short a2)
429 return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
432 inline vector signed int
433 vec_add (vector bool int a1, vector signed int a2)
435 return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
438 inline vector signed int
439 vec_add (vector signed int a1, vector bool int a2)
441 return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
444 inline vector signed int
445 vec_add (vector signed int a1, vector signed int a2)
447 return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
450 inline vector unsigned int
451 vec_add (vector bool int a1, vector unsigned int a2)
453 return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
456 inline vector unsigned int
457 vec_add (vector unsigned int a1, vector bool int a2)
459 return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
462 inline vector unsigned int
463 vec_add (vector unsigned int a1, vector unsigned int a2)
465 return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
469 vec_add (vector float a1, vector float a2)
471 return (vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2);
477 vec_vaddfp (vector float a1, vector float a2)
479 return (vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2);
484 inline vector signed int
485 vec_vadduwm (vector signed int a1, vector signed int a2)
487 return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
490 inline vector unsigned int
491 vec_vadduwm (vector signed int a1, vector unsigned int a2)
493 return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
496 inline vector unsigned int
497 vec_vadduwm (vector unsigned int a1, vector signed int a2)
499 return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
502 inline vector unsigned int
503 vec_vadduwm (vector unsigned int a1, vector unsigned int a2)
505 return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
510 inline vector signed short
511 vec_vadduhm (vector signed short a1, vector signed short a2)
513 return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
516 inline vector unsigned short
517 vec_vadduhm (vector signed short a1, vector unsigned short a2)
519 return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
522 inline vector unsigned short
523 vec_vadduhm (vector unsigned short a1, vector signed short a2)
525 return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
528 inline vector unsigned short
529 vec_vadduhm (vector unsigned short a1, vector unsigned short a2)
531 return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
536 inline vector signed char
537 vec_vaddubm (vector signed char a1, vector signed char a2)
539 return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
542 inline vector unsigned char
543 vec_vaddubm (vector signed char a1, vector unsigned char a2)
545 return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
548 inline vector unsigned char
549 vec_vaddubm (vector unsigned char a1, vector signed char a2)
551 return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
554 inline vector unsigned char
555 vec_vaddubm (vector unsigned char a1, vector unsigned char a2)
557 return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
562 inline vector unsigned int
563 vec_addc (vector unsigned int a1, vector unsigned int a2)
565 return (vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) a1, (vector signed int) a2);
570 inline vector unsigned char
571 vec_adds (vector bool char a1, vector unsigned char a2)
573 return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
576 inline vector unsigned char
577 vec_adds (vector unsigned char a1, vector bool char a2)
579 return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
582 inline vector unsigned char
583 vec_adds (vector unsigned char a1, vector unsigned char a2)
585 return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
588 inline vector signed char
589 vec_adds (vector bool char a1, vector signed char a2)
591 return (vector signed char) __builtin_altivec_vaddsbs ((vector signed char) a1, (vector signed char) a2);
594 inline vector signed char
595 vec_adds (vector signed char a1, vector bool char a2)
597 return (vector signed char) __builtin_altivec_vaddsbs ((vector signed char) a1, (vector signed char) a2);
600 inline vector signed char
601 vec_adds (vector signed char a1, vector signed char a2)
603 return (vector signed char) __builtin_altivec_vaddsbs ((vector signed char) a1, (vector signed char) a2);
606 inline vector unsigned short
607 vec_adds (vector bool short a1, vector unsigned short a2)
609 return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
612 inline vector unsigned short
613 vec_adds (vector unsigned short a1, vector bool short a2)
615 return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
618 inline vector unsigned short
619 vec_adds (vector unsigned short a1, vector unsigned short a2)
621 return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
624 inline vector signed short
625 vec_adds (vector bool short a1, vector signed short a2)
627 return (vector signed short) __builtin_altivec_vaddshs ((vector signed short) a1, (vector signed short) a2);
630 inline vector signed short
631 vec_adds (vector signed short a1, vector bool short a2)
633 return (vector signed short) __builtin_altivec_vaddshs ((vector signed short) a1, (vector signed short) a2);
636 inline vector signed short
637 vec_adds (vector signed short a1, vector signed short a2)
639 return (vector signed short) __builtin_altivec_vaddshs ((vector signed short) a1, (vector signed short) a2);
642 inline vector unsigned int
643 vec_adds (vector bool int a1, vector unsigned int a2)
645 return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
648 inline vector unsigned int
649 vec_adds (vector unsigned int a1, vector bool int a2)
651 return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
654 inline vector unsigned int
655 vec_adds (vector unsigned int a1, vector unsigned int a2)
657 return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
660 inline vector signed int
661 vec_adds (vector bool int a1, vector signed int a2)
663 return (vector signed int) __builtin_altivec_vaddsws ((vector signed int) a1, (vector signed int) a2);
666 inline vector signed int
667 vec_adds (vector signed int a1, vector bool int a2)
669 return (vector signed int) __builtin_altivec_vaddsws ((vector signed int) a1, (vector signed int) a2);
672 inline vector signed int
673 vec_adds (vector signed int a1, vector signed int a2)
675 return (vector signed int) __builtin_altivec_vaddsws ((vector signed int) a1, (vector signed int) a2);
680 inline vector signed int
681 vec_vaddsws (vector signed int a1, vector signed int a2)
683 return (vector signed int) __builtin_altivec_vaddsws ((vector signed int) a1, (vector signed int) a2);
688 inline vector unsigned int
689 vec_vadduws (vector signed int a1, vector unsigned int a2)
691 return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
694 inline vector unsigned int
695 vec_vadduws (vector unsigned int a1, vector signed int a2)
697 return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
700 inline vector unsigned int
701 vec_vadduws (vector unsigned int a1, vector unsigned int a2)
703 return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
707 inline vector signed short
708 vec_vaddshs (vector signed short a1, vector signed short a2)
710 return (vector signed short) __builtin_altivec_vaddshs ((vector signed short) a1, (vector signed short) a2);
715 inline vector unsigned short
716 vec_vadduhs (vector signed short a1, vector unsigned short a2)
718 return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
721 inline vector unsigned short
722 vec_vadduhs (vector unsigned short a1, vector signed short a2)
724 return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
727 inline vector unsigned short
728 vec_vadduhs (vector unsigned short a1, vector unsigned short a2)
730 return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
735 inline vector signed char
736 vec_vaddsbs (vector signed char a1, vector signed char a2)
738 return (vector signed char) __builtin_altivec_vaddsbs ((vector signed char) a1, (vector signed char) a2);
743 inline vector unsigned char
744 vec_vaddubs (vector signed char a1, vector unsigned char a2)
746 return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
749 inline vector unsigned char
750 vec_vaddubs (vector unsigned char a1, vector signed char a2)
752 return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
755 inline vector unsigned char
756 vec_vaddubs (vector unsigned char a1, vector unsigned char a2)
758 return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
764 vec_and (vector float a1, vector float a2)
766 return (vector float) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
770 vec_and (vector float a1, vector bool int a2)
772 return (vector float) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
776 vec_and (vector bool int a1, vector float a2)
778 return (vector float) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
781 inline vector bool int
782 vec_and (vector bool int a1, vector bool int a2)
784 return (vector bool int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
787 inline vector signed int
788 vec_and (vector bool int a1, vector signed int a2)
790 return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
793 inline vector signed int
794 vec_and (vector signed int a1, vector bool int a2)
796 return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
799 inline vector signed int
800 vec_and (vector signed int a1, vector signed int a2)
802 return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
805 inline vector unsigned int
806 vec_and (vector bool int a1, vector unsigned int a2)
808 return (vector unsigned int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
811 inline vector unsigned int
812 vec_and (vector unsigned int a1, vector bool int a2)
814 return (vector unsigned int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
817 inline vector unsigned int
818 vec_and (vector unsigned int a1, vector unsigned int a2)
820 return (vector unsigned int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
823 inline vector bool short
824 vec_and (vector bool short a1, vector bool short a2)
826 return (vector bool short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
829 inline vector signed short
830 vec_and (vector bool short a1, vector signed short a2)
832 return (vector signed short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
835 inline vector signed short
836 vec_and (vector signed short a1, vector bool short a2)
838 return (vector signed short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
841 inline vector signed short
842 vec_and (vector signed short a1, vector signed short a2)
844 return (vector signed short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
847 inline vector unsigned short
848 vec_and (vector bool short a1, vector unsigned short a2)
850 return (vector unsigned short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
853 inline vector unsigned short
854 vec_and (vector unsigned short a1, vector bool short a2)
856 return (vector unsigned short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
859 inline vector unsigned short
860 vec_and (vector unsigned short a1, vector unsigned short a2)
862 return (vector unsigned short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
865 inline vector signed char
866 vec_and (vector bool char a1, vector signed char a2)
868 return (vector signed char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
871 inline vector bool char
872 vec_and (vector bool char a1, vector bool char a2)
874 return (vector bool char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
877 inline vector signed char
878 vec_and (vector signed char a1, vector bool char a2)
880 return (vector signed char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
883 inline vector signed char
884 vec_and (vector signed char a1, vector signed char a2)
886 return (vector signed char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
889 inline vector unsigned char
890 vec_and (vector bool char a1, vector unsigned char a2)
892 return (vector unsigned char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
895 inline vector unsigned char
896 vec_and (vector unsigned char a1, vector bool char a2)
898 return (vector unsigned char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
901 inline vector unsigned char
902 vec_and (vector unsigned char a1, vector unsigned char a2)
904 return (vector unsigned char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
910 vec_andc (vector float a1, vector float a2)
912 return (vector float) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
916 vec_andc (vector float a1, vector bool int a2)
918 return (vector float) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
922 vec_andc (vector bool int a1, vector float a2)
924 return (vector float) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
927 inline vector bool int
928 vec_andc (vector bool int a1, vector bool int a2)
930 return (vector bool int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
933 inline vector signed int
934 vec_andc (vector bool int a1, vector signed int a2)
936 return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
939 inline vector signed int
940 vec_andc (vector signed int a1, vector bool int a2)
942 return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
945 inline vector signed int
946 vec_andc (vector signed int a1, vector signed int a2)
948 return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
951 inline vector unsigned int
952 vec_andc (vector bool int a1, vector unsigned int a2)
954 return (vector unsigned int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
957 inline vector unsigned int
958 vec_andc (vector unsigned int a1, vector bool int a2)
960 return (vector unsigned int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
963 inline vector unsigned int
964 vec_andc (vector unsigned int a1, vector unsigned int a2)
966 return (vector unsigned int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
969 inline vector bool short
970 vec_andc (vector bool short a1, vector bool short a2)
972 return (vector bool short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
975 inline vector signed short
976 vec_andc (vector bool short a1, vector signed short a2)
978 return (vector signed short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
981 inline vector signed short
982 vec_andc (vector signed short a1, vector bool short a2)
984 return (vector signed short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
987 inline vector signed short
988 vec_andc (vector signed short a1, vector signed short a2)
990 return (vector signed short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
993 inline vector unsigned short
994 vec_andc (vector bool short a1, vector unsigned short a2)
996 return (vector unsigned short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
999 inline vector unsigned short
1000 vec_andc (vector unsigned short a1, vector bool short a2)
1002 return (vector unsigned short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1005 inline vector unsigned short
1006 vec_andc (vector unsigned short a1, vector unsigned short a2)
1008 return (vector unsigned short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1011 inline vector signed char
1012 vec_andc (vector bool char a1, vector signed char a2)
1014 return (vector signed char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1017 inline vector bool char
1018 vec_andc (vector bool char a1, vector bool char a2)
1020 return (vector bool char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1023 inline vector signed char
1024 vec_andc (vector signed char a1, vector bool char a2)
1026 return (vector signed char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1029 inline vector signed char
1030 vec_andc (vector signed char a1, vector signed char a2)
1032 return (vector signed char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1035 inline vector unsigned char
1036 vec_andc (vector bool char a1, vector unsigned char a2)
1038 return (vector unsigned char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1041 inline vector unsigned char
1042 vec_andc (vector unsigned char a1, vector bool char a2)
1044 return (vector unsigned char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1047 inline vector unsigned char
1048 vec_andc (vector unsigned char a1, vector unsigned char a2)
1050 return (vector unsigned char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
1055 inline vector unsigned char
1056 vec_avg (vector unsigned char a1, vector unsigned char a2)
1058 return (vector unsigned char) __builtin_altivec_vavgub ((vector signed char) a1, (vector signed char) a2);
1061 inline vector signed char
1062 vec_avg (vector signed char a1, vector signed char a2)
1064 return (vector signed char) __builtin_altivec_vavgsb ((vector signed char) a1, (vector signed char) a2);
1067 inline vector unsigned short
1068 vec_avg (vector unsigned short a1, vector unsigned short a2)
1070 return (vector unsigned short) __builtin_altivec_vavguh ((vector signed short) a1, (vector signed short) a2);
1073 inline vector signed short
1074 vec_avg (vector signed short a1, vector signed short a2)
1076 return (vector signed short) __builtin_altivec_vavgsh ((vector signed short) a1, (vector signed short) a2);
1079 inline vector unsigned int
1080 vec_avg (vector unsigned int a1, vector unsigned int a2)
1082 return (vector unsigned int) __builtin_altivec_vavguw ((vector signed int) a1, (vector signed int) a2);
1085 inline vector signed int
1086 vec_avg (vector signed int a1, vector signed int a2)
1088 return (vector signed int) __builtin_altivec_vavgsw ((vector signed int) a1, (vector signed int) a2);
1093 inline vector signed int
1094 vec_vavgsw (vector signed int a1, vector signed int a2)
1096 return (vector signed int) __builtin_altivec_vavgsw ((vector signed int) a1, (vector signed int) a2);
1101 inline vector unsigned int
1102 vec_vavguw (vector unsigned int a1, vector unsigned int a2)
1104 return (vector unsigned int) __builtin_altivec_vavguw ((vector signed int) a1, (vector signed int) a2);
1109 inline vector signed short
1110 vec_vavgsh (vector signed short a1, vector signed short a2)
1112 return (vector signed short) __builtin_altivec_vavgsh ((vector signed short) a1, (vector signed short) a2);
1117 inline vector unsigned short
1118 vec_vavguh (vector unsigned short a1, vector unsigned short a2)
1120 return (vector unsigned short) __builtin_altivec_vavguh ((vector signed short) a1, (vector signed short) a2);
1125 inline vector signed char
1126 vec_vavgsb (vector signed char a1, vector signed char a2)
1128 return (vector signed char) __builtin_altivec_vavgsb ((vector signed char) a1, (vector signed char) a2);
1133 inline vector unsigned char
1134 vec_vavgub (vector unsigned char a1, vector unsigned char a2)
1136 return (vector unsigned char) __builtin_altivec_vavgub ((vector signed char) a1, (vector signed char) a2);
1142 vec_ceil (vector float a1)
1144 return (vector float) __builtin_altivec_vrfip ((vector float) a1);
1149 inline vector signed int
1150 vec_cmpb (vector float a1, vector float a2)
1152 return (vector signed int) __builtin_altivec_vcmpbfp ((vector float) a1, (vector float) a2);
1157 inline vector bool char
1158 vec_cmpeq (vector signed char a1, vector signed char a2)
1160 return (vector bool char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
1163 inline vector bool char
1164 vec_cmpeq (vector unsigned char a1, vector unsigned char a2)
1166 return (vector bool char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
1169 inline vector bool short
1170 vec_cmpeq (vector signed short a1, vector signed short a2)
1172 return (vector bool short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
1175 inline vector bool short
1176 vec_cmpeq (vector unsigned short a1, vector unsigned short a2)
1178 return (vector bool short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
1181 inline vector bool int
1182 vec_cmpeq (vector signed int a1, vector signed int a2)
1184 return (vector bool int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
1187 inline vector bool int
1188 vec_cmpeq (vector unsigned int a1, vector unsigned int a2)
1190 return (vector bool int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
1193 inline vector bool int
1194 vec_cmpeq (vector float a1, vector float a2)
1196 return (vector bool int) __builtin_altivec_vcmpeqfp ((vector float) a1, (vector float) a2);
1201 inline vector signed int
1202 vec_vcmpeqfp (vector float a1, vector float a2)
1204 return (vector signed int) __builtin_altivec_vcmpeqfp ((vector float) a1, (vector float) a2);
1209 inline vector signed int
1210 vec_vcmpequw (vector signed int a1, vector signed int a2)
1212 return (vector signed int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
1215 inline vector signed int
1216 vec_vcmpequw (vector unsigned int a1, vector unsigned int a2)
1218 return (vector signed int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
1223 inline vector signed short
1224 vec_vcmpequh (vector signed short a1, vector signed short a2)
1226 return (vector signed short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
1229 inline vector signed short
1230 vec_vcmpequh (vector unsigned short a1, vector unsigned short a2)
1232 return (vector signed short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
1237 inline vector signed char
1238 vec_vcmpequb (vector signed char a1, vector signed char a2)
1240 return (vector signed char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
1243 inline vector signed char
1244 vec_vcmpequb (vector unsigned char a1, vector unsigned char a2)
1246 return (vector signed char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
1251 inline vector bool int
1252 vec_cmpge (vector float a1, vector float a2)
1254 return (vector bool int) __builtin_altivec_vcmpgefp ((vector float) a1, (vector float) a2);
1259 inline vector bool char
1260 vec_cmpgt (vector unsigned char a1, vector unsigned char a2)
1262 return (vector bool char) __builtin_altivec_vcmpgtub ((vector signed char) a1, (vector signed char) a2);
1265 inline vector bool char
1266 vec_cmpgt (vector signed char a1, vector signed char a2)
1268 return (vector bool char) __builtin_altivec_vcmpgtsb ((vector signed char) a1, (vector signed char) a2);
1271 inline vector bool short
1272 vec_cmpgt (vector unsigned short a1, vector unsigned short a2)
1274 return (vector bool short) __builtin_altivec_vcmpgtuh ((vector signed short) a1, (vector signed short) a2);
1277 inline vector bool short
1278 vec_cmpgt (vector signed short a1, vector signed short a2)
1280 return (vector bool short) __builtin_altivec_vcmpgtsh ((vector signed short) a1, (vector signed short) a2);
1283 inline vector bool int
1284 vec_cmpgt (vector unsigned int a1, vector unsigned int a2)
1286 return (vector bool int) __builtin_altivec_vcmpgtuw ((vector signed int) a1, (vector signed int) a2);
1289 inline vector bool int
1290 vec_cmpgt (vector signed int a1, vector signed int a2)
1292 return (vector bool int) __builtin_altivec_vcmpgtsw ((vector signed int) a1, (vector signed int) a2);
1295 inline vector bool int
1296 vec_cmpgt (vector float a1, vector float a2)
1298 return (vector bool int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
1303 inline vector signed int
1304 vec_vcmpgtfp (vector float a1, vector float a2)
1306 return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
1311 inline vector signed int
1312 vec_vcmpgtsw (vector signed int a1, vector signed int a2)
1314 return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a1, (vector signed int) a2);
1319 inline vector signed int
1320 vec_vcmpgtuw (vector unsigned int a1, vector unsigned int a2)
1322 return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a1, (vector signed int) a2);
1327 inline vector signed short
1328 vec_cmpgtsh (vector signed short a1, vector signed short a2)
1330 return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a1, (vector signed short) a2);
1335 inline vector signed short
1336 vec_vcmpgtuh (vector unsigned short a1, vector unsigned short a2)
1338 return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a1, (vector signed short) a2);
1343 inline vector signed char
1344 vec_vcmpgtsb (vector signed char a1, vector signed char a2)
1346 return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a1, (vector signed char) a2);
1351 inline vector signed char
1352 vec_vcmpgtub (vector unsigned char a1, vector unsigned char a2)
1354 return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a1, (vector signed char) a2);
1359 inline vector bool int
1360 vec_cmple (vector float a1, vector float a2)
1362 return (vector bool int) __builtin_altivec_vcmpgefp ((vector float) a2, (vector float) a1);
1367 inline vector bool char
1368 vec_cmplt (vector unsigned char a1, vector unsigned char a2)
1370 return (vector bool char) __builtin_altivec_vcmpgtub ((vector signed char) a2, (vector signed char) a1);
1373 inline vector bool char
1374 vec_cmplt (vector signed char a1, vector signed char a2)
1376 return (vector bool char) __builtin_altivec_vcmpgtsb ((vector signed char) a2, (vector signed char) a1);
1379 inline vector bool short
1380 vec_cmplt (vector unsigned short a1, vector unsigned short a2)
1382 return (vector bool short) __builtin_altivec_vcmpgtuh ((vector signed short) a2, (vector signed short) a1);
1385 inline vector bool short
1386 vec_cmplt (vector signed short a1, vector signed short a2)
1388 return (vector bool short) __builtin_altivec_vcmpgtsh ((vector signed short) a2, (vector signed short) a1);
1391 inline vector bool int
1392 vec_cmplt (vector unsigned int a1, vector unsigned int a2)
1394 return (vector bool int) __builtin_altivec_vcmpgtuw ((vector signed int) a2, (vector signed int) a1);
1397 inline vector bool int
1398 vec_cmplt (vector signed int a1, vector signed int a2)
1400 return (vector bool int) __builtin_altivec_vcmpgtsw ((vector signed int) a2, (vector signed int) a1);
1403 inline vector bool int
1404 vec_cmplt (vector float a1, vector float a2)
1406 return (vector bool int) __builtin_altivec_vcmpgtfp ((vector float) a2, (vector float) a1);
1412 vec_ctf (vector unsigned int a1, const int a2)
1414 return (vector float) __builtin_altivec_vcfux ((vector signed int) a1, a2);
1418 vec_ctf (vector signed int a1, const int a2)
1420 return (vector float) __builtin_altivec_vcfsx ((vector signed int) a1, a2);
1426 vec_vcfsx (vector signed int a1, const int a2)
1428 return (vector float) __builtin_altivec_vcfsx ((vector signed int) a1, a2);
1434 vec_vcfux (vector unsigned int a1, const int a2)
1436 return (vector float) __builtin_altivec_vcfux ((vector signed int) a1, a2);
1441 inline vector signed int
1442 vec_cts (vector float a1, const int a2)
1444 return (vector signed int) __builtin_altivec_vctsxs ((vector float) a1, a2);
1449 inline vector unsigned int
1450 vec_ctu (vector float a1, const int a2)
1452 return (vector unsigned int) __builtin_altivec_vctuxs ((vector float) a1, a2);
1458 vec_dss (const int a1)
1460 __builtin_altivec_dss (a1);
1468 __builtin_altivec_dssall ();
1474 vec_dst (const vector unsigned char *a1, int a2, const int a3)
1476 __builtin_altivec_dst ((void *) a1, a2, a3);
1480 vec_dst (const vector signed char *a1, int a2, const int a3)
1482 __builtin_altivec_dst ((void *) a1, a2, a3);
1486 vec_dst (const vector bool char *a1, int a2, const int a3)
1488 __builtin_altivec_dst ((void *) a1, a2, a3);
1492 vec_dst (const vector unsigned short *a1, int a2, const int a3)
1494 __builtin_altivec_dst ((void *) a1, a2, a3);
1498 vec_dst (const vector signed short *a1, int a2, const int a3)
1500 __builtin_altivec_dst ((void *) a1, a2, a3);
1504 vec_dst (const vector bool short *a1, int a2, const int a3)
1506 __builtin_altivec_dst ((void *) a1, a2, a3);
1510 vec_dst (const vector pixel *a1, int a2, const int a3)
1512 __builtin_altivec_dst ((void *) a1, a2, a3);
1516 vec_dst (const vector unsigned int *a1, int a2, const int a3)
1518 __builtin_altivec_dst ((void *) a1, a2, a3);
1522 vec_dst (const vector signed int *a1, int a2, const int a3)
1524 __builtin_altivec_dst ((void *) a1, a2, a3);
1528 vec_dst (const vector bool int *a1, int a2, const int a3)
1530 __builtin_altivec_dst ((void *) a1, a2, a3);
1534 vec_dst (const vector float *a1, int a2, const int a3)
1536 __builtin_altivec_dst ((void *) a1, a2, a3);
1540 vec_dst (const unsigned char *a1, int a2, const int a3)
1542 __builtin_altivec_dst ((void *) a1, a2, a3);
1546 vec_dst (const signed char *a1, int a2, const int a3)
1548 __builtin_altivec_dst ((void *) a1, a2, a3);
1552 vec_dst (const unsigned short *a1, int a2, const int a3)
1554 __builtin_altivec_dst ((void *) a1, a2, a3);
1558 vec_dst (const short *a1, int a2, const int a3)
1560 __builtin_altivec_dst ((void *) a1, a2, a3);
1564 vec_dst (const unsigned int *a1, int a2, const int a3)
1566 __builtin_altivec_dst ((void *) a1, a2, a3);
1570 vec_dst (const int *a1, int a2, const int a3)
1572 __builtin_altivec_dst ((void *) a1, a2, a3);
1576 vec_dst (const unsigned long *a1, int a2, const int a3)
1578 __builtin_altivec_dst ((void *) a1, a2, a3);
1582 vec_dst (const long *a1, int a2, const int a3)
1584 __builtin_altivec_dst ((void *) a1, a2, a3);
1588 vec_dst (float *a1, int a2, const int a3)
1590 __builtin_altivec_dst ((void *) a1, a2, a3);
1596 vec_dstst (const vector unsigned char *a1, int a2, const int a3)
1598 __builtin_altivec_dstst ((void *) a1, a2, a3);
1602 vec_dstst (const vector signed char *a1, int a2, const int a3)
1604 __builtin_altivec_dstst ((void *) a1, a2, a3);
1608 vec_dstst (const vector bool char *a1, int a2, const int a3)
1610 __builtin_altivec_dstst ((void *) a1, a2, a3);
1614 vec_dstst (const vector unsigned short *a1, int a2, const int a3)
1616 __builtin_altivec_dstst ((void *) a1, a2, a3);
1620 vec_dstst (const vector signed short *a1, int a2, const int a3)
1622 __builtin_altivec_dstst ((void *) a1, a2, a3);
1626 vec_dstst (const vector bool short *a1, int a2, const int a3)
1628 __builtin_altivec_dstst ((void *) a1, a2, a3);
1632 vec_dstst (const vector pixel *a1, int a2, const int a3)
1634 __builtin_altivec_dstst ((void *) a1, a2, a3);
1638 vec_dstst (const vector unsigned int *a1, int a2, const int a3)
1640 __builtin_altivec_dstst ((void *) a1, a2, a3);
1644 vec_dstst (const vector signed int *a1, int a2, const int a3)
1646 __builtin_altivec_dstst ((void *) a1, a2, a3);
1650 vec_dstst (const vector bool int *a1, int a2, const int a3)
1652 __builtin_altivec_dstst ((void *) a1, a2, a3);
1656 vec_dstst (const vector float *a1, int a2, const int a3)
1658 __builtin_altivec_dstst ((void *) a1, a2, a3);
1662 vec_dstst (const unsigned char *a1, int a2, const int a3)
1664 __builtin_altivec_dstst ((void *) a1, a2, a3);
1668 vec_dstst (const signed char *a1, int a2, const int a3)
1670 __builtin_altivec_dstst ((void *) a1, a2, a3);
1674 vec_dstst (const unsigned short *a1, int a2, const int a3)
1676 __builtin_altivec_dstst ((void *) a1, a2, a3);
1680 vec_dstst (const short *a1, int a2, const int a3)
1682 __builtin_altivec_dstst ((void *) a1, a2, a3);
1686 vec_dstst (const unsigned int *a1, int a2, const int a3)
1688 __builtin_altivec_dstst ((void *) a1, a2, a3);
1692 vec_dstst (const int *a1, int a2, const int a3)
1694 __builtin_altivec_dstst ((void *) a1, a2, a3);
1698 vec_dstst (const unsigned long *a1, int a2, const int a3)
1700 __builtin_altivec_dstst ((void *) a1, a2, a3);
1704 vec_dstst (const long *a1, int a2, const int a3)
1706 __builtin_altivec_dstst ((void *) a1, a2, a3);
1710 vec_dstst (float *a1, int a2, const int a3)
1712 __builtin_altivec_dstst ((void *) a1, a2, a3);
1718 vec_dststt (const vector unsigned char *a1, int a2, const int a3)
1720 __builtin_altivec_dststt ((void *) a1, a2, a3);
1724 vec_dststt (const vector signed char *a1, int a2, const int a3)
1726 __builtin_altivec_dststt ((void *) a1, a2, a3);
1730 vec_dststt (const vector bool char *a1, int a2, const int a3)
1732 __builtin_altivec_dststt ((void *) a1, a2, a3);
1736 vec_dststt (const vector unsigned short *a1, int a2, const int a3)
1738 __builtin_altivec_dststt ((void *) a1, a2, a3);
1742 vec_dststt (const vector signed short *a1, int a2, const int a3)
1744 __builtin_altivec_dststt ((void *) a1, a2, a3);
1748 vec_dststt (const vector bool short *a1, int a2, const int a3)
1750 __builtin_altivec_dststt ((void *) a1, a2, a3);
1754 vec_dststt (const vector pixel *a1, int a2, const int a3)
1756 __builtin_altivec_dststt ((void *) a1, a2, a3);
1760 vec_dststt (const vector unsigned int *a1, int a2, const int a3)
1762 __builtin_altivec_dststt ((void *) a1, a2, a3);
1766 vec_dststt (const vector signed int *a1, int a2, const int a3)
1768 __builtin_altivec_dststt ((void *) a1, a2, a3);
1772 vec_dststt (const vector bool int *a1, int a2, const int a3)
1774 __builtin_altivec_dststt ((void *) a1, a2, a3);
1778 vec_dststt (const vector float *a1, int a2, const int a3)
1780 __builtin_altivec_dststt ((void *) a1, a2, a3);
1784 vec_dststt (const unsigned char *a1, int a2, const int a3)
1786 __builtin_altivec_dststt ((void *) a1, a2, a3);
1790 vec_dststt (const signed char *a1, int a2, const int a3)
1792 __builtin_altivec_dststt ((void *) a1, a2, a3);
1796 vec_dststt (const unsigned short *a1, int a2, const int a3)
1798 __builtin_altivec_dststt ((void *) a1, a2, a3);
1802 vec_dststt (const short *a1, int a2, const int a3)
1804 __builtin_altivec_dststt ((void *) a1, a2, a3);
1808 vec_dststt (const unsigned int *a1, int a2, const int a3)
1810 __builtin_altivec_dststt ((void *) a1, a2, a3);
1814 vec_dststt (const int *a1, int a2, const int a3)
1816 __builtin_altivec_dststt ((void *) a1, a2, a3);
1820 vec_dststt (const unsigned long *a1, int a2, const int a3)
1822 __builtin_altivec_dststt ((void *) a1, a2, a3);
1826 vec_dststt (const long *a1, int a2, const int a3)
1828 __builtin_altivec_dststt ((void *) a1, a2, a3);
1832 vec_dststt (float *a1, int a2, const int a3)
1834 __builtin_altivec_dststt ((void *) a1, a2, a3);
1840 vec_dstt (const vector unsigned char *a1, int a2, const int a3)
1842 __builtin_altivec_dstt ((void *) a1, a2, a3);
1846 vec_dstt (const vector signed char *a1, int a2, const int a3)
1848 __builtin_altivec_dstt ((void *) a1, a2, a3);
1852 vec_dstt (const vector bool char *a1, int a2, const int a3)
1854 __builtin_altivec_dstt ((void *) a1, a2, a3);
1858 vec_dstt (const vector unsigned short *a1, int a2, const int a3)
1860 __builtin_altivec_dstt ((void *) a1, a2, a3);
1864 vec_dstt (const vector signed short *a1, int a2, const int a3)
1866 __builtin_altivec_dstt ((void *) a1, a2, a3);
1870 vec_dstt (const vector bool short *a1, int a2, const int a3)
1872 __builtin_altivec_dstt ((void *) a1, a2, a3);
1876 vec_dstt (const vector pixel *a1, int a2, const int a3)
1878 __builtin_altivec_dstt ((void *) a1, a2, a3);
1882 vec_dstt (const vector unsigned int *a1, int a2, const int a3)
1884 __builtin_altivec_dstt ((void *) a1, a2, a3);
1888 vec_dstt (const vector signed int *a1, int a2, const int a3)
1890 __builtin_altivec_dstt ((void *) a1, a2, a3);
1894 vec_dstt (const vector bool int *a1, int a2, const int a3)
1896 __builtin_altivec_dstt ((void *) a1, a2, a3);
1900 vec_dstt (const vector float *a1, int a2, const int a3)
1902 __builtin_altivec_dstt ((void *) a1, a2, a3);
1906 vec_dstt (const unsigned char *a1, int a2, const int a3)
1908 __builtin_altivec_dstt ((void *) a1, a2, a3);
1912 vec_dstt (const signed char *a1, int a2, const int a3)
1914 __builtin_altivec_dstt ((void *) a1, a2, a3);
1918 vec_dstt (const unsigned short *a1, int a2, const int a3)
1920 __builtin_altivec_dstt ((void *) a1, a2, a3);
1924 vec_dstt (const short *a1, int a2, const int a3)
1926 __builtin_altivec_dstt ((void *) a1, a2, a3);
1930 vec_dstt (const unsigned int *a1, int a2, const int a3)
1932 __builtin_altivec_dstt ((void *) a1, a2, a3);
1936 vec_dstt (const int *a1, int a2, const int a3)
1938 __builtin_altivec_dstt ((void *) a1, a2, a3);
1942 vec_dstt (const unsigned long *a1, int a2, const int a3)
1944 __builtin_altivec_dstt ((void *) a1, a2, a3);
1948 vec_dstt (const long *a1, int a2, const int a3)
1950 __builtin_altivec_dstt ((void *) a1, a2, a3);
1954 vec_dstt (float *a1, int a2, const int a3)
1956 __builtin_altivec_dstt ((void *) a1, a2, a3);
1962 vec_expte (vector float a1)
1964 return (vector float) __builtin_altivec_vexptefp ((vector float) a1);
1970 vec_floor (vector float a1)
1972 return (vector float) __builtin_altivec_vrfim ((vector float) a1);
1978 vec_ld (int a1, const vector float *a2)
1980 return (vector float) __builtin_altivec_lvx (a1, (void *) a2);
1984 vec_ld (int a1, const float *a2)
1986 return (vector float) __builtin_altivec_lvx (a1, (void *) a2);
1989 inline vector bool int
1990 vec_ld (int a1, const vector bool int *a2)
1992 return (vector bool int) __builtin_altivec_lvx (a1, (void *) a2);
1995 inline vector signed int
1996 vec_ld (int a1, const vector signed int *a2)
1998 return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
2001 inline vector signed int
2002 vec_ld (int a1, const int *a2)
2004 return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
2007 inline vector signed int
2008 vec_ld (int a1, const long *a2)
2010 return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
2013 inline vector unsigned int
2014 vec_ld (int a1, const vector unsigned int *a2)
2016 return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
2019 inline vector unsigned int
2020 vec_ld (int a1, const unsigned int *a2)
2022 return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
2025 inline vector unsigned int
2026 vec_ld (int a1, const unsigned long *a2)
2028 return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
2031 inline vector bool short
2032 vec_ld (int a1, const vector bool short *a2)
2034 return (vector bool short) __builtin_altivec_lvx (a1, (void *) a2);
2038 vec_ld (int a1, const vector pixel *a2)
2040 return (vector pixel) __builtin_altivec_lvx (a1, (void *) a2);
2043 inline vector signed short
2044 vec_ld (int a1, const vector signed short *a2)
2046 return (vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
2049 inline vector signed short
2050 vec_ld (int a1, const short *a2)
2052 return (vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
2055 inline vector unsigned short
2056 vec_ld (int a1, const vector unsigned short *a2)
2058 return (vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
2061 inline vector unsigned short
2062 vec_ld (int a1, const unsigned short *a2)
2064 return (vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
2067 inline vector bool char
2068 vec_ld (int a1, const vector bool char *a2)
2070 return (vector bool char) __builtin_altivec_lvx (a1, (void *) a2);
2073 inline vector signed char
2074 vec_ld (int a1, const vector signed char *a2)
2076 return (vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
2079 inline vector signed char
2080 vec_ld (int a1, const signed char *a2)
2082 return (vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
2085 inline vector unsigned char
2086 vec_ld (int a1, const vector unsigned char *a2)
2088 return (vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
2091 inline vector unsigned char
2092 vec_ld (int a1, const unsigned char *a2)
2094 return (vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
2099 inline vector signed char
2100 vec_lde (int a1, const signed char *a2)
2102 return (vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
2105 inline vector unsigned char
2106 vec_lde (int a1, const unsigned char *a2)
2108 return (vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
2111 inline vector signed short
2112 vec_lde (int a1, const short *a2)
2114 return (vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
2117 inline vector unsigned short
2118 vec_lde (int a1, const unsigned short *a2)
2120 return (vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
2124 vec_lde (int a1, const float *a2)
2126 return (vector float) __builtin_altivec_lvewx (a1, (void *) a2);
2129 inline vector signed int
2130 vec_lde (int a1, const int *a2)
2132 return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2135 inline vector unsigned int
2136 vec_lde (int a1, const unsigned int *a2)
2138 return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2141 inline vector signed int
2142 vec_lde (int a1, const long *a2)
2144 return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2147 inline vector unsigned int
2148 vec_lde (int a1, const unsigned long *a2)
2150 return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2156 vec_lvewx (int a1, const float *a2)
2158 return (vector float) __builtin_altivec_lvewx (a1, (void *) a2);
2161 inline vector signed int
2162 vec_lvewx (int a1, const int *a2)
2164 return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2167 inline vector unsigned int
2168 vec_lvewx (int a1, const unsigned int *a2)
2170 return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2173 inline vector signed int
2174 vec_lvewx (int a1, const long *a2)
2176 return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2179 inline vector unsigned int
2180 vec_lvewx (int a1, const unsigned long *a2)
2182 return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2187 inline vector signed short
2188 vec_lvehx (int a1, const short *a2)
2190 return (vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
2193 inline vector unsigned short
2194 vec_lvehx (int a1, const unsigned short *a2)
2196 return (vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
2201 inline vector signed char
2202 vec_lvebx (int a1, const signed char *a2)
2204 return (vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
2207 inline vector unsigned char
2208 vec_lvebx (int a1, const int *a2)
2210 return (vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
2216 vec_ldl (int a1, const vector float *a2)
2218 return (vector float) __builtin_altivec_lvxl (a1, (void *) a2);
2222 vec_ldl (int a1, const float *a2)
2224 return (vector float) __builtin_altivec_lvxl (a1, (void *) a2);
2227 inline vector bool int
2228 vec_ldl (int a1, const vector bool int *a2)
2230 return (vector bool int) __builtin_altivec_lvxl (a1, (void *) a2);
2233 inline vector signed int
2234 vec_ldl (int a1, const vector signed int *a2)
2236 return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
2239 inline vector signed int
2240 vec_ldl (int a1, const int *a2)
2242 return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
2245 inline vector signed int
2246 vec_ldl (int a1, const long *a2)
2248 return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
2251 inline vector unsigned int
2252 vec_ldl (int a1, const vector unsigned int *a2)
2254 return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
2257 inline vector unsigned int
2258 vec_ldl (int a1, const unsigned int *a2)
2260 return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
2263 inline vector unsigned int
2264 vec_ldl (int a1, const unsigned long *a2)
2266 return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
2269 inline vector bool short
2270 vec_ldl (int a1, const vector bool short *a2)
2272 return (vector bool short) __builtin_altivec_lvxl (a1, (void *) a2);
2276 vec_ldl (int a1, const vector pixel *a2)
2278 return (vector pixel) __builtin_altivec_lvxl (a1, (void *) a2);
2281 inline vector signed short
2282 vec_ldl (int a1, const vector signed short *a2)
2284 return (vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
2287 inline vector signed short
2288 vec_ldl (int a1, const short *a2)
2290 return (vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
2293 inline vector unsigned short
2294 vec_ldl (int a1, const vector unsigned short *a2)
2296 return (vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
2299 inline vector unsigned short
2300 vec_ldl (int a1, const unsigned short *a2)
2302 return (vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
2305 inline vector bool char
2306 vec_ldl (int a1, const vector bool char *a2)
2308 return (vector bool char) __builtin_altivec_lvxl (a1, (void *) a2);
2311 inline vector signed char
2312 vec_ldl (int a1, const vector signed char *a2)
2314 return (vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
2317 inline vector signed char
2318 vec_ldl (int a1, const signed char *a2)
2320 return (vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
2323 inline vector unsigned char
2324 vec_ldl (int a1, const vector unsigned char *a2)
2326 return (vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
2329 inline vector unsigned char
2330 vec_ldl (int a1, const unsigned char *a2)
2332 return (vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
2338 vec_loge (vector float a1)
2340 return (vector float) __builtin_altivec_vlogefp ((vector float) a1);
2345 inline vector unsigned char
2346 vec_lvsl (int a1, const volatile unsigned char *a2)
2348 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2351 inline vector unsigned char
2352 vec_lvsl (int a1, const volatile signed char *a2)
2354 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2357 inline vector unsigned char
2358 vec_lvsl (int a1, const volatile unsigned short *a2)
2360 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2363 inline vector unsigned char
2364 vec_lvsl (int a1, const volatile short *a2)
2366 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2369 inline vector unsigned char
2370 vec_lvsl (int a1, const volatile unsigned int *a2)
2372 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2375 inline vector unsigned char
2376 vec_lvsl (int a1, const volatile int *a2)
2378 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2381 inline vector unsigned char
2382 vec_lvsl (int a1, const volatile unsigned long *a2)
2384 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2387 inline vector unsigned char
2388 vec_lvsl (int a1, const volatile long *a2)
2390 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2393 inline vector unsigned char
2394 vec_lvsl (int a1, const volatile float *a2)
2396 return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2401 inline vector unsigned char
2402 vec_lvsr (int a1, const volatile unsigned char *a2)
2404 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2407 inline vector unsigned char
2408 vec_lvsr (int a1, const volatile signed char *a2)
2410 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2413 inline vector unsigned char
2414 vec_lvsr (int a1, const volatile unsigned short *a2)
2416 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2419 inline vector unsigned char
2420 vec_lvsr (int a1, const volatile short *a2)
2422 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2425 inline vector unsigned char
2426 vec_lvsr (int a1, const volatile unsigned int *a2)
2428 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2431 inline vector unsigned char
2432 vec_lvsr (int a1, const volatile int *a2)
2434 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2437 inline vector unsigned char
2438 vec_lvsr (int a1, const volatile unsigned long *a2)
2440 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2443 inline vector unsigned char
2444 vec_lvsr (int a1, const volatile long *a2)
2446 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2449 inline vector unsigned char
2450 vec_lvsr (int a1, const volatile float *a2)
2452 return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2458 vec_madd (vector float a1, vector float a2, vector float a3)
2460 return (vector float) __builtin_altivec_vmaddfp ((vector float) a1, (vector float) a2, (vector float) a3);
2465 inline vector signed short
2466 vec_madds (vector signed short a1, vector signed short a2, vector signed short a3)
2468 return (vector signed short) __builtin_altivec_vmhaddshs ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
2473 inline vector unsigned char
2474 vec_max (vector bool char a1, vector unsigned char a2)
2476 return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
2479 inline vector unsigned char
2480 vec_max (vector unsigned char a1, vector bool char a2)
2482 return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
2485 inline vector unsigned char
2486 vec_max (vector unsigned char a1, vector unsigned char a2)
2488 return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
2491 inline vector signed char
2492 vec_max (vector bool char a1, vector signed char a2)
2494 return (vector signed char) __builtin_altivec_vmaxsb ((vector signed char) a1, (vector signed char) a2);
2497 inline vector signed char
2498 vec_max (vector signed char a1, vector bool char a2)
2500 return (vector signed char) __builtin_altivec_vmaxsb ((vector signed char) a1, (vector signed char) a2);
2503 inline vector signed char
2504 vec_max (vector signed char a1, vector signed char a2)
2506 return (vector signed char) __builtin_altivec_vmaxsb ((vector signed char) a1, (vector signed char) a2);
2509 inline vector unsigned short
2510 vec_max (vector bool short a1, vector unsigned short a2)
2512 return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
2515 inline vector unsigned short
2516 vec_max (vector unsigned short a1, vector bool short a2)
2518 return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
2521 inline vector unsigned short
2522 vec_max (vector unsigned short a1, vector unsigned short a2)
2524 return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
2527 inline vector signed short
2528 vec_max (vector bool short a1, vector signed short a2)
2530 return (vector signed short) __builtin_altivec_vmaxsh ((vector signed short) a1, (vector signed short) a2);
2533 inline vector signed short
2534 vec_max (vector signed short a1, vector bool short a2)
2536 return (vector signed short) __builtin_altivec_vmaxsh ((vector signed short) a1, (vector signed short) a2);
2539 inline vector signed short
2540 vec_max (vector signed short a1, vector signed short a2)
2542 return (vector signed short) __builtin_altivec_vmaxsh ((vector signed short) a1, (vector signed short) a2);
2545 inline vector unsigned int
2546 vec_max (vector bool int a1, vector unsigned int a2)
2548 return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
2551 inline vector unsigned int
2552 vec_max (vector unsigned int a1, vector bool int a2)
2554 return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
2557 inline vector unsigned int
2558 vec_max (vector unsigned int a1, vector unsigned int a2)
2560 return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
2563 inline vector signed int
2564 vec_max (vector bool int a1, vector signed int a2)
2566 return (vector signed int) __builtin_altivec_vmaxsw ((vector signed int) a1, (vector signed int) a2);
2569 inline vector signed int
2570 vec_max (vector signed int a1, vector bool int a2)
2572 return (vector signed int) __builtin_altivec_vmaxsw ((vector signed int) a1, (vector signed int) a2);
2575 inline vector signed int
2576 vec_max (vector signed int a1, vector signed int a2)
2578 return (vector signed int) __builtin_altivec_vmaxsw ((vector signed int) a1, (vector signed int) a2);
2582 vec_max (vector float a1, vector float a2)
2584 return (vector float) __builtin_altivec_vmaxfp ((vector float) a1, (vector float) a2);
2590 vec_vmaxfp (vector float a1, vector float a2)
2592 return (vector float) __builtin_altivec_vmaxfp ((vector float) a1, (vector float) a2);
2597 inline vector signed int
2598 vec_vmaxsw (vector signed int a1, vector signed int a2)
2600 return (vector signed int) __builtin_altivec_vmaxsw ((vector signed int) a1, (vector signed int) a2);
2605 inline vector unsigned int
2606 vec_vmaxuw (vector signed int a1, vector unsigned int a2)
2608 return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
2611 inline vector unsigned int
2612 vec_vmaxuw (vector unsigned int a1, vector signed int a2)
2614 return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
2617 inline vector unsigned int
2618 vec_vmaxuw (vector unsigned int a1, vector unsigned int a2)
2620 return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
2625 inline vector signed short
2626 vec_vmaxsh (vector signed short a1, vector signed short a2)
2628 return (vector signed short) __builtin_altivec_vmaxsh ((vector signed short) a1, (vector signed short) a2);
2633 inline vector unsigned short
2634 vec_vmaxuh (vector signed short a1, vector unsigned short a2)
2636 return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
2639 inline vector unsigned short
2640 vec_vmaxuh (vector unsigned short a1, vector signed short a2)
2642 return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
2645 inline vector unsigned short
2646 vec_vmaxuh (vector unsigned short a1, vector unsigned short a2)
2648 return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
2653 inline vector signed char
2654 vec_vmaxsb (vector signed char a1, vector signed char a2)
2656 return (vector signed char) __builtin_altivec_vmaxsb ((vector signed char) a1, (vector signed char) a2);
2661 inline vector unsigned char
2662 vec_vmaxub (vector signed char a1, vector unsigned char a2)
2664 return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
2667 inline vector unsigned char
2668 vec_vmaxub (vector unsigned char a1, vector signed char a2)
2670 return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
2673 inline vector unsigned char
2674 vec_vmaxub (vector unsigned char a1, vector unsigned char a2)
2676 return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
2681 inline vector bool char
2682 vec_mergeh (vector bool char a1, vector bool char a2)
2684 return (vector bool char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
2687 inline vector signed char
2688 vec_mergeh (vector signed char a1, vector signed char a2)
2690 return (vector signed char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
2693 inline vector unsigned char
2694 vec_mergeh (vector unsigned char a1, vector unsigned char a2)
2696 return (vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
2699 inline vector bool short
2700 vec_mergeh (vector bool short a1, vector bool short a2)
2702 return (vector bool short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
2706 vec_mergeh (vector pixel a1, vector pixel a2)
2708 return (vector pixel) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
2711 inline vector signed short
2712 vec_mergeh (vector signed short a1, vector signed short a2)
2714 return (vector signed short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
2717 inline vector unsigned short
2718 vec_mergeh (vector unsigned short a1, vector unsigned short a2)
2720 return (vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
2724 vec_mergeh (vector float a1, vector float a2)
2726 return (vector float) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2729 inline vector bool int
2730 vec_mergeh (vector bool int a1, vector bool int a2)
2732 return (vector bool int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2735 inline vector signed int
2736 vec_mergeh (vector signed int a1, vector signed int a2)
2738 return (vector signed int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2741 inline vector unsigned int
2742 vec_mergeh (vector unsigned int a1, vector unsigned int a2)
2744 return (vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2750 vec_vmrghw (vector float a1, vector float a2)
2752 return (vector float) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2755 inline vector signed int
2756 vec_vmrghw (vector signed int a1, vector signed int a2)
2758 return (vector signed int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2761 inline vector unsigned int
2762 vec_vmrghw (vector unsigned int a1, vector unsigned int a2)
2764 return (vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
2769 inline vector signed short
2770 vec_vmrghh (vector signed short a1, vector signed short a2)
2772 return (vector signed short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
2775 inline vector unsigned short
2776 vec_vmrghh (vector unsigned short a1, vector unsigned short a2)
2778 return (vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
2783 inline vector signed char
2784 vec_vmrghb (vector signed char a1, vector signed char a2)
2786 return (vector signed char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
2789 inline vector unsigned char
2790 vec_vmrghb (vector unsigned char a1, vector unsigned char a2)
2792 return (vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
2797 inline vector bool char
2798 vec_mergel (vector bool char a1, vector bool char a2)
2800 return (vector bool char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
2803 inline vector signed char
2804 vec_mergel (vector signed char a1, vector signed char a2)
2806 return (vector signed char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
2809 inline vector unsigned char
2810 vec_mergel (vector unsigned char a1, vector unsigned char a2)
2812 return (vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
2815 inline vector bool short
2816 vec_mergel (vector bool short a1, vector bool short a2)
2818 return (vector bool short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
2822 vec_mergel (vector pixel a1, vector pixel a2)
2824 return (vector pixel) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
2827 inline vector signed short
2828 vec_mergel (vector signed short a1, vector signed short a2)
2830 return (vector signed short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
2833 inline vector unsigned short
2834 vec_mergel (vector unsigned short a1, vector unsigned short a2)
2836 return (vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
2840 vec_mergel (vector float a1, vector float a2)
2842 return (vector float) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2845 inline vector bool int
2846 vec_mergel (vector bool int a1, vector bool int a2)
2848 return (vector bool int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2851 inline vector signed int
2852 vec_mergel (vector signed int a1, vector signed int a2)
2854 return (vector signed int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2857 inline vector unsigned int
2858 vec_mergel (vector unsigned int a1, vector unsigned int a2)
2860 return (vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2866 vec_vmrglw (vector float a1, vector float a2)
2868 return (vector float) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2871 inline vector signed int
2872 vec_vmrglw (vector signed int a1, vector signed int a2)
2874 return (vector signed int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2877 inline vector unsigned int
2878 vec_vmrglw (vector unsigned int a1, vector unsigned int a2)
2880 return (vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
2885 inline vector signed short
2886 vec_vmrglh (vector signed short a1, vector signed short a2)
2888 return (vector signed short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
2891 inline vector unsigned short
2892 vec_vmrglh (vector unsigned short a1, vector unsigned short a2)
2894 return (vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
2899 inline vector signed char
2900 vec_vmrglb (vector signed char a1, vector signed char a2)
2902 return (vector signed char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
2905 inline vector unsigned char
2906 vec_vmrglb (vector unsigned char a1, vector unsigned char a2)
2908 return (vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
2913 inline vector unsigned short
2916 return (vector unsigned short) __builtin_altivec_mfvscr ();
2921 inline vector unsigned char
2922 vec_min (vector bool char a1, vector unsigned char a2)
2924 return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
2927 inline vector unsigned char
2928 vec_min (vector unsigned char a1, vector bool char a2)
2930 return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
2933 inline vector unsigned char
2934 vec_min (vector unsigned char a1, vector unsigned char a2)
2936 return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
2939 inline vector signed char
2940 vec_min (vector bool char a1, vector signed char a2)
2942 return (vector signed char) __builtin_altivec_vminsb ((vector signed char) a1, (vector signed char) a2);
2945 inline vector signed char
2946 vec_min (vector signed char a1, vector bool char a2)
2948 return (vector signed char) __builtin_altivec_vminsb ((vector signed char) a1, (vector signed char) a2);
2951 inline vector signed char
2952 vec_min (vector signed char a1, vector signed char a2)
2954 return (vector signed char) __builtin_altivec_vminsb ((vector signed char) a1, (vector signed char) a2);
2957 inline vector unsigned short
2958 vec_min (vector bool short a1, vector unsigned short a2)
2960 return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
2963 inline vector unsigned short
2964 vec_min (vector unsigned short a1, vector bool short a2)
2966 return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
2969 inline vector unsigned short
2970 vec_min (vector unsigned short a1, vector unsigned short a2)
2972 return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
2975 inline vector signed short
2976 vec_min (vector bool short a1, vector signed short a2)
2978 return (vector signed short) __builtin_altivec_vminsh ((vector signed short) a1, (vector signed short) a2);
2981 inline vector signed short
2982 vec_min (vector signed short a1, vector bool short a2)
2984 return (vector signed short) __builtin_altivec_vminsh ((vector signed short) a1, (vector signed short) a2);
2987 inline vector signed short
2988 vec_min (vector signed short a1, vector signed short a2)
2990 return (vector signed short) __builtin_altivec_vminsh ((vector signed short) a1, (vector signed short) a2);
2993 inline vector unsigned int
2994 vec_min (vector bool int a1, vector unsigned int a2)
2996 return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
2999 inline vector unsigned int
3000 vec_min (vector unsigned int a1, vector bool int a2)
3002 return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
3005 inline vector unsigned int
3006 vec_min (vector unsigned int a1, vector unsigned int a2)
3008 return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
3011 inline vector signed int
3012 vec_min (vector bool int a1, vector signed int a2)
3014 return (vector signed int) __builtin_altivec_vminsw ((vector signed int) a1, (vector signed int) a2);
3017 inline vector signed int
3018 vec_min (vector signed int a1, vector bool int a2)
3020 return (vector signed int) __builtin_altivec_vminsw ((vector signed int) a1, (vector signed int) a2);
3023 inline vector signed int
3024 vec_min (vector signed int a1, vector signed int a2)
3026 return (vector signed int) __builtin_altivec_vminsw ((vector signed int) a1, (vector signed int) a2);
3030 vec_min (vector float a1, vector float a2)
3032 return (vector float) __builtin_altivec_vminfp ((vector float) a1, (vector float) a2);
3038 vec_vminfp (vector float a1, vector float a2)
3040 return (vector float) __builtin_altivec_vminfp ((vector float) a1, (vector float) a2);
3045 inline vector signed int
3046 vec_vminsw (vector signed int a1, vector signed int a2)
3048 return (vector signed int) __builtin_altivec_vminsw ((vector signed int) a1, (vector signed int) a2);
3053 inline vector unsigned int
3054 vec_vminuw (vector signed int a1, vector unsigned int a2)
3056 return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
3059 inline vector unsigned int
3060 vec_vminuw (vector unsigned int a1, vector signed int a2)
3062 return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
3065 inline vector unsigned int
3066 vec_vminuw (vector unsigned int a1, vector unsigned int a2)
3068 return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
3073 inline vector signed short
3074 vec_vminsh (vector signed short a1, vector signed short a2)
3076 return (vector signed short) __builtin_altivec_vminsh ((vector signed short) a1, (vector signed short) a2);
3081 inline vector unsigned short
3082 vec_vminuh (vector signed short a1, vector unsigned short a2)
3084 return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
3087 inline vector unsigned short
3088 vec_vminuh (vector unsigned short a1, vector signed short a2)
3090 return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
3093 inline vector unsigned short
3094 vec_vminuh (vector unsigned short a1, vector unsigned short a2)
3096 return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
3101 inline vector signed char
3102 vec_vminsb (vector signed char a1, vector signed char a2)
3104 return (vector signed char) __builtin_altivec_vminsb ((vector signed char) a1, (vector signed char) a2);
3109 inline vector unsigned char
3110 vec_vminub (vector signed char a1, vector unsigned char a2)
3112 return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
3115 inline vector unsigned char
3116 vec_vminub (vector unsigned char a1, vector signed char a2)
3118 return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
3121 inline vector unsigned char
3122 vec_vminub (vector unsigned char a1, vector unsigned char a2)
3124 return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
3129 inline vector signed short
3130 vec_mladd (vector signed short a1, vector signed short a2, vector signed short a3)
3132 return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
3135 inline vector signed short
3136 vec_mladd (vector signed short a1, vector unsigned short a2, vector unsigned short a3)
3138 return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
3141 inline vector signed short
3142 vec_mladd (vector unsigned short a1, vector signed short a2, vector signed short a3)
3144 return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
3147 inline vector unsigned short
3148 vec_mladd (vector unsigned short a1, vector unsigned short a2, vector unsigned short a3)
3150 return (vector unsigned short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
3155 inline vector signed short
3156 vec_mradds (vector signed short a1, vector signed short a2, vector signed short a3)
3158 return (vector signed short) __builtin_altivec_vmhraddshs ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
3163 inline vector unsigned int
3164 vec_msum (vector unsigned char a1, vector unsigned char a2, vector unsigned int a3)
3166 return (vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
3169 inline vector signed int
3170 vec_msum (vector signed char a1, vector unsigned char a2, vector signed int a3)
3172 return (vector signed int) __builtin_altivec_vmsummbm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
3175 inline vector unsigned int
3176 vec_msum (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
3178 return (vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3181 inline vector signed int
3182 vec_msum (vector signed short a1, vector signed short a2, vector signed int a3)
3184 return (vector signed int) __builtin_altivec_vmsumshm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3189 inline vector signed int
3190 vec_vmsumshm (vector signed short a1, vector signed short a2, vector signed int a3)
3192 return (vector signed int) __builtin_altivec_vmsumshm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3197 inline vector unsigned int
3198 vec_vmsumuhm (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
3200 return (vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3205 inline vector signed int
3206 vec_vmsummbm (vector signed char a1, vector unsigned char a2, vector signed int a3)
3208 return (vector signed int) __builtin_altivec_vmsummbm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
3213 inline vector unsigned int
3214 vec_vmsumubm (vector unsigned char a1, vector unsigned char a2, vector unsigned int a3)
3216 return (vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
3221 inline vector unsigned int
3222 vec_msums (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
3224 return (vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3227 inline vector signed int
3228 vec_msums (vector signed short a1, vector signed short a2, vector signed int a3)
3230 return (vector signed int) __builtin_altivec_vmsumshs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3235 inline vector signed int
3236 vec_vmsumshs (vector signed short a1, vector signed short a2, vector signed int a3)
3238 return (vector signed int) __builtin_altivec_vmsumshs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3243 inline vector unsigned int
3244 vec_vmsumuhs (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
3246 return (vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
3252 vec_mtvscr (vector signed int a1)
3254 __builtin_altivec_mtvscr ((vector signed int) a1);
3258 vec_mtvscr (vector unsigned int a1)
3260 __builtin_altivec_mtvscr ((vector signed int) a1);
3264 vec_mtvscr (vector bool int a1)
3266 __builtin_altivec_mtvscr ((vector signed int) a1);
3270 vec_mtvscr (vector signed short a1)
3272 __builtin_altivec_mtvscr ((vector signed int) a1);
3276 vec_mtvscr (vector unsigned short a1)
3278 __builtin_altivec_mtvscr ((vector signed int) a1);
3282 vec_mtvscr (vector bool short a1)
3284 __builtin_altivec_mtvscr ((vector signed int) a1);
3288 vec_mtvscr (vector pixel a1)
3290 __builtin_altivec_mtvscr ((vector signed int) a1);
3294 vec_mtvscr (vector signed char a1)
3296 __builtin_altivec_mtvscr ((vector signed int) a1);
3300 vec_mtvscr (vector unsigned char a1)
3302 __builtin_altivec_mtvscr ((vector signed int) a1);
3306 vec_mtvscr (vector bool char a1)
3308 __builtin_altivec_mtvscr ((vector signed int) a1);
3313 inline vector unsigned short
3314 vec_mule (vector unsigned char a1, vector unsigned char a2)
3316 return (vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) a1, (vector signed char) a2);
3319 inline vector signed short
3320 vec_mule (vector signed char a1, vector signed char a2)
3322 return (vector signed short) __builtin_altivec_vmulesb ((vector signed char) a1, (vector signed char) a2);
3325 inline vector unsigned int
3326 vec_mule (vector unsigned short a1, vector unsigned short a2)
3328 return (vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) a1, (vector signed short) a2);
3331 inline vector signed int
3332 vec_mule (vector signed short a1, vector signed short a2)
3334 return (vector signed int) __builtin_altivec_vmulesh ((vector signed short) a1, (vector signed short) a2);
3339 inline vector signed int
3340 vec_vmulesh (vector signed short a1, vector signed short a2)
3342 return (vector signed int) __builtin_altivec_vmulesh ((vector signed short) a1, (vector signed short) a2);
3347 inline vector unsigned int
3348 vec_vmuleuh (vector unsigned short a1, vector unsigned short a2)
3350 return (vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) a1, (vector signed short) a2);
3354 inline vector unsigned short
3355 vec_vmuleub (vector unsigned char a1, vector unsigned char a2)
3357 return (vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) a1, (vector signed char) a2);
3362 inline vector unsigned short
3363 vec_mulo (vector unsigned char a1, vector unsigned char a2)
3365 return (vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) a1, (vector signed char) a2);
3368 inline vector signed short
3369 vec_mulo (vector signed char a1, vector signed char a2)
3371 return (vector signed short) __builtin_altivec_vmulosb ((vector signed char) a1, (vector signed char) a2);
3374 inline vector unsigned int
3375 vec_mulo (vector unsigned short a1, vector unsigned short a2)
3377 return (vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) a1, (vector signed short) a2);
3380 inline vector signed int
3381 vec_mulo (vector signed short a1, vector signed short a2)
3383 return (vector signed int) __builtin_altivec_vmulosh ((vector signed short) a1, (vector signed short) a2);
3388 inline vector signed int
3389 vec_vmulosh (vector signed short a1, vector signed short a2)
3391 return (vector signed int) __builtin_altivec_vmulosh ((vector signed short) a1, (vector signed short) a2);
3396 inline vector unsigned int
3397 vec_vmulouh (vector unsigned short a1, vector unsigned short a2)
3399 return (vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) a1, (vector signed short) a2);
3404 inline vector signed short
3405 vec_vmulosb (vector signed char a1, vector signed char a2)
3407 return (vector signed short) __builtin_altivec_vmulosb ((vector signed char) a1, (vector signed char) a2);
3412 inline vector unsigned short
3413 vec_vmuloub (vector unsigned char a1, vector unsigned char a2)
3415 return (vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) a1, (vector signed char) a2);
3421 vec_nmsub (vector float a1, vector float a2, vector float a3)
3423 return (vector float) __builtin_altivec_vnmsubfp ((vector float) a1, (vector float) a2, (vector float) a3);
3429 vec_nor (vector float a1, vector float a2)
3431 return (vector float) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3434 inline vector signed int
3435 vec_nor (vector signed int a1, vector signed int a2)
3437 return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3440 inline vector unsigned int
3441 vec_nor (vector unsigned int a1, vector unsigned int a2)
3443 return (vector unsigned int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3446 inline vector bool int
3447 vec_nor (vector bool int a1, vector bool int a2)
3449 return (vector bool int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3452 inline vector signed short
3453 vec_nor (vector signed short a1, vector signed short a2)
3455 return (vector signed short) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3458 inline vector unsigned short
3459 vec_nor (vector unsigned short a1, vector unsigned short a2)
3461 return (vector unsigned short) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3464 inline vector bool short
3465 vec_nor (vector bool short a1, vector bool short a2)
3467 return (vector bool short) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3470 inline vector signed char
3471 vec_nor (vector signed char a1, vector signed char a2)
3473 return (vector signed char) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3476 inline vector unsigned char
3477 vec_nor (vector unsigned char a1, vector unsigned char a2)
3479 return (vector unsigned char) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3482 inline vector bool char
3483 vec_nor (vector bool char a1, vector bool char a2)
3485 return (vector bool char) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
3491 vec_or (vector float a1, vector float a2)
3493 return (vector float) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3497 vec_or (vector float a1, vector bool int a2)
3499 return (vector float) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3503 vec_or (vector bool int a1, vector float a2)
3505 return (vector float) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3508 inline vector bool int
3509 vec_or (vector bool int a1, vector bool int a2)
3511 return (vector bool int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3514 inline vector signed int
3515 vec_or (vector bool int a1, vector signed int a2)
3517 return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3520 inline vector signed int
3521 vec_or (vector signed int a1, vector bool int a2)
3523 return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3526 inline vector signed int
3527 vec_or (vector signed int a1, vector signed int a2)
3529 return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3532 inline vector unsigned int
3533 vec_or (vector bool int a1, vector unsigned int a2)
3535 return (vector unsigned int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3538 inline vector unsigned int
3539 vec_or (vector unsigned int a1, vector bool int a2)
3541 return (vector unsigned int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3544 inline vector unsigned int
3545 vec_or (vector unsigned int a1, vector unsigned int a2)
3547 return (vector unsigned int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3550 inline vector bool short
3551 vec_or (vector bool short a1, vector bool short a2)
3553 return (vector bool short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3556 inline vector signed short
3557 vec_or (vector bool short a1, vector signed short a2)
3559 return (vector signed short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3562 inline vector signed short
3563 vec_or (vector signed short a1, vector bool short a2)
3565 return (vector signed short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3568 inline vector signed short
3569 vec_or (vector signed short a1, vector signed short a2)
3571 return (vector signed short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3574 inline vector unsigned short
3575 vec_or (vector bool short a1, vector unsigned short a2)
3577 return (vector unsigned short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3580 inline vector unsigned short
3581 vec_or (vector unsigned short a1, vector bool short a2)
3583 return (vector unsigned short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3586 inline vector unsigned short
3587 vec_or (vector unsigned short a1, vector unsigned short a2)
3589 return (vector unsigned short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3592 inline vector signed char
3593 vec_or (vector bool char a1, vector signed char a2)
3595 return (vector signed char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3598 inline vector bool char
3599 vec_or (vector bool char a1, vector bool char a2)
3601 return (vector bool char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3604 inline vector signed char
3605 vec_or (vector signed char a1, vector bool char a2)
3607 return (vector signed char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3610 inline vector signed char
3611 vec_or (vector signed char a1, vector signed char a2)
3613 return (vector signed char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3616 inline vector unsigned char
3617 vec_or (vector bool char a1, vector unsigned char a2)
3619 return (vector unsigned char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3622 inline vector unsigned char
3623 vec_or (vector unsigned char a1, vector bool char a2)
3625 return (vector unsigned char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3628 inline vector unsigned char
3629 vec_or (vector unsigned char a1, vector unsigned char a2)
3631 return (vector unsigned char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
3636 inline vector signed char
3637 vec_pack (vector signed short a1, vector signed short a2)
3639 return (vector signed char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
3642 inline vector unsigned char
3643 vec_pack (vector unsigned short a1, vector unsigned short a2)
3645 return (vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
3648 inline vector bool char
3649 vec_pack (vector bool short a1, vector bool short a2)
3651 return (vector bool char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
3654 inline vector signed short
3655 vec_pack (vector signed int a1, vector signed int a2)
3657 return (vector signed short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
3660 inline vector unsigned short
3661 vec_pack (vector unsigned int a1, vector unsigned int a2)
3663 return (vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
3666 inline vector bool short
3667 vec_pack (vector bool int a1, vector bool int a2)
3669 return (vector bool short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
3674 inline vector signed short
3675 vec_vpkuwum (vector signed int a1, vector signed int a2)
3677 return (vector signed short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
3680 inline vector unsigned short
3681 vec_vpkuwum (vector unsigned int a1, vector unsigned int a2)
3683 return (vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
3688 inline vector signed char
3689 vec_vpkuhum (vector signed short a1, vector signed short a2)
3691 return (vector signed char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
3694 inline vector unsigned char
3695 vec_vpkuhum (vector unsigned short a1, vector unsigned short a2)
3697 return (vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
3703 vec_packpx (vector unsigned int a1, vector unsigned int a2)
3705 return (vector pixel) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2);
3710 inline vector unsigned char
3711 vec_packs (vector unsigned short a1, vector unsigned short a2)
3713 return (vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
3716 inline vector signed char
3717 vec_packs (vector signed short a1, vector signed short a2)
3719 return (vector signed char) __builtin_altivec_vpkshss ((vector signed short) a1, (vector signed short) a2);
3722 inline vector unsigned short
3723 vec_packs (vector unsigned int a1, vector unsigned int a2)
3725 return (vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
3728 inline vector signed short
3729 vec_packs (vector signed int a1, vector signed int a2)
3731 return (vector signed short) __builtin_altivec_vpkswss ((vector signed int) a1, (vector signed int) a2);
3736 inline vector signed short
3737 vec_vpkswss (vector signed int a1, vector signed int a2)
3739 return (vector signed short) __builtin_altivec_vpkswss ((vector signed int) a1, (vector signed int) a2);
3744 inline vector unsigned short
3745 vec_vpkuwus (vector unsigned int a1, vector unsigned int a2)
3747 return (vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
3752 inline vector signed char
3753 vec_vpkshss (vector signed short a1, vector signed short a2)
3755 return (vector signed char) __builtin_altivec_vpkshss ((vector signed short) a1, (vector signed short) a2);
3760 inline vector unsigned char
3761 vec_vpkuhus (vector unsigned short a1, vector unsigned short a2)
3763 return (vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
3768 inline vector unsigned char
3769 vec_packsu (vector unsigned short a1, vector unsigned short a2)
3771 return (vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
3774 inline vector unsigned char
3775 vec_packsu (vector signed short a1, vector signed short a2)
3777 return (vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) a1, (vector signed short) a2);
3780 inline vector unsigned short
3781 vec_packsu (vector unsigned int a1, vector unsigned int a2)
3783 return (vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
3786 inline vector unsigned short
3787 vec_packsu (vector signed int a1, vector signed int a2)
3789 return (vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) a1, (vector signed int) a2);
3794 inline vector unsigned short
3795 vec_vpkswus (vector signed int a1, vector signed int a2)
3797 return (vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) a1, (vector signed int) a2);
3802 inline vector unsigned char
3803 vec_vpkshus (vector signed short a1, vector signed short a2)
3805 return (vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) a1, (vector signed short) a2);
3811 vec_perm (vector float a1, vector float a2, vector unsigned char a3)
3813 return (vector float) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3816 inline vector signed int
3817 vec_perm (vector signed int a1, vector signed int a2, vector unsigned char a3)
3819 return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3822 inline vector unsigned int
3823 vec_perm (vector unsigned int a1, vector unsigned int a2, vector unsigned char a3)
3825 return (vector unsigned int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3828 inline vector bool int
3829 vec_perm (vector bool int a1, vector bool int a2, vector unsigned char a3)
3831 return (vector bool int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3834 inline vector signed short
3835 vec_perm (vector signed short a1, vector signed short a2, vector unsigned char a3)
3837 return (vector signed short) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3840 inline vector unsigned short
3841 vec_perm (vector unsigned short a1, vector unsigned short a2, vector unsigned char a3)
3843 return (vector unsigned short) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3846 inline vector bool short
3847 vec_perm (vector bool short a1, vector bool short a2, vector unsigned char a3)
3849 return (vector bool short) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3853 vec_perm (vector pixel a1, vector pixel a2, vector unsigned char a3)
3855 return (vector pixel) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3858 inline vector signed char
3859 vec_perm (vector signed char a1, vector signed char a2, vector unsigned char a3)
3861 return (vector signed char) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3864 inline vector unsigned char
3865 vec_perm (vector unsigned char a1, vector unsigned char a2, vector unsigned char a3)
3867 return (vector unsigned char) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3870 inline vector bool char
3871 vec_perm (vector bool char a1, vector bool char a2, vector bool char a3)
3873 return (vector bool char) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
3879 vec_re (vector float a1)
3881 return (vector float) __builtin_altivec_vrefp ((vector float) a1);
3886 inline vector signed char
3887 vec_rl (vector signed char a1, vector unsigned char a2)
3889 return (vector signed char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
3892 inline vector unsigned char
3893 vec_rl (vector unsigned char a1, vector unsigned char a2)
3895 return (vector unsigned char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
3898 inline vector signed short
3899 vec_rl (vector signed short a1, vector unsigned short a2)
3901 return (vector signed short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
3904 inline vector unsigned short
3905 vec_rl (vector unsigned short a1, vector unsigned short a2)
3907 return (vector unsigned short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
3910 inline vector signed int
3911 vec_rl (vector signed int a1, vector unsigned int a2)
3913 return (vector signed int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
3916 inline vector unsigned int
3917 vec_rl (vector unsigned int a1, vector unsigned int a2)
3919 return (vector unsigned int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
3924 inline vector signed int
3925 vec_vrlw (vector signed int a1, vector unsigned int a2)
3927 return (vector signed int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
3930 inline vector unsigned int
3931 vec_vrlw (vector unsigned int a1, vector unsigned int a2)
3933 return (vector unsigned int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
3938 inline vector signed short
3939 vec_vrlh (vector signed short a1, vector unsigned short a2)
3941 return (vector signed short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
3944 inline vector unsigned short
3945 vec_vrlh (vector unsigned short a1, vector unsigned short a2)
3947 return (vector unsigned short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
3952 inline vector signed char
3953 vec_vrlb (vector signed char a1, vector unsigned char a2)
3955 return (vector signed char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
3958 inline vector unsigned char
3959 vec_vrlb (vector unsigned char a1, vector unsigned char a2)
3961 return (vector unsigned char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
3967 vec_round (vector float a1)
3969 return (vector float) __builtin_altivec_vrfin ((vector float) a1);
3975 vec_rsqrte (vector float a1)
3977 return (vector float) __builtin_altivec_vrsqrtefp ((vector float) a1);
3983 vec_sel (vector float a1, vector float a2, vector bool int a3)
3985 return (vector float) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
3989 vec_sel (vector float a1, vector float a2, vector unsigned int a3)
3991 return (vector float) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
3994 inline vector signed int
3995 vec_sel (vector signed int a1, vector signed int a2, vector bool int a3)
3997 return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4000 inline vector signed int
4001 vec_sel (vector signed int a1, vector signed int a2, vector unsigned int a3)
4003 return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4006 inline vector unsigned int
4007 vec_sel (vector unsigned int a1, vector unsigned int a2, vector bool int a3)
4009 return (vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4012 inline vector unsigned int
4013 vec_sel (vector unsigned int a1, vector unsigned int a2, vector unsigned int a3)
4015 return (vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4018 inline vector bool int
4019 vec_sel (vector bool int a1, vector bool int a2, vector bool int a3)
4021 return (vector bool int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4024 inline vector bool int
4025 vec_sel (vector bool int a1, vector bool int a2, vector unsigned int a3)
4027 return (vector bool int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4030 inline vector signed short
4031 vec_sel (vector signed short a1, vector signed short a2, vector bool short a3)
4033 return (vector signed short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4036 inline vector signed short
4037 vec_sel (vector signed short a1, vector signed short a2, vector unsigned short a3)
4039 return (vector signed short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4042 inline vector unsigned short
4043 vec_sel (vector unsigned short a1, vector unsigned short a2, vector bool short a3)
4045 return (vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4048 inline vector unsigned short
4049 vec_sel (vector unsigned short a1, vector unsigned short a2, vector unsigned short a3)
4051 return (vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4054 inline vector bool short
4055 vec_sel (vector bool short a1, vector bool short a2, vector bool short a3)
4057 return (vector bool short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4060 inline vector bool short
4061 vec_sel (vector bool short a1, vector bool short a2, vector unsigned short a3)
4063 return (vector bool short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4066 inline vector signed char
4067 vec_sel (vector signed char a1, vector signed char a2, vector bool char a3)
4069 return (vector signed char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4072 inline vector signed char
4073 vec_sel (vector signed char a1, vector signed char a2, vector unsigned char a3)
4075 return (vector signed char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4078 inline vector unsigned char
4079 vec_sel (vector unsigned char a1, vector unsigned char a2, vector bool char a3)
4081 return (vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4084 inline vector unsigned char
4085 vec_sel (vector unsigned char a1, vector unsigned char a2, vector unsigned char a3)
4087 return (vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4090 inline vector bool char
4091 vec_sel (vector bool char a1, vector bool char a2, vector bool char a3)
4093 return (vector bool char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4096 inline vector bool char
4097 vec_sel (vector bool char a1, vector bool char a2, vector unsigned char a3)
4099 return (vector bool char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
4104 inline vector signed char
4105 vec_sl (vector signed char a1, vector unsigned char a2)
4107 return (vector signed char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
4110 inline vector unsigned char
4111 vec_sl (vector unsigned char a1, vector unsigned char a2)
4113 return (vector unsigned char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
4116 inline vector signed short
4117 vec_sl (vector signed short a1, vector unsigned short a2)
4119 return (vector signed short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
4122 inline vector unsigned short
4123 vec_sl (vector unsigned short a1, vector unsigned short a2)
4125 return (vector unsigned short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
4128 inline vector signed int
4129 vec_sl (vector signed int a1, vector unsigned int a2)
4131 return (vector signed int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
4134 inline vector unsigned int
4135 vec_sl (vector unsigned int a1, vector unsigned int a2)
4137 return (vector unsigned int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
4142 inline vector signed int
4143 vec_vslw (vector signed int a1, vector unsigned int a2)
4145 return (vector signed int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
4148 inline vector unsigned int
4149 vec_vslw (vector unsigned int a1, vector unsigned int a2)
4151 return (vector unsigned int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
4156 inline vector signed short
4157 vec_vslh (vector signed short a1, vector unsigned short a2)
4159 return (vector signed short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
4162 inline vector unsigned short
4163 vec_vslh (vector unsigned short a1, vector unsigned short a2)
4165 return (vector unsigned short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
4170 inline vector signed char
4171 vec_vslb (vector signed char a1, vector unsigned char a2)
4173 return (vector signed char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
4176 inline vector unsigned char
4177 vec_vslb (vector unsigned char a1, vector unsigned char a2)
4179 return (vector unsigned char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
4185 vec_sld (vector float a1, vector float a2, const int a3)
4187 return (vector float) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4190 inline vector signed int
4191 vec_sld (vector signed int a1, vector signed int a2, const int a3)
4193 return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4196 inline vector unsigned int
4197 vec_sld (vector unsigned int a1, vector unsigned int a2, const int a3)
4199 return (vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4202 inline vector bool int
4203 vec_sld (vector bool int a1, vector bool int a2, const int a3)
4205 return (vector bool int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4208 inline vector signed short
4209 vec_sld (vector signed short a1, vector signed short a2, const int a3)
4211 return (vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4214 inline vector unsigned short
4215 vec_sld (vector unsigned short a1, vector unsigned short a2, const int a3)
4217 return (vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4220 inline vector bool short
4221 vec_sld (vector bool short a1, vector bool short a2, const int a3)
4223 return (vector bool short) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4227 vec_sld (vector pixel a1, vector pixel a2, const int a3)
4229 return (vector pixel) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4232 inline vector signed char
4233 vec_sld (vector signed char a1, vector signed char a2, const int a3)
4235 return (vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4238 inline vector unsigned char
4239 vec_sld (vector unsigned char a1, vector unsigned char a2, const int a3)
4241 return (vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4244 inline vector bool char
4245 vec_sld (vector bool char a1, vector bool char a2, const int a3)
4247 return (vector bool char) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
4252 inline vector signed int
4253 vec_sll (vector signed int a1, vector unsigned int a2)
4255 return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4258 inline vector signed int
4259 vec_sll (vector signed int a1, vector unsigned short a2)
4261 return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4264 inline vector signed int
4265 vec_sll (vector signed int a1, vector unsigned char a2)
4267 return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4270 inline vector unsigned int
4271 vec_sll (vector unsigned int a1, vector unsigned int a2)
4273 return (vector unsigned int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4276 inline vector unsigned int
4277 vec_sll (vector unsigned int a1, vector unsigned short a2)
4279 return (vector unsigned int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4282 inline vector unsigned int
4283 vec_sll (vector unsigned int a1, vector unsigned char a2)
4285 return (vector unsigned int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4288 inline vector bool int
4289 vec_sll (vector bool int a1, vector unsigned int a2)
4291 return (vector bool int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4294 inline vector bool int
4295 vec_sll (vector bool int a1, vector unsigned short a2)
4297 return (vector bool int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4300 inline vector bool int
4301 vec_sll (vector bool int a1, vector unsigned char a2)
4303 return (vector bool int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4306 inline vector signed short
4307 vec_sll (vector signed short a1, vector unsigned int a2)
4309 return (vector signed short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4312 inline vector signed short
4313 vec_sll (vector signed short a1, vector unsigned short a2)
4315 return (vector signed short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4318 inline vector signed short
4319 vec_sll (vector signed short a1, vector unsigned char a2)
4321 return (vector signed short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4324 inline vector unsigned short
4325 vec_sll (vector unsigned short a1, vector unsigned int a2)
4327 return (vector unsigned short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4330 inline vector unsigned short
4331 vec_sll (vector unsigned short a1, vector unsigned short a2)
4333 return (vector unsigned short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4336 inline vector unsigned short
4337 vec_sll (vector unsigned short a1, vector unsigned char a2)
4339 return (vector unsigned short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4342 inline vector bool short
4343 vec_sll (vector bool short a1, vector unsigned int a2)
4345 return (vector bool short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4348 inline vector bool short
4349 vec_sll (vector bool short a1, vector unsigned short a2)
4351 return (vector bool short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4354 inline vector bool short
4355 vec_sll (vector bool short a1, vector unsigned char a2)
4357 return (vector bool short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4361 vec_sll (vector pixel a1, vector unsigned int a2)
4363 return (vector pixel) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4367 vec_sll (vector pixel a1, vector unsigned short a2)
4369 return (vector pixel) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4373 vec_sll (vector pixel a1, vector unsigned char a2)
4375 return (vector pixel) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4378 inline vector signed char
4379 vec_sll (vector signed char a1, vector unsigned int a2)
4381 return (vector signed char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4384 inline vector signed char
4385 vec_sll (vector signed char a1, vector unsigned short a2)
4387 return (vector signed char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4390 inline vector signed char
4391 vec_sll (vector signed char a1, vector unsigned char a2)
4393 return (vector signed char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4396 inline vector unsigned char
4397 vec_sll (vector unsigned char a1, vector unsigned int a2)
4399 return (vector unsigned char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4402 inline vector unsigned char
4403 vec_sll (vector unsigned char a1, vector unsigned short a2)
4405 return (vector unsigned char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4408 inline vector unsigned char
4409 vec_sll (vector unsigned char a1, vector unsigned char a2)
4411 return (vector unsigned char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4414 inline vector bool char
4415 vec_sll (vector bool char a1, vector unsigned int a2)
4417 return (vector bool char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4420 inline vector bool char
4421 vec_sll (vector bool char a1, vector unsigned short a2)
4423 return (vector bool char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4426 inline vector bool char
4427 vec_sll (vector bool char a1, vector unsigned char a2)
4429 return (vector bool char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
4435 vec_slo (vector float a1, vector signed char a2)
4437 return (vector float) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4441 vec_slo (vector float a1, vector unsigned char a2)
4443 return (vector float) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4446 inline vector signed int
4447 vec_slo (vector signed int a1, vector signed char a2)
4449 return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4452 inline vector signed int
4453 vec_slo (vector signed int a1, vector unsigned char a2)
4455 return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4458 inline vector unsigned int
4459 vec_slo (vector unsigned int a1, vector signed char a2)
4461 return (vector unsigned int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4464 inline vector unsigned int
4465 vec_slo (vector unsigned int a1, vector unsigned char a2)
4467 return (vector unsigned int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4470 inline vector signed short
4471 vec_slo (vector signed short a1, vector signed char a2)
4473 return (vector signed short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4476 inline vector signed short
4477 vec_slo (vector signed short a1, vector unsigned char a2)
4479 return (vector signed short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4482 inline vector unsigned short
4483 vec_slo (vector unsigned short a1, vector signed char a2)
4485 return (vector unsigned short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4488 inline vector unsigned short
4489 vec_slo (vector unsigned short a1, vector unsigned char a2)
4491 return (vector unsigned short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4495 vec_slo (vector pixel a1, vector signed char a2)
4497 return (vector pixel) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4501 vec_slo (vector pixel a1, vector unsigned char a2)
4503 return (vector pixel) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4506 inline vector signed char
4507 vec_slo (vector signed char a1, vector signed char a2)
4509 return (vector signed char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4512 inline vector signed char
4513 vec_slo (vector signed char a1, vector unsigned char a2)
4515 return (vector signed char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4518 inline vector unsigned char
4519 vec_slo (vector unsigned char a1, vector signed char a2)
4521 return (vector unsigned char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4524 inline vector unsigned char
4525 vec_slo (vector unsigned char a1, vector unsigned char a2)
4527 return (vector unsigned char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
4532 inline vector signed char
4533 vec_splat (vector signed char a1, const int a2)
4535 return (vector signed char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
4538 inline vector unsigned char
4539 vec_splat (vector unsigned char a1, const int a2)
4541 return (vector unsigned char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
4544 inline vector bool char
4545 vec_splat (vector bool char a1, const int a2)
4547 return (vector bool char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
4550 inline vector signed short
4551 vec_splat (vector signed short a1, const int a2)
4553 return (vector signed short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
4556 inline vector unsigned short
4557 vec_splat (vector unsigned short a1, const int a2)
4559 return (vector unsigned short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
4562 inline vector bool short
4563 vec_splat (vector bool short a1, const int a2)
4565 return (vector bool short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
4569 vec_splat (vector pixel a1, const int a2)
4571 return (vector pixel) __builtin_altivec_vsplth ((vector signed short) a1, a2);
4575 vec_splat (vector float a1, const int a2)
4577 return (vector float) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4580 inline vector signed int
4581 vec_splat (vector signed int a1, const int a2)
4583 return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4586 inline vector unsigned int
4587 vec_splat (vector unsigned int a1, const int a2)
4589 return (vector unsigned int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4592 inline vector bool int
4593 vec_splat (vector bool int a1, const int a2)
4595 return (vector bool int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4601 vec_vspltw (vector float a1, const int a2)
4603 return (vector float) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4606 inline vector signed int
4607 vec_vspltw (vector signed int a1, const int a2)
4609 return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4612 inline vector unsigned int
4613 vec_vspltw (vector unsigned int a1, const int a2)
4615 return (vector unsigned int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
4620 inline vector signed short
4621 vec_vsplth (vector signed short a1, const int a2)
4623 return (vector signed short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
4626 inline vector unsigned short
4627 vec_vsplth (vector unsigned short a1, const int a2)
4629 return (vector unsigned short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
4634 inline vector signed char
4635 vec_vspltb (vector signed char a1, const int a2)
4637 return (vector signed char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
4640 inline vector unsigned char
4641 vec_vspltb (vector unsigned char a1, const int a2)
4643 return (vector unsigned char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
4648 inline vector signed char
4649 vec_splat_s8 (const int a1)
4651 return (vector signed char) __builtin_altivec_vspltisb (a1);
4656 inline vector signed short
4657 vec_splat_s16 (const int a1)
4659 return (vector signed short) __builtin_altivec_vspltish (a1);
4664 inline vector signed int
4665 vec_splat_s32 (const int a1)
4667 return (vector signed int) __builtin_altivec_vspltisw (a1);
4672 inline vector unsigned char
4673 vec_splat_u8 (const int a1)
4675 return (vector unsigned char) __builtin_altivec_vspltisb (a1);
4680 inline vector unsigned short
4681 vec_splat_u16 (const int a1)
4683 return (vector unsigned short) __builtin_altivec_vspltish (a1);
4688 inline vector unsigned int
4689 vec_splat_u32 (const int a1)
4691 return (vector unsigned int) __builtin_altivec_vspltisw (a1);
4696 inline vector signed char
4697 vec_sr (vector signed char a1, vector unsigned char a2)
4699 return (vector signed char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
4702 inline vector unsigned char
4703 vec_sr (vector unsigned char a1, vector unsigned char a2)
4705 return (vector unsigned char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
4708 inline vector signed short
4709 vec_sr (vector signed short a1, vector unsigned short a2)
4711 return (vector signed short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
4714 inline vector unsigned short
4715 vec_sr (vector unsigned short a1, vector unsigned short a2)
4717 return (vector unsigned short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
4720 inline vector signed int
4721 vec_sr (vector signed int a1, vector unsigned int a2)
4723 return (vector signed int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
4726 inline vector unsigned int
4727 vec_sr (vector unsigned int a1, vector unsigned int a2)
4729 return (vector unsigned int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
4734 inline vector signed int
4735 vec_vsrw (vector signed int a1, vector unsigned int a2)
4737 return (vector signed int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
4740 inline vector unsigned int
4741 vec_vsrw (vector unsigned int a1, vector unsigned int a2)
4743 return (vector unsigned int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
4748 inline vector signed short
4749 vec_vsrh (vector signed short a1, vector unsigned short a2)
4751 return (vector signed short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
4754 inline vector unsigned short
4755 vec_vsrh (vector unsigned short a1, vector unsigned short a2)
4757 return (vector unsigned short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
4762 inline vector signed char
4763 vec_vsrb (vector signed char a1, vector unsigned char a2)
4765 return (vector signed char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
4768 inline vector unsigned char
4769 vec_vsrb (vector unsigned char a1, vector unsigned char a2)
4771 return (vector unsigned char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
4776 inline vector signed char
4777 vec_sra (vector signed char a1, vector unsigned char a2)
4779 return (vector signed char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
4782 inline vector unsigned char
4783 vec_sra (vector unsigned char a1, vector unsigned char a2)
4785 return (vector unsigned char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
4788 inline vector signed short
4789 vec_sra (vector signed short a1, vector unsigned short a2)
4791 return (vector signed short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
4794 inline vector unsigned short
4795 vec_sra (vector unsigned short a1, vector unsigned short a2)
4797 return (vector unsigned short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
4800 inline vector signed int
4801 vec_sra (vector signed int a1, vector unsigned int a2)
4803 return (vector signed int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
4806 inline vector unsigned int
4807 vec_sra (vector unsigned int a1, vector unsigned int a2)
4809 return (vector unsigned int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
4814 inline vector signed int
4815 vec_vsraw (vector signed int a1, vector unsigned int a2)
4817 return (vector signed int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
4820 inline vector unsigned int
4821 vec_vsraw (vector unsigned int a1, vector unsigned int a2)
4823 return (vector unsigned int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
4828 inline vector signed short
4829 vec_vsrah (vector signed short a1, vector unsigned short a2)
4831 return (vector signed short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
4834 inline vector unsigned short
4835 vec_vsrah (vector unsigned short a1, vector unsigned short a2)
4837 return (vector unsigned short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
4842 inline vector signed char
4843 vec_vsrab (vector signed char a1, vector unsigned char a2)
4845 return (vector signed char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
4848 inline vector unsigned char
4849 vec_vsrab (vector unsigned char a1, vector unsigned char a2)
4851 return (vector unsigned char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
4856 inline vector signed int
4857 vec_srl (vector signed int a1, vector unsigned int a2)
4859 return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4862 inline vector signed int
4863 vec_srl (vector signed int a1, vector unsigned short a2)
4865 return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4868 inline vector signed int
4869 vec_srl (vector signed int a1, vector unsigned char a2)
4871 return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4874 inline vector unsigned int
4875 vec_srl (vector unsigned int a1, vector unsigned int a2)
4877 return (vector unsigned int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4880 inline vector unsigned int
4881 vec_srl (vector unsigned int a1, vector unsigned short a2)
4883 return (vector unsigned int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4886 inline vector unsigned int
4887 vec_srl (vector unsigned int a1, vector unsigned char a2)
4889 return (vector unsigned int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4892 inline vector bool int
4893 vec_srl (vector bool int a1, vector unsigned int a2)
4895 return (vector bool int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4898 inline vector bool int
4899 vec_srl (vector bool int a1, vector unsigned short a2)
4901 return (vector bool int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4904 inline vector bool int
4905 vec_srl (vector bool int a1, vector unsigned char a2)
4907 return (vector bool int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4910 inline vector signed short
4911 vec_srl (vector signed short a1, vector unsigned int a2)
4913 return (vector signed short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4916 inline vector signed short
4917 vec_srl (vector signed short a1, vector unsigned short a2)
4919 return (vector signed short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4922 inline vector signed short
4923 vec_srl (vector signed short a1, vector unsigned char a2)
4925 return (vector signed short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4928 inline vector unsigned short
4929 vec_srl (vector unsigned short a1, vector unsigned int a2)
4931 return (vector unsigned short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4934 inline vector unsigned short
4935 vec_srl (vector unsigned short a1, vector unsigned short a2)
4937 return (vector unsigned short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4940 inline vector unsigned short
4941 vec_srl (vector unsigned short a1, vector unsigned char a2)
4943 return (vector unsigned short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4946 inline vector bool short
4947 vec_srl (vector bool short a1, vector unsigned int a2)
4949 return (vector bool short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4952 inline vector bool short
4953 vec_srl (vector bool short a1, vector unsigned short a2)
4955 return (vector bool short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4958 inline vector bool short
4959 vec_srl (vector bool short a1, vector unsigned char a2)
4961 return (vector bool short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4965 vec_srl (vector pixel a1, vector unsigned int a2)
4967 return (vector pixel) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4971 vec_srl (vector pixel a1, vector unsigned short a2)
4973 return (vector pixel) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4977 vec_srl (vector pixel a1, vector unsigned char a2)
4979 return (vector pixel) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4982 inline vector signed char
4983 vec_srl (vector signed char a1, vector unsigned int a2)
4985 return (vector signed char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4988 inline vector signed char
4989 vec_srl (vector signed char a1, vector unsigned short a2)
4991 return (vector signed char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
4994 inline vector signed char
4995 vec_srl (vector signed char a1, vector unsigned char a2)
4997 return (vector signed char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5000 inline vector unsigned char
5001 vec_srl (vector unsigned char a1, vector unsigned int a2)
5003 return (vector unsigned char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5006 inline vector unsigned char
5007 vec_srl (vector unsigned char a1, vector unsigned short a2)
5009 return (vector unsigned char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5012 inline vector unsigned char
5013 vec_srl (vector unsigned char a1, vector unsigned char a2)
5015 return (vector unsigned char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5018 inline vector bool char
5019 vec_srl (vector bool char a1, vector unsigned int a2)
5021 return (vector bool char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5024 inline vector bool char
5025 vec_srl (vector bool char a1, vector unsigned short a2)
5027 return (vector bool char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5030 inline vector bool char
5031 vec_srl (vector bool char a1, vector unsigned char a2)
5033 return (vector bool char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
5039 vec_sro (vector float a1, vector signed char a2)
5041 return (vector float) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5045 vec_sro (vector float a1, vector unsigned char a2)
5047 return (vector float) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5050 inline vector signed int
5051 vec_sro (vector signed int a1, vector signed char a2)
5053 return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5056 inline vector signed int
5057 vec_sro (vector signed int a1, vector unsigned char a2)
5059 return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5062 inline vector unsigned int
5063 vec_sro (vector unsigned int a1, vector signed char a2)
5065 return (vector unsigned int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5068 inline vector unsigned int
5069 vec_sro (vector unsigned int a1, vector unsigned char a2)
5071 return (vector unsigned int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5074 inline vector signed short
5075 vec_sro (vector signed short a1, vector signed char a2)
5077 return (vector signed short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5080 inline vector signed short
5081 vec_sro (vector signed short a1, vector unsigned char a2)
5083 return (vector signed short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5086 inline vector unsigned short
5087 vec_sro (vector unsigned short a1, vector signed char a2)
5089 return (vector unsigned short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5092 inline vector unsigned short
5093 vec_sro (vector unsigned short a1, vector unsigned char a2)
5095 return (vector unsigned short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5099 vec_sro (vector pixel a1, vector signed char a2)
5101 return (vector pixel) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5105 vec_sro (vector pixel a1, vector unsigned char a2)
5107 return (vector pixel) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5110 inline vector signed char
5111 vec_sro (vector signed char a1, vector signed char a2)
5113 return (vector signed char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5116 inline vector signed char
5117 vec_sro (vector signed char a1, vector unsigned char a2)
5119 return (vector signed char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5122 inline vector unsigned char
5123 vec_sro (vector unsigned char a1, vector signed char a2)
5125 return (vector unsigned char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5128 inline vector unsigned char
5129 vec_sro (vector unsigned char a1, vector unsigned char a2)
5131 return (vector unsigned char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
5137 vec_st (vector float a1, int a2, vector float *a3)
5139 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5143 vec_st (vector float a1, int a2, float *a3)
5145 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5149 vec_st (vector signed int a1, int a2, vector signed int *a3)
5151 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5155 vec_st (vector signed int a1, int a2, int *a3)
5157 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5161 vec_st (vector unsigned int a1, int a2, vector unsigned int *a3)
5163 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5167 vec_st (vector unsigned int a1, int a2, unsigned int *a3)
5169 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5173 vec_st (vector bool int a1, int a2, vector bool int *a3)
5175 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5179 vec_st (vector bool int a1, int a2, unsigned int *a3)
5181 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5185 vec_st (vector bool int a1, int a2, int *a3)
5187 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5191 vec_st (vector signed short a1, int a2, vector signed short *a3)
5193 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5197 vec_st (vector signed short a1, int a2, short *a3)
5199 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5203 vec_st (vector unsigned short a1, int a2, vector unsigned short *a3)
5205 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5209 vec_st (vector unsigned short a1, int a2, unsigned short *a3)
5211 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5215 vec_st (vector bool short a1, int a2, vector bool short *a3)
5217 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5221 vec_st (vector bool short a1, int a2, unsigned short *a3)
5223 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5227 vec_st (vector bool short a1, int a2, short *a3)
5229 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5233 vec_st (vector signed char a1, int a2, vector signed char *a3)
5235 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5239 vec_st (vector signed char a1, int a2, signed char *a3)
5241 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5245 vec_st (vector unsigned char a1, int a2, vector unsigned char *a3)
5247 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5251 vec_st (vector unsigned char a1, int a2, unsigned char *a3)
5253 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5257 vec_st (vector bool char a1, int a2, vector bool char *a3)
5259 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5263 vec_st (vector bool char a1, int a2, unsigned char *a3)
5265 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5269 vec_st (vector bool char a1, int a2, signed char *a3)
5271 __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
5277 vec_ste (vector signed char a1, int a2, signed char *a3)
5279 __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
5283 vec_ste (vector unsigned char a1, int a2, unsigned char *a3)
5285 __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
5289 vec_ste (vector bool char a1, int a2, signed char *a3)
5291 __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
5295 vec_ste (vector bool char a1, int a2, unsigned char *a3)
5297 __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
5301 vec_ste (vector signed short a1, int a2, short *a3)
5303 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5307 vec_ste (vector unsigned short a1, int a2, unsigned short *a3)
5309 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5313 vec_ste (vector bool short a1, int a2, short *a3)
5315 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5319 vec_ste (vector bool short a1, int a2, unsigned short *a3)
5321 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5325 vec_ste (vector pixel a1, int a2, short *a3)
5327 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5331 vec_ste (vector pixel a1, int a2, unsigned short *a3)
5333 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5337 vec_ste (vector float a1, int a2, float *a3)
5339 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5343 vec_ste (vector signed int a1, int a2, int *a3)
5345 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5349 vec_ste (vector unsigned int a1, int a2, unsigned int *a3)
5351 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5355 vec_ste (vector bool int a1, int a2, int *a3)
5357 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5361 vec_ste (vector bool int a1, int a2, unsigned int *a3)
5363 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5369 vec_stvewx (vector float a1, int a2, void *a3)
5371 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5375 vec_stvewx (vector signed int a1, int a2, void *a3)
5377 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5381 vec_stvewx (vector unsigned int a1, int a2, void *a3)
5383 __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
5389 vec_stvehx (vector signed short a1, int a2, void *a3)
5391 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5395 vec_stvehx (vector unsigned short a1, int a2, void *a3)
5397 __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
5403 vec_stvebx (vector signed char a1, int a2, void *a3)
5405 __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
5409 vec_stvebx (vector unsigned char a1, int a2, void *a3)
5411 __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
5417 vec_stl (vector float a1, int a2, vector float *a3)
5419 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5423 vec_stl (vector float a1, int a2, float *a3)
5425 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5429 vec_stl (vector signed int a1, int a2, vector signed int *a3)
5431 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5435 vec_stl (vector signed int a1, int a2, int *a3)
5437 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5441 vec_stl (vector unsigned int a1, int a2, vector unsigned int *a3)
5443 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5447 vec_stl (vector unsigned int a1, int a2, unsigned int *a3)
5449 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5453 vec_stl (vector bool int a1, int a2, vector bool int *a3)
5455 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5459 vec_stl (vector bool int a1, int a2, unsigned int *a3)
5461 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5465 vec_stl (vector bool int a1, int a2, int *a3)
5467 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5471 vec_stl (vector signed short a1, int a2, vector signed short *a3)
5473 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5477 vec_stl (vector signed short a1, int a2, short *a3)
5479 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5483 vec_stl (vector unsigned short a1, int a2, vector unsigned short *a3)
5485 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5489 vec_stl (vector unsigned short a1, int a2, unsigned short *a3)
5491 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5495 vec_stl (vector bool short a1, int a2, vector bool short *a3)
5497 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5501 vec_stl (vector bool short a1, int a2, unsigned short *a3)
5503 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5507 vec_stl (vector bool short a1, int a2, short *a3)
5509 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5513 vec_stl (vector signed char a1, int a2, vector signed char *a3)
5515 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5519 vec_stl (vector signed char a1, int a2, signed char *a3)
5521 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5525 vec_stl (vector unsigned char a1, int a2, vector unsigned char *a3)
5527 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5531 vec_stl (vector unsigned char a1, int a2, unsigned char *a3)
5533 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5537 vec_stl (vector bool char a1, int a2, vector bool char *a3)
5539 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5543 vec_stl (vector bool char a1, int a2, unsigned char *a3)
5545 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5549 vec_stl (vector bool char a1, int a2, signed char *a3)
5551 __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
5556 inline vector signed char
5557 vec_sub (vector bool char a1, vector signed char a2)
5559 return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5562 inline vector signed char
5563 vec_sub (vector signed char a1, vector bool char a2)
5565 return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5568 inline vector signed char
5569 vec_sub (vector signed char a1, vector signed char a2)
5571 return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5574 inline vector unsigned char
5575 vec_sub (vector bool char a1, vector unsigned char a2)
5577 return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5580 inline vector unsigned char
5581 vec_sub (vector unsigned char a1, vector bool char a2)
5583 return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5586 inline vector unsigned char
5587 vec_sub (vector unsigned char a1, vector unsigned char a2)
5589 return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5592 inline vector signed short
5593 vec_sub (vector bool short a1, vector signed short a2)
5595 return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5598 inline vector signed short
5599 vec_sub (vector signed short a1, vector bool short a2)
5601 return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5604 inline vector signed short
5605 vec_sub (vector signed short a1, vector signed short a2)
5607 return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5610 inline vector unsigned short
5611 vec_sub (vector bool short a1, vector unsigned short a2)
5613 return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5616 inline vector unsigned short
5617 vec_sub (vector unsigned short a1, vector bool short a2)
5619 return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5622 inline vector unsigned short
5623 vec_sub (vector unsigned short a1, vector unsigned short a2)
5625 return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5628 inline vector signed int
5629 vec_sub (vector bool int a1, vector signed int a2)
5631 return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5634 inline vector signed int
5635 vec_sub (vector signed int a1, vector bool int a2)
5637 return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5640 inline vector signed int
5641 vec_sub (vector signed int a1, vector signed int a2)
5643 return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5646 inline vector unsigned int
5647 vec_sub (vector bool int a1, vector unsigned int a2)
5649 return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5652 inline vector unsigned int
5653 vec_sub (vector unsigned int a1, vector bool int a2)
5655 return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5658 inline vector unsigned int
5659 vec_sub (vector unsigned int a1, vector unsigned int a2)
5661 return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5665 vec_sub (vector float a1, vector float a2)
5667 return (vector float) __builtin_altivec_vsubfp ((vector float) a1, (vector float) a2);
5673 vec_vsubfp (vector float a1, vector float a2)
5675 return (vector float) __builtin_altivec_vsubfp ((vector float) a1, (vector float) a2);
5680 inline vector signed int
5681 vec_vsubuwm (vector signed int a1, vector signed int a2)
5683 return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5686 inline vector unsigned int
5687 vec_vsubuwm (vector signed int a1, vector unsigned int a2)
5689 return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5692 inline vector unsigned int
5693 vec_vsubuwm (vector unsigned int a1, vector signed int a2)
5695 return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5698 inline vector unsigned int
5699 vec_vsubuwm (vector unsigned int a1, vector unsigned int a2)
5701 return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
5706 inline vector signed short
5707 vec_vsubuhm (vector signed short a1, vector signed short a2)
5709 return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5712 inline vector unsigned short
5713 vec_vsubuhm (vector signed short a1, vector unsigned short a2)
5715 return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5718 inline vector unsigned short
5719 vec_vsubuhm (vector unsigned short a1, vector signed short a2)
5721 return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5724 inline vector unsigned short
5725 vec_vsubuhm (vector unsigned short a1, vector unsigned short a2)
5727 return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
5732 inline vector signed char
5733 vec_vsububm (vector signed char a1, vector signed char a2)
5735 return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5738 inline vector unsigned char
5739 vec_vsububm (vector signed char a1, vector unsigned char a2)
5741 return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5744 inline vector unsigned char
5745 vec_vsububm (vector unsigned char a1, vector signed char a2)
5747 return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5750 inline vector unsigned char
5751 vec_vsububm (vector unsigned char a1, vector unsigned char a2)
5753 return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
5758 inline vector unsigned int
5759 vec_subc (vector unsigned int a1, vector unsigned int a2)
5761 return (vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) a1, (vector signed int) a2);
5766 inline vector unsigned char
5767 vec_subs (vector bool char a1, vector unsigned char a2)
5769 return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
5772 inline vector unsigned char
5773 vec_subs (vector unsigned char a1, vector bool char a2)
5775 return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
5778 inline vector unsigned char
5779 vec_subs (vector unsigned char a1, vector unsigned char a2)
5781 return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
5784 inline vector signed char
5785 vec_subs (vector bool char a1, vector signed char a2)
5787 return (vector signed char) __builtin_altivec_vsubsbs ((vector signed char) a1, (vector signed char) a2);
5790 inline vector signed char
5791 vec_subs (vector signed char a1, vector bool char a2)
5793 return (vector signed char) __builtin_altivec_vsubsbs ((vector signed char) a1, (vector signed char) a2);
5796 inline vector signed char
5797 vec_subs (vector signed char a1, vector signed char a2)
5799 return (vector signed char) __builtin_altivec_vsubsbs ((vector signed char) a1, (vector signed char) a2);
5802 inline vector unsigned short
5803 vec_subs (vector bool short a1, vector unsigned short a2)
5805 return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
5808 inline vector unsigned short
5809 vec_subs (vector unsigned short a1, vector bool short a2)
5811 return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
5814 inline vector unsigned short
5815 vec_subs (vector unsigned short a1, vector unsigned short a2)
5817 return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
5820 inline vector signed short
5821 vec_subs (vector bool short a1, vector signed short a2)
5823 return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
5826 inline vector signed short
5827 vec_subs (vector signed short a1, vector bool short a2)
5829 return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
5832 inline vector signed short
5833 vec_subs (vector signed short a1, vector signed short a2)
5835 return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
5838 inline vector unsigned int
5839 vec_subs (vector bool int a1, vector unsigned int a2)
5841 return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
5844 inline vector unsigned int
5845 vec_subs (vector unsigned int a1, vector bool int a2)
5847 return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
5850 inline vector unsigned int
5851 vec_subs (vector unsigned int a1, vector unsigned int a2)
5853 return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
5856 inline vector signed int
5857 vec_subs (vector bool int a1, vector signed int a2)
5859 return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
5862 inline vector signed int
5863 vec_subs (vector signed int a1, vector bool int a2)
5865 return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
5868 inline vector signed int
5869 vec_subs (vector signed int a1, vector signed int a2)
5871 return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
5876 inline vector signed int
5877 vec_vsubsws (vector signed int a1, vector signed int a2)
5879 return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
5884 inline vector unsigned int
5885 vec_vsubuws (vector signed int a1, vector unsigned int a2)
5887 return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
5890 inline vector unsigned int
5891 vec_vsubuws (vector unsigned int a1, vector signed int a2)
5893 return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
5896 inline vector unsigned int
5897 vec_vsubuws (vector unsigned int a1, vector unsigned int a2)
5899 return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
5904 inline vector signed short
5905 vec_vsubshs (vector signed short a1, vector signed short a2)
5907 return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
5912 inline vector unsigned short
5913 vec_vsubuhs (vector signed short a1, vector unsigned short a2)
5915 return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
5918 inline vector unsigned short
5919 vec_vsubuhs (vector unsigned short a1, vector signed short a2)
5921 return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
5924 inline vector unsigned short
5925 vec_vsubuhs (vector unsigned short a1, vector unsigned short a2)
5927 return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
5932 inline vector signed char
5933 vec_vsubsbs (vector signed char a1, vector signed char a2)
5935 return (vector signed char) __builtin_altivec_vsubsbs ((vector signed char) a1, (vector signed char) a2);
5940 inline vector unsigned char
5941 vec_vsububs (vector signed char a1, vector unsigned char a2)
5943 return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
5946 inline vector unsigned char
5947 vec_vsububs (vector unsigned char a1, vector signed char a2)
5949 return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
5952 inline vector unsigned char
5953 vec_vsububs (vector unsigned char a1, vector unsigned char a2)
5955 return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
5960 inline vector unsigned int
5961 vec_sum4s (vector unsigned char a1, vector unsigned int a2)
5963 return (vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) a1, (vector signed int) a2);
5966 inline vector signed int
5967 vec_sum4s (vector signed char a1, vector signed int a2)
5969 return (vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) a1, (vector signed int) a2);
5972 inline vector signed int
5973 vec_sum4s (vector signed short a1, vector signed int a2)
5975 return (vector signed int) __builtin_altivec_vsum4shs ((vector signed short) a1, (vector signed int) a2);
5980 inline vector signed int
5981 vec_vsum4shss (vector signed short a1, vector signed int a2)
5983 return (vector signed int) __builtin_altivec_vsum4shs ((vector signed short) a1, (vector signed int) a2);
5988 inline vector signed int
5989 vec_vsum4sbs (vector signed char a1, vector signed int a2)
5991 return (vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) a1, (vector signed int) a2);
5996 inline vector unsigned int
5997 vec_vsum4ubs (vector unsigned char a1, vector unsigned int a2)
5999 return (vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) a1, (vector signed int) a2);
6004 inline vector signed int
6005 vec_sum2s (vector signed int a1, vector signed int a2)
6007 return (vector signed int) __builtin_altivec_vsum2sws ((vector signed int) a1, (vector signed int) a2);
6012 inline vector signed int
6013 vec_sums (vector signed int a1, vector signed int a2)
6015 return (vector signed int) __builtin_altivec_vsumsws ((vector signed int) a1, (vector signed int) a2);
6021 vec_trunc (vector float a1)
6023 return (vector float) __builtin_altivec_vrfiz ((vector float) a1);
6028 inline vector signed short
6029 vec_unpackh (vector signed char a1)
6031 return (vector signed short) __builtin_altivec_vupkhsb ((vector signed char) a1);
6034 inline vector signed short
6035 vec_unpackh (vector bool char a1)
6037 return (vector signed short) __builtin_altivec_vupkhsb ((vector signed char) a1);
6040 inline vector signed int
6041 vec_unpackh (vector signed short a1)
6043 return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
6046 inline vector signed int
6047 vec_unpackh (vector bool short a1)
6049 return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
6052 inline vector unsigned int
6053 vec_unpackh (vector pixel a1)
6055 return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
6060 inline vector signed int
6061 vec_vupkhsh (vector signed short a1)
6063 return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
6068 inline vector unsigned int
6069 vec_vupkhpx (vector unsigned short a1)
6071 return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
6076 inline vector signed short
6077 vec_vupkhsb (vector signed char a1)
6079 return (vector signed short) __builtin_altivec_vupkhsb ((vector signed char) a1);
6084 inline vector signed short
6085 vec_unpackl (vector signed char a1)
6087 return (vector signed short) __builtin_altivec_vupklsb ((vector signed char) a1);
6090 inline vector signed short
6091 vec_unpackl (vector bool char a1)
6093 return (vector signed short) __builtin_altivec_vupklsb ((vector signed char) a1);
6096 inline vector unsigned int
6097 vec_unpackl (vector pixel a1)
6099 return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
6102 inline vector signed int
6103 vec_unpackl (vector signed short a1)
6105 return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
6108 inline vector signed int
6109 vec_unpackl (vector bool short a1)
6111 return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
6116 inline vector unsigned int
6117 vec_vupklpx (vector unsigned short a1)
6119 return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
6124 inline vector signed int
6125 vec_vupklsh (vector signed short a1)
6127 return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
6132 inline vector signed short
6133 vec_vupklsb (vector signed char a1)
6135 return (vector signed short) __builtin_altivec_vupklsb ((vector signed char) a1);
6141 vec_xor (vector float a1, vector float a2)
6143 return (vector float) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6147 vec_xor (vector float a1, vector bool int a2)
6149 return (vector float) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6153 vec_xor (vector bool int a1, vector float a2)
6155 return (vector float) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6158 inline vector bool int
6159 vec_xor (vector bool int a1, vector bool int a2)
6161 return (vector bool int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6164 inline vector signed int
6165 vec_xor (vector bool int a1, vector signed int a2)
6167 return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6170 inline vector signed int
6171 vec_xor (vector signed int a1, vector bool int a2)
6173 return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6176 inline vector signed int
6177 vec_xor (vector signed int a1, vector signed int a2)
6179 return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6182 inline vector unsigned int
6183 vec_xor (vector bool int a1, vector unsigned int a2)
6185 return (vector unsigned int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6188 inline vector unsigned int
6189 vec_xor (vector unsigned int a1, vector bool int a2)
6191 return (vector unsigned int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6194 inline vector unsigned int
6195 vec_xor (vector unsigned int a1, vector unsigned int a2)
6197 return (vector unsigned int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6200 inline vector bool short
6201 vec_xor (vector bool short a1, vector bool short a2)
6203 return (vector bool short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6206 inline vector signed short
6207 vec_xor (vector bool short a1, vector signed short a2)
6209 return (vector signed short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6212 inline vector signed short
6213 vec_xor (vector signed short a1, vector bool short a2)
6215 return (vector signed short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6218 inline vector signed short
6219 vec_xor (vector signed short a1, vector signed short a2)
6221 return (vector signed short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6224 inline vector unsigned short
6225 vec_xor (vector bool short a1, vector unsigned short a2)
6227 return (vector unsigned short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6230 inline vector unsigned short
6231 vec_xor (vector unsigned short a1, vector bool short a2)
6233 return (vector unsigned short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6236 inline vector unsigned short
6237 vec_xor (vector unsigned short a1, vector unsigned short a2)
6239 return (vector unsigned short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6242 inline vector signed char
6243 vec_xor (vector bool char a1, vector signed char a2)
6245 return (vector signed char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6248 inline vector bool char
6249 vec_xor (vector bool char a1, vector bool char a2)
6251 return (vector bool char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6254 inline vector signed char
6255 vec_xor (vector signed char a1, vector bool char a2)
6257 return (vector signed char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6260 inline vector signed char
6261 vec_xor (vector signed char a1, vector signed char a2)
6263 return (vector signed char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6266 inline vector unsigned char
6267 vec_xor (vector bool char a1, vector unsigned char a2)
6269 return (vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6272 inline vector unsigned char
6273 vec_xor (vector unsigned char a1, vector bool char a2)
6275 return (vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6278 inline vector unsigned char
6279 vec_xor (vector unsigned char a1, vector unsigned char a2)
6281 return (vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
6287 vec_all_eq (vector signed char a1, vector bool char a2)
6289 return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, (vector signed char) a2);
6293 vec_all_eq (vector signed char a1, vector signed char a2)
6295 return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, a2);
6299 vec_all_eq (vector unsigned char a1, vector bool char a2)
6301 return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6305 vec_all_eq (vector unsigned char a1, vector unsigned char a2)
6307 return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6311 vec_all_eq (vector bool char a1, vector bool char a2)
6313 return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6317 vec_all_eq (vector bool char a1, vector unsigned char a2)
6319 return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6323 vec_all_eq (vector bool char a1, vector signed char a2)
6325 return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6329 vec_all_eq (vector signed short a1, vector bool short a2)
6331 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6335 vec_all_eq (vector signed short a1, vector signed short a2)
6337 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6341 vec_all_eq (vector unsigned short a1, vector bool short a2)
6343 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6347 vec_all_eq (vector unsigned short a1, vector unsigned short a2)
6349 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6353 vec_all_eq (vector bool short a1, vector bool short a2)
6355 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6359 vec_all_eq (vector bool short a1, vector unsigned short a2)
6361 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6365 vec_all_eq (vector bool short a1, vector signed short a2)
6367 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6371 vec_all_eq (vector pixel a1, vector pixel a2)
6373 return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6377 vec_all_eq (vector signed int a1, vector bool int a2)
6379 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6383 vec_all_eq (vector signed int a1, vector signed int a2)
6385 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6389 vec_all_eq (vector unsigned int a1, vector bool int a2)
6391 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6395 vec_all_eq (vector unsigned int a1, vector unsigned int a2)
6397 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6401 vec_all_eq (vector bool int a1, vector bool int a2)
6403 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6407 vec_all_eq (vector bool int a1, vector unsigned int a2)
6409 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6413 vec_all_eq (vector bool int a1, vector signed int a2)
6415 return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6419 vec_all_eq (vector float a1, vector float a2)
6421 return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a2);
6427 vec_all_ge (vector bool char a1, vector unsigned char a2)
6429 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
6433 vec_all_ge (vector unsigned char a1, vector bool char a2)
6435 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
6439 vec_all_ge (vector unsigned char a1, vector unsigned char a2)
6441 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
6445 vec_all_ge (vector bool char a1, vector signed char a2)
6447 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
6451 vec_all_ge (vector signed char a1, vector bool char a2)
6453 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
6457 vec_all_ge (vector signed char a1, vector signed char a2)
6459 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
6463 vec_all_ge (vector bool short a1, vector unsigned short a2)
6465 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
6469 vec_all_ge (vector unsigned short a1, vector bool short a2)
6471 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
6475 vec_all_ge (vector unsigned short a1, vector unsigned short a2)
6477 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
6481 vec_all_ge (vector signed short a1, vector signed short a2)
6483 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
6487 vec_all_ge (vector bool short a1, vector signed short a2)
6489 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
6493 vec_all_ge (vector signed short a1, vector bool short a2)
6495 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
6499 vec_all_ge (vector bool int a1, vector unsigned int a2)
6501 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
6505 vec_all_ge (vector unsigned int a1, vector bool int a2)
6507 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
6511 vec_all_ge (vector unsigned int a1, vector unsigned int a2)
6513 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
6517 vec_all_ge (vector bool int a1, vector signed int a2)
6519 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
6523 vec_all_ge (vector signed int a1, vector bool int a2)
6525 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
6529 vec_all_ge (vector signed int a1, vector signed int a2)
6531 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
6535 vec_all_ge (vector float a1, vector float a2)
6537 return __builtin_altivec_vcmpgefp_p (__CR6_LT, a1, a2);
6543 vec_all_gt (vector bool char a1, vector unsigned char a2)
6545 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6549 vec_all_gt (vector unsigned char a1, vector bool char a2)
6551 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6555 vec_all_gt (vector unsigned char a1, vector unsigned char a2)
6557 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6561 vec_all_gt (vector bool char a1, vector signed char a2)
6563 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6567 vec_all_gt (vector signed char a1, vector bool char a2)
6569 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6573 vec_all_gt (vector signed char a1, vector signed char a2)
6575 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
6579 vec_all_gt (vector bool short a1, vector unsigned short a2)
6581 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6585 vec_all_gt (vector unsigned short a1, vector bool short a2)
6587 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6591 vec_all_gt (vector unsigned short a1, vector unsigned short a2)
6593 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6597 vec_all_gt (vector bool short a1, vector signed short a2)
6599 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6603 vec_all_gt (vector signed short a1, vector bool short a2)
6605 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6609 vec_all_gt (vector signed short a1, vector signed short a2)
6611 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
6615 vec_all_gt (vector bool int a1, vector unsigned int a2)
6617 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6621 vec_all_gt (vector unsigned int a1, vector bool int a2)
6623 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6627 vec_all_gt (vector unsigned int a1, vector unsigned int a2)
6629 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6633 vec_all_gt (vector bool int a1, vector signed int a2)
6635 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6639 vec_all_gt (vector signed int a1, vector bool int a2)
6641 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6645 vec_all_gt (vector signed int a1, vector signed int a2)
6647 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
6651 vec_all_gt (vector float a1, vector float a2)
6653 return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a1, a2);
6659 vec_all_in (vector float a1, vector float a2)
6661 return __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2);
6667 vec_all_le (vector bool char a1, vector unsigned char a2)
6669 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6673 vec_all_le (vector unsigned char a1, vector bool char a2)
6675 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6679 vec_all_le (vector unsigned char a1, vector unsigned char a2)
6681 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6685 vec_all_le (vector bool char a1, vector signed char a2)
6687 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6691 vec_all_le (vector signed char a1, vector bool char a2)
6693 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6697 vec_all_le (vector signed char a1, vector signed char a2)
6699 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6703 vec_all_le (vector bool short a1, vector unsigned short a2)
6705 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6709 vec_all_le (vector unsigned short a1, vector bool short a2)
6711 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6715 vec_all_le (vector unsigned short a1, vector unsigned short a2)
6717 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6721 vec_all_le (vector bool short a1, vector signed short a2)
6723 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6727 vec_all_le (vector signed short a1, vector bool short a2)
6729 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6733 vec_all_le (vector signed short a1, vector signed short a2)
6735 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6739 vec_all_le (vector bool int a1, vector unsigned int a2)
6741 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6745 vec_all_le (vector unsigned int a1, vector bool int a2)
6747 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6751 vec_all_le (vector unsigned int a1, vector unsigned int a2)
6753 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6757 vec_all_le (vector bool int a1, vector signed int a2)
6759 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6763 vec_all_le (vector signed int a1, vector bool int a2)
6765 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6769 vec_all_le (vector signed int a1, vector signed int a2)
6771 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6775 vec_all_le (vector float a1, vector float a2)
6777 return __builtin_altivec_vcmpgefp_p (__CR6_LT, a2, a1);
6783 vec_all_lt (vector bool char a1, vector unsigned char a2)
6785 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
6789 vec_all_lt (vector unsigned char a1, vector bool char a2)
6791 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
6795 vec_all_lt (vector unsigned char a1, vector unsigned char a2)
6797 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
6801 vec_all_lt (vector bool char a1, vector signed char a2)
6803 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
6807 vec_all_lt (vector signed char a1, vector bool char a2)
6809 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
6813 vec_all_lt (vector signed char a1, vector signed char a2)
6815 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
6819 vec_all_lt (vector bool short a1, vector unsigned short a2)
6821 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
6825 vec_all_lt (vector unsigned short a1, vector bool short a2)
6827 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
6831 vec_all_lt (vector unsigned short a1, vector unsigned short a2)
6833 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
6837 vec_all_lt (vector bool short a1, vector signed short a2)
6839 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
6843 vec_all_lt (vector signed short a1, vector bool short a2)
6845 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
6849 vec_all_lt (vector signed short a1, vector signed short a2)
6851 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
6855 vec_all_lt (vector bool int a1, vector unsigned int a2)
6857 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
6861 vec_all_lt (vector unsigned int a1, vector bool int a2)
6863 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
6867 vec_all_lt (vector unsigned int a1, vector unsigned int a2)
6869 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
6873 vec_all_lt (vector bool int a1, vector signed int a2)
6875 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
6879 vec_all_lt (vector signed int a1, vector bool int a2)
6881 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
6885 vec_all_lt (vector signed int a1, vector signed int a2)
6887 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
6891 vec_all_lt (vector float a1, vector float a2)
6893 return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a2, a1);
6899 vec_all_nan (vector float a1)
6901 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1);
6907 vec_all_ne (vector signed char a1, vector bool char a2)
6909 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6913 vec_all_ne (vector signed char a1, vector signed char a2)
6915 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6919 vec_all_ne (vector unsigned char a1, vector bool char a2)
6921 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6925 vec_all_ne (vector unsigned char a1, vector unsigned char a2)
6927 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6931 vec_all_ne (vector bool char a1, vector bool char a2)
6933 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6937 vec_all_ne (vector bool char a1, vector unsigned char a2)
6939 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6943 vec_all_ne (vector bool char a1, vector signed char a2)
6945 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
6949 vec_all_ne (vector signed short a1, vector bool short a2)
6951 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6955 vec_all_ne (vector signed short a1, vector signed short a2)
6957 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6961 vec_all_ne (vector unsigned short a1, vector bool short a2)
6963 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6967 vec_all_ne (vector unsigned short a1, vector unsigned short a2)
6969 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6973 vec_all_ne (vector bool short a1, vector bool short a2)
6975 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6979 vec_all_ne (vector bool short a1, vector unsigned short a2)
6981 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6985 vec_all_ne (vector bool short a1, vector signed short a2)
6987 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
6991 vec_all_ne (vector signed int a1, vector bool int a2)
6993 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
6997 vec_all_ne (vector signed int a1, vector signed int a2)
6999 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
7003 vec_all_ne (vector unsigned int a1, vector bool int a2)
7005 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
7009 vec_all_ne (vector unsigned int a1, vector unsigned int a2)
7011 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
7015 vec_all_ne (vector bool int a1, vector bool int a2)
7017 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
7021 vec_all_ne (vector bool int a1, vector unsigned int a2)
7023 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
7027 vec_all_ne (vector bool int a1, vector signed int a2)
7029 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
7033 vec_all_ne (vector float a1, vector float a2)
7035 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a2);
7041 vec_all_nge (vector float a1, vector float a2)
7043 return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2);
7049 vec_all_ngt (vector float a1, vector float a2)
7051 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a1, a2);
7057 vec_all_nle (vector float a1, vector float a2)
7059 return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a2, a1);
7065 vec_all_nlt (vector float a1, vector float a2)
7067 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a2, a1);
7070 /* vec_all_numeric */
7073 vec_all_numeric (vector float a1)
7075 return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a1);
7081 vec_any_eq (vector signed char a1, vector bool char a2)
7083 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7087 vec_any_eq (vector signed char a1, vector signed char a2)
7089 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7093 vec_any_eq (vector unsigned char a1, vector bool char a2)
7095 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7099 vec_any_eq (vector unsigned char a1, vector unsigned char a2)
7101 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7105 vec_any_eq (vector bool char a1, vector bool char a2)
7107 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7111 vec_any_eq (vector bool char a1, vector unsigned char a2)
7113 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7117 vec_any_eq (vector bool char a1, vector signed char a2)
7119 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7123 vec_any_eq (vector signed short a1, vector bool short a2)
7125 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7129 vec_any_eq (vector signed short a1, vector signed short a2)
7131 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7135 vec_any_eq (vector unsigned short a1, vector bool short a2)
7137 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7141 vec_any_eq (vector unsigned short a1, vector unsigned short a2)
7143 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7147 vec_any_eq (vector bool short a1, vector bool short a2)
7149 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7153 vec_any_eq (vector bool short a1, vector unsigned short a2)
7155 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7159 vec_any_eq (vector bool short a1, vector signed short a2)
7161 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7165 vec_any_eq (vector pixel a1, vector pixel a2)
7167 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7171 vec_any_eq (vector signed int a1, vector bool int a2)
7173 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7177 vec_any_eq (vector signed int a1, vector signed int a2)
7179 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7183 vec_any_eq (vector unsigned int a1, vector bool int a2)
7185 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7189 vec_any_eq (vector unsigned int a1, vector unsigned int a2)
7191 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7195 vec_any_eq (vector bool int a1, vector bool int a2)
7197 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7201 vec_any_eq (vector bool int a1, vector unsigned int a2)
7203 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7207 vec_any_eq (vector bool int a1, vector signed int a2)
7209 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7213 vec_any_eq (vector float a1, vector float a2)
7215 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a2);
7221 vec_any_ge (vector signed char a1, vector bool char a2)
7223 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7227 vec_any_ge (vector unsigned char a1, vector bool char a2)
7229 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7233 vec_any_ge (vector unsigned char a1, vector unsigned char a2)
7235 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7239 vec_any_ge (vector signed char a1, vector signed char a2)
7241 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7245 vec_any_ge (vector bool char a1, vector bool char a2)
7247 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7251 vec_any_ge (vector bool char a1, vector unsigned char a2)
7253 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7257 vec_any_ge (vector bool char a1, vector signed char a2)
7259 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
7263 vec_any_ge (vector signed short a1, vector bool short a2)
7265 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7269 vec_any_ge (vector unsigned short a1, vector bool short a2)
7271 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7275 vec_any_ge (vector unsigned short a1, vector unsigned short a2)
7277 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7281 vec_any_ge (vector signed short a1, vector signed short a2)
7283 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7287 vec_any_ge (vector bool short a1, vector bool short a2)
7289 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7293 vec_any_ge (vector bool short a1, vector unsigned short a2)
7295 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7299 vec_any_ge (vector bool short a1, vector signed short a2)
7301 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
7305 vec_any_ge (vector signed int a1, vector bool int a2)
7307 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7311 vec_any_ge (vector unsigned int a1, vector bool int a2)
7313 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7317 vec_any_ge (vector unsigned int a1, vector unsigned int a2)
7319 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7323 vec_any_ge (vector signed int a1, vector signed int a2)
7325 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7329 vec_any_ge (vector bool int a1, vector bool int a2)
7331 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7335 vec_any_ge (vector bool int a1, vector unsigned int a2)
7337 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7341 vec_any_ge (vector bool int a1, vector signed int a2)
7343 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
7347 vec_any_ge (vector float a1, vector float a2)
7349 return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a1, a2);
7355 vec_any_gt (vector bool char a1, vector unsigned char a2)
7357 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7361 vec_any_gt (vector unsigned char a1, vector bool char a2)
7363 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7367 vec_any_gt (vector unsigned char a1, vector unsigned char a2)
7369 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7373 vec_any_gt (vector bool char a1, vector signed char a2)
7375 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7379 vec_any_gt (vector signed char a1, vector bool char a2)
7381 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7385 vec_any_gt (vector signed char a1, vector signed char a2)
7387 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
7391 vec_any_gt (vector bool short a1, vector unsigned short a2)
7393 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7397 vec_any_gt (vector unsigned short a1, vector bool short a2)
7399 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7403 vec_any_gt (vector unsigned short a1, vector unsigned short a2)
7405 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7409 vec_any_gt (vector bool short a1, vector signed short a2)
7411 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7415 vec_any_gt (vector signed short a1, vector bool short a2)
7417 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7421 vec_any_gt (vector signed short a1, vector signed short a2)
7423 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
7427 vec_any_gt (vector bool int a1, vector unsigned int a2)
7429 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7433 vec_any_gt (vector unsigned int a1, vector bool int a2)
7435 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7439 vec_any_gt (vector unsigned int a1, vector unsigned int a2)
7441 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7445 vec_any_gt (vector bool int a1, vector signed int a2)
7447 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7451 vec_any_gt (vector signed int a1, vector bool int a2)
7453 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7457 vec_any_gt (vector signed int a1, vector signed int a2)
7459 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
7463 vec_any_gt (vector float a1, vector float a2)
7465 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a1, a2);
7471 vec_any_le (vector bool char a1, vector unsigned char a2)
7473 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7477 vec_any_le (vector unsigned char a1, vector bool char a2)
7479 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7483 vec_any_le (vector unsigned char a1, vector unsigned char a2)
7485 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7489 vec_any_le (vector bool char a1, vector signed char a2)
7491 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7495 vec_any_le (vector signed char a1, vector bool char a2)
7497 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7501 vec_any_le (vector signed char a1, vector signed char a2)
7503 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7507 vec_any_le (vector bool short a1, vector unsigned short a2)
7509 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7513 vec_any_le (vector unsigned short a1, vector bool short a2)
7515 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7519 vec_any_le (vector unsigned short a1, vector unsigned short a2)
7521 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7525 vec_any_le (vector bool short a1, vector signed short a2)
7527 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7531 vec_any_le (vector signed short a1, vector bool short a2)
7533 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7537 vec_any_le (vector signed short a1, vector signed short a2)
7539 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7543 vec_any_le (vector bool int a1, vector unsigned int a2)
7545 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7549 vec_any_le (vector unsigned int a1, vector bool int a2)
7551 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7555 vec_any_le (vector unsigned int a1, vector unsigned int a2)
7557 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7561 vec_any_le (vector bool int a1, vector signed int a2)
7563 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7567 vec_any_le (vector signed int a1, vector bool int a2)
7569 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7573 vec_any_le (vector signed int a1, vector signed int a2)
7575 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7579 vec_any_le (vector float a1, vector float a2)
7581 return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a2, a1);
7587 vec_any_lt (vector bool char a1, vector unsigned char a2)
7589 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
7593 vec_any_lt (vector unsigned char a1, vector bool char a2)
7595 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
7599 vec_any_lt (vector unsigned char a1, vector unsigned char a2)
7601 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
7605 vec_any_lt (vector bool char a1, vector signed char a2)
7607 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
7611 vec_any_lt (vector signed char a1, vector bool char a2)
7613 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
7617 vec_any_lt (vector signed char a1, vector signed char a2)
7619 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
7623 vec_any_lt (vector bool short a1, vector unsigned short a2)
7625 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
7629 vec_any_lt (vector unsigned short a1, vector bool short a2)
7631 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
7635 vec_any_lt (vector unsigned short a1, vector unsigned short a2)
7637 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
7641 vec_any_lt (vector bool short a1, vector signed short a2)
7643 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
7647 vec_any_lt (vector signed short a1, vector bool short a2)
7649 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
7653 vec_any_lt (vector signed short a1, vector signed short a2)
7655 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
7659 vec_any_lt (vector bool int a1, vector unsigned int a2)
7661 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
7665 vec_any_lt (vector unsigned int a1, vector bool int a2)
7667 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
7671 vec_any_lt (vector unsigned int a1, vector unsigned int a2)
7673 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
7677 vec_any_lt (vector bool int a1, vector signed int a2)
7679 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
7683 vec_any_lt (vector signed int a1, vector bool int a2)
7685 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
7689 vec_any_lt (vector signed int a1, vector signed int a2)
7691 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
7695 vec_any_lt (vector float a1, vector float a2)
7697 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a2, a1);
7703 vec_any_nan (vector float a1)
7705 return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a1);
7711 vec_any_ne (vector signed char a1, vector bool char a2)
7713 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7717 vec_any_ne (vector signed char a1, vector signed char a2)
7719 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7723 vec_any_ne (vector unsigned char a1, vector bool char a2)
7725 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7729 vec_any_ne (vector unsigned char a1, vector unsigned char a2)
7731 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7735 vec_any_ne (vector bool char a1, vector bool char a2)
7737 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7741 vec_any_ne (vector bool char a1, vector unsigned char a2)
7743 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7747 vec_any_ne (vector bool char a1, vector signed char a2)
7749 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
7753 vec_any_ne (vector signed short a1, vector bool short a2)
7755 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7759 vec_any_ne (vector signed short a1, vector signed short a2)
7761 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7765 vec_any_ne (vector unsigned short a1, vector bool short a2)
7767 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7771 vec_any_ne (vector unsigned short a1, vector unsigned short a2)
7773 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7777 vec_any_ne (vector bool short a1, vector bool short a2)
7779 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7783 vec_any_ne (vector bool short a1, vector unsigned short a2)
7785 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7789 vec_any_ne (vector bool short a1, vector signed short a2)
7791 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7795 vec_any_ne (vector pixel a1, vector pixel a2)
7797 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
7801 vec_any_ne (vector signed int a1, vector bool int a2)
7803 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7807 vec_any_ne (vector signed int a1, vector signed int a2)
7809 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7813 vec_any_ne (vector unsigned int a1, vector bool int a2)
7815 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7819 vec_any_ne (vector unsigned int a1, vector unsigned int a2)
7821 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7825 vec_any_ne (vector bool int a1, vector bool int a2)
7827 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7831 vec_any_ne (vector bool int a1, vector unsigned int a2)
7833 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7837 vec_any_ne (vector bool int a1, vector signed int a2)
7839 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
7843 vec_any_ne (vector float a1, vector float a2)
7845 return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a2);
7851 vec_any_nge (vector float a1, vector float a2)
7853 return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a1, a2);
7859 vec_any_ngt (vector float a1, vector float a2)
7861 return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a1, a2);
7867 vec_any_nle (vector float a1, vector float a2)
7869 return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1);
7875 vec_any_nlt (vector float a1, vector float a2)
7877 return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a2, a1);
7880 /* vec_any_numeric */
7883 vec_any_numeric (vector float a1)
7885 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a1);
7891 vec_any_out (vector float a1, vector float a2)
7893 return __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, a1, a2);
7896 } /* extern "C++" */
7900 /* "... and so I think no man in a century will suffer as greatly as
7903 /* Helper macros. */
7905 #define __un_args_eq(xtype, x) \
7906 __builtin_types_compatible_p (xtype, typeof (x))
7908 #define __bin_args_eq(xtype, x, ytype, y) \
7909 (__builtin_types_compatible_p (xtype, typeof (x)) \
7910 && __builtin_types_compatible_p (ytype, typeof (y)))
7912 #define __tern_args_eq(xtype, x, ytype, y, ztype, z) \
7913 (__builtin_types_compatible_p (xtype, typeof (x)) \
7914 && __builtin_types_compatible_p (ytype, typeof (y)) \
7915 && __builtin_types_compatible_p (ztype, typeof (z)))
7917 #define __ch(x, y, z) __builtin_choose_expr (x, y, z)
7919 #define vec_step(t) \
7920 __ch (__builtin_types_compatible_p (typeof (t), vector signed int), 4, \
7921 __ch (__builtin_types_compatible_p (typeof (t), vector unsigned int), 4, \
7922 __ch (__builtin_types_compatible_p (typeof (t), vector bool int), 4, \
7923 __ch (__builtin_types_compatible_p (typeof (t), vector signed short), 8, \
7924 __ch (__builtin_types_compatible_p (typeof (t), vector unsigned short), 8, \
7925 __ch (__builtin_types_compatible_p (typeof (t), vector bool short), 8, \
7926 __ch (__builtin_types_compatible_p (typeof (t), vector pixel), 8, \
7927 __ch (__builtin_types_compatible_p (typeof (t), vector signed char), 16, \
7928 __ch (__builtin_types_compatible_p (typeof (t), vector unsigned char), 16, \
7929 __ch (__builtin_types_compatible_p (typeof (t), vector bool char), 16, \
7930 __ch (__builtin_types_compatible_p (typeof (t), vector float), 4, \
7931 __builtin_altivec_compiletime_error ("vec_step"))))))))))))
7933 #define vec_abs(a) \
7934 __ch (__un_args_eq (vector signed char, (a)), \
7935 ((vector signed char) __builtin_altivec_abs_v16qi ((vector signed char) (a))), \
7936 __ch (__un_args_eq (vector signed short, (a)), \
7937 ((vector signed short) __builtin_altivec_abs_v8hi ((vector signed short) (a))), \
7938 __ch (__un_args_eq (vector signed int, (a)), \
7939 ((vector signed int) __builtin_altivec_abs_v4si ((vector signed int) (a))), \
7940 __ch (__un_args_eq (vector float, (a)), \
7941 ((vector float) __builtin_altivec_abs_v4sf ((vector float) (a))), \
7942 __builtin_altivec_compiletime_error ("vec_abs")))))
7944 #define vec_abss(a) \
7945 __ch (__un_args_eq (vector signed char, (a)), \
7946 ((vector signed char) __builtin_altivec_abss_v16qi ((vector signed char) (a))), \
7947 __ch (__un_args_eq (vector signed short, (a)), \
7948 ((vector signed short) __builtin_altivec_abss_v8hi ((vector signed short) (a))), \
7949 __ch (__un_args_eq (vector signed int, (a)), \
7950 ((vector signed int) __builtin_altivec_abss_v4si ((vector signed int) (a))), \
7951 __builtin_altivec_compiletime_error ("vec_abss"))))
7953 #define vec_vaddubm(a1, a2) \
7954 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
7955 ((vector signed char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7956 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
7957 ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7958 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
7959 ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7960 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
7961 ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7962 __builtin_altivec_compiletime_error ("vec_vaddubm")))))
7964 #define vec_vadduhm(a1, a2) \
7965 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
7966 ((vector signed short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
7967 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
7968 ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
7969 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
7970 ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
7971 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
7972 ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
7973 __builtin_altivec_compiletime_error ("vec_vadduhm")))))
7975 #define vec_vadduwm(a1, a2) \
7976 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
7977 ((vector signed int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
7978 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
7979 ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
7980 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
7981 ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
7982 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
7983 ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
7984 __builtin_altivec_compiletime_error ("vec_vadduwm")))))
7986 #define vec_vaddfp(a1, a2) \
7987 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
7988 ((vector float) __builtin_altivec_vaddfp ((vector float) (a1), (vector float) (a2))), \
7989 __builtin_altivec_compiletime_error ("vec_vaddfp"))
7991 #define vec_add(a1, a2) \
7992 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
7993 ((vector signed char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7994 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
7995 ((vector signed char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7996 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
7997 ((vector signed char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
7998 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
7999 ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
8000 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
8001 ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
8002 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8003 ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
8004 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
8005 ((vector signed short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
8006 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
8007 ((vector signed short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
8008 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8009 ((vector signed short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
8010 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
8011 ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
8012 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
8013 ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
8014 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8015 ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
8016 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
8017 ((vector signed int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
8018 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
8019 ((vector signed int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
8020 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8021 ((vector signed int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
8022 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
8023 ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
8024 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
8025 ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
8026 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8027 ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
8028 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8029 ((vector float) __builtin_altivec_vaddfp ((vector float) (a1), (vector float) (a2))), \
8030 __builtin_altivec_compiletime_error ("vec_add"))))))))))))))))))))
8032 #define vec_addc(a1, a2) \
8033 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8034 ((vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) (a1), (vector signed int) (a2))), \
8035 __builtin_altivec_compiletime_error ("vec_addc"))
8037 #define vec_adds(a1, a2) \
8038 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
8039 ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
8040 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
8041 ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
8042 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8043 ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
8044 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
8045 ((vector signed char) __builtin_altivec_vaddsbs ((vector signed char) (a1), (vector signed char) (a2))), \
8046 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
8047 ((vector signed char) __builtin_altivec_vaddsbs ((vector signed char) (a1), (vector signed char) (a2))), \
8048 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8049 ((vector signed char) __builtin_altivec_vaddsbs ((vector signed char) (a1), (vector signed char) (a2))), \
8050 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
8051 ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
8052 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
8053 ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
8054 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8055 ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
8056 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
8057 ((vector signed short) __builtin_altivec_vaddshs ((vector signed short) (a1), (vector signed short) (a2))), \
8058 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
8059 ((vector signed short) __builtin_altivec_vaddshs ((vector signed short) (a1), (vector signed short) (a2))), \
8060 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8061 ((vector signed short) __builtin_altivec_vaddshs ((vector signed short) (a1), (vector signed short) (a2))), \
8062 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
8063 ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
8064 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
8065 ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
8066 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8067 ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
8068 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
8069 ((vector signed int) __builtin_altivec_vaddsws ((vector signed int) (a1), (vector signed int) (a2))), \
8070 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
8071 ((vector signed int) __builtin_altivec_vaddsws ((vector signed int) (a1), (vector signed int) (a2))), \
8072 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8073 ((vector signed int) __builtin_altivec_vaddsws ((vector signed int) (a1), (vector signed int) (a2))), \
8074 __builtin_altivec_compiletime_error ("vec_adds")))))))))))))))))))
8076 #define vec_vaddsws(a1, a2) \
8077 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8078 ((vector signed int) __builtin_altivec_vaddsws ((vector signed int) (a1), (vector signed int) (a2))), \
8079 __builtin_altivec_compiletime_error ("vec_vaddsws"))
8081 #define vec_vadduws(a1, a2) \
8082 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
8083 ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
8084 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
8085 ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
8086 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8087 ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
8088 __builtin_altivec_compiletime_error ("vec_vadduws"))))
8090 #define vec_vaddshs(a1, a2) \
8091 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8092 ((vector signed short) __builtin_altivec_vaddshs ((vector signed short) (a1), (vector signed short) (a2))), \
8093 __builtin_altivec_compiletime_error ("vec_vaddshs"))
8095 #define vec_vadduhs(a1, a2) \
8096 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
8097 ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
8098 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
8099 ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
8100 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8101 ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
8102 __builtin_altivec_compiletime_error ("vec_vadduhs"))))
8104 #define vec_vaddsbs(a1, a2) \
8105 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8106 ((vector signed char) __builtin_altivec_vaddsbs ((vector signed char) (a1), (vector signed char) (a2))), \
8107 __builtin_altivec_compiletime_error ("vec_vaddsbs"))
8109 #define vec_vaddubs(a1, a2) \
8110 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
8111 ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
8112 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
8113 ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
8114 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8115 ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
8116 __builtin_altivec_compiletime_error ("vec_vaddubs"))))
8118 #define vec_and(a1, a2) \
8119 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8120 ((vector float) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8121 __ch (__bin_args_eq (vector float, (a1), vector bool int, (a2)), \
8122 ((vector float) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8123 __ch (__bin_args_eq (vector bool int, (a1), vector float, (a2)), \
8124 ((vector float) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8125 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
8126 ((vector bool int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8127 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
8128 ((vector signed int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8129 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
8130 ((vector signed int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8131 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8132 ((vector signed int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8133 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
8134 ((vector unsigned int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8135 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
8136 ((vector unsigned int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8137 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8138 ((vector unsigned int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8139 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
8140 ((vector bool short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8141 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
8142 ((vector signed short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8143 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
8144 ((vector signed short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8145 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8146 ((vector signed short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8147 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
8148 ((vector unsigned short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8149 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
8150 ((vector unsigned short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8151 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8152 ((vector unsigned short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8153 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
8154 ((vector bool char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8155 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
8156 ((vector signed char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8157 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
8158 ((vector signed char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8159 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8160 ((vector signed char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8161 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
8162 ((vector unsigned char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8163 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
8164 ((vector unsigned char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8165 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8166 ((vector unsigned char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
8167 __builtin_altivec_compiletime_error ("vec_and")))))))))))))))))))))))))
8169 #define vec_andc(a1, a2) \
8170 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8171 ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8172 __ch (__bin_args_eq (vector float, (a1), vector bool int, (a2)), \
8173 ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8174 __ch (__bin_args_eq (vector bool int, (a1), vector float, (a2)), \
8175 ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8176 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
8177 ((vector bool int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8178 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
8179 ((vector signed int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8180 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
8181 ((vector signed int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8182 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8183 ((vector signed int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8184 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
8185 ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8186 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
8187 ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8188 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8189 ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8190 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
8191 ((vector bool short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8192 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
8193 ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8194 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
8195 ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8196 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8197 ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8198 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
8199 ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8200 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
8201 ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8202 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8203 ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8204 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
8205 ((vector bool char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8206 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
8207 ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8208 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
8209 ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8210 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8211 ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8212 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
8213 ((vector unsigned char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8214 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
8215 ((vector unsigned char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8216 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8217 ((vector unsigned char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
8218 __builtin_altivec_compiletime_error ("vec_andc")))))))))))))))))))))))))
8220 #define vec_avg(a1, a2) \
8221 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8222 ((vector unsigned char) __builtin_altivec_vavgub ((vector signed char) (a1), (vector signed char) (a2))), \
8223 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8224 ((vector signed char) __builtin_altivec_vavgsb ((vector signed char) (a1), (vector signed char) (a2))), \
8225 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8226 ((vector unsigned short) __builtin_altivec_vavguh ((vector signed short) (a1), (vector signed short) (a2))), \
8227 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8228 ((vector signed short) __builtin_altivec_vavgsh ((vector signed short) (a1), (vector signed short) (a2))), \
8229 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8230 ((vector unsigned int) __builtin_altivec_vavguw ((vector signed int) (a1), (vector signed int) (a2))), \
8231 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8232 ((vector signed int) __builtin_altivec_vavgsw ((vector signed int) (a1), (vector signed int) (a2))), \
8233 __builtin_altivec_compiletime_error ("vec_avg")))))))
8235 #define vec_vavgsw(a1, a2) \
8236 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8237 ((vector signed int) __builtin_altivec_vavgsw ((vector signed int) (a1), (vector signed int) (a2))), \
8238 __builtin_altivec_compiletime_error ("vec_vavgsw"))
8240 #define vec_vavguw(a1, a2) \
8241 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8242 ((vector unsigned int) __builtin_altivec_vavguw ((vector signed int) (a1), (vector signed int) (a2))), \
8243 __builtin_altivec_compiletime_error ("vec_vavguw"))
8245 #define vec_vavgsh(a1, a2) \
8246 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8247 ((vector signed short) __builtin_altivec_vavgsh ((vector signed short) (a1), (vector signed short) (a2))), \
8248 __builtin_altivec_compiletime_error ("vec_vavgsh"))
8250 #define vec_vavguh(a1, a2) \
8251 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8252 ((vector unsigned short) __builtin_altivec_vavguh ((vector signed short) (a1), (vector signed short) (a2))), \
8253 __builtin_altivec_compiletime_error ("vec_vavguh"))
8255 #define vec_vavgsb(a1, a2) \
8256 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8257 ((vector signed char) __builtin_altivec_vavgsb ((vector signed char) (a1), (vector signed char) (a2))), \
8258 __builtin_altivec_compiletime_error ("vec_vavgsb"))
8260 #define vec_vavgub(a1, a2) \
8261 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8262 ((vector unsigned char) __builtin_altivec_vavgub ((vector signed char) (a1), (vector signed char) (a2))), \
8263 __builtin_altivec_compiletime_error ("vec_vavgub"))
8265 #define vec_ceil(a1) \
8266 __ch (__un_args_eq (vector float, (a1)), \
8267 ((vector float) __builtin_altivec_vrfip ((vector float) (a1))), \
8268 __builtin_altivec_compiletime_error ("vec_ceil"))
8270 #define vec_cmpb(a1, a2) \
8271 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8272 ((vector signed int) __builtin_altivec_vcmpbfp ((vector float) (a1), (vector float) (a2))), \
8273 __builtin_altivec_compiletime_error ("vec_cmpb"))
8275 #define vec_cmpeq(a1, a2) \
8276 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8277 ((vector bool char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
8278 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8279 ((vector bool char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
8280 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8281 ((vector bool short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
8282 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8283 ((vector bool short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
8284 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8285 ((vector bool int) __builtin_altivec_vcmpequw ((vector signed int) (a1), (vector signed int) (a2))), \
8286 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8287 ((vector bool int) __builtin_altivec_vcmpequw ((vector signed int) (a1), (vector signed int) (a2))), \
8288 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8289 ((vector bool int) __builtin_altivec_vcmpeqfp ((vector float) (a1), (vector float) (a2))), \
8290 __builtin_altivec_compiletime_error ("vec_cmpeq"))))))))
8292 #define vec_vcmpeqfp(a1, a2) \
8293 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8294 ((vector signed int) __builtin_altivec_vcmpeqfp ((vector float) (a1), (vector float) (a2))), \
8295 __builtin_altivec_compiletime_error ("vec_vcmpeqfp"))
8297 #define vec_vcmpequw(a1, a2) \
8298 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8299 ((vector signed int) __builtin_altivec_vcmpequw ((vector signed int) (a1), (vector signed int) (a2))), \
8300 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8301 ((vector signed int) __builtin_altivec_vcmpequw ((vector signed int) (a1), (vector signed int) (a2))), \
8302 __builtin_altivec_compiletime_error ("vec_vcmpequw")))
8304 #define vec_vcmpequh(a1, a2) \
8305 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8306 ((vector signed short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
8307 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8308 ((vector signed short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
8309 __builtin_altivec_compiletime_error ("vec_vcmpequh")))
8311 #define vec_vcmpequb(a1, a2) \
8312 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8313 ((vector signed char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
8314 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8315 ((vector signed char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
8316 __builtin_altivec_compiletime_error ("vec_vcmpequb")))
8318 #define vec_cmpge(a1, a2) \
8319 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8320 ((vector bool int) __builtin_altivec_vcmpgefp ((vector float) (a1), (vector float) (a2))), \
8321 __builtin_altivec_compiletime_error ("vec_cmpge"))
8323 #define vec_cmpgt(a1, a2) \
8324 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8325 ((vector bool char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
8326 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8327 ((vector bool char) __builtin_altivec_vcmpgtsb ((vector signed char) (a1), (vector signed char) (a2))), \
8328 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8329 ((vector bool short) __builtin_altivec_vcmpgtuh ((vector signed short) (a1), (vector signed short) (a2))), \
8330 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8331 ((vector bool short) __builtin_altivec_vcmpgtsh ((vector signed short) (a1), (vector signed short) (a2))), \
8332 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8333 ((vector bool int) __builtin_altivec_vcmpgtuw ((vector signed int) (a1), (vector signed int) (a2))), \
8334 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8335 ((vector bool int) __builtin_altivec_vcmpgtsw ((vector signed int) (a1), (vector signed int) (a2))), \
8336 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8337 ((vector bool int) __builtin_altivec_vcmpgtfp ((vector float) (a1), (vector float) (a2))), \
8338 __builtin_altivec_compiletime_error ("vec_cmpgt"))))))))
8340 #define vec_vcmpgtfp(a1, a2) \
8341 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8342 ((vector signed int) __builtin_altivec_vcmpgtfp ((vector float) (a1), (vector float) (a2))), \
8343 __builtin_altivec_compiletime_error ("vec_vcmpgtfp"))
8345 #define vec_vcmpgtsw(a1, a2) \
8346 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8347 ((vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) (a1), (vector signed int) (a2))), \
8348 __builtin_altivec_compiletime_error ("vec_abs"))
8350 #define vec_vcmpgtuw(a1, a2) \
8351 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8352 ((vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) (a1), (vector signed int) (a2))), \
8353 __builtin_altivec_compiletime_error ("vec_abs"))
8355 #define vec_vcmpgtsh(a1, a2) \
8356 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8357 ((vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) (a1), (vector signed short) (a2))), \
8358 __builtin_altivec_compiletime_error ("vec_vcmpgtsh"))
8360 #define vec_vcmpgtuh(a1, a2) \
8361 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8362 ((vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) (a1), (vector signed short) (a2))), \
8363 __builtin_altivec_compiletime_error ("vec_vcmpgtuh"))
8365 #define vec_vcmpgtsb(a1, a2) \
8366 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8367 ((vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) (a1), (vector signed char) (a2))), \
8368 __builtin_altivec_compiletime_error ("vec_vcmpgtsb"))
8370 #define vec_vcmpgtub(a1, a2) \
8371 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8372 ((vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
8373 __builtin_altivec_compiletime_error ("vec_vcmpgtub"))
8375 #define vec_cmple(a1, a2) \
8376 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8377 ((vector bool int) __builtin_altivec_vcmpgefp ((vector float) (a2), (vector float) (a1))), \
8378 __builtin_altivec_compiletime_error ("vec_cmple"))
8380 #define vec_cmplt(a2, a1) \
8381 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8382 ((vector bool char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
8383 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8384 ((vector bool char) __builtin_altivec_vcmpgtsb ((vector signed char) (a1), (vector signed char) (a2))), \
8385 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8386 ((vector bool short) __builtin_altivec_vcmpgtuh ((vector signed short) (a1), (vector signed short) (a2))), \
8387 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8388 ((vector bool short) __builtin_altivec_vcmpgtsh ((vector signed short) (a1), (vector signed short) (a2))), \
8389 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8390 ((vector bool int) __builtin_altivec_vcmpgtuw ((vector signed int) (a1), (vector signed int) (a2))), \
8391 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8392 ((vector bool int) __builtin_altivec_vcmpgtsw ((vector signed int) (a1), (vector signed int) (a2))), \
8393 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8394 ((vector bool int) __builtin_altivec_vcmpgtfp ((vector float) (a1), (vector float) (a2))), \
8395 __builtin_altivec_compiletime_error ("vec_cmplt"))))))))
8397 #define vec_ctf(a1, a2) \
8398 __ch (__un_args_eq (vector unsigned int, (a1)), \
8399 ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const int) (a2))), \
8400 __ch (__un_args_eq (vector signed int, (a1)), \
8401 ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const int) (a2))), \
8402 __builtin_altivec_compiletime_error ("vec_ctf")))
8404 #define vec_vcfsx(a1, a2) \
8405 __ch (__un_args_eq (vector signed int, (a1)), \
8406 ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const int) (a2))), \
8407 __builtin_altivec_compiletime_error ("vec_vcfsx"))
8409 #define vec_vcfux(a1, a2) \
8410 __ch (__un_args_eq (vector unsigned int, (a1)), \
8411 ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const int) (a2))), \
8412 __builtin_altivec_compiletime_error ("vec_vcfux"))
8414 #define vec_cts(a1, a2) \
8415 __ch (__un_args_eq (vector float, (a1)), \
8416 ((vector signed int) __builtin_altivec_vctsxs ((vector float) (a1), (const int) (a2))), \
8417 __builtin_altivec_compiletime_error ("vec_cts"))
8419 #define vec_ctu(a1, a2) \
8420 __ch (__un_args_eq (vector float, (a1)), \
8421 ((vector unsigned int) __builtin_altivec_vctuxs ((vector float) (a1), (const int) (a2))), \
8422 __builtin_altivec_compiletime_error ("vec_ctu"))
8424 #define vec_dss(a1) __builtin_altivec_dss ((const int) (a1));
8426 #define vec_dssall() __builtin_altivec_dssall ()
8428 #define vec_dst(a1, a2, a3) \
8429 __ch (__un_args_eq (const vector unsigned char, *(a1)), \
8430 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8431 __ch (__un_args_eq (const vector signed char, *(a1)), \
8432 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8433 __ch (__un_args_eq (const vector bool char, *(a1)), \
8434 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8435 __ch (__un_args_eq (const vector unsigned short, *(a1)), \
8436 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8437 __ch (__un_args_eq (const vector signed short, *(a1)), \
8438 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8439 __ch (__un_args_eq (const vector bool short, *(a1)), \
8440 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8441 __ch (__un_args_eq (const vector pixel, *(a1)), \
8442 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8443 __ch (__un_args_eq (const vector unsigned int, *(a1)), \
8444 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8445 __ch (__un_args_eq (const vector signed int, *(a1)), \
8446 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8447 __ch (__un_args_eq (const vector bool int, *(a1)), \
8448 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8449 __ch (__un_args_eq (const vector float, *(a1)), \
8450 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8451 __ch (__un_args_eq (const unsigned char, *(a1)), \
8452 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8453 __ch (__un_args_eq (const signed char, *(a1)), \
8454 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8455 __ch (__un_args_eq (const unsigned short, *(a1)), \
8456 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8457 __ch (__un_args_eq (const short, *(a1)), \
8458 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8459 __ch (__un_args_eq (const unsigned int, *(a1)), \
8460 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8461 __ch (__un_args_eq (const int, *(a1)), \
8462 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8463 __ch (__un_args_eq (const unsigned long, *(a1)), \
8464 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8465 __ch (__un_args_eq (const long, *(a1)), \
8466 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8467 __ch (__un_args_eq (const float, *(a1)), \
8468 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8469 __builtin_altivec_compiletime_error ("vec_dst")))))))))))))))))))))
8471 #define vec_dstst(a1, a2, a3) \
8472 __ch (__un_args_eq (const vector unsigned char, *(a1)), \
8473 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8474 __ch (__un_args_eq (const vector signed char, *(a1)), \
8475 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8476 __ch (__un_args_eq (const vector bool char, *(a1)), \
8477 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8478 __ch (__un_args_eq (const vector unsigned short, *(a1)), \
8479 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8480 __ch (__un_args_eq (const vector signed short, *(a1)), \
8481 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8482 __ch (__un_args_eq (const vector bool short, *(a1)), \
8483 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8484 __ch (__un_args_eq (const vector pixel, *(a1)), \
8485 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8486 __ch (__un_args_eq (const vector unsigned int, *(a1)), \
8487 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8488 __ch (__un_args_eq (const vector signed int, *(a1)), \
8489 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8490 __ch (__un_args_eq (const vector bool int, *(a1)), \
8491 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8492 __ch (__un_args_eq (const vector float, *(a1)), \
8493 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8494 __ch (__un_args_eq (const unsigned char, *(a1)), \
8495 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8496 __ch (__un_args_eq (const signed char, *(a1)), \
8497 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8498 __ch (__un_args_eq (const unsigned short, *(a1)), \
8499 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8500 __ch (__un_args_eq (const short, *(a1)), \
8501 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8502 __ch (__un_args_eq (const unsigned int, *(a1)), \
8503 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8504 __ch (__un_args_eq (const int, *(a1)), \
8505 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8506 __ch (__un_args_eq (const unsigned long, *(a1)), \
8507 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8508 __ch (__un_args_eq (const long, *(a1)), \
8509 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8510 __ch (__un_args_eq (const float, *(a1)), \
8511 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8512 __builtin_altivec_compiletime_error ("vec_dstst")))))))))))))))))))))
8514 #define vec_dststt(a1, a2, a3) \
8515 __ch (__un_args_eq (const vector unsigned char, *(a1)), \
8516 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8517 __ch (__un_args_eq (const vector signed char, *(a1)), \
8518 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8519 __ch (__un_args_eq (const vector bool char, *(a1)), \
8520 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8521 __ch (__un_args_eq (const vector unsigned short, *(a1)), \
8522 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8523 __ch (__un_args_eq (const vector signed short, *(a1)), \
8524 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8525 __ch (__un_args_eq (const vector bool short, *(a1)), \
8526 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8527 __ch (__un_args_eq (const vector pixel, *(a1)), \
8528 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8529 __ch (__un_args_eq (const vector unsigned int, *(a1)), \
8530 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8531 __ch (__un_args_eq (const vector signed int, *(a1)), \
8532 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8533 __ch (__un_args_eq (const vector bool int, *(a1)), \
8534 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8535 __ch (__un_args_eq (const vector float, *(a1)), \
8536 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8537 __ch (__un_args_eq (const unsigned char, *(a1)), \
8538 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8539 __ch (__un_args_eq (const signed char, *(a1)), \
8540 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8541 __ch (__un_args_eq (const unsigned short, *(a1)), \
8542 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8543 __ch (__un_args_eq (const short, *(a1)), \
8544 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8545 __ch (__un_args_eq (const unsigned int, *(a1)), \
8546 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8547 __ch (__un_args_eq (const int, *(a1)), \
8548 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8549 __ch (__un_args_eq (const unsigned long, *(a1)), \
8550 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8551 __ch (__un_args_eq (const long, *(a1)), \
8552 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8553 __ch (__un_args_eq (const float, *(a1)), \
8554 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8555 __builtin_altivec_compiletime_error ("vec_dststt")))))))))))))))))))))
8557 #define vec_dstt(a1, a2, a3) \
8558 __ch (__un_args_eq (const vector unsigned char, *(a1)), \
8559 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8560 __ch (__un_args_eq (const vector signed char, *(a1)), \
8561 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8562 __ch (__un_args_eq (const vector bool char, *(a1)), \
8563 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8564 __ch (__un_args_eq (const vector unsigned short, *(a1)), \
8565 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8566 __ch (__un_args_eq (const vector signed short, *(a1)), \
8567 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8568 __ch (__un_args_eq (const vector bool short, *(a1)), \
8569 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8570 __ch (__un_args_eq (const vector pixel, *(a1)), \
8571 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8572 __ch (__un_args_eq (const vector unsigned int, *(a1)), \
8573 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8574 __ch (__un_args_eq (const vector signed int, *(a1)), \
8575 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8576 __ch (__un_args_eq (const vector bool int, *(a1)), \
8577 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8578 __ch (__un_args_eq (const vector float, *(a1)), \
8579 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8580 __ch (__un_args_eq (const unsigned char, *(a1)), \
8581 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8582 __ch (__un_args_eq (const signed char, *(a1)), \
8583 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8584 __ch (__un_args_eq (const unsigned short, *(a1)), \
8585 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8586 __ch (__un_args_eq (const short, *(a1)), \
8587 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8588 __ch (__un_args_eq (const unsigned int, *(a1)), \
8589 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8590 __ch (__un_args_eq (const int, *(a1)), \
8591 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8592 __ch (__un_args_eq (const unsigned long, *(a1)), \
8593 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8594 __ch (__un_args_eq (const long, *(a1)), \
8595 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8596 __ch (__un_args_eq (const float, *(a1)), \
8597 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8598 __builtin_altivec_compiletime_error ("vec_dstt")))))))))))))))))))))
8600 #define vec_expte(a1) \
8601 __ch (__un_args_eq (vector float, (a1)), \
8602 ((vector float) __builtin_altivec_vexptefp ((vector float) (a1))), \
8603 __builtin_altivec_compiletime_error ("vec_expte"))
8605 #define vec_floor(a1) \
8606 __ch (__un_args_eq (vector float, (a1)), \
8607 ((vector float) __builtin_altivec_vrfim ((vector float) (a1))), \
8608 __builtin_altivec_compiletime_error ("vec_floor"))
8610 #define vec_ld(a, b) \
8611 __ch (__un_args_eq (const vector unsigned char, *(b)), \
8612 ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
8613 __ch (__un_args_eq (const unsigned char, *(b)), \
8614 ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
8615 __ch (__un_args_eq (const vector signed char, *(b)), \
8616 ((vector signed char) __builtin_altivec_lvx ((a), (b))), \
8617 __ch (__un_args_eq (const signed char, *(b)), \
8618 ((vector signed char) __builtin_altivec_lvx ((a), (b))), \
8619 __ch (__un_args_eq (const vector bool char, *(b)), \
8620 ((vector bool char) __builtin_altivec_lvx ((a), (b))), \
8621 __ch (__un_args_eq (const vector unsigned short, *(b)), \
8622 ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
8623 __ch (__un_args_eq (const unsigned short, *(b)), \
8624 ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
8625 __ch (__un_args_eq (const vector signed short, *(b)), \
8626 ((vector signed short) __builtin_altivec_lvx ((a), (b))), \
8627 __ch (__un_args_eq (const short, *(b)), \
8628 ((vector signed short) __builtin_altivec_lvx ((a), (b))), \
8629 __ch (__un_args_eq (const vector bool short, *(b)), \
8630 ((vector bool short) __builtin_altivec_lvx ((a), (b))), \
8631 __ch (__un_args_eq (const vector pixel, *(b)), \
8632 ((vector pixel) __builtin_altivec_lvx ((a), (b))), \
8633 __ch (__un_args_eq (const vector unsigned int, *(b)), \
8634 ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
8635 __ch (__un_args_eq (const unsigned int, *(b)), \
8636 ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
8637 __ch (__un_args_eq (const unsigned long, *(b)), \
8638 ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
8639 __ch (__un_args_eq (const vector signed int, *(b)), \
8640 ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
8641 __ch (__un_args_eq (const int, *(b)), \
8642 ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
8643 __ch (__un_args_eq (const long, *(b)), \
8644 ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
8645 __ch (__un_args_eq (const vector bool int, *(b)), \
8646 ((vector bool int) __builtin_altivec_lvx ((a), (b))), \
8647 __ch (__un_args_eq (const vector float, *(b)), \
8648 ((vector float) __builtin_altivec_lvx ((a), (b))), \
8649 __ch (__un_args_eq (const float, *(b)), \
8650 ((vector float) __builtin_altivec_lvx ((a), (b))), \
8651 __builtin_altivec_compiletime_error ("vec_ld")))))))))))))))))))))
8653 #define vec_lde(a, b) \
8654 __ch (__un_args_eq (const unsigned char, *(b)), \
8655 ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
8656 __ch (__un_args_eq (const signed char, *(b)), \
8657 ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
8658 __ch (__un_args_eq (const unsigned short, *(b)), \
8659 ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
8660 __ch (__un_args_eq (const short, *(b)), \
8661 ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
8662 __ch (__un_args_eq (const unsigned long, *(b)), \
8663 ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
8664 __ch (__un_args_eq (const long, *(b)), \
8665 ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
8666 __ch (__un_args_eq (const unsigned int, *(b)), \
8667 ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
8668 __ch (__un_args_eq (const int, *(b)), \
8669 ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
8670 __ch (__un_args_eq (const float, *(b)), \
8671 ((vector float) __builtin_altivec_lvewx ((a), (b))), \
8672 __builtin_altivec_compiletime_error ("vec_lde"))))))))))
8674 #define vec_lvewx(a, b) \
8675 __ch (__un_args_eq (unsigned int, *(b)), \
8676 ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
8677 __ch (__un_args_eq (signed int, *(b)), \
8678 ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
8679 __ch (__un_args_eq (unsigned long, *(b)), \
8680 ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
8681 __ch (__un_args_eq (signed long, *(b)), \
8682 ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
8683 __ch (__un_args_eq (float, *(b)), \
8684 ((vector float) __builtin_altivec_lvewx ((a), (b))), \
8685 __builtin_altivec_compiletime_error ("vec_lvewx"))))))
8687 #define vec_lvehx(a, b) \
8688 __ch (__un_args_eq (unsigned short, *(b)), \
8689 ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
8690 __ch (__un_args_eq (signed short, *(b)), \
8691 ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
8692 __builtin_altivec_compiletime_error ("vec_lvehx")))
8694 #define vec_lvebx(a, b) \
8695 __ch (__un_args_eq (unsigned char, *(b)), \
8696 ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
8697 __ch (__un_args_eq (signed char, *(b)), \
8698 ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
8699 __builtin_altivec_compiletime_error ("vec_lvebx")))
8701 #define vec_ldl(a, b) \
8702 __ch (__un_args_eq (const vector unsigned char, *(b)), \
8703 ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
8704 __ch (__un_args_eq (const unsigned char, *(b)), \
8705 ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
8706 __ch (__un_args_eq (const vector signed char, *(b)), \
8707 ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
8708 __ch (__un_args_eq (const signed char, *(b)), \
8709 ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
8710 __ch (__un_args_eq (const vector bool char, *(b)), \
8711 ((vector bool char) __builtin_altivec_lvxl ((a), (b))), \
8712 __ch (__un_args_eq (const vector unsigned short, *(b)), \
8713 ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
8714 __ch (__un_args_eq (const unsigned short, *(b)), \
8715 ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
8716 __ch (__un_args_eq (const vector signed short, *(b)), \
8717 ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
8718 __ch (__un_args_eq (const short, *(b)), \
8719 ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
8720 __ch (__un_args_eq (const vector bool short, *(b)), \
8721 ((vector bool short) __builtin_altivec_lvxl ((a), (b))), \
8722 __ch (__un_args_eq (const vector pixel, *(b)), \
8723 ((vector pixel) __builtin_altivec_lvxl ((a), (b))), \
8724 __ch (__un_args_eq (const vector unsigned int, *(b)), \
8725 ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
8726 __ch (__un_args_eq (const unsigned int, *(b)), \
8727 ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
8728 __ch (__un_args_eq (const unsigned long, *(b)), \
8729 ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
8730 __ch (__un_args_eq (const vector signed int, *(b)), \
8731 ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
8732 __ch (__un_args_eq (const int, *(b)), \
8733 ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
8734 __ch (__un_args_eq (const long, *(b)), \
8735 ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
8736 __ch (__un_args_eq (const vector bool int, *(b)), \
8737 ((vector bool int) __builtin_altivec_lvxl ((a), (b))), \
8738 __ch (__un_args_eq (const vector float, *(b)), \
8739 ((vector float) __builtin_altivec_lvxl ((a), (b))), \
8740 __ch (__un_args_eq (const float, *(b)), \
8741 ((vector float) __builtin_altivec_lvxl ((a), (b))), \
8742 __builtin_altivec_compiletime_error ("vec_ldl")))))))))))))))))))))
8744 #define vec_loge(a1) \
8745 __ch (__un_args_eq (vector float, (a1)), \
8746 ((vector float) __builtin_altivec_vlogefp ((vector float) (a1))), \
8747 __builtin_altivec_compiletime_error ("vec_loge"))
8749 #define vec_lvsl(a1, a2) \
8750 __ch (__un_args_eq (const volatile unsigned char, *(a2)), \
8751 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8752 __ch (__un_args_eq (const volatile signed char, *(a2)), \
8753 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8754 __ch (__un_args_eq (const volatile unsigned short, *(a2)), \
8755 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8756 __ch (__un_args_eq (const volatile signed short, *(a2)), \
8757 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8758 __ch (__un_args_eq (const volatile unsigned int, *(a2)), \
8759 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8760 __ch (__un_args_eq (const volatile signed int, *(a2)), \
8761 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8762 __ch (__un_args_eq (const volatile unsigned long, *(a2)), \
8763 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8764 __ch (__un_args_eq (const volatile signed long, *(a2)), \
8765 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8766 __ch (__un_args_eq (const volatile float, *(a2)), \
8767 ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
8768 __builtin_altivec_compiletime_error ("vec_lvsl"))))))))))
8770 #define vec_lvsr(a1, a2) \
8771 __ch (__un_args_eq (const volatile unsigned char, *(a2)), \
8772 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8773 __ch (__un_args_eq (const volatile signed char, *(a2)), \
8774 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8775 __ch (__un_args_eq (const volatile unsigned short, *(a2)), \
8776 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8777 __ch (__un_args_eq (const volatile signed short, *(a2)), \
8778 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8779 __ch (__un_args_eq (const volatile unsigned int, *(a2)), \
8780 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8781 __ch (__un_args_eq (const volatile signed int, *(a2)), \
8782 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8783 __ch (__un_args_eq (const volatile unsigned long, *(a2)), \
8784 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8785 __ch (__un_args_eq (const volatile signed long, *(a2)), \
8786 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8787 __ch (__un_args_eq (const volatile float, *(a2)), \
8788 ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
8789 __builtin_altivec_compiletime_error ("vec_lvsr"))))))))))
8791 #define vec_madd(a1, a2, a3) \
8792 __ch (__tern_args_eq (vector float, (a1), vector float, (a2), vector float, (a3)), \
8793 ((vector float) __builtin_altivec_vmaddfp ((a1), (a2), (a3))), \
8794 __builtin_altivec_compiletime_error ("vec_madd"))
8796 #define vec_madds(a1, a2, a3) \
8797 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed short, (a3)), \
8798 ((vector signed short) __builtin_altivec_vmhaddshs ((a1), (a2), (a3))), \
8799 __builtin_altivec_compiletime_error ("vec_madds"))
8801 #define vec_max(a1, a2) \
8802 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
8803 ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
8804 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
8805 ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
8806 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8807 ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
8808 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
8809 ((vector signed char) __builtin_altivec_vmaxsb ((vector signed char) (a1), (vector signed char) (a2))), \
8810 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
8811 ((vector signed char) __builtin_altivec_vmaxsb ((vector signed char) (a1), (vector signed char) (a2))), \
8812 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8813 ((vector signed char) __builtin_altivec_vmaxsb ((vector signed char) (a1), (vector signed char) (a2))), \
8814 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
8815 ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
8816 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
8817 ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
8818 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8819 ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
8820 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
8821 ((vector signed short) __builtin_altivec_vmaxsh ((vector signed short) (a1), (vector signed short) (a2))), \
8822 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
8823 ((vector signed short) __builtin_altivec_vmaxsh ((vector signed short) (a1), (vector signed short) (a2))), \
8824 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8825 ((vector signed short) __builtin_altivec_vmaxsh ((vector signed short) (a1), (vector signed short) (a2))), \
8826 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
8827 ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
8828 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
8829 ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
8830 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8831 ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
8832 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
8833 ((vector signed int) __builtin_altivec_vmaxsw ((vector signed int) (a1), (vector signed int) (a2))), \
8834 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
8835 ((vector signed int) __builtin_altivec_vmaxsw ((vector signed int) (a1), (vector signed int) (a2))), \
8836 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8837 ((vector signed int) __builtin_altivec_vmaxsw ((vector signed int) (a1), (vector signed int) (a2))), \
8838 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8839 ((vector float) __builtin_altivec_vmaxfp ((vector float) (a1), (vector float) (a2))), \
8840 __builtin_altivec_compiletime_error ("vec_max"))))))))))))))))))))
8842 #define vec_vmaxfp(a1, a2) \
8843 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8844 ((vector float) __builtin_altivec_vmaxfp ((vector float) (a1), (vector float) (a2))), \
8845 __builtin_altivec_compiletime_error ("vec_vmaxfp"))
8847 #define vec_vmaxsw(a1, a2) \
8848 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8849 ((vector signed int) __builtin_altivec_vmaxsw ((vector signed int) (a1), (vector signed int) (a2))), \
8850 __builtin_altivec_compiletime_error ("vec_vmaxsw"))
8852 #define vec_vmaxuw(a1, a2) \
8853 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
8854 ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
8855 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
8856 ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
8857 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8858 ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
8859 __builtin_altivec_compiletime_error ("vec_vmaxuw"))))
8861 #define vec_vmaxsh(a1, a2) \
8862 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8863 ((vector signed short) __builtin_altivec_vmaxsh ((vector signed short) (a1), (vector signed short) (a2))), \
8864 __builtin_altivec_compiletime_error ("vec_vmaxsh"))
8866 #define vec_vmaxuh(a1, a2) \
8867 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
8868 ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
8869 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
8870 ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
8871 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8872 ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
8873 __builtin_altivec_compiletime_error ("vec_vmaxuh"))))
8875 #define vec_vmaxsb(a1, a2) \
8876 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8877 ((vector signed char) __builtin_altivec_vmaxsb ((vector signed char) (a1), (vector signed char) (a2))), \
8878 __builtin_altivec_compiletime_error ("vec_vmaxsb"))
8880 #define vec_vmaxub(a1, a2) \
8881 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
8882 ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
8883 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
8884 ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
8885 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8886 ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
8887 __builtin_altivec_compiletime_error ("vec_vmaxub"))))
8889 #define vec_mergeh(a1, a2) \
8890 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8891 ((vector signed char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
8892 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8893 ((vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
8894 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
8895 ((vector bool char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
8896 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8897 ((vector signed short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
8898 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8899 ((vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
8900 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
8901 ((vector bool short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
8902 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
8903 ((vector pixel) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
8904 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8905 ((vector float) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8906 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8907 ((vector signed int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8908 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8909 ((vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8910 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
8911 ((vector bool int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8912 __builtin_altivec_compiletime_error ("vec_mergeh"))))))))))))
8914 #define vec_vmrghw(a1, a2) \
8915 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8916 ((vector float) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8917 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8918 ((vector signed int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8919 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8920 ((vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
8921 __builtin_altivec_compiletime_error ("vec_vmrghw"))))
8923 #define vec_vmrghh(a1, a2) \
8924 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8925 ((vector signed short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
8926 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8927 ((vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
8928 __builtin_altivec_compiletime_error ("vec_vmrghh")))
8930 #define vec_vmrghb(a1, a2) \
8931 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8932 ((vector signed char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
8933 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8934 ((vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
8935 __builtin_altivec_compiletime_error ("vec_vmrghb")))
8937 #define vec_mergel(a1, a2) \
8938 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8939 ((vector signed char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
8940 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8941 ((vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
8942 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
8943 ((vector bool char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
8944 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8945 ((vector signed short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
8946 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8947 ((vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
8948 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
8949 ((vector bool short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
8950 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
8951 ((vector pixel) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
8952 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8953 ((vector float) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8954 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8955 ((vector signed int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8956 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8957 ((vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8958 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
8959 ((vector bool int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8960 __builtin_altivec_compiletime_error ("vec_mergel"))))))))))))
8962 #define vec_vmrglw(a1, a2) \
8963 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
8964 ((vector float) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8965 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
8966 ((vector signed int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8967 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
8968 ((vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
8969 __builtin_altivec_compiletime_error ("vec_vmrglw"))))
8971 #define vec_vmrglh(a1, a2) \
8972 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
8973 ((vector signed short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
8974 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
8975 ((vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
8976 __builtin_altivec_compiletime_error ("vec_vmrglh")))
8978 #define vec_vmrglb(a1, a2) \
8979 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8980 ((vector signed char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
8981 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8982 ((vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
8983 __builtin_altivec_compiletime_error ("vec_vmrglb")))
8985 #define vec_mfvscr() (((vector unsigned short) __builtin_altivec_mfvscr ()))
8987 #define vec_min(a1, a2) \
8988 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
8989 ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
8990 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
8991 ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
8992 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
8993 ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
8994 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
8995 ((vector signed char) __builtin_altivec_vminsb ((vector signed char) (a1), (vector signed char) (a2))), \
8996 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
8997 ((vector signed char) __builtin_altivec_vminsb ((vector signed char) (a1), (vector signed char) (a2))), \
8998 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
8999 ((vector signed char) __builtin_altivec_vminsb ((vector signed char) (a1), (vector signed char) (a2))), \
9000 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
9001 ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
9002 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
9003 ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
9004 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9005 ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
9006 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
9007 ((vector signed short) __builtin_altivec_vminsh ((vector signed short) (a1), (vector signed short) (a2))), \
9008 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
9009 ((vector signed short) __builtin_altivec_vminsh ((vector signed short) (a1), (vector signed short) (a2))), \
9010 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9011 ((vector signed short) __builtin_altivec_vminsh ((vector signed short) (a1), (vector signed short) (a2))), \
9012 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
9013 ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
9014 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
9015 ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
9016 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9017 ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
9018 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
9019 ((vector signed int) __builtin_altivec_vminsw ((vector signed int) (a1), (vector signed int) (a2))), \
9020 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
9021 ((vector signed int) __builtin_altivec_vminsw ((vector signed int) (a1), (vector signed int) (a2))), \
9022 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9023 ((vector signed int) __builtin_altivec_vminsw ((vector signed int) (a1), (vector signed int) (a2))), \
9024 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
9025 ((vector float) __builtin_altivec_vminfp ((vector float) (a1), (vector float) (a2))), \
9026 __builtin_altivec_compiletime_error ("vec_min"))))))))))))))))))))
9028 #define vec_vminfp(a1, a2) \
9029 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
9030 ((vector float) __builtin_altivec_vminfp ((vector float) (a1), (vector float) (a2))), \
9031 __builtin_altivec_compiletime_error ("vec_vminfp"))
9033 #define vec_vminsw(a1, a2) \
9034 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9035 ((vector signed int) __builtin_altivec_vminsw ((vector signed int) (a1), (vector signed int) (a2))), \
9036 __builtin_altivec_compiletime_error ("vec_vminsw"))
9038 #define vec_vminuw(a1, a2) \
9039 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9040 ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
9041 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
9042 ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
9043 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9044 ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
9045 __builtin_altivec_compiletime_error ("vec_vminuw"))))
9047 #define vec_vminsh(a1, a2) \
9048 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9049 ((vector signed short) __builtin_altivec_vminsh ((vector signed short) (a1), (vector signed short) (a2))), \
9050 __builtin_altivec_compiletime_error ("vec_vminsh"))
9052 #define vec_vminuh(a1, a2) \
9053 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9054 ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
9055 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
9056 ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
9057 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9058 ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
9059 __builtin_altivec_compiletime_error ("vec_vminuh"))))
9061 #define vec_vminsb(a1, a2) \
9062 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9063 ((vector signed char) __builtin_altivec_vminsb ((vector signed char) (a1), (vector signed char) (a2))), \
9064 __builtin_altivec_compiletime_error ("vec_abs"))
9066 #define vec_vminub(a1, a2) \
9067 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9068 ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
9069 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
9070 ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
9071 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9072 ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
9073 __builtin_altivec_compiletime_error ("vec_vminub"))))
9075 #define vec_mladd(a1, a2, a3) \
9076 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed short, (a3)), \
9077 ((vector signed short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
9078 __ch (__tern_args_eq (vector signed short, (a1), vector unsigned short, (a2), vector unsigned short, (a3)), \
9079 ((vector signed short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
9080 __ch (__tern_args_eq (vector unsigned short, (a1), vector signed short, (a2), vector signed short, (a3)), \
9081 ((vector signed short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
9082 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned short, (a3)), \
9083 ((vector unsigned short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
9084 __builtin_altivec_compiletime_error ("vec_mladd")))))
9086 #define vec_mradds(a1, a2, a3) \
9087 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed short, (a3)), \
9088 ((vector signed short) __builtin_altivec_vmhraddshs ((a1), (a2), (a3))), \
9089 __builtin_altivec_compiletime_error ("vec_mradds"))
9091 #define vec_msum(a1, a2, a3) \
9092 __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \
9093 ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
9094 __ch (__tern_args_eq (vector signed char, (a1), vector unsigned char, (a2), vector signed int, (a3)), \
9095 ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
9096 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
9097 ((vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9098 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
9099 ((vector signed int) __builtin_altivec_vmsumshm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9100 __builtin_altivec_compiletime_error ("vec_msum")))))
9102 #define vec_vmsumshm(a1, a2, a3) \
9103 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
9104 ((vector signed int) __builtin_altivec_vmsumshm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9105 __builtin_altivec_compiletime_error ("vec_vmsumshm"))
9107 #define vec_vmsumuhm(a1, a2, a3) \
9108 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
9109 ((vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9110 __builtin_altivec_compiletime_error ("vec_vmsumuhm"))
9112 #define vec_vmsummbm(a1, a2, a3) \
9113 __ch (__tern_args_eq (vector signed char, (a1), vector unsigned char, (a2), vector signed int, (a3)), \
9114 ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
9115 __builtin_altivec_compiletime_error ("vec_abs"))
9117 #define vec_vmsumubm(a1, a2, a3) \
9118 __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \
9119 ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
9120 __builtin_altivec_compiletime_error ("vec_vmsummbm"))
9122 #define vec_msums(a1, a2, a3) \
9123 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
9124 ((vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9125 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
9126 ((vector signed int) __builtin_altivec_vmsumshs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9127 __builtin_altivec_compiletime_error ("vec_msums")))
9129 #define vec_vmsumshs(a1, a2, a3) \
9130 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
9131 ((vector signed int) __builtin_altivec_vmsumshs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9132 __builtin_altivec_compiletime_error ("vec_vmsumshs"))
9134 #define vec_vmsumuhs(a1, a2, a3) \
9135 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
9136 ((vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
9137 __builtin_altivec_compiletime_error ("vec_vmsumuhs"))
9139 #define vec_mtvscr(a1) \
9140 __ch (__un_args_eq (vector signed int, (a1)), \
9141 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9142 __ch (__un_args_eq (vector unsigned int, (a1)), \
9143 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9144 __ch (__un_args_eq (vector bool int, (a1)), \
9145 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9146 __ch (__un_args_eq (vector signed short, (a1)), \
9147 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9148 __ch (__un_args_eq (vector unsigned short, (a1)), \
9149 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9150 __ch (__un_args_eq (vector bool short, (a1)), \
9151 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9152 __ch (__un_args_eq (vector pixel, (a1)), \
9153 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9154 __ch (__un_args_eq (vector signed char, (a1)), \
9155 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9156 __ch (__un_args_eq (vector unsigned char, (a1)), \
9157 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9158 __ch (__un_args_eq (vector bool char, (a1)), \
9159 __builtin_altivec_mtvscr ((vector signed int) (a1)), \
9160 __builtin_altivec_compiletime_error ("vec_mtvscr")))))))))))
9162 #define vec_mule(a1, a2) \
9163 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9164 ((vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) (a1), (vector signed char) (a2))), \
9165 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9166 ((vector signed short) __builtin_altivec_vmulesb ((vector signed char) (a1), (vector signed char) (a2))), \
9167 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9168 ((vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) (a1), (vector signed short) (a2))), \
9169 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9170 ((vector signed int) __builtin_altivec_vmulesh ((vector signed short) (a1), (vector signed short) (a2))), \
9171 __builtin_altivec_compiletime_error ("vec_mule")))))
9173 #define vec_vmulesh(a1, a2) \
9174 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9175 ((vector signed int) __builtin_altivec_vmulesh ((vector signed short) (a1), (vector signed short) (a2))), \
9176 __builtin_altivec_compiletime_error ("vec_vmulesh"))
9178 #define vec_vmuleuh(a1, a2) \
9179 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9180 ((vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) (a1), (vector signed short) (a2))), \
9181 __builtin_altivec_compiletime_error ("vec_vmuleuh"))
9183 #define vec_vmulesb(a1, a2) \
9184 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9185 ((vector signed short) __builtin_altivec_vmulesb ((vector signed char) (a1), (vector signed char) (a2))), \
9186 __builtin_altivec_compiletime_error ("vec_vmulesb"))
9188 #define vec_vmuleub(a1, a2) \
9189 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9190 ((vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) (a1), (vector signed char) (a2))), \
9191 __builtin_altivec_compiletime_error ("vec_vmuleub"))
9193 #define vec_mulo(a1, a2) \
9194 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9195 ((vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) (a1), (vector signed char) (a2))), \
9196 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9197 ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \
9198 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9199 ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \
9200 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9201 ((vector signed int) __builtin_altivec_vmulosh ((vector signed short) (a1), (vector signed short) (a2))), \
9202 __builtin_altivec_compiletime_error ("vec_mulo")))))
9204 #define vec_vmulosh(a1, a2) \
9205 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9206 ((vector signed int) __builtin_altivec_vmulosh ((vector signed short) (a1), (vector signed short) (a2))), \
9207 __builtin_altivec_compiletime_error ("vec_vmulosh"))
9209 #define vec_vmulouh(a1, a2) \
9210 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9211 ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \
9212 __builtin_altivec_compiletime_error ("vec_vmulouh"))
9214 #define vec_vmulosb(a1, a2) \
9215 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9216 ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \
9217 __builtin_altivec_compiletime_error ("vec_vmulosb"))
9219 #define vec_vmuloub(a1, a2) \
9220 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9221 ((vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) (a1), (vector signed char) (a2))), \
9222 __builtin_altivec_compiletime_error ("vec_vmuloub"))
9224 #define vec_nmsub(a1, a2, a3) \
9225 __ch (__tern_args_eq (vector float, ((a1)), vector float, ((a2)) , vector float, ((a3))), \
9226 ((vector float) __builtin_altivec_vnmsubfp ((vector float) ((a1)), (vector float) ((a2)), (vector float)((a3)))), \
9227 __builtin_altivec_compiletime_error ("vec_nmsub"))
9229 #define vec_nor(a1, a2) \
9230 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
9231 ((vector float) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9232 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9233 ((vector signed int) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9234 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9235 ((vector unsigned int) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9236 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
9237 ((vector bool int) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9238 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9239 ((vector signed short) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9240 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9241 ((vector unsigned short) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9242 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
9243 ((vector bool short) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9244 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9245 ((vector signed char) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9246 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9247 ((vector unsigned char) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9248 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
9249 ((vector bool char) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
9250 __builtin_altivec_compiletime_error ("vec_nor")))))))))))
9252 #define vec_or(a1, a2) \
9253 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
9254 ((vector float) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9255 __ch (__bin_args_eq (vector float, (a1), vector bool int, (a2)), \
9256 ((vector float) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9257 __ch (__bin_args_eq (vector bool int, (a1), vector float, (a2)), \
9258 ((vector float) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9259 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
9260 ((vector bool int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9261 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
9262 ((vector signed int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9263 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
9264 ((vector signed int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9265 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9266 ((vector signed int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9267 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
9268 ((vector unsigned int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9269 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
9270 ((vector unsigned int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9271 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9272 ((vector unsigned int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9273 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
9274 ((vector bool short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9275 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
9276 ((vector signed short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9277 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
9278 ((vector signed short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9279 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9280 ((vector signed short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9281 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
9282 ((vector unsigned short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9283 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
9284 ((vector unsigned short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9285 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9286 ((vector unsigned short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9287 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
9288 ((vector bool char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9289 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
9290 ((vector signed char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9291 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
9292 ((vector signed char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9293 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9294 ((vector signed char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9295 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
9296 ((vector unsigned char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9297 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
9298 ((vector unsigned char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9299 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9300 ((vector unsigned char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
9301 __builtin_altivec_compiletime_error ("vec_or")))))))))))))))))))))))))
9303 #define vec_pack(a1, a2) \
9304 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9305 ((vector signed char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
9306 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9307 ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
9308 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
9309 ((vector bool char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
9310 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9311 ((vector signed short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
9312 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9313 ((vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
9314 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
9315 ((vector bool short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
9316 __builtin_altivec_compiletime_error ("vec_pack")))))))
9318 #define vec_vpkuwum(a1, a2) \
9319 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9320 ((vector signed short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
9321 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9322 ((vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
9323 __builtin_altivec_compiletime_error ("vec_vpkuwum")))
9325 #define vec_vpkuhum(a1, a2) \
9326 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9327 ((vector signed char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
9328 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9329 ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
9330 __builtin_altivec_compiletime_error ("vec_vpkuhum")))
9332 #define vec_packpx(a1, a2) \
9333 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9334 (vector pixel) __builtin_altivec_vpkpx ((vector signed int) (a1), (vector signed int) (a2)), \
9335 __builtin_altivec_compiletime_error ("vec_packpx"))
9337 #define vec_packs(a1, a2) \
9338 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9339 ((vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) (a1), (vector signed short) (a2))), \
9340 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9341 ((vector signed char) __builtin_altivec_vpkshss ((vector signed short) (a1), (vector signed short) (a2))), \
9342 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9343 ((vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) (a1), (vector signed int) (a2))), \
9344 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9345 ((vector signed short) __builtin_altivec_vpkswss ((vector signed int) (a1), (vector signed int) (a2))), \
9346 __builtin_altivec_compiletime_error ("vec_packs")))))
9348 #define vec_vpkswss(a1, a2) \
9349 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9350 ((vector signed short) __builtin_altivec_vpkswss ((vector signed int) (a1), (vector signed int) (a2))), \
9351 __builtin_altivec_compiletime_error ("vec_vpkswss"))
9353 #define vec_vpkuwus(a1, a2) \
9354 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9355 ((vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) (a1), (vector signed int) (a2))), \
9356 __builtin_altivec_compiletime_error ("vec_vpkuwus"))
9358 #define vec_vpkshss(a1, a2) \
9359 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9360 ((vector signed char) __builtin_altivec_vpkshss ((vector signed short) (a1), (vector signed short) (a2))), \
9361 __builtin_altivec_compiletime_error ("vec_vpkshss"))
9363 #define vec_vpkuhus(a1, a2) \
9364 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9365 ((vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) (a1), (vector signed short) (a2))), \
9366 __builtin_altivec_compiletime_error ("vec_vpkuhus"))
9368 #define vec_packsu(a1, a2) \
9369 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9370 ((vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) (a1), (vector signed short) (a2))), \
9371 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9372 ((vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) (a1), (vector signed short) (a2))), \
9373 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9374 ((vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) (a1), (vector signed int) (a2))), \
9375 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9376 ((vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) (a1), (vector signed int) (a2))), \
9377 __builtin_altivec_compiletime_error ("vec_packsu")))))
9379 #define vec_vpkswus(a1, a2) \
9380 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9381 ((vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) (a1), (vector signed int) (a2))), \
9382 __builtin_altivec_compiletime_error ("vec_vpkswus"))
9384 #define vec_vpkshus(a1, a2) \
9385 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9386 ((vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) (a1), (vector signed short) (a2))), \
9387 __builtin_altivec_compiletime_error ("vec_vpkshus"))
9389 #define vec_perm(a1, a2, a3) \
9390 __ch (__tern_args_eq (vector float, (a1), vector float, (a2), vector unsigned char, (a3)), \
9391 ((vector float) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9392 __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), vector unsigned char, (a3)), \
9393 ((vector signed int) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9394 __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), vector unsigned char, (a3)), \
9395 ((vector unsigned int) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9396 __ch (__tern_args_eq (vector bool int, (a1), vector bool int, (a2), vector unsigned char, (a3)), \
9397 ((vector bool int) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9398 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector unsigned char, (a3)), \
9399 ((vector signed short) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9400 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned char, (a3)), \
9401 ((vector unsigned short) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9402 __ch (__tern_args_eq (vector bool short, (a1), vector bool short, (a2), vector unsigned char, (a3)), \
9403 ((vector bool short) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9404 __ch (__tern_args_eq (vector pixel, (a1), vector pixel, (a2), vector unsigned char, (a3)), \
9405 ((vector pixel) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9406 __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), vector unsigned char, (a3)), \
9407 ((vector signed char) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9408 __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned char, (a3)), \
9409 ((vector unsigned char) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9410 __ch (__tern_args_eq (vector bool char, (a1), vector bool char, (a2), vector unsigned char, (a3)), \
9411 ((vector bool char) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
9412 __builtin_altivec_compiletime_error ("vec_perm"))))))))))))
9414 #define vec_re(a1) \
9415 __ch (__un_args_eq (vector float, (a1)), \
9416 ((vector float) __builtin_altivec_vrefp ((vector float) (a1))), \
9417 __builtin_altivec_compiletime_error ("vec_re"))
9419 #define vec_rl(a1, a2) \
9420 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9421 ((vector signed char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
9422 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9423 ((vector unsigned char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
9424 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9425 ((vector signed short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
9426 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9427 ((vector unsigned short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
9428 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9429 ((vector signed int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
9430 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9431 ((vector unsigned int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
9432 __builtin_altivec_compiletime_error ("vec_rl")))))))
9434 #define vec_vrlw(a1, a2) \
9435 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9436 ((vector signed int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
9437 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9438 ((vector unsigned int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
9439 __builtin_altivec_compiletime_error ("vec_vrlw")))
9441 #define vec_vrlh(a1, a2) \
9442 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9443 ((vector signed short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
9444 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9445 ((vector unsigned short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
9446 __builtin_altivec_compiletime_error ("vec_vrlh")))
9448 #define vec_vrlb(a1, a2) \
9449 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9450 ((vector signed char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
9451 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9452 ((vector unsigned char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
9453 __builtin_altivec_compiletime_error ("vec_vrlb")))
9455 #define vec_round(a1) \
9456 __ch (__un_args_eq (vector float, (a1)), \
9457 ((vector float) __builtin_altivec_vrfin ((vector float) (a1))), \
9458 __builtin_altivec_compiletime_error ("vec_round"))
9460 #define vec_rsqrte(a1) \
9461 __ch (__un_args_eq (vector float, (a1)), \
9462 ((vector float) __builtin_altivec_vrsqrtefp ((vector float) (a1))), \
9463 __builtin_altivec_compiletime_error ("vec_rsqrte"))
9465 #define vec_sel(a1, a2, a3) \
9466 __ch (__tern_args_eq (vector float, (a1), vector float, (a2), vector bool int, (a3)), \
9467 ((vector float) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9468 __ch (__tern_args_eq (vector float, (a1), vector float, (a2), vector unsigned int, (a3)), \
9469 ((vector float) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9470 __ch (__tern_args_eq (vector bool int, (a1), vector bool int, (a2), vector bool int, (a3)), \
9471 ((vector bool int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9472 __ch (__tern_args_eq (vector bool int, (a1), vector bool int, (a2), vector unsigned int, (a3)), \
9473 ((vector bool int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9474 __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), vector bool int, (a3)), \
9475 ((vector signed int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9476 __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), vector unsigned int, (a3)), \
9477 ((vector signed int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9478 __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), vector bool int, (a3)), \
9479 ((vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9480 __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), vector unsigned int, (a3)), \
9481 ((vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9482 __ch (__tern_args_eq (vector bool short, (a1), vector bool short, (a2), vector bool short, (a3)), \
9483 ((vector bool short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9484 __ch (__tern_args_eq (vector bool short, (a1), vector bool short, (a2), vector unsigned short, (a3)), \
9485 ((vector bool short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9486 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector bool short, (a3)), \
9487 ((vector signed short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9488 __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector unsigned short, (a3)), \
9489 ((vector signed short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9490 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector bool short, (a3)), \
9491 ((vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9492 __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned short, (a3)), \
9493 ((vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9494 __ch (__tern_args_eq (vector bool char, (a1), vector bool char, (a2), vector bool char, (a3)), \
9495 ((vector bool char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9496 __ch (__tern_args_eq (vector bool char, (a1), vector bool char, (a2), vector unsigned char, (a3)), \
9497 ((vector bool char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9498 __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), vector bool char, (a3)), \
9499 ((vector signed char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9500 __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), vector unsigned char, (a3)), \
9501 ((vector signed char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9502 __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector bool char, (a3)), \
9503 ((vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9504 __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned char, (a3)), \
9505 ((vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
9506 __builtin_altivec_compiletime_error ("vec_sel")))))))))))))))))))))
9508 #define vec_sl(a1, a2) \
9509 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9510 ((vector signed char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
9511 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9512 ((vector unsigned char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
9513 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9514 ((vector signed short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
9515 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9516 ((vector unsigned short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
9517 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9518 ((vector signed int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
9519 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9520 ((vector unsigned int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
9521 __builtin_altivec_compiletime_error ("vec_sl")))))))
9523 #define vec_vslw(a1, a2) \
9524 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9525 ((vector signed int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
9526 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9527 ((vector unsigned int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
9528 __builtin_altivec_compiletime_error ("vec_vslw")))
9530 #define vec_vslh(a1, a2) \
9531 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9532 ((vector signed short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
9533 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9534 ((vector unsigned short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
9535 __builtin_altivec_compiletime_error ("vec_vslh")))
9537 #define vec_vslb(a1, a2) \
9538 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9539 ((vector signed char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
9540 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9541 ((vector unsigned char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
9542 __builtin_altivec_compiletime_error ("vec_vslb")))
9544 #define vec_sld(a1, a2, a3) \
9545 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
9546 ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9547 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
9548 ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9549 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9550 ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9551 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
9552 ((vector bool int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9553 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
9554 ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9555 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9556 ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9557 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
9558 ((vector bool short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9559 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
9560 ((vector pixel) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9561 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9562 ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9563 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9564 ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9565 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
9566 ((vector bool char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const int) (a3))), \
9567 __builtin_altivec_compiletime_error ("vec_sld"))))))))))))
9569 #define vec_sll(a1, a2) \
9570 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9571 ((vector signed int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9572 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned short, (a2)), \
9573 ((vector signed int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9574 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
9575 ((vector signed int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9576 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9577 ((vector unsigned int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9578 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned short, (a2)), \
9579 ((vector unsigned int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9580 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
9581 ((vector unsigned int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9582 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
9583 ((vector bool int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9584 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned short, (a2)), \
9585 ((vector bool int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9586 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned char, (a2)), \
9587 ((vector bool int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9588 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned int, (a2)), \
9589 ((vector signed short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9590 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9591 ((vector signed short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9592 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
9593 ((vector signed short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9594 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned int, (a2)), \
9595 ((vector unsigned short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9596 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9597 ((vector unsigned short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9598 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
9599 ((vector unsigned short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9600 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned int, (a2)), \
9601 ((vector bool short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9602 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
9603 ((vector bool short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9604 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned char, (a2)), \
9605 ((vector bool short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9606 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned int, (a2)), \
9607 ((vector pixel) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9608 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned short, (a2)), \
9609 ((vector pixel) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9610 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned char, (a2)), \
9611 ((vector pixel) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9612 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned int, (a2)), \
9613 ((vector signed char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9614 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned short, (a2)), \
9615 ((vector signed char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9616 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9617 ((vector signed char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9618 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
9619 ((vector unsigned char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9620 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned short, (a2)), \
9621 ((vector unsigned char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9622 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9623 ((vector unsigned char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9624 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned int, (a2)), \
9625 ((vector bool char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9626 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned short, (a2)), \
9627 ((vector bool char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9628 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
9629 ((vector bool char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
9630 __builtin_altivec_compiletime_error ("vec_sll")))))))))))))))))))))))))))))))
9632 #define vec_slo(a1, a2) \
9633 __ch (__bin_args_eq (vector float, (a1), vector signed char, (a2)), \
9634 ((vector float) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9635 __ch (__bin_args_eq (vector float, (a1), vector unsigned char, (a2)), \
9636 ((vector float) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9637 __ch (__bin_args_eq (vector signed int, (a1), vector signed char, (a2)), \
9638 ((vector signed int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9639 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
9640 ((vector signed int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9641 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed char, (a2)), \
9642 ((vector unsigned int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9643 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
9644 ((vector unsigned int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9645 __ch (__bin_args_eq (vector signed short, (a1), vector signed char, (a2)), \
9646 ((vector signed short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9647 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
9648 ((vector signed short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9649 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed char, (a2)), \
9650 ((vector unsigned short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9651 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
9652 ((vector unsigned short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9653 __ch (__bin_args_eq (vector pixel, (a1), vector signed char, (a2)), \
9654 ((vector pixel) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9655 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned char, (a2)), \
9656 ((vector pixel) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9657 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9658 ((vector signed char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9659 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9660 ((vector signed char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9661 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
9662 ((vector unsigned char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9663 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9664 ((vector unsigned char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
9665 __builtin_altivec_compiletime_error ("vec_slo")))))))))))))))))
9667 #define vec_splat(a1, a2) \
9668 __ch (__un_args_eq (vector signed char, (a1)), \
9669 ((vector signed char) __builtin_altivec_vspltb ((vector signed char) (a1), (const int) (a2))), \
9670 __ch (__un_args_eq (vector unsigned char, (a1)), \
9671 ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) (a1), (const int) (a2))), \
9672 __ch (__un_args_eq (vector bool char, (a1)), \
9673 ((vector bool char) __builtin_altivec_vspltb ((vector signed char) (a1), (const int) (a2))), \
9674 __ch (__un_args_eq (vector signed short, (a1)), \
9675 ((vector signed short) __builtin_altivec_vsplth ((vector signed short) (a1), (const int) (a2))), \
9676 __ch (__un_args_eq (vector unsigned short, (a1)), \
9677 ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) (a1), (const int) (a2))), \
9678 __ch (__un_args_eq (vector bool short, (a1)), \
9679 ((vector bool short) __builtin_altivec_vsplth ((vector signed short) (a1), (const int) (a2))), \
9680 __ch (__un_args_eq (vector pixel, (a1)), \
9681 ((vector pixel) __builtin_altivec_vsplth ((vector signed short) (a1), (const int) (a2))), \
9682 __ch (__un_args_eq (vector float, (a1)), \
9683 ((vector float) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9684 __ch (__un_args_eq (vector signed int, (a1)), \
9685 ((vector signed int) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9686 __ch (__un_args_eq (vector unsigned int, (a1)), \
9687 ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9688 __ch (__un_args_eq (vector bool int, (a1)), \
9689 ((vector bool int) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9690 __builtin_altivec_compiletime_error ("vec_splat"))))))))))))
9692 #define vec_vspltw(a1, a2) \
9693 __ch (__un_args_eq (vector float, (a1)), \
9694 ((vector float) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9695 __ch (__un_args_eq (vector signed int, (a1)), \
9696 ((vector signed int) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9697 __ch (__un_args_eq (vector unsigned int, (a1)), \
9698 ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const int) (a2))), \
9699 __builtin_altivec_compiletime_error ("vec_vspltw"))))
9701 #define vec_vsplth(a1, a2) \
9702 __ch (__un_args_eq (vector signed short, (a1)), \
9703 ((vector signed short) __builtin_altivec_vsplth ((vector signed short) (a1), (const int) (a2))), \
9704 __ch (__un_args_eq (vector unsigned short, (a1)), \
9705 ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) (a1), (const int) (a2))), \
9706 __builtin_altivec_compiletime_error ("vec_vsplth")))
9708 #define vec_vspltb(a1, a2) \
9709 __ch (__un_args_eq (vector signed char, (a1)), \
9710 ((vector signed char) __builtin_altivec_vspltb ((vector signed char) (a1), (const int) (a2))), \
9711 __ch (__un_args_eq (vector unsigned char, (a1)), \
9712 ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) (a1), (const int) (a2))), \
9713 __builtin_altivec_compiletime_error ("vec_vspltb")))
9715 #define vec_splat_s8(a1) ((vector signed char) __builtin_altivec_vspltisb (a1))
9717 #define vec_splat_s16(a1) ((vector signed short) __builtin_altivec_vspltish (a1))
9719 #define vec_splat_s32(a1) ((vector signed int) __builtin_altivec_vspltisw (a1))
9721 #define vec_splat_u8(a1) ((vector unsigned char) __builtin_altivec_vspltisb (a1))
9723 #define vec_splat_u16(a1) ((vector unsigned short) __builtin_altivec_vspltish (a1))
9725 #define vec_splat_u32(a1) ((vector unsigned int) __builtin_altivec_vspltisw (a1))
9727 #define vec_sr(a1, a2) \
9728 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9729 ((vector signed char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
9730 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9731 ((vector unsigned char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
9732 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9733 ((vector signed short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
9734 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9735 ((vector unsigned short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
9736 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9737 ((vector signed int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
9738 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9739 ((vector unsigned int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
9740 __builtin_altivec_compiletime_error ("vec_sr")))))))
9742 #define vec_vsrw(a1, a2) \
9743 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9744 ((vector signed int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
9745 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9746 ((vector unsigned int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
9747 __builtin_altivec_compiletime_error ("vec_vsrw")))
9749 #define vec_vsrh(a1, a2) \
9750 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9751 ((vector signed short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
9752 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9753 ((vector unsigned short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
9754 __builtin_altivec_compiletime_error ("vec_vsrh")))
9756 #define vec_vsrb(a1, a2) \
9757 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9758 ((vector signed char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
9759 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9760 ((vector unsigned char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
9761 __builtin_altivec_compiletime_error ("vec_vsrb")))
9763 #define vec_sra(a1, a2) \
9764 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9765 ((vector signed char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
9766 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9767 ((vector unsigned char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
9768 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9769 ((vector signed short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
9770 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9771 ((vector unsigned short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
9772 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9773 ((vector signed int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
9774 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9775 ((vector unsigned int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
9776 __builtin_altivec_compiletime_error ("vec_sra")))))))
9778 #define vec_vsraw(a1, a2) \
9779 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9780 ((vector signed int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
9781 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9782 ((vector unsigned int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
9783 __builtin_altivec_compiletime_error ("vec_vsraw")))
9785 #define vec_vsrah(a1, a2) \
9786 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9787 ((vector signed short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
9788 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9789 ((vector unsigned short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
9790 __builtin_altivec_compiletime_error ("vec_vsrah")))
9792 #define vec_vsrab(a1, a2) \
9793 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9794 ((vector signed char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
9795 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9796 ((vector unsigned char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
9797 __builtin_altivec_compiletime_error ("vec_vsrab")))
9799 #define vec_srl(a1, a2) \
9800 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
9801 ((vector signed int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9802 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned short, (a2)), \
9803 ((vector signed int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9804 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
9805 ((vector signed int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9806 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
9807 ((vector unsigned int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9808 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned short, (a2)), \
9809 ((vector unsigned int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9810 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
9811 ((vector unsigned int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9812 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
9813 ((vector bool int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9814 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned short, (a2)), \
9815 ((vector bool int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9816 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned char, (a2)), \
9817 ((vector bool int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9818 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned int, (a2)), \
9819 ((vector signed short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9820 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
9821 ((vector signed short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9822 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
9823 ((vector signed short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9824 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned int, (a2)), \
9825 ((vector unsigned short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9826 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
9827 ((vector unsigned short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9828 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
9829 ((vector unsigned short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9830 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned int, (a2)), \
9831 ((vector bool short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9832 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
9833 ((vector bool short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9834 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned char, (a2)), \
9835 ((vector bool short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9836 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned int, (a2)), \
9837 ((vector pixel) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9838 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned short, (a2)), \
9839 ((vector pixel) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9840 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned char, (a2)), \
9841 ((vector pixel) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9842 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned int, (a2)), \
9843 ((vector signed char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9844 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned short, (a2)), \
9845 ((vector signed char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9846 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9847 ((vector signed char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9848 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
9849 ((vector unsigned char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9850 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned short, (a2)), \
9851 ((vector unsigned char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9852 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9853 ((vector unsigned char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9854 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned int, (a2)), \
9855 ((vector bool char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9856 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned short, (a2)), \
9857 ((vector bool char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9858 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
9859 ((vector bool char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
9860 __builtin_altivec_compiletime_error ("vec_srl")))))))))))))))))))))))))))))))
9862 #define vec_sro(a1, a2) \
9863 __ch (__bin_args_eq (vector float, (a1), vector signed char, (a2)), \
9864 ((vector float) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9865 __ch (__bin_args_eq (vector float, (a1), vector unsigned char, (a2)), \
9866 ((vector float) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9867 __ch (__bin_args_eq (vector signed int, (a1), vector signed char, (a2)), \
9868 ((vector signed int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9869 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
9870 ((vector signed int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9871 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed char, (a2)), \
9872 ((vector unsigned int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9873 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
9874 ((vector unsigned int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9875 __ch (__bin_args_eq (vector signed short, (a1), vector signed char, (a2)), \
9876 ((vector signed short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9877 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
9878 ((vector signed short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9879 __ch (__bin_args_eq (vector pixel, (a1), vector signed char, (a2)), \
9880 ((vector pixel) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9881 __ch (__bin_args_eq (vector pixel, (a1), vector unsigned char, (a2)), \
9882 ((vector pixel) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9883 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed char, (a2)), \
9884 ((vector unsigned short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9885 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
9886 ((vector unsigned short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9887 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
9888 ((vector signed char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9889 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
9890 ((vector signed char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9891 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
9892 ((vector unsigned char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9893 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
9894 ((vector unsigned char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
9895 __builtin_altivec_compiletime_error ("vec_sro")))))))))))))))))
9897 #define vec_st(a1, a2, a3) \
9898 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, *(a3)), \
9899 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9900 __ch (__bin_args_eq (vector unsigned char, (a1), unsigned char, *(a3)), \
9901 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9902 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, *(a3)), \
9903 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9904 __ch (__bin_args_eq (vector signed char, (a1), signed char, *(a3)), \
9905 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9906 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, *(a3)), \
9907 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9908 __ch (__bin_args_eq (vector bool char, (a1), unsigned char, *(a3)), \
9909 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9910 __ch (__bin_args_eq (vector bool char, (a1), signed char, *(a3)), \
9911 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9912 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, *(a3)), \
9913 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9914 __ch (__bin_args_eq (vector unsigned short, (a1), unsigned short, *(a3)), \
9915 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9916 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, *(a3)), \
9917 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9918 __ch (__bin_args_eq (vector signed short, (a1), short, *(a3)), \
9919 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9920 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, *(a3)), \
9921 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9922 __ch (__bin_args_eq (vector bool short, (a1), unsigned short, *(a3)), \
9923 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9924 __ch (__bin_args_eq (vector bool short, (a1), short, *(a3)), \
9925 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9926 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, *(a3)), \
9927 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9928 __ch (__bin_args_eq (vector pixel, (a1), unsigned short, *(a3)), \
9929 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9930 __ch (__bin_args_eq (vector pixel, (a1), short, *(a3)), \
9931 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9932 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, *(a3)), \
9933 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9934 __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, *(a3)), \
9935 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9936 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, *(a3)), \
9937 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9938 __ch (__bin_args_eq (vector signed int, (a1), int, *(a3)), \
9939 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9940 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, *(a3)), \
9941 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9942 __ch (__bin_args_eq (vector bool int, (a1), unsigned int, *(a3)), \
9943 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9944 __ch (__bin_args_eq (vector bool int, (a1), int, *(a3)), \
9945 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9946 __ch (__bin_args_eq (vector float, (a1), vector float, *(a3)), \
9947 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9948 __ch (__bin_args_eq (vector float, (a1), float, *(a3)), \
9949 __builtin_altivec_stvx ((vector signed int) (a1), (a2), (void *) (a3)), \
9950 __builtin_altivec_compiletime_error ("vec_st")))))))))))))))))))))))))))
9952 #define vec_stl(a1, a2, a3) \
9953 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, *(a3)), \
9954 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9955 __ch (__bin_args_eq (vector unsigned char, (a1), unsigned char, *(a3)), \
9956 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9957 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, *(a3)), \
9958 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9959 __ch (__bin_args_eq (vector signed char, (a1), signed char, *(a3)), \
9960 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9961 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, *(a3)), \
9962 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9963 __ch (__bin_args_eq (vector bool char, (a1), unsigned char, *(a3)), \
9964 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9965 __ch (__bin_args_eq (vector bool char, (a1), signed char, *(a3)), \
9966 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9967 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, *(a3)), \
9968 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9969 __ch (__bin_args_eq (vector unsigned short, (a1), unsigned short, *(a3)), \
9970 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9971 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, *(a3)), \
9972 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9973 __ch (__bin_args_eq (vector signed short, (a1), short, *(a3)), \
9974 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9975 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, *(a3)), \
9976 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9977 __ch (__bin_args_eq (vector bool short, (a1), unsigned short, *(a3)), \
9978 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9979 __ch (__bin_args_eq (vector bool short, (a1), short, *(a3)), \
9980 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9981 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, *(a3)), \
9982 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9983 __ch (__bin_args_eq (vector pixel, (a1), unsigned short, *(a3)), \
9984 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9985 __ch (__bin_args_eq (vector pixel, (a1), short, *(a3)), \
9986 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9987 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, *(a3)), \
9988 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9989 __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, *(a3)), \
9990 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9991 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, *(a3)), \
9992 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9993 __ch (__bin_args_eq (vector signed int, (a1), int, *(a3)), \
9994 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9995 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, *(a3)), \
9996 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9997 __ch (__bin_args_eq (vector bool int, (a1), unsigned int, *(a3)), \
9998 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
9999 __ch (__bin_args_eq (vector bool int, (a1), int, *(a3)), \
10000 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
10001 __ch (__bin_args_eq (vector float, (a1), vector float, *(a3)), \
10002 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
10003 __ch (__bin_args_eq (vector float, (a1), float, *(a3)), \
10004 __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (void *) (a3)), \
10005 __builtin_altivec_compiletime_error ("vec_stl")))))))))))))))))))))))))))
10007 #define vec_ste(a, b, c) \
10008 __ch (__bin_args_eq (vector unsigned char, (a), unsigned char, *(c)), \
10009 __builtin_altivec_stvebx ((vector signed char) (a), (b), (void *) (c)), \
10010 __ch (__bin_args_eq (vector signed char, (a), signed char, *(c)), \
10011 __builtin_altivec_stvebx ((vector signed char) (a), (b), (void *) (c)), \
10012 __ch (__bin_args_eq (vector bool char, (a), unsigned char, *(c)), \
10013 __builtin_altivec_stvebx ((vector signed char) (a), (b), (void *) (c)), \
10014 __ch (__bin_args_eq (vector bool char, (a), signed char, *(c)), \
10015 __builtin_altivec_stvebx ((vector signed char) (a), (b), (void *) (c)), \
10016 __ch (__bin_args_eq (vector unsigned short, (a), unsigned short, *(c)), \
10017 __builtin_altivec_stvehx ((vector signed short) (a), (b), (void *) (c)), \
10018 __ch (__bin_args_eq (vector signed short, (a), short, *(c)), \
10019 __builtin_altivec_stvehx ((vector signed short) (a), (b), (void *) (c)), \
10020 __ch (__bin_args_eq (vector bool short, (a), unsigned short, *(c)), \
10021 __builtin_altivec_stvehx ((vector signed short) (a), (b), (void *) (c)), \
10022 __ch (__bin_args_eq (vector bool short, (a), short, *(c)), \
10023 __builtin_altivec_stvehx ((vector signed short) (a), (b), (void *) (c)), \
10024 __ch (__bin_args_eq (vector pixel, (a), unsigned short, *(c)), \
10025 __builtin_altivec_stvehx ((vector signed short) (a), (b), (void *) (c)), \
10026 __ch (__bin_args_eq (vector pixel, (a), short, *(c)), \
10027 __builtin_altivec_stvehx ((vector signed short) (a), (b), (void *) (c)), \
10028 __ch (__bin_args_eq (vector unsigned int, (a), unsigned int, *(c)), \
10029 __builtin_altivec_stvewx ((vector signed int) (a), (b), (void *) (c)), \
10030 __ch (__bin_args_eq (vector signed int, (a), int, *(c)), \
10031 __builtin_altivec_stvewx ((vector signed int) (a), (b), (void *) (c)), \
10032 __ch (__bin_args_eq (vector bool int, (a), unsigned int, *(c)), \
10033 __builtin_altivec_stvewx ((vector signed int) (a), (b), (void *) (c)), \
10034 __ch (__bin_args_eq (vector bool int, (a), int, *(c)), \
10035 __builtin_altivec_stvewx ((vector signed int) (a), (b), (void *) (c)), \
10036 __ch (__bin_args_eq (vector float, (a), float, *(c)), \
10037 __builtin_altivec_stvewx ((vector signed int) (a), (b), (void *) (c)), \
10038 __builtin_altivec_compiletime_error ("vec_ste"))))))))))))))))
10040 #define vec_stvewx(a, b, c) \
10041 __ch (__un_args_eq (vector unsigned int, (a)), \
10042 __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
10043 __ch (__un_args_eq (vector signed int, (a)), \
10044 __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
10045 __ch (__un_args_eq (vector float, (a)), \
10046 __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
10047 __builtin_altivec_compiletime_error ("vec_stvewx"))))
10049 #define vec_stvehx(a, b, c) \
10050 __ch (__un_args_eq (vector unsigned short, (a)), \
10051 __builtin_altivec_stvehx ((vector signed short) (a), (b), (c)), \
10052 __ch (__un_args_eq (vector signed short, (a)), \
10053 __builtin_altivec_stvehx ((vector signed short) (a), (b), (c)), \
10054 __builtin_altivec_compiletime_error ("vec_stvehx")))
10056 #define vec_stvebx(a, b, c) \
10057 __ch (__un_args_eq (vector unsigned char, (a)), \
10058 __builtin_altivec_stvebx ((vector signed char) (a), (b), (c)), \
10059 __ch (__un_args_eq (vector signed char, (a)), \
10060 __builtin_altivec_stvebx ((vector signed char) (a), (b), (c)), \
10061 __builtin_altivec_compiletime_error ("vec_stvebx")))
10063 #define vec_sub(a1, a2) \
10064 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10065 ((vector signed char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10066 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10067 ((vector signed char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10068 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10069 ((vector signed char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10070 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10071 ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10072 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10073 ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10074 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10075 ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10076 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10077 ((vector signed short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10078 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10079 ((vector signed short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10080 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10081 ((vector signed short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10082 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10083 ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10084 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10085 ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10086 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10087 ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10088 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10089 ((vector signed int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10090 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10091 ((vector signed int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10092 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10093 ((vector signed int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10094 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10095 ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10096 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10097 ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10098 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10099 ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10100 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10101 ((vector float) __builtin_altivec_vsubfp ((vector float) (a1), (vector float) (a2))), \
10102 __builtin_altivec_compiletime_error ("vec_sub"))))))))))))))))))))
10104 #define vec_vsubfp(a1, a2) \
10105 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10106 ((vector float) __builtin_altivec_vsubfp ((vector float) (a1), (vector float) (a2))), \
10107 __builtin_altivec_compiletime_error ("vec_vsubfp"))
10109 #define vec_vsubuwm(a1, a2) \
10110 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10111 ((vector signed int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10112 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
10113 ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10114 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
10115 ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10116 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10117 ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
10118 __builtin_altivec_compiletime_error ("vec_vsubuwm")))))
10120 #define vec_vsubuhm(a1, a2) \
10121 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10122 ((vector signed short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10123 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
10124 ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10125 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
10126 ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10127 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10128 ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
10129 __builtin_altivec_compiletime_error ("vec_vsubuhm")))))
10131 #define vec_vsububm(a1, a2) \
10132 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10133 ((vector signed char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10134 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
10135 ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10136 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
10137 ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10138 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10139 ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
10140 __builtin_altivec_compiletime_error ("vec_vsububm")))))
10142 #define vec_subc(a1, a2) \
10143 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10144 ((vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) (a1), (vector signed int) (a2))), \
10145 __builtin_altivec_compiletime_error ("vec_subc"))
10147 #define vec_subs(a1, a2) \
10148 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10149 ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
10150 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10151 ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
10152 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10153 ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
10154 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10155 ((vector signed char) __builtin_altivec_vsubsbs ((vector signed char) (a1), (vector signed char) (a2))), \
10156 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10157 ((vector signed char) __builtin_altivec_vsubsbs ((vector signed char) (a1), (vector signed char) (a2))), \
10158 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10159 ((vector signed char) __builtin_altivec_vsubsbs ((vector signed char) (a1), (vector signed char) (a2))), \
10160 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10161 ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
10162 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10163 ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
10164 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10165 ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
10166 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10167 ((vector signed short) __builtin_altivec_vsubshs ((vector signed short) (a1), (vector signed short) (a2))), \
10168 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10169 ((vector signed short) __builtin_altivec_vsubshs ((vector signed short) (a1), (vector signed short) (a2))), \
10170 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10171 ((vector signed short) __builtin_altivec_vsubshs ((vector signed short) (a1), (vector signed short) (a2))), \
10172 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10173 ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
10174 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10175 ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
10176 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10177 ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
10178 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10179 ((vector signed int) __builtin_altivec_vsubsws ((vector signed int) (a1), (vector signed int) (a2))), \
10180 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10181 ((vector signed int) __builtin_altivec_vsubsws ((vector signed int) (a1), (vector signed int) (a2))), \
10182 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10183 ((vector signed int) __builtin_altivec_vsubsws ((vector signed int) (a1), (vector signed int) (a2))), \
10184 __builtin_altivec_compiletime_error ("vec_subs")))))))))))))))))))
10186 #define vec_vsubsws(a1, a2) \
10187 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10188 ((vector signed int) __builtin_altivec_vsubsws ((vector signed int) (a1), (vector signed int) (a2))), \
10189 __builtin_altivec_compiletime_error ("vec_vsubsws"))
10191 #define vec_vsubuws(a1, a2) \
10192 __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
10193 ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
10194 __ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
10195 ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
10196 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10197 ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
10198 __builtin_altivec_compiletime_error ("vec_vsubuws"))))
10200 #define vec_vsubshs(a1, a2) \
10201 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10202 ((vector signed short) __builtin_altivec_vsubshs ((vector signed short) (a1), (vector signed short) (a2))), \
10203 __builtin_altivec_compiletime_error ("vec_vsubshs"))
10205 #define vec_vsubuhs(a1, a2) \
10206 __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
10207 ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
10208 __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
10209 ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
10210 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10211 ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
10212 __builtin_altivec_compiletime_error ("vec_vsubuhs"))))
10214 #define vec_vsubsbs(a1, a2) \
10215 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10216 ((vector signed char) __builtin_altivec_vsubsbs ((vector signed char) (a1), (vector signed char) (a2))), \
10217 __builtin_altivec_compiletime_error ("vec_vsubsbs"))
10219 #define vec_vsububs(a1, a2) \
10220 __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
10221 ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
10222 __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
10223 ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
10224 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10225 ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
10226 __builtin_altivec_compiletime_error ("vec_vsububs"))))
10228 #define vec_sum4s(a1, a2) \
10229 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
10230 ((vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) (a1), (vector signed int) (a2))), \
10231 __ch (__bin_args_eq (vector signed char, (a1), vector signed int, (a2)), \
10232 ((vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) (a1), (vector signed int) (a2))), \
10233 __ch (__bin_args_eq (vector signed short, (a1), vector signed int, (a2)), \
10234 ((vector signed int) __builtin_altivec_vsum4shs ((vector signed short) (a1), (vector signed int) (a2))), \
10235 __builtin_altivec_compiletime_error ("vec_sum4s"))))
10237 #define vec_vsum4shs(a1, a2) \
10238 __ch (__bin_args_eq (vector signed short, (a1), vector signed int, (a2)), \
10239 ((vector signed int) __builtin_altivec_vsum4shs ((vector signed short) (a1), (vector signed int) (a2))), \
10240 __builtin_altivec_compiletime_error ("vec_vsum4shs"))
10242 #define vec_vsum4sbs(a1, a2) \
10243 __ch (__bin_args_eq (vector signed char, (a1), vector signed int, (a2)), \
10244 ((vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) (a1), (vector signed int) (a2))), \
10245 __builtin_altivec_compiletime_error ("vec_vsum4sbs"))
10247 #define vec_vsum4ubs(a1, a2) \
10248 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
10249 ((vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) (a1), (vector signed int) (a2))), \
10250 __builtin_altivec_compiletime_error ("vec_vsum4ubs"))
10252 #define vec_sum2s(a1, a2) \
10253 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10254 ((vector signed int) __builtin_altivec_vsum2sws ((vector signed int) (a1), (vector signed int) (a2))), \
10255 __builtin_altivec_compiletime_error ("vec_sum2s"))
10257 #define vec_sums(a1, a2) \
10258 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10259 ((vector signed int) __builtin_altivec_vsumsws ((vector signed int) (a1), (vector signed int) (a2))), \
10260 __builtin_altivec_compiletime_error ("vec_sums"))
10262 #define vec_trunc(a1) \
10263 __ch (__un_args_eq (vector float, (a1)), \
10264 ((vector float) __builtin_altivec_vrfiz ((vector float) (a1))), \
10265 __builtin_altivec_compiletime_error ("vec_trunc"))
10267 #define vec_unpackh(a1) \
10268 __ch (__un_args_eq (vector signed char, (a1)), \
10269 ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
10270 __ch (__un_args_eq (vector bool char, (a1)), \
10271 ((vector bool short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
10272 __ch (__un_args_eq (vector pixel, (a1)), \
10273 ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
10274 __ch (__un_args_eq (vector signed short, (a1)), \
10275 ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
10276 __ch (__un_args_eq (vector bool short, (a1)), \
10277 ((vector bool int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
10278 __builtin_altivec_compiletime_error ("vec_unpackh"))))))
10280 #define vec_vupkhsh(a1) \
10281 __ch (__un_args_eq (vector signed short, (a1)), \
10282 ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
10283 __builtin_altivec_compiletime_error ("vec_vupkhsh"))
10285 #define vec_vupkhpx(a1) \
10286 __ch (__un_args_eq (vector unsigned short, (a1)), \
10287 ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
10288 __builtin_altivec_compiletime_error ("vec_vupkhpx"))
10290 #define vec_vupkhsb(a1) \
10291 __ch (__un_args_eq (vector signed char, (a1)), \
10292 ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
10293 __builtin_altivec_compiletime_error ("vec_vupkhsb"))
10295 #define vec_unpackl(a1) \
10296 __ch (__un_args_eq (vector signed char, (a1)), \
10297 ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
10298 __ch (__un_args_eq (vector bool char, (a1)), \
10299 ((vector bool short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
10300 __ch (__un_args_eq (vector pixel, (a1)), \
10301 ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
10302 __ch (__un_args_eq (vector signed short, (a1)), \
10303 ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
10304 __ch (__un_args_eq (vector bool short, (a1)), \
10305 ((vector bool int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
10306 __builtin_altivec_compiletime_error ("vec_unpackl"))))))
10308 #define vec_vupklsh(a1) \
10309 __ch (__un_args_eq (vector signed short, (a1)), \
10310 ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
10311 __builtin_altivec_compiletime_error ("vec_vupklsh"))
10313 #define vec_vupklpx(a1) \
10314 __ch (__un_args_eq (vector unsigned short, (a1)), \
10315 ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
10316 __builtin_altivec_compiletime_error ("vec_vupklpx"))
10318 #define vec_vupklsb(a1) \
10319 __ch (__un_args_eq (vector signed char, (a1)), \
10320 ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
10321 __builtin_altivec_compiletime_error ("vec_vupklsb"))
10323 #define vec_xor(a1, a2) \
10324 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10325 ((vector float) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10326 __ch (__bin_args_eq (vector float, (a1), vector bool int, (a2)), \
10327 ((vector float) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10328 __ch (__bin_args_eq (vector bool int, (a1), vector float, (a2)), \
10329 ((vector float) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10330 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
10331 ((vector bool int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10332 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10333 ((vector signed int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10334 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10335 ((vector signed int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10336 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10337 ((vector signed int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10338 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10339 ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10340 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10341 ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10342 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10343 ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10344 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
10345 ((vector bool short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10346 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10347 ((vector signed short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10348 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10349 ((vector signed short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10350 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10351 ((vector signed short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10352 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10353 ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10354 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10355 ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10356 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10357 ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10358 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
10359 ((vector bool char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10360 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10361 ((vector signed char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10362 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10363 ((vector signed char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10364 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10365 ((vector signed char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10366 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10367 ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10368 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10369 ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10370 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10371 ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) (a1), (vector signed int) (a2))), \
10372 __builtin_altivec_compiletime_error ("vec_xor")))))))))))))))))))))))))
10376 #define vec_all_eq(a1, a2) \
10377 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10378 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10379 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10380 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10381 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10382 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10383 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10384 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10385 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10386 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10387 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10388 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10389 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
10390 __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10391 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10392 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10393 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10394 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10395 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10396 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10397 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10398 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10399 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10400 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10401 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10402 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10403 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
10404 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10405 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
10406 __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10407 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10408 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10409 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10410 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10411 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10412 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10413 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10414 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10415 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10416 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10417 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10418 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10419 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
10420 __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10421 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10422 __builtin_altivec_vcmpeqfp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \
10423 __builtin_altivec_compiletime_error ("vec_all_eq"))))))))))))))))))))))))
10425 #define vec_all_ge(a1, a2) \
10426 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10427 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) (a2), (vector signed char) (a1)), \
10428 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10429 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) (a2), (vector signed char) (a1)), \
10430 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10431 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) (a2), (vector signed char) (a1)), \
10432 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10433 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) (a2), (vector signed char) (a1)), \
10434 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10435 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) (a2), (vector signed char) (a1)), \
10436 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10437 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) (a2), (vector signed char) (a1)), \
10438 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10439 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) (a2), (vector signed short) (a1)), \
10440 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10441 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) (a2), (vector signed short) (a1)), \
10442 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10443 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) (a2), (vector signed short) (a1)), \
10444 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10445 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) (a2), (vector signed short) (a1)), \
10446 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10447 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) (a2), (vector signed short) (a1)), \
10448 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10449 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) (a2), (vector signed short) (a1)), \
10450 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10451 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
10452 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10453 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
10454 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10455 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
10456 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10457 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
10458 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10459 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
10460 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10461 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
10462 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10463 __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \
10464 __builtin_altivec_compiletime_error ("vec_all_ge"))))))))))))))))))))
10466 #define vec_all_gt(a1, a2) \
10467 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10468 __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10469 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10470 __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10471 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10472 __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10473 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10474 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10475 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10476 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10477 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10478 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) (a1), (vector signed char) (a2)), \
10479 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10480 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10481 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10482 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10483 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10484 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10485 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10486 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10487 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10488 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10489 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10490 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) (a1), (vector signed short) (a2)), \
10491 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10492 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10493 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10494 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10495 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10496 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10497 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10498 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10499 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10500 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10501 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10502 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
10503 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10504 __builtin_altivec_vcmpgtfp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \
10505 __builtin_altivec_compiletime_error ("vec_all_gt"))))))))))))))))))))
10507 #define vec_all_in(a1, a2) \
10508 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10509 __builtin_altivec_vcmpbfp_p (__CR6_EQ, (a1), (a2)), \
10510 __builtin_altivec_compiletime_error ("vec_all_in"))
10512 #define vec_all_le(a1, a2) \
10513 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10514 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10515 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10516 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10517 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10518 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10519 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10520 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10521 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10522 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10523 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10524 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10525 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10526 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10527 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10528 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10529 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10530 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10531 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10532 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10533 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10534 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10535 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10536 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10537 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10538 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10539 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10540 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10541 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10542 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10543 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10544 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10545 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10546 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10547 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10548 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10549 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10550 __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a2), (vector float) (a1)), \
10551 __builtin_altivec_compiletime_error ("vec_all_le"))))))))))))))))))))
10553 #define vec_all_lt(a1, a2) \
10554 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10555 __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) (a2), (vector signed char) (a1)), \
10556 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10557 __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) (a2), (vector signed char) (a1)), \
10558 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10559 __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) (a2), (vector signed char) (a1)), \
10560 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10561 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) (a2), (vector signed char) (a1)), \
10562 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10563 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) (a2), (vector signed char) (a1)), \
10564 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10565 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) (a2), (vector signed char) (a1)), \
10566 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10567 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) (a2), (vector signed short) (a1)), \
10568 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10569 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) (a2), (vector signed short) (a1)), \
10570 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10571 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) (a2), (vector signed short) (a1)), \
10572 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10573 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) (a2), (vector signed short) (a1)), \
10574 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10575 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) (a2), (vector signed short) (a1)), \
10576 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10577 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) (a2), (vector signed short) (a1)), \
10578 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10579 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
10580 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10581 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
10582 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10583 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
10584 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10585 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
10586 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10587 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
10588 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10589 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
10590 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10591 __builtin_altivec_vcmpgtfp_p (__CR6_LT, (vector float) (a2), (vector float) (a1)), \
10592 __builtin_altivec_compiletime_error ("vec_all_lt"))))))))))))))))))))
10594 #define vec_all_nan(a1) \
10595 __ch (__un_args_eq (vector float, (a1)), \
10596 __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (a1), (a1)), \
10597 __builtin_altivec_compiletime_error ("vec_all_nan"))
10599 #define vec_all_ne(a1, a2) \
10600 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10601 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10602 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10603 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10604 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10605 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10606 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10607 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10608 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10609 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10610 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10611 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10612 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
10613 __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) (a1), (vector signed char) (a2)), \
10614 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10615 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10616 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10617 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10618 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10619 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10620 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10621 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10622 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10623 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10624 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10625 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10626 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
10627 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10628 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
10629 __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) (a1), (vector signed short) (a2)), \
10630 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10631 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10632 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10633 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10634 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10635 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10636 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10637 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10638 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10639 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10640 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10641 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10642 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
10643 __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
10644 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10645 __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (vector float) (a1), (vector float) (a2)), \
10646 __builtin_altivec_compiletime_error ("vec_all_ne"))))))))))))))))))))))))
10648 #define vec_all_nge(a1, a2) \
10649 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10650 __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a1), (a2)), \
10651 __builtin_altivec_compiletime_error ("vec_all_nge"))
10653 #define vec_all_ngt(a1, a2) \
10654 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10655 __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a1), (a2)), \
10656 __builtin_altivec_compiletime_error ("vec_all_ngt"))
10658 #define vec_all_nle(a1, a2) \
10659 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10660 __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a2), (a1)), \
10661 __builtin_altivec_compiletime_error ("vec_all_nle"))
10663 #define vec_all_nlt(a1, a2) \
10664 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10665 __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a2), (a1)), \
10666 __builtin_altivec_compiletime_error ("vec_all_nlt"))
10668 #define vec_all_numeric(a1) \
10669 __ch (__un_args_eq (vector float, (a1)), \
10670 __builtin_altivec_vcmpeqfp_p (__CR6_LT, (a1), (a1)), \
10671 __builtin_altivec_compiletime_error ("vec_all_numeric"))
10673 #define vec_any_eq(a1, a2) \
10674 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10675 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10676 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10677 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10678 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10679 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10680 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10681 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10682 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10683 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10684 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10685 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10686 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
10687 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10688 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10689 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10690 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10691 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10692 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10693 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10694 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10695 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10696 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10697 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10698 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10699 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10700 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
10701 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10702 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
10703 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10704 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10705 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10706 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10707 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10708 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10709 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10710 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10711 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10712 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10713 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10714 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10715 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10716 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
10717 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10718 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10719 __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (vector float) (a1), (vector float) (a2)), \
10720 __builtin_altivec_compiletime_error ("vec_any_eq"))))))))))))))))))))))))
10722 #define vec_any_ge(a1, a2) \
10723 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10724 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10725 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10726 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10727 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10728 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10729 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10730 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10731 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10732 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10733 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10734 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10735 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10736 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10737 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10738 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10739 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10740 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10741 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10742 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10743 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10744 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10745 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10746 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10747 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10748 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10749 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10750 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10751 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10752 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10753 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10754 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10755 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10756 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10757 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10758 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10759 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10760 __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (vector float) (a1), (vector float) (a2)), \
10761 __builtin_altivec_compiletime_error ("vec_any_ge"))))))))))))))))))))
10763 #define vec_any_gt(a1, a2) \
10764 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10765 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10766 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10767 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10768 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10769 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10770 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10771 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10772 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10773 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10774 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10775 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10776 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10777 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10778 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10779 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10780 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10781 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10782 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10783 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10784 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10785 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10786 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10787 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10788 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10789 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10790 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10791 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10792 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10793 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10794 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10795 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10796 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10797 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10798 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10799 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10800 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10801 __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (vector float) (a1), (vector float) (a2)), \
10802 __builtin_altivec_compiletime_error ("vec_any_gt"))))))))))))))))))))
10804 #define vec_any_le(a1, a2) \
10805 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10806 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10807 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10808 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10809 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10810 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10811 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10812 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10813 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10814 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10815 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10816 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10817 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10818 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10819 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10820 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10821 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10822 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10823 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10824 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10825 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10826 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10827 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10828 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10829 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10830 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10831 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10832 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10833 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10834 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10835 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10836 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10837 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10838 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10839 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10840 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10841 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10842 __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (vector float) (a2), (vector float) (a1)), \
10843 __builtin_altivec_compiletime_error ("vec_any_le"))))))))))))))))))))
10845 #define vec_any_lt(a1, a2) \
10846 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10847 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10848 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10849 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10850 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10851 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10852 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10853 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10854 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10855 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10856 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10857 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) (a2), (vector signed char) (a1)), \
10858 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10859 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10860 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10861 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10862 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10863 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10864 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10865 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10866 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10867 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10868 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10869 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) (a2), (vector signed short) (a1)), \
10870 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10871 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10872 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10873 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10874 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10875 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10876 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10877 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10878 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10879 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10880 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10881 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) (a2), (vector signed int) (a1)), \
10882 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10883 __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (vector float) (a2), (vector float) (a1)), \
10884 __builtin_altivec_compiletime_error ("vec_any_lt"))))))))))))))))))))
10886 #define vec_any_nan(a1) \
10887 __ch (__un_args_eq (vector float, (a1)), \
10888 __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (a1), (a1)), \
10889 __builtin_altivec_compiletime_error ("vec_any_nan"))
10891 #define vec_any_ne(a1, a2) \
10892 __ch (__bin_args_eq (vector bool char, (a1), vector unsigned char, (a2)), \
10893 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10894 __ch (__bin_args_eq (vector bool char, (a1), vector signed char, (a2)), \
10895 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10896 __ch (__bin_args_eq (vector signed char, (a1), vector bool char, (a2)), \
10897 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10898 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
10899 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10900 __ch (__bin_args_eq (vector unsigned char, (a1), vector bool char, (a2)), \
10901 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10902 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
10903 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10904 __ch (__bin_args_eq (vector bool char, (a1), vector bool char, (a2)), \
10905 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) (a1), (vector signed char) (a2)), \
10906 __ch (__bin_args_eq (vector bool short, (a1), vector unsigned short, (a2)), \
10907 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10908 __ch (__bin_args_eq (vector bool short, (a1), vector signed short, (a2)), \
10909 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10910 __ch (__bin_args_eq (vector signed short, (a1), vector bool short, (a2)), \
10911 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10912 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
10913 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10914 __ch (__bin_args_eq (vector unsigned short, (a1), vector bool short, (a2)), \
10915 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10916 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
10917 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10918 __ch (__bin_args_eq (vector bool short, (a1), vector bool short, (a2)), \
10919 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10920 __ch (__bin_args_eq (vector pixel, (a1), vector pixel, (a2)), \
10921 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) (a1), (vector signed short) (a2)), \
10922 __ch (__bin_args_eq (vector bool int, (a1), vector unsigned int, (a2)), \
10923 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10924 __ch (__bin_args_eq (vector bool int, (a1), vector signed int, (a2)), \
10925 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10926 __ch (__bin_args_eq (vector signed int, (a1), vector bool int, (a2)), \
10927 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10928 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
10929 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10930 __ch (__bin_args_eq (vector unsigned int, (a1), vector bool int, (a2)), \
10931 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10932 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
10933 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10934 __ch (__bin_args_eq (vector bool int, (a1), vector bool int, (a2)), \
10935 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) (a1), (vector signed int) (a2)), \
10936 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10937 __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (vector float) (a1), (vector float) (a2)), \
10938 __builtin_altivec_compiletime_error ("vec_any_ne"))))))))))))))))))))))))
10940 #define vec_any_nge(a1, a2) \
10941 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10942 __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a1), (a2)), \
10943 __builtin_altivec_compiletime_error ("vec_any_nge"))
10945 #define vec_any_ngt(a1, a2) \
10946 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10947 __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a1), (a2)), \
10948 __builtin_altivec_compiletime_error ("vec_any_ngt"))
10950 #define vec_any_nle(a1, a2) \
10951 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10952 __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a2), (a1)), \
10953 __builtin_altivec_compiletime_error ("vec_any_nle"))
10955 #define vec_any_nlt(a1, a2) \
10956 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10957 __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a2), (a1)), \
10958 __builtin_altivec_compiletime_error ("vec_any_nlt"))
10960 #define vec_any_numeric(a1) \
10961 __ch (__un_args_eq (vector float, (a1)), \
10962 __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (a1), (a1)), \
10963 __builtin_altivec_compiletime_error ("vec_any_numeric"))
10965 #define vec_any_out(a1, a2) \
10966 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
10967 __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, (a1), (a2)), \
10968 __builtin_altivec_compiletime_error ("vec_any_out"))
10971 #endif /* __cplusplus */
10973 #endif /* _ALTIVEC_H */