2004-08-23 Eric Christopher <echristo@redhat.com>
[official-gcc.git] / gcc / config / rs6000 / altivec.h
blobb7bb1b67c95b244fc7224af9e989154194ed54e1
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
27 Public License. */
29 /* Implemented to conform to the specification included in the AltiVec
30 Technology Programming Interface Manual (ALTIVECPIM/D 6/1999 Rev 0). */
32 #ifndef _ALTIVEC_H
33 #define _ALTIVEC_H 1
35 #if !defined(__VEC__) || !defined(__ALTIVEC__)
36 #error Use the "-maltivec" flag to enable PowerPC AltiVec support
37 #endif
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
47 #define pixel __pixel
48 #define bool __bool
49 #endif
51 /* Condition register codes for AltiVec predicates. */
53 #define __CR6_EQ 0
54 #define __CR6_EQ_REV 1
55 #define __CR6_LT 2
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
102 #ifdef __cplusplus
104 extern "C++" {
106 /* Prototypes for builtins that take literals and must always be
107 inlined. */
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 bool int vec_vspltw (__vector bool int a1, const int a2) __attribute__ ((always_inline));
230 inline __vector signed int vec_vspltw (__vector signed int a1, const int a2) __attribute__ ((always_inline));
231 inline __vector unsigned int vec_vspltw (__vector unsigned int a1, const int a2) __attribute__ ((always_inline));
232 inline __vector bool short vec_vsplth (__vector bool short a1, const int a2) __attribute__ ((always_inline));
233 inline __vector signed short vec_vsplth (__vector signed short a1, const int a2) __attribute__ ((always_inline));
234 inline __vector unsigned short vec_vsplth (__vector unsigned short a1, const int a2) __attribute__ ((always_inline));
235 inline __vector pixel vec_vsplth (__vector pixel a1, const int a2) __attribute__ ((always_inline));
236 inline __vector bool char vec_vspltb (__vector bool char a1, const int a2) __attribute__ ((always_inline));
237 inline __vector signed char vec_vspltb (__vector signed char a1, const int a2) __attribute__ ((always_inline));
238 inline __vector unsigned char vec_vspltb (__vector unsigned char a1, const int a2) __attribute__ ((always_inline));
240 /* vec_step */
242 template<typename _Tp>
243 struct __vec_step_help
245 // All proper __vector types will specialize _S_elem.
248 template<>
249 struct __vec_step_help<vector signed short>
251 static const int _S_elem = 8;
254 template<>
255 struct __vec_step_help<vector unsigned short>
257 static const int _S_elem = 8;
260 template<>
261 struct __vec_step_help<vector bool short>
263 static const int _S_elem = 8;
266 template<>
267 struct __vec_step_help<vector pixel>
269 static const int _S_elem = 8;
272 template<>
273 struct __vec_step_help<vector signed int>
275 static const int _S_elem = 4;
278 template<>
279 struct __vec_step_help<vector unsigned int>
281 static const int _S_elem = 4;
284 template<>
285 struct __vec_step_help<vector bool int>
287 static const int _S_elem = 4;
290 template<>
291 struct __vec_step_help<vector unsigned char>
293 static const int _S_elem = 16;
296 template<>
297 struct __vec_step_help<vector signed char>
299 static const int _S_elem = 16;
302 template<>
303 struct __vec_step_help<vector bool char>
305 static const int _S_elem = 16;
308 template<>
309 struct __vec_step_help<vector float>
311 static const int _S_elem = 4;
314 #define vec_step(t) __vec_step_help<__typeof__(t)>::_S_elem
316 /* vec_abs */
318 inline __vector signed char
319 vec_abs (__vector signed char a1)
321 return __builtin_altivec_abs_v16qi (a1);
324 inline __vector signed short
325 vec_abs (__vector signed short a1)
327 return __builtin_altivec_abs_v8hi (a1);
330 inline __vector signed int
331 vec_abs (__vector signed int a1)
333 return __builtin_altivec_abs_v4si (a1);
336 inline __vector float
337 vec_abs (__vector float a1)
339 return __builtin_altivec_abs_v4sf (a1);
342 /* vec_abss */
344 inline __vector signed char
345 vec_abss (__vector signed char a1)
347 return __builtin_altivec_abss_v16qi (a1);
350 inline __vector signed short
351 vec_abss (__vector signed short a1)
353 return __builtin_altivec_abss_v8hi (a1);
356 inline __vector signed int
357 vec_abss (__vector signed int a1)
359 return __builtin_altivec_abss_v4si (a1);
362 /* vec_add */
364 inline __vector signed char
365 vec_add (__vector bool char a1, __vector signed char a2)
367 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
370 inline __vector signed char
371 vec_add (__vector signed char a1, __vector bool char a2)
373 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
376 inline __vector signed char
377 vec_add (__vector signed char a1, __vector signed char a2)
379 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
382 inline __vector unsigned char
383 vec_add (__vector bool char a1, __vector unsigned char a2)
385 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
388 inline __vector unsigned char
389 vec_add (__vector unsigned char a1, __vector bool char a2)
391 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
394 inline __vector unsigned char
395 vec_add (__vector unsigned char a1, __vector unsigned char a2)
397 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
400 inline __vector signed short
401 vec_add (__vector bool short a1, __vector signed short a2)
403 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
406 inline __vector signed short
407 vec_add (__vector signed short a1, __vector bool short a2)
409 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
412 inline __vector signed short
413 vec_add (__vector signed short a1, __vector signed short a2)
415 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
418 inline __vector unsigned short
419 vec_add (__vector bool short a1, __vector unsigned short a2)
421 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
424 inline __vector unsigned short
425 vec_add (__vector unsigned short a1, __vector bool short a2)
427 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
430 inline __vector unsigned short
431 vec_add (__vector unsigned short a1, __vector unsigned short a2)
433 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
436 inline __vector signed int
437 vec_add (__vector bool int a1, __vector signed int a2)
439 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
442 inline __vector signed int
443 vec_add (__vector signed int a1, __vector bool int a2)
445 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
448 inline __vector signed int
449 vec_add (__vector signed int a1, __vector signed int a2)
451 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
454 inline __vector unsigned int
455 vec_add (__vector bool int a1, __vector unsigned int a2)
457 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
460 inline __vector unsigned int
461 vec_add (__vector unsigned int a1, __vector bool int a2)
463 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
466 inline __vector unsigned int
467 vec_add (__vector unsigned int a1, __vector unsigned int a2)
469 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
472 inline __vector float
473 vec_add (__vector float a1, __vector float a2)
475 return (__vector float) __builtin_altivec_vaddfp ((__vector float) a1, (__vector float) a2);
478 /* vec_vaddfp */
480 inline __vector float
481 vec_vaddfp (__vector float a1, __vector float a2)
483 return (__vector float) __builtin_altivec_vaddfp ((__vector float) a1, (__vector float) a2);
486 /* vec_vadduwm */
488 inline __vector signed int
489 vec_vadduwm (__vector bool int a1, __vector signed int a2)
491 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
494 inline __vector signed int
495 vec_vadduwm (__vector signed int a1, __vector bool int a2)
497 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
500 inline __vector signed int
501 vec_vadduwm (__vector signed int a1, __vector signed int a2)
503 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
506 inline __vector unsigned int
507 vec_vadduwm (__vector bool int a1, __vector unsigned int a2)
509 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
512 inline __vector unsigned int
513 vec_vadduwm (__vector unsigned int a1, __vector bool int a2)
515 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
518 inline __vector unsigned int
519 vec_vadduwm (__vector unsigned int a1, __vector unsigned int a2)
521 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
524 /* vec_vadduhm */
526 inline __vector signed short
527 vec_vadduhm (__vector bool short a1, __vector signed short a2)
529 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
532 inline __vector signed short
533 vec_vadduhm (__vector signed short a1, __vector bool short a2)
535 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
538 inline __vector signed short
539 vec_vadduhm (__vector signed short a1, __vector signed short a2)
541 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
544 inline __vector unsigned short
545 vec_vadduhm (__vector bool short a1, __vector unsigned short a2)
547 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
550 inline __vector unsigned short
551 vec_vadduhm (__vector unsigned short a1, __vector bool short a2)
553 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
556 inline __vector unsigned short
557 vec_vadduhm (__vector unsigned short a1, __vector unsigned short a2)
559 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
562 /* vec_vaddubm */
564 inline __vector signed char
565 vec_vaddubm (__vector bool char a1, __vector signed char a2)
567 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
570 inline __vector signed char
571 vec_vaddubm (__vector signed char a1, __vector bool char a2)
573 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
576 inline __vector signed char
577 vec_vaddubm (__vector signed char a1, __vector signed char a2)
579 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
582 inline __vector unsigned char
583 vec_vaddubm (__vector bool char a1, __vector unsigned char a2)
585 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
588 inline __vector unsigned char
589 vec_vaddubm (__vector unsigned char a1, __vector bool char a2)
591 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
594 inline __vector unsigned char
595 vec_vaddubm (__vector unsigned char a1, __vector unsigned char a2)
597 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
600 /* vec_addc */
602 inline __vector unsigned int
603 vec_addc (__vector unsigned int a1, __vector unsigned int a2)
605 return (__vector unsigned int) __builtin_altivec_vaddcuw ((__vector signed int) a1, (__vector signed int) a2);
608 /* vec_adds */
610 inline __vector unsigned char
611 vec_adds (__vector bool char a1, __vector unsigned char a2)
613 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
616 inline __vector unsigned char
617 vec_adds (__vector unsigned char a1, __vector bool char a2)
619 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
622 inline __vector unsigned char
623 vec_adds (__vector unsigned char a1, __vector unsigned char a2)
625 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
628 inline __vector signed char
629 vec_adds (__vector bool char a1, __vector signed char a2)
631 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
634 inline __vector signed char
635 vec_adds (__vector signed char a1, __vector bool char a2)
637 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
640 inline __vector signed char
641 vec_adds (__vector signed char a1, __vector signed char a2)
643 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
646 inline __vector unsigned short
647 vec_adds (__vector bool short a1, __vector unsigned short a2)
649 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
652 inline __vector unsigned short
653 vec_adds (__vector unsigned short a1, __vector bool short a2)
655 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
658 inline __vector unsigned short
659 vec_adds (__vector unsigned short a1, __vector unsigned short a2)
661 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
664 inline __vector signed short
665 vec_adds (__vector bool short a1, __vector signed short a2)
667 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
670 inline __vector signed short
671 vec_adds (__vector signed short a1, __vector bool short a2)
673 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
676 inline __vector signed short
677 vec_adds (__vector signed short a1, __vector signed short a2)
679 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
682 inline __vector unsigned int
683 vec_adds (__vector bool int a1, __vector unsigned int a2)
685 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
688 inline __vector unsigned int
689 vec_adds (__vector unsigned int a1, __vector bool 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_adds (__vector unsigned int a1, __vector unsigned int a2)
697 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
700 inline __vector signed int
701 vec_adds (__vector bool int a1, __vector signed int a2)
703 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
706 inline __vector signed int
707 vec_adds (__vector signed int a1, __vector bool int a2)
709 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
712 inline __vector signed int
713 vec_adds (__vector signed int a1, __vector signed int a2)
715 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
718 /* vec_vaddsws */
720 inline __vector signed int
721 vec_vaddsws (__vector bool int a1, __vector signed int a2)
723 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
726 inline __vector signed int
727 vec_vaddsws (__vector signed int a1, __vector bool int a2)
729 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
732 inline __vector signed int
733 vec_vaddsws (__vector signed int a1, __vector signed int a2)
735 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
738 /* vec_vadduws */
740 inline __vector unsigned int
741 vec_vadduws (__vector bool int a1, __vector unsigned int a2)
743 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
746 inline __vector unsigned int
747 vec_vadduws (__vector unsigned int a1, __vector bool int a2)
749 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
752 inline __vector unsigned int
753 vec_vadduws (__vector unsigned int a1, __vector unsigned int a2)
755 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
758 /* vec_vaddshs */
760 inline __vector signed short
761 vec_vaddshs (__vector bool short a1, __vector signed short a2)
763 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
766 inline __vector signed short
767 vec_vaddshs (__vector signed short a1, __vector bool short a2)
769 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
772 inline __vector signed short
773 vec_vaddshs (__vector signed short a1, __vector signed short a2)
775 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
778 /* vec_vadduhs */
780 inline __vector unsigned short
781 vec_vadduhs (__vector bool short a1, __vector unsigned short a2)
783 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
786 inline __vector unsigned short
787 vec_vadduhs (__vector unsigned short a1, __vector bool short a2)
789 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
792 inline __vector unsigned short
793 vec_vadduhs (__vector unsigned short a1, __vector unsigned short a2)
795 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
798 /* vec_vaddsbs */
800 inline __vector signed char
801 vec_vaddsbs (__vector bool char a1, __vector signed char a2)
803 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
806 inline __vector signed char
807 vec_vaddsbs (__vector signed char a1, __vector bool char a2)
809 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
812 inline __vector signed char
813 vec_vaddsbs (__vector signed char a1, __vector signed char a2)
815 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
818 /* vec_vaddubs */
820 inline __vector unsigned char
821 vec_vaddubs (__vector bool char a1, __vector unsigned char a2)
823 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
826 inline __vector unsigned char
827 vec_vaddubs (__vector unsigned char a1, __vector bool char a2)
829 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
832 inline __vector unsigned char
833 vec_vaddubs (__vector unsigned char a1, __vector unsigned char a2)
835 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
838 /* vec_and */
840 inline __vector float
841 vec_and (__vector float a1, __vector float a2)
843 return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
846 inline __vector float
847 vec_and (__vector float a1, __vector bool int a2)
849 return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
852 inline __vector float
853 vec_and (__vector bool int a1, __vector float a2)
855 return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
858 inline __vector bool int
859 vec_and (__vector bool int a1, __vector bool int a2)
861 return (__vector bool int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
864 inline __vector signed int
865 vec_and (__vector bool int a1, __vector signed int a2)
867 return (__vector signed int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
870 inline __vector signed int
871 vec_and (__vector signed int a1, __vector bool int a2)
873 return (__vector signed int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
876 inline __vector signed int
877 vec_and (__vector signed int a1, __vector signed int a2)
879 return (__vector signed int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
882 inline __vector unsigned int
883 vec_and (__vector bool int a1, __vector unsigned int a2)
885 return (__vector unsigned int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
888 inline __vector unsigned int
889 vec_and (__vector unsigned int a1, __vector bool int a2)
891 return (__vector unsigned int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
894 inline __vector unsigned int
895 vec_and (__vector unsigned int a1, __vector unsigned int a2)
897 return (__vector unsigned int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
900 inline __vector bool short
901 vec_and (__vector bool short a1, __vector bool short a2)
903 return (__vector bool short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
906 inline __vector signed short
907 vec_and (__vector bool short a1, __vector signed short a2)
909 return (__vector signed short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
912 inline __vector signed short
913 vec_and (__vector signed short a1, __vector bool short a2)
915 return (__vector signed short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
918 inline __vector signed short
919 vec_and (__vector signed short a1, __vector signed short a2)
921 return (__vector signed short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
924 inline __vector unsigned short
925 vec_and (__vector bool short a1, __vector unsigned short a2)
927 return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
930 inline __vector unsigned short
931 vec_and (__vector unsigned short a1, __vector bool short a2)
933 return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
936 inline __vector unsigned short
937 vec_and (__vector unsigned short a1, __vector unsigned short a2)
939 return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
942 inline __vector signed char
943 vec_and (__vector bool char a1, __vector signed char a2)
945 return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
948 inline __vector bool char
949 vec_and (__vector bool char a1, __vector bool char a2)
951 return (__vector bool char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
954 inline __vector signed char
955 vec_and (__vector signed char a1, __vector bool char a2)
957 return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
960 inline __vector signed char
961 vec_and (__vector signed char a1, __vector signed char a2)
963 return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
966 inline __vector unsigned char
967 vec_and (__vector bool char a1, __vector unsigned char a2)
969 return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
972 inline __vector unsigned char
973 vec_and (__vector unsigned char a1, __vector bool char a2)
975 return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
978 inline __vector unsigned char
979 vec_and (__vector unsigned char a1, __vector unsigned char a2)
981 return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
984 /* vec_andc */
986 inline __vector float
987 vec_andc (__vector float a1, __vector float a2)
989 return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
992 inline __vector float
993 vec_andc (__vector float a1, __vector bool int a2)
995 return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
998 inline __vector float
999 vec_andc (__vector bool int a1, __vector float a2)
1001 return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1004 inline __vector bool int
1005 vec_andc (__vector bool int a1, __vector bool int a2)
1007 return (__vector bool int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1010 inline __vector signed int
1011 vec_andc (__vector bool int a1, __vector signed int a2)
1013 return (__vector signed int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1016 inline __vector signed int
1017 vec_andc (__vector signed int a1, __vector bool int a2)
1019 return (__vector signed int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1022 inline __vector signed int
1023 vec_andc (__vector signed int a1, __vector signed int a2)
1025 return (__vector signed int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1028 inline __vector unsigned int
1029 vec_andc (__vector bool int a1, __vector unsigned int a2)
1031 return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1034 inline __vector unsigned int
1035 vec_andc (__vector unsigned int a1, __vector bool int a2)
1037 return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1040 inline __vector unsigned int
1041 vec_andc (__vector unsigned int a1, __vector unsigned int a2)
1043 return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1046 inline __vector bool short
1047 vec_andc (__vector bool short a1, __vector bool short a2)
1049 return (__vector bool short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1052 inline __vector signed short
1053 vec_andc (__vector bool short a1, __vector signed short a2)
1055 return (__vector signed short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1058 inline __vector signed short
1059 vec_andc (__vector signed short a1, __vector bool short a2)
1061 return (__vector signed short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1064 inline __vector signed short
1065 vec_andc (__vector signed short a1, __vector signed short a2)
1067 return (__vector signed short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1070 inline __vector unsigned short
1071 vec_andc (__vector bool short a1, __vector unsigned short a2)
1073 return (__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1076 inline __vector unsigned short
1077 vec_andc (__vector unsigned short a1, __vector bool short a2)
1079 return (__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1082 inline __vector unsigned short
1083 vec_andc (__vector unsigned short a1, __vector unsigned short a2)
1085 return (__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1088 inline __vector signed char
1089 vec_andc (__vector bool char a1, __vector signed char a2)
1091 return (__vector signed char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1094 inline __vector bool char
1095 vec_andc (__vector bool char a1, __vector bool char a2)
1097 return (__vector bool char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1100 inline __vector signed char
1101 vec_andc (__vector signed char a1, __vector bool char a2)
1103 return (__vector signed char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1106 inline __vector signed char
1107 vec_andc (__vector signed char a1, __vector signed char a2)
1109 return (__vector signed char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1112 inline __vector unsigned char
1113 vec_andc (__vector bool char a1, __vector unsigned char a2)
1115 return (__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1118 inline __vector unsigned char
1119 vec_andc (__vector unsigned char a1, __vector bool char a2)
1121 return (__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1124 inline __vector unsigned char
1125 vec_andc (__vector unsigned char a1, __vector unsigned char a2)
1127 return (__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
1130 /* vec_avg */
1132 inline __vector unsigned char
1133 vec_avg (__vector unsigned char a1, __vector unsigned char a2)
1135 return (__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) a1, (__vector signed char) a2);
1138 inline __vector signed char
1139 vec_avg (__vector signed char a1, __vector signed char a2)
1141 return (__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) a1, (__vector signed char) a2);
1144 inline __vector unsigned short
1145 vec_avg (__vector unsigned short a1, __vector unsigned short a2)
1147 return (__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) a1, (__vector signed short) a2);
1150 inline __vector signed short
1151 vec_avg (__vector signed short a1, __vector signed short a2)
1153 return (__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) a1, (__vector signed short) a2);
1156 inline __vector unsigned int
1157 vec_avg (__vector unsigned int a1, __vector unsigned int a2)
1159 return (__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) a1, (__vector signed int) a2);
1162 inline __vector signed int
1163 vec_avg (__vector signed int a1, __vector signed int a2)
1165 return (__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) a1, (__vector signed int) a2);
1168 /* vec_vavgsw */
1170 inline __vector signed int
1171 vec_vavgsw (__vector signed int a1, __vector signed int a2)
1173 return (__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) a1, (__vector signed int) a2);
1176 /* vec_vavguw */
1178 inline __vector unsigned int
1179 vec_vavguw (__vector unsigned int a1, __vector unsigned int a2)
1181 return (__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) a1, (__vector signed int) a2);
1184 /* vec_vavgsh */
1186 inline __vector signed short
1187 vec_vavgsh (__vector signed short a1, __vector signed short a2)
1189 return (__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) a1, (__vector signed short) a2);
1192 /* vec_vavguh */
1194 inline __vector unsigned short
1195 vec_vavguh (__vector unsigned short a1, __vector unsigned short a2)
1197 return (__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) a1, (__vector signed short) a2);
1200 /* vec_vavgsb */
1202 inline __vector signed char
1203 vec_vavgsb (__vector signed char a1, __vector signed char a2)
1205 return (__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) a1, (__vector signed char) a2);
1208 /* vec_vavgub */
1210 inline __vector unsigned char
1211 vec_vavgub (__vector unsigned char a1, __vector unsigned char a2)
1213 return (__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) a1, (__vector signed char) a2);
1216 /* vec_ceil */
1218 inline __vector float
1219 vec_ceil (__vector float a1)
1221 return (__vector float) __builtin_altivec_vrfip ((__vector float) a1);
1224 /* vec_cmpb */
1226 inline __vector signed int
1227 vec_cmpb (__vector float a1, __vector float a2)
1229 return (__vector signed int) __builtin_altivec_vcmpbfp ((__vector float) a1, (__vector float) a2);
1232 /* vec_cmpeq */
1234 inline __vector bool char
1235 vec_cmpeq (__vector signed char a1, __vector signed char a2)
1237 return (__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2);
1240 inline __vector bool char
1241 vec_cmpeq (__vector unsigned char a1, __vector unsigned char a2)
1243 return (__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2);
1246 inline __vector bool short
1247 vec_cmpeq (__vector signed short a1, __vector signed short a2)
1249 return (__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2);
1252 inline __vector bool short
1253 vec_cmpeq (__vector unsigned short a1, __vector unsigned short a2)
1255 return (__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2);
1258 inline __vector bool int
1259 vec_cmpeq (__vector signed int a1, __vector signed int a2)
1261 return (__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
1264 inline __vector bool int
1265 vec_cmpeq (__vector unsigned int a1, __vector unsigned int a2)
1267 return (__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
1270 inline __vector bool int
1271 vec_cmpeq (__vector float a1, __vector float a2)
1273 return (__vector bool int) __builtin_altivec_vcmpeqfp ((__vector float) a1, (__vector float) a2);
1276 /* vec_vcmpeqfp */
1278 inline __vector bool int
1279 vec_vcmpeqfp (__vector float a1, __vector float a2)
1281 return (__vector bool int) __builtin_altivec_vcmpeqfp ((__vector float) a1, (__vector float) a2);
1284 /* vec_vcmpequw */
1286 inline __vector bool int
1287 vec_vcmpequw (__vector signed int a1, __vector signed int a2)
1289 return (__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
1292 inline __vector bool int
1293 vec_vcmpequw (__vector unsigned int a1, __vector unsigned int a2)
1295 return (__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
1298 /* vec_vcmpequh */
1300 inline __vector bool short
1301 vec_vcmpequh (__vector signed short a1, __vector signed short a2)
1303 return (__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2);
1306 inline __vector bool short
1307 vec_vcmpequh (__vector unsigned short a1, __vector unsigned short a2)
1309 return (__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2);
1312 /* vec_vcmpequb */
1314 inline __vector bool char
1315 vec_vcmpequb (__vector signed char a1, __vector signed char a2)
1317 return (__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2);
1320 inline __vector bool char
1321 vec_vcmpequb (__vector unsigned char a1, __vector unsigned char a2)
1323 return (__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2);
1326 /* vec_cmpge */
1328 inline __vector bool int
1329 vec_cmpge (__vector float a1, __vector float a2)
1331 return (__vector bool int) __builtin_altivec_vcmpgefp ((__vector float) a1, (__vector float) a2);
1334 /* vec_cmpgt */
1336 inline __vector bool char
1337 vec_cmpgt (__vector unsigned char a1, __vector unsigned char a2)
1339 return (__vector bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a1, (__vector signed char) a2);
1342 inline __vector bool char
1343 vec_cmpgt (__vector signed char a1, __vector signed char a2)
1345 return (__vector bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a1, (__vector signed char) a2);
1348 inline __vector bool short
1349 vec_cmpgt (__vector unsigned short a1, __vector unsigned short a2)
1351 return (__vector bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a1, (__vector signed short) a2);
1354 inline __vector bool short
1355 vec_cmpgt (__vector signed short a1, __vector signed short a2)
1357 return (__vector bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a1, (__vector signed short) a2);
1360 inline __vector bool int
1361 vec_cmpgt (__vector unsigned int a1, __vector unsigned int a2)
1363 return (__vector bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a1, (__vector signed int) a2);
1366 inline __vector bool int
1367 vec_cmpgt (__vector signed int a1, __vector signed int a2)
1369 return (__vector bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a1, (__vector signed int) a2);
1372 inline __vector bool int
1373 vec_cmpgt (__vector float a1, __vector float a2)
1375 return (__vector bool int) __builtin_altivec_vcmpgtfp ((__vector float) a1, (__vector float) a2);
1378 /* vec_vcmpgtfp */
1380 inline __vector bool int
1381 vec_vcmpgtfp (__vector float a1, __vector float a2)
1383 return (__vector bool int) __builtin_altivec_vcmpgtfp ((__vector float) a1, (__vector float) a2);
1386 /* vec_vcmpgtsw */
1388 inline __vector bool int
1389 vec_vcmpgtsw (__vector signed int a1, __vector signed int a2)
1391 return (__vector bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a1, (__vector signed int) a2);
1394 /* vec_vcmpgtuw */
1396 inline __vector bool int
1397 vec_vcmpgtuw (__vector unsigned int a1, __vector unsigned int a2)
1399 return (__vector bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a1, (__vector signed int) a2);
1402 /* vec_vcmpgtsh */
1404 inline __vector bool short
1405 vec_vcmpgtsh (__vector signed short a1, __vector signed short a2)
1407 return (__vector bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a1, (__vector signed short) a2);
1410 /* vec_vcmpgtuh */
1412 inline __vector bool short
1413 vec_vcmpgtuh (__vector unsigned short a1, __vector unsigned short a2)
1415 return (__vector bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a1, (__vector signed short) a2);
1418 /* vec_vcmpgtsb */
1420 inline __vector bool char
1421 vec_vcmpgtsb (__vector signed char a1, __vector signed char a2)
1423 return (__vector bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a1, (__vector signed char) a2);
1426 /* vec_vcmpgtub */
1428 inline __vector bool char
1429 vec_vcmpgtub (__vector unsigned char a1, __vector unsigned char a2)
1431 return (__vector bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a1, (__vector signed char) a2);
1434 /* vec_cmple */
1436 inline __vector bool int
1437 vec_cmple (__vector float a1, __vector float a2)
1439 return (__vector bool int) __builtin_altivec_vcmpgefp ((__vector float) a2, (__vector float) a1);
1442 /* vec_cmplt */
1444 inline __vector bool char
1445 vec_cmplt (__vector unsigned char a1, __vector unsigned char a2)
1447 return (__vector bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a2, (__vector signed char) a1);
1450 inline __vector bool char
1451 vec_cmplt (__vector signed char a1, __vector signed char a2)
1453 return (__vector bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a2, (__vector signed char) a1);
1456 inline __vector bool short
1457 vec_cmplt (__vector unsigned short a1, __vector unsigned short a2)
1459 return (__vector bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a2, (__vector signed short) a1);
1462 inline __vector bool short
1463 vec_cmplt (__vector signed short a1, __vector signed short a2)
1465 return (__vector bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a2, (__vector signed short) a1);
1468 inline __vector bool int
1469 vec_cmplt (__vector unsigned int a1, __vector unsigned int a2)
1471 return (__vector bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a2, (__vector signed int) a1);
1474 inline __vector bool int
1475 vec_cmplt (__vector signed int a1, __vector signed int a2)
1477 return (__vector bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a2, (__vector signed int) a1);
1480 inline __vector bool int
1481 vec_cmplt (__vector float a1, __vector float a2)
1483 return (__vector bool int) __builtin_altivec_vcmpgtfp ((__vector float) a2, (__vector float) a1);
1486 /* vec_ctf */
1488 inline __vector float
1489 vec_ctf (__vector unsigned int a1, const int a2)
1491 return (__vector float) __builtin_altivec_vcfux ((__vector signed int) a1, a2);
1494 inline __vector float
1495 vec_ctf (__vector signed int a1, const int a2)
1497 return (__vector float) __builtin_altivec_vcfsx ((__vector signed int) a1, a2);
1500 /* vec_vcfsx */
1502 inline __vector float
1503 vec_vcfsx (__vector signed int a1, const int a2)
1505 return (__vector float) __builtin_altivec_vcfsx ((__vector signed int) a1, a2);
1508 /* vec_vcfux */
1510 inline __vector float
1511 vec_vcfux (__vector unsigned int a1, const int a2)
1513 return (__vector float) __builtin_altivec_vcfux ((__vector signed int) a1, a2);
1516 /* vec_cts */
1518 inline __vector signed int
1519 vec_cts (__vector float a1, const int a2)
1521 return (__vector signed int) __builtin_altivec_vctsxs ((__vector float) a1, a2);
1524 /* vec_ctu */
1526 inline __vector unsigned int
1527 vec_ctu (__vector float a1, const int a2)
1529 return (__vector unsigned int) __builtin_altivec_vctuxs ((__vector float) a1, a2);
1532 /* vec_dss */
1534 inline void
1535 vec_dss (const int a1)
1537 __builtin_altivec_dss (a1);
1540 /* vec_dssall */
1542 inline void
1543 vec_dssall (void)
1545 __builtin_altivec_dssall ();
1548 /* vec_dst */
1550 inline void
1551 vec_dst (const __vector unsigned char *a1, int a2, const int a3)
1553 __builtin_altivec_dst ((void *) a1, a2, a3);
1556 inline void
1557 vec_dst (const __vector signed char *a1, int a2, const int a3)
1559 __builtin_altivec_dst ((void *) a1, a2, a3);
1562 inline void
1563 vec_dst (const __vector bool char *a1, int a2, const int a3)
1565 __builtin_altivec_dst ((void *) a1, a2, a3);
1568 inline void
1569 vec_dst (const __vector unsigned short *a1, int a2, const int a3)
1571 __builtin_altivec_dst ((void *) a1, a2, a3);
1574 inline void
1575 vec_dst (const __vector signed short *a1, int a2, const int a3)
1577 __builtin_altivec_dst ((void *) a1, a2, a3);
1580 inline void
1581 vec_dst (const __vector bool short *a1, int a2, const int a3)
1583 __builtin_altivec_dst ((void *) a1, a2, a3);
1586 inline void
1587 vec_dst (const __vector pixel *a1, int a2, const int a3)
1589 __builtin_altivec_dst ((void *) a1, a2, a3);
1592 inline void
1593 vec_dst (const __vector unsigned int *a1, int a2, const int a3)
1595 __builtin_altivec_dst ((void *) a1, a2, a3);
1598 inline void
1599 vec_dst (const __vector signed int *a1, int a2, const int a3)
1601 __builtin_altivec_dst ((void *) a1, a2, a3);
1604 inline void
1605 vec_dst (const __vector bool int *a1, int a2, const int a3)
1607 __builtin_altivec_dst ((void *) a1, a2, a3);
1610 inline void
1611 vec_dst (const __vector float *a1, int a2, const int a3)
1613 __builtin_altivec_dst ((void *) a1, a2, a3);
1616 inline void
1617 vec_dst (const unsigned char *a1, int a2, const int a3)
1619 __builtin_altivec_dst ((void *) a1, a2, a3);
1622 inline void
1623 vec_dst (const signed char *a1, int a2, const int a3)
1625 __builtin_altivec_dst ((void *) a1, a2, a3);
1628 inline void
1629 vec_dst (const unsigned short *a1, int a2, const int a3)
1631 __builtin_altivec_dst ((void *) a1, a2, a3);
1634 inline void
1635 vec_dst (const short *a1, int a2, const int a3)
1637 __builtin_altivec_dst ((void *) a1, a2, a3);
1640 inline void
1641 vec_dst (const unsigned int *a1, int a2, const int a3)
1643 __builtin_altivec_dst ((void *) a1, a2, a3);
1646 inline void
1647 vec_dst (const int *a1, int a2, const int a3)
1649 __builtin_altivec_dst ((void *) a1, a2, a3);
1652 inline void
1653 vec_dst (const unsigned long *a1, int a2, const int a3)
1655 __builtin_altivec_dst ((void *) a1, a2, a3);
1658 inline void
1659 vec_dst (const long *a1, int a2, const int a3)
1661 __builtin_altivec_dst ((void *) a1, a2, a3);
1664 inline void
1665 vec_dst (const float *a1, int a2, const int a3)
1667 __builtin_altivec_dst ((void *) a1, a2, a3);
1670 /* vec_dstst */
1672 inline void
1673 vec_dstst (const __vector unsigned char *a1, int a2, const int a3)
1675 __builtin_altivec_dstst ((void *) a1, a2, a3);
1678 inline void
1679 vec_dstst (const __vector signed char *a1, int a2, const int a3)
1681 __builtin_altivec_dstst ((void *) a1, a2, a3);
1684 inline void
1685 vec_dstst (const __vector bool char *a1, int a2, const int a3)
1687 __builtin_altivec_dstst ((void *) a1, a2, a3);
1690 inline void
1691 vec_dstst (const __vector unsigned short *a1, int a2, const int a3)
1693 __builtin_altivec_dstst ((void *) a1, a2, a3);
1696 inline void
1697 vec_dstst (const __vector signed short *a1, int a2, const int a3)
1699 __builtin_altivec_dstst ((void *) a1, a2, a3);
1702 inline void
1703 vec_dstst (const __vector bool short *a1, int a2, const int a3)
1705 __builtin_altivec_dstst ((void *) a1, a2, a3);
1708 inline void
1709 vec_dstst (const __vector pixel *a1, int a2, const int a3)
1711 __builtin_altivec_dstst ((void *) a1, a2, a3);
1714 inline void
1715 vec_dstst (const __vector unsigned int *a1, int a2, const int a3)
1717 __builtin_altivec_dstst ((void *) a1, a2, a3);
1720 inline void
1721 vec_dstst (const __vector signed int *a1, int a2, const int a3)
1723 __builtin_altivec_dstst ((void *) a1, a2, a3);
1726 inline void
1727 vec_dstst (const __vector bool int *a1, int a2, const int a3)
1729 __builtin_altivec_dstst ((void *) a1, a2, a3);
1732 inline void
1733 vec_dstst (const __vector float *a1, int a2, const int a3)
1735 __builtin_altivec_dstst ((void *) a1, a2, a3);
1738 inline void
1739 vec_dstst (const unsigned char *a1, int a2, const int a3)
1741 __builtin_altivec_dstst ((void *) a1, a2, a3);
1744 inline void
1745 vec_dstst (const signed char *a1, int a2, const int a3)
1747 __builtin_altivec_dstst ((void *) a1, a2, a3);
1750 inline void
1751 vec_dstst (const unsigned short *a1, int a2, const int a3)
1753 __builtin_altivec_dstst ((void *) a1, a2, a3);
1756 inline void
1757 vec_dstst (const short *a1, int a2, const int a3)
1759 __builtin_altivec_dstst ((void *) a1, a2, a3);
1762 inline void
1763 vec_dstst (const unsigned int *a1, int a2, const int a3)
1765 __builtin_altivec_dstst ((void *) a1, a2, a3);
1768 inline void
1769 vec_dstst (const int *a1, int a2, const int a3)
1771 __builtin_altivec_dstst ((void *) a1, a2, a3);
1774 inline void
1775 vec_dstst (const unsigned long *a1, int a2, const int a3)
1777 __builtin_altivec_dstst ((void *) a1, a2, a3);
1780 inline void
1781 vec_dstst (const long *a1, int a2, const int a3)
1783 __builtin_altivec_dstst ((void *) a1, a2, a3);
1786 inline void
1787 vec_dstst (const float *a1, int a2, const int a3)
1789 __builtin_altivec_dstst ((void *) a1, a2, a3);
1792 /* vec_dststt */
1794 inline void
1795 vec_dststt (const __vector unsigned char *a1, int a2, const int a3)
1797 __builtin_altivec_dststt ((void *) a1, a2, a3);
1800 inline void
1801 vec_dststt (const __vector signed char *a1, int a2, const int a3)
1803 __builtin_altivec_dststt ((void *) a1, a2, a3);
1806 inline void
1807 vec_dststt (const __vector bool char *a1, int a2, const int a3)
1809 __builtin_altivec_dststt ((void *) a1, a2, a3);
1812 inline void
1813 vec_dststt (const __vector unsigned short *a1, int a2, const int a3)
1815 __builtin_altivec_dststt ((void *) a1, a2, a3);
1818 inline void
1819 vec_dststt (const __vector signed short *a1, int a2, const int a3)
1821 __builtin_altivec_dststt ((void *) a1, a2, a3);
1824 inline void
1825 vec_dststt (const __vector bool short *a1, int a2, const int a3)
1827 __builtin_altivec_dststt ((void *) a1, a2, a3);
1830 inline void
1831 vec_dststt (const __vector pixel *a1, int a2, const int a3)
1833 __builtin_altivec_dststt ((void *) a1, a2, a3);
1836 inline void
1837 vec_dststt (const __vector unsigned int *a1, int a2, const int a3)
1839 __builtin_altivec_dststt ((void *) a1, a2, a3);
1842 inline void
1843 vec_dststt (const __vector signed int *a1, int a2, const int a3)
1845 __builtin_altivec_dststt ((void *) a1, a2, a3);
1848 inline void
1849 vec_dststt (const __vector bool int *a1, int a2, const int a3)
1851 __builtin_altivec_dststt ((void *) a1, a2, a3);
1854 inline void
1855 vec_dststt (const __vector float *a1, int a2, const int a3)
1857 __builtin_altivec_dststt ((void *) a1, a2, a3);
1860 inline void
1861 vec_dststt (const unsigned char *a1, int a2, const int a3)
1863 __builtin_altivec_dststt ((void *) a1, a2, a3);
1866 inline void
1867 vec_dststt (const signed char *a1, int a2, const int a3)
1869 __builtin_altivec_dststt ((void *) a1, a2, a3);
1872 inline void
1873 vec_dststt (const unsigned short *a1, int a2, const int a3)
1875 __builtin_altivec_dststt ((void *) a1, a2, a3);
1878 inline void
1879 vec_dststt (const short *a1, int a2, const int a3)
1881 __builtin_altivec_dststt ((void *) a1, a2, a3);
1884 inline void
1885 vec_dststt (const unsigned int *a1, int a2, const int a3)
1887 __builtin_altivec_dststt ((void *) a1, a2, a3);
1890 inline void
1891 vec_dststt (const int *a1, int a2, const int a3)
1893 __builtin_altivec_dststt ((void *) a1, a2, a3);
1896 inline void
1897 vec_dststt (const unsigned long *a1, int a2, const int a3)
1899 __builtin_altivec_dststt ((void *) a1, a2, a3);
1902 inline void
1903 vec_dststt (const long *a1, int a2, const int a3)
1905 __builtin_altivec_dststt ((void *) a1, a2, a3);
1908 inline void
1909 vec_dststt (const float *a1, int a2, const int a3)
1911 __builtin_altivec_dststt ((void *) a1, a2, a3);
1914 /* vec_dstt */
1916 inline void
1917 vec_dstt (const __vector unsigned char *a1, int a2, const int a3)
1919 __builtin_altivec_dstt ((void *) a1, a2, a3);
1922 inline void
1923 vec_dstt (const __vector signed char *a1, int a2, const int a3)
1925 __builtin_altivec_dstt ((void *) a1, a2, a3);
1928 inline void
1929 vec_dstt (const __vector bool char *a1, int a2, const int a3)
1931 __builtin_altivec_dstt ((void *) a1, a2, a3);
1934 inline void
1935 vec_dstt (const __vector unsigned short *a1, int a2, const int a3)
1937 __builtin_altivec_dstt ((void *) a1, a2, a3);
1940 inline void
1941 vec_dstt (const __vector signed short *a1, int a2, const int a3)
1943 __builtin_altivec_dstt ((void *) a1, a2, a3);
1946 inline void
1947 vec_dstt (const __vector bool short *a1, int a2, const int a3)
1949 __builtin_altivec_dstt ((void *) a1, a2, a3);
1952 inline void
1953 vec_dstt (const __vector pixel *a1, int a2, const int a3)
1955 __builtin_altivec_dstt ((void *) a1, a2, a3);
1958 inline void
1959 vec_dstt (const __vector unsigned int *a1, int a2, const int a3)
1961 __builtin_altivec_dstt ((void *) a1, a2, a3);
1964 inline void
1965 vec_dstt (const __vector signed int *a1, int a2, const int a3)
1967 __builtin_altivec_dstt ((void *) a1, a2, a3);
1970 inline void
1971 vec_dstt (const __vector bool int *a1, int a2, const int a3)
1973 __builtin_altivec_dstt ((void *) a1, a2, a3);
1976 inline void
1977 vec_dstt (const __vector float *a1, int a2, const int a3)
1979 __builtin_altivec_dstt ((void *) a1, a2, a3);
1982 inline void
1983 vec_dstt (const unsigned char *a1, int a2, const int a3)
1985 __builtin_altivec_dstt ((void *) a1, a2, a3);
1988 inline void
1989 vec_dstt (const signed char *a1, int a2, const int a3)
1991 __builtin_altivec_dstt ((void *) a1, a2, a3);
1994 inline void
1995 vec_dstt (const unsigned short *a1, int a2, const int a3)
1997 __builtin_altivec_dstt ((void *) a1, a2, a3);
2000 inline void
2001 vec_dstt (const short *a1, int a2, const int a3)
2003 __builtin_altivec_dstt ((void *) a1, a2, a3);
2006 inline void
2007 vec_dstt (const unsigned int *a1, int a2, const int a3)
2009 __builtin_altivec_dstt ((void *) a1, a2, a3);
2012 inline void
2013 vec_dstt (const int *a1, int a2, const int a3)
2015 __builtin_altivec_dstt ((void *) a1, a2, a3);
2018 inline void
2019 vec_dstt (const unsigned long *a1, int a2, const int a3)
2021 __builtin_altivec_dstt ((void *) a1, a2, a3);
2024 inline void
2025 vec_dstt (const long *a1, int a2, const int a3)
2027 __builtin_altivec_dstt ((void *) a1, a2, a3);
2030 inline void
2031 vec_dstt (const float *a1, int a2, const int a3)
2033 __builtin_altivec_dstt ((void *) a1, a2, a3);
2036 /* vec_expte */
2038 inline __vector float
2039 vec_expte (__vector float a1)
2041 return (__vector float) __builtin_altivec_vexptefp ((__vector float) a1);
2044 /* vec_floor */
2046 inline __vector float
2047 vec_floor (__vector float a1)
2049 return (__vector float) __builtin_altivec_vrfim ((__vector float) a1);
2052 /* vec_ld */
2054 inline __vector float
2055 vec_ld (int a1, const __vector float *a2)
2057 return (__vector float) __builtin_altivec_lvx (a1, (void *) a2);
2060 inline __vector float
2061 vec_ld (int a1, const float *a2)
2063 return (__vector float) __builtin_altivec_lvx (a1, (void *) a2);
2066 inline __vector bool int
2067 vec_ld (int a1, const __vector bool int *a2)
2069 return (__vector bool int) __builtin_altivec_lvx (a1, (void *) a2);
2072 inline __vector signed int
2073 vec_ld (int a1, const __vector signed int *a2)
2075 return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
2078 inline __vector signed int
2079 vec_ld (int a1, const int *a2)
2081 return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
2084 inline __vector signed int
2085 vec_ld (int a1, const long *a2)
2087 return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
2090 inline __vector unsigned int
2091 vec_ld (int a1, const __vector unsigned int *a2)
2093 return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
2096 inline __vector unsigned int
2097 vec_ld (int a1, const unsigned int *a2)
2099 return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
2102 inline __vector unsigned int
2103 vec_ld (int a1, const unsigned long *a2)
2105 return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
2108 inline __vector bool short
2109 vec_ld (int a1, const __vector bool short *a2)
2111 return (__vector bool short) __builtin_altivec_lvx (a1, (void *) a2);
2114 inline __vector pixel
2115 vec_ld (int a1, const __vector pixel *a2)
2117 return (__vector pixel) __builtin_altivec_lvx (a1, (void *) a2);
2120 inline __vector signed short
2121 vec_ld (int a1, const __vector signed short *a2)
2123 return (__vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
2126 inline __vector signed short
2127 vec_ld (int a1, const short *a2)
2129 return (__vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
2132 inline __vector unsigned short
2133 vec_ld (int a1, const __vector unsigned short *a2)
2135 return (__vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
2138 inline __vector unsigned short
2139 vec_ld (int a1, const unsigned short *a2)
2141 return (__vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
2144 inline __vector bool char
2145 vec_ld (int a1, const __vector bool char *a2)
2147 return (__vector bool char) __builtin_altivec_lvx (a1, (void *) a2);
2150 inline __vector signed char
2151 vec_ld (int a1, const __vector signed char *a2)
2153 return (__vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
2156 inline __vector signed char
2157 vec_ld (int a1, const signed char *a2)
2159 return (__vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
2162 inline __vector unsigned char
2163 vec_ld (int a1, const __vector unsigned char *a2)
2165 return (__vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
2168 inline __vector unsigned char
2169 vec_ld (int a1, const unsigned char *a2)
2171 return (__vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
2174 /* vec_lde */
2176 inline __vector signed char
2177 vec_lde (int a1, const signed char *a2)
2179 return (__vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
2182 inline __vector unsigned char
2183 vec_lde (int a1, const unsigned char *a2)
2185 return (__vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
2188 inline __vector signed short
2189 vec_lde (int a1, const short *a2)
2191 return (__vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
2194 inline __vector unsigned short
2195 vec_lde (int a1, const unsigned short *a2)
2197 return (__vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
2200 inline __vector float
2201 vec_lde (int a1, const float *a2)
2203 return (__vector float) __builtin_altivec_lvewx (a1, (void *) a2);
2206 inline __vector signed int
2207 vec_lde (int a1, const int *a2)
2209 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2212 inline __vector unsigned int
2213 vec_lde (int a1, const unsigned int *a2)
2215 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2218 inline __vector signed int
2219 vec_lde (int a1, const long *a2)
2221 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2224 inline __vector unsigned int
2225 vec_lde (int a1, const unsigned long *a2)
2227 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2230 /* vec_lvewx */
2232 inline __vector float
2233 vec_lvewx (int a1, float *a2)
2235 return (__vector float) __builtin_altivec_lvewx (a1, (void *) a2);
2238 inline __vector signed int
2239 vec_lvewx (int a1, int *a2)
2241 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2244 inline __vector unsigned int
2245 vec_lvewx (int a1, unsigned int *a2)
2247 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2250 inline __vector signed int
2251 vec_lvewx (int a1, long *a2)
2253 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
2256 inline __vector unsigned int
2257 vec_lvewx (int a1, unsigned long *a2)
2259 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
2262 /* vec_lvehx */
2264 inline __vector signed short
2265 vec_lvehx (int a1, short *a2)
2267 return (__vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
2270 inline __vector unsigned short
2271 vec_lvehx (int a1, unsigned short *a2)
2273 return (__vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
2276 /* vec_lvebx */
2278 inline __vector signed char
2279 vec_lvebx (int a1, signed char *a2)
2281 return (__vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
2284 inline __vector unsigned char
2285 vec_lvebx (int a1, unsigned char *a2)
2287 return (__vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
2290 /* vec_ldl */
2292 inline __vector float
2293 vec_ldl (int a1, const __vector float *a2)
2295 return (__vector float) __builtin_altivec_lvxl (a1, (void *) a2);
2298 inline __vector float
2299 vec_ldl (int a1, const float *a2)
2301 return (__vector float) __builtin_altivec_lvxl (a1, (void *) a2);
2304 inline __vector bool int
2305 vec_ldl (int a1, const __vector bool int *a2)
2307 return (__vector bool int) __builtin_altivec_lvxl (a1, (void *) a2);
2310 inline __vector signed int
2311 vec_ldl (int a1, const __vector signed int *a2)
2313 return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
2316 inline __vector signed int
2317 vec_ldl (int a1, const int *a2)
2319 return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
2322 inline __vector signed int
2323 vec_ldl (int a1, const long *a2)
2325 return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
2328 inline __vector unsigned int
2329 vec_ldl (int a1, const __vector unsigned int *a2)
2331 return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
2334 inline __vector unsigned int
2335 vec_ldl (int a1, const unsigned int *a2)
2337 return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
2340 inline __vector unsigned int
2341 vec_ldl (int a1, const unsigned long *a2)
2343 return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
2346 inline __vector bool short
2347 vec_ldl (int a1, const __vector bool short *a2)
2349 return (__vector bool short) __builtin_altivec_lvxl (a1, (void *) a2);
2352 inline __vector pixel
2353 vec_ldl (int a1, const __vector pixel *a2)
2355 return (__vector pixel) __builtin_altivec_lvxl (a1, (void *) a2);
2358 inline __vector signed short
2359 vec_ldl (int a1, const __vector signed short *a2)
2361 return (__vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
2364 inline __vector signed short
2365 vec_ldl (int a1, const short *a2)
2367 return (__vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
2370 inline __vector unsigned short
2371 vec_ldl (int a1, const __vector unsigned short *a2)
2373 return (__vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
2376 inline __vector unsigned short
2377 vec_ldl (int a1, const unsigned short *a2)
2379 return (__vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
2382 inline __vector bool char
2383 vec_ldl (int a1, const __vector bool char *a2)
2385 return (__vector bool char) __builtin_altivec_lvxl (a1, (void *) a2);
2388 inline __vector signed char
2389 vec_ldl (int a1, const __vector signed char *a2)
2391 return (__vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
2394 inline __vector signed char
2395 vec_ldl (int a1, const signed char *a2)
2397 return (__vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
2400 inline __vector unsigned char
2401 vec_ldl (int a1, const __vector unsigned char *a2)
2403 return (__vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
2406 inline __vector unsigned char
2407 vec_ldl (int a1, const unsigned char *a2)
2409 return (__vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
2412 /* vec_loge */
2414 inline __vector float
2415 vec_loge (__vector float a1)
2417 return (__vector float) __builtin_altivec_vlogefp ((__vector float) a1);
2420 /* vec_lvsl */
2422 inline __vector unsigned char
2423 vec_lvsl (int a1, const volatile unsigned char *a2)
2425 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2428 inline __vector unsigned char
2429 vec_lvsl (int a1, const volatile signed char *a2)
2431 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2434 inline __vector unsigned char
2435 vec_lvsl (int a1, const volatile unsigned short *a2)
2437 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2440 inline __vector unsigned char
2441 vec_lvsl (int a1, const volatile short *a2)
2443 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2446 inline __vector unsigned char
2447 vec_lvsl (int a1, const volatile unsigned int *a2)
2449 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2452 inline __vector unsigned char
2453 vec_lvsl (int a1, const volatile int *a2)
2455 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2458 inline __vector unsigned char
2459 vec_lvsl (int a1, const volatile unsigned long *a2)
2461 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2464 inline __vector unsigned char
2465 vec_lvsl (int a1, const volatile long *a2)
2467 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2470 inline __vector unsigned char
2471 vec_lvsl (int a1, const volatile float *a2)
2473 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
2476 /* vec_lvsr */
2478 inline __vector unsigned char
2479 vec_lvsr (int a1, const volatile unsigned char *a2)
2481 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2484 inline __vector unsigned char
2485 vec_lvsr (int a1, const volatile signed char *a2)
2487 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2490 inline __vector unsigned char
2491 vec_lvsr (int a1, const volatile unsigned short *a2)
2493 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2496 inline __vector unsigned char
2497 vec_lvsr (int a1, const volatile short *a2)
2499 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2502 inline __vector unsigned char
2503 vec_lvsr (int a1, const volatile unsigned int *a2)
2505 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2508 inline __vector unsigned char
2509 vec_lvsr (int a1, const volatile int *a2)
2511 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2514 inline __vector unsigned char
2515 vec_lvsr (int a1, const volatile unsigned long *a2)
2517 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2520 inline __vector unsigned char
2521 vec_lvsr (int a1, const volatile long *a2)
2523 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2526 inline __vector unsigned char
2527 vec_lvsr (int a1, const volatile float *a2)
2529 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
2532 /* vec_madd */
2534 inline __vector float
2535 vec_madd (__vector float a1, __vector float a2, __vector float a3)
2537 return (__vector float) __builtin_altivec_vmaddfp ((__vector float) a1, (__vector float) a2, (__vector float) a3);
2540 /* vec_madds */
2542 inline __vector signed short
2543 vec_madds (__vector signed short a1, __vector signed short a2, __vector signed short a3)
2545 return (__vector signed short) __builtin_altivec_vmhaddshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3);
2548 /* vec_max */
2550 inline __vector unsigned char
2551 vec_max (__vector bool char a1, __vector unsigned char a2)
2553 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
2556 inline __vector unsigned char
2557 vec_max (__vector unsigned char a1, __vector bool char a2)
2559 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
2562 inline __vector unsigned char
2563 vec_max (__vector unsigned char a1, __vector unsigned char a2)
2565 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
2568 inline __vector signed char
2569 vec_max (__vector bool char a1, __vector signed char a2)
2571 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
2574 inline __vector signed char
2575 vec_max (__vector signed char a1, __vector bool char a2)
2577 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
2580 inline __vector signed char
2581 vec_max (__vector signed char a1, __vector signed char a2)
2583 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
2586 inline __vector unsigned short
2587 vec_max (__vector bool short a1, __vector unsigned short a2)
2589 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
2592 inline __vector unsigned short
2593 vec_max (__vector unsigned short a1, __vector bool short a2)
2595 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
2598 inline __vector unsigned short
2599 vec_max (__vector unsigned short a1, __vector unsigned short a2)
2601 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
2604 inline __vector signed short
2605 vec_max (__vector bool short a1, __vector signed short a2)
2607 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
2610 inline __vector signed short
2611 vec_max (__vector signed short a1, __vector bool short a2)
2613 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
2616 inline __vector signed short
2617 vec_max (__vector signed short a1, __vector signed short a2)
2619 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
2622 inline __vector unsigned int
2623 vec_max (__vector bool int a1, __vector unsigned int a2)
2625 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
2628 inline __vector unsigned int
2629 vec_max (__vector unsigned int a1, __vector bool int a2)
2631 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
2634 inline __vector unsigned int
2635 vec_max (__vector unsigned int a1, __vector unsigned int a2)
2637 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
2640 inline __vector signed int
2641 vec_max (__vector bool int a1, __vector signed int a2)
2643 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
2646 inline __vector signed int
2647 vec_max (__vector signed int a1, __vector bool int a2)
2649 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
2652 inline __vector signed int
2653 vec_max (__vector signed int a1, __vector signed int a2)
2655 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
2658 inline __vector float
2659 vec_max (__vector float a1, __vector float a2)
2661 return (__vector float) __builtin_altivec_vmaxfp ((__vector float) a1, (__vector float) a2);
2664 /* vec_vmaxfp */
2666 inline __vector float
2667 vec_vmaxfp (__vector float a1, __vector float a2)
2669 return (__vector float) __builtin_altivec_vmaxfp ((__vector float) a1, (__vector float) a2);
2672 /* vec_vmaxsw */
2674 inline __vector signed int
2675 vec_vmaxsw (__vector bool int a1, __vector signed int a2)
2677 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
2680 inline __vector signed int
2681 vec_vmaxsw (__vector signed int a1, __vector bool int a2)
2683 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
2686 inline __vector signed int
2687 vec_vmaxsw (__vector signed int a1, __vector signed int a2)
2689 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
2692 /* vec_vmaxuw */
2694 inline __vector unsigned int
2695 vec_vmaxuw (__vector bool int a1, __vector unsigned int a2)
2697 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
2700 inline __vector unsigned int
2701 vec_vmaxuw (__vector unsigned int a1, __vector bool int a2)
2703 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
2706 inline __vector unsigned int
2707 vec_vmaxuw (__vector unsigned int a1, __vector unsigned int a2)
2709 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
2712 /* vec_vmaxsh */
2714 inline __vector signed short
2715 vec_vmaxsh (__vector bool short a1, __vector signed short a2)
2717 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
2720 inline __vector signed short
2721 vec_vmaxsh (__vector signed short a1, __vector bool short a2)
2723 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
2726 inline __vector signed short
2727 vec_vmaxsh (__vector signed short a1, __vector signed short a2)
2729 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
2732 /* vec_vmaxuh */
2734 inline __vector unsigned short
2735 vec_vmaxuh (__vector bool short a1, __vector unsigned short a2)
2737 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
2740 inline __vector unsigned short
2741 vec_vmaxuh (__vector unsigned short a1, __vector bool short a2)
2743 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
2746 inline __vector unsigned short
2747 vec_vmaxuh (__vector unsigned short a1, __vector unsigned short a2)
2749 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
2752 /* vec_vmaxsb */
2754 inline __vector signed char
2755 vec_vmaxsb (__vector bool char a1, __vector signed char a2)
2757 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
2760 inline __vector signed char
2761 vec_vmaxsb (__vector signed char a1, __vector bool char a2)
2763 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
2766 inline __vector signed char
2767 vec_vmaxsb (__vector signed char a1, __vector signed char a2)
2769 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
2772 /* vec_vmaxub */
2774 inline __vector unsigned char
2775 vec_vmaxub (__vector bool char a1, __vector unsigned char a2)
2777 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
2780 inline __vector unsigned char
2781 vec_vmaxub (__vector unsigned char a1, __vector bool char a2)
2783 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
2786 inline __vector unsigned char
2787 vec_vmaxub (__vector unsigned char a1, __vector unsigned char a2)
2789 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
2792 /* vec_mergeh */
2794 inline __vector bool char
2795 vec_mergeh (__vector bool char a1, __vector bool char a2)
2797 return (__vector bool char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
2800 inline __vector signed char
2801 vec_mergeh (__vector signed char a1, __vector signed char a2)
2803 return (__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
2806 inline __vector unsigned char
2807 vec_mergeh (__vector unsigned char a1, __vector unsigned char a2)
2809 return (__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
2812 inline __vector bool short
2813 vec_mergeh (__vector bool short a1, __vector bool short a2)
2815 return (__vector bool short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2818 inline __vector pixel
2819 vec_mergeh (__vector pixel a1, __vector pixel a2)
2821 return (__vector pixel) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2824 inline __vector signed short
2825 vec_mergeh (__vector signed short a1, __vector signed short a2)
2827 return (__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2830 inline __vector unsigned short
2831 vec_mergeh (__vector unsigned short a1, __vector unsigned short a2)
2833 return (__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2836 inline __vector float
2837 vec_mergeh (__vector float a1, __vector float a2)
2839 return (__vector float) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2842 inline __vector bool int
2843 vec_mergeh (__vector bool int a1, __vector bool int a2)
2845 return (__vector bool int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2848 inline __vector signed int
2849 vec_mergeh (__vector signed int a1, __vector signed int a2)
2851 return (__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2854 inline __vector unsigned int
2855 vec_mergeh (__vector unsigned int a1, __vector unsigned int a2)
2857 return (__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2860 /* vec_vmrghw */
2862 inline __vector float
2863 vec_vmrghw (__vector float a1, __vector float a2)
2865 return (__vector float) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2868 inline __vector bool int
2869 vec_vmrghw (__vector bool int a1, __vector bool int a2)
2871 return (__vector bool int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2874 inline __vector signed int
2875 vec_vmrghw (__vector signed int a1, __vector signed int a2)
2877 return (__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2880 inline __vector unsigned int
2881 vec_vmrghw (__vector unsigned int a1, __vector unsigned int a2)
2883 return (__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
2886 /* vec_vmrghh */
2888 inline __vector bool short
2889 vec_vmrghh (__vector bool short a1, __vector bool short a2)
2891 return (__vector bool short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2894 inline __vector signed short
2895 vec_vmrghh (__vector signed short a1, __vector signed short a2)
2897 return (__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2900 inline __vector unsigned short
2901 vec_vmrghh (__vector unsigned short a1, __vector unsigned short a2)
2903 return (__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2906 inline __vector pixel
2907 vec_vmrghh (__vector pixel a1, __vector pixel a2)
2909 return (__vector pixel) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
2912 /* vec_vmrghb */
2914 inline __vector bool char
2915 vec_vmrghb (__vector bool char a1, __vector bool char a2)
2917 return (__vector bool char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
2920 inline __vector signed char
2921 vec_vmrghb (__vector signed char a1, __vector signed char a2)
2923 return (__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
2926 inline __vector unsigned char
2927 vec_vmrghb (__vector unsigned char a1, __vector unsigned char a2)
2929 return (__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
2932 /* vec_mergel */
2934 inline __vector bool char
2935 vec_mergel (__vector bool char a1, __vector bool char a2)
2937 return (__vector bool char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
2940 inline __vector signed char
2941 vec_mergel (__vector signed char a1, __vector signed char a2)
2943 return (__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
2946 inline __vector unsigned char
2947 vec_mergel (__vector unsigned char a1, __vector unsigned char a2)
2949 return (__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
2952 inline __vector bool short
2953 vec_mergel (__vector bool short a1, __vector bool short a2)
2955 return (__vector bool short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
2958 inline __vector pixel
2959 vec_mergel (__vector pixel a1, __vector pixel a2)
2961 return (__vector pixel) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
2964 inline __vector signed short
2965 vec_mergel (__vector signed short a1, __vector signed short a2)
2967 return (__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
2970 inline __vector unsigned short
2971 vec_mergel (__vector unsigned short a1, __vector unsigned short a2)
2973 return (__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
2976 inline __vector float
2977 vec_mergel (__vector float a1, __vector float a2)
2979 return (__vector float) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
2982 inline __vector bool int
2983 vec_mergel (__vector bool int a1, __vector bool int a2)
2985 return (__vector bool int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
2988 inline __vector signed int
2989 vec_mergel (__vector signed int a1, __vector signed int a2)
2991 return (__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
2994 inline __vector unsigned int
2995 vec_mergel (__vector unsigned int a1, __vector unsigned int a2)
2997 return (__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
3000 /* vec_vmrglw */
3002 inline __vector float
3003 vec_vmrglw (__vector float a1, __vector float a2)
3005 return (__vector float) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
3008 inline __vector signed int
3009 vec_vmrglw (__vector signed int a1, __vector signed int a2)
3011 return (__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
3014 inline __vector unsigned int
3015 vec_vmrglw (__vector unsigned int a1, __vector unsigned int a2)
3017 return (__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
3020 inline __vector bool int
3021 vec_vmrglw (__vector bool int a1, __vector bool int a2)
3023 return (__vector bool int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
3026 /* vec_vmrglh */
3028 inline __vector bool short
3029 vec_vmrglh (__vector bool short a1, __vector bool short a2)
3031 return (__vector bool short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
3034 inline __vector signed short
3035 vec_vmrglh (__vector signed short a1, __vector signed short a2)
3037 return (__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
3040 inline __vector unsigned short
3041 vec_vmrglh (__vector unsigned short a1, __vector unsigned short a2)
3043 return (__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
3046 inline __vector pixel
3047 vec_vmrglh (__vector pixel a1, __vector pixel a2)
3049 return (__vector pixel) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
3052 /* vec_vmrglb */
3054 inline __vector bool char
3055 vec_vmrglb (__vector bool char a1, __vector bool char a2)
3057 return (__vector bool char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
3060 inline __vector signed char
3061 vec_vmrglb (__vector signed char a1, __vector signed char a2)
3063 return (__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
3066 inline __vector unsigned char
3067 vec_vmrglb (__vector unsigned char a1, __vector unsigned char a2)
3069 return (__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
3072 /* vec_mfvscr */
3074 inline __vector unsigned short
3075 vec_mfvscr (void)
3077 return (__vector unsigned short) __builtin_altivec_mfvscr ();
3080 /* vec_min */
3082 inline __vector unsigned char
3083 vec_min (__vector bool char a1, __vector unsigned char a2)
3085 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
3088 inline __vector unsigned char
3089 vec_min (__vector unsigned char a1, __vector bool char a2)
3091 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
3094 inline __vector unsigned char
3095 vec_min (__vector unsigned char a1, __vector unsigned char a2)
3097 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
3100 inline __vector signed char
3101 vec_min (__vector bool char a1, __vector signed char a2)
3103 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
3106 inline __vector signed char
3107 vec_min (__vector signed char a1, __vector bool char a2)
3109 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
3112 inline __vector signed char
3113 vec_min (__vector signed char a1, __vector signed char a2)
3115 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
3118 inline __vector unsigned short
3119 vec_min (__vector bool short a1, __vector unsigned short a2)
3121 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
3124 inline __vector unsigned short
3125 vec_min (__vector unsigned short a1, __vector bool short a2)
3127 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
3130 inline __vector unsigned short
3131 vec_min (__vector unsigned short a1, __vector unsigned short a2)
3133 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
3136 inline __vector signed short
3137 vec_min (__vector bool short a1, __vector signed short a2)
3139 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
3142 inline __vector signed short
3143 vec_min (__vector signed short a1, __vector bool short a2)
3145 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
3148 inline __vector signed short
3149 vec_min (__vector signed short a1, __vector signed short a2)
3151 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
3154 inline __vector unsigned int
3155 vec_min (__vector bool int a1, __vector unsigned int a2)
3157 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
3160 inline __vector unsigned int
3161 vec_min (__vector unsigned int a1, __vector bool int a2)
3163 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
3166 inline __vector unsigned int
3167 vec_min (__vector unsigned int a1, __vector unsigned int a2)
3169 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
3172 inline __vector signed int
3173 vec_min (__vector bool int a1, __vector signed int a2)
3175 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
3178 inline __vector signed int
3179 vec_min (__vector signed int a1, __vector bool int a2)
3181 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
3184 inline __vector signed int
3185 vec_min (__vector signed int a1, __vector signed int a2)
3187 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
3190 inline __vector float
3191 vec_min (__vector float a1, __vector float a2)
3193 return (__vector float) __builtin_altivec_vminfp ((__vector float) a1, (__vector float) a2);
3196 /* vec_vminfp */
3198 inline __vector float
3199 vec_vminfp (__vector float a1, __vector float a2)
3201 return (__vector float) __builtin_altivec_vminfp ((__vector float) a1, (__vector float) a2);
3204 /* vec_vminsw */
3206 inline __vector signed int
3207 vec_vminsw (__vector bool int a1, __vector signed int a2)
3209 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
3212 inline __vector signed int
3213 vec_vminsw (__vector signed int a1, __vector bool int a2)
3215 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
3218 inline __vector signed int
3219 vec_vminsw (__vector signed int a1, __vector signed int a2)
3221 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
3224 /* vec_vminuw */
3226 inline __vector unsigned int
3227 vec_vminuw (__vector bool int a1, __vector unsigned int a2)
3229 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
3232 inline __vector unsigned int
3233 vec_vminuw (__vector unsigned int a1, __vector bool int a2)
3235 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
3238 inline __vector unsigned int
3239 vec_vminuw (__vector unsigned int a1, __vector unsigned int a2)
3241 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
3244 /* vec_vminsh */
3246 inline __vector signed short
3247 vec_vminsh (__vector bool short a1, __vector signed short a2)
3249 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
3252 inline __vector signed short
3253 vec_vminsh (__vector signed short a1, __vector bool short a2)
3255 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
3258 inline __vector signed short
3259 vec_vminsh (__vector signed short a1, __vector signed short a2)
3261 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
3264 /* vec_vminuh */
3266 inline __vector unsigned short
3267 vec_vminuh (__vector bool short a1, __vector unsigned short a2)
3269 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
3272 inline __vector unsigned short
3273 vec_vminuh (__vector unsigned short a1, __vector bool short a2)
3275 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
3278 inline __vector unsigned short
3279 vec_vminuh (__vector unsigned short a1, __vector unsigned short a2)
3281 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
3284 /* vec_vminsb */
3286 inline __vector signed char
3287 vec_vminsb (__vector bool char a1, __vector signed char a2)
3289 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
3292 inline __vector signed char
3293 vec_vminsb (__vector signed char a1, __vector bool char a2)
3295 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
3298 inline __vector signed char
3299 vec_vminsb (__vector signed char a1, __vector signed char a2)
3301 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
3304 /* vec_vminub */
3306 inline __vector unsigned char
3307 vec_vminub (__vector bool char a1, __vector unsigned char a2)
3309 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
3312 inline __vector unsigned char
3313 vec_vminub (__vector unsigned char a1, __vector bool char a2)
3315 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
3318 inline __vector unsigned char
3319 vec_vminub (__vector unsigned char a1, __vector unsigned char a2)
3321 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
3324 /* vec_mladd */
3326 inline __vector signed short
3327 vec_mladd (__vector signed short a1, __vector signed short a2, __vector signed short a3)
3329 return (__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3);
3332 inline __vector signed short
3333 vec_mladd (__vector signed short a1, __vector unsigned short a2, __vector unsigned short a3)
3335 return (__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3);
3338 inline __vector signed short
3339 vec_mladd (__vector unsigned short a1, __vector signed short a2, __vector signed short a3)
3341 return (__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3);
3344 inline __vector unsigned short
3345 vec_mladd (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned short a3)
3347 return (__vector unsigned short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3);
3350 /* vec_mradds */
3352 inline __vector signed short
3353 vec_mradds (__vector signed short a1, __vector signed short a2, __vector signed short a3)
3355 return (__vector signed short) __builtin_altivec_vmhraddshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3);
3358 /* vec_msum */
3360 inline __vector unsigned int
3361 vec_msum (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned int a3)
3363 return (__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3);
3366 inline __vector signed int
3367 vec_msum (__vector signed char a1, __vector unsigned char a2, __vector signed int a3)
3369 return (__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3);
3372 inline __vector unsigned int
3373 vec_msum (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
3375 return (__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3378 inline __vector signed int
3379 vec_msum (__vector signed short a1, __vector signed short a2, __vector signed int a3)
3381 return (__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3384 /* vec_vmsumshm */
3386 inline __vector signed int
3387 vec_vmsumshm (__vector signed short a1, __vector signed short a2, __vector signed int a3)
3389 return (__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3392 /* vec_vmsumuhm */
3394 inline __vector unsigned int
3395 vec_vmsumuhm (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
3397 return (__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3400 /* vec_vmsummbm */
3402 inline __vector signed int
3403 vec_vmsummbm (__vector signed char a1, __vector unsigned char a2, __vector signed int a3)
3405 return (__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3);
3408 /* vec_vmsumubm */
3410 inline __vector unsigned int
3411 vec_vmsumubm (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned int a3)
3413 return (__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3);
3416 /* vec_msums */
3418 inline __vector unsigned int
3419 vec_msums (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
3421 return (__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3424 inline __vector signed int
3425 vec_msums (__vector signed short a1, __vector signed short a2, __vector signed int a3)
3427 return (__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3430 /* vec_vmsumshs */
3432 inline __vector signed int
3433 vec_vmsumshs (__vector signed short a1, __vector signed short a2, __vector signed int a3)
3435 return (__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3438 /* vec_vmsumuhs */
3440 inline __vector unsigned int
3441 vec_vmsumuhs (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
3443 return (__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
3446 /* vec_mtvscr */
3448 inline void
3449 vec_mtvscr (__vector signed int a1)
3451 __builtin_altivec_mtvscr ((__vector signed int) a1);
3454 inline void
3455 vec_mtvscr (__vector unsigned int a1)
3457 __builtin_altivec_mtvscr ((__vector signed int) a1);
3460 inline void
3461 vec_mtvscr (__vector bool int a1)
3463 __builtin_altivec_mtvscr ((__vector signed int) a1);
3466 inline void
3467 vec_mtvscr (__vector signed short a1)
3469 __builtin_altivec_mtvscr ((__vector signed int) a1);
3472 inline void
3473 vec_mtvscr (__vector unsigned short a1)
3475 __builtin_altivec_mtvscr ((__vector signed int) a1);
3478 inline void
3479 vec_mtvscr (__vector bool short a1)
3481 __builtin_altivec_mtvscr ((__vector signed int) a1);
3484 inline void
3485 vec_mtvscr (__vector pixel a1)
3487 __builtin_altivec_mtvscr ((__vector signed int) a1);
3490 inline void
3491 vec_mtvscr (__vector signed char a1)
3493 __builtin_altivec_mtvscr ((__vector signed int) a1);
3496 inline void
3497 vec_mtvscr (__vector unsigned char a1)
3499 __builtin_altivec_mtvscr ((__vector signed int) a1);
3502 inline void
3503 vec_mtvscr (__vector bool char a1)
3505 __builtin_altivec_mtvscr ((__vector signed int) a1);
3508 /* vec_mule */
3510 inline __vector unsigned short
3511 vec_mule (__vector unsigned char a1, __vector unsigned char a2)
3513 return (__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2);
3516 inline __vector signed short
3517 vec_mule (__vector signed char a1, __vector signed char a2)
3519 return (__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) a1, (__vector signed char) a2);
3522 inline __vector unsigned int
3523 vec_mule (__vector unsigned short a1, __vector unsigned short a2)
3525 return (__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) a1, (__vector signed short) a2);
3528 inline __vector signed int
3529 vec_mule (__vector signed short a1, __vector signed short a2)
3531 return (__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) a1, (__vector signed short) a2);
3534 /* vec_vmulesh */
3536 inline __vector signed int
3537 vec_vmulesh (__vector signed short a1, __vector signed short a2)
3539 return (__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) a1, (__vector signed short) a2);
3542 /* vec_vmuleuh */
3544 inline __vector unsigned int
3545 vec_vmuleuh (__vector unsigned short a1, __vector unsigned short a2)
3547 return (__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) a1, (__vector signed short) a2);
3550 /* vec_vmulesb */
3552 inline __vector signed short
3553 vec_vmulesb (__vector signed char a1, __vector signed char a2)
3555 return (__vector signed short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2);
3558 /* vec_vmuleub */
3560 inline __vector unsigned short
3561 vec_vmuleub (__vector unsigned char a1, __vector unsigned char a2)
3563 return (__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2);
3566 /* vec_mulo */
3568 inline __vector unsigned short
3569 vec_mulo (__vector unsigned char a1, __vector unsigned char a2)
3571 return (__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) a1, (__vector signed char) a2);
3574 inline __vector signed short
3575 vec_mulo (__vector signed char a1, __vector signed char a2)
3577 return (__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) a1, (__vector signed char) a2);
3580 inline __vector unsigned int
3581 vec_mulo (__vector unsigned short a1, __vector unsigned short a2)
3583 return (__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) a1, (__vector signed short) a2);
3586 inline __vector signed int
3587 vec_mulo (__vector signed short a1, __vector signed short a2)
3589 return (__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) a1, (__vector signed short) a2);
3592 /* vec_vmulosh */
3594 inline __vector signed int
3595 vec_vmulosh (__vector signed short a1, __vector signed short a2)
3597 return (__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) a1, (__vector signed short) a2);
3600 /* vec_vmulouh */
3602 inline __vector unsigned int
3603 vec_vmulouh (__vector unsigned short a1, __vector unsigned short a2)
3605 return (__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) a1, (__vector signed short) a2);
3608 /* vec_vmulosb */
3610 inline __vector signed short
3611 vec_vmulosb (__vector signed char a1, __vector signed char a2)
3613 return (__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) a1, (__vector signed char) a2);
3616 /* vec_vmuloub */
3618 inline __vector unsigned short
3619 vec_vmuloub (__vector unsigned char a1, __vector unsigned char a2)
3621 return (__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) a1, (__vector signed char) a2);
3624 /* vec_nmsub */
3626 inline __vector float
3627 vec_nmsub (__vector float a1, __vector float a2, __vector float a3)
3629 return (__vector float) __builtin_altivec_vnmsubfp ((__vector float) a1, (__vector float) a2, (__vector float) a3);
3632 /* vec_nor */
3634 inline __vector float
3635 vec_nor (__vector float a1, __vector float a2)
3637 return (__vector float) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3640 inline __vector signed int
3641 vec_nor (__vector signed int a1, __vector signed int a2)
3643 return (__vector signed int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3646 inline __vector unsigned int
3647 vec_nor (__vector unsigned int a1, __vector unsigned int a2)
3649 return (__vector unsigned int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3652 inline __vector bool int
3653 vec_nor (__vector bool int a1, __vector bool int a2)
3655 return (__vector bool int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3658 inline __vector signed short
3659 vec_nor (__vector signed short a1, __vector signed short a2)
3661 return (__vector signed short) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3664 inline __vector unsigned short
3665 vec_nor (__vector unsigned short a1, __vector unsigned short a2)
3667 return (__vector unsigned short) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3670 inline __vector bool short
3671 vec_nor (__vector bool short a1, __vector bool short a2)
3673 return (__vector bool short) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3676 inline __vector signed char
3677 vec_nor (__vector signed char a1, __vector signed char a2)
3679 return (__vector signed char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3682 inline __vector unsigned char
3683 vec_nor (__vector unsigned char a1, __vector unsigned char a2)
3685 return (__vector unsigned char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3688 inline __vector bool char
3689 vec_nor (__vector bool char a1, __vector bool char a2)
3691 return (__vector bool char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
3694 /* vec_or */
3696 inline __vector float
3697 vec_or (__vector float a1, __vector float a2)
3699 return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3702 inline __vector float
3703 vec_or (__vector float a1, __vector bool int a2)
3705 return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3708 inline __vector float
3709 vec_or (__vector bool int a1, __vector float a2)
3711 return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3714 inline __vector bool int
3715 vec_or (__vector bool int a1, __vector bool int a2)
3717 return (__vector bool int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3720 inline __vector signed int
3721 vec_or (__vector bool int a1, __vector signed int a2)
3723 return (__vector signed int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3726 inline __vector signed int
3727 vec_or (__vector signed int a1, __vector bool int a2)
3729 return (__vector signed int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3732 inline __vector signed int
3733 vec_or (__vector signed int a1, __vector signed int a2)
3735 return (__vector signed int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3738 inline __vector unsigned int
3739 vec_or (__vector bool int a1, __vector unsigned int a2)
3741 return (__vector unsigned int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3744 inline __vector unsigned int
3745 vec_or (__vector unsigned int a1, __vector bool int a2)
3747 return (__vector unsigned int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3750 inline __vector unsigned int
3751 vec_or (__vector unsigned int a1, __vector unsigned int a2)
3753 return (__vector unsigned int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3756 inline __vector bool short
3757 vec_or (__vector bool short a1, __vector bool short a2)
3759 return (__vector bool short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3762 inline __vector signed short
3763 vec_or (__vector bool short a1, __vector signed short a2)
3765 return (__vector signed short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3768 inline __vector signed short
3769 vec_or (__vector signed short a1, __vector bool short a2)
3771 return (__vector signed short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3774 inline __vector signed short
3775 vec_or (__vector signed short a1, __vector signed short a2)
3777 return (__vector signed short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3780 inline __vector unsigned short
3781 vec_or (__vector bool short a1, __vector unsigned short a2)
3783 return (__vector unsigned short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3786 inline __vector unsigned short
3787 vec_or (__vector unsigned short a1, __vector bool short a2)
3789 return (__vector unsigned short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3792 inline __vector unsigned short
3793 vec_or (__vector unsigned short a1, __vector unsigned short a2)
3795 return (__vector unsigned short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3798 inline __vector signed char
3799 vec_or (__vector bool char a1, __vector signed char a2)
3801 return (__vector signed char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3804 inline __vector bool char
3805 vec_or (__vector bool char a1, __vector bool char a2)
3807 return (__vector bool char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3810 inline __vector signed char
3811 vec_or (__vector signed char a1, __vector bool char a2)
3813 return (__vector signed char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3816 inline __vector signed char
3817 vec_or (__vector signed char a1, __vector signed char a2)
3819 return (__vector signed char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3822 inline __vector unsigned char
3823 vec_or (__vector bool char a1, __vector unsigned char a2)
3825 return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3828 inline __vector unsigned char
3829 vec_or (__vector unsigned char a1, __vector bool char a2)
3831 return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3834 inline __vector unsigned char
3835 vec_or (__vector unsigned char a1, __vector unsigned char a2)
3837 return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
3840 /* vec_pack */
3842 inline __vector signed char
3843 vec_pack (__vector signed short a1, __vector signed short a2)
3845 return (__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
3848 inline __vector unsigned char
3849 vec_pack (__vector unsigned short a1, __vector unsigned short a2)
3851 return (__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
3854 inline __vector bool char
3855 vec_pack (__vector bool short a1, __vector bool short a2)
3857 return (__vector bool char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
3860 inline __vector signed short
3861 vec_pack (__vector signed int a1, __vector signed int a2)
3863 return (__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
3866 inline __vector unsigned short
3867 vec_pack (__vector unsigned int a1, __vector unsigned int a2)
3869 return (__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
3872 inline __vector bool short
3873 vec_pack (__vector bool int a1, __vector bool int a2)
3875 return (__vector bool short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
3878 /* vec_vpkuwum */
3880 inline __vector bool short
3881 vec_vpkuwum (__vector bool int a1, __vector bool int a2)
3883 return (__vector bool short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
3886 inline __vector signed short
3887 vec_vpkuwum (__vector signed int a1, __vector signed int a2)
3889 return (__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
3892 inline __vector unsigned short
3893 vec_vpkuwum (__vector unsigned int a1, __vector unsigned int a2)
3895 return (__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
3898 /* vec_vpkuhum */
3900 inline __vector bool char
3901 vec_vpkuhum (__vector bool short a1, __vector bool short a2)
3903 return (__vector bool char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
3906 inline __vector signed char
3907 vec_vpkuhum (__vector signed short a1, __vector signed short a2)
3909 return (__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
3912 inline __vector unsigned char
3913 vec_vpkuhum (__vector unsigned short a1, __vector unsigned short a2)
3915 return (__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
3918 /* vec_packpx */
3920 inline __vector pixel
3921 vec_packpx (__vector unsigned int a1, __vector unsigned int a2)
3923 return (__vector pixel) __builtin_altivec_vpkpx ((__vector signed int) a1, (__vector signed int) a2);
3926 /* vec_packs */
3928 inline __vector unsigned char
3929 vec_packs (__vector unsigned short a1, __vector unsigned short a2)
3931 return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2);
3934 inline __vector signed char
3935 vec_packs (__vector signed short a1, __vector signed short a2)
3937 return (__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) a1, (__vector signed short) a2);
3940 inline __vector unsigned short
3941 vec_packs (__vector unsigned int a1, __vector unsigned int a2)
3943 return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2);
3946 inline __vector signed short
3947 vec_packs (__vector signed int a1, __vector signed int a2)
3949 return (__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) a1, (__vector signed int) a2);
3952 /* vec_vpkswss */
3954 inline __vector signed short
3955 vec_vpkswss (__vector signed int a1, __vector signed int a2)
3957 return (__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) a1, (__vector signed int) a2);
3960 /* vec_vpkuwus */
3962 inline __vector unsigned short
3963 vec_vpkuwus (__vector unsigned int a1, __vector unsigned int a2)
3965 return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2);
3968 /* vec_vpkshss */
3970 inline __vector signed char
3971 vec_vpkshss (__vector signed short a1, __vector signed short a2)
3973 return (__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) a1, (__vector signed short) a2);
3976 /* vec_vpkuhus */
3978 inline __vector unsigned char
3979 vec_vpkuhus (__vector unsigned short a1, __vector unsigned short a2)
3981 return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2);
3984 /* vec_packsu */
3986 inline __vector unsigned char
3987 vec_packsu (__vector unsigned short a1, __vector unsigned short a2)
3989 return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2);
3992 inline __vector unsigned char
3993 vec_packsu (__vector signed short a1, __vector signed short a2)
3995 return (__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) a1, (__vector signed short) a2);
3998 inline __vector unsigned short
3999 vec_packsu (__vector unsigned int a1, __vector unsigned int a2)
4001 return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2);
4004 inline __vector unsigned short
4005 vec_packsu (__vector signed int a1, __vector signed int a2)
4007 return (__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) a1, (__vector signed int) a2);
4010 /* vec_vpkswus */
4012 inline __vector unsigned short
4013 vec_vpkswus (__vector signed int a1, __vector signed int a2)
4015 return (__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) a1, (__vector signed int) a2);
4018 /* vec_vpkshus */
4020 inline __vector unsigned char
4021 vec_vpkshus (__vector signed short a1, __vector signed short a2)
4023 return (__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) a1, (__vector signed short) a2);
4026 /* vec_perm */
4028 inline __vector float
4029 vec_perm (__vector float a1, __vector float a2, __vector unsigned char a3)
4031 return (__vector float) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4034 inline __vector signed int
4035 vec_perm (__vector signed int a1, __vector signed int a2, __vector unsigned char a3)
4037 return (__vector signed int) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4040 inline __vector unsigned int
4041 vec_perm (__vector unsigned int a1, __vector unsigned int a2, __vector unsigned char a3)
4043 return (__vector unsigned int) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4046 inline __vector bool int
4047 vec_perm (__vector bool int a1, __vector bool int a2, __vector unsigned char a3)
4049 return (__vector bool int) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4052 inline __vector signed short
4053 vec_perm (__vector signed short a1, __vector signed short a2, __vector unsigned char a3)
4055 return (__vector signed short) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4058 inline __vector unsigned short
4059 vec_perm (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned char a3)
4061 return (__vector unsigned short) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4064 inline __vector bool short
4065 vec_perm (__vector bool short a1, __vector bool short a2, __vector unsigned char a3)
4067 return (__vector bool short) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4070 inline __vector pixel
4071 vec_perm (__vector pixel a1, __vector pixel a2, __vector unsigned char a3)
4073 return (__vector pixel) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4076 inline __vector signed char
4077 vec_perm (__vector signed char a1, __vector signed char a2, __vector unsigned char a3)
4079 return (__vector signed char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4082 inline __vector unsigned char
4083 vec_perm (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned char a3)
4085 return (__vector unsigned char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4088 inline __vector bool char
4089 vec_perm (__vector bool char a1, __vector bool char a2, __vector unsigned char a3)
4091 return (__vector bool char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
4094 /* vec_re */
4096 inline __vector float
4097 vec_re (__vector float a1)
4099 return (__vector float) __builtin_altivec_vrefp ((__vector float) a1);
4102 /* vec_rl */
4104 inline __vector signed char
4105 vec_rl (__vector signed char a1, __vector unsigned char a2)
4107 return (__vector signed char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2);
4110 inline __vector unsigned char
4111 vec_rl (__vector unsigned char a1, __vector unsigned char a2)
4113 return (__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2);
4116 inline __vector signed short
4117 vec_rl (__vector signed short a1, __vector unsigned short a2)
4119 return (__vector signed short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2);
4122 inline __vector unsigned short
4123 vec_rl (__vector unsigned short a1, __vector unsigned short a2)
4125 return (__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2);
4128 inline __vector signed int
4129 vec_rl (__vector signed int a1, __vector unsigned int a2)
4131 return (__vector signed int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
4134 inline __vector unsigned int
4135 vec_rl (__vector unsigned int a1, __vector unsigned int a2)
4137 return (__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
4140 /* vec_vrlw */
4142 inline __vector signed int
4143 vec_vrlw (__vector signed int a1, __vector unsigned int a2)
4145 return (__vector signed int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
4148 inline __vector unsigned int
4149 vec_vrlw (__vector unsigned int a1, __vector unsigned int a2)
4151 return (__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
4154 /* vec_vrlh */
4156 inline __vector signed short
4157 vec_vrlh (__vector signed short a1, __vector unsigned short a2)
4159 return (__vector signed short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2);
4162 inline __vector unsigned short
4163 vec_vrlh (__vector unsigned short a1, __vector unsigned short a2)
4165 return (__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2);
4168 /* vec_vrlb */
4170 inline __vector signed char
4171 vec_vrlb (__vector signed char a1, __vector unsigned char a2)
4173 return (__vector signed char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2);
4176 inline __vector unsigned char
4177 vec_vrlb (__vector unsigned char a1, __vector unsigned char a2)
4179 return (__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2);
4182 /* vec_round */
4184 inline __vector float
4185 vec_round (__vector float a1)
4187 return (__vector float) __builtin_altivec_vrfin ((__vector float) a1);
4190 /* vec_rsqrte */
4192 inline __vector float
4193 vec_rsqrte (__vector float a1)
4195 return (__vector float) __builtin_altivec_vrsqrtefp ((__vector float) a1);
4198 /* vec_sel */
4200 inline __vector float
4201 vec_sel (__vector float a1, __vector float a2, __vector bool int a3)
4203 return (__vector float) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4206 inline __vector float
4207 vec_sel (__vector float a1, __vector float a2, __vector unsigned int a3)
4209 return (__vector float) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4212 inline __vector signed int
4213 vec_sel (__vector signed int a1, __vector signed int a2, __vector bool int a3)
4215 return (__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4218 inline __vector signed int
4219 vec_sel (__vector signed int a1, __vector signed int a2, __vector unsigned int a3)
4221 return (__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4224 inline __vector unsigned int
4225 vec_sel (__vector unsigned int a1, __vector unsigned int a2, __vector bool int a3)
4227 return (__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4230 inline __vector unsigned int
4231 vec_sel (__vector unsigned int a1, __vector unsigned int a2, __vector unsigned int a3)
4233 return (__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4236 inline __vector bool int
4237 vec_sel (__vector bool int a1, __vector bool int a2, __vector bool int a3)
4239 return (__vector bool int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4242 inline __vector bool int
4243 vec_sel (__vector bool int a1, __vector bool int a2, __vector unsigned int a3)
4245 return (__vector bool int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4248 inline __vector signed short
4249 vec_sel (__vector signed short a1, __vector signed short a2, __vector bool short a3)
4251 return (__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4254 inline __vector signed short
4255 vec_sel (__vector signed short a1, __vector signed short a2, __vector unsigned short a3)
4257 return (__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4260 inline __vector unsigned short
4261 vec_sel (__vector unsigned short a1, __vector unsigned short a2, __vector bool short a3)
4263 return (__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4266 inline __vector unsigned short
4267 vec_sel (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned short a3)
4269 return (__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4272 inline __vector bool short
4273 vec_sel (__vector bool short a1, __vector bool short a2, __vector bool short a3)
4275 return (__vector bool short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4278 inline __vector bool short
4279 vec_sel (__vector bool short a1, __vector bool short a2, __vector unsigned short a3)
4281 return (__vector bool short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4284 inline __vector signed char
4285 vec_sel (__vector signed char a1, __vector signed char a2, __vector bool char a3)
4287 return (__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4290 inline __vector signed char
4291 vec_sel (__vector signed char a1, __vector signed char a2, __vector unsigned char a3)
4293 return (__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4296 inline __vector unsigned char
4297 vec_sel (__vector unsigned char a1, __vector unsigned char a2, __vector bool char a3)
4299 return (__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4302 inline __vector unsigned char
4303 vec_sel (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned char a3)
4305 return (__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4308 inline __vector bool char
4309 vec_sel (__vector bool char a1, __vector bool char a2, __vector bool char a3)
4311 return (__vector bool char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4314 inline __vector bool char
4315 vec_sel (__vector bool char a1, __vector bool char a2, __vector unsigned char a3)
4317 return (__vector bool char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
4320 /* vec_sl */
4322 inline __vector signed char
4323 vec_sl (__vector signed char a1, __vector unsigned char a2)
4325 return (__vector signed char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2);
4328 inline __vector unsigned char
4329 vec_sl (__vector unsigned char a1, __vector unsigned char a2)
4331 return (__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2);
4334 inline __vector signed short
4335 vec_sl (__vector signed short a1, __vector unsigned short a2)
4337 return (__vector signed short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2);
4340 inline __vector unsigned short
4341 vec_sl (__vector unsigned short a1, __vector unsigned short a2)
4343 return (__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2);
4346 inline __vector signed int
4347 vec_sl (__vector signed int a1, __vector unsigned int a2)
4349 return (__vector signed int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
4352 inline __vector unsigned int
4353 vec_sl (__vector unsigned int a1, __vector unsigned int a2)
4355 return (__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
4358 /* vec_vslw */
4360 inline __vector signed int
4361 vec_vslw (__vector signed int a1, __vector unsigned int a2)
4363 return (__vector signed int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
4366 inline __vector unsigned int
4367 vec_vslw (__vector unsigned int a1, __vector unsigned int a2)
4369 return (__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
4372 /* vec_vslh */
4374 inline __vector signed short
4375 vec_vslh (__vector signed short a1, __vector unsigned short a2)
4377 return (__vector signed short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2);
4380 inline __vector unsigned short
4381 vec_vslh (__vector unsigned short a1, __vector unsigned short a2)
4383 return (__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2);
4386 /* vec_vslb */
4388 inline __vector signed char
4389 vec_vslb (__vector signed char a1, __vector unsigned char a2)
4391 return (__vector signed char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2);
4394 inline __vector unsigned char
4395 vec_vslb (__vector unsigned char a1, __vector unsigned char a2)
4397 return (__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2);
4400 /* vec_sld */
4402 inline __vector float
4403 vec_sld (__vector float a1, __vector float a2, const int a3)
4405 return (__vector float) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4408 inline __vector signed int
4409 vec_sld (__vector signed int a1, __vector signed int a2, const int a3)
4411 return (__vector signed int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4414 inline __vector unsigned int
4415 vec_sld (__vector unsigned int a1, __vector unsigned int a2, const int a3)
4417 return (__vector unsigned int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4420 inline __vector bool int
4421 vec_sld (__vector bool int a1, __vector bool int a2, const int a3)
4423 return (__vector bool int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4426 inline __vector signed short
4427 vec_sld (__vector signed short a1, __vector signed short a2, const int a3)
4429 return (__vector signed short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4432 inline __vector unsigned short
4433 vec_sld (__vector unsigned short a1, __vector unsigned short a2, const int a3)
4435 return (__vector unsigned short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4438 inline __vector bool short
4439 vec_sld (__vector bool short a1, __vector bool short a2, const int a3)
4441 return (__vector bool short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4444 inline __vector pixel
4445 vec_sld (__vector pixel a1, __vector pixel a2, const int a3)
4447 return (__vector pixel) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4450 inline __vector signed char
4451 vec_sld (__vector signed char a1, __vector signed char a2, const int a3)
4453 return (__vector signed char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4456 inline __vector unsigned char
4457 vec_sld (__vector unsigned char a1, __vector unsigned char a2, const int a3)
4459 return (__vector unsigned char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4462 inline __vector bool char
4463 vec_sld (__vector bool char a1, __vector bool char a2, const int a3)
4465 return (__vector bool char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
4468 /* vec_sll */
4470 inline __vector signed int
4471 vec_sll (__vector signed int a1, __vector unsigned int a2)
4473 return (__vector signed int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4476 inline __vector signed int
4477 vec_sll (__vector signed int a1, __vector unsigned short a2)
4479 return (__vector signed int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4482 inline __vector signed int
4483 vec_sll (__vector signed int a1, __vector unsigned char a2)
4485 return (__vector signed int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4488 inline __vector unsigned int
4489 vec_sll (__vector unsigned int a1, __vector unsigned int a2)
4491 return (__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4494 inline __vector unsigned int
4495 vec_sll (__vector unsigned int a1, __vector unsigned short a2)
4497 return (__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4500 inline __vector unsigned int
4501 vec_sll (__vector unsigned int a1, __vector unsigned char a2)
4503 return (__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4506 inline __vector bool int
4507 vec_sll (__vector bool int a1, __vector unsigned int a2)
4509 return (__vector bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4512 inline __vector bool int
4513 vec_sll (__vector bool int a1, __vector unsigned short a2)
4515 return (__vector bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4518 inline __vector bool int
4519 vec_sll (__vector bool int a1, __vector unsigned char a2)
4521 return (__vector bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4524 inline __vector signed short
4525 vec_sll (__vector signed short a1, __vector unsigned int a2)
4527 return (__vector signed short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4530 inline __vector signed short
4531 vec_sll (__vector signed short a1, __vector unsigned short a2)
4533 return (__vector signed short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4536 inline __vector signed short
4537 vec_sll (__vector signed short a1, __vector unsigned char a2)
4539 return (__vector signed short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4542 inline __vector unsigned short
4543 vec_sll (__vector unsigned short a1, __vector unsigned int a2)
4545 return (__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4548 inline __vector unsigned short
4549 vec_sll (__vector unsigned short a1, __vector unsigned short a2)
4551 return (__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4554 inline __vector unsigned short
4555 vec_sll (__vector unsigned short a1, __vector unsigned char a2)
4557 return (__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4560 inline __vector bool short
4561 vec_sll (__vector bool short a1, __vector unsigned int a2)
4563 return (__vector bool short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4566 inline __vector bool short
4567 vec_sll (__vector bool short a1, __vector unsigned short a2)
4569 return (__vector bool short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4572 inline __vector bool short
4573 vec_sll (__vector bool short a1, __vector unsigned char a2)
4575 return (__vector bool short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4578 inline __vector pixel
4579 vec_sll (__vector pixel a1, __vector unsigned int a2)
4581 return (__vector pixel) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4584 inline __vector pixel
4585 vec_sll (__vector pixel a1, __vector unsigned short a2)
4587 return (__vector pixel) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4590 inline __vector pixel
4591 vec_sll (__vector pixel a1, __vector unsigned char a2)
4593 return (__vector pixel) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4596 inline __vector signed char
4597 vec_sll (__vector signed char a1, __vector unsigned int a2)
4599 return (__vector signed char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4602 inline __vector signed char
4603 vec_sll (__vector signed char a1, __vector unsigned short a2)
4605 return (__vector signed char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4608 inline __vector signed char
4609 vec_sll (__vector signed char a1, __vector unsigned char a2)
4611 return (__vector signed char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4614 inline __vector unsigned char
4615 vec_sll (__vector unsigned char a1, __vector unsigned int a2)
4617 return (__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4620 inline __vector unsigned char
4621 vec_sll (__vector unsigned char a1, __vector unsigned short a2)
4623 return (__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4626 inline __vector unsigned char
4627 vec_sll (__vector unsigned char a1, __vector unsigned char a2)
4629 return (__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4632 inline __vector bool char
4633 vec_sll (__vector bool char a1, __vector unsigned int a2)
4635 return (__vector bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4638 inline __vector bool char
4639 vec_sll (__vector bool char a1, __vector unsigned short a2)
4641 return (__vector bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4644 inline __vector bool char
4645 vec_sll (__vector bool char a1, __vector unsigned char a2)
4647 return (__vector bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
4650 /* vec_slo */
4652 inline __vector float
4653 vec_slo (__vector float a1, __vector signed char a2)
4655 return (__vector float) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4658 inline __vector float
4659 vec_slo (__vector float a1, __vector unsigned char a2)
4661 return (__vector float) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4664 inline __vector signed int
4665 vec_slo (__vector signed int a1, __vector signed char a2)
4667 return (__vector signed int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4670 inline __vector signed int
4671 vec_slo (__vector signed int a1, __vector unsigned char a2)
4673 return (__vector signed int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4676 inline __vector unsigned int
4677 vec_slo (__vector unsigned int a1, __vector signed char a2)
4679 return (__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4682 inline __vector unsigned int
4683 vec_slo (__vector unsigned int a1, __vector unsigned char a2)
4685 return (__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4688 inline __vector signed short
4689 vec_slo (__vector signed short a1, __vector signed char a2)
4691 return (__vector signed short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4694 inline __vector signed short
4695 vec_slo (__vector signed short a1, __vector unsigned char a2)
4697 return (__vector signed short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4700 inline __vector unsigned short
4701 vec_slo (__vector unsigned short a1, __vector signed char a2)
4703 return (__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4706 inline __vector unsigned short
4707 vec_slo (__vector unsigned short a1, __vector unsigned char a2)
4709 return (__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4712 inline __vector pixel
4713 vec_slo (__vector pixel a1, __vector signed char a2)
4715 return (__vector pixel) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4718 inline __vector pixel
4719 vec_slo (__vector pixel a1, __vector unsigned char a2)
4721 return (__vector pixel) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4724 inline __vector signed char
4725 vec_slo (__vector signed char a1, __vector signed char a2)
4727 return (__vector signed char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4730 inline __vector signed char
4731 vec_slo (__vector signed char a1, __vector unsigned char a2)
4733 return (__vector signed char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4736 inline __vector unsigned char
4737 vec_slo (__vector unsigned char a1, __vector signed char a2)
4739 return (__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4742 inline __vector unsigned char
4743 vec_slo (__vector unsigned char a1, __vector unsigned char a2)
4745 return (__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
4748 /* vec_splat */
4750 inline __vector signed char
4751 vec_splat (__vector signed char a1, const int a2)
4753 return (__vector signed char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
4756 inline __vector unsigned char
4757 vec_splat (__vector unsigned char a1, const int a2)
4759 return (__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
4762 inline __vector bool char
4763 vec_splat (__vector bool char a1, const int a2)
4765 return (__vector bool char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
4768 inline __vector signed short
4769 vec_splat (__vector signed short a1, const int a2)
4771 return (__vector signed short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4774 inline __vector unsigned short
4775 vec_splat (__vector unsigned short a1, const int a2)
4777 return (__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4780 inline __vector bool short
4781 vec_splat (__vector bool short a1, const int a2)
4783 return (__vector bool short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4786 inline __vector pixel
4787 vec_splat (__vector pixel a1, const int a2)
4789 return (__vector pixel) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4792 inline __vector float
4793 vec_splat (__vector float a1, const int a2)
4795 return (__vector float) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4798 inline __vector signed int
4799 vec_splat (__vector signed int a1, const int a2)
4801 return (__vector signed int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4804 inline __vector unsigned int
4805 vec_splat (__vector unsigned int a1, const int a2)
4807 return (__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4810 inline __vector bool int
4811 vec_splat (__vector bool int a1, const int a2)
4813 return (__vector bool int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4816 /* vec_vspltw */
4818 inline __vector float
4819 vec_vspltw (__vector float a1, const int a2)
4821 return (__vector float) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4824 inline __vector signed int
4825 vec_vspltw (__vector signed int a1, const int a2)
4827 return (__vector signed int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4830 inline __vector unsigned int
4831 vec_vspltw (__vector unsigned int a1, const int a2)
4833 return (__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4836 inline __vector bool int
4837 vec_vspltw (__vector bool int a1, const int a2)
4839 return (__vector bool int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
4842 /* vec_vsplth */
4844 inline __vector bool short
4845 vec_vsplth (__vector bool short a1, const int a2)
4847 return (__vector bool short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4850 inline __vector signed short
4851 vec_vsplth (__vector signed short a1, const int a2)
4853 return (__vector signed short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4856 inline __vector unsigned short
4857 vec_vsplth (__vector unsigned short a1, const int a2)
4859 return (__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4862 inline __vector pixel
4863 vec_vsplth (__vector pixel a1, const int a2)
4865 return (__vector pixel) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
4868 /* vec_vspltb */
4870 inline __vector signed char
4871 vec_vspltb (__vector signed char a1, const int a2)
4873 return (__vector signed char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
4876 inline __vector unsigned char
4877 vec_vspltb (__vector unsigned char a1, const int a2)
4879 return (__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
4882 inline __vector bool char
4883 vec_vspltb (__vector bool char a1, const int a2)
4885 return (__vector bool char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
4888 /* vec_splat_s8 */
4890 inline __vector signed char
4891 vec_splat_s8 (const int a1)
4893 return (__vector signed char) __builtin_altivec_vspltisb (a1);
4896 /* vec_splat_s16 */
4898 inline __vector signed short
4899 vec_splat_s16 (const int a1)
4901 return (__vector signed short) __builtin_altivec_vspltish (a1);
4904 /* vec_splat_s32 */
4906 inline __vector signed int
4907 vec_splat_s32 (const int a1)
4909 return (__vector signed int) __builtin_altivec_vspltisw (a1);
4912 /* vec_splat_u8 */
4914 inline __vector unsigned char
4915 vec_splat_u8 (const int a1)
4917 return (__vector unsigned char) __builtin_altivec_vspltisb (a1);
4920 /* vec_splat_u16 */
4922 inline __vector unsigned short
4923 vec_splat_u16 (const int a1)
4925 return (__vector unsigned short) __builtin_altivec_vspltish (a1);
4928 /* vec_splat_u32 */
4930 inline __vector unsigned int
4931 vec_splat_u32 (const int a1)
4933 return (__vector unsigned int) __builtin_altivec_vspltisw (a1);
4936 /* vec_sr */
4938 inline __vector signed char
4939 vec_sr (__vector signed char a1, __vector unsigned char a2)
4941 return (__vector signed char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2);
4944 inline __vector unsigned char
4945 vec_sr (__vector unsigned char a1, __vector unsigned char a2)
4947 return (__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2);
4950 inline __vector signed short
4951 vec_sr (__vector signed short a1, __vector unsigned short a2)
4953 return (__vector signed short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2);
4956 inline __vector unsigned short
4957 vec_sr (__vector unsigned short a1, __vector unsigned short a2)
4959 return (__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2);
4962 inline __vector signed int
4963 vec_sr (__vector signed int a1, __vector unsigned int a2)
4965 return (__vector signed int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
4968 inline __vector unsigned int
4969 vec_sr (__vector unsigned int a1, __vector unsigned int a2)
4971 return (__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
4974 /* vec_vsrw */
4976 inline __vector signed int
4977 vec_vsrw (__vector signed int a1, __vector unsigned int a2)
4979 return (__vector signed int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
4982 inline __vector unsigned int
4983 vec_vsrw (__vector unsigned int a1, __vector unsigned int a2)
4985 return (__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
4988 /* vec_vsrh */
4990 inline __vector signed short
4991 vec_vsrh (__vector signed short a1, __vector unsigned short a2)
4993 return (__vector signed short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2);
4996 inline __vector unsigned short
4997 vec_vsrh (__vector unsigned short a1, __vector unsigned short a2)
4999 return (__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2);
5002 /* vec_vsrb */
5004 inline __vector signed char
5005 vec_vsrb (__vector signed char a1, __vector unsigned char a2)
5007 return (__vector signed char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2);
5010 inline __vector unsigned char
5011 vec_vsrb (__vector unsigned char a1, __vector unsigned char a2)
5013 return (__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2);
5016 /* vec_sra */
5018 inline __vector signed char
5019 vec_sra (__vector signed char a1, __vector unsigned char a2)
5021 return (__vector signed char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2);
5024 inline __vector unsigned char
5025 vec_sra (__vector unsigned char a1, __vector unsigned char a2)
5027 return (__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2);
5030 inline __vector signed short
5031 vec_sra (__vector signed short a1, __vector unsigned short a2)
5033 return (__vector signed short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2);
5036 inline __vector unsigned short
5037 vec_sra (__vector unsigned short a1, __vector unsigned short a2)
5039 return (__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2);
5042 inline __vector signed int
5043 vec_sra (__vector signed int a1, __vector unsigned int a2)
5045 return (__vector signed int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
5048 inline __vector unsigned int
5049 vec_sra (__vector unsigned int a1, __vector unsigned int a2)
5051 return (__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
5054 /* vec_vsraw */
5056 inline __vector signed int
5057 vec_vsraw (__vector signed int a1, __vector unsigned int a2)
5059 return (__vector signed int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
5062 inline __vector unsigned int
5063 vec_vsraw (__vector unsigned int a1, __vector unsigned int a2)
5065 return (__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
5068 /* vec_vsrah */
5070 inline __vector signed short
5071 vec_vsrah (__vector signed short a1, __vector unsigned short a2)
5073 return (__vector signed short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2);
5076 inline __vector unsigned short
5077 vec_vsrah (__vector unsigned short a1, __vector unsigned short a2)
5079 return (__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2);
5082 /* vec_vsrab */
5084 inline __vector signed char
5085 vec_vsrab (__vector signed char a1, __vector unsigned char a2)
5087 return (__vector signed char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2);
5090 inline __vector unsigned char
5091 vec_vsrab (__vector unsigned char a1, __vector unsigned char a2)
5093 return (__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2);
5096 /* vec_srl */
5098 inline __vector signed int
5099 vec_srl (__vector signed int a1, __vector unsigned int a2)
5101 return (__vector signed int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5104 inline __vector signed int
5105 vec_srl (__vector signed int a1, __vector unsigned short a2)
5107 return (__vector signed int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5110 inline __vector signed int
5111 vec_srl (__vector signed int a1, __vector unsigned char a2)
5113 return (__vector signed int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5116 inline __vector unsigned int
5117 vec_srl (__vector unsigned int a1, __vector unsigned int a2)
5119 return (__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5122 inline __vector unsigned int
5123 vec_srl (__vector unsigned int a1, __vector unsigned short a2)
5125 return (__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5128 inline __vector unsigned int
5129 vec_srl (__vector unsigned int a1, __vector unsigned char a2)
5131 return (__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5134 inline __vector bool int
5135 vec_srl (__vector bool int a1, __vector unsigned int a2)
5137 return (__vector bool int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5140 inline __vector bool int
5141 vec_srl (__vector bool int a1, __vector unsigned short a2)
5143 return (__vector bool int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5146 inline __vector bool int
5147 vec_srl (__vector bool int a1, __vector unsigned char a2)
5149 return (__vector bool int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5152 inline __vector signed short
5153 vec_srl (__vector signed short a1, __vector unsigned int a2)
5155 return (__vector signed short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5158 inline __vector signed short
5159 vec_srl (__vector signed short a1, __vector unsigned short a2)
5161 return (__vector signed short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5164 inline __vector signed short
5165 vec_srl (__vector signed short a1, __vector unsigned char a2)
5167 return (__vector signed short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5170 inline __vector unsigned short
5171 vec_srl (__vector unsigned short a1, __vector unsigned int a2)
5173 return (__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5176 inline __vector unsigned short
5177 vec_srl (__vector unsigned short a1, __vector unsigned short a2)
5179 return (__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5182 inline __vector unsigned short
5183 vec_srl (__vector unsigned short a1, __vector unsigned char a2)
5185 return (__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5188 inline __vector bool short
5189 vec_srl (__vector bool short a1, __vector unsigned int a2)
5191 return (__vector bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5194 inline __vector bool short
5195 vec_srl (__vector bool short a1, __vector unsigned short a2)
5197 return (__vector bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5200 inline __vector bool short
5201 vec_srl (__vector bool short a1, __vector unsigned char a2)
5203 return (__vector bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5206 inline __vector pixel
5207 vec_srl (__vector pixel a1, __vector unsigned int a2)
5209 return (__vector pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5212 inline __vector pixel
5213 vec_srl (__vector pixel a1, __vector unsigned short a2)
5215 return (__vector pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5218 inline __vector pixel
5219 vec_srl (__vector pixel a1, __vector unsigned char a2)
5221 return (__vector pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5224 inline __vector signed char
5225 vec_srl (__vector signed char a1, __vector unsigned int a2)
5227 return (__vector signed char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5230 inline __vector signed char
5231 vec_srl (__vector signed char a1, __vector unsigned short a2)
5233 return (__vector signed char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5236 inline __vector signed char
5237 vec_srl (__vector signed char a1, __vector unsigned char a2)
5239 return (__vector signed char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5242 inline __vector unsigned char
5243 vec_srl (__vector unsigned char a1, __vector unsigned int a2)
5245 return (__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5248 inline __vector unsigned char
5249 vec_srl (__vector unsigned char a1, __vector unsigned short a2)
5251 return (__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5254 inline __vector unsigned char
5255 vec_srl (__vector unsigned char a1, __vector unsigned char a2)
5257 return (__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5260 inline __vector bool char
5261 vec_srl (__vector bool char a1, __vector unsigned int a2)
5263 return (__vector bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5266 inline __vector bool char
5267 vec_srl (__vector bool char a1, __vector unsigned short a2)
5269 return (__vector bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5272 inline __vector bool char
5273 vec_srl (__vector bool char a1, __vector unsigned char a2)
5275 return (__vector bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
5278 /* vec_sro */
5280 inline __vector float
5281 vec_sro (__vector float a1, __vector signed char a2)
5283 return (__vector float) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5286 inline __vector float
5287 vec_sro (__vector float a1, __vector unsigned char a2)
5289 return (__vector float) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5292 inline __vector signed int
5293 vec_sro (__vector signed int a1, __vector signed char a2)
5295 return (__vector signed int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5298 inline __vector signed int
5299 vec_sro (__vector signed int a1, __vector unsigned char a2)
5301 return (__vector signed int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5304 inline __vector unsigned int
5305 vec_sro (__vector unsigned int a1, __vector signed char a2)
5307 return (__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5310 inline __vector unsigned int
5311 vec_sro (__vector unsigned int a1, __vector unsigned char a2)
5313 return (__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5316 inline __vector signed short
5317 vec_sro (__vector signed short a1, __vector signed char a2)
5319 return (__vector signed short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5322 inline __vector signed short
5323 vec_sro (__vector signed short a1, __vector unsigned char a2)
5325 return (__vector signed short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5328 inline __vector unsigned short
5329 vec_sro (__vector unsigned short a1, __vector signed char a2)
5331 return (__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5334 inline __vector unsigned short
5335 vec_sro (__vector unsigned short a1, __vector unsigned char a2)
5337 return (__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5340 inline __vector pixel
5341 vec_sro (__vector pixel a1, __vector signed char a2)
5343 return (__vector pixel) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5346 inline __vector pixel
5347 vec_sro (__vector pixel a1, __vector unsigned char a2)
5349 return (__vector pixel) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5352 inline __vector signed char
5353 vec_sro (__vector signed char a1, __vector signed char a2)
5355 return (__vector signed char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5358 inline __vector signed char
5359 vec_sro (__vector signed char a1, __vector unsigned char a2)
5361 return (__vector signed char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5364 inline __vector unsigned char
5365 vec_sro (__vector unsigned char a1, __vector signed char a2)
5367 return (__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5370 inline __vector unsigned char
5371 vec_sro (__vector unsigned char a1, __vector unsigned char a2)
5373 return (__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
5376 /* vec_st */
5378 inline void
5379 vec_st (__vector float a1, int a2, __vector float *a3)
5381 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5384 inline void
5385 vec_st (__vector float a1, int a2, float *a3)
5387 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5390 inline void
5391 vec_st (__vector signed int a1, int a2, __vector signed int *a3)
5393 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5396 inline void
5397 vec_st (__vector signed int a1, int a2, int *a3)
5399 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5402 inline void
5403 vec_st (__vector unsigned int a1, int a2, __vector unsigned int *a3)
5405 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5408 inline void
5409 vec_st (__vector unsigned int a1, int a2, unsigned int *a3)
5411 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5414 inline void
5415 vec_st (__vector bool int a1, int a2, __vector bool int *a3)
5417 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5420 inline void
5421 vec_st (__vector bool int a1, int a2, unsigned int *a3)
5423 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5426 inline void
5427 vec_st (__vector bool int a1, int a2, int *a3)
5429 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5432 inline void
5433 vec_st (__vector signed short a1, int a2, __vector signed short *a3)
5435 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5438 inline void
5439 vec_st (__vector signed short a1, int a2, short *a3)
5441 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5444 inline void
5445 vec_st (__vector unsigned short a1, int a2, __vector unsigned short *a3)
5447 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5450 inline void
5451 vec_st (__vector unsigned short a1, int a2, unsigned short *a3)
5453 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5456 inline void
5457 vec_st (__vector bool short a1, int a2, __vector bool short *a3)
5459 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5462 inline void
5463 vec_st (__vector bool short a1, int a2, unsigned short *a3)
5465 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5468 inline void
5469 vec_st (__vector pixel a1, int a2, __vector pixel *a3)
5471 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5474 inline void
5475 vec_st (__vector pixel a1, int a2, unsigned short *a3)
5477 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5480 inline void
5481 vec_st (__vector pixel a1, int a2, short *a3)
5483 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5486 inline void
5487 vec_st (__vector bool short a1, int a2, short *a3)
5489 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5492 inline void
5493 vec_st (__vector signed char a1, int a2, __vector signed char *a3)
5495 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5498 inline void
5499 vec_st (__vector signed char a1, int a2, signed char *a3)
5501 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5504 inline void
5505 vec_st (__vector unsigned char a1, int a2, __vector unsigned char *a3)
5507 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5510 inline void
5511 vec_st (__vector unsigned char a1, int a2, unsigned char *a3)
5513 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5516 inline void
5517 vec_st (__vector bool char a1, int a2, __vector bool char *a3)
5519 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5522 inline void
5523 vec_st (__vector bool char a1, int a2, unsigned char *a3)
5525 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5528 inline void
5529 vec_st (__vector bool char a1, int a2, signed char *a3)
5531 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
5534 /* vec_ste */
5536 inline void
5537 vec_ste (__vector signed char a1, int a2, signed char *a3)
5539 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5542 inline void
5543 vec_ste (__vector unsigned char a1, int a2, unsigned char *a3)
5545 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5548 inline void
5549 vec_ste (__vector bool char a1, int a2, signed char *a3)
5551 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5554 inline void
5555 vec_ste (__vector bool char a1, int a2, unsigned char *a3)
5557 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5560 inline void
5561 vec_ste (__vector signed short a1, int a2, short *a3)
5563 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5566 inline void
5567 vec_ste (__vector unsigned short a1, int a2, unsigned short *a3)
5569 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5572 inline void
5573 vec_ste (__vector bool short a1, int a2, short *a3)
5575 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5578 inline void
5579 vec_ste (__vector bool short a1, int a2, unsigned short *a3)
5581 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5584 inline void
5585 vec_ste (__vector pixel a1, int a2, short *a3)
5587 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5590 inline void
5591 vec_ste (__vector pixel a1, int a2, unsigned short *a3)
5593 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5596 inline void
5597 vec_ste (__vector float a1, int a2, float *a3)
5599 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5602 inline void
5603 vec_ste (__vector signed int a1, int a2, int *a3)
5605 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5608 inline void
5609 vec_ste (__vector unsigned int a1, int a2, unsigned int *a3)
5611 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5614 inline void
5615 vec_ste (__vector bool int a1, int a2, int *a3)
5617 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5620 inline void
5621 vec_ste (__vector bool int a1, int a2, unsigned int *a3)
5623 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5626 /* vec_stvewx */
5628 inline void
5629 vec_stvewx (__vector float a1, int a2, float *a3)
5631 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5634 inline void
5635 vec_stvewx (__vector signed int a1, int a2, int *a3)
5637 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5640 inline void
5641 vec_stvewx (__vector unsigned int a1, int a2, unsigned int *a3)
5643 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5646 inline void
5647 vec_stvewx (__vector bool int a1, int a2, int *a3)
5649 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5652 inline void
5653 vec_stvewx (__vector bool int a1, int a2, unsigned int *a3)
5655 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
5658 /* vec_stvehx */
5660 inline void
5661 vec_stvehx (__vector signed short a1, int a2, short *a3)
5663 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5666 inline void
5667 vec_stvehx (__vector unsigned short a1, int a2, unsigned short *a3)
5669 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5672 inline void
5673 vec_stvehx (__vector bool short a1, int a2, short *a3)
5675 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5678 inline void
5679 vec_stvehx (__vector bool short a1, int a2, unsigned short *a3)
5681 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5684 inline void
5685 vec_stvehx (__vector pixel a1, int a2, short *a3)
5687 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5690 inline void
5691 vec_stvehx (__vector pixel a1, int a2, unsigned short *a3)
5693 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
5696 /* vec_stvebx */
5698 inline void
5699 vec_stvebx (__vector signed char a1, int a2, signed char *a3)
5701 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5704 inline void
5705 vec_stvebx (__vector unsigned char a1, int a2, unsigned char *a3)
5707 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5710 inline void
5711 vec_stvebx (__vector bool char a1, int a2, signed char *a3)
5713 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5716 inline void
5717 vec_stvebx (__vector bool char a1, int a2, unsigned char *a3)
5719 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
5722 /* vec_stl */
5724 inline void
5725 vec_stl (__vector float a1, int a2, __vector float *a3)
5727 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5730 inline void
5731 vec_stl (__vector float a1, int a2, float *a3)
5733 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5736 inline void
5737 vec_stl (__vector signed int a1, int a2, __vector signed int *a3)
5739 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5742 inline void
5743 vec_stl (__vector signed int a1, int a2, int *a3)
5745 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5748 inline void
5749 vec_stl (__vector unsigned int a1, int a2, __vector unsigned int *a3)
5751 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5754 inline void
5755 vec_stl (__vector unsigned int a1, int a2, unsigned int *a3)
5757 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5760 inline void
5761 vec_stl (__vector bool int a1, int a2, __vector bool int *a3)
5763 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5766 inline void
5767 vec_stl (__vector bool int a1, int a2, unsigned int *a3)
5769 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5772 inline void
5773 vec_stl (__vector bool int a1, int a2, int *a3)
5775 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5778 inline void
5779 vec_stl (__vector signed short a1, int a2, __vector signed short *a3)
5781 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5784 inline void
5785 vec_stl (__vector signed short a1, int a2, short *a3)
5787 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5790 inline void
5791 vec_stl (__vector unsigned short a1, int a2, __vector unsigned short *a3)
5793 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5796 inline void
5797 vec_stl (__vector unsigned short a1, int a2, unsigned short *a3)
5799 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5802 inline void
5803 vec_stl (__vector bool short a1, int a2, __vector bool short *a3)
5805 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5808 inline void
5809 vec_stl (__vector bool short a1, int a2, unsigned short *a3)
5811 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5814 inline void
5815 vec_stl (__vector bool short a1, int a2, short *a3)
5817 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5820 inline void
5821 vec_stl (__vector pixel a1, int a2, __vector pixel *a3)
5823 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5826 inline void
5827 vec_stl (__vector pixel a1, int a2, unsigned short *a3)
5829 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5832 inline void
5833 vec_stl (__vector pixel a1, int a2, short *a3)
5835 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5838 inline void
5839 vec_stl (__vector signed char a1, int a2, __vector signed char *a3)
5841 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5844 inline void
5845 vec_stl (__vector signed char a1, int a2, signed char *a3)
5847 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5850 inline void
5851 vec_stl (__vector unsigned char a1, int a2, __vector unsigned char *a3)
5853 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5856 inline void
5857 vec_stl (__vector unsigned char a1, int a2, unsigned char *a3)
5859 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5862 inline void
5863 vec_stl (__vector bool char a1, int a2, __vector bool char *a3)
5865 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5868 inline void
5869 vec_stl (__vector bool char a1, int a2, unsigned char *a3)
5871 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5874 inline void
5875 vec_stl (__vector bool char a1, int a2, signed char *a3)
5877 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
5880 /* vec_sub */
5882 inline __vector signed char
5883 vec_sub (__vector bool char a1, __vector signed char a2)
5885 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
5888 inline __vector signed char
5889 vec_sub (__vector signed char a1, __vector bool char a2)
5891 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
5894 inline __vector signed char
5895 vec_sub (__vector signed char a1, __vector signed char a2)
5897 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
5900 inline __vector unsigned char
5901 vec_sub (__vector bool char a1, __vector unsigned char a2)
5903 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
5906 inline __vector unsigned char
5907 vec_sub (__vector unsigned char a1, __vector bool char a2)
5909 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
5912 inline __vector unsigned char
5913 vec_sub (__vector unsigned char a1, __vector unsigned char a2)
5915 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
5918 inline __vector signed short
5919 vec_sub (__vector bool short a1, __vector signed short a2)
5921 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
5924 inline __vector signed short
5925 vec_sub (__vector signed short a1, __vector bool short a2)
5927 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
5930 inline __vector signed short
5931 vec_sub (__vector signed short a1, __vector signed short a2)
5933 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
5936 inline __vector unsigned short
5937 vec_sub (__vector bool short a1, __vector unsigned short a2)
5939 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
5942 inline __vector unsigned short
5943 vec_sub (__vector unsigned short a1, __vector bool short a2)
5945 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
5948 inline __vector unsigned short
5949 vec_sub (__vector unsigned short a1, __vector unsigned short a2)
5951 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
5954 inline __vector signed int
5955 vec_sub (__vector bool int a1, __vector signed int a2)
5957 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
5960 inline __vector signed int
5961 vec_sub (__vector signed int a1, __vector bool int a2)
5963 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
5966 inline __vector signed int
5967 vec_sub (__vector signed int a1, __vector signed int a2)
5969 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
5972 inline __vector unsigned int
5973 vec_sub (__vector bool int a1, __vector unsigned int a2)
5975 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
5978 inline __vector unsigned int
5979 vec_sub (__vector unsigned int a1, __vector bool int a2)
5981 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
5984 inline __vector unsigned int
5985 vec_sub (__vector unsigned int a1, __vector unsigned int a2)
5987 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
5990 inline __vector float
5991 vec_sub (__vector float a1, __vector float a2)
5993 return (__vector float) __builtin_altivec_vsubfp ((__vector float) a1, (__vector float) a2);
5996 /* vec_vsubfp */
5998 inline __vector float
5999 vec_vsubfp (__vector float a1, __vector float a2)
6001 return (__vector float) __builtin_altivec_vsubfp ((__vector float) a1, (__vector float) a2);
6004 /* vec_vsubuwm */
6006 inline __vector signed int
6007 vec_vsubuwm (__vector bool int a1, __vector signed int a2)
6009 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
6012 inline __vector signed int
6013 vec_vsubuwm (__vector signed int a1, __vector bool int a2)
6015 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
6018 inline __vector signed int
6019 vec_vsubuwm (__vector signed int a1, __vector signed int a2)
6021 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
6024 inline __vector unsigned int
6025 vec_vsubuwm (__vector bool int a1, __vector unsigned int a2)
6027 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
6030 inline __vector unsigned int
6031 vec_vsubuwm (__vector unsigned int a1, __vector bool int a2)
6033 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
6036 inline __vector unsigned int
6037 vec_vsubuwm (__vector unsigned int a1, __vector unsigned int a2)
6039 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
6042 /* vec_vsubuhm */
6044 inline __vector signed short
6045 vec_vsubuhm (__vector bool short a1, __vector signed short a2)
6047 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
6050 inline __vector signed short
6051 vec_vsubuhm (__vector signed short a1, __vector bool short a2)
6053 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
6056 inline __vector signed short
6057 vec_vsubuhm (__vector signed short a1, __vector signed short a2)
6059 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
6062 inline __vector unsigned short
6063 vec_vsubuhm (__vector bool short a1, __vector unsigned short a2)
6065 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
6068 inline __vector unsigned short
6069 vec_vsubuhm (__vector unsigned short a1, __vector bool short a2)
6071 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
6074 inline __vector unsigned short
6075 vec_vsubuhm (__vector unsigned short a1, __vector unsigned short a2)
6077 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
6080 /* vec_vsububm */
6082 inline __vector signed char
6083 vec_vsububm (__vector bool char a1, __vector signed char a2)
6085 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
6088 inline __vector signed char
6089 vec_vsububm (__vector signed char a1, __vector bool char a2)
6091 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
6094 inline __vector signed char
6095 vec_vsububm (__vector signed char a1, __vector signed char a2)
6097 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
6100 inline __vector unsigned char
6101 vec_vsububm (__vector bool char a1, __vector unsigned char a2)
6103 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
6106 inline __vector unsigned char
6107 vec_vsububm (__vector unsigned char a1, __vector bool char a2)
6109 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
6112 inline __vector unsigned char
6113 vec_vsububm (__vector unsigned char a1, __vector unsigned char a2)
6115 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
6118 /* vec_subc */
6120 inline __vector unsigned int
6121 vec_subc (__vector unsigned int a1, __vector unsigned int a2)
6123 return (__vector unsigned int) __builtin_altivec_vsubcuw ((__vector signed int) a1, (__vector signed int) a2);
6126 /* vec_subs */
6128 inline __vector unsigned char
6129 vec_subs (__vector bool char a1, __vector unsigned char a2)
6131 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
6134 inline __vector unsigned char
6135 vec_subs (__vector unsigned char a1, __vector bool char a2)
6137 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
6140 inline __vector unsigned char
6141 vec_subs (__vector unsigned char a1, __vector unsigned char a2)
6143 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
6146 inline __vector signed char
6147 vec_subs (__vector bool char a1, __vector signed char a2)
6149 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
6152 inline __vector signed char
6153 vec_subs (__vector signed char a1, __vector bool char a2)
6155 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
6158 inline __vector signed char
6159 vec_subs (__vector signed char a1, __vector signed char a2)
6161 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
6164 inline __vector unsigned short
6165 vec_subs (__vector bool short a1, __vector unsigned short a2)
6167 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
6170 inline __vector unsigned short
6171 vec_subs (__vector unsigned short a1, __vector bool short a2)
6173 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
6176 inline __vector unsigned short
6177 vec_subs (__vector unsigned short a1, __vector unsigned short a2)
6179 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
6182 inline __vector signed short
6183 vec_subs (__vector bool short a1, __vector signed short a2)
6185 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
6188 inline __vector signed short
6189 vec_subs (__vector signed short a1, __vector bool short a2)
6191 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
6194 inline __vector signed short
6195 vec_subs (__vector signed short a1, __vector signed short a2)
6197 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
6200 inline __vector unsigned int
6201 vec_subs (__vector bool int a1, __vector unsigned int a2)
6203 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
6206 inline __vector unsigned int
6207 vec_subs (__vector unsigned int a1, __vector bool int a2)
6209 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
6212 inline __vector unsigned int
6213 vec_subs (__vector unsigned int a1, __vector unsigned int a2)
6215 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
6218 inline __vector signed int
6219 vec_subs (__vector bool int a1, __vector signed int a2)
6221 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
6224 inline __vector signed int
6225 vec_subs (__vector signed int a1, __vector bool int a2)
6227 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
6230 inline __vector signed int
6231 vec_subs (__vector signed int a1, __vector signed int a2)
6233 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
6236 /* vec_vsubsws */
6238 inline __vector signed int
6239 vec_vsubsws (__vector bool int a1, __vector signed int a2)
6241 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
6244 inline __vector signed int
6245 vec_vsubsws (__vector signed int a1, __vector bool int a2)
6247 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
6250 inline __vector signed int
6251 vec_vsubsws (__vector signed int a1, __vector signed int a2)
6253 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
6256 /* vec_vsubuws */
6258 inline __vector unsigned int
6259 vec_vsubuws (__vector bool int a1, __vector unsigned int a2)
6261 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
6264 inline __vector unsigned int
6265 vec_vsubuws (__vector unsigned int a1, __vector bool int a2)
6267 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
6270 inline __vector unsigned int
6271 vec_vsubuws (__vector unsigned int a1, __vector unsigned int a2)
6273 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
6276 /* vec_vsubshs */
6278 inline __vector signed short
6279 vec_vsubshs (__vector bool short a1, __vector signed short a2)
6281 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
6284 inline __vector signed short
6285 vec_vsubshs (__vector signed short a1, __vector bool short a2)
6287 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
6290 inline __vector signed short
6291 vec_vsubshs (__vector signed short a1, __vector signed short a2)
6293 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
6296 /* vec_vsubuhs */
6298 inline __vector unsigned short
6299 vec_vsubuhs (__vector bool short a1, __vector unsigned short a2)
6301 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
6304 inline __vector unsigned short
6305 vec_vsubuhs (__vector unsigned short a1, __vector bool short a2)
6307 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
6310 inline __vector unsigned short
6311 vec_vsubuhs (__vector unsigned short a1, __vector unsigned short a2)
6313 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
6316 /* vec_vsubsbs */
6318 inline __vector signed char
6319 vec_vsubsbs (__vector bool char a1, __vector signed char a2)
6321 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
6324 inline __vector signed char
6325 vec_vsubsbs (__vector signed char a1, __vector bool char a2)
6327 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
6330 inline __vector signed char
6331 vec_vsubsbs (__vector signed char a1, __vector signed char a2)
6333 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
6336 /* vec_vsububs */
6338 inline __vector unsigned char
6339 vec_vsububs (__vector bool char a1, __vector unsigned char a2)
6341 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
6344 inline __vector unsigned char
6345 vec_vsububs (__vector unsigned char a1, __vector bool char a2)
6347 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
6350 inline __vector unsigned char
6351 vec_vsububs (__vector unsigned char a1, __vector unsigned char a2)
6353 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
6356 /* vec_sum4s */
6358 inline __vector unsigned int
6359 vec_sum4s (__vector unsigned char a1, __vector unsigned int a2)
6361 return (__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) a1, (__vector signed int) a2);
6364 inline __vector signed int
6365 vec_sum4s (__vector signed char a1, __vector signed int a2)
6367 return (__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) a1, (__vector signed int) a2);
6370 inline __vector signed int
6371 vec_sum4s (__vector signed short a1, __vector signed int a2)
6373 return (__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) a1, (__vector signed int) a2);
6376 /* vec_vsum4shs */
6378 inline __vector signed int
6379 vec_vsum4shs (__vector signed short a1, __vector signed int a2)
6381 return (__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) a1, (__vector signed int) a2);
6384 /* vec_vsum4sbs */
6386 inline __vector signed int
6387 vec_vsum4sbs (__vector signed char a1, __vector signed int a2)
6389 return (__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) a1, (__vector signed int) a2);
6392 /* vec_vsum4ubs */
6394 inline __vector unsigned int
6395 vec_vsum4ubs (__vector unsigned char a1, __vector unsigned int a2)
6397 return (__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) a1, (__vector signed int) a2);
6400 /* vec_sum2s */
6402 inline __vector signed int
6403 vec_sum2s (__vector signed int a1, __vector signed int a2)
6405 return (__vector signed int) __builtin_altivec_vsum2sws ((__vector signed int) a1, (__vector signed int) a2);
6408 /* vec_sums */
6410 inline __vector signed int
6411 vec_sums (__vector signed int a1, __vector signed int a2)
6413 return (__vector signed int) __builtin_altivec_vsumsws ((__vector signed int) a1, (__vector signed int) a2);
6416 /* vec_trunc */
6418 inline __vector float
6419 vec_trunc (__vector float a1)
6421 return (__vector float) __builtin_altivec_vrfiz ((__vector float) a1);
6424 /* vec_unpackh */
6426 inline __vector signed short
6427 vec_unpackh (__vector signed char a1)
6429 return (__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
6432 inline __vector bool short
6433 vec_unpackh (__vector bool char a1)
6435 return (__vector bool short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
6438 inline __vector signed int
6439 vec_unpackh (__vector signed short a1)
6441 return (__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
6444 inline __vector bool int
6445 vec_unpackh (__vector bool short a1)
6447 return (__vector bool int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
6450 inline __vector unsigned int
6451 vec_unpackh (__vector pixel a1)
6453 return (__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) a1);
6456 /* vec_vupkhsh */
6458 inline __vector bool int
6459 vec_vupkhsh (__vector bool short a1)
6461 return (__vector bool int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
6464 inline __vector signed int
6465 vec_vupkhsh (__vector signed short a1)
6467 return (__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
6470 /* vec_vupkhpx */
6472 inline __vector unsigned int
6473 vec_vupkhpx (__vector pixel a1)
6475 return (__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) a1);
6478 /* vec_vupkhsb */
6480 inline __vector bool short
6481 vec_vupkhsb (__vector bool char a1)
6483 return (__vector bool short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
6486 inline __vector signed short
6487 vec_vupkhsb (__vector signed char a1)
6489 return (__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
6492 /* vec_unpackl */
6494 inline __vector signed short
6495 vec_unpackl (__vector signed char a1)
6497 return (__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) a1);
6500 inline __vector bool short
6501 vec_unpackl (__vector bool char a1)
6503 return (__vector bool short) __builtin_altivec_vupklsb ((__vector signed char) a1);
6506 inline __vector unsigned int
6507 vec_unpackl (__vector pixel a1)
6509 return (__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) a1);
6512 inline __vector signed int
6513 vec_unpackl (__vector signed short a1)
6515 return (__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) a1);
6518 inline __vector bool int
6519 vec_unpackl (__vector bool short a1)
6521 return (__vector bool int) __builtin_altivec_vupklsh ((__vector signed short) a1);
6524 /* vec_vupklpx */
6526 inline __vector unsigned int
6527 vec_vupklpx (__vector pixel a1)
6529 return (__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) a1);
6532 /* vec_upklsh */
6534 inline __vector bool int
6535 vec_vupklsh (__vector bool short a1)
6537 return (__vector bool int) __builtin_altivec_vupklsh ((__vector signed short) a1);
6540 inline __vector signed int
6541 vec_vupklsh (__vector signed short a1)
6543 return (__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) a1);
6546 /* vec_vupklsb */
6548 inline __vector bool short
6549 vec_vupklsb (__vector bool char a1)
6551 return (__vector bool short) __builtin_altivec_vupklsb ((__vector signed char) a1);
6554 inline __vector signed short
6555 vec_vupklsb (__vector signed char a1)
6557 return (__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) a1);
6560 /* vec_xor */
6562 inline __vector float
6563 vec_xor (__vector float a1, __vector float a2)
6565 return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6568 inline __vector float
6569 vec_xor (__vector float a1, __vector bool int a2)
6571 return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6574 inline __vector float
6575 vec_xor (__vector bool int a1, __vector float a2)
6577 return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6580 inline __vector bool int
6581 vec_xor (__vector bool int a1, __vector bool int a2)
6583 return (__vector bool int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6586 inline __vector signed int
6587 vec_xor (__vector bool int a1, __vector signed int a2)
6589 return (__vector signed int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6592 inline __vector signed int
6593 vec_xor (__vector signed int a1, __vector bool int a2)
6595 return (__vector signed int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6598 inline __vector signed int
6599 vec_xor (__vector signed int a1, __vector signed int a2)
6601 return (__vector signed int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6604 inline __vector unsigned int
6605 vec_xor (__vector bool int a1, __vector unsigned int a2)
6607 return (__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6610 inline __vector unsigned int
6611 vec_xor (__vector unsigned int a1, __vector bool int a2)
6613 return (__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6616 inline __vector unsigned int
6617 vec_xor (__vector unsigned int a1, __vector unsigned int a2)
6619 return (__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6622 inline __vector bool short
6623 vec_xor (__vector bool short a1, __vector bool short a2)
6625 return (__vector bool short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6628 inline __vector signed short
6629 vec_xor (__vector bool short a1, __vector signed short a2)
6631 return (__vector signed short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6634 inline __vector signed short
6635 vec_xor (__vector signed short a1, __vector bool short a2)
6637 return (__vector signed short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6640 inline __vector signed short
6641 vec_xor (__vector signed short a1, __vector signed short a2)
6643 return (__vector signed short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6646 inline __vector unsigned short
6647 vec_xor (__vector bool short a1, __vector unsigned short a2)
6649 return (__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6652 inline __vector unsigned short
6653 vec_xor (__vector unsigned short a1, __vector bool short a2)
6655 return (__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6658 inline __vector unsigned short
6659 vec_xor (__vector unsigned short a1, __vector unsigned short a2)
6661 return (__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6664 inline __vector signed char
6665 vec_xor (__vector bool char a1, __vector signed char a2)
6667 return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6670 inline __vector bool char
6671 vec_xor (__vector bool char a1, __vector bool char a2)
6673 return (__vector bool char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6676 inline __vector signed char
6677 vec_xor (__vector signed char a1, __vector bool char a2)
6679 return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6682 inline __vector signed char
6683 vec_xor (__vector signed char a1, __vector signed char a2)
6685 return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6688 inline __vector unsigned char
6689 vec_xor (__vector bool char a1, __vector unsigned char a2)
6691 return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6694 inline __vector unsigned char
6695 vec_xor (__vector unsigned char a1, __vector bool char a2)
6697 return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6700 inline __vector unsigned char
6701 vec_xor (__vector unsigned char a1, __vector unsigned char a2)
6703 return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
6706 /* vec_all_eq */
6708 inline int
6709 vec_all_eq (__vector signed char a1, __vector bool char a2)
6711 return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, (__vector signed char) a2);
6714 inline int
6715 vec_all_eq (__vector signed char a1, __vector signed char a2)
6717 return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, a2);
6720 inline int
6721 vec_all_eq (__vector unsigned char a1, __vector bool char a2)
6723 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6726 inline int
6727 vec_all_eq (__vector unsigned char a1, __vector unsigned char a2)
6729 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6732 inline int
6733 vec_all_eq (__vector bool char a1, __vector bool char a2)
6735 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6738 inline int
6739 vec_all_eq (__vector bool char a1, __vector unsigned char a2)
6741 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6744 inline int
6745 vec_all_eq (__vector bool char a1, __vector signed char a2)
6747 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6750 inline int
6751 vec_all_eq (__vector signed short a1, __vector bool short a2)
6753 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6756 inline int
6757 vec_all_eq (__vector signed short a1, __vector signed short a2)
6759 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6762 inline int
6763 vec_all_eq (__vector unsigned short a1, __vector bool short a2)
6765 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6768 inline int
6769 vec_all_eq (__vector unsigned short a1, __vector unsigned short a2)
6771 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6774 inline int
6775 vec_all_eq (__vector bool short a1, __vector bool short a2)
6777 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6780 inline int
6781 vec_all_eq (__vector bool short a1, __vector unsigned short a2)
6783 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6786 inline int
6787 vec_all_eq (__vector bool short a1, __vector signed short a2)
6789 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6792 inline int
6793 vec_all_eq (__vector pixel a1, __vector pixel a2)
6795 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
6798 inline int
6799 vec_all_eq (__vector signed int a1, __vector bool int a2)
6801 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6804 inline int
6805 vec_all_eq (__vector signed int a1, __vector signed int a2)
6807 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6810 inline int
6811 vec_all_eq (__vector unsigned int a1, __vector bool int a2)
6813 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6816 inline int
6817 vec_all_eq (__vector unsigned int a1, __vector unsigned int a2)
6819 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6822 inline int
6823 vec_all_eq (__vector bool int a1, __vector bool int a2)
6825 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6828 inline int
6829 vec_all_eq (__vector bool int a1, __vector unsigned int a2)
6831 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6834 inline int
6835 vec_all_eq (__vector bool int a1, __vector signed int a2)
6837 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
6840 inline int
6841 vec_all_eq (__vector float a1, __vector float a2)
6843 return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a2);
6846 /* vec_all_ge */
6848 inline int
6849 vec_all_ge (__vector bool char a1, __vector unsigned char a2)
6851 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
6854 inline int
6855 vec_all_ge (__vector unsigned char a1, __vector bool char a2)
6857 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
6860 inline int
6861 vec_all_ge (__vector unsigned char a1, __vector unsigned char a2)
6863 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
6866 inline int
6867 vec_all_ge (__vector bool char a1, __vector signed char a2)
6869 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
6872 inline int
6873 vec_all_ge (__vector signed char a1, __vector bool char a2)
6875 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
6878 inline int
6879 vec_all_ge (__vector signed char a1, __vector signed char a2)
6881 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
6884 inline int
6885 vec_all_ge (__vector bool short a1, __vector unsigned short a2)
6887 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
6890 inline int
6891 vec_all_ge (__vector unsigned short a1, __vector bool short a2)
6893 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
6896 inline int
6897 vec_all_ge (__vector unsigned short a1, __vector unsigned short a2)
6899 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
6902 inline int
6903 vec_all_ge (__vector signed short a1, __vector signed short a2)
6905 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
6908 inline int
6909 vec_all_ge (__vector bool short a1, __vector signed short a2)
6911 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
6914 inline int
6915 vec_all_ge (__vector signed short a1, __vector bool short a2)
6917 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
6920 inline int
6921 vec_all_ge (__vector bool int a1, __vector unsigned int a2)
6923 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
6926 inline int
6927 vec_all_ge (__vector unsigned int a1, __vector bool int a2)
6929 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
6932 inline int
6933 vec_all_ge (__vector unsigned int a1, __vector unsigned int a2)
6935 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
6938 inline int
6939 vec_all_ge (__vector bool int a1, __vector signed int a2)
6941 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
6944 inline int
6945 vec_all_ge (__vector signed int a1, __vector bool int a2)
6947 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
6950 inline int
6951 vec_all_ge (__vector signed int a1, __vector signed int a2)
6953 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
6956 inline int
6957 vec_all_ge (__vector float a1, __vector float a2)
6959 return __builtin_altivec_vcmpgefp_p (__CR6_LT, a1, a2);
6962 /* vec_all_gt */
6964 inline int
6965 vec_all_gt (__vector bool char a1, __vector unsigned char a2)
6967 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6970 inline int
6971 vec_all_gt (__vector unsigned char a1, __vector bool char a2)
6973 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6976 inline int
6977 vec_all_gt (__vector unsigned char a1, __vector unsigned char a2)
6979 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6982 inline int
6983 vec_all_gt (__vector bool char a1, __vector signed char a2)
6985 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6988 inline int
6989 vec_all_gt (__vector signed char a1, __vector bool char a2)
6991 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
6994 inline int
6995 vec_all_gt (__vector signed char a1, __vector signed char a2)
6997 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
7000 inline int
7001 vec_all_gt (__vector bool short a1, __vector unsigned short a2)
7003 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
7006 inline int
7007 vec_all_gt (__vector unsigned short a1, __vector bool short a2)
7009 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
7012 inline int
7013 vec_all_gt (__vector unsigned short a1, __vector unsigned short a2)
7015 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
7018 inline int
7019 vec_all_gt (__vector bool short a1, __vector signed short a2)
7021 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
7024 inline int
7025 vec_all_gt (__vector signed short a1, __vector bool short a2)
7027 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
7030 inline int
7031 vec_all_gt (__vector signed short a1, __vector signed short a2)
7033 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
7036 inline int
7037 vec_all_gt (__vector bool int a1, __vector unsigned int a2)
7039 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
7042 inline int
7043 vec_all_gt (__vector unsigned int a1, __vector bool int a2)
7045 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
7048 inline int
7049 vec_all_gt (__vector unsigned int a1, __vector unsigned int a2)
7051 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
7054 inline int
7055 vec_all_gt (__vector bool int a1, __vector signed int a2)
7057 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
7060 inline int
7061 vec_all_gt (__vector signed int a1, __vector bool int a2)
7063 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
7066 inline int
7067 vec_all_gt (__vector signed int a1, __vector signed int a2)
7069 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
7072 inline int
7073 vec_all_gt (__vector float a1, __vector float a2)
7075 return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a1, a2);
7078 /* vec_all_in */
7080 inline int
7081 vec_all_in (__vector float a1, __vector float a2)
7083 return __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2);
7086 /* vec_all_le */
7088 inline int
7089 vec_all_le (__vector bool char a1, __vector unsigned char a2)
7091 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7094 inline int
7095 vec_all_le (__vector unsigned char a1, __vector bool char a2)
7097 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7100 inline int
7101 vec_all_le (__vector unsigned char a1, __vector unsigned char a2)
7103 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7106 inline int
7107 vec_all_le (__vector bool char a1, __vector signed char a2)
7109 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7112 inline int
7113 vec_all_le (__vector signed char a1, __vector bool char a2)
7115 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7118 inline int
7119 vec_all_le (__vector signed char a1, __vector signed char a2)
7121 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7124 inline int
7125 vec_all_le (__vector bool short a1, __vector unsigned short a2)
7127 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7130 inline int
7131 vec_all_le (__vector unsigned short a1, __vector bool short a2)
7133 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7136 inline int
7137 vec_all_le (__vector unsigned short a1, __vector unsigned short a2)
7139 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7142 inline int
7143 vec_all_le (__vector bool short a1, __vector signed short a2)
7145 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7148 inline int
7149 vec_all_le (__vector signed short a1, __vector bool short a2)
7151 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7154 inline int
7155 vec_all_le (__vector signed short a1, __vector signed short a2)
7157 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7160 inline int
7161 vec_all_le (__vector bool int a1, __vector unsigned int a2)
7163 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7166 inline int
7167 vec_all_le (__vector unsigned int a1, __vector bool int a2)
7169 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7172 inline int
7173 vec_all_le (__vector unsigned int a1, __vector unsigned int a2)
7175 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7178 inline int
7179 vec_all_le (__vector bool int a1, __vector signed int a2)
7181 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7184 inline int
7185 vec_all_le (__vector signed int a1, __vector bool int a2)
7187 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7190 inline int
7191 vec_all_le (__vector signed int a1, __vector signed int a2)
7193 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7196 inline int
7197 vec_all_le (__vector float a1, __vector float a2)
7199 return __builtin_altivec_vcmpgefp_p (__CR6_LT, a2, a1);
7202 /* vec_all_lt */
7204 inline int
7205 vec_all_lt (__vector bool char a1, __vector unsigned char a2)
7207 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
7210 inline int
7211 vec_all_lt (__vector unsigned char a1, __vector bool char a2)
7213 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
7216 inline int
7217 vec_all_lt (__vector unsigned char a1, __vector unsigned char a2)
7219 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
7222 inline int
7223 vec_all_lt (__vector bool char a1, __vector signed char a2)
7225 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
7228 inline int
7229 vec_all_lt (__vector signed char a1, __vector bool char a2)
7231 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
7234 inline int
7235 vec_all_lt (__vector signed char a1, __vector signed char a2)
7237 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
7240 inline int
7241 vec_all_lt (__vector bool short a1, __vector unsigned short a2)
7243 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
7246 inline int
7247 vec_all_lt (__vector unsigned short a1, __vector bool short a2)
7249 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
7252 inline int
7253 vec_all_lt (__vector unsigned short a1, __vector unsigned short a2)
7255 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
7258 inline int
7259 vec_all_lt (__vector bool short a1, __vector signed short a2)
7261 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
7264 inline int
7265 vec_all_lt (__vector signed short a1, __vector bool short a2)
7267 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
7270 inline int
7271 vec_all_lt (__vector signed short a1, __vector signed short a2)
7273 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
7276 inline int
7277 vec_all_lt (__vector bool int a1, __vector unsigned int a2)
7279 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1);
7282 inline int
7283 vec_all_lt (__vector unsigned int a1, __vector bool int a2)
7285 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1);
7288 inline int
7289 vec_all_lt (__vector unsigned int a1, __vector unsigned int a2)
7291 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1);
7294 inline int
7295 vec_all_lt (__vector bool int a1, __vector signed int a2)
7297 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1);
7300 inline int
7301 vec_all_lt (__vector signed int a1, __vector bool int a2)
7303 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1);
7306 inline int
7307 vec_all_lt (__vector signed int a1, __vector signed int a2)
7309 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1);
7312 inline int
7313 vec_all_lt (__vector float a1, __vector float a2)
7315 return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a2, a1);
7318 /* vec_all_nan */
7320 inline int
7321 vec_all_nan (__vector float a1)
7323 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1);
7326 /* vec_all_ne */
7328 inline int
7329 vec_all_ne (__vector signed char a1, __vector bool char a2)
7331 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7334 inline int
7335 vec_all_ne (__vector signed char a1, __vector signed char a2)
7337 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7340 inline int
7341 vec_all_ne (__vector unsigned char a1, __vector bool char a2)
7343 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7346 inline int
7347 vec_all_ne (__vector unsigned char a1, __vector unsigned char a2)
7349 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7352 inline int
7353 vec_all_ne (__vector bool char a1, __vector bool char a2)
7355 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7358 inline int
7359 vec_all_ne (__vector bool char a1, __vector unsigned char a2)
7361 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7364 inline int
7365 vec_all_ne (__vector bool char a1, __vector signed char a2)
7367 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
7370 inline int
7371 vec_all_ne (__vector signed short a1, __vector bool short a2)
7373 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7376 inline int
7377 vec_all_ne (__vector signed short a1, __vector signed short a2)
7379 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7382 inline int
7383 vec_all_ne (__vector unsigned short a1, __vector bool short a2)
7385 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7388 inline int
7389 vec_all_ne (__vector unsigned short a1, __vector unsigned short a2)
7391 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7394 inline int
7395 vec_all_ne (__vector bool short a1, __vector bool short a2)
7397 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7400 inline int
7401 vec_all_ne (__vector bool short a1, __vector unsigned short a2)
7403 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7406 inline int
7407 vec_all_ne (__vector bool short a1, __vector signed short a2)
7409 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7412 inline int
7413 vec_all_ne (__vector pixel a1, __vector pixel a2)
7415 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
7418 inline int
7419 vec_all_ne (__vector signed int a1, __vector bool int a2)
7421 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7424 inline int
7425 vec_all_ne (__vector signed int a1, __vector signed int a2)
7427 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7430 inline int
7431 vec_all_ne (__vector unsigned int a1, __vector bool int a2)
7433 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7436 inline int
7437 vec_all_ne (__vector unsigned int a1, __vector unsigned int a2)
7439 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7442 inline int
7443 vec_all_ne (__vector bool int a1, __vector bool int a2)
7445 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7448 inline int
7449 vec_all_ne (__vector bool int a1, __vector unsigned int a2)
7451 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7454 inline int
7455 vec_all_ne (__vector bool int a1, __vector signed int a2)
7457 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
7460 inline int
7461 vec_all_ne (__vector float a1, __vector float a2)
7463 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a2);
7466 /* vec_all_nge */
7468 inline int
7469 vec_all_nge (__vector float a1, __vector float a2)
7471 return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2);
7474 /* vec_all_ngt */
7476 inline int
7477 vec_all_ngt (__vector float a1, __vector float a2)
7479 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a1, a2);
7482 /* vec_all_nle */
7484 inline int
7485 vec_all_nle (__vector float a1, __vector float a2)
7487 return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a2, a1);
7490 /* vec_all_nlt */
7492 inline int
7493 vec_all_nlt (__vector float a1, __vector float a2)
7495 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a2, a1);
7498 /* vec_all_numeric */
7500 inline int
7501 vec_all_numeric (__vector float a1)
7503 return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a1);
7506 /* vec_any_eq */
7508 inline int
7509 vec_any_eq (__vector signed char a1, __vector bool char a2)
7511 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7514 inline int
7515 vec_any_eq (__vector signed char a1, __vector signed char a2)
7517 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7520 inline int
7521 vec_any_eq (__vector unsigned char a1, __vector bool char a2)
7523 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7526 inline int
7527 vec_any_eq (__vector unsigned char a1, __vector unsigned char a2)
7529 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7532 inline int
7533 vec_any_eq (__vector bool char a1, __vector bool char a2)
7535 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7538 inline int
7539 vec_any_eq (__vector bool char a1, __vector unsigned char a2)
7541 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7544 inline int
7545 vec_any_eq (__vector bool char a1, __vector signed char a2)
7547 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7550 inline int
7551 vec_any_eq (__vector signed short a1, __vector bool short a2)
7553 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7556 inline int
7557 vec_any_eq (__vector signed short a1, __vector signed short a2)
7559 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7562 inline int
7563 vec_any_eq (__vector unsigned short a1, __vector bool short a2)
7565 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7568 inline int
7569 vec_any_eq (__vector unsigned short a1, __vector unsigned short a2)
7571 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7574 inline int
7575 vec_any_eq (__vector bool short a1, __vector bool short a2)
7577 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7580 inline int
7581 vec_any_eq (__vector bool short a1, __vector unsigned short a2)
7583 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7586 inline int
7587 vec_any_eq (__vector bool short a1, __vector signed short a2)
7589 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7592 inline int
7593 vec_any_eq (__vector pixel a1, __vector pixel a2)
7595 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7598 inline int
7599 vec_any_eq (__vector signed int a1, __vector bool int a2)
7601 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7604 inline int
7605 vec_any_eq (__vector signed int a1, __vector signed int a2)
7607 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7610 inline int
7611 vec_any_eq (__vector unsigned int a1, __vector bool int a2)
7613 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7616 inline int
7617 vec_any_eq (__vector unsigned int a1, __vector unsigned int a2)
7619 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7622 inline int
7623 vec_any_eq (__vector bool int a1, __vector bool int a2)
7625 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7628 inline int
7629 vec_any_eq (__vector bool int a1, __vector unsigned int a2)
7631 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7634 inline int
7635 vec_any_eq (__vector bool int a1, __vector signed int a2)
7637 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7640 inline int
7641 vec_any_eq (__vector float a1, __vector float a2)
7643 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a2);
7646 /* vec_any_ge */
7648 inline int
7649 vec_any_ge (__vector signed char a1, __vector bool char a2)
7651 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1);
7654 inline int
7655 vec_any_ge (__vector unsigned char a1, __vector bool char a2)
7657 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1);
7660 inline int
7661 vec_any_ge (__vector unsigned char a1, __vector unsigned char a2)
7663 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1);
7666 inline int
7667 vec_any_ge (__vector signed char a1, __vector signed char a2)
7669 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1);
7672 inline int
7673 vec_any_ge (__vector bool char a1, __vector unsigned char a2)
7675 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1);
7678 inline int
7679 vec_any_ge (__vector bool char a1, __vector signed char a2)
7681 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1);
7684 inline int
7685 vec_any_ge (__vector unsigned short a1, __vector bool short a2)
7687 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
7690 inline int
7691 vec_any_ge (__vector unsigned short a1, __vector unsigned short a2)
7693 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
7696 inline int
7697 vec_any_ge (__vector signed short a1, __vector signed short a2)
7699 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
7702 inline int
7703 vec_any_ge (__vector signed short a1, __vector bool short a2)
7705 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
7708 inline int
7709 vec_any_ge (__vector bool short a1, __vector unsigned short a2)
7711 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
7714 inline int
7715 vec_any_ge (__vector bool short a1, __vector signed short a2)
7717 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
7720 inline int
7721 vec_any_ge (__vector signed int a1, __vector bool int a2)
7723 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
7726 inline int
7727 vec_any_ge (__vector unsigned int a1, __vector bool int a2)
7729 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
7732 inline int
7733 vec_any_ge (__vector unsigned int a1, __vector unsigned int a2)
7735 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
7738 inline int
7739 vec_any_ge (__vector signed int a1, __vector signed int a2)
7741 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
7744 inline int
7745 vec_any_ge (__vector bool int a1, __vector unsigned int a2)
7747 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
7750 inline int
7751 vec_any_ge (__vector bool int a1, __vector signed int a2)
7753 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
7756 inline int
7757 vec_any_ge (__vector float a1, __vector float a2)
7759 return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a1, a2);
7762 /* vec_any_gt */
7764 inline int
7765 vec_any_gt (__vector bool char a1, __vector unsigned char a2)
7767 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7770 inline int
7771 vec_any_gt (__vector unsigned char a1, __vector bool char a2)
7773 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7776 inline int
7777 vec_any_gt (__vector unsigned char a1, __vector unsigned char a2)
7779 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7782 inline int
7783 vec_any_gt (__vector bool char a1, __vector signed char a2)
7785 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7788 inline int
7789 vec_any_gt (__vector signed char a1, __vector bool char a2)
7791 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7794 inline int
7795 vec_any_gt (__vector signed char a1, __vector signed char a2)
7797 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
7800 inline int
7801 vec_any_gt (__vector bool short a1, __vector unsigned short a2)
7803 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7806 inline int
7807 vec_any_gt (__vector unsigned short a1, __vector bool short a2)
7809 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7812 inline int
7813 vec_any_gt (__vector unsigned short a1, __vector unsigned short a2)
7815 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7818 inline int
7819 vec_any_gt (__vector bool short a1, __vector signed short a2)
7821 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7824 inline int
7825 vec_any_gt (__vector signed short a1, __vector bool short a2)
7827 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7830 inline int
7831 vec_any_gt (__vector signed short a1, __vector signed short a2)
7833 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
7836 inline int
7837 vec_any_gt (__vector bool int a1, __vector unsigned int a2)
7839 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7842 inline int
7843 vec_any_gt (__vector unsigned int a1, __vector bool int a2)
7845 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7848 inline int
7849 vec_any_gt (__vector unsigned int a1, __vector unsigned int a2)
7851 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7854 inline int
7855 vec_any_gt (__vector bool int a1, __vector signed int a2)
7857 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7860 inline int
7861 vec_any_gt (__vector signed int a1, __vector bool int a2)
7863 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7866 inline int
7867 vec_any_gt (__vector signed int a1, __vector signed int a2)
7869 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
7872 inline int
7873 vec_any_gt (__vector float a1, __vector float a2)
7875 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a1, a2);
7878 /* vec_any_le */
7880 inline int
7881 vec_any_le (__vector bool char a1, __vector unsigned char a2)
7883 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
7886 inline int
7887 vec_any_le (__vector unsigned char a1, __vector bool char a2)
7889 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
7892 inline int
7893 vec_any_le (__vector unsigned char a1, __vector unsigned char a2)
7895 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
7898 inline int
7899 vec_any_le (__vector bool char a1, __vector signed char a2)
7901 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
7904 inline int
7905 vec_any_le (__vector signed char a1, __vector bool char a2)
7907 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
7910 inline int
7911 vec_any_le (__vector signed char a1, __vector signed char a2)
7913 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
7916 inline int
7917 vec_any_le (__vector bool short a1, __vector unsigned short a2)
7919 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
7922 inline int
7923 vec_any_le (__vector unsigned short a1, __vector bool short a2)
7925 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
7928 inline int
7929 vec_any_le (__vector unsigned short a1, __vector unsigned short a2)
7931 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
7934 inline int
7935 vec_any_le (__vector bool short a1, __vector signed short a2)
7937 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
7940 inline int
7941 vec_any_le (__vector signed short a1, __vector bool short a2)
7943 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
7946 inline int
7947 vec_any_le (__vector signed short a1, __vector signed short a2)
7949 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
7952 inline int
7953 vec_any_le (__vector bool int a1, __vector unsigned int a2)
7955 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
7958 inline int
7959 vec_any_le (__vector unsigned int a1, __vector bool int a2)
7961 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
7964 inline int
7965 vec_any_le (__vector unsigned int a1, __vector unsigned int a2)
7967 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
7970 inline int
7971 vec_any_le (__vector bool int a1, __vector signed int a2)
7973 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
7976 inline int
7977 vec_any_le (__vector signed int a1, __vector bool int a2)
7979 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
7982 inline int
7983 vec_any_le (__vector signed int a1, __vector signed int a2)
7985 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
7988 inline int
7989 vec_any_le (__vector float a1, __vector float a2)
7991 return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a2, a1);
7994 /* vec_any_lt */
7996 inline int
7997 vec_any_lt (__vector bool char a1, __vector unsigned char a2)
7999 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1);
8002 inline int
8003 vec_any_lt (__vector unsigned char a1, __vector bool char a2)
8005 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1);
8008 inline int
8009 vec_any_lt (__vector unsigned char a1, __vector unsigned char a2)
8011 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1);
8014 inline int
8015 vec_any_lt (__vector bool char a1, __vector signed char a2)
8017 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1);
8020 inline int
8021 vec_any_lt (__vector signed char a1, __vector bool char a2)
8023 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1);
8026 inline int
8027 vec_any_lt (__vector signed char a1, __vector signed char a2)
8029 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1);
8032 inline int
8033 vec_any_lt (__vector bool short a1, __vector unsigned short a2)
8035 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
8038 inline int
8039 vec_any_lt (__vector unsigned short a1, __vector bool short a2)
8041 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
8044 inline int
8045 vec_any_lt (__vector unsigned short a1, __vector unsigned short a2)
8047 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
8050 inline int
8051 vec_any_lt (__vector bool short a1, __vector signed short a2)
8053 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
8056 inline int
8057 vec_any_lt (__vector signed short a1, __vector bool short a2)
8059 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
8062 inline int
8063 vec_any_lt (__vector signed short a1, __vector signed short a2)
8065 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
8068 inline int
8069 vec_any_lt (__vector bool int a1, __vector unsigned int a2)
8071 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1);
8074 inline int
8075 vec_any_lt (__vector unsigned int a1, __vector bool int a2)
8077 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1);
8080 inline int
8081 vec_any_lt (__vector unsigned int a1, __vector unsigned int a2)
8083 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1);
8086 inline int
8087 vec_any_lt (__vector bool int a1, __vector signed int a2)
8089 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1);
8092 inline int
8093 vec_any_lt (__vector signed int a1, __vector bool int a2)
8095 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1);
8098 inline int
8099 vec_any_lt (__vector signed int a1, __vector signed int a2)
8101 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1);
8104 inline int
8105 vec_any_lt (__vector float a1, __vector float a2)
8107 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a2, a1);
8110 /* vec_any_nan */
8112 inline int
8113 vec_any_nan (__vector float a1)
8115 return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a1);
8118 /* vec_any_ne */
8120 inline int
8121 vec_any_ne (__vector signed char a1, __vector bool char a2)
8123 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8126 inline int
8127 vec_any_ne (__vector signed char a1, __vector signed char a2)
8129 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8132 inline int
8133 vec_any_ne (__vector unsigned char a1, __vector bool char a2)
8135 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8138 inline int
8139 vec_any_ne (__vector unsigned char a1, __vector unsigned char a2)
8141 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8144 inline int
8145 vec_any_ne (__vector bool char a1, __vector bool char a2)
8147 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8150 inline int
8151 vec_any_ne (__vector bool char a1, __vector unsigned char a2)
8153 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8156 inline int
8157 vec_any_ne (__vector bool char a1, __vector signed char a2)
8159 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
8162 inline int
8163 vec_any_ne (__vector signed short a1, __vector bool short a2)
8165 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8168 inline int
8169 vec_any_ne (__vector signed short a1, __vector signed short a2)
8171 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8174 inline int
8175 vec_any_ne (__vector unsigned short a1, __vector bool short a2)
8177 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8180 inline int
8181 vec_any_ne (__vector unsigned short a1, __vector unsigned short a2)
8183 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8186 inline int
8187 vec_any_ne (__vector bool short a1, __vector bool short a2)
8189 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8192 inline int
8193 vec_any_ne (__vector bool short a1, __vector unsigned short a2)
8195 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8198 inline int
8199 vec_any_ne (__vector bool short a1, __vector signed short a2)
8201 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8204 inline int
8205 vec_any_ne (__vector pixel a1, __vector pixel a2)
8207 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
8210 inline int
8211 vec_any_ne (__vector signed int a1, __vector bool int a2)
8213 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8216 inline int
8217 vec_any_ne (__vector signed int a1, __vector signed int a2)
8219 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8222 inline int
8223 vec_any_ne (__vector unsigned int a1, __vector bool int a2)
8225 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8228 inline int
8229 vec_any_ne (__vector unsigned int a1, __vector unsigned int a2)
8231 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8234 inline int
8235 vec_any_ne (__vector bool int a1, __vector bool int a2)
8237 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8240 inline int
8241 vec_any_ne (__vector bool int a1, __vector unsigned int a2)
8243 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8246 inline int
8247 vec_any_ne (__vector bool int a1, __vector signed int a2)
8249 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
8252 inline int
8253 vec_any_ne (__vector float a1, __vector float a2)
8255 return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a2);
8258 /* vec_any_nge */
8260 inline int
8261 vec_any_nge (__vector float a1, __vector float a2)
8263 return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a1, a2);
8266 /* vec_any_ngt */
8268 inline int
8269 vec_any_ngt (__vector float a1, __vector float a2)
8271 return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a1, a2);
8274 /* vec_any_nle */
8276 inline int
8277 vec_any_nle (__vector float a1, __vector float a2)
8279 return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1);
8282 /* vec_any_nlt */
8284 inline int
8285 vec_any_nlt (__vector float a1, __vector float a2)
8287 return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a2, a1);
8290 /* vec_any_numeric */
8292 inline int
8293 vec_any_numeric (__vector float a1)
8295 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a1);
8298 /* vec_any_out */
8300 inline int
8301 vec_any_out (__vector float a1, __vector float a2)
8303 return __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, a1, a2);
8306 } /* extern "C++" */
8308 #else /* not C++ */
8310 /* "... and so I think no man in a century will suffer as greatly as
8311 you will." */
8313 /* Helper macros. */
8315 #define __un_args_eq(xtype, x) \
8316 __builtin_types_compatible_p (xtype, __typeof__ (x))
8318 #define __bin_args_eq(xtype, x, ytype, y) \
8319 (__builtin_types_compatible_p (xtype, __typeof__ (x)) \
8320 && __builtin_types_compatible_p (ytype, __typeof__ (y)))
8322 #define __tern_args_eq(xtype, x, ytype, y, ztype, z) \
8323 (__builtin_types_compatible_p (xtype, __typeof__ (x)) \
8324 && __builtin_types_compatible_p (ytype, __typeof__ (y)) \
8325 && __builtin_types_compatible_p (ztype, __typeof__ (z)))
8327 #define __ch(x, y, z) __builtin_choose_expr (x, y, z)
8329 #define vec_step(t) \
8330 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector signed int), 4, \
8331 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector unsigned int), 4, \
8332 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector bool int), 4, \
8333 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector signed short), 8, \
8334 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector unsigned short), 8, \
8335 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector bool short), 8, \
8336 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector pixel), 8, \
8337 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector signed char), 16, \
8338 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector unsigned char), 16, \
8339 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector bool char), 16, \
8340 __ch (__builtin_types_compatible_p (__typeof__ (t), __vector float), 4, \
8341 __builtin_altivec_compiletime_error ("vec_step"))))))))))))
8343 #define vec_abs(a) \
8344 __ch (__un_args_eq (__vector signed char, (a)), \
8345 ((__vector signed char) __builtin_altivec_abs_v16qi ((__vector signed char) (a))), \
8346 __ch (__un_args_eq (__vector signed short, (a)), \
8347 ((__vector signed short) __builtin_altivec_abs_v8hi ((__vector signed short) (a))), \
8348 __ch (__un_args_eq (__vector signed int, (a)), \
8349 ((__vector signed int) __builtin_altivec_abs_v4si ((__vector signed int) (a))), \
8350 __ch (__un_args_eq (__vector float, (a)), \
8351 ((__vector float) __builtin_altivec_abs_v4sf ((__vector float) (a))), \
8352 __builtin_altivec_compiletime_error ("vec_abs")))))
8354 #define vec_abss(a) \
8355 __ch (__un_args_eq (__vector signed char, (a)), \
8356 ((__vector signed char) __builtin_altivec_abss_v16qi ((__vector signed char) (a))), \
8357 __ch (__un_args_eq (__vector signed short, (a)), \
8358 ((__vector signed short) __builtin_altivec_abss_v8hi ((__vector signed short) (a))), \
8359 __ch (__un_args_eq (__vector signed int, (a)), \
8360 ((__vector signed int) __builtin_altivec_abss_v4si ((__vector signed int) (a))), \
8361 __builtin_altivec_compiletime_error ("vec_abss"))))
8363 #define vec_vaddubm(a1, a2) \
8364 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
8365 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8366 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
8367 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8368 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8369 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8370 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
8371 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8372 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
8373 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8374 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8375 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8376 __builtin_altivec_compiletime_error ("vec_vaddubm")))))))
8378 #define vec_vadduhm(a1, a2) \
8379 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
8380 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8381 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
8382 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8383 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8384 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8385 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
8386 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8387 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
8388 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8389 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8390 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8391 __builtin_altivec_compiletime_error ("vec_vadduhm")))))))
8393 #define vec_vadduwm(a1, a2) \
8394 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
8395 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8396 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
8397 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8398 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8399 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8400 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
8401 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8402 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
8403 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8404 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8405 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8406 __builtin_altivec_compiletime_error ("vec_vadduwm")))))))
8408 #define vec_vaddfp(a1, a2) \
8409 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8410 ((__vector float) __builtin_altivec_vaddfp ((__vector float) (a1), (__vector float) (a2))), \
8411 __builtin_altivec_compiletime_error ("vec_vaddfp"))
8413 #define vec_add(a1, a2) \
8414 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
8415 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8416 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
8417 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8418 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8419 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8420 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
8421 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8422 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
8423 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8424 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8425 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
8426 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
8427 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8428 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
8429 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8430 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8431 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8432 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
8433 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8434 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
8435 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8436 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8437 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
8438 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
8439 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8440 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
8441 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8442 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8443 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8444 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
8445 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8446 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
8447 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8448 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8449 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
8450 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8451 ((__vector float) __builtin_altivec_vaddfp ((__vector float) (a1), (__vector float) (a2))), \
8452 __builtin_altivec_compiletime_error ("vec_add"))))))))))))))))))))
8454 #define vec_addc(a1, a2) \
8455 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8456 ((__vector unsigned int) __builtin_altivec_vaddcuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8457 __builtin_altivec_compiletime_error ("vec_addc"))
8459 #define vec_adds(a1, a2) \
8460 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
8461 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8462 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
8463 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8464 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8465 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8466 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
8467 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8468 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
8469 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8470 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8471 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8472 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
8473 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8474 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
8475 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8476 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8477 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8478 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
8479 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8480 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
8481 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8482 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8483 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8484 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
8485 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8486 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
8487 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8488 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8489 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8490 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
8491 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8492 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
8493 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8494 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8495 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8496 __builtin_altivec_compiletime_error ("vec_adds")))))))))))))))))))
8498 #define vec_vaddsws(a1, a2) \
8499 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
8500 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8501 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
8502 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8503 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8504 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8505 __builtin_altivec_compiletime_error ("vec_vaddsws"))))
8507 #define vec_vadduws(a1, a2) \
8508 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
8509 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8510 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
8511 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8512 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8513 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
8514 __builtin_altivec_compiletime_error ("vec_vadduws"))))
8516 #define vec_vaddshs(a1, a2) \
8517 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
8518 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8519 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8520 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8521 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
8522 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8523 __builtin_altivec_compiletime_error ("vec_vaddshs"))))
8525 #define vec_vadduhs(a1, a2) \
8526 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
8527 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8528 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
8529 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8530 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8531 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
8532 __builtin_altivec_compiletime_error ("vec_vadduhs"))))
8534 #define vec_vaddsbs(a1, a2) \
8535 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
8536 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8537 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
8538 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8539 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8540 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8541 __builtin_altivec_compiletime_error ("vec_vaddsbs"))))
8543 #define vec_vaddubs(a1, a2) \
8544 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
8545 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8546 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
8547 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8548 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8549 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
8550 __builtin_altivec_compiletime_error ("vec_vaddubs"))))
8552 #define vec_and(a1, a2) \
8553 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8554 ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8555 __ch (__bin_args_eq (__vector float, (a1), __vector bool int, (a2)), \
8556 ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8557 __ch (__bin_args_eq (__vector bool int, (a1), __vector float, (a2)), \
8558 ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8559 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
8560 ((__vector bool int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8561 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
8562 ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8563 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
8564 ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8565 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8566 ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8567 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
8568 ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8569 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
8570 ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8571 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8572 ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8573 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
8574 ((__vector bool short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8575 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
8576 ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8577 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
8578 ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8579 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8580 ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8581 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
8582 ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8583 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
8584 ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8585 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8586 ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8587 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
8588 ((__vector bool char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8589 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
8590 ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8591 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
8592 ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8593 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8594 ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8595 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
8596 ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8597 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
8598 ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8599 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8600 ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
8601 __builtin_altivec_compiletime_error ("vec_and")))))))))))))))))))))))))
8603 #define vec_andc(a1, a2) \
8604 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8605 ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8606 __ch (__bin_args_eq (__vector float, (a1), __vector bool int, (a2)), \
8607 ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8608 __ch (__bin_args_eq (__vector bool int, (a1), __vector float, (a2)), \
8609 ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8610 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
8611 ((__vector bool int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8612 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
8613 ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8614 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
8615 ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8616 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8617 ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8618 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
8619 ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8620 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
8621 ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8622 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8623 ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8624 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
8625 ((__vector bool short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8626 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
8627 ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8628 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
8629 ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8630 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8631 ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8632 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
8633 ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8634 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
8635 ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8636 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8637 ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8638 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
8639 ((__vector bool char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8640 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
8641 ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8642 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
8643 ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8644 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8645 ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8646 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
8647 ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8648 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
8649 ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8650 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8651 ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
8652 __builtin_altivec_compiletime_error ("vec_andc")))))))))))))))))))))))))
8654 #define vec_avg(a1, a2) \
8655 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8656 ((__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) (a1), (__vector signed char) (a2))), \
8657 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8658 ((__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8659 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8660 ((__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8661 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8662 ((__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8663 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8664 ((__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8665 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8666 ((__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8667 __builtin_altivec_compiletime_error ("vec_avg")))))))
8669 #define vec_vavgsw(a1, a2) \
8670 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8671 ((__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8672 __builtin_altivec_compiletime_error ("vec_vavgsw"))
8674 #define vec_vavguw(a1, a2) \
8675 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8676 ((__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8677 __builtin_altivec_compiletime_error ("vec_vavguw"))
8679 #define vec_vavgsh(a1, a2) \
8680 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8681 ((__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8682 __builtin_altivec_compiletime_error ("vec_vavgsh"))
8684 #define vec_vavguh(a1, a2) \
8685 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8686 ((__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8687 __builtin_altivec_compiletime_error ("vec_vavguh"))
8689 #define vec_vavgsb(a1, a2) \
8690 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8691 ((__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8692 __builtin_altivec_compiletime_error ("vec_vavgsb"))
8694 #define vec_vavgub(a1, a2) \
8695 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8696 ((__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) (a1), (__vector signed char) (a2))), \
8697 __builtin_altivec_compiletime_error ("vec_vavgub"))
8699 #define vec_ceil(a1) \
8700 __ch (__un_args_eq (__vector float, (a1)), \
8701 ((__vector float) __builtin_altivec_vrfip ((__vector float) (a1))), \
8702 __builtin_altivec_compiletime_error ("vec_ceil"))
8704 #define vec_cmpb(a1, a2) \
8705 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8706 ((__vector signed int) __builtin_altivec_vcmpbfp ((__vector float) (a1), (__vector float) (a2))), \
8707 __builtin_altivec_compiletime_error ("vec_cmpb"))
8709 #define vec_cmpeq(a1, a2) \
8710 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8711 ((__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8712 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8713 ((__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8714 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8715 ((__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8716 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8717 ((__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8718 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8719 ((__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8720 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8721 ((__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8722 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8723 ((__vector bool int) __builtin_altivec_vcmpeqfp ((__vector float) (a1), (__vector float) (a2))), \
8724 __builtin_altivec_compiletime_error ("vec_cmpeq"))))))))
8726 #define vec_vcmpeqfp(a1, a2) \
8727 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8728 ((__vector bool int) __builtin_altivec_vcmpeqfp ((__vector float) (a1), (__vector float) (a2))), \
8729 __builtin_altivec_compiletime_error ("vec_vcmpeqfp"))
8731 #define vec_vcmpequw(a1, a2) \
8732 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8733 ((__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8734 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8735 ((__vector bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8736 __builtin_altivec_compiletime_error ("vec_vcmpequw")))
8738 #define vec_vcmpequh(a1, a2) \
8739 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8740 ((__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8741 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8742 ((__vector bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8743 __builtin_altivec_compiletime_error ("vec_vcmpequh")))
8745 #define vec_vcmpequb(a1, a2) \
8746 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8747 ((__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8748 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8749 ((__vector bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8750 __builtin_altivec_compiletime_error ("vec_vcmpequb")))
8752 #define vec_cmpge(a1, a2) \
8753 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8754 ((__vector bool int) __builtin_altivec_vcmpgefp ((__vector float) (a1), (__vector float) (a2))), \
8755 __builtin_altivec_compiletime_error ("vec_cmpge"))
8757 #define vec_cmpgt(a1, a2) \
8758 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8759 ((__vector bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \
8760 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8761 ((__vector bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8762 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8763 ((__vector bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8764 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8765 ((__vector bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8766 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8767 ((__vector bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8768 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8769 ((__vector bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8770 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8771 ((__vector bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \
8772 __builtin_altivec_compiletime_error ("vec_cmpgt"))))))))
8774 #define vec_vcmpgtfp(a1, a2) \
8775 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8776 ((__vector bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \
8777 __builtin_altivec_compiletime_error ("vec_vcmpgtfp"))
8779 #define vec_vcmpgtsw(a1, a2) \
8780 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8781 ((__vector bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8782 __builtin_altivec_compiletime_error ("vec_vcmpgtsw"))
8784 #define vec_vcmpgtuw(a1, a2) \
8785 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8786 ((__vector bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8787 __builtin_altivec_compiletime_error ("vec_vcmpgtuw"))
8789 #define vec_vcmpgtsh(a1, a2) \
8790 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8791 ((__vector bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8792 __builtin_altivec_compiletime_error ("vec_vcmpgtsh"))
8794 #define vec_vcmpgtuh(a1, a2) \
8795 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8796 ((__vector bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8797 __builtin_altivec_compiletime_error ("vec_vcmpgtuh"))
8799 #define vec_vcmpgtsb(a1, a2) \
8800 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8801 ((__vector bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8802 __builtin_altivec_compiletime_error ("vec_vcmpgtsb"))
8804 #define vec_vcmpgtub(a1, a2) \
8805 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8806 ((__vector bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \
8807 __builtin_altivec_compiletime_error ("vec_vcmpgtub"))
8809 #define vec_cmple(a1, a2) \
8810 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8811 ((__vector bool int) __builtin_altivec_vcmpgefp ((__vector float) (a2), (__vector float) (a1))), \
8812 __builtin_altivec_compiletime_error ("vec_cmple"))
8814 #define vec_cmplt(a2, a1) \
8815 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
8816 ((__vector bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \
8817 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
8818 ((__vector bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
8819 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
8820 ((__vector bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8821 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
8822 ((__vector bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
8823 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
8824 ((__vector bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8825 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
8826 ((__vector bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
8827 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
8828 ((__vector bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \
8829 __builtin_altivec_compiletime_error ("vec_cmplt"))))))))
8831 #define vec_ctf(a1, a2) \
8832 __ch (__un_args_eq (__vector unsigned int, (a1)), \
8833 ((__vector float) __builtin_altivec_vcfux ((__vector signed int) (a1), (const int) (a2))), \
8834 __ch (__un_args_eq (__vector signed int, (a1)), \
8835 ((__vector float) __builtin_altivec_vcfsx ((__vector signed int) (a1), (const int) (a2))), \
8836 __builtin_altivec_compiletime_error ("vec_ctf")))
8838 #define vec_vcfsx(a1, a2) \
8839 __ch (__un_args_eq (__vector signed int, (a1)), \
8840 ((__vector float) __builtin_altivec_vcfsx ((__vector signed int) (a1), (const int) (a2))), \
8841 __builtin_altivec_compiletime_error ("vec_vcfsx"))
8843 #define vec_vcfux(a1, a2) \
8844 __ch (__un_args_eq (__vector unsigned int, (a1)), \
8845 ((__vector float) __builtin_altivec_vcfux ((__vector signed int) (a1), (const int) (a2))), \
8846 __builtin_altivec_compiletime_error ("vec_vcfux"))
8848 #define vec_cts(a1, a2) \
8849 __ch (__un_args_eq (__vector float, (a1)), \
8850 ((__vector signed int) __builtin_altivec_vctsxs ((__vector float) (a1), (const int) (a2))), \
8851 __builtin_altivec_compiletime_error ("vec_cts"))
8853 #define vec_ctu(a1, a2) \
8854 __ch (__un_args_eq (__vector float, (a1)), \
8855 ((__vector unsigned int) __builtin_altivec_vctuxs ((__vector float) (a1), (const int) (a2))), \
8856 __builtin_altivec_compiletime_error ("vec_ctu"))
8858 #define vec_dss(a1) __builtin_altivec_dss ((const int) (a1));
8860 #define vec_dssall() __builtin_altivec_dssall ()
8862 #define vec_dst(a1, a2, a3) \
8863 __ch (__un_args_eq (const __vector unsigned char, *(a1)), \
8864 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8865 __ch (__un_args_eq (const __vector signed char, *(a1)), \
8866 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8867 __ch (__un_args_eq (const __vector bool char, *(a1)), \
8868 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8869 __ch (__un_args_eq (const __vector unsigned short, *(a1)), \
8870 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8871 __ch (__un_args_eq (const __vector signed short, *(a1)), \
8872 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8873 __ch (__un_args_eq (const __vector bool short, *(a1)), \
8874 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8875 __ch (__un_args_eq (const __vector pixel, *(a1)), \
8876 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8877 __ch (__un_args_eq (const __vector unsigned int, *(a1)), \
8878 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8879 __ch (__un_args_eq (const __vector signed int, *(a1)), \
8880 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8881 __ch (__un_args_eq (const __vector bool int, *(a1)), \
8882 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8883 __ch (__un_args_eq (const __vector float, *(a1)), \
8884 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8885 __ch (__un_args_eq (const unsigned char, *(a1)), \
8886 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8887 __ch (__un_args_eq (const signed char, *(a1)), \
8888 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8889 __ch (__un_args_eq (const unsigned short, *(a1)), \
8890 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8891 __ch (__un_args_eq (const short, *(a1)), \
8892 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8893 __ch (__un_args_eq (const unsigned int, *(a1)), \
8894 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8895 __ch (__un_args_eq (const int, *(a1)), \
8896 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8897 __ch (__un_args_eq (const unsigned long, *(a1)), \
8898 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8899 __ch (__un_args_eq (const long, *(a1)), \
8900 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8901 __ch (__un_args_eq (const float, *(a1)), \
8902 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
8903 __builtin_altivec_compiletime_error ("vec_dst")))))))))))))))))))))
8905 #define vec_dstst(a1, a2, a3) \
8906 __ch (__un_args_eq (const __vector unsigned char, *(a1)), \
8907 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8908 __ch (__un_args_eq (const __vector signed char, *(a1)), \
8909 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8910 __ch (__un_args_eq (const __vector bool char, *(a1)), \
8911 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8912 __ch (__un_args_eq (const __vector unsigned short, *(a1)), \
8913 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8914 __ch (__un_args_eq (const __vector signed short, *(a1)), \
8915 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8916 __ch (__un_args_eq (const __vector bool short, *(a1)), \
8917 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8918 __ch (__un_args_eq (const __vector pixel, *(a1)), \
8919 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8920 __ch (__un_args_eq (const __vector unsigned int, *(a1)), \
8921 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8922 __ch (__un_args_eq (const __vector signed int, *(a1)), \
8923 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8924 __ch (__un_args_eq (const __vector bool int, *(a1)), \
8925 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8926 __ch (__un_args_eq (const __vector float, *(a1)), \
8927 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8928 __ch (__un_args_eq (const unsigned char, *(a1)), \
8929 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8930 __ch (__un_args_eq (const signed char, *(a1)), \
8931 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8932 __ch (__un_args_eq (const unsigned short, *(a1)), \
8933 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8934 __ch (__un_args_eq (const short, *(a1)), \
8935 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8936 __ch (__un_args_eq (const unsigned int, *(a1)), \
8937 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8938 __ch (__un_args_eq (const int, *(a1)), \
8939 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8940 __ch (__un_args_eq (const unsigned long, *(a1)), \
8941 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8942 __ch (__un_args_eq (const long, *(a1)), \
8943 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8944 __ch (__un_args_eq (const float, *(a1)), \
8945 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
8946 __builtin_altivec_compiletime_error ("vec_dstst")))))))))))))))))))))
8948 #define vec_dststt(a1, a2, a3) \
8949 __ch (__un_args_eq (const __vector unsigned char, *(a1)), \
8950 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8951 __ch (__un_args_eq (const __vector signed char, *(a1)), \
8952 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8953 __ch (__un_args_eq (const __vector bool char, *(a1)), \
8954 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8955 __ch (__un_args_eq (const __vector unsigned short, *(a1)), \
8956 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8957 __ch (__un_args_eq (const __vector signed short, *(a1)), \
8958 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8959 __ch (__un_args_eq (const __vector bool short, *(a1)), \
8960 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8961 __ch (__un_args_eq (const __vector pixel, *(a1)), \
8962 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8963 __ch (__un_args_eq (const __vector unsigned int, *(a1)), \
8964 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8965 __ch (__un_args_eq (const __vector signed int, *(a1)), \
8966 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8967 __ch (__un_args_eq (const __vector bool int, *(a1)), \
8968 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8969 __ch (__un_args_eq (const __vector float, *(a1)), \
8970 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8971 __ch (__un_args_eq (const unsigned char, *(a1)), \
8972 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8973 __ch (__un_args_eq (const signed char, *(a1)), \
8974 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8975 __ch (__un_args_eq (const unsigned short, *(a1)), \
8976 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8977 __ch (__un_args_eq (const short, *(a1)), \
8978 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8979 __ch (__un_args_eq (const unsigned int, *(a1)), \
8980 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8981 __ch (__un_args_eq (const int, *(a1)), \
8982 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8983 __ch (__un_args_eq (const unsigned long, *(a1)), \
8984 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8985 __ch (__un_args_eq (const long, *(a1)), \
8986 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8987 __ch (__un_args_eq (const float, *(a1)), \
8988 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
8989 __builtin_altivec_compiletime_error ("vec_dststt")))))))))))))))))))))
8991 #define vec_dstt(a1, a2, a3) \
8992 __ch (__un_args_eq (const __vector unsigned char, *(a1)), \
8993 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8994 __ch (__un_args_eq (const __vector signed char, *(a1)), \
8995 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8996 __ch (__un_args_eq (const __vector bool char, *(a1)), \
8997 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
8998 __ch (__un_args_eq (const __vector unsigned short, *(a1)), \
8999 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9000 __ch (__un_args_eq (const __vector signed short, *(a1)), \
9001 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9002 __ch (__un_args_eq (const __vector bool short, *(a1)), \
9003 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9004 __ch (__un_args_eq (const __vector pixel, *(a1)), \
9005 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9006 __ch (__un_args_eq (const __vector unsigned int, *(a1)), \
9007 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9008 __ch (__un_args_eq (const __vector signed int, *(a1)), \
9009 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9010 __ch (__un_args_eq (const __vector bool int, *(a1)), \
9011 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9012 __ch (__un_args_eq (const __vector float, *(a1)), \
9013 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9014 __ch (__un_args_eq (const unsigned char, *(a1)), \
9015 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9016 __ch (__un_args_eq (const signed char, *(a1)), \
9017 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9018 __ch (__un_args_eq (const unsigned short, *(a1)), \
9019 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9020 __ch (__un_args_eq (const short, *(a1)), \
9021 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9022 __ch (__un_args_eq (const unsigned int, *(a1)), \
9023 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9024 __ch (__un_args_eq (const int, *(a1)), \
9025 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9026 __ch (__un_args_eq (const unsigned long, *(a1)), \
9027 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9028 __ch (__un_args_eq (const long, *(a1)), \
9029 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9030 __ch (__un_args_eq (const float, *(a1)), \
9031 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
9032 __builtin_altivec_compiletime_error ("vec_dstt")))))))))))))))))))))
9034 #define vec_expte(a1) \
9035 __ch (__un_args_eq (__vector float, (a1)), \
9036 ((__vector float) __builtin_altivec_vexptefp ((__vector float) (a1))), \
9037 __builtin_altivec_compiletime_error ("vec_expte"))
9039 #define vec_floor(a1) \
9040 __ch (__un_args_eq (__vector float, (a1)), \
9041 ((__vector float) __builtin_altivec_vrfim ((__vector float) (a1))), \
9042 __builtin_altivec_compiletime_error ("vec_floor"))
9044 #define vec_ld(a, b) \
9045 __ch (__un_args_eq (const __vector unsigned char, *(b)), \
9046 ((__vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
9047 __ch (__un_args_eq (const unsigned char, *(b)), \
9048 ((__vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
9049 __ch (__un_args_eq (const __vector signed char, *(b)), \
9050 ((__vector signed char) __builtin_altivec_lvx ((a), (b))), \
9051 __ch (__un_args_eq (const signed char, *(b)), \
9052 ((__vector signed char) __builtin_altivec_lvx ((a), (b))), \
9053 __ch (__un_args_eq (const __vector bool char, *(b)), \
9054 ((__vector bool char) __builtin_altivec_lvx ((a), (b))), \
9055 __ch (__un_args_eq (const __vector unsigned short, *(b)), \
9056 ((__vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
9057 __ch (__un_args_eq (const unsigned short, *(b)), \
9058 ((__vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
9059 __ch (__un_args_eq (const __vector signed short, *(b)), \
9060 ((__vector signed short) __builtin_altivec_lvx ((a), (b))), \
9061 __ch (__un_args_eq (const short, *(b)), \
9062 ((__vector signed short) __builtin_altivec_lvx ((a), (b))), \
9063 __ch (__un_args_eq (const __vector bool short, *(b)), \
9064 ((__vector bool short) __builtin_altivec_lvx ((a), (b))), \
9065 __ch (__un_args_eq (const __vector pixel, *(b)), \
9066 ((__vector pixel) __builtin_altivec_lvx ((a), (b))), \
9067 __ch (__un_args_eq (const __vector unsigned int, *(b)), \
9068 ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
9069 __ch (__un_args_eq (const unsigned int, *(b)), \
9070 ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
9071 __ch (__un_args_eq (const unsigned long, *(b)), \
9072 ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
9073 __ch (__un_args_eq (const __vector signed int, *(b)), \
9074 ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \
9075 __ch (__un_args_eq (const int, *(b)), \
9076 ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \
9077 __ch (__un_args_eq (const long, *(b)), \
9078 ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \
9079 __ch (__un_args_eq (const __vector bool int, *(b)), \
9080 ((__vector bool int) __builtin_altivec_lvx ((a), (b))), \
9081 __ch (__un_args_eq (const __vector float, *(b)), \
9082 ((__vector float) __builtin_altivec_lvx ((a), (b))), \
9083 __ch (__un_args_eq (const float, *(b)), \
9084 ((__vector float) __builtin_altivec_lvx ((a), (b))), \
9085 __builtin_altivec_compiletime_error ("vec_ld")))))))))))))))))))))
9087 #define vec_lde(a, b) \
9088 __ch (__un_args_eq (const unsigned char, *(b)), \
9089 ((__vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
9090 __ch (__un_args_eq (const signed char, *(b)), \
9091 ((__vector signed char) __builtin_altivec_lvebx ((a), (b))), \
9092 __ch (__un_args_eq (const unsigned short, *(b)), \
9093 ((__vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
9094 __ch (__un_args_eq (const short, *(b)), \
9095 ((__vector signed short) __builtin_altivec_lvehx ((a), (b))), \
9096 __ch (__un_args_eq (const unsigned long, *(b)), \
9097 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
9098 __ch (__un_args_eq (const long, *(b)), \
9099 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
9100 __ch (__un_args_eq (const unsigned int, *(b)), \
9101 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
9102 __ch (__un_args_eq (const int, *(b)), \
9103 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
9104 __ch (__un_args_eq (const float, *(b)), \
9105 ((__vector float) __builtin_altivec_lvewx ((a), (b))), \
9106 __builtin_altivec_compiletime_error ("vec_lde"))))))))))
9108 #define vec_lvewx(a, b) \
9109 __ch (__un_args_eq (unsigned int, *(b)), \
9110 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
9111 __ch (__un_args_eq (signed int, *(b)), \
9112 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
9113 __ch (__un_args_eq (unsigned long, *(b)), \
9114 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
9115 __ch (__un_args_eq (signed long, *(b)), \
9116 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
9117 __ch (__un_args_eq (float, *(b)), \
9118 ((__vector float) __builtin_altivec_lvewx ((a), (b))), \
9119 __builtin_altivec_compiletime_error ("vec_lvewx"))))))
9121 #define vec_lvehx(a, b) \
9122 __ch (__un_args_eq (unsigned short, *(b)), \
9123 ((__vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
9124 __ch (__un_args_eq (signed short, *(b)), \
9125 ((__vector signed short) __builtin_altivec_lvehx ((a), (b))), \
9126 __builtin_altivec_compiletime_error ("vec_lvehx")))
9128 #define vec_lvebx(a, b) \
9129 __ch (__un_args_eq (unsigned char, *(b)), \
9130 ((__vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
9131 __ch (__un_args_eq (signed char, *(b)), \
9132 ((__vector signed char) __builtin_altivec_lvebx ((a), (b))), \
9133 __builtin_altivec_compiletime_error ("vec_lvebx")))
9135 #define vec_ldl(a, b) \
9136 __ch (__un_args_eq (const __vector unsigned char, *(b)), \
9137 ((__vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
9138 __ch (__un_args_eq (const unsigned char, *(b)), \
9139 ((__vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
9140 __ch (__un_args_eq (const __vector signed char, *(b)), \
9141 ((__vector signed char) __builtin_altivec_lvxl ((a), (b))), \
9142 __ch (__un_args_eq (const signed char, *(b)), \
9143 ((__vector signed char) __builtin_altivec_lvxl ((a), (b))), \
9144 __ch (__un_args_eq (const __vector bool char, *(b)), \
9145 ((__vector bool char) __builtin_altivec_lvxl ((a), (b))), \
9146 __ch (__un_args_eq (const __vector unsigned short, *(b)), \
9147 ((__vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
9148 __ch (__un_args_eq (const unsigned short, *(b)), \
9149 ((__vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
9150 __ch (__un_args_eq (const __vector signed short, *(b)), \
9151 ((__vector signed short) __builtin_altivec_lvxl ((a), (b))), \
9152 __ch (__un_args_eq (const short, *(b)), \
9153 ((__vector signed short) __builtin_altivec_lvxl ((a), (b))), \
9154 __ch (__un_args_eq (const __vector bool short, *(b)), \
9155 ((__vector bool short) __builtin_altivec_lvxl ((a), (b))), \
9156 __ch (__un_args_eq (const __vector pixel, *(b)), \
9157 ((__vector pixel) __builtin_altivec_lvxl ((a), (b))), \
9158 __ch (__un_args_eq (const __vector unsigned int, *(b)), \
9159 ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
9160 __ch (__un_args_eq (const unsigned int, *(b)), \
9161 ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
9162 __ch (__un_args_eq (const unsigned long, *(b)), \
9163 ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
9164 __ch (__un_args_eq (const __vector signed int, *(b)), \
9165 ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \
9166 __ch (__un_args_eq (const int, *(b)), \
9167 ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \
9168 __ch (__un_args_eq (const long, *(b)), \
9169 ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \
9170 __ch (__un_args_eq (const __vector bool int, *(b)), \
9171 ((__vector bool int) __builtin_altivec_lvxl ((a), (b))), \
9172 __ch (__un_args_eq (const __vector float, *(b)), \
9173 ((__vector float) __builtin_altivec_lvxl ((a), (b))), \
9174 __ch (__un_args_eq (const float, *(b)), \
9175 ((__vector float) __builtin_altivec_lvxl ((a), (b))), \
9176 __builtin_altivec_compiletime_error ("vec_ldl")))))))))))))))))))))
9178 #define vec_loge(a1) \
9179 __ch (__un_args_eq (__vector float, (a1)), \
9180 ((__vector float) __builtin_altivec_vlogefp ((__vector float) (a1))), \
9181 __builtin_altivec_compiletime_error ("vec_loge"))
9183 #define vec_lvsl(a1, a2) \
9184 __ch (__un_args_eq (const volatile unsigned char, *(a2)), \
9185 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9186 __ch (__un_args_eq (const volatile signed char, *(a2)), \
9187 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9188 __ch (__un_args_eq (const volatile unsigned short, *(a2)), \
9189 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9190 __ch (__un_args_eq (const volatile signed short, *(a2)), \
9191 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9192 __ch (__un_args_eq (const volatile unsigned int, *(a2)), \
9193 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9194 __ch (__un_args_eq (const volatile signed int, *(a2)), \
9195 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9196 __ch (__un_args_eq (const volatile unsigned long, *(a2)), \
9197 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9198 __ch (__un_args_eq (const volatile signed long, *(a2)), \
9199 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9200 __ch (__un_args_eq (const volatile float, *(a2)), \
9201 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
9202 __builtin_altivec_compiletime_error ("vec_lvsl"))))))))))
9204 #define vec_lvsr(a1, a2) \
9205 __ch (__un_args_eq (const volatile unsigned char, *(a2)), \
9206 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9207 __ch (__un_args_eq (const volatile signed char, *(a2)), \
9208 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9209 __ch (__un_args_eq (const volatile unsigned short, *(a2)), \
9210 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9211 __ch (__un_args_eq (const volatile signed short, *(a2)), \
9212 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9213 __ch (__un_args_eq (const volatile unsigned int, *(a2)), \
9214 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9215 __ch (__un_args_eq (const volatile signed int, *(a2)), \
9216 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9217 __ch (__un_args_eq (const volatile unsigned long, *(a2)), \
9218 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9219 __ch (__un_args_eq (const volatile signed long, *(a2)), \
9220 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9221 __ch (__un_args_eq (const volatile float, *(a2)), \
9222 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
9223 __builtin_altivec_compiletime_error ("vec_lvsr"))))))))))
9225 #define vec_madd(a1, a2, a3) \
9226 __ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector float, (a3)), \
9227 ((__vector float) __builtin_altivec_vmaddfp ((a1), (a2), (a3))), \
9228 __builtin_altivec_compiletime_error ("vec_madd"))
9230 #define vec_madds(a1, a2, a3) \
9231 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
9232 ((__vector signed short) __builtin_altivec_vmhaddshs ((a1), (a2), (a3))), \
9233 __builtin_altivec_compiletime_error ("vec_madds"))
9235 #define vec_max(a1, a2) \
9236 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
9237 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9238 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
9239 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9240 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9241 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9242 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
9243 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9244 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
9245 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9246 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9247 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9248 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
9249 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9250 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
9251 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9252 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9253 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9254 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
9255 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9256 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
9257 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9258 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9259 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9260 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
9261 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9262 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
9263 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9264 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9265 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9266 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
9267 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9268 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
9269 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9270 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9271 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9272 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9273 ((__vector float) __builtin_altivec_vmaxfp ((__vector float) (a1), (__vector float) (a2))), \
9274 __builtin_altivec_compiletime_error ("vec_max"))))))))))))))))))))
9276 #define vec_vmaxfp(a1, a2) \
9277 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9278 ((__vector float) __builtin_altivec_vmaxfp ((__vector float) (a1), (__vector float) (a2))), \
9279 __builtin_altivec_compiletime_error ("vec_vmaxfp"))
9281 #define vec_vmaxsw(a1, a2) \
9282 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
9283 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9284 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
9285 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9286 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9287 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9288 __builtin_altivec_compiletime_error ("vec_vmaxsw"))))
9290 #define vec_vmaxuw(a1, a2) \
9291 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
9292 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9293 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
9294 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9295 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9296 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9297 __builtin_altivec_compiletime_error ("vec_vmaxuw"))))
9299 #define vec_vmaxsh(a1, a2) \
9300 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
9301 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9302 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
9303 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9304 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9305 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9306 __builtin_altivec_compiletime_error ("vec_vmaxsh"))))
9308 #define vec_vmaxuh(a1, a2) \
9309 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
9310 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9311 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
9312 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9313 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9314 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9315 __builtin_altivec_compiletime_error ("vec_vmaxuh"))))
9317 #define vec_vmaxsb(a1, a2) \
9318 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
9319 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9320 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
9321 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9322 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9323 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9324 __builtin_altivec_compiletime_error ("vec_vmaxsb"))))
9326 #define vec_vmaxub(a1, a2) \
9327 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
9328 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9329 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
9330 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9331 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9332 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9333 __builtin_altivec_compiletime_error ("vec_vmaxub"))))
9335 #define vec_mergeh(a1, a2) \
9336 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9337 ((__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9338 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9339 ((__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9340 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
9341 ((__vector bool char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9342 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9343 ((__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9344 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9345 ((__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9346 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9347 ((__vector bool short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9348 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
9349 ((__vector pixel) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9350 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9351 ((__vector float) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9352 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9353 ((__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9354 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9355 ((__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9356 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9357 ((__vector bool int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9358 __builtin_altivec_compiletime_error ("vec_mergeh"))))))))))))
9360 #define vec_vmrghw(a1, a2) \
9361 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9362 ((__vector float) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9363 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9364 ((__vector bool int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9365 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9366 ((__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9367 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9368 ((__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9369 __builtin_altivec_compiletime_error ("vec_vmrghw")))))
9371 #define vec_vmrghh(a1, a2) \
9372 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9373 ((__vector bool short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9374 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9375 ((__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9376 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9377 ((__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9378 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
9379 ((__vector pixel) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9380 __builtin_altivec_compiletime_error ("vec_vmrghh")))))
9382 #define vec_vmrghb(a1, a2) \
9383 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
9384 ((__vector bool char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9385 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9386 ((__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9387 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9388 ((__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9389 __builtin_altivec_compiletime_error ("vec_vmrghb"))))
9391 #define vec_mergel(a1, a2) \
9392 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9393 ((__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9394 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9395 ((__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9396 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
9397 ((__vector bool char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9398 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9399 ((__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9400 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9401 ((__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9402 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9403 ((__vector bool short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9404 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
9405 ((__vector pixel) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9406 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9407 ((__vector float) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9408 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9409 ((__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9410 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9411 ((__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9412 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9413 ((__vector bool int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9414 __builtin_altivec_compiletime_error ("vec_mergel"))))))))))))
9416 #define vec_vmrglw(a1, a2) \
9417 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9418 ((__vector float) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9419 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9420 ((__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9421 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9422 ((__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9423 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9424 ((__vector bool int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9425 __builtin_altivec_compiletime_error ("vec_vmrglw")))))
9427 #define vec_vmrglh(a1, a2) \
9428 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9429 ((__vector bool short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9430 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9431 ((__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9432 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9433 ((__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9434 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
9435 ((__vector pixel) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9436 __builtin_altivec_compiletime_error ("vec_vmrglh")))))
9438 #define vec_vmrglb(a1, a2) \
9439 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
9440 ((__vector bool char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9441 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9442 ((__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9443 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9444 ((__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9445 __builtin_altivec_compiletime_error ("vec_vmrglb"))))
9447 #define vec_mfvscr() (((__vector unsigned short) __builtin_altivec_mfvscr ()))
9449 #define vec_min(a1, a2) \
9450 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
9451 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9452 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
9453 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9454 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9455 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9456 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
9457 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9458 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
9459 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9460 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9461 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9462 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
9463 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9464 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
9465 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9466 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9467 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9468 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
9469 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9470 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
9471 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9472 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9473 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9474 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
9475 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9476 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
9477 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9478 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9479 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9480 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
9481 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9482 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
9483 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9484 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9485 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9486 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9487 ((__vector float) __builtin_altivec_vminfp ((__vector float) (a1), (__vector float) (a2))), \
9488 __builtin_altivec_compiletime_error ("vec_min"))))))))))))))))))))
9490 #define vec_vminfp(a1, a2) \
9491 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9492 ((__vector float) __builtin_altivec_vminfp ((__vector float) (a1), (__vector float) (a2))), \
9493 __builtin_altivec_compiletime_error ("vec_vminfp"))
9495 #define vec_vminsw(a1, a2) \
9496 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
9497 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9498 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
9499 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9500 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9501 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9502 __builtin_altivec_compiletime_error ("vec_vminsw"))))
9504 #define vec_vminuw(a1, a2) \
9505 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
9506 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9507 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
9508 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9509 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9510 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9511 __builtin_altivec_compiletime_error ("vec_vminuw"))))
9513 #define vec_vminsh(a1, a2) \
9514 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
9515 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9516 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
9517 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9518 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9519 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9520 __builtin_altivec_compiletime_error ("vec_vminsh"))))
9522 #define vec_vminuh(a1, a2) \
9523 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
9524 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9525 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
9526 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9527 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9528 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9529 __builtin_altivec_compiletime_error ("vec_vminuh"))))
9531 #define vec_vminsb(a1, a2) \
9532 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
9533 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9534 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
9535 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9536 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9537 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9538 __builtin_altivec_compiletime_error ("vec_minsb"))))
9540 #define vec_vminub(a1, a2) \
9541 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
9542 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9543 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
9544 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9545 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9546 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9547 __builtin_altivec_compiletime_error ("vec_vminub"))))
9549 #define vec_mladd(a1, a2, a3) \
9550 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
9551 ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
9552 __ch (__tern_args_eq (__vector signed short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \
9553 ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
9554 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
9555 ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
9556 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \
9557 ((__vector unsigned short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
9558 __builtin_altivec_compiletime_error ("vec_mladd")))))
9560 #define vec_mradds(a1, a2, a3) \
9561 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
9562 ((__vector signed short) __builtin_altivec_vmhraddshs ((a1), (a2), (a3))), \
9563 __builtin_altivec_compiletime_error ("vec_mradds"))
9565 #define vec_msum(a1, a2, a3) \
9566 __ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned int, (a3)), \
9567 ((__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
9568 __ch (__tern_args_eq (__vector signed char, (a1), __vector unsigned char, (a2), __vector signed int, (a3)), \
9569 ((__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
9570 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
9571 ((__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9572 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
9573 ((__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9574 __builtin_altivec_compiletime_error ("vec_msum")))))
9576 #define vec_vmsumshm(a1, a2, a3) \
9577 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
9578 ((__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9579 __builtin_altivec_compiletime_error ("vec_vmsumshm"))
9581 #define vec_vmsumuhm(a1, a2, a3) \
9582 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
9583 ((__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9584 __builtin_altivec_compiletime_error ("vec_vmsumuhm"))
9586 #define vec_vmsummbm(a1, a2, a3) \
9587 __ch (__tern_args_eq (__vector signed char, (a1), __vector unsigned char, (a2), __vector signed int, (a3)), \
9588 ((__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
9589 __builtin_altivec_compiletime_error ("vec_vmsummbm"))
9591 #define vec_vmsumubm(a1, a2, a3) \
9592 __ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned int, (a3)), \
9593 ((__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
9594 __builtin_altivec_compiletime_error ("vec_vmsummbm"))
9596 #define vec_msums(a1, a2, a3) \
9597 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
9598 ((__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9599 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
9600 ((__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9601 __builtin_altivec_compiletime_error ("vec_msums")))
9603 #define vec_vmsumshs(a1, a2, a3) \
9604 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
9605 ((__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9606 __builtin_altivec_compiletime_error ("vec_vmsumshs"))
9608 #define vec_vmsumuhs(a1, a2, a3) \
9609 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
9610 ((__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
9611 __builtin_altivec_compiletime_error ("vec_vmsumuhs"))
9613 #define vec_mtvscr(a1) \
9614 __ch (__un_args_eq (__vector signed int, (a1)), \
9615 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9616 __ch (__un_args_eq (__vector unsigned int, (a1)), \
9617 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9618 __ch (__un_args_eq (__vector bool int, (a1)), \
9619 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9620 __ch (__un_args_eq (__vector signed short, (a1)), \
9621 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9622 __ch (__un_args_eq (__vector unsigned short, (a1)), \
9623 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9624 __ch (__un_args_eq (__vector bool short, (a1)), \
9625 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9626 __ch (__un_args_eq (__vector pixel, (a1)), \
9627 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9628 __ch (__un_args_eq (__vector signed char, (a1)), \
9629 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9630 __ch (__un_args_eq (__vector unsigned char, (a1)), \
9631 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9632 __ch (__un_args_eq (__vector bool char, (a1)), \
9633 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
9634 __builtin_altivec_compiletime_error ("vec_mtvscr")))))))))))
9636 #define vec_mule(a1, a2) \
9637 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9638 ((__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9639 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9640 ((__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9641 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9642 ((__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9643 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9644 ((__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9645 __builtin_altivec_compiletime_error ("vec_mule")))))
9647 #define vec_vmulesh(a1, a2) \
9648 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9649 ((__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9650 __builtin_altivec_compiletime_error ("vec_vmulesh"))
9652 #define vec_vmuleuh(a1, a2) \
9653 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9654 ((__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9655 __builtin_altivec_compiletime_error ("vec_vmuleuh"))
9657 #define vec_vmulesb(a1, a2) \
9658 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9659 ((__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9660 __builtin_altivec_compiletime_error ("vec_vmulesb"))
9662 #define vec_vmuleub(a1, a2) \
9663 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9664 ((__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9665 __builtin_altivec_compiletime_error ("vec_vmuleub"))
9667 #define vec_mulo(a1, a2) \
9668 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9669 ((__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9670 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9671 ((__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9672 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9673 ((__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9674 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9675 ((__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9676 __builtin_altivec_compiletime_error ("vec_mulo")))))
9678 #define vec_vmulosh(a1, a2) \
9679 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9680 ((__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9681 __builtin_altivec_compiletime_error ("vec_vmulosh"))
9683 #define vec_vmulouh(a1, a2) \
9684 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9685 ((__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9686 __builtin_altivec_compiletime_error ("vec_vmulouh"))
9688 #define vec_vmulosb(a1, a2) \
9689 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9690 ((__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9691 __builtin_altivec_compiletime_error ("vec_vmulosb"))
9693 #define vec_vmuloub(a1, a2) \
9694 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9695 ((__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) (a1), (__vector signed char) (a2))), \
9696 __builtin_altivec_compiletime_error ("vec_vmuloub"))
9698 #define vec_nmsub(a1, a2, a3) \
9699 __ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector float, (a3)), \
9700 ((__vector float) __builtin_altivec_vnmsubfp ((__vector float) (a1), (__vector float) (a2), (__vector float) (a3))), \
9701 __builtin_altivec_compiletime_error ("vec_nmsub"))
9703 #define vec_nor(a1, a2) \
9704 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9705 ((__vector float) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9706 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9707 ((__vector signed int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9708 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9709 ((__vector unsigned int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9710 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9711 ((__vector bool int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9712 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9713 ((__vector signed short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9714 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9715 ((__vector unsigned short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9716 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9717 ((__vector bool short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9718 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9719 ((__vector signed char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9720 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9721 ((__vector unsigned char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9722 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
9723 ((__vector bool char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9724 __builtin_altivec_compiletime_error ("vec_nor")))))))))))
9726 #define vec_or(a1, a2) \
9727 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
9728 ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9729 __ch (__bin_args_eq (__vector float, (a1), __vector bool int, (a2)), \
9730 ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9731 __ch (__bin_args_eq (__vector bool int, (a1), __vector float, (a2)), \
9732 ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9733 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9734 ((__vector bool int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9735 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
9736 ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9737 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
9738 ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9739 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9740 ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9741 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
9742 ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9743 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
9744 ((__vector unsigned int) __builtin_altivec_vor ((__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_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9747 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9748 ((__vector bool short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9749 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
9750 ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9751 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
9752 ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9753 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9754 ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9755 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
9756 ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9757 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
9758 ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9759 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9760 ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9761 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
9762 ((__vector bool char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9763 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
9764 ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9765 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
9766 ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9767 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
9768 ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9769 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
9770 ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9771 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
9772 ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9773 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9774 ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
9775 __builtin_altivec_compiletime_error ("vec_or")))))))))))))))))))))))))
9777 #define vec_pack(a1, a2) \
9778 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9779 ((__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
9780 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9781 ((__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
9782 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9783 ((__vector bool char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
9784 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9785 ((__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
9786 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9787 ((__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
9788 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9789 ((__vector bool short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
9790 __builtin_altivec_compiletime_error ("vec_pack")))))))
9792 #define vec_vpkuwum(a1, a2) \
9793 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
9794 ((__vector bool short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
9795 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9796 ((__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
9797 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9798 ((__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
9799 __builtin_altivec_compiletime_error ("vec_vpkuwum"))))
9801 #define vec_vpkuhum(a1, a2) \
9802 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
9803 ((__vector bool char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
9804 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9805 ((__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
9806 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9807 ((__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
9808 __builtin_altivec_compiletime_error ("vec_vpkuhum"))))
9810 #define vec_packpx(a1, a2) \
9811 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9812 ((__vector pixel) __builtin_altivec_vpkpx ((__vector signed int) (a1), (__vector signed int) (a2))), \
9813 __builtin_altivec_compiletime_error ("vec_packpx"))
9815 #define vec_packs(a1, a2) \
9816 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9817 ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \
9818 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9819 ((__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) (a1), (__vector signed short) (a2))), \
9820 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9821 ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \
9822 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9823 ((__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) (a1), (__vector signed int) (a2))), \
9824 __builtin_altivec_compiletime_error ("vec_packs")))))
9826 #define vec_vpkswss(a1, a2) \
9827 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9828 ((__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) (a1), (__vector signed int) (a2))), \
9829 __builtin_altivec_compiletime_error ("vec_vpkswss"))
9831 #define vec_vpkuwus(a1, a2) \
9832 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9833 ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \
9834 __builtin_altivec_compiletime_error ("vec_vpkuwus"))
9836 #define vec_vpkshss(a1, a2) \
9837 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9838 ((__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) (a1), (__vector signed short) (a2))), \
9839 __builtin_altivec_compiletime_error ("vec_vpkshss"))
9841 #define vec_vpkuhus(a1, a2) \
9842 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9843 ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \
9844 __builtin_altivec_compiletime_error ("vec_vpkuhus"))
9846 #define vec_packsu(a1, a2) \
9847 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9848 ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \
9849 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9850 ((__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) (a1), (__vector signed short) (a2))), \
9851 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9852 ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \
9853 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9854 ((__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) (a1), (__vector signed int) (a2))), \
9855 __builtin_altivec_compiletime_error ("vec_packsu")))))
9857 #define vec_vpkswus(a1, a2) \
9858 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
9859 ((__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) (a1), (__vector signed int) (a2))), \
9860 __builtin_altivec_compiletime_error ("vec_vpkswus"))
9862 #define vec_vpkshus(a1, a2) \
9863 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
9864 ((__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) (a1), (__vector signed short) (a2))), \
9865 __builtin_altivec_compiletime_error ("vec_vpkshus"))
9867 #define vec_perm(a1, a2, a3) \
9868 __ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector unsigned char, (a3)), \
9869 ((__vector float) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9870 __ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector unsigned char, (a3)), \
9871 ((__vector signed int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9872 __ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector unsigned char, (a3)), \
9873 ((__vector unsigned int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9874 __ch (__tern_args_eq (__vector bool int, (a1), __vector bool int, (a2), __vector unsigned char, (a3)), \
9875 ((__vector bool int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9876 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector unsigned char, (a3)), \
9877 ((__vector signed short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9878 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned char, (a3)), \
9879 ((__vector unsigned short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9880 __ch (__tern_args_eq (__vector bool short, (a1), __vector bool short, (a2), __vector unsigned char, (a3)), \
9881 ((__vector bool short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9882 __ch (__tern_args_eq (__vector pixel, (a1), __vector pixel, (a2), __vector unsigned char, (a3)), \
9883 ((__vector pixel) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9884 __ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector unsigned char, (a3)), \
9885 ((__vector signed char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9886 __ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned char, (a3)), \
9887 ((__vector unsigned char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9888 __ch (__tern_args_eq (__vector bool char, (a1), __vector bool char, (a2), __vector unsigned char, (a3)), \
9889 ((__vector bool char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
9890 __builtin_altivec_compiletime_error ("vec_perm"))))))))))))
9892 #define vec_re(a1) \
9893 __ch (__un_args_eq (__vector float, (a1)), \
9894 ((__vector float) __builtin_altivec_vrefp ((__vector float) (a1))), \
9895 __builtin_altivec_compiletime_error ("vec_re"))
9897 #define vec_rl(a1, a2) \
9898 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
9899 ((__vector signed char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9900 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9901 ((__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9902 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
9903 ((__vector signed short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9904 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9905 ((__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9906 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
9907 ((__vector signed int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9908 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9909 ((__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9910 __builtin_altivec_compiletime_error ("vec_rl")))))))
9912 #define vec_vrlw(a1, a2) \
9913 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
9914 ((__vector signed int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9915 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9916 ((__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9917 __builtin_altivec_compiletime_error ("vec_vrlw")))
9919 #define vec_vrlh(a1, a2) \
9920 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
9921 ((__vector signed short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9922 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9923 ((__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9924 __builtin_altivec_compiletime_error ("vec_vrlh")))
9926 #define vec_vrlb(a1, a2) \
9927 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
9928 ((__vector signed char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9929 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9930 ((__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9931 __builtin_altivec_compiletime_error ("vec_vrlb")))
9933 #define vec_round(a1) \
9934 __ch (__un_args_eq (__vector float, (a1)), \
9935 ((__vector float) __builtin_altivec_vrfin ((__vector float) (a1))), \
9936 __builtin_altivec_compiletime_error ("vec_round"))
9938 #define vec_rsqrte(a1) \
9939 __ch (__un_args_eq (__vector float, (a1)), \
9940 ((__vector float) __builtin_altivec_vrsqrtefp ((__vector float) (a1))), \
9941 __builtin_altivec_compiletime_error ("vec_rsqrte"))
9943 #define vec_sel(a1, a2, a3) \
9944 __ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector bool int, (a3)), \
9945 ((__vector float) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9946 __ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector unsigned int, (a3)), \
9947 ((__vector float) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9948 __ch (__tern_args_eq (__vector bool int, (a1), __vector bool int, (a2), __vector bool int, (a3)), \
9949 ((__vector bool int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9950 __ch (__tern_args_eq (__vector bool int, (a1), __vector bool int, (a2), __vector unsigned int, (a3)), \
9951 ((__vector bool int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9952 __ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector bool int, (a3)), \
9953 ((__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9954 __ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector unsigned int, (a3)), \
9955 ((__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9956 __ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector bool int, (a3)), \
9957 ((__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9958 __ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector unsigned int, (a3)), \
9959 ((__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9960 __ch (__tern_args_eq (__vector bool short, (a1), __vector bool short, (a2), __vector bool short, (a3)), \
9961 ((__vector bool short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9962 __ch (__tern_args_eq (__vector bool short, (a1), __vector bool short, (a2), __vector unsigned short, (a3)), \
9963 ((__vector bool short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9964 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector bool short, (a3)), \
9965 ((__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9966 __ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector unsigned short, (a3)), \
9967 ((__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9968 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector bool short, (a3)), \
9969 ((__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9970 __ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \
9971 ((__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9972 __ch (__tern_args_eq (__vector bool char, (a1), __vector bool char, (a2), __vector bool char, (a3)), \
9973 ((__vector bool char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9974 __ch (__tern_args_eq (__vector bool char, (a1), __vector bool char, (a2), __vector unsigned char, (a3)), \
9975 ((__vector bool char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9976 __ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector bool char, (a3)), \
9977 ((__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9978 __ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector unsigned char, (a3)), \
9979 ((__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9980 __ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector bool char, (a3)), \
9981 ((__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9982 __ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned char, (a3)), \
9983 ((__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
9984 __builtin_altivec_compiletime_error ("vec_sel")))))))))))))))))))))
9986 #define vec_sl(a1, a2) \
9987 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
9988 ((__vector signed char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9989 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
9990 ((__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
9991 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
9992 ((__vector signed short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9993 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
9994 ((__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
9995 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
9996 ((__vector signed int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9997 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
9998 ((__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
9999 __builtin_altivec_compiletime_error ("vec_sl")))))))
10001 #define vec_vslw(a1, a2) \
10002 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10003 ((__vector signed int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10004 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10005 ((__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10006 __builtin_altivec_compiletime_error ("vec_vslw")))
10008 #define vec_vslh(a1, a2) \
10009 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10010 ((__vector signed short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
10011 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10012 ((__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
10013 __builtin_altivec_compiletime_error ("vec_vslh")))
10015 #define vec_vslb(a1, a2) \
10016 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10017 ((__vector signed char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
10018 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10019 ((__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
10020 __builtin_altivec_compiletime_error ("vec_vslb")))
10022 #define vec_sld(a1, a2, a3) \
10023 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
10024 ((__vector float) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10025 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10026 ((__vector signed int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10027 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10028 ((__vector unsigned int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10029 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
10030 ((__vector bool int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10031 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10032 ((__vector signed short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10033 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10034 ((__vector unsigned short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10035 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
10036 ((__vector bool short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10037 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
10038 ((__vector pixel) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10039 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10040 ((__vector signed char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10041 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10042 ((__vector unsigned char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10043 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
10044 ((__vector bool char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
10045 __builtin_altivec_compiletime_error ("vec_sld"))))))))))))
10047 #define vec_sll(a1, a2) \
10048 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10049 ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10050 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned short, (a2)), \
10051 ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10052 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
10053 ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10054 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10055 ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10056 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned short, (a2)), \
10057 ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10058 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
10059 ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10060 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10061 ((__vector bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10062 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned short, (a2)), \
10063 ((__vector bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10064 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned char, (a2)), \
10065 ((__vector bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10066 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned int, (a2)), \
10067 ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10068 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10069 ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10070 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
10071 ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10072 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned int, (a2)), \
10073 ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10074 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10075 ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10076 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
10077 ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10078 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned int, (a2)), \
10079 ((__vector bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10080 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10081 ((__vector bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10082 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned char, (a2)), \
10083 ((__vector bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10084 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned int, (a2)), \
10085 ((__vector pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10086 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned short, (a2)), \
10087 ((__vector pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10088 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned char, (a2)), \
10089 ((__vector pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10090 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned int, (a2)), \
10091 ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10092 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned short, (a2)), \
10093 ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10094 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10095 ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10096 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
10097 ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10098 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned short, (a2)), \
10099 ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10100 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10101 ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10102 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned int, (a2)), \
10103 ((__vector bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10104 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned short, (a2)), \
10105 ((__vector bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10106 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10107 ((__vector bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
10108 __builtin_altivec_compiletime_error ("vec_sll")))))))))))))))))))))))))))))))
10110 #define vec_slo(a1, a2) \
10111 __ch (__bin_args_eq (__vector float, (a1), __vector signed char, (a2)), \
10112 ((__vector float) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10113 __ch (__bin_args_eq (__vector float, (a1), __vector unsigned char, (a2)), \
10114 ((__vector float) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10115 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed char, (a2)), \
10116 ((__vector signed int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10117 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
10118 ((__vector signed int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10119 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector signed char, (a2)), \
10120 ((__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10121 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
10122 ((__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10123 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed char, (a2)), \
10124 ((__vector signed short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10125 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
10126 ((__vector signed short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10127 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector signed char, (a2)), \
10128 ((__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10129 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
10130 ((__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10131 __ch (__bin_args_eq (__vector pixel, (a1), __vector signed char, (a2)), \
10132 ((__vector pixel) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10133 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned char, (a2)), \
10134 ((__vector pixel) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10135 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10136 ((__vector signed char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10137 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10138 ((__vector signed char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10139 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector signed char, (a2)), \
10140 ((__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10141 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10142 ((__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
10143 __builtin_altivec_compiletime_error ("vec_slo")))))))))))))))))
10145 #define vec_splat(a1, a2) \
10146 __ch (__un_args_eq (__vector signed char, (a1)), \
10147 ((__vector signed char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
10148 __ch (__un_args_eq (__vector unsigned char, (a1)), \
10149 ((__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
10150 __ch (__un_args_eq (__vector bool char, (a1)), \
10151 ((__vector bool char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
10152 __ch (__un_args_eq (__vector signed short, (a1)), \
10153 ((__vector signed short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10154 __ch (__un_args_eq (__vector unsigned short, (a1)), \
10155 ((__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10156 __ch (__un_args_eq (__vector bool short, (a1)), \
10157 ((__vector bool short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10158 __ch (__un_args_eq (__vector pixel, (a1)), \
10159 ((__vector pixel) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10160 __ch (__un_args_eq (__vector float, (a1)), \
10161 ((__vector float) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10162 __ch (__un_args_eq (__vector signed int, (a1)), \
10163 ((__vector signed int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10164 __ch (__un_args_eq (__vector unsigned int, (a1)), \
10165 ((__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10166 __ch (__un_args_eq (__vector bool int, (a1)), \
10167 ((__vector bool int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10168 __builtin_altivec_compiletime_error ("vec_splat"))))))))))))
10170 #define vec_vspltw(a1, a2) \
10171 __ch (__un_args_eq (__vector float, (a1)), \
10172 ((__vector float) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10173 __ch (__un_args_eq (__vector bool int, (a1)), \
10174 ((__vector bool int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10175 __ch (__un_args_eq (__vector signed int, (a1)), \
10176 ((__vector signed int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10177 __ch (__un_args_eq (__vector unsigned int, (a1)), \
10178 ((__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
10179 __builtin_altivec_compiletime_error ("vec_vspltw")))))
10181 #define vec_vsplth(a1, a2) \
10182 __ch (__un_args_eq (__vector bool short, (a1)), \
10183 ((__vector bool short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10184 __ch (__un_args_eq (__vector signed short, (a1)), \
10185 ((__vector signed short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10186 __ch (__un_args_eq (__vector unsigned short, (a1)), \
10187 ((__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10188 __ch (__un_args_eq (__vector pixel, (a1)), \
10189 ((__vector pixel) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
10190 __builtin_altivec_compiletime_error ("vec_vsplth")))))
10192 #define vec_vspltb(a1, a2) \
10193 __ch (__un_args_eq (__vector bool char, (a1)), \
10194 ((__vector bool char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
10195 __ch (__un_args_eq (__vector signed char, (a1)), \
10196 ((__vector signed char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
10197 __ch (__un_args_eq (__vector unsigned char, (a1)), \
10198 ((__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
10199 __builtin_altivec_compiletime_error ("vec_vspltb"))))
10201 #define vec_splat_s8(a1) ((__vector signed char) __builtin_altivec_vspltisb (a1))
10203 #define vec_splat_s16(a1) ((__vector signed short) __builtin_altivec_vspltish (a1))
10205 #define vec_splat_s32(a1) ((__vector signed int) __builtin_altivec_vspltisw (a1))
10207 #define vec_splat_u8(a1) ((__vector unsigned char) __builtin_altivec_vspltisb (a1))
10209 #define vec_splat_u16(a1) ((__vector unsigned short) __builtin_altivec_vspltish (a1))
10211 #define vec_splat_u32(a1) ((__vector unsigned int) __builtin_altivec_vspltisw (a1))
10213 #define vec_sr(a1, a2) \
10214 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10215 ((__vector signed char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
10216 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10217 ((__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
10218 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10219 ((__vector signed short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
10220 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10221 ((__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
10222 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10223 ((__vector signed int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10224 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10225 ((__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10226 __builtin_altivec_compiletime_error ("vec_sr")))))))
10228 #define vec_vsrw(a1, a2) \
10229 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10230 ((__vector signed int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10231 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10232 ((__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10233 __builtin_altivec_compiletime_error ("vec_vsrw")))
10235 #define vec_vsrh(a1, a2) \
10236 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10237 ((__vector signed short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
10238 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10239 ((__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
10240 __builtin_altivec_compiletime_error ("vec_vsrh")))
10242 #define vec_vsrb(a1, a2) \
10243 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10244 ((__vector signed char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
10245 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10246 ((__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
10247 __builtin_altivec_compiletime_error ("vec_vsrb")))
10249 #define vec_sra(a1, a2) \
10250 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10251 ((__vector signed char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
10252 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10253 ((__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
10254 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10255 ((__vector signed short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
10256 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10257 ((__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
10258 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10259 ((__vector signed int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10260 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10261 ((__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10262 __builtin_altivec_compiletime_error ("vec_sra")))))))
10264 #define vec_vsraw(a1, a2) \
10265 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10266 ((__vector signed int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10267 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10268 ((__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10269 __builtin_altivec_compiletime_error ("vec_vsraw")))
10271 #define vec_vsrah(a1, a2) \
10272 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10273 ((__vector signed short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
10274 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10275 ((__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
10276 __builtin_altivec_compiletime_error ("vec_vsrah")))
10278 #define vec_vsrab(a1, a2) \
10279 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10280 ((__vector signed char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
10281 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10282 ((__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
10283 __builtin_altivec_compiletime_error ("vec_vsrab")))
10285 #define vec_srl(a1, a2) \
10286 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
10287 ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10288 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned short, (a2)), \
10289 ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10290 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
10291 ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10292 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10293 ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10294 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned short, (a2)), \
10295 ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10296 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
10297 ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10298 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10299 ((__vector bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10300 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned short, (a2)), \
10301 ((__vector bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10302 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned char, (a2)), \
10303 ((__vector bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10304 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned int, (a2)), \
10305 ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10306 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
10307 ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10308 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
10309 ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10310 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned int, (a2)), \
10311 ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10312 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10313 ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10314 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
10315 ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10316 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned int, (a2)), \
10317 ((__vector bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10318 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10319 ((__vector bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10320 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned char, (a2)), \
10321 ((__vector bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10322 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned int, (a2)), \
10323 ((__vector pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10324 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned short, (a2)), \
10325 ((__vector pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10326 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned char, (a2)), \
10327 ((__vector pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10328 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned int, (a2)), \
10329 ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10330 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned short, (a2)), \
10331 ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10332 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10333 ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10334 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
10335 ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10336 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned short, (a2)), \
10337 ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10338 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10339 ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10340 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned int, (a2)), \
10341 ((__vector bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10342 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned short, (a2)), \
10343 ((__vector bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10344 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10345 ((__vector bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
10346 __builtin_altivec_compiletime_error ("vec_srl")))))))))))))))))))))))))))))))
10348 #define vec_sro(a1, a2) \
10349 __ch (__bin_args_eq (__vector float, (a1), __vector signed char, (a2)), \
10350 ((__vector float) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10351 __ch (__bin_args_eq (__vector float, (a1), __vector unsigned char, (a2)), \
10352 ((__vector float) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10353 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed char, (a2)), \
10354 ((__vector signed int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10355 __ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
10356 ((__vector signed int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10357 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector signed char, (a2)), \
10358 ((__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10359 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
10360 ((__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10361 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed char, (a2)), \
10362 ((__vector signed short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10363 __ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
10364 ((__vector signed short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10365 __ch (__bin_args_eq (__vector pixel, (a1), __vector signed char, (a2)), \
10366 ((__vector pixel) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10367 __ch (__bin_args_eq (__vector pixel, (a1), __vector unsigned char, (a2)), \
10368 ((__vector pixel) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10369 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector signed char, (a2)), \
10370 ((__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10371 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
10372 ((__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10373 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10374 ((__vector signed char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10375 __ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
10376 ((__vector signed char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10377 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector signed char, (a2)), \
10378 ((__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10379 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10380 ((__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
10381 __builtin_altivec_compiletime_error ("vec_sro")))))))))))))))))
10383 #define vec_st(a1, a2, a3) \
10384 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, *(a3)), \
10385 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10386 __ch (__bin_args_eq (__vector unsigned char, (a1), unsigned char, *(a3)), \
10387 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10388 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, *(a3)), \
10389 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10390 __ch (__bin_args_eq (__vector signed char, (a1), signed char, *(a3)), \
10391 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10392 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, *(a3)), \
10393 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10394 __ch (__bin_args_eq (__vector bool char, (a1), unsigned char, *(a3)), \
10395 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10396 __ch (__bin_args_eq (__vector bool char, (a1), signed char, *(a3)), \
10397 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10398 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, *(a3)), \
10399 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10400 __ch (__bin_args_eq (__vector unsigned short, (a1), unsigned short, *(a3)), \
10401 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10402 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, *(a3)), \
10403 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10404 __ch (__bin_args_eq (__vector signed short, (a1), short, *(a3)), \
10405 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10406 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, *(a3)), \
10407 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10408 __ch (__bin_args_eq (__vector bool short, (a1), unsigned short, *(a3)), \
10409 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10410 __ch (__bin_args_eq (__vector bool short, (a1), short, *(a3)), \
10411 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10412 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, *(a3)), \
10413 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10414 __ch (__bin_args_eq (__vector pixel, (a1), unsigned short, *(a3)), \
10415 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10416 __ch (__bin_args_eq (__vector pixel, (a1), short, *(a3)), \
10417 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10418 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, *(a3)), \
10419 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10420 __ch (__bin_args_eq (__vector unsigned int, (a1), unsigned int, *(a3)), \
10421 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10422 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, *(a3)), \
10423 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10424 __ch (__bin_args_eq (__vector signed int, (a1), int, *(a3)), \
10425 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10426 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, *(a3)), \
10427 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10428 __ch (__bin_args_eq (__vector bool int, (a1), unsigned int, *(a3)), \
10429 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10430 __ch (__bin_args_eq (__vector bool int, (a1), int, *(a3)), \
10431 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10432 __ch (__bin_args_eq (__vector float, (a1), __vector float, *(a3)), \
10433 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10434 __ch (__bin_args_eq (__vector float, (a1), float, *(a3)), \
10435 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
10436 __builtin_altivec_compiletime_error ("vec_st")))))))))))))))))))))))))))
10438 #define vec_stl(a1, a2, a3) \
10439 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, *(a3)), \
10440 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10441 __ch (__bin_args_eq (__vector unsigned char, (a1), unsigned char, *(a3)), \
10442 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10443 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, *(a3)), \
10444 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10445 __ch (__bin_args_eq (__vector signed char, (a1), signed char, *(a3)), \
10446 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10447 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, *(a3)), \
10448 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10449 __ch (__bin_args_eq (__vector bool char, (a1), unsigned char, *(a3)), \
10450 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10451 __ch (__bin_args_eq (__vector bool char, (a1), signed char, *(a3)), \
10452 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10453 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, *(a3)), \
10454 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10455 __ch (__bin_args_eq (__vector unsigned short, (a1), unsigned short, *(a3)), \
10456 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10457 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, *(a3)), \
10458 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10459 __ch (__bin_args_eq (__vector signed short, (a1), short, *(a3)), \
10460 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10461 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, *(a3)), \
10462 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10463 __ch (__bin_args_eq (__vector bool short, (a1), unsigned short, *(a3)), \
10464 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10465 __ch (__bin_args_eq (__vector bool short, (a1), short, *(a3)), \
10466 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10467 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, *(a3)), \
10468 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10469 __ch (__bin_args_eq (__vector pixel, (a1), unsigned short, *(a3)), \
10470 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10471 __ch (__bin_args_eq (__vector pixel, (a1), short, *(a3)), \
10472 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10473 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, *(a3)), \
10474 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10475 __ch (__bin_args_eq (__vector unsigned int, (a1), unsigned int, *(a3)), \
10476 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10477 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, *(a3)), \
10478 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10479 __ch (__bin_args_eq (__vector signed int, (a1), int, *(a3)), \
10480 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10481 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, *(a3)), \
10482 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10483 __ch (__bin_args_eq (__vector bool int, (a1), unsigned int, *(a3)), \
10484 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10485 __ch (__bin_args_eq (__vector bool int, (a1), int, *(a3)), \
10486 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10487 __ch (__bin_args_eq (__vector float, (a1), __vector float, *(a3)), \
10488 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10489 __ch (__bin_args_eq (__vector float, (a1), float, *(a3)), \
10490 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
10491 __builtin_altivec_compiletime_error ("vec_stl")))))))))))))))))))))))))))
10493 #define vec_ste(a, b, c) \
10494 __ch (__bin_args_eq (__vector unsigned char, (a), unsigned char, *(c)), \
10495 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
10496 __ch (__bin_args_eq (__vector signed char, (a), signed char, *(c)), \
10497 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
10498 __ch (__bin_args_eq (__vector bool char, (a), unsigned char, *(c)), \
10499 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
10500 __ch (__bin_args_eq (__vector bool char, (a), signed char, *(c)), \
10501 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
10502 __ch (__bin_args_eq (__vector unsigned short, (a), unsigned short, *(c)), \
10503 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
10504 __ch (__bin_args_eq (__vector signed short, (a), short, *(c)), \
10505 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
10506 __ch (__bin_args_eq (__vector bool short, (a), unsigned short, *(c)), \
10507 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
10508 __ch (__bin_args_eq (__vector bool short, (a), short, *(c)), \
10509 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
10510 __ch (__bin_args_eq (__vector pixel, (a), unsigned short, *(c)), \
10511 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
10512 __ch (__bin_args_eq (__vector pixel, (a), short, *(c)), \
10513 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
10514 __ch (__bin_args_eq (__vector unsigned int, (a), unsigned int, *(c)), \
10515 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
10516 __ch (__bin_args_eq (__vector signed int, (a), int, *(c)), \
10517 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
10518 __ch (__bin_args_eq (__vector bool int, (a), unsigned int, *(c)), \
10519 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
10520 __ch (__bin_args_eq (__vector bool int, (a), int, *(c)), \
10521 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
10522 __ch (__bin_args_eq (__vector float, (a), float, *(c)), \
10523 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
10524 __builtin_altivec_compiletime_error ("vec_ste"))))))))))))))))
10526 #define vec_stvewx(a, b, c) \
10527 __ch (__bin_args_eq (__vector unsigned int, (a), unsigned int, *(c)), \
10528 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
10529 __ch (__bin_args_eq (__vector signed int, (a), int, *(c)), \
10530 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
10531 __ch (__bin_args_eq (__vector bool int, (a), unsigned int, *(c)), \
10532 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
10533 __ch (__bin_args_eq (__vector bool int, (a), int, *(c)), \
10534 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
10535 __ch (__bin_args_eq (__vector float, (a), float, *(c)), \
10536 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
10537 __builtin_altivec_compiletime_error ("vec_stvewx"))))))
10539 #define vec_stvehx(a, b, c) \
10540 __ch (__bin_args_eq (__vector unsigned short, (a), unsigned short, *(c)), \
10541 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
10542 __ch (__bin_args_eq (__vector signed short, (a), short, *(c)), \
10543 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
10544 __ch (__bin_args_eq (__vector bool short, (a), unsigned short, *(c)), \
10545 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
10546 __ch (__bin_args_eq (__vector bool short, (a), short, *(c)), \
10547 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
10548 __ch (__bin_args_eq (__vector pixel, (a), unsigned short, *(c)), \
10549 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
10550 __ch (__bin_args_eq (__vector pixel, (a), short, *(c)), \
10551 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
10552 __builtin_altivec_compiletime_error ("vec_stvehx")))))))
10554 #define vec_stvebx(a, b, c) \
10555 __ch (__bin_args_eq (__vector unsigned char, (a), unsigned char, *(c)), \
10556 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
10557 __ch (__bin_args_eq (__vector signed char, (a), signed char, *(c)), \
10558 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
10559 __ch (__bin_args_eq (__vector bool char, (a), unsigned char, *(c)), \
10560 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
10561 __ch (__bin_args_eq (__vector bool char, (a), signed char, *(c)), \
10562 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
10563 __builtin_altivec_compiletime_error ("vec_stvebx")))))
10565 #define vec_sub(a1, a2) \
10566 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10567 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10568 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10569 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10570 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10571 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10572 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10573 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10574 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10575 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10576 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10577 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10578 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10579 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10580 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10581 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10582 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10583 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10584 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10585 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10586 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10587 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10588 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10589 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10590 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10591 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10592 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10593 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10594 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10595 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10596 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10597 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10598 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10599 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10600 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10601 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10602 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
10603 ((__vector float) __builtin_altivec_vsubfp ((__vector float) (a1), (__vector float) (a2))), \
10604 __builtin_altivec_compiletime_error ("vec_sub"))))))))))))))))))))
10606 #define vec_vsubfp(a1, a2) \
10607 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
10608 ((__vector float) __builtin_altivec_vsubfp ((__vector float) (a1), (__vector float) (a2))), \
10609 __builtin_altivec_compiletime_error ("vec_vsubfp"))
10611 #define vec_vsubuwm(a1, a2) \
10612 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10613 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10614 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10615 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10616 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10617 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10618 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10619 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10620 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10621 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10622 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10623 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
10624 __builtin_altivec_compiletime_error ("vec_vsubuwm")))))))
10626 #define vec_vsubuhm(a1, a2) \
10627 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10628 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10629 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10630 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10631 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10632 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10633 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10634 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10635 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10636 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10637 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10638 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
10639 __builtin_altivec_compiletime_error ("vec_vsubuhm")))))))
10641 #define vec_vsububm(a1, a2) \
10642 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10643 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10644 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10645 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10646 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10647 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10648 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10649 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10650 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10651 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10652 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10653 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
10654 __builtin_altivec_compiletime_error ("vec_vsububm")))))))
10656 #define vec_subc(a1, a2) \
10657 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10658 ((__vector unsigned int) __builtin_altivec_vsubcuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
10659 __builtin_altivec_compiletime_error ("vec_subc"))
10661 #define vec_subs(a1, a2) \
10662 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10663 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10664 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10665 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10666 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10667 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10668 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10669 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10670 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10671 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10672 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10673 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10674 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10675 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10676 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10677 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10678 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10679 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10680 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10681 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10682 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10683 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10684 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10685 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10686 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10687 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10688 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10689 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10690 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10691 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10692 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10693 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10694 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10695 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10696 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10697 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10698 __builtin_altivec_compiletime_error ("vec_subs")))))))))))))))))))
10700 #define vec_vsubsws(a1, a2) \
10701 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10702 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10703 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10704 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10705 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10706 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10707 __builtin_altivec_compiletime_error ("vec_vsubsws"))))
10709 #define vec_vsubuws(a1, a2) \
10710 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10711 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10712 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10713 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10714 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10715 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10716 __builtin_altivec_compiletime_error ("vec_vsubuws"))))
10718 #define vec_vsubshs(a1, a2) \
10719 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10720 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10721 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10722 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10723 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10724 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10725 __builtin_altivec_compiletime_error ("vec_vsubshs"))))
10727 #define vec_vsubuhs(a1, a2) \
10728 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10729 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10730 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10731 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10732 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10733 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
10734 __builtin_altivec_compiletime_error ("vec_vsubuhs"))))
10736 #define vec_vsubsbs(a1, a2) \
10737 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10738 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10739 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10740 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10741 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10742 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10743 __builtin_altivec_compiletime_error ("vec_vsubsbs"))))
10745 #define vec_vsububs(a1, a2) \
10746 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10747 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10748 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10749 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10750 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10751 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
10752 __builtin_altivec_compiletime_error ("vec_vsububs"))))
10754 #define vec_sum4s(a1, a2) \
10755 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
10756 ((__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) (a1), (__vector signed int) (a2))), \
10757 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed int, (a2)), \
10758 ((__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) (a1), (__vector signed int) (a2))), \
10759 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed int, (a2)), \
10760 ((__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) (a1), (__vector signed int) (a2))), \
10761 __builtin_altivec_compiletime_error ("vec_sum4s"))))
10763 #define vec_vsum4shs(a1, a2) \
10764 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed int, (a2)), \
10765 ((__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) (a1), (__vector signed int) (a2))), \
10766 __builtin_altivec_compiletime_error ("vec_vsum4shs"))
10768 #define vec_vsum4sbs(a1, a2) \
10769 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed int, (a2)), \
10770 ((__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) (a1), (__vector signed int) (a2))), \
10771 __builtin_altivec_compiletime_error ("vec_vsum4sbs"))
10773 #define vec_vsum4ubs(a1, a2) \
10774 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
10775 ((__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) (a1), (__vector signed int) (a2))), \
10776 __builtin_altivec_compiletime_error ("vec_vsum4ubs"))
10778 #define vec_sum2s(a1, a2) \
10779 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10780 ((__vector signed int) __builtin_altivec_vsum2sws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10781 __builtin_altivec_compiletime_error ("vec_sum2s"))
10783 #define vec_sums(a1, a2) \
10784 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10785 ((__vector signed int) __builtin_altivec_vsumsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
10786 __builtin_altivec_compiletime_error ("vec_sums"))
10788 #define vec_trunc(a1) \
10789 __ch (__un_args_eq (__vector float, (a1)), \
10790 ((__vector float) __builtin_altivec_vrfiz ((__vector float) (a1))), \
10791 __builtin_altivec_compiletime_error ("vec_trunc"))
10793 #define vec_unpackh(a1) \
10794 __ch (__un_args_eq (__vector signed char, (a1)), \
10795 ((__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
10796 __ch (__un_args_eq (__vector bool char, (a1)), \
10797 ((__vector bool short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
10798 __ch (__un_args_eq (__vector pixel, (a1)), \
10799 ((__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) (a1))), \
10800 __ch (__un_args_eq (__vector signed short, (a1)), \
10801 ((__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
10802 __ch (__un_args_eq (__vector bool short, (a1)), \
10803 ((__vector bool int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
10804 __builtin_altivec_compiletime_error ("vec_unpackh"))))))
10806 #define vec_vupkhsh(a1) \
10807 __ch (__un_args_eq (__vector bool short, (a1)), \
10808 ((__vector bool int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
10809 __ch (__un_args_eq (__vector signed short, (a1)), \
10810 ((__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
10811 __builtin_altivec_compiletime_error ("vec_vupkhsh")))
10813 #define vec_vupkhpx(a1) \
10814 __ch (__un_args_eq (__vector pixel, (a1)), \
10815 ((__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) (a1))), \
10816 __builtin_altivec_compiletime_error ("vec_vupkhpx"))
10818 #define vec_vupkhsb(a1) \
10819 __ch (__un_args_eq (__vector bool char, (a1)), \
10820 ((__vector bool short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
10821 __ch (__un_args_eq (__vector signed char, (a1)), \
10822 ((__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
10823 __builtin_altivec_compiletime_error ("vec_vupkhsb")))
10825 #define vec_unpackl(a1) \
10826 __ch (__un_args_eq (__vector signed char, (a1)), \
10827 ((__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
10828 __ch (__un_args_eq (__vector bool char, (a1)), \
10829 ((__vector bool short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
10830 __ch (__un_args_eq (__vector pixel, (a1)), \
10831 ((__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) (a1))), \
10832 __ch (__un_args_eq (__vector signed short, (a1)), \
10833 ((__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
10834 __ch (__un_args_eq (__vector bool short, (a1)), \
10835 ((__vector bool int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
10836 __builtin_altivec_compiletime_error ("vec_unpackl"))))))
10838 #define vec_vupklsh(a1) \
10839 __ch (__un_args_eq (__vector bool short, (a1)), \
10840 ((__vector bool int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
10841 __ch (__un_args_eq (__vector signed short, (a1)), \
10842 ((__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
10843 __builtin_altivec_compiletime_error ("vec_vupklsh")))
10845 #define vec_vupklpx(a1) \
10846 __ch (__un_args_eq (__vector pixel, (a1)), \
10847 ((__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) (a1))), \
10848 __builtin_altivec_compiletime_error ("vec_vupklpx"))
10850 #define vec_vupklsb(a1) \
10851 __ch (__un_args_eq (__vector bool char, (a1)), \
10852 ((__vector bool short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
10853 __ch (__un_args_eq (__vector signed char, (a1)), \
10854 ((__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
10855 __builtin_altivec_compiletime_error ("vec_vupklsb")))
10857 #define vec_xor(a1, a2) \
10858 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
10859 ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10860 __ch (__bin_args_eq (__vector float, (a1), __vector bool int, (a2)), \
10861 ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10862 __ch (__bin_args_eq (__vector bool int, (a1), __vector float, (a2)), \
10863 ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10864 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
10865 ((__vector bool int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10866 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10867 ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10868 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10869 ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10870 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10871 ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10872 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10873 ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10874 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10875 ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10876 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10877 ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10878 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
10879 ((__vector bool short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10880 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10881 ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10882 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10883 ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10884 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10885 ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10886 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10887 ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10888 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10889 ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10890 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10891 ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10892 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
10893 ((__vector bool char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10894 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10895 ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10896 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10897 ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10898 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10899 ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10900 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10901 ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10902 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10903 ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10904 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10905 ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
10906 __builtin_altivec_compiletime_error ("vec_xor")))))))))))))))))))))))))
10908 /* Predicates. */
10910 #define vec_all_eq(a1, a2) \
10911 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10912 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10913 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10914 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10915 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10916 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10917 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10918 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10919 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10920 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10921 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10922 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10923 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
10924 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
10925 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10926 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10927 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10928 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10929 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10930 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10931 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10932 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10933 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10934 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10935 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10936 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10937 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
10938 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10939 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
10940 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
10941 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10942 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10943 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10944 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10945 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10946 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10947 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10948 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10949 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10950 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10951 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10952 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10953 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
10954 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
10955 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
10956 __builtin_altivec_vcmpeqfp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \
10957 __builtin_altivec_compiletime_error ("vec_all_eq"))))))))))))))))))))))))
10959 #define vec_all_ge(a1, a2) \
10960 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
10961 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
10962 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
10963 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
10964 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
10965 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
10966 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
10967 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
10968 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
10969 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
10970 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
10971 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
10972 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
10973 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
10974 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
10975 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
10976 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
10977 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
10978 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
10979 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
10980 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
10981 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
10982 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
10983 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
10984 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
10985 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
10986 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
10987 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
10988 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
10989 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
10990 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
10991 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
10992 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
10993 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
10994 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
10995 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
10996 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
10997 __builtin_altivec_vcmpgefp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \
10998 __builtin_altivec_compiletime_error ("vec_all_ge"))))))))))))))))))))
11000 #define vec_all_gt(a1, a2) \
11001 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11002 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
11003 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11004 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
11005 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11006 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
11007 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11008 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
11009 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11010 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
11011 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11012 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
11013 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11014 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
11015 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11016 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
11017 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11018 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
11019 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11020 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
11021 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11022 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
11023 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11024 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
11025 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11026 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
11027 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11028 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
11029 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11030 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
11031 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11032 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
11033 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11034 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
11035 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11036 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
11037 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11038 __builtin_altivec_vcmpgtfp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \
11039 __builtin_altivec_compiletime_error ("vec_all_gt"))))))))))))))))))))
11041 #define vec_all_in(a1, a2) \
11042 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11043 __builtin_altivec_vcmpbfp_p (__CR6_EQ, (a1), (a2)), \
11044 __builtin_altivec_compiletime_error ("vec_all_in"))
11046 #define vec_all_le(a1, a2) \
11047 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11048 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11049 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11050 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11051 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11052 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11053 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11054 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11055 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11056 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11057 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11058 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11059 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11060 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11061 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11062 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11063 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11064 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11065 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11066 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11067 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11068 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11069 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11070 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11071 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11072 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11073 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11074 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11075 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11076 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11077 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11078 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11079 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11080 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11081 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11082 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11083 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11084 __builtin_altivec_vcmpgefp_p (__CR6_LT, (__vector float) (a2), (__vector float) (a1)), \
11085 __builtin_altivec_compiletime_error ("vec_all_le"))))))))))))))))))))
11087 #define vec_all_lt(a1, a2) \
11088 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11089 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
11090 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11091 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
11092 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11093 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
11094 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11095 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
11096 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11097 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
11098 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11099 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
11100 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11101 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
11102 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11103 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
11104 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11105 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
11106 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11107 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
11108 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11109 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
11110 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11111 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
11112 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11113 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
11114 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11115 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
11116 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11117 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
11118 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11119 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
11120 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11121 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
11122 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11123 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
11124 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11125 __builtin_altivec_vcmpgtfp_p (__CR6_LT, (__vector float) (a2), (__vector float) (a1)), \
11126 __builtin_altivec_compiletime_error ("vec_all_lt"))))))))))))))))))))
11128 #define vec_all_nan(a1) \
11129 __ch (__un_args_eq (__vector float, (a1)), \
11130 __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (a1), (a1)), \
11131 __builtin_altivec_compiletime_error ("vec_all_nan"))
11133 #define vec_all_ne(a1, a2) \
11134 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11135 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11136 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11137 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11138 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11139 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11140 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11141 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11142 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11143 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11144 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11145 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11146 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
11147 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
11148 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11149 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11150 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11151 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11152 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11153 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11154 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11155 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11156 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11157 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11158 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11159 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11160 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
11161 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11162 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
11163 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
11164 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11165 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11166 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11167 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11168 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11169 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11170 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11171 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11172 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11173 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11174 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11175 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11176 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
11177 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
11178 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11179 __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (__vector float) (a1), (__vector float) (a2)), \
11180 __builtin_altivec_compiletime_error ("vec_all_ne"))))))))))))))))))))))))
11182 #define vec_all_nge(a1, a2) \
11183 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11184 __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a1), (a2)), \
11185 __builtin_altivec_compiletime_error ("vec_all_nge"))
11187 #define vec_all_ngt(a1, a2) \
11188 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11189 __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a1), (a2)), \
11190 __builtin_altivec_compiletime_error ("vec_all_ngt"))
11192 #define vec_all_nle(a1, a2) \
11193 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11194 __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a2), (a1)), \
11195 __builtin_altivec_compiletime_error ("vec_all_nle"))
11197 #define vec_all_nlt(a1, a2) \
11198 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11199 __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a2), (a1)), \
11200 __builtin_altivec_compiletime_error ("vec_all_nlt"))
11202 #define vec_all_numeric(a1) \
11203 __ch (__un_args_eq (__vector float, (a1)), \
11204 __builtin_altivec_vcmpeqfp_p (__CR6_LT, (a1), (a1)), \
11205 __builtin_altivec_compiletime_error ("vec_all_numeric"))
11207 #define vec_any_eq(a1, a2) \
11208 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11209 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11210 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11211 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11212 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11213 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11214 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11215 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11216 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11217 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11218 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11219 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11220 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
11221 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11222 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11223 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11224 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11225 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11226 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11227 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11228 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11229 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11230 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11231 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11232 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11233 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11234 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
11235 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11236 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
11237 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11238 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11239 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11240 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11241 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11242 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11243 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11244 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11245 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11246 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11247 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11248 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11249 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11250 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
11251 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11252 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11253 __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \
11254 __builtin_altivec_compiletime_error ("vec_any_eq"))))))))))))))))))))))))
11256 #define vec_any_ge(a1, a2) \
11257 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11258 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11259 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11260 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11261 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11262 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11263 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11264 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11265 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11266 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11267 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11268 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11269 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11270 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11271 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11272 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11273 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11274 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11275 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11276 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11277 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11278 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11279 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11280 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11281 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11282 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11283 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11284 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11285 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11286 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11287 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11288 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11289 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11290 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11291 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11292 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11293 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11294 __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \
11295 __builtin_altivec_compiletime_error ("vec_any_ge"))))))))))))))))))))
11297 #define vec_any_gt(a1, a2) \
11298 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11299 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11300 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11301 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11302 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11303 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11304 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11305 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11306 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11307 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11308 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11309 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11310 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11311 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11312 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11313 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11314 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11315 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11316 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11317 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11318 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11319 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11320 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11321 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11322 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11323 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11324 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11325 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11326 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11327 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11328 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11329 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11330 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11331 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11332 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11333 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11334 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11335 __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \
11336 __builtin_altivec_compiletime_error ("vec_any_gt"))))))))))))))))))))
11338 #define vec_any_le(a1, a2) \
11339 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11340 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11341 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11342 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11343 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11344 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11345 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11346 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11347 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11348 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11349 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11350 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11351 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11352 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11353 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11354 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11355 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11356 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11357 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11358 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11359 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11360 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11361 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11362 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11363 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11364 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11365 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11366 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11367 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11368 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11369 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11370 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11371 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11372 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11373 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11374 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11375 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11376 __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (__vector float) (a2), (__vector float) (a1)), \
11377 __builtin_altivec_compiletime_error ("vec_any_le"))))))))))))))))))))
11379 #define vec_any_lt(a1, a2) \
11380 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11381 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11382 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11383 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11384 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11385 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11386 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11387 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11388 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11389 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11390 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11391 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
11392 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11393 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11394 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11395 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11396 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11397 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11398 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11399 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11400 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11401 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11402 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11403 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
11404 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11405 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11406 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11407 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11408 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11409 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11410 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11411 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11412 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11413 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11414 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11415 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
11416 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11417 __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (__vector float) (a2), (__vector float) (a1)), \
11418 __builtin_altivec_compiletime_error ("vec_any_lt"))))))))))))))))))))
11420 #define vec_any_nan(a1) \
11421 __ch (__un_args_eq (__vector float, (a1)), \
11422 __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (a1), (a1)), \
11423 __builtin_altivec_compiletime_error ("vec_any_nan"))
11425 #define vec_any_ne(a1, a2) \
11426 __ch (__bin_args_eq (__vector bool char, (a1), __vector unsigned char, (a2)), \
11427 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11428 __ch (__bin_args_eq (__vector bool char, (a1), __vector signed char, (a2)), \
11429 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11430 __ch (__bin_args_eq (__vector signed char, (a1), __vector bool char, (a2)), \
11431 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11432 __ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
11433 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11434 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector bool char, (a2)), \
11435 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11436 __ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
11437 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11438 __ch (__bin_args_eq (__vector bool char, (a1), __vector bool char, (a2)), \
11439 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
11440 __ch (__bin_args_eq (__vector bool short, (a1), __vector unsigned short, (a2)), \
11441 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11442 __ch (__bin_args_eq (__vector bool short, (a1), __vector signed short, (a2)), \
11443 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11444 __ch (__bin_args_eq (__vector signed short, (a1), __vector bool short, (a2)), \
11445 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11446 __ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
11447 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11448 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector bool short, (a2)), \
11449 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11450 __ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
11451 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11452 __ch (__bin_args_eq (__vector bool short, (a1), __vector bool short, (a2)), \
11453 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11454 __ch (__bin_args_eq (__vector pixel, (a1), __vector pixel, (a2)), \
11455 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
11456 __ch (__bin_args_eq (__vector bool int, (a1), __vector unsigned int, (a2)), \
11457 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11458 __ch (__bin_args_eq (__vector bool int, (a1), __vector signed int, (a2)), \
11459 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11460 __ch (__bin_args_eq (__vector signed int, (a1), __vector bool int, (a2)), \
11461 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11462 __ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
11463 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11464 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector bool int, (a2)), \
11465 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11466 __ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
11467 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11468 __ch (__bin_args_eq (__vector bool int, (a1), __vector bool int, (a2)), \
11469 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
11470 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11471 __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (__vector float) (a1), (__vector float) (a2)), \
11472 __builtin_altivec_compiletime_error ("vec_any_ne"))))))))))))))))))))))))
11474 #define vec_any_nge(a1, a2) \
11475 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11476 __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a1), (a2)), \
11477 __builtin_altivec_compiletime_error ("vec_any_nge"))
11479 #define vec_any_ngt(a1, a2) \
11480 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11481 __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a1), (a2)), \
11482 __builtin_altivec_compiletime_error ("vec_any_ngt"))
11484 #define vec_any_nle(a1, a2) \
11485 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11486 __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a2), (a1)), \
11487 __builtin_altivec_compiletime_error ("vec_any_nle"))
11489 #define vec_any_nlt(a1, a2) \
11490 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11491 __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a2), (a1)), \
11492 __builtin_altivec_compiletime_error ("vec_any_nlt"))
11494 #define vec_any_numeric(a1) \
11495 __ch (__un_args_eq (__vector float, (a1)), \
11496 __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (a1), (a1)), \
11497 __builtin_altivec_compiletime_error ("vec_any_numeric"))
11499 #define vec_any_out(a1, a2) \
11500 __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
11501 __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, (a1), (a2)), \
11502 __builtin_altivec_compiletime_error ("vec_any_out"))
11505 #endif /* __cplusplus */
11507 #endif /* _ALTIVEC_H */