1 /*===---- altivec.h - Standard header for type generic math ---------------===*\
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining a copy
4  * of this software and associated documentation files (the "Software"), to deal
5  * in the Software without restriction, including without limitation the rights
6  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7  * copies of the Software, and to permit persons to whom the Software is
8  * furnished to do so, subject to the following conditions:
9  *
10  * The above copyright notice and this permission notice shall be included in
11  * all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19  * THE SOFTWARE.
20  *
21 \*===----------------------------------------------------------------------===*/
22 
23 #ifndef __ALTIVEC_H
24 #define __ALTIVEC_H
25 
26 #ifndef __ALTIVEC__
27 #error "AltiVec support not enabled"
28 #endif
29 
30 /* constants for mapping CR6 bits to predicate result. */
31 
32 #define __CR6_EQ 0
33 #define __CR6_EQ_REV 1
34 #define __CR6_LT 2
35 #define __CR6_LT_REV 3
36 
37 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
38 
39 static vector signed char __ATTRS_o_ai vec_perm(vector signed char __a,
40                                                 vector signed char __b,
41                                                 vector unsigned char __c);
42 
43 static vector unsigned char __ATTRS_o_ai vec_perm(vector unsigned char __a,
44                                                   vector unsigned char __b,
45                                                   vector unsigned char __c);
46 
47 static vector bool char __ATTRS_o_ai vec_perm(vector bool char __a,
48                                               vector bool char __b,
49                                               vector unsigned char __c);
50 
51 static vector short __ATTRS_o_ai vec_perm(vector signed short __a,
52                                           vector signed short __b,
53                                           vector unsigned char __c);
54 
55 static vector unsigned short __ATTRS_o_ai vec_perm(vector unsigned short __a,
56                                                    vector unsigned short __b,
57                                                    vector unsigned char __c);
58 
59 static vector bool short __ATTRS_o_ai vec_perm(vector bool short __a,
60                                                vector bool short __b,
61                                                vector unsigned char __c);
62 
63 static vector pixel __ATTRS_o_ai vec_perm(vector pixel __a, vector pixel __b,
64                                           vector unsigned char __c);
65 
66 static vector int __ATTRS_o_ai vec_perm(vector signed int __a,
67                                         vector signed int __b,
68                                         vector unsigned char __c);
69 
70 static vector unsigned int __ATTRS_o_ai vec_perm(vector unsigned int __a,
71                                                  vector unsigned int __b,
72                                                  vector unsigned char __c);
73 
74 static vector bool int __ATTRS_o_ai vec_perm(vector bool int __a,
75                                              vector bool int __b,
76                                              vector unsigned char __c);
77 
78 static vector float __ATTRS_o_ai vec_perm(vector float __a, vector float __b,
79                                           vector unsigned char __c);
80 
81 #ifdef __VSX__
82 static vector long long __ATTRS_o_ai vec_perm(vector signed long long __a,
83                                               vector signed long long __b,
84                                               vector unsigned char __c);
85 
86 static vector unsigned long long __ATTRS_o_ai
87 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
88          vector unsigned char __c);
89 
90 static vector bool long long __ATTRS_o_ai
91 vec_perm(vector bool long long __a, vector bool long long __b,
92          vector unsigned char __c);
93 
94 static vector double __ATTRS_o_ai vec_perm(vector double __a, vector double __b,
95                                            vector unsigned char __c);
96 #endif
97 
98 static vector unsigned char __ATTRS_o_ai vec_xor(vector unsigned char __a,
99                                                  vector unsigned char __b);
100 
101 /* vec_abs */
102 
103 #define __builtin_altivec_abs_v16qi vec_abs
104 #define __builtin_altivec_abs_v8hi vec_abs
105 #define __builtin_altivec_abs_v4si vec_abs
106 
vec_abs(vector signed char __a)107 static vector signed char __ATTRS_o_ai vec_abs(vector signed char __a) {
108   return __builtin_altivec_vmaxsb(__a, -__a);
109 }
110 
vec_abs(vector signed short __a)111 static vector signed short __ATTRS_o_ai vec_abs(vector signed short __a) {
112   return __builtin_altivec_vmaxsh(__a, -__a);
113 }
114 
vec_abs(vector signed int __a)115 static vector signed int __ATTRS_o_ai vec_abs(vector signed int __a) {
116   return __builtin_altivec_vmaxsw(__a, -__a);
117 }
118 
119 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
120 static vector signed long long __ATTRS_o_ai
vec_abs(vector signed long long __a)121 vec_abs(vector signed long long __a) {
122   return __builtin_altivec_vmaxsd(__a, -__a);
123 }
124 #endif
125 
vec_abs(vector float __a)126 static vector float __ATTRS_o_ai vec_abs(vector float __a) {
127   vector unsigned int __res =
128       (vector unsigned int)__a & (vector unsigned int)(0x7FFFFFFF);
129   return (vector float)__res;
130 }
131 
132 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
vec_abs(vector double __a)133 static vector double __ATTRS_o_ai vec_abs(vector double __a) {
134   vector unsigned long long __res = { 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFF };
135   __res &= (vector unsigned int)__a;
136   return (vector double)__res;
137 }
138 #endif
139 
140 /* vec_abss */
141 #define __builtin_altivec_abss_v16qi vec_abss
142 #define __builtin_altivec_abss_v8hi vec_abss
143 #define __builtin_altivec_abss_v4si vec_abss
144 
vec_abss(vector signed char __a)145 static vector signed char __ATTRS_o_ai vec_abss(vector signed char __a) {
146   return __builtin_altivec_vmaxsb(
147       __a, __builtin_altivec_vsubsbs((vector signed char)(0), __a));
148 }
149 
vec_abss(vector signed short __a)150 static vector signed short __ATTRS_o_ai vec_abss(vector signed short __a) {
151   return __builtin_altivec_vmaxsh(
152       __a, __builtin_altivec_vsubshs((vector signed short)(0), __a));
153 }
154 
vec_abss(vector signed int __a)155 static vector signed int __ATTRS_o_ai vec_abss(vector signed int __a) {
156   return __builtin_altivec_vmaxsw(
157       __a, __builtin_altivec_vsubsws((vector signed int)(0), __a));
158 }
159 
160 /* vec_add */
161 
vec_add(vector signed char __a,vector signed char __b)162 static vector signed char __ATTRS_o_ai vec_add(vector signed char __a,
163                                                vector signed char __b) {
164   return __a + __b;
165 }
166 
vec_add(vector bool char __a,vector signed char __b)167 static vector signed char __ATTRS_o_ai vec_add(vector bool char __a,
168                                                vector signed char __b) {
169   return (vector signed char)__a + __b;
170 }
171 
vec_add(vector signed char __a,vector bool char __b)172 static vector signed char __ATTRS_o_ai vec_add(vector signed char __a,
173                                                vector bool char __b) {
174   return __a + (vector signed char)__b;
175 }
176 
vec_add(vector unsigned char __a,vector unsigned char __b)177 static vector unsigned char __ATTRS_o_ai vec_add(vector unsigned char __a,
178                                                  vector unsigned char __b) {
179   return __a + __b;
180 }
181 
vec_add(vector bool char __a,vector unsigned char __b)182 static vector unsigned char __ATTRS_o_ai vec_add(vector bool char __a,
183                                                  vector unsigned char __b) {
184   return (vector unsigned char)__a + __b;
185 }
186 
vec_add(vector unsigned char __a,vector bool char __b)187 static vector unsigned char __ATTRS_o_ai vec_add(vector unsigned char __a,
188                                                  vector bool char __b) {
189   return __a + (vector unsigned char)__b;
190 }
191 
vec_add(vector short __a,vector short __b)192 static vector short __ATTRS_o_ai vec_add(vector short __a, vector short __b) {
193   return __a + __b;
194 }
195 
vec_add(vector bool short __a,vector short __b)196 static vector short __ATTRS_o_ai vec_add(vector bool short __a,
197                                          vector short __b) {
198   return (vector short)__a + __b;
199 }
200 
vec_add(vector short __a,vector bool short __b)201 static vector short __ATTRS_o_ai vec_add(vector short __a,
202                                          vector bool short __b) {
203   return __a + (vector short)__b;
204 }
205 
vec_add(vector unsigned short __a,vector unsigned short __b)206 static vector unsigned short __ATTRS_o_ai vec_add(vector unsigned short __a,
207                                                   vector unsigned short __b) {
208   return __a + __b;
209 }
210 
vec_add(vector bool short __a,vector unsigned short __b)211 static vector unsigned short __ATTRS_o_ai vec_add(vector bool short __a,
212                                                   vector unsigned short __b) {
213   return (vector unsigned short)__a + __b;
214 }
215 
vec_add(vector unsigned short __a,vector bool short __b)216 static vector unsigned short __ATTRS_o_ai vec_add(vector unsigned short __a,
217                                                   vector bool short __b) {
218   return __a + (vector unsigned short)__b;
219 }
220 
vec_add(vector int __a,vector int __b)221 static vector int __ATTRS_o_ai vec_add(vector int __a, vector int __b) {
222   return __a + __b;
223 }
224 
vec_add(vector bool int __a,vector int __b)225 static vector int __ATTRS_o_ai vec_add(vector bool int __a, vector int __b) {
226   return (vector int)__a + __b;
227 }
228 
vec_add(vector int __a,vector bool int __b)229 static vector int __ATTRS_o_ai vec_add(vector int __a, vector bool int __b) {
230   return __a + (vector int)__b;
231 }
232 
vec_add(vector unsigned int __a,vector unsigned int __b)233 static vector unsigned int __ATTRS_o_ai vec_add(vector unsigned int __a,
234                                                 vector unsigned int __b) {
235   return __a + __b;
236 }
237 
vec_add(vector bool int __a,vector unsigned int __b)238 static vector unsigned int __ATTRS_o_ai vec_add(vector bool int __a,
239                                                 vector unsigned int __b) {
240   return (vector unsigned int)__a + __b;
241 }
242 
vec_add(vector unsigned int __a,vector bool int __b)243 static vector unsigned int __ATTRS_o_ai vec_add(vector unsigned int __a,
244                                                 vector bool int __b) {
245   return __a + (vector unsigned int)__b;
246 }
247 
248 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
249 static vector signed long long __ATTRS_o_ai
vec_add(vector signed long long __a,vector signed long long __b)250 vec_add(vector signed long long __a, vector signed long long __b) {
251   return __a + __b;
252 }
253 
254 static vector unsigned long long __ATTRS_o_ai
vec_add(vector unsigned long long __a,vector unsigned long long __b)255 vec_add(vector unsigned long long __a, vector unsigned long long __b) {
256   return __a + __b;
257 }
258 
vec_add(vector signed __int128 __a,vector signed __int128 __b)259 static vector signed __int128 __ATTRS_o_ai vec_add(vector signed __int128 __a,
260                                                    vector signed __int128 __b) {
261   return __a + __b;
262 }
263 
264 static vector unsigned __int128 __ATTRS_o_ai
vec_add(vector unsigned __int128 __a,vector unsigned __int128 __b)265 vec_add(vector unsigned __int128 __a, vector unsigned __int128 __b) {
266   return __a + __b;
267 }
268 #endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
269 
vec_add(vector float __a,vector float __b)270 static vector float __ATTRS_o_ai vec_add(vector float __a, vector float __b) {
271   return __a + __b;
272 }
273 
274 #ifdef __VSX__
275 static vector double __ATTRS_o_ai
vec_add(vector double __a,vector double __b)276 vec_add(vector double __a, vector double __b) {
277   return __a + __b;
278 }
279 #endif // __VSX__
280 
281 /* vec_adde */
282 
283 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
284 static vector signed __int128 __ATTRS_o_ai
vec_adde(vector signed __int128 __a,vector signed __int128 __b,vector signed __int128 __c)285 vec_adde(vector signed __int128 __a, vector signed __int128 __b,
286          vector signed __int128 __c) {
287   return __builtin_altivec_vaddeuqm(__a, __b, __c);
288 }
289 
290 static vector unsigned __int128 __ATTRS_o_ai
vec_adde(vector unsigned __int128 __a,vector unsigned __int128 __b,vector unsigned __int128 __c)291 vec_adde(vector unsigned __int128 __a, vector unsigned __int128 __b,
292          vector unsigned __int128 __c) {
293   return __builtin_altivec_vaddeuqm(__a, __b, __c);
294 }
295 #endif
296 
297 /* vec_addec */
298 
299 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
300 static vector signed __int128 __ATTRS_o_ai
vec_addec(vector signed __int128 __a,vector signed __int128 __b,vector signed __int128 __c)301 vec_addec(vector signed __int128 __a, vector signed __int128 __b,
302           vector signed __int128 __c) {
303   return __builtin_altivec_vaddecuq(__a, __b, __c);
304 }
305 
306 static vector unsigned __int128 __ATTRS_o_ai
vec_addec(vector unsigned __int128 __a,vector unsigned __int128 __b,vector unsigned __int128 __c)307 vec_addec(vector unsigned __int128 __a, vector unsigned __int128 __b,
308           vector unsigned __int128 __c) {
309   return __builtin_altivec_vaddecuq(__a, __b, __c);
310 }
311 #endif
312 
313 /* vec_vaddubm */
314 
315 #define __builtin_altivec_vaddubm vec_vaddubm
316 
vec_vaddubm(vector signed char __a,vector signed char __b)317 static vector signed char __ATTRS_o_ai vec_vaddubm(vector signed char __a,
318                                                    vector signed char __b) {
319   return __a + __b;
320 }
321 
vec_vaddubm(vector bool char __a,vector signed char __b)322 static vector signed char __ATTRS_o_ai vec_vaddubm(vector bool char __a,
323                                                    vector signed char __b) {
324   return (vector signed char)__a + __b;
325 }
326 
vec_vaddubm(vector signed char __a,vector bool char __b)327 static vector signed char __ATTRS_o_ai vec_vaddubm(vector signed char __a,
328                                                    vector bool char __b) {
329   return __a + (vector signed char)__b;
330 }
331 
vec_vaddubm(vector unsigned char __a,vector unsigned char __b)332 static vector unsigned char __ATTRS_o_ai vec_vaddubm(vector unsigned char __a,
333                                                      vector unsigned char __b) {
334   return __a + __b;
335 }
336 
vec_vaddubm(vector bool char __a,vector unsigned char __b)337 static vector unsigned char __ATTRS_o_ai vec_vaddubm(vector bool char __a,
338                                                      vector unsigned char __b) {
339   return (vector unsigned char)__a + __b;
340 }
341 
vec_vaddubm(vector unsigned char __a,vector bool char __b)342 static vector unsigned char __ATTRS_o_ai vec_vaddubm(vector unsigned char __a,
343                                                      vector bool char __b) {
344   return __a + (vector unsigned char)__b;
345 }
346 
347 /* vec_vadduhm */
348 
349 #define __builtin_altivec_vadduhm vec_vadduhm
350 
vec_vadduhm(vector short __a,vector short __b)351 static vector short __ATTRS_o_ai vec_vadduhm(vector short __a,
352                                              vector short __b) {
353   return __a + __b;
354 }
355 
vec_vadduhm(vector bool short __a,vector short __b)356 static vector short __ATTRS_o_ai vec_vadduhm(vector bool short __a,
357                                              vector short __b) {
358   return (vector short)__a + __b;
359 }
360 
vec_vadduhm(vector short __a,vector bool short __b)361 static vector short __ATTRS_o_ai vec_vadduhm(vector short __a,
362                                              vector bool short __b) {
363   return __a + (vector short)__b;
364 }
365 
366 static vector unsigned short __ATTRS_o_ai
vec_vadduhm(vector unsigned short __a,vector unsigned short __b)367 vec_vadduhm(vector unsigned short __a, vector unsigned short __b) {
368   return __a + __b;
369 }
370 
371 static vector unsigned short __ATTRS_o_ai
vec_vadduhm(vector bool short __a,vector unsigned short __b)372 vec_vadduhm(vector bool short __a, vector unsigned short __b) {
373   return (vector unsigned short)__a + __b;
374 }
375 
vec_vadduhm(vector unsigned short __a,vector bool short __b)376 static vector unsigned short __ATTRS_o_ai vec_vadduhm(vector unsigned short __a,
377                                                       vector bool short __b) {
378   return __a + (vector unsigned short)__b;
379 }
380 
381 /* vec_vadduwm */
382 
383 #define __builtin_altivec_vadduwm vec_vadduwm
384 
vec_vadduwm(vector int __a,vector int __b)385 static vector int __ATTRS_o_ai vec_vadduwm(vector int __a, vector int __b) {
386   return __a + __b;
387 }
388 
vec_vadduwm(vector bool int __a,vector int __b)389 static vector int __ATTRS_o_ai vec_vadduwm(vector bool int __a,
390                                            vector int __b) {
391   return (vector int)__a + __b;
392 }
393 
vec_vadduwm(vector int __a,vector bool int __b)394 static vector int __ATTRS_o_ai vec_vadduwm(vector int __a,
395                                            vector bool int __b) {
396   return __a + (vector int)__b;
397 }
398 
vec_vadduwm(vector unsigned int __a,vector unsigned int __b)399 static vector unsigned int __ATTRS_o_ai vec_vadduwm(vector unsigned int __a,
400                                                     vector unsigned int __b) {
401   return __a + __b;
402 }
403 
vec_vadduwm(vector bool int __a,vector unsigned int __b)404 static vector unsigned int __ATTRS_o_ai vec_vadduwm(vector bool int __a,
405                                                     vector unsigned int __b) {
406   return (vector unsigned int)__a + __b;
407 }
408 
vec_vadduwm(vector unsigned int __a,vector bool int __b)409 static vector unsigned int __ATTRS_o_ai vec_vadduwm(vector unsigned int __a,
410                                                     vector bool int __b) {
411   return __a + (vector unsigned int)__b;
412 }
413 
414 /* vec_vaddfp */
415 
416 #define __builtin_altivec_vaddfp vec_vaddfp
417 
418 static vector float __attribute__((__always_inline__))
vec_vaddfp(vector float __a,vector float __b)419 vec_vaddfp(vector float __a, vector float __b) {
420   return __a + __b;
421 }
422 
423 /* vec_addc */
424 
vec_addc(vector signed int __a,vector signed int __b)425 static vector signed int __ATTRS_o_ai vec_addc(vector signed int __a,
426                                                vector signed int __b) {
427   return (vector signed int)__builtin_altivec_vaddcuw((vector unsigned int)__a,
428                                                       (vector unsigned int)__b);
429 }
430 
vec_addc(vector unsigned int __a,vector unsigned int __b)431 static vector unsigned int __ATTRS_o_ai vec_addc(vector unsigned int __a,
432                                                  vector unsigned int __b) {
433   return __builtin_altivec_vaddcuw(__a, __b);
434 }
435 
436 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
437 static vector signed __int128 __ATTRS_o_ai
vec_addc(vector signed __int128 __a,vector signed __int128 __b)438 vec_addc(vector signed __int128 __a, vector signed __int128 __b) {
439   return (vector signed __int128)__builtin_altivec_vaddcuq(
440     (vector unsigned __int128)__a,
441     (vector unsigned __int128)__b);
442 }
443 
444 static vector unsigned __int128 __ATTRS_o_ai
vec_addc(vector unsigned __int128 __a,vector unsigned __int128 __b)445 vec_addc(vector unsigned __int128 __a, vector unsigned __int128 __b) {
446   return __builtin_altivec_vaddcuq(__a, __b);
447 }
448 #endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
449 
450 /* vec_vaddcuw */
451 
452 static vector unsigned int __attribute__((__always_inline__))
vec_vaddcuw(vector unsigned int __a,vector unsigned int __b)453 vec_vaddcuw(vector unsigned int __a, vector unsigned int __b) {
454   return __builtin_altivec_vaddcuw(__a, __b);
455 }
456 
457 /* vec_adds */
458 
vec_adds(vector signed char __a,vector signed char __b)459 static vector signed char __ATTRS_o_ai vec_adds(vector signed char __a,
460                                                 vector signed char __b) {
461   return __builtin_altivec_vaddsbs(__a, __b);
462 }
463 
vec_adds(vector bool char __a,vector signed char __b)464 static vector signed char __ATTRS_o_ai vec_adds(vector bool char __a,
465                                                 vector signed char __b) {
466   return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
467 }
468 
vec_adds(vector signed char __a,vector bool char __b)469 static vector signed char __ATTRS_o_ai vec_adds(vector signed char __a,
470                                                 vector bool char __b) {
471   return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
472 }
473 
vec_adds(vector unsigned char __a,vector unsigned char __b)474 static vector unsigned char __ATTRS_o_ai vec_adds(vector unsigned char __a,
475                                                   vector unsigned char __b) {
476   return __builtin_altivec_vaddubs(__a, __b);
477 }
478 
vec_adds(vector bool char __a,vector unsigned char __b)479 static vector unsigned char __ATTRS_o_ai vec_adds(vector bool char __a,
480                                                   vector unsigned char __b) {
481   return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
482 }
483 
vec_adds(vector unsigned char __a,vector bool char __b)484 static vector unsigned char __ATTRS_o_ai vec_adds(vector unsigned char __a,
485                                                   vector bool char __b) {
486   return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
487 }
488 
vec_adds(vector short __a,vector short __b)489 static vector short __ATTRS_o_ai vec_adds(vector short __a, vector short __b) {
490   return __builtin_altivec_vaddshs(__a, __b);
491 }
492 
vec_adds(vector bool short __a,vector short __b)493 static vector short __ATTRS_o_ai vec_adds(vector bool short __a,
494                                           vector short __b) {
495   return __builtin_altivec_vaddshs((vector short)__a, __b);
496 }
497 
vec_adds(vector short __a,vector bool short __b)498 static vector short __ATTRS_o_ai vec_adds(vector short __a,
499                                           vector bool short __b) {
500   return __builtin_altivec_vaddshs(__a, (vector short)__b);
501 }
502 
vec_adds(vector unsigned short __a,vector unsigned short __b)503 static vector unsigned short __ATTRS_o_ai vec_adds(vector unsigned short __a,
504                                                    vector unsigned short __b) {
505   return __builtin_altivec_vadduhs(__a, __b);
506 }
507 
vec_adds(vector bool short __a,vector unsigned short __b)508 static vector unsigned short __ATTRS_o_ai vec_adds(vector bool short __a,
509                                                    vector unsigned short __b) {
510   return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
511 }
512 
vec_adds(vector unsigned short __a,vector bool short __b)513 static vector unsigned short __ATTRS_o_ai vec_adds(vector unsigned short __a,
514                                                    vector bool short __b) {
515   return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
516 }
517 
vec_adds(vector int __a,vector int __b)518 static vector int __ATTRS_o_ai vec_adds(vector int __a, vector int __b) {
519   return __builtin_altivec_vaddsws(__a, __b);
520 }
521 
vec_adds(vector bool int __a,vector int __b)522 static vector int __ATTRS_o_ai vec_adds(vector bool int __a, vector int __b) {
523   return __builtin_altivec_vaddsws((vector int)__a, __b);
524 }
525 
vec_adds(vector int __a,vector bool int __b)526 static vector int __ATTRS_o_ai vec_adds(vector int __a, vector bool int __b) {
527   return __builtin_altivec_vaddsws(__a, (vector int)__b);
528 }
529 
vec_adds(vector unsigned int __a,vector unsigned int __b)530 static vector unsigned int __ATTRS_o_ai vec_adds(vector unsigned int __a,
531                                                  vector unsigned int __b) {
532   return __builtin_altivec_vadduws(__a, __b);
533 }
534 
vec_adds(vector bool int __a,vector unsigned int __b)535 static vector unsigned int __ATTRS_o_ai vec_adds(vector bool int __a,
536                                                  vector unsigned int __b) {
537   return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
538 }
539 
vec_adds(vector unsigned int __a,vector bool int __b)540 static vector unsigned int __ATTRS_o_ai vec_adds(vector unsigned int __a,
541                                                  vector bool int __b) {
542   return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
543 }
544 
545 /* vec_vaddsbs */
546 
vec_vaddsbs(vector signed char __a,vector signed char __b)547 static vector signed char __ATTRS_o_ai vec_vaddsbs(vector signed char __a,
548                                                    vector signed char __b) {
549   return __builtin_altivec_vaddsbs(__a, __b);
550 }
551 
vec_vaddsbs(vector bool char __a,vector signed char __b)552 static vector signed char __ATTRS_o_ai vec_vaddsbs(vector bool char __a,
553                                                    vector signed char __b) {
554   return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
555 }
556 
vec_vaddsbs(vector signed char __a,vector bool char __b)557 static vector signed char __ATTRS_o_ai vec_vaddsbs(vector signed char __a,
558                                                    vector bool char __b) {
559   return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
560 }
561 
562 /* vec_vaddubs */
563 
vec_vaddubs(vector unsigned char __a,vector unsigned char __b)564 static vector unsigned char __ATTRS_o_ai vec_vaddubs(vector unsigned char __a,
565                                                      vector unsigned char __b) {
566   return __builtin_altivec_vaddubs(__a, __b);
567 }
568 
vec_vaddubs(vector bool char __a,vector unsigned char __b)569 static vector unsigned char __ATTRS_o_ai vec_vaddubs(vector bool char __a,
570                                                      vector unsigned char __b) {
571   return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
572 }
573 
vec_vaddubs(vector unsigned char __a,vector bool char __b)574 static vector unsigned char __ATTRS_o_ai vec_vaddubs(vector unsigned char __a,
575                                                      vector bool char __b) {
576   return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
577 }
578 
579 /* vec_vaddshs */
580 
vec_vaddshs(vector short __a,vector short __b)581 static vector short __ATTRS_o_ai vec_vaddshs(vector short __a,
582                                              vector short __b) {
583   return __builtin_altivec_vaddshs(__a, __b);
584 }
585 
vec_vaddshs(vector bool short __a,vector short __b)586 static vector short __ATTRS_o_ai vec_vaddshs(vector bool short __a,
587                                              vector short __b) {
588   return __builtin_altivec_vaddshs((vector short)__a, __b);
589 }
590 
vec_vaddshs(vector short __a,vector bool short __b)591 static vector short __ATTRS_o_ai vec_vaddshs(vector short __a,
592                                              vector bool short __b) {
593   return __builtin_altivec_vaddshs(__a, (vector short)__b);
594 }
595 
596 /* vec_vadduhs */
597 
598 static vector unsigned short __ATTRS_o_ai
vec_vadduhs(vector unsigned short __a,vector unsigned short __b)599 vec_vadduhs(vector unsigned short __a, vector unsigned short __b) {
600   return __builtin_altivec_vadduhs(__a, __b);
601 }
602 
603 static vector unsigned short __ATTRS_o_ai
vec_vadduhs(vector bool short __a,vector unsigned short __b)604 vec_vadduhs(vector bool short __a, vector unsigned short __b) {
605   return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
606 }
607 
vec_vadduhs(vector unsigned short __a,vector bool short __b)608 static vector unsigned short __ATTRS_o_ai vec_vadduhs(vector unsigned short __a,
609                                                       vector bool short __b) {
610   return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
611 }
612 
613 /* vec_vaddsws */
614 
vec_vaddsws(vector int __a,vector int __b)615 static vector int __ATTRS_o_ai vec_vaddsws(vector int __a, vector int __b) {
616   return __builtin_altivec_vaddsws(__a, __b);
617 }
618 
vec_vaddsws(vector bool int __a,vector int __b)619 static vector int __ATTRS_o_ai vec_vaddsws(vector bool int __a,
620                                            vector int __b) {
621   return __builtin_altivec_vaddsws((vector int)__a, __b);
622 }
623 
vec_vaddsws(vector int __a,vector bool int __b)624 static vector int __ATTRS_o_ai vec_vaddsws(vector int __a,
625                                            vector bool int __b) {
626   return __builtin_altivec_vaddsws(__a, (vector int)__b);
627 }
628 
629 /* vec_vadduws */
630 
vec_vadduws(vector unsigned int __a,vector unsigned int __b)631 static vector unsigned int __ATTRS_o_ai vec_vadduws(vector unsigned int __a,
632                                                     vector unsigned int __b) {
633   return __builtin_altivec_vadduws(__a, __b);
634 }
635 
vec_vadduws(vector bool int __a,vector unsigned int __b)636 static vector unsigned int __ATTRS_o_ai vec_vadduws(vector bool int __a,
637                                                     vector unsigned int __b) {
638   return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
639 }
640 
vec_vadduws(vector unsigned int __a,vector bool int __b)641 static vector unsigned int __ATTRS_o_ai vec_vadduws(vector unsigned int __a,
642                                                     vector bool int __b) {
643   return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
644 }
645 
646 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
647 /* vec_vadduqm */
648 
649 static vector signed __int128 __ATTRS_o_ai
vec_vadduqm(vector signed __int128 __a,vector signed __int128 __b)650 vec_vadduqm(vector signed __int128 __a, vector signed __int128 __b) {
651   return __a + __b;
652 }
653 
654 static vector unsigned __int128 __ATTRS_o_ai
vec_vadduqm(vector unsigned __int128 __a,vector unsigned __int128 __b)655 vec_vadduqm(vector unsigned __int128 __a, vector unsigned __int128 __b) {
656   return __a + __b;
657 }
658 
659 /* vec_vaddeuqm */
660 
661 static vector signed __int128 __ATTRS_o_ai
vec_vaddeuqm(vector signed __int128 __a,vector signed __int128 __b,vector signed __int128 __c)662 vec_vaddeuqm(vector signed __int128 __a, vector signed __int128 __b,
663              vector signed __int128 __c) {
664   return __builtin_altivec_vaddeuqm(__a, __b, __c);
665 }
666 
667 static vector unsigned __int128 __ATTRS_o_ai
vec_vaddeuqm(vector unsigned __int128 __a,vector unsigned __int128 __b,vector unsigned __int128 __c)668 vec_vaddeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b,
669              vector unsigned __int128 __c) {
670   return __builtin_altivec_vaddeuqm(__a, __b, __c);
671 }
672 
673 /* vec_vaddcuq */
674 
675 static vector signed __int128 __ATTRS_o_ai
vec_vaddcuq(vector signed __int128 __a,vector signed __int128 __b)676 vec_vaddcuq(vector signed __int128 __a, vector signed __int128 __b) {
677   return __builtin_altivec_vaddcuq(__a, __b);
678 }
679 
680 static vector unsigned __int128 __ATTRS_o_ai
vec_vaddcuq(vector unsigned __int128 __a,vector unsigned __int128 __b)681 vec_vaddcuq(vector unsigned __int128 __a, vector unsigned __int128 __b) {
682   return __builtin_altivec_vaddcuq(__a, __b);
683 }
684 
685 /* vec_vaddecuq */
686 
687 static vector signed __int128 __ATTRS_o_ai
vec_vaddecuq(vector signed __int128 __a,vector signed __int128 __b,vector signed __int128 __c)688 vec_vaddecuq(vector signed __int128 __a, vector signed __int128 __b,
689              vector signed __int128 __c) {
690   return __builtin_altivec_vaddecuq(__a, __b, __c);
691 }
692 
693 static vector unsigned __int128 __ATTRS_o_ai
vec_vaddecuq(vector unsigned __int128 __a,vector unsigned __int128 __b,vector unsigned __int128 __c)694 vec_vaddecuq(vector unsigned __int128 __a, vector unsigned __int128 __b,
695              vector unsigned __int128 __c) {
696   return __builtin_altivec_vaddecuq(__a, __b, __c);
697 }
698 #endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
699 
700 /* vec_and */
701 
702 #define __builtin_altivec_vand vec_and
703 
vec_and(vector signed char __a,vector signed char __b)704 static vector signed char __ATTRS_o_ai vec_and(vector signed char __a,
705                                                vector signed char __b) {
706   return __a & __b;
707 }
708 
vec_and(vector bool char __a,vector signed char __b)709 static vector signed char __ATTRS_o_ai vec_and(vector bool char __a,
710                                                vector signed char __b) {
711   return (vector signed char)__a & __b;
712 }
713 
vec_and(vector signed char __a,vector bool char __b)714 static vector signed char __ATTRS_o_ai vec_and(vector signed char __a,
715                                                vector bool char __b) {
716   return __a & (vector signed char)__b;
717 }
718 
vec_and(vector unsigned char __a,vector unsigned char __b)719 static vector unsigned char __ATTRS_o_ai vec_and(vector unsigned char __a,
720                                                  vector unsigned char __b) {
721   return __a & __b;
722 }
723 
vec_and(vector bool char __a,vector unsigned char __b)724 static vector unsigned char __ATTRS_o_ai vec_and(vector bool char __a,
725                                                  vector unsigned char __b) {
726   return (vector unsigned char)__a & __b;
727 }
728 
vec_and(vector unsigned char __a,vector bool char __b)729 static vector unsigned char __ATTRS_o_ai vec_and(vector unsigned char __a,
730                                                  vector bool char __b) {
731   return __a & (vector unsigned char)__b;
732 }
733 
vec_and(vector bool char __a,vector bool char __b)734 static vector bool char __ATTRS_o_ai vec_and(vector bool char __a,
735                                              vector bool char __b) {
736   return __a & __b;
737 }
738 
vec_and(vector short __a,vector short __b)739 static vector short __ATTRS_o_ai vec_and(vector short __a, vector short __b) {
740   return __a & __b;
741 }
742 
vec_and(vector bool short __a,vector short __b)743 static vector short __ATTRS_o_ai vec_and(vector bool short __a,
744                                          vector short __b) {
745   return (vector short)__a & __b;
746 }
747 
vec_and(vector short __a,vector bool short __b)748 static vector short __ATTRS_o_ai vec_and(vector short __a,
749                                          vector bool short __b) {
750   return __a & (vector short)__b;
751 }
752 
vec_and(vector unsigned short __a,vector unsigned short __b)753 static vector unsigned short __ATTRS_o_ai vec_and(vector unsigned short __a,
754                                                   vector unsigned short __b) {
755   return __a & __b;
756 }
757 
vec_and(vector bool short __a,vector unsigned short __b)758 static vector unsigned short __ATTRS_o_ai vec_and(vector bool short __a,
759                                                   vector unsigned short __b) {
760   return (vector unsigned short)__a & __b;
761 }
762 
vec_and(vector unsigned short __a,vector bool short __b)763 static vector unsigned short __ATTRS_o_ai vec_and(vector unsigned short __a,
764                                                   vector bool short __b) {
765   return __a & (vector unsigned short)__b;
766 }
767 
vec_and(vector bool short __a,vector bool short __b)768 static vector bool short __ATTRS_o_ai vec_and(vector bool short __a,
769                                               vector bool short __b) {
770   return __a & __b;
771 }
772 
vec_and(vector int __a,vector int __b)773 static vector int __ATTRS_o_ai vec_and(vector int __a, vector int __b) {
774   return __a & __b;
775 }
776 
vec_and(vector bool int __a,vector int __b)777 static vector int __ATTRS_o_ai vec_and(vector bool int __a, vector int __b) {
778   return (vector int)__a & __b;
779 }
780 
vec_and(vector int __a,vector bool int __b)781 static vector int __ATTRS_o_ai vec_and(vector int __a, vector bool int __b) {
782   return __a & (vector int)__b;
783 }
784 
vec_and(vector unsigned int __a,vector unsigned int __b)785 static vector unsigned int __ATTRS_o_ai vec_and(vector unsigned int __a,
786                                                 vector unsigned int __b) {
787   return __a & __b;
788 }
789 
vec_and(vector bool int __a,vector unsigned int __b)790 static vector unsigned int __ATTRS_o_ai vec_and(vector bool int __a,
791                                                 vector unsigned int __b) {
792   return (vector unsigned int)__a & __b;
793 }
794 
vec_and(vector unsigned int __a,vector bool int __b)795 static vector unsigned int __ATTRS_o_ai vec_and(vector unsigned int __a,
796                                                 vector bool int __b) {
797   return __a & (vector unsigned int)__b;
798 }
799 
vec_and(vector bool int __a,vector bool int __b)800 static vector bool int __ATTRS_o_ai vec_and(vector bool int __a,
801                                             vector bool int __b) {
802   return __a & __b;
803 }
804 
vec_and(vector float __a,vector float __b)805 static vector float __ATTRS_o_ai vec_and(vector float __a, vector float __b) {
806   vector unsigned int __res =
807       (vector unsigned int)__a & (vector unsigned int)__b;
808   return (vector float)__res;
809 }
810 
vec_and(vector bool int __a,vector float __b)811 static vector float __ATTRS_o_ai vec_and(vector bool int __a,
812                                          vector float __b) {
813   vector unsigned int __res =
814       (vector unsigned int)__a & (vector unsigned int)__b;
815   return (vector float)__res;
816 }
817 
vec_and(vector float __a,vector bool int __b)818 static vector float __ATTRS_o_ai vec_and(vector float __a,
819                                          vector bool int __b) {
820   vector unsigned int __res =
821       (vector unsigned int)__a & (vector unsigned int)__b;
822   return (vector float)__res;
823 }
824 
825 #ifdef __VSX__
vec_and(vector bool long long __a,vector double __b)826 static vector double __ATTRS_o_ai vec_and(vector bool long long __a, vector double __b) {
827   vector unsigned long long __res =
828       (vector unsigned long long)__a & (vector unsigned long long)__b;
829   return (vector double)__res;
830 }
831 
vec_and(vector double __a,vector bool long long __b)832 static vector double __ATTRS_o_ai vec_and(vector double __a, vector bool long long __b) {
833   vector unsigned long long __res =
834       (vector unsigned long long)__a & (vector unsigned long long)__b;
835   return (vector double)__res;
836 }
837 
vec_and(vector double __a,vector double __b)838 static vector double __ATTRS_o_ai vec_and(vector double __a, vector double __b) {
839   vector unsigned long long __res =
840       (vector unsigned long long)__a & (vector unsigned long long)__b;
841   return (vector double)__res;
842 }
843 
844 static vector signed long long __ATTRS_o_ai
vec_and(vector signed long long __a,vector signed long long __b)845 vec_and(vector signed long long __a, vector signed long long __b) {
846   return __a & __b;
847 }
848 
849 static vector signed long long __ATTRS_o_ai
vec_and(vector bool long long __a,vector signed long long __b)850 vec_and(vector bool long long __a, vector signed long long __b) {
851   return (vector signed long long)__a & __b;
852 }
853 
vec_and(vector signed long long __a,vector bool long long __b)854 static vector signed long long __ATTRS_o_ai vec_and(vector signed long long __a,
855                                                     vector bool long long __b) {
856   return __a & (vector signed long long)__b;
857 }
858 
859 static vector unsigned long long __ATTRS_o_ai
vec_and(vector unsigned long long __a,vector unsigned long long __b)860 vec_and(vector unsigned long long __a, vector unsigned long long __b) {
861   return __a & __b;
862 }
863 
864 static vector unsigned long long __ATTRS_o_ai
vec_and(vector bool long long __a,vector unsigned long long __b)865 vec_and(vector bool long long __a, vector unsigned long long __b) {
866   return (vector unsigned long long)__a & __b;
867 }
868 
869 static vector unsigned long long __ATTRS_o_ai
vec_and(vector unsigned long long __a,vector bool long long __b)870 vec_and(vector unsigned long long __a, vector bool long long __b) {
871   return __a & (vector unsigned long long)__b;
872 }
873 
vec_and(vector bool long long __a,vector bool long long __b)874 static vector bool long long __ATTRS_o_ai vec_and(vector bool long long __a,
875                                                   vector bool long long __b) {
876   return __a & __b;
877 }
878 #endif
879 
880 /* vec_vand */
881 
vec_vand(vector signed char __a,vector signed char __b)882 static vector signed char __ATTRS_o_ai vec_vand(vector signed char __a,
883                                                 vector signed char __b) {
884   return __a & __b;
885 }
886 
vec_vand(vector bool char __a,vector signed char __b)887 static vector signed char __ATTRS_o_ai vec_vand(vector bool char __a,
888                                                 vector signed char __b) {
889   return (vector signed char)__a & __b;
890 }
891 
vec_vand(vector signed char __a,vector bool char __b)892 static vector signed char __ATTRS_o_ai vec_vand(vector signed char __a,
893                                                 vector bool char __b) {
894   return __a & (vector signed char)__b;
895 }
896 
vec_vand(vector unsigned char __a,vector unsigned char __b)897 static vector unsigned char __ATTRS_o_ai vec_vand(vector unsigned char __a,
898                                                   vector unsigned char __b) {
899   return __a & __b;
900 }
901 
vec_vand(vector bool char __a,vector unsigned char __b)902 static vector unsigned char __ATTRS_o_ai vec_vand(vector bool char __a,
903                                                   vector unsigned char __b) {
904   return (vector unsigned char)__a & __b;
905 }
906 
vec_vand(vector unsigned char __a,vector bool char __b)907 static vector unsigned char __ATTRS_o_ai vec_vand(vector unsigned char __a,
908                                                   vector bool char __b) {
909   return __a & (vector unsigned char)__b;
910 }
911 
vec_vand(vector bool char __a,vector bool char __b)912 static vector bool char __ATTRS_o_ai vec_vand(vector bool char __a,
913                                               vector bool char __b) {
914   return __a & __b;
915 }
916 
vec_vand(vector short __a,vector short __b)917 static vector short __ATTRS_o_ai vec_vand(vector short __a, vector short __b) {
918   return __a & __b;
919 }
920 
vec_vand(vector bool short __a,vector short __b)921 static vector short __ATTRS_o_ai vec_vand(vector bool short __a,
922                                           vector short __b) {
923   return (vector short)__a & __b;
924 }
925 
vec_vand(vector short __a,vector bool short __b)926 static vector short __ATTRS_o_ai vec_vand(vector short __a,
927                                           vector bool short __b) {
928   return __a & (vector short)__b;
929 }
930 
vec_vand(vector unsigned short __a,vector unsigned short __b)931 static vector unsigned short __ATTRS_o_ai vec_vand(vector unsigned short __a,
932                                                    vector unsigned short __b) {
933   return __a & __b;
934 }
935 
vec_vand(vector bool short __a,vector unsigned short __b)936 static vector unsigned short __ATTRS_o_ai vec_vand(vector bool short __a,
937                                                    vector unsigned short __b) {
938   return (vector unsigned short)__a & __b;
939 }
940 
vec_vand(vector unsigned short __a,vector bool short __b)941 static vector unsigned short __ATTRS_o_ai vec_vand(vector unsigned short __a,
942                                                    vector bool short __b) {
943   return __a & (vector unsigned short)__b;
944 }
945 
vec_vand(vector bool short __a,vector bool short __b)946 static vector bool short __ATTRS_o_ai vec_vand(vector bool short __a,
947                                                vector bool short __b) {
948   return __a & __b;
949 }
950 
vec_vand(vector int __a,vector int __b)951 static vector int __ATTRS_o_ai vec_vand(vector int __a, vector int __b) {
952   return __a & __b;
953 }
954 
vec_vand(vector bool int __a,vector int __b)955 static vector int __ATTRS_o_ai vec_vand(vector bool int __a, vector int __b) {
956   return (vector int)__a & __b;
957 }
958 
vec_vand(vector int __a,vector bool int __b)959 static vector int __ATTRS_o_ai vec_vand(vector int __a, vector bool int __b) {
960   return __a & (vector int)__b;
961 }
962 
vec_vand(vector unsigned int __a,vector unsigned int __b)963 static vector unsigned int __ATTRS_o_ai vec_vand(vector unsigned int __a,
964                                                  vector unsigned int __b) {
965   return __a & __b;
966 }
967 
vec_vand(vector bool int __a,vector unsigned int __b)968 static vector unsigned int __ATTRS_o_ai vec_vand(vector bool int __a,
969                                                  vector unsigned int __b) {
970   return (vector unsigned int)__a & __b;
971 }
972 
vec_vand(vector unsigned int __a,vector bool int __b)973 static vector unsigned int __ATTRS_o_ai vec_vand(vector unsigned int __a,
974                                                  vector bool int __b) {
975   return __a & (vector unsigned int)__b;
976 }
977 
vec_vand(vector bool int __a,vector bool int __b)978 static vector bool int __ATTRS_o_ai vec_vand(vector bool int __a,
979                                              vector bool int __b) {
980   return __a & __b;
981 }
982 
vec_vand(vector float __a,vector float __b)983 static vector float __ATTRS_o_ai vec_vand(vector float __a, vector float __b) {
984   vector unsigned int __res =
985       (vector unsigned int)__a & (vector unsigned int)__b;
986   return (vector float)__res;
987 }
988 
vec_vand(vector bool int __a,vector float __b)989 static vector float __ATTRS_o_ai vec_vand(vector bool int __a,
990                                           vector float __b) {
991   vector unsigned int __res =
992       (vector unsigned int)__a & (vector unsigned int)__b;
993   return (vector float)__res;
994 }
995 
vec_vand(vector float __a,vector bool int __b)996 static vector float __ATTRS_o_ai vec_vand(vector float __a,
997                                           vector bool int __b) {
998   vector unsigned int __res =
999       (vector unsigned int)__a & (vector unsigned int)__b;
1000   return (vector float)__res;
1001 }
1002 
1003 #ifdef __VSX__
1004 static vector signed long long __ATTRS_o_ai
vec_vand(vector signed long long __a,vector signed long long __b)1005 vec_vand(vector signed long long __a, vector signed long long __b) {
1006   return __a & __b;
1007 }
1008 
1009 static vector signed long long __ATTRS_o_ai
vec_vand(vector bool long long __a,vector signed long long __b)1010 vec_vand(vector bool long long __a, vector signed long long __b) {
1011   return (vector signed long long)__a & __b;
1012 }
1013 
1014 static vector signed long long __ATTRS_o_ai
vec_vand(vector signed long long __a,vector bool long long __b)1015 vec_vand(vector signed long long __a, vector bool long long __b) {
1016   return __a & (vector signed long long)__b;
1017 }
1018 
1019 static vector unsigned long long __ATTRS_o_ai
vec_vand(vector unsigned long long __a,vector unsigned long long __b)1020 vec_vand(vector unsigned long long __a, vector unsigned long long __b) {
1021   return __a & __b;
1022 }
1023 
1024 static vector unsigned long long __ATTRS_o_ai
vec_vand(vector bool long long __a,vector unsigned long long __b)1025 vec_vand(vector bool long long __a, vector unsigned long long __b) {
1026   return (vector unsigned long long)__a & __b;
1027 }
1028 
1029 static vector unsigned long long __ATTRS_o_ai
vec_vand(vector unsigned long long __a,vector bool long long __b)1030 vec_vand(vector unsigned long long __a, vector bool long long __b) {
1031   return __a & (vector unsigned long long)__b;
1032 }
1033 
vec_vand(vector bool long long __a,vector bool long long __b)1034 static vector bool long long __ATTRS_o_ai vec_vand(vector bool long long __a,
1035                                                    vector bool long long __b) {
1036   return __a & __b;
1037 }
1038 #endif
1039 
1040 /* vec_andc */
1041 
1042 #define __builtin_altivec_vandc vec_andc
1043 
vec_andc(vector signed char __a,vector signed char __b)1044 static vector signed char __ATTRS_o_ai vec_andc(vector signed char __a,
1045                                                 vector signed char __b) {
1046   return __a & ~__b;
1047 }
1048 
vec_andc(vector bool char __a,vector signed char __b)1049 static vector signed char __ATTRS_o_ai vec_andc(vector bool char __a,
1050                                                 vector signed char __b) {
1051   return (vector signed char)__a & ~__b;
1052 }
1053 
vec_andc(vector signed char __a,vector bool char __b)1054 static vector signed char __ATTRS_o_ai vec_andc(vector signed char __a,
1055                                                 vector bool char __b) {
1056   return __a & ~(vector signed char)__b;
1057 }
1058 
vec_andc(vector unsigned char __a,vector unsigned char __b)1059 static vector unsigned char __ATTRS_o_ai vec_andc(vector unsigned char __a,
1060                                                   vector unsigned char __b) {
1061   return __a & ~__b;
1062 }
1063 
vec_andc(vector bool char __a,vector unsigned char __b)1064 static vector unsigned char __ATTRS_o_ai vec_andc(vector bool char __a,
1065                                                   vector unsigned char __b) {
1066   return (vector unsigned char)__a & ~__b;
1067 }
1068 
vec_andc(vector unsigned char __a,vector bool char __b)1069 static vector unsigned char __ATTRS_o_ai vec_andc(vector unsigned char __a,
1070                                                   vector bool char __b) {
1071   return __a & ~(vector unsigned char)__b;
1072 }
1073 
vec_andc(vector bool char __a,vector bool char __b)1074 static vector bool char __ATTRS_o_ai vec_andc(vector bool char __a,
1075                                               vector bool char __b) {
1076   return __a & ~__b;
1077 }
1078 
vec_andc(vector short __a,vector short __b)1079 static vector short __ATTRS_o_ai vec_andc(vector short __a, vector short __b) {
1080   return __a & ~__b;
1081 }
1082 
vec_andc(vector bool short __a,vector short __b)1083 static vector short __ATTRS_o_ai vec_andc(vector bool short __a,
1084                                           vector short __b) {
1085   return (vector short)__a & ~__b;
1086 }
1087 
vec_andc(vector short __a,vector bool short __b)1088 static vector short __ATTRS_o_ai vec_andc(vector short __a,
1089                                           vector bool short __b) {
1090   return __a & ~(vector short)__b;
1091 }
1092 
vec_andc(vector unsigned short __a,vector unsigned short __b)1093 static vector unsigned short __ATTRS_o_ai vec_andc(vector unsigned short __a,
1094                                                    vector unsigned short __b) {
1095   return __a & ~__b;
1096 }
1097 
vec_andc(vector bool short __a,vector unsigned short __b)1098 static vector unsigned short __ATTRS_o_ai vec_andc(vector bool short __a,
1099                                                    vector unsigned short __b) {
1100   return (vector unsigned short)__a & ~__b;
1101 }
1102 
vec_andc(vector unsigned short __a,vector bool short __b)1103 static vector unsigned short __ATTRS_o_ai vec_andc(vector unsigned short __a,
1104                                                    vector bool short __b) {
1105   return __a & ~(vector unsigned short)__b;
1106 }
1107 
vec_andc(vector bool short __a,vector bool short __b)1108 static vector bool short __ATTRS_o_ai vec_andc(vector bool short __a,
1109                                                vector bool short __b) {
1110   return __a & ~__b;
1111 }
1112 
vec_andc(vector int __a,vector int __b)1113 static vector int __ATTRS_o_ai vec_andc(vector int __a, vector int __b) {
1114   return __a & ~__b;
1115 }
1116 
vec_andc(vector bool int __a,vector int __b)1117 static vector int __ATTRS_o_ai vec_andc(vector bool int __a, vector int __b) {
1118   return (vector int)__a & ~__b;
1119 }
1120 
vec_andc(vector int __a,vector bool int __b)1121 static vector int __ATTRS_o_ai vec_andc(vector int __a, vector bool int __b) {
1122   return __a & ~(vector int)__b;
1123 }
1124 
vec_andc(vector unsigned int __a,vector unsigned int __b)1125 static vector unsigned int __ATTRS_o_ai vec_andc(vector unsigned int __a,
1126                                                  vector unsigned int __b) {
1127   return __a & ~__b;
1128 }
1129 
vec_andc(vector bool int __a,vector unsigned int __b)1130 static vector unsigned int __ATTRS_o_ai vec_andc(vector bool int __a,
1131                                                  vector unsigned int __b) {
1132   return (vector unsigned int)__a & ~__b;
1133 }
1134 
vec_andc(vector unsigned int __a,vector bool int __b)1135 static vector unsigned int __ATTRS_o_ai vec_andc(vector unsigned int __a,
1136                                                  vector bool int __b) {
1137   return __a & ~(vector unsigned int)__b;
1138 }
1139 
vec_andc(vector bool int __a,vector bool int __b)1140 static vector bool int __ATTRS_o_ai vec_andc(vector bool int __a,
1141                                              vector bool int __b) {
1142   return __a & ~__b;
1143 }
1144 
vec_andc(vector float __a,vector float __b)1145 static vector float __ATTRS_o_ai vec_andc(vector float __a, vector float __b) {
1146   vector unsigned int __res =
1147       (vector unsigned int)__a & ~(vector unsigned int)__b;
1148   return (vector float)__res;
1149 }
1150 
vec_andc(vector bool int __a,vector float __b)1151 static vector float __ATTRS_o_ai vec_andc(vector bool int __a,
1152                                           vector float __b) {
1153   vector unsigned int __res =
1154       (vector unsigned int)__a & ~(vector unsigned int)__b;
1155   return (vector float)__res;
1156 }
1157 
vec_andc(vector float __a,vector bool int __b)1158 static vector float __ATTRS_o_ai vec_andc(vector float __a,
1159                                           vector bool int __b) {
1160   vector unsigned int __res =
1161       (vector unsigned int)__a & ~(vector unsigned int)__b;
1162   return (vector float)__res;
1163 }
1164 
1165 #ifdef __VSX__
1166 static vector double __ATTRS_o_ai
vec_andc(vector bool long long __a,vector double __b)1167 vec_andc(vector bool long long __a, vector double __b) {
1168   vector unsigned long long __res =
1169       (vector unsigned long long)__a & ~(vector unsigned long long)__b;
1170   return (vector double)__res;
1171 }
1172 
1173 static vector double __ATTRS_o_ai
vec_andc(vector double __a,vector bool long long __b)1174 vec_andc(vector double __a, vector bool long long __b) {
1175   vector unsigned long long __res =
1176       (vector unsigned long long)__a & ~(vector unsigned long long)__b;
1177   return (vector double)__res;
1178 }
1179 
vec_andc(vector double __a,vector double __b)1180 static vector double __ATTRS_o_ai vec_andc(vector double __a, vector double __b) {
1181   vector unsigned long long __res =
1182       (vector unsigned long long)__a & ~(vector unsigned long long)__b;
1183   return (vector double)__res;
1184 }
1185 
1186 static vector signed long long __ATTRS_o_ai
vec_andc(vector signed long long __a,vector signed long long __b)1187 vec_andc(vector signed long long __a, vector signed long long __b) {
1188   return __a & ~__b;
1189 }
1190 
1191 static vector signed long long __ATTRS_o_ai
vec_andc(vector bool long long __a,vector signed long long __b)1192 vec_andc(vector bool long long __a, vector signed long long __b) {
1193   return (vector signed long long)__a & ~__b;
1194 }
1195 
1196 static vector signed long long __ATTRS_o_ai
vec_andc(vector signed long long __a,vector bool long long __b)1197 vec_andc(vector signed long long __a, vector bool long long __b) {
1198   return __a & ~(vector signed long long)__b;
1199 }
1200 
1201 static vector unsigned long long __ATTRS_o_ai
vec_andc(vector unsigned long long __a,vector unsigned long long __b)1202 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
1203   return __a & ~__b;
1204 }
1205 
1206 static vector unsigned long long __ATTRS_o_ai
vec_andc(vector bool long long __a,vector unsigned long long __b)1207 vec_andc(vector bool long long __a, vector unsigned long long __b) {
1208   return (vector unsigned long long)__a & ~__b;
1209 }
1210 
1211 static vector unsigned long long __ATTRS_o_ai
vec_andc(vector unsigned long long __a,vector bool long long __b)1212 vec_andc(vector unsigned long long __a, vector bool long long __b) {
1213   return __a & ~(vector unsigned long long)__b;
1214 }
1215 
vec_andc(vector bool long long __a,vector bool long long __b)1216 static vector bool long long __ATTRS_o_ai vec_andc(vector bool long long __a,
1217                                                    vector bool long long __b) {
1218   return __a & ~__b;
1219 }
1220 #endif
1221 
1222 /* vec_vandc */
1223 
vec_vandc(vector signed char __a,vector signed char __b)1224 static vector signed char __ATTRS_o_ai vec_vandc(vector signed char __a,
1225                                                  vector signed char __b) {
1226   return __a & ~__b;
1227 }
1228 
vec_vandc(vector bool char __a,vector signed char __b)1229 static vector signed char __ATTRS_o_ai vec_vandc(vector bool char __a,
1230                                                  vector signed char __b) {
1231   return (vector signed char)__a & ~__b;
1232 }
1233 
vec_vandc(vector signed char __a,vector bool char __b)1234 static vector signed char __ATTRS_o_ai vec_vandc(vector signed char __a,
1235                                                  vector bool char __b) {
1236   return __a & ~(vector signed char)__b;
1237 }
1238 
vec_vandc(vector unsigned char __a,vector unsigned char __b)1239 static vector unsigned char __ATTRS_o_ai vec_vandc(vector unsigned char __a,
1240                                                    vector unsigned char __b) {
1241   return __a & ~__b;
1242 }
1243 
vec_vandc(vector bool char __a,vector unsigned char __b)1244 static vector unsigned char __ATTRS_o_ai vec_vandc(vector bool char __a,
1245                                                    vector unsigned char __b) {
1246   return (vector unsigned char)__a & ~__b;
1247 }
1248 
vec_vandc(vector unsigned char __a,vector bool char __b)1249 static vector unsigned char __ATTRS_o_ai vec_vandc(vector unsigned char __a,
1250                                                    vector bool char __b) {
1251   return __a & ~(vector unsigned char)__b;
1252 }
1253 
vec_vandc(vector bool char __a,vector bool char __b)1254 static vector bool char __ATTRS_o_ai vec_vandc(vector bool char __a,
1255                                                vector bool char __b) {
1256   return __a & ~__b;
1257 }
1258 
vec_vandc(vector short __a,vector short __b)1259 static vector short __ATTRS_o_ai vec_vandc(vector short __a, vector short __b) {
1260   return __a & ~__b;
1261 }
1262 
vec_vandc(vector bool short __a,vector short __b)1263 static vector short __ATTRS_o_ai vec_vandc(vector bool short __a,
1264                                            vector short __b) {
1265   return (vector short)__a & ~__b;
1266 }
1267 
vec_vandc(vector short __a,vector bool short __b)1268 static vector short __ATTRS_o_ai vec_vandc(vector short __a,
1269                                            vector bool short __b) {
1270   return __a & ~(vector short)__b;
1271 }
1272 
vec_vandc(vector unsigned short __a,vector unsigned short __b)1273 static vector unsigned short __ATTRS_o_ai vec_vandc(vector unsigned short __a,
1274                                                     vector unsigned short __b) {
1275   return __a & ~__b;
1276 }
1277 
vec_vandc(vector bool short __a,vector unsigned short __b)1278 static vector unsigned short __ATTRS_o_ai vec_vandc(vector bool short __a,
1279                                                     vector unsigned short __b) {
1280   return (vector unsigned short)__a & ~__b;
1281 }
1282 
vec_vandc(vector unsigned short __a,vector bool short __b)1283 static vector unsigned short __ATTRS_o_ai vec_vandc(vector unsigned short __a,
1284                                                     vector bool short __b) {
1285   return __a & ~(vector unsigned short)__b;
1286 }
1287 
vec_vandc(vector bool short __a,vector bool short __b)1288 static vector bool short __ATTRS_o_ai vec_vandc(vector bool short __a,
1289                                                 vector bool short __b) {
1290   return __a & ~__b;
1291 }
1292 
vec_vandc(vector int __a,vector int __b)1293 static vector int __ATTRS_o_ai vec_vandc(vector int __a, vector int __b) {
1294   return __a & ~__b;
1295 }
1296 
vec_vandc(vector bool int __a,vector int __b)1297 static vector int __ATTRS_o_ai vec_vandc(vector bool int __a, vector int __b) {
1298   return (vector int)__a & ~__b;
1299 }
1300 
vec_vandc(vector int __a,vector bool int __b)1301 static vector int __ATTRS_o_ai vec_vandc(vector int __a, vector bool int __b) {
1302   return __a & ~(vector int)__b;
1303 }
1304 
vec_vandc(vector unsigned int __a,vector unsigned int __b)1305 static vector unsigned int __ATTRS_o_ai vec_vandc(vector unsigned int __a,
1306                                                   vector unsigned int __b) {
1307   return __a & ~__b;
1308 }
1309 
vec_vandc(vector bool int __a,vector unsigned int __b)1310 static vector unsigned int __ATTRS_o_ai vec_vandc(vector bool int __a,
1311                                                   vector unsigned int __b) {
1312   return (vector unsigned int)__a & ~__b;
1313 }
1314 
vec_vandc(vector unsigned int __a,vector bool int __b)1315 static vector unsigned int __ATTRS_o_ai vec_vandc(vector unsigned int __a,
1316                                                   vector bool int __b) {
1317   return __a & ~(vector unsigned int)__b;
1318 }
1319 
vec_vandc(vector bool int __a,vector bool int __b)1320 static vector bool int __ATTRS_o_ai vec_vandc(vector bool int __a,
1321                                               vector bool int __b) {
1322   return __a & ~__b;
1323 }
1324 
vec_vandc(vector float __a,vector float __b)1325 static vector float __ATTRS_o_ai vec_vandc(vector float __a, vector float __b) {
1326   vector unsigned int __res =
1327       (vector unsigned int)__a & ~(vector unsigned int)__b;
1328   return (vector float)__res;
1329 }
1330 
vec_vandc(vector bool int __a,vector float __b)1331 static vector float __ATTRS_o_ai vec_vandc(vector bool int __a,
1332                                            vector float __b) {
1333   vector unsigned int __res =
1334       (vector unsigned int)__a & ~(vector unsigned int)__b;
1335   return (vector float)__res;
1336 }
1337 
vec_vandc(vector float __a,vector bool int __b)1338 static vector float __ATTRS_o_ai vec_vandc(vector float __a,
1339                                            vector bool int __b) {
1340   vector unsigned int __res =
1341       (vector unsigned int)__a & ~(vector unsigned int)__b;
1342   return (vector float)__res;
1343 }
1344 
1345 #ifdef __VSX__
1346 static vector signed long long __ATTRS_o_ai
vec_vandc(vector signed long long __a,vector signed long long __b)1347 vec_vandc(vector signed long long __a, vector signed long long __b) {
1348   return __a & ~__b;
1349 }
1350 
1351 static vector signed long long __ATTRS_o_ai
vec_vandc(vector bool long long __a,vector signed long long __b)1352 vec_vandc(vector bool long long __a, vector signed long long __b) {
1353   return (vector signed long long)__a & ~__b;
1354 }
1355 
1356 static vector signed long long __ATTRS_o_ai
vec_vandc(vector signed long long __a,vector bool long long __b)1357 vec_vandc(vector signed long long __a, vector bool long long __b) {
1358   return __a & ~(vector signed long long)__b;
1359 }
1360 
1361 static vector unsigned long long __ATTRS_o_ai
vec_vandc(vector unsigned long long __a,vector unsigned long long __b)1362 vec_vandc(vector unsigned long long __a, vector unsigned long long __b) {
1363   return __a & ~__b;
1364 }
1365 
1366 static vector unsigned long long __ATTRS_o_ai
vec_vandc(vector bool long long __a,vector unsigned long long __b)1367 vec_vandc(vector bool long long __a, vector unsigned long long __b) {
1368   return (vector unsigned long long)__a & ~__b;
1369 }
1370 
1371 static vector unsigned long long __ATTRS_o_ai
vec_vandc(vector unsigned long long __a,vector bool long long __b)1372 vec_vandc(vector unsigned long long __a, vector bool long long __b) {
1373   return __a & ~(vector unsigned long long)__b;
1374 }
1375 
vec_vandc(vector bool long long __a,vector bool long long __b)1376 static vector bool long long __ATTRS_o_ai vec_vandc(vector bool long long __a,
1377                                                     vector bool long long __b) {
1378   return __a & ~__b;
1379 }
1380 #endif
1381 
1382 /* vec_avg */
1383 
vec_avg(vector signed char __a,vector signed char __b)1384 static vector signed char __ATTRS_o_ai vec_avg(vector signed char __a,
1385                                                vector signed char __b) {
1386   return __builtin_altivec_vavgsb(__a, __b);
1387 }
1388 
vec_avg(vector unsigned char __a,vector unsigned char __b)1389 static vector unsigned char __ATTRS_o_ai vec_avg(vector unsigned char __a,
1390                                                  vector unsigned char __b) {
1391   return __builtin_altivec_vavgub(__a, __b);
1392 }
1393 
vec_avg(vector short __a,vector short __b)1394 static vector short __ATTRS_o_ai vec_avg(vector short __a, vector short __b) {
1395   return __builtin_altivec_vavgsh(__a, __b);
1396 }
1397 
vec_avg(vector unsigned short __a,vector unsigned short __b)1398 static vector unsigned short __ATTRS_o_ai vec_avg(vector unsigned short __a,
1399                                                   vector unsigned short __b) {
1400   return __builtin_altivec_vavguh(__a, __b);
1401 }
1402 
vec_avg(vector int __a,vector int __b)1403 static vector int __ATTRS_o_ai vec_avg(vector int __a, vector int __b) {
1404   return __builtin_altivec_vavgsw(__a, __b);
1405 }
1406 
vec_avg(vector unsigned int __a,vector unsigned int __b)1407 static vector unsigned int __ATTRS_o_ai vec_avg(vector unsigned int __a,
1408                                                 vector unsigned int __b) {
1409   return __builtin_altivec_vavguw(__a, __b);
1410 }
1411 
1412 /* vec_vavgsb */
1413 
1414 static vector signed char __attribute__((__always_inline__))
vec_vavgsb(vector signed char __a,vector signed char __b)1415 vec_vavgsb(vector signed char __a, vector signed char __b) {
1416   return __builtin_altivec_vavgsb(__a, __b);
1417 }
1418 
1419 /* vec_vavgub */
1420 
1421 static vector unsigned char __attribute__((__always_inline__))
vec_vavgub(vector unsigned char __a,vector unsigned char __b)1422 vec_vavgub(vector unsigned char __a, vector unsigned char __b) {
1423   return __builtin_altivec_vavgub(__a, __b);
1424 }
1425 
1426 /* vec_vavgsh */
1427 
1428 static vector short __attribute__((__always_inline__))
vec_vavgsh(vector short __a,vector short __b)1429 vec_vavgsh(vector short __a, vector short __b) {
1430   return __builtin_altivec_vavgsh(__a, __b);
1431 }
1432 
1433 /* vec_vavguh */
1434 
1435 static vector unsigned short __attribute__((__always_inline__))
vec_vavguh(vector unsigned short __a,vector unsigned short __b)1436 vec_vavguh(vector unsigned short __a, vector unsigned short __b) {
1437   return __builtin_altivec_vavguh(__a, __b);
1438 }
1439 
1440 /* vec_vavgsw */
1441 
1442 static vector int __attribute__((__always_inline__))
vec_vavgsw(vector int __a,vector int __b)1443 vec_vavgsw(vector int __a, vector int __b) {
1444   return __builtin_altivec_vavgsw(__a, __b);
1445 }
1446 
1447 /* vec_vavguw */
1448 
1449 static vector unsigned int __attribute__((__always_inline__))
vec_vavguw(vector unsigned int __a,vector unsigned int __b)1450 vec_vavguw(vector unsigned int __a, vector unsigned int __b) {
1451   return __builtin_altivec_vavguw(__a, __b);
1452 }
1453 
1454 /* vec_ceil */
1455 
vec_ceil(vector float __a)1456 static vector float __ATTRS_o_ai vec_ceil(vector float __a) {
1457 #ifdef __VSX__
1458   return __builtin_vsx_xvrspip(__a);
1459 #else
1460   return __builtin_altivec_vrfip(__a);
1461 #endif
1462 }
1463 
1464 #ifdef __VSX__
vec_ceil(vector double __a)1465 static vector double __ATTRS_o_ai vec_ceil(vector double __a) {
1466   return __builtin_vsx_xvrdpip(__a);
1467 }
1468 #endif
1469 
1470 /* vec_vrfip */
1471 
1472 static vector float __attribute__((__always_inline__))
vec_vrfip(vector float __a)1473 vec_vrfip(vector float __a) {
1474   return __builtin_altivec_vrfip(__a);
1475 }
1476 
1477 /* vec_cmpb */
1478 
1479 static vector int __attribute__((__always_inline__))
vec_cmpb(vector float __a,vector float __b)1480 vec_cmpb(vector float __a, vector float __b) {
1481   return __builtin_altivec_vcmpbfp(__a, __b);
1482 }
1483 
1484 /* vec_vcmpbfp */
1485 
1486 static vector int __attribute__((__always_inline__))
vec_vcmpbfp(vector float __a,vector float __b)1487 vec_vcmpbfp(vector float __a, vector float __b) {
1488   return __builtin_altivec_vcmpbfp(__a, __b);
1489 }
1490 
1491 /* vec_cmpeq */
1492 
vec_cmpeq(vector signed char __a,vector signed char __b)1493 static vector bool char __ATTRS_o_ai vec_cmpeq(vector signed char __a,
1494                                                vector signed char __b) {
1495   return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a,
1496                                                       (vector char)__b);
1497 }
1498 
vec_cmpeq(vector unsigned char __a,vector unsigned char __b)1499 static vector bool char __ATTRS_o_ai vec_cmpeq(vector unsigned char __a,
1500                                                vector unsigned char __b) {
1501   return (vector bool char)__builtin_altivec_vcmpequb((vector char)__a,
1502                                                       (vector char)__b);
1503 }
1504 
vec_cmpeq(vector short __a,vector short __b)1505 static vector bool short __ATTRS_o_ai vec_cmpeq(vector short __a,
1506                                                 vector short __b) {
1507   return (vector bool short)__builtin_altivec_vcmpequh(__a, __b);
1508 }
1509 
vec_cmpeq(vector unsigned short __a,vector unsigned short __b)1510 static vector bool short __ATTRS_o_ai vec_cmpeq(vector unsigned short __a,
1511                                                 vector unsigned short __b) {
1512   return (vector bool short)__builtin_altivec_vcmpequh((vector short)__a,
1513                                                        (vector short)__b);
1514 }
1515 
vec_cmpeq(vector int __a,vector int __b)1516 static vector bool int __ATTRS_o_ai vec_cmpeq(vector int __a, vector int __b) {
1517   return (vector bool int)__builtin_altivec_vcmpequw(__a, __b);
1518 }
1519 
vec_cmpeq(vector unsigned int __a,vector unsigned int __b)1520 static vector bool int __ATTRS_o_ai vec_cmpeq(vector unsigned int __a,
1521                                               vector unsigned int __b) {
1522   return (vector bool int)__builtin_altivec_vcmpequw((vector int)__a,
1523                                                      (vector int)__b);
1524 }
1525 
1526 #ifdef __POWER8_VECTOR__
1527 static vector bool long long __ATTRS_o_ai
vec_cmpeq(vector signed long long __a,vector signed long long __b)1528 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
1529   return (vector bool long long)__builtin_altivec_vcmpequd(__a, __b);
1530 }
1531 
1532 static vector bool long long __ATTRS_o_ai
vec_cmpeq(vector unsigned long long __a,vector unsigned long long __b)1533 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
1534   return (vector bool long long)__builtin_altivec_vcmpequd(
1535       (vector long long)__a, (vector long long)__b);
1536 }
1537 #endif
1538 
vec_cmpeq(vector float __a,vector float __b)1539 static vector bool int __ATTRS_o_ai vec_cmpeq(vector float __a,
1540                                               vector float __b) {
1541 #ifdef __VSX__
1542   return (vector bool int)__builtin_vsx_xvcmpeqsp(__a, __b);
1543 #else
1544   return (vector bool int)__builtin_altivec_vcmpeqfp(__a, __b);
1545 #endif
1546 }
1547 
1548 #ifdef __VSX__
1549 static vector bool long long __ATTRS_o_ai
vec_cmpeq(vector double __a,vector double __b)1550 vec_cmpeq(vector double __a, vector double __b) {
1551   return (vector bool long long)__builtin_vsx_xvcmpeqdp(__a, __b);
1552 }
1553 #endif
1554 
1555 
1556 /* vec_cmpgt */
1557 
vec_cmpgt(vector signed char __a,vector signed char __b)1558 static vector bool char __ATTRS_o_ai vec_cmpgt(vector signed char __a,
1559                                                vector signed char __b) {
1560   return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
1561 }
1562 
vec_cmpgt(vector unsigned char __a,vector unsigned char __b)1563 static vector bool char __ATTRS_o_ai vec_cmpgt(vector unsigned char __a,
1564                                                vector unsigned char __b) {
1565   return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
1566 }
1567 
vec_cmpgt(vector short __a,vector short __b)1568 static vector bool short __ATTRS_o_ai vec_cmpgt(vector short __a,
1569                                                 vector short __b) {
1570   return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
1571 }
1572 
vec_cmpgt(vector unsigned short __a,vector unsigned short __b)1573 static vector bool short __ATTRS_o_ai vec_cmpgt(vector unsigned short __a,
1574                                                 vector unsigned short __b) {
1575   return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
1576 }
1577 
vec_cmpgt(vector int __a,vector int __b)1578 static vector bool int __ATTRS_o_ai vec_cmpgt(vector int __a, vector int __b) {
1579   return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
1580 }
1581 
vec_cmpgt(vector unsigned int __a,vector unsigned int __b)1582 static vector bool int __ATTRS_o_ai vec_cmpgt(vector unsigned int __a,
1583                                               vector unsigned int __b) {
1584   return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
1585 }
1586 
1587 #ifdef __POWER8_VECTOR__
1588 static vector bool long long __ATTRS_o_ai
vec_cmpgt(vector signed long long __a,vector signed long long __b)1589 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
1590   return (vector bool long long)__builtin_altivec_vcmpgtsd(__a, __b);
1591 }
1592 
1593 static vector bool long long __ATTRS_o_ai
vec_cmpgt(vector unsigned long long __a,vector unsigned long long __b)1594 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
1595   return (vector bool long long)__builtin_altivec_vcmpgtud(__a, __b);
1596 }
1597 #endif
1598 
vec_cmpgt(vector float __a,vector float __b)1599 static vector bool int __ATTRS_o_ai vec_cmpgt(vector float __a,
1600                                               vector float __b) {
1601 #ifdef __VSX__
1602   return (vector bool int)__builtin_vsx_xvcmpgtsp(__a, __b);
1603 #else
1604   return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
1605 #endif
1606 }
1607 
1608 #ifdef __VSX__
1609 static vector bool long long __ATTRS_o_ai
vec_cmpgt(vector double __a,vector double __b)1610 vec_cmpgt(vector double __a, vector double __b) {
1611   return (vector bool long long)__builtin_vsx_xvcmpgtdp(__a, __b);
1612 }
1613 #endif
1614 
1615 /* vec_cmpge */
1616 
1617 static vector bool char __ATTRS_o_ai
vec_cmpge(vector signed char __a,vector signed char __b)1618 vec_cmpge (vector signed char __a, vector signed char __b) {
1619   return ~(vec_cmpgt(__b, __a));
1620 }
1621 
1622 static vector bool char __ATTRS_o_ai
vec_cmpge(vector unsigned char __a,vector unsigned char __b)1623 vec_cmpge (vector unsigned char __a, vector unsigned char __b) {
1624   return ~(vec_cmpgt(__b, __a));
1625 }
1626 
1627 static vector bool short __ATTRS_o_ai
vec_cmpge(vector signed short __a,vector signed short __b)1628 vec_cmpge (vector signed short __a, vector signed short __b) {
1629   return ~(vec_cmpgt(__b, __a));
1630 }
1631 
1632 static vector bool short __ATTRS_o_ai
vec_cmpge(vector unsigned short __a,vector unsigned short __b)1633 vec_cmpge (vector unsigned short __a, vector unsigned short __b) {
1634   return ~(vec_cmpgt(__b, __a));
1635 }
1636 
1637 static vector bool int __ATTRS_o_ai
vec_cmpge(vector signed int __a,vector signed int __b)1638 vec_cmpge (vector signed int __a, vector signed int __b) {
1639   return ~(vec_cmpgt(__b, __a));
1640 }
1641 
1642 static vector bool int __ATTRS_o_ai
vec_cmpge(vector unsigned int __a,vector unsigned int __b)1643 vec_cmpge (vector unsigned int __a, vector unsigned int __b) {
1644   return ~(vec_cmpgt(__b, __a));
1645 }
1646 
1647 static vector bool int __ATTRS_o_ai
vec_cmpge(vector float __a,vector float __b)1648 vec_cmpge(vector float __a, vector float __b) {
1649 #ifdef __VSX__
1650   return (vector bool int)__builtin_vsx_xvcmpgesp(__a, __b);
1651 #else
1652   return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
1653 #endif
1654 }
1655 
1656 #ifdef __VSX__
1657 static vector bool long long __ATTRS_o_ai
vec_cmpge(vector double __a,vector double __b)1658 vec_cmpge(vector double __a, vector double __b) {
1659   return (vector bool long long)__builtin_vsx_xvcmpgedp(__a, __b);
1660 }
1661 #endif
1662 
1663 #ifdef __POWER8_VECTOR__
1664 static vector bool long long __ATTRS_o_ai
vec_cmpge(vector signed long long __a,vector signed long long __b)1665 vec_cmpge(vector signed long long __a, vector signed long long __b) {
1666   return ~(vec_cmpgt(__b, __a));
1667 }
1668 
1669 static vector bool long long __ATTRS_o_ai
vec_cmpge(vector unsigned long long __a,vector unsigned long long __b)1670 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
1671   return ~(vec_cmpgt(__b, __a));
1672 }
1673 #endif
1674 
1675 /* vec_vcmpgefp */
1676 
1677 static vector bool int __attribute__((__always_inline__))
vec_vcmpgefp(vector float __a,vector float __b)1678 vec_vcmpgefp(vector float __a, vector float __b) {
1679   return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
1680 }
1681 
1682 /* vec_vcmpgtsb */
1683 
1684 static vector bool char __attribute__((__always_inline__))
vec_vcmpgtsb(vector signed char __a,vector signed char __b)1685 vec_vcmpgtsb(vector signed char __a, vector signed char __b) {
1686   return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
1687 }
1688 
1689 /* vec_vcmpgtub */
1690 
1691 static vector bool char __attribute__((__always_inline__))
vec_vcmpgtub(vector unsigned char __a,vector unsigned char __b)1692 vec_vcmpgtub(vector unsigned char __a, vector unsigned char __b) {
1693   return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
1694 }
1695 
1696 /* vec_vcmpgtsh */
1697 
1698 static vector bool short __attribute__((__always_inline__))
vec_vcmpgtsh(vector short __a,vector short __b)1699 vec_vcmpgtsh(vector short __a, vector short __b) {
1700   return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
1701 }
1702 
1703 /* vec_vcmpgtuh */
1704 
1705 static vector bool short __attribute__((__always_inline__))
vec_vcmpgtuh(vector unsigned short __a,vector unsigned short __b)1706 vec_vcmpgtuh(vector unsigned short __a, vector unsigned short __b) {
1707   return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
1708 }
1709 
1710 /* vec_vcmpgtsw */
1711 
1712 static vector bool int __attribute__((__always_inline__))
vec_vcmpgtsw(vector int __a,vector int __b)1713 vec_vcmpgtsw(vector int __a, vector int __b) {
1714   return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
1715 }
1716 
1717 /* vec_vcmpgtuw */
1718 
1719 static vector bool int __attribute__((__always_inline__))
vec_vcmpgtuw(vector unsigned int __a,vector unsigned int __b)1720 vec_vcmpgtuw(vector unsigned int __a, vector unsigned int __b) {
1721   return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
1722 }
1723 
1724 /* vec_vcmpgtfp */
1725 
1726 static vector bool int __attribute__((__always_inline__))
vec_vcmpgtfp(vector float __a,vector float __b)1727 vec_vcmpgtfp(vector float __a, vector float __b) {
1728   return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
1729 }
1730 
1731 /* vec_cmple */
1732 
1733 static vector bool char __ATTRS_o_ai
vec_cmple(vector signed char __a,vector signed char __b)1734 vec_cmple (vector signed char __a, vector signed char __b) {
1735   return vec_cmpge(__b, __a);
1736 }
1737 
1738 static vector bool char __ATTRS_o_ai
vec_cmple(vector unsigned char __a,vector unsigned char __b)1739 vec_cmple (vector unsigned char __a, vector unsigned char __b) {
1740   return vec_cmpge(__b, __a);
1741 }
1742 
1743 static vector bool short __ATTRS_o_ai
vec_cmple(vector signed short __a,vector signed short __b)1744 vec_cmple (vector signed short __a, vector signed short __b) {
1745   return vec_cmpge(__b, __a);
1746 }
1747 
1748 static vector bool short __ATTRS_o_ai
vec_cmple(vector unsigned short __a,vector unsigned short __b)1749 vec_cmple (vector unsigned short __a, vector unsigned short __b) {
1750   return vec_cmpge(__b, __a);
1751 }
1752 
1753 static vector bool int __ATTRS_o_ai
vec_cmple(vector signed int __a,vector signed int __b)1754 vec_cmple (vector signed int __a, vector signed int __b) {
1755   return vec_cmpge(__b, __a);
1756 }
1757 
1758 static vector bool int __ATTRS_o_ai
vec_cmple(vector unsigned int __a,vector unsigned int __b)1759 vec_cmple (vector unsigned int __a, vector unsigned int __b) {
1760   return vec_cmpge(__b, __a);
1761 }
1762 
1763 static vector bool int __ATTRS_o_ai
vec_cmple(vector float __a,vector float __b)1764 vec_cmple(vector float __a, vector float __b) {
1765   return vec_cmpge(__b, __a);
1766 }
1767 
1768 #ifdef __VSX__
1769 static vector bool long long __ATTRS_o_ai
vec_cmple(vector double __a,vector double __b)1770 vec_cmple(vector double __a, vector double __b) {
1771   return vec_cmpge(__b, __a);
1772 }
1773 #endif
1774 
1775 #ifdef __POWER8_VECTOR__
1776 static vector bool long long __ATTRS_o_ai
vec_cmple(vector signed long long __a,vector signed long long __b)1777 vec_cmple(vector signed long long __a, vector signed long long __b) {
1778   return vec_cmpge(__b, __a);
1779 }
1780 
1781 static vector bool long long __ATTRS_o_ai
vec_cmple(vector unsigned long long __a,vector unsigned long long __b)1782 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
1783   return vec_cmpge(__b, __a);
1784 }
1785 #endif
1786 
1787 /* vec_cmplt */
1788 
vec_cmplt(vector signed char __a,vector signed char __b)1789 static vector bool char __ATTRS_o_ai vec_cmplt(vector signed char __a,
1790                                                vector signed char __b) {
1791   return vec_cmpgt(__b, __a);
1792 }
1793 
vec_cmplt(vector unsigned char __a,vector unsigned char __b)1794 static vector bool char __ATTRS_o_ai vec_cmplt(vector unsigned char __a,
1795                                                vector unsigned char __b) {
1796   return vec_cmpgt(__b, __a);
1797 }
1798 
vec_cmplt(vector short __a,vector short __b)1799 static vector bool short __ATTRS_o_ai vec_cmplt(vector short __a,
1800                                                 vector short __b) {
1801   return vec_cmpgt(__b, __a);
1802 }
1803 
vec_cmplt(vector unsigned short __a,vector unsigned short __b)1804 static vector bool short __ATTRS_o_ai vec_cmplt(vector unsigned short __a,
1805                                                 vector unsigned short __b) {
1806   return vec_cmpgt(__b, __a);
1807 }
1808 
vec_cmplt(vector int __a,vector int __b)1809 static vector bool int __ATTRS_o_ai vec_cmplt(vector int __a, vector int __b) {
1810   return vec_cmpgt(__b, __a);
1811 }
1812 
vec_cmplt(vector unsigned int __a,vector unsigned int __b)1813 static vector bool int __ATTRS_o_ai vec_cmplt(vector unsigned int __a,
1814                                               vector unsigned int __b) {
1815   return vec_cmpgt(__b, __a);
1816 }
1817 
vec_cmplt(vector float __a,vector float __b)1818 static vector bool int __ATTRS_o_ai vec_cmplt(vector float __a,
1819                                               vector float __b) {
1820   return vec_cmpgt(__b, __a);
1821 }
1822 
1823 #ifdef __VSX__
1824 static vector bool long long __ATTRS_o_ai
vec_cmplt(vector double __a,vector double __b)1825 vec_cmplt(vector double __a, vector double __b) {
1826   return vec_cmpgt(__b, __a);
1827 }
1828 #endif
1829 
1830 #ifdef __POWER8_VECTOR__
1831 static vector bool long long __ATTRS_o_ai
vec_cmplt(vector signed long long __a,vector signed long long __b)1832 vec_cmplt(vector signed long long __a, vector signed long long __b) {
1833   return vec_cmpgt(__b, __a);
1834 }
1835 
1836 static vector bool long long __ATTRS_o_ai
vec_cmplt(vector unsigned long long __a,vector unsigned long long __b)1837 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
1838   return vec_cmpgt(__b, __a);
1839 }
1840 
1841 /* vec_cntlz */
1842 
vec_cntlz(vector signed char __a)1843 static vector signed char __ATTRS_o_ai vec_cntlz(vector signed char __a) {
1844   return __builtin_altivec_vclzb(__a);
1845 }
vec_cntlz(vector unsigned char __a)1846 static vector unsigned char __ATTRS_o_ai vec_cntlz(vector unsigned char __a) {
1847   return __builtin_altivec_vclzb(__a);
1848 }
vec_cntlz(vector signed short __a)1849 static vector signed short __ATTRS_o_ai vec_cntlz(vector signed short __a) {
1850   return __builtin_altivec_vclzh(__a);
1851 }
vec_cntlz(vector unsigned short __a)1852 static vector unsigned short __ATTRS_o_ai vec_cntlz(vector unsigned short __a) {
1853   return __builtin_altivec_vclzh(__a);
1854 }
vec_cntlz(vector signed int __a)1855 static vector signed int __ATTRS_o_ai vec_cntlz(vector signed int __a) {
1856   return __builtin_altivec_vclzw(__a);
1857 }
vec_cntlz(vector unsigned int __a)1858 static vector unsigned int __ATTRS_o_ai vec_cntlz(vector unsigned int __a) {
1859   return __builtin_altivec_vclzw(__a);
1860 }
1861 static vector signed long long __ATTRS_o_ai
vec_cntlz(vector signed long long __a)1862 vec_cntlz(vector signed long long __a) {
1863   return __builtin_altivec_vclzd(__a);
1864 }
1865 static vector unsigned long long __ATTRS_o_ai
vec_cntlz(vector unsigned long long __a)1866 vec_cntlz(vector unsigned long long __a) {
1867   return __builtin_altivec_vclzd(__a);
1868 }
1869 #endif
1870 
1871 /* vec_cpsgn */
1872 
1873 #ifdef __VSX__
vec_cpsgn(vector float __a,vector float __b)1874 static vector float __ATTRS_o_ai vec_cpsgn(vector float __a, vector float __b) {
1875   return __builtin_vsx_xvcpsgnsp(__a, __b);
1876 }
1877 
vec_cpsgn(vector double __a,vector double __b)1878 static vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
1879                                             vector double __b) {
1880   return __builtin_vsx_xvcpsgndp(__a, __b);
1881 }
1882 #endif
1883 
1884 /* vec_ctf */
1885 
vec_ctf(vector int __a,int __b)1886 static vector float __ATTRS_o_ai vec_ctf(vector int __a, int __b) {
1887   return __builtin_altivec_vcfsx(__a, __b);
1888 }
1889 
vec_ctf(vector unsigned int __a,int __b)1890 static vector float __ATTRS_o_ai vec_ctf(vector unsigned int __a, int __b) {
1891   return __builtin_altivec_vcfux((vector int)__a, __b);
1892 }
1893 
1894 /* vec_vcfsx */
1895 
1896 static vector float __attribute__((__always_inline__))
vec_vcfsx(vector int __a,int __b)1897 vec_vcfsx(vector int __a, int __b) {
1898   return __builtin_altivec_vcfsx(__a, __b);
1899 }
1900 
1901 /* vec_vcfux */
1902 
1903 static vector float __attribute__((__always_inline__))
vec_vcfux(vector unsigned int __a,int __b)1904 vec_vcfux(vector unsigned int __a, int __b) {
1905   return __builtin_altivec_vcfux((vector int)__a, __b);
1906 }
1907 
1908 /* vec_cts */
1909 
1910 static vector int __attribute__((__always_inline__))
vec_cts(vector float __a,int __b)1911 vec_cts(vector float __a, int __b) {
1912   return __builtin_altivec_vctsxs(__a, __b);
1913 }
1914 
1915 /* vec_vctsxs */
1916 
1917 static vector int __attribute__((__always_inline__))
vec_vctsxs(vector float __a,int __b)1918 vec_vctsxs(vector float __a, int __b) {
1919   return __builtin_altivec_vctsxs(__a, __b);
1920 }
1921 
1922 /* vec_ctu */
1923 
1924 static vector unsigned int __attribute__((__always_inline__))
vec_ctu(vector float __a,int __b)1925 vec_ctu(vector float __a, int __b) {
1926   return __builtin_altivec_vctuxs(__a, __b);
1927 }
1928 
1929 /* vec_vctuxs */
1930 
1931 static vector unsigned int __attribute__((__always_inline__))
vec_vctuxs(vector float __a,int __b)1932 vec_vctuxs(vector float __a, int __b) {
1933   return __builtin_altivec_vctuxs(__a, __b);
1934 }
1935 
1936 /* vec_double */
1937 
1938 #ifdef __VSX__
vec_double(vector signed long long __a)1939 static vector double __ATTRS_o_ai vec_double (vector signed long long __a) {
1940   vector double __ret = { __a[0], __a[1] };
1941   return __ret;
1942 }
1943 
vec_double(vector unsigned long long __a)1944 static vector double __ATTRS_o_ai vec_double (vector unsigned long long __a) {
1945   vector double __ret = { __a[0], __a[1] };
1946   return __ret;
1947 }
1948 #endif
1949 
1950 /* vec_div */
1951 
1952 /* Integer vector divides (vectors are scalarized, elements divided
1953    and the vectors reassembled).
1954 */
vec_div(vector signed char __a,vector signed char __b)1955 static vector signed char __ATTRS_o_ai vec_div(vector signed char __a,
1956                                                vector signed char __b) {
1957   return __a / __b;
1958 }
1959 
vec_div(vector unsigned char __a,vector unsigned char __b)1960 static vector unsigned char __ATTRS_o_ai vec_div(vector unsigned char __a,
1961                                                  vector unsigned char __b) {
1962   return __a / __b;
1963 }
1964 
vec_div(vector signed short __a,vector signed short __b)1965 static vector signed short __ATTRS_o_ai vec_div(vector signed short __a,
1966                                                 vector signed short __b) {
1967   return __a / __b;
1968 }
1969 
vec_div(vector unsigned short __a,vector unsigned short __b)1970 static vector unsigned short __ATTRS_o_ai vec_div(vector unsigned short __a,
1971                                                   vector unsigned short __b) {
1972   return __a / __b;
1973 }
1974 
vec_div(vector signed int __a,vector signed int __b)1975 static vector signed int __ATTRS_o_ai vec_div(vector signed int __a,
1976                                               vector signed int __b) {
1977   return __a / __b;
1978 }
1979 
vec_div(vector unsigned int __a,vector unsigned int __b)1980 static vector unsigned int __ATTRS_o_ai vec_div(vector unsigned int __a,
1981                                                 vector unsigned int __b) {
1982   return __a / __b;
1983 }
1984 
1985 #ifdef __VSX__
1986 static vector signed long long __ATTRS_o_ai
vec_div(vector signed long long __a,vector signed long long __b)1987 vec_div(vector signed long long __a, vector signed long long __b) {
1988   return __a / __b;
1989 }
1990 
1991 static vector unsigned long long __ATTRS_o_ai
vec_div(vector unsigned long long __a,vector unsigned long long __b)1992 vec_div(vector unsigned long long __a, vector unsigned long long __b) {
1993   return __a / __b;
1994 }
1995 
vec_div(vector float __a,vector float __b)1996 static vector float __ATTRS_o_ai vec_div(vector float __a, vector float __b) {
1997   return __a / __b;
1998 }
1999 
vec_div(vector double __a,vector double __b)2000 static vector double __ATTRS_o_ai vec_div(vector double __a,
2001                                           vector double __b) {
2002   return __a / __b;
2003 }
2004 #endif
2005 
2006 /* vec_dss */
2007 
vec_dss(int __a)2008 static void __attribute__((__always_inline__)) vec_dss(int __a) {
2009   __builtin_altivec_dss(__a);
2010 }
2011 
2012 /* vec_dssall */
2013 
vec_dssall(void)2014 static void __attribute__((__always_inline__)) vec_dssall(void) {
2015   __builtin_altivec_dssall();
2016 }
2017 
2018 /* vec_dst */
2019 
2020 static void __attribute__((__always_inline__))
vec_dst(const void * __a,int __b,int __c)2021 vec_dst(const void *__a, int __b, int __c) {
2022   __builtin_altivec_dst(__a, __b, __c);
2023 }
2024 
2025 /* vec_dstst */
2026 
2027 static void __attribute__((__always_inline__))
vec_dstst(const void * __a,int __b,int __c)2028 vec_dstst(const void *__a, int __b, int __c) {
2029   __builtin_altivec_dstst(__a, __b, __c);
2030 }
2031 
2032 /* vec_dststt */
2033 
2034 static void __attribute__((__always_inline__))
vec_dststt(const void * __a,int __b,int __c)2035 vec_dststt(const void *__a, int __b, int __c) {
2036   __builtin_altivec_dststt(__a, __b, __c);
2037 }
2038 
2039 /* vec_dstt */
2040 
2041 static void __attribute__((__always_inline__))
vec_dstt(const void * __a,int __b,int __c)2042 vec_dstt(const void *__a, int __b, int __c) {
2043   __builtin_altivec_dstt(__a, __b, __c);
2044 }
2045 
2046 /* vec_eqv */
2047 
2048 #ifdef __POWER8_VECTOR__
vec_eqv(vector signed char __a,vector signed char __b)2049 static vector signed char __ATTRS_o_ai vec_eqv(vector signed char __a,
2050                                                vector signed char __b) {
2051   return (vector signed char)__builtin_vsx_xxleqv((vector unsigned int)__a,
2052                                                   (vector unsigned int)__b);
2053 }
2054 
vec_eqv(vector unsigned char __a,vector unsigned char __b)2055 static vector unsigned char __ATTRS_o_ai vec_eqv(vector unsigned char __a,
2056                                                  vector unsigned char __b) {
2057   return (vector unsigned char)__builtin_vsx_xxleqv((vector unsigned int)__a,
2058                                                     (vector unsigned int)__b);
2059 }
2060 
vec_eqv(vector bool char __a,vector bool char __b)2061 static vector bool char __ATTRS_o_ai vec_eqv(vector bool char __a,
2062                                              vector bool char __b) {
2063   return (vector bool char)__builtin_vsx_xxleqv((vector unsigned int)__a,
2064                                                 (vector unsigned int)__b);
2065 }
2066 
vec_eqv(vector signed short __a,vector signed short __b)2067 static vector signed short __ATTRS_o_ai vec_eqv(vector signed short __a,
2068                                                 vector signed short __b) {
2069   return (vector signed short)__builtin_vsx_xxleqv((vector unsigned int)__a,
2070                                                    (vector unsigned int)__b);
2071 }
2072 
vec_eqv(vector unsigned short __a,vector unsigned short __b)2073 static vector unsigned short __ATTRS_o_ai vec_eqv(vector unsigned short __a,
2074                                                   vector unsigned short __b) {
2075   return (vector unsigned short)__builtin_vsx_xxleqv((vector unsigned int)__a,
2076                                                      (vector unsigned int)__b);
2077 }
2078 
vec_eqv(vector bool short __a,vector bool short __b)2079 static vector bool short __ATTRS_o_ai vec_eqv(vector bool short __a,
2080                                               vector bool short __b) {
2081   return (vector bool short)__builtin_vsx_xxleqv((vector unsigned int)__a,
2082                                                  (vector unsigned int)__b);
2083 }
2084 
vec_eqv(vector signed int __a,vector signed int __b)2085 static vector signed int __ATTRS_o_ai vec_eqv(vector signed int __a,
2086                                               vector signed int __b) {
2087   return (vector signed int)__builtin_vsx_xxleqv((vector unsigned int)__a,
2088                                                  (vector unsigned int)__b);
2089 }
2090 
vec_eqv(vector unsigned int __a,vector unsigned int __b)2091 static vector unsigned int __ATTRS_o_ai vec_eqv(vector unsigned int __a,
2092                                                 vector unsigned int __b) {
2093   return __builtin_vsx_xxleqv(__a, __b);
2094 }
2095 
vec_eqv(vector bool int __a,vector bool int __b)2096 static vector bool int __ATTRS_o_ai vec_eqv(vector bool int __a,
2097                                             vector bool int __b) {
2098   return (vector bool int)__builtin_vsx_xxleqv((vector unsigned int)__a,
2099                                                  (vector unsigned int)__b);
2100 }
2101 
2102 static vector signed long long __ATTRS_o_ai
vec_eqv(vector signed long long __a,vector signed long long __b)2103 vec_eqv(vector signed long long __a, vector signed long long __b) {
2104   return (vector signed long long)
2105     __builtin_vsx_xxleqv((vector unsigned int)__a, (vector unsigned int)__b);
2106 }
2107 
2108 static vector unsigned long long __ATTRS_o_ai
vec_eqv(vector unsigned long long __a,vector unsigned long long __b)2109 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
2110   return (vector unsigned long long)
2111     __builtin_vsx_xxleqv((vector unsigned int)__a, (vector unsigned int)__b);
2112 }
2113 
2114 static vector bool long long __ATTRS_o_ai
vec_eqv(vector bool long long __a,vector bool long long __b)2115 vec_eqv(vector bool long long __a, vector bool long long __b) {
2116   return (vector bool long long)
2117     __builtin_vsx_xxleqv((vector unsigned int)__a, (vector unsigned int)__b);
2118 }
2119 
vec_eqv(vector float __a,vector float __b)2120 static vector float __ATTRS_o_ai vec_eqv(vector float __a, vector float __b) {
2121   return (vector float)__builtin_vsx_xxleqv((vector unsigned int)__a,
2122                                             (vector unsigned int)__b);
2123 }
2124 
vec_eqv(vector double __a,vector double __b)2125 static vector double __ATTRS_o_ai vec_eqv(vector double __a,
2126                                           vector double __b) {
2127   return (vector double)__builtin_vsx_xxleqv((vector unsigned int)__a,
2128                                              (vector unsigned int)__b);
2129 }
2130 #endif
2131 
2132 /* vec_expte */
2133 
2134 static vector float __attribute__((__always_inline__))
vec_expte(vector float __a)2135 vec_expte(vector float __a) {
2136   return __builtin_altivec_vexptefp(__a);
2137 }
2138 
2139 /* vec_vexptefp */
2140 
2141 static vector float __attribute__((__always_inline__))
vec_vexptefp(vector float __a)2142 vec_vexptefp(vector float __a) {
2143   return __builtin_altivec_vexptefp(__a);
2144 }
2145 
2146 /* vec_floor */
2147 
vec_floor(vector float __a)2148 static vector float __ATTRS_o_ai vec_floor(vector float __a) {
2149 #ifdef __VSX__
2150   return __builtin_vsx_xvrspim(__a);
2151 #else
2152   return __builtin_altivec_vrfim(__a);
2153 #endif
2154 }
2155 
2156 #ifdef __VSX__
vec_floor(vector double __a)2157 static vector double __ATTRS_o_ai vec_floor(vector double __a) {
2158   return __builtin_vsx_xvrdpim(__a);
2159 }
2160 #endif
2161 
2162 /* vec_vrfim */
2163 
2164 static vector float __attribute__((__always_inline__))
vec_vrfim(vector float __a)2165 vec_vrfim(vector float __a) {
2166   return __builtin_altivec_vrfim(__a);
2167 }
2168 
2169 /* vec_ld */
2170 
vec_ld(int __a,const vector signed char * __b)2171 static vector signed char __ATTRS_o_ai vec_ld(int __a,
2172                                               const vector signed char *__b) {
2173   return (vector signed char)__builtin_altivec_lvx(__a, __b);
2174 }
2175 
vec_ld(int __a,const signed char * __b)2176 static vector signed char __ATTRS_o_ai vec_ld(int __a, const signed char *__b) {
2177   return (vector signed char)__builtin_altivec_lvx(__a, __b);
2178 }
2179 
2180 static vector unsigned char __ATTRS_o_ai
vec_ld(int __a,const vector unsigned char * __b)2181 vec_ld(int __a, const vector unsigned char *__b) {
2182   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
2183 }
2184 
vec_ld(int __a,const unsigned char * __b)2185 static vector unsigned char __ATTRS_o_ai vec_ld(int __a,
2186                                                 const unsigned char *__b) {
2187   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
2188 }
2189 
vec_ld(int __a,const vector bool char * __b)2190 static vector bool char __ATTRS_o_ai vec_ld(int __a,
2191                                             const vector bool char *__b) {
2192   return (vector bool char)__builtin_altivec_lvx(__a, __b);
2193 }
2194 
vec_ld(int __a,const vector short * __b)2195 static vector short __ATTRS_o_ai vec_ld(int __a, const vector short *__b) {
2196   return (vector short)__builtin_altivec_lvx(__a, __b);
2197 }
2198 
vec_ld(int __a,const short * __b)2199 static vector short __ATTRS_o_ai vec_ld(int __a, const short *__b) {
2200   return (vector short)__builtin_altivec_lvx(__a, __b);
2201 }
2202 
2203 static vector unsigned short __ATTRS_o_ai
vec_ld(int __a,const vector unsigned short * __b)2204 vec_ld(int __a, const vector unsigned short *__b) {
2205   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
2206 }
2207 
vec_ld(int __a,const unsigned short * __b)2208 static vector unsigned short __ATTRS_o_ai vec_ld(int __a,
2209                                                  const unsigned short *__b) {
2210   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
2211 }
2212 
vec_ld(int __a,const vector bool short * __b)2213 static vector bool short __ATTRS_o_ai vec_ld(int __a,
2214                                              const vector bool short *__b) {
2215   return (vector bool short)__builtin_altivec_lvx(__a, __b);
2216 }
2217 
vec_ld(int __a,const vector pixel * __b)2218 static vector pixel __ATTRS_o_ai vec_ld(int __a, const vector pixel *__b) {
2219   return (vector pixel)__builtin_altivec_lvx(__a, __b);
2220 }
2221 
vec_ld(int __a,const vector int * __b)2222 static vector int __ATTRS_o_ai vec_ld(int __a, const vector int *__b) {
2223   return (vector int)__builtin_altivec_lvx(__a, __b);
2224 }
2225 
vec_ld(int __a,const int * __b)2226 static vector int __ATTRS_o_ai vec_ld(int __a, const int *__b) {
2227   return (vector int)__builtin_altivec_lvx(__a, __b);
2228 }
2229 
vec_ld(int __a,const vector unsigned int * __b)2230 static vector unsigned int __ATTRS_o_ai vec_ld(int __a,
2231                                                const vector unsigned int *__b) {
2232   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
2233 }
2234 
vec_ld(int __a,const unsigned int * __b)2235 static vector unsigned int __ATTRS_o_ai vec_ld(int __a,
2236                                                const unsigned int *__b) {
2237   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
2238 }
2239 
vec_ld(int __a,const vector bool int * __b)2240 static vector bool int __ATTRS_o_ai vec_ld(int __a,
2241                                            const vector bool int *__b) {
2242   return (vector bool int)__builtin_altivec_lvx(__a, __b);
2243 }
2244 
vec_ld(int __a,const vector float * __b)2245 static vector float __ATTRS_o_ai vec_ld(int __a, const vector float *__b) {
2246   return (vector float)__builtin_altivec_lvx(__a, __b);
2247 }
2248 
vec_ld(int __a,const float * __b)2249 static vector float __ATTRS_o_ai vec_ld(int __a, const float *__b) {
2250   return (vector float)__builtin_altivec_lvx(__a, __b);
2251 }
2252 
2253 /* vec_lvx */
2254 
vec_lvx(int __a,const vector signed char * __b)2255 static vector signed char __ATTRS_o_ai vec_lvx(int __a,
2256                                                const vector signed char *__b) {
2257   return (vector signed char)__builtin_altivec_lvx(__a, __b);
2258 }
2259 
vec_lvx(int __a,const signed char * __b)2260 static vector signed char __ATTRS_o_ai vec_lvx(int __a,
2261                                                const signed char *__b) {
2262   return (vector signed char)__builtin_altivec_lvx(__a, __b);
2263 }
2264 
2265 static vector unsigned char __ATTRS_o_ai
vec_lvx(int __a,const vector unsigned char * __b)2266 vec_lvx(int __a, const vector unsigned char *__b) {
2267   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
2268 }
2269 
vec_lvx(int __a,const unsigned char * __b)2270 static vector unsigned char __ATTRS_o_ai vec_lvx(int __a,
2271                                                  const unsigned char *__b) {
2272   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
2273 }
2274 
vec_lvx(int __a,const vector bool char * __b)2275 static vector bool char __ATTRS_o_ai vec_lvx(int __a,
2276                                              const vector bool char *__b) {
2277   return (vector bool char)__builtin_altivec_lvx(__a, __b);
2278 }
2279 
vec_lvx(int __a,const vector short * __b)2280 static vector short __ATTRS_o_ai vec_lvx(int __a, const vector short *__b) {
2281   return (vector short)__builtin_altivec_lvx(__a, __b);
2282 }
2283 
vec_lvx(int __a,const short * __b)2284 static vector short __ATTRS_o_ai vec_lvx(int __a, const short *__b) {
2285   return (vector short)__builtin_altivec_lvx(__a, __b);
2286 }
2287 
2288 static vector unsigned short __ATTRS_o_ai
vec_lvx(int __a,const vector unsigned short * __b)2289 vec_lvx(int __a, const vector unsigned short *__b) {
2290   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
2291 }
2292 
vec_lvx(int __a,const unsigned short * __b)2293 static vector unsigned short __ATTRS_o_ai vec_lvx(int __a,
2294                                                   const unsigned short *__b) {
2295   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
2296 }
2297 
vec_lvx(int __a,const vector bool short * __b)2298 static vector bool short __ATTRS_o_ai vec_lvx(int __a,
2299                                               const vector bool short *__b) {
2300   return (vector bool short)__builtin_altivec_lvx(__a, __b);
2301 }
2302 
vec_lvx(int __a,const vector pixel * __b)2303 static vector pixel __ATTRS_o_ai vec_lvx(int __a, const vector pixel *__b) {
2304   return (vector pixel)__builtin_altivec_lvx(__a, __b);
2305 }
2306 
vec_lvx(int __a,const vector int * __b)2307 static vector int __ATTRS_o_ai vec_lvx(int __a, const vector int *__b) {
2308   return (vector int)__builtin_altivec_lvx(__a, __b);
2309 }
2310 
vec_lvx(int __a,const int * __b)2311 static vector int __ATTRS_o_ai vec_lvx(int __a, const int *__b) {
2312   return (vector int)__builtin_altivec_lvx(__a, __b);
2313 }
2314 
2315 static vector unsigned int __ATTRS_o_ai
vec_lvx(int __a,const vector unsigned int * __b)2316 vec_lvx(int __a, const vector unsigned int *__b) {
2317   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
2318 }
2319 
vec_lvx(int __a,const unsigned int * __b)2320 static vector unsigned int __ATTRS_o_ai vec_lvx(int __a,
2321                                                 const unsigned int *__b) {
2322   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
2323 }
2324 
vec_lvx(int __a,const vector bool int * __b)2325 static vector bool int __ATTRS_o_ai vec_lvx(int __a,
2326                                             const vector bool int *__b) {
2327   return (vector bool int)__builtin_altivec_lvx(__a, __b);
2328 }
2329 
vec_lvx(int __a,const vector float * __b)2330 static vector float __ATTRS_o_ai vec_lvx(int __a, const vector float *__b) {
2331   return (vector float)__builtin_altivec_lvx(__a, __b);
2332 }
2333 
vec_lvx(int __a,const float * __b)2334 static vector float __ATTRS_o_ai vec_lvx(int __a, const float *__b) {
2335   return (vector float)__builtin_altivec_lvx(__a, __b);
2336 }
2337 
2338 /* vec_lde */
2339 
vec_lde(int __a,const signed char * __b)2340 static vector signed char __ATTRS_o_ai vec_lde(int __a,
2341                                                const signed char *__b) {
2342   return (vector signed char)__builtin_altivec_lvebx(__a, __b);
2343 }
2344 
vec_lde(int __a,const unsigned char * __b)2345 static vector unsigned char __ATTRS_o_ai vec_lde(int __a,
2346                                                  const unsigned char *__b) {
2347   return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
2348 }
2349 
vec_lde(int __a,const short * __b)2350 static vector short __ATTRS_o_ai vec_lde(int __a, const short *__b) {
2351   return (vector short)__builtin_altivec_lvehx(__a, __b);
2352 }
2353 
vec_lde(int __a,const unsigned short * __b)2354 static vector unsigned short __ATTRS_o_ai vec_lde(int __a,
2355                                                   const unsigned short *__b) {
2356   return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
2357 }
2358 
vec_lde(int __a,const int * __b)2359 static vector int __ATTRS_o_ai vec_lde(int __a, const int *__b) {
2360   return (vector int)__builtin_altivec_lvewx(__a, __b);
2361 }
2362 
vec_lde(int __a,const unsigned int * __b)2363 static vector unsigned int __ATTRS_o_ai vec_lde(int __a,
2364                                                 const unsigned int *__b) {
2365   return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
2366 }
2367 
vec_lde(int __a,const float * __b)2368 static vector float __ATTRS_o_ai vec_lde(int __a, const float *__b) {
2369   return (vector float)__builtin_altivec_lvewx(__a, __b);
2370 }
2371 
2372 /* vec_lvebx */
2373 
vec_lvebx(int __a,const signed char * __b)2374 static vector signed char __ATTRS_o_ai vec_lvebx(int __a,
2375                                                  const signed char *__b) {
2376   return (vector signed char)__builtin_altivec_lvebx(__a, __b);
2377 }
2378 
vec_lvebx(int __a,const unsigned char * __b)2379 static vector unsigned char __ATTRS_o_ai vec_lvebx(int __a,
2380                                                    const unsigned char *__b) {
2381   return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
2382 }
2383 
2384 /* vec_lvehx */
2385 
vec_lvehx(int __a,const short * __b)2386 static vector short __ATTRS_o_ai vec_lvehx(int __a, const short *__b) {
2387   return (vector short)__builtin_altivec_lvehx(__a, __b);
2388 }
2389 
vec_lvehx(int __a,const unsigned short * __b)2390 static vector unsigned short __ATTRS_o_ai vec_lvehx(int __a,
2391                                                     const unsigned short *__b) {
2392   return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
2393 }
2394 
2395 /* vec_lvewx */
2396 
vec_lvewx(int __a,const int * __b)2397 static vector int __ATTRS_o_ai vec_lvewx(int __a, const int *__b) {
2398   return (vector int)__builtin_altivec_lvewx(__a, __b);
2399 }
2400 
vec_lvewx(int __a,const unsigned int * __b)2401 static vector unsigned int __ATTRS_o_ai vec_lvewx(int __a,
2402                                                   const unsigned int *__b) {
2403   return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
2404 }
2405 
vec_lvewx(int __a,const float * __b)2406 static vector float __ATTRS_o_ai vec_lvewx(int __a, const float *__b) {
2407   return (vector float)__builtin_altivec_lvewx(__a, __b);
2408 }
2409 
2410 /* vec_ldl */
2411 
vec_ldl(int __a,const vector signed char * __b)2412 static vector signed char __ATTRS_o_ai vec_ldl(int __a,
2413                                                const vector signed char *__b) {
2414   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2415 }
2416 
vec_ldl(int __a,const signed char * __b)2417 static vector signed char __ATTRS_o_ai vec_ldl(int __a,
2418                                                const signed char *__b) {
2419   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2420 }
2421 
2422 static vector unsigned char __ATTRS_o_ai
vec_ldl(int __a,const vector unsigned char * __b)2423 vec_ldl(int __a, const vector unsigned char *__b) {
2424   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2425 }
2426 
vec_ldl(int __a,const unsigned char * __b)2427 static vector unsigned char __ATTRS_o_ai vec_ldl(int __a,
2428                                                  const unsigned char *__b) {
2429   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2430 }
2431 
vec_ldl(int __a,const vector bool char * __b)2432 static vector bool char __ATTRS_o_ai vec_ldl(int __a,
2433                                              const vector bool char *__b) {
2434   return (vector bool char)__builtin_altivec_lvxl(__a, __b);
2435 }
2436 
vec_ldl(int __a,const vector short * __b)2437 static vector short __ATTRS_o_ai vec_ldl(int __a, const vector short *__b) {
2438   return (vector short)__builtin_altivec_lvxl(__a, __b);
2439 }
2440 
vec_ldl(int __a,const short * __b)2441 static vector short __ATTRS_o_ai vec_ldl(int __a, const short *__b) {
2442   return (vector short)__builtin_altivec_lvxl(__a, __b);
2443 }
2444 
2445 static vector unsigned short __ATTRS_o_ai
vec_ldl(int __a,const vector unsigned short * __b)2446 vec_ldl(int __a, const vector unsigned short *__b) {
2447   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2448 }
2449 
vec_ldl(int __a,const unsigned short * __b)2450 static vector unsigned short __ATTRS_o_ai vec_ldl(int __a,
2451                                                   const unsigned short *__b) {
2452   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2453 }
2454 
vec_ldl(int __a,const vector bool short * __b)2455 static vector bool short __ATTRS_o_ai vec_ldl(int __a,
2456                                               const vector bool short *__b) {
2457   return (vector bool short)__builtin_altivec_lvxl(__a, __b);
2458 }
2459 
vec_ldl(int __a,const vector pixel * __b)2460 static vector pixel __ATTRS_o_ai vec_ldl(int __a, const vector pixel *__b) {
2461   return (vector pixel short)__builtin_altivec_lvxl(__a, __b);
2462 }
2463 
vec_ldl(int __a,const vector int * __b)2464 static vector int __ATTRS_o_ai vec_ldl(int __a, const vector int *__b) {
2465   return (vector int)__builtin_altivec_lvxl(__a, __b);
2466 }
2467 
vec_ldl(int __a,const int * __b)2468 static vector int __ATTRS_o_ai vec_ldl(int __a, const int *__b) {
2469   return (vector int)__builtin_altivec_lvxl(__a, __b);
2470 }
2471 
2472 static vector unsigned int __ATTRS_o_ai
vec_ldl(int __a,const vector unsigned int * __b)2473 vec_ldl(int __a, const vector unsigned int *__b) {
2474   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2475 }
2476 
vec_ldl(int __a,const unsigned int * __b)2477 static vector unsigned int __ATTRS_o_ai vec_ldl(int __a,
2478                                                 const unsigned int *__b) {
2479   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2480 }
2481 
vec_ldl(int __a,const vector bool int * __b)2482 static vector bool int __ATTRS_o_ai vec_ldl(int __a,
2483                                             const vector bool int *__b) {
2484   return (vector bool int)__builtin_altivec_lvxl(__a, __b);
2485 }
2486 
vec_ldl(int __a,const vector float * __b)2487 static vector float __ATTRS_o_ai vec_ldl(int __a, const vector float *__b) {
2488   return (vector float)__builtin_altivec_lvxl(__a, __b);
2489 }
2490 
vec_ldl(int __a,const float * __b)2491 static vector float __ATTRS_o_ai vec_ldl(int __a, const float *__b) {
2492   return (vector float)__builtin_altivec_lvxl(__a, __b);
2493 }
2494 
2495 /* vec_lvxl */
2496 
vec_lvxl(int __a,const vector signed char * __b)2497 static vector signed char __ATTRS_o_ai vec_lvxl(int __a,
2498                                                 const vector signed char *__b) {
2499   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2500 }
2501 
vec_lvxl(int __a,const signed char * __b)2502 static vector signed char __ATTRS_o_ai vec_lvxl(int __a,
2503                                                 const signed char *__b) {
2504   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
2505 }
2506 
2507 static vector unsigned char __ATTRS_o_ai
vec_lvxl(int __a,const vector unsigned char * __b)2508 vec_lvxl(int __a, const vector unsigned char *__b) {
2509   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2510 }
2511 
vec_lvxl(int __a,const unsigned char * __b)2512 static vector unsigned char __ATTRS_o_ai vec_lvxl(int __a,
2513                                                   const unsigned char *__b) {
2514   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
2515 }
2516 
vec_lvxl(int __a,const vector bool char * __b)2517 static vector bool char __ATTRS_o_ai vec_lvxl(int __a,
2518                                               const vector bool char *__b) {
2519   return (vector bool char)__builtin_altivec_lvxl(__a, __b);
2520 }
2521 
vec_lvxl(int __a,const vector short * __b)2522 static vector short __ATTRS_o_ai vec_lvxl(int __a, const vector short *__b) {
2523   return (vector short)__builtin_altivec_lvxl(__a, __b);
2524 }
2525 
vec_lvxl(int __a,const short * __b)2526 static vector short __ATTRS_o_ai vec_lvxl(int __a, const short *__b) {
2527   return (vector short)__builtin_altivec_lvxl(__a, __b);
2528 }
2529 
2530 static vector unsigned short __ATTRS_o_ai
vec_lvxl(int __a,const vector unsigned short * __b)2531 vec_lvxl(int __a, const vector unsigned short *__b) {
2532   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2533 }
2534 
vec_lvxl(int __a,const unsigned short * __b)2535 static vector unsigned short __ATTRS_o_ai vec_lvxl(int __a,
2536                                                    const unsigned short *__b) {
2537   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
2538 }
2539 
vec_lvxl(int __a,const vector bool short * __b)2540 static vector bool short __ATTRS_o_ai vec_lvxl(int __a,
2541                                                const vector bool short *__b) {
2542   return (vector bool short)__builtin_altivec_lvxl(__a, __b);
2543 }
2544 
vec_lvxl(int __a,const vector pixel * __b)2545 static vector pixel __ATTRS_o_ai vec_lvxl(int __a, const vector pixel *__b) {
2546   return (vector pixel)__builtin_altivec_lvxl(__a, __b);
2547 }
2548 
vec_lvxl(int __a,const vector int * __b)2549 static vector int __ATTRS_o_ai vec_lvxl(int __a, const vector int *__b) {
2550   return (vector int)__builtin_altivec_lvxl(__a, __b);
2551 }
2552 
vec_lvxl(int __a,const int * __b)2553 static vector int __ATTRS_o_ai vec_lvxl(int __a, const int *__b) {
2554   return (vector int)__builtin_altivec_lvxl(__a, __b);
2555 }
2556 
2557 static vector unsigned int __ATTRS_o_ai
vec_lvxl(int __a,const vector unsigned int * __b)2558 vec_lvxl(int __a, const vector unsigned int *__b) {
2559   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2560 }
2561 
vec_lvxl(int __a,const unsigned int * __b)2562 static vector unsigned int __ATTRS_o_ai vec_lvxl(int __a,
2563                                                  const unsigned int *__b) {
2564   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
2565 }
2566 
vec_lvxl(int __a,const vector bool int * __b)2567 static vector bool int __ATTRS_o_ai vec_lvxl(int __a,
2568                                              const vector bool int *__b) {
2569   return (vector bool int)__builtin_altivec_lvxl(__a, __b);
2570 }
2571 
vec_lvxl(int __a,const vector float * __b)2572 static vector float __ATTRS_o_ai vec_lvxl(int __a, const vector float *__b) {
2573   return (vector float)__builtin_altivec_lvxl(__a, __b);
2574 }
2575 
vec_lvxl(int __a,const float * __b)2576 static vector float __ATTRS_o_ai vec_lvxl(int __a, const float *__b) {
2577   return (vector float)__builtin_altivec_lvxl(__a, __b);
2578 }
2579 
2580 /* vec_loge */
2581 
2582 static vector float __attribute__((__always_inline__))
vec_loge(vector float __a)2583 vec_loge(vector float __a) {
2584   return __builtin_altivec_vlogefp(__a);
2585 }
2586 
2587 /* vec_vlogefp */
2588 
2589 static vector float __attribute__((__always_inline__))
vec_vlogefp(vector float __a)2590 vec_vlogefp(vector float __a) {
2591   return __builtin_altivec_vlogefp(__a);
2592 }
2593 
2594 /* vec_lvsl */
2595 
2596 #ifdef __LITTLE_ENDIAN__
2597 static vector unsigned char __ATTRS_o_ai
2598     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const signed char * __b)2599 loads/stores"))) vec_lvsl(int __a, const signed char *__b) {
2600   vector unsigned char mask =
2601       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2602   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2603                                   7,  6,  5,  4,  3,  2,  1, 0};
2604   return vec_perm(mask, mask, reverse);
2605 }
2606 #else
vec_lvsl(int __a,const signed char * __b)2607 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
2608                                                   const signed char *__b) {
2609   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2610 }
2611 #endif
2612 
2613 #ifdef __LITTLE_ENDIAN__
2614 static vector unsigned char __ATTRS_o_ai
2615     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const unsigned char * __b)2616 loads/stores"))) vec_lvsl(int __a, const unsigned char *__b) {
2617   vector unsigned char mask =
2618       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2619   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2620                                   7,  6,  5,  4,  3,  2,  1, 0};
2621   return vec_perm(mask, mask, reverse);
2622 }
2623 #else
vec_lvsl(int __a,const unsigned char * __b)2624 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
2625                                                   const unsigned char *__b) {
2626   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2627 }
2628 #endif
2629 
2630 #ifdef __LITTLE_ENDIAN__
2631 static vector unsigned char __ATTRS_o_ai
2632     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const short * __b)2633 loads/stores"))) vec_lvsl(int __a, const short *__b) {
2634   vector unsigned char mask =
2635       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2636   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2637                                   7,  6,  5,  4,  3,  2,  1, 0};
2638   return vec_perm(mask, mask, reverse);
2639 }
2640 #else
vec_lvsl(int __a,const short * __b)2641 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, const short *__b) {
2642   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2643 }
2644 #endif
2645 
2646 #ifdef __LITTLE_ENDIAN__
2647 static vector unsigned char __ATTRS_o_ai
2648     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const unsigned short * __b)2649 loads/stores"))) vec_lvsl(int __a, const unsigned short *__b) {
2650   vector unsigned char mask =
2651       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2652   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2653                                   7,  6,  5,  4,  3,  2,  1, 0};
2654   return vec_perm(mask, mask, reverse);
2655 }
2656 #else
vec_lvsl(int __a,const unsigned short * __b)2657 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
2658                                                   const unsigned short *__b) {
2659   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2660 }
2661 #endif
2662 
2663 #ifdef __LITTLE_ENDIAN__
2664 static vector unsigned char __ATTRS_o_ai
2665     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const int * __b)2666 loads/stores"))) vec_lvsl(int __a, const int *__b) {
2667   vector unsigned char mask =
2668       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2669   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2670                                   7,  6,  5,  4,  3,  2,  1, 0};
2671   return vec_perm(mask, mask, reverse);
2672 }
2673 #else
vec_lvsl(int __a,const int * __b)2674 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, const int *__b) {
2675   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2676 }
2677 #endif
2678 
2679 #ifdef __LITTLE_ENDIAN__
2680 static vector unsigned char __ATTRS_o_ai
2681     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const unsigned int * __b)2682 loads/stores"))) vec_lvsl(int __a, const unsigned int *__b) {
2683   vector unsigned char mask =
2684       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2685   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2686                                   7,  6,  5,  4,  3,  2,  1, 0};
2687   return vec_perm(mask, mask, reverse);
2688 }
2689 #else
vec_lvsl(int __a,const unsigned int * __b)2690 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a,
2691                                                   const unsigned int *__b) {
2692   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2693 }
2694 #endif
2695 
2696 #ifdef __LITTLE_ENDIAN__
2697 static vector unsigned char __ATTRS_o_ai
2698     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsl(int __a,const float * __b)2699 loads/stores"))) vec_lvsl(int __a, const float *__b) {
2700   vector unsigned char mask =
2701       (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2702   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2703                                   7,  6,  5,  4,  3,  2,  1, 0};
2704   return vec_perm(mask, mask, reverse);
2705 }
2706 #else
vec_lvsl(int __a,const float * __b)2707 static vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, const float *__b) {
2708   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
2709 }
2710 #endif
2711 
2712 /* vec_lvsr */
2713 
2714 #ifdef __LITTLE_ENDIAN__
2715 static vector unsigned char __ATTRS_o_ai
2716     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const signed char * __b)2717 loads/stores"))) vec_lvsr(int __a, const signed char *__b) {
2718   vector unsigned char mask =
2719       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2720   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2721                                   7,  6,  5,  4,  3,  2,  1, 0};
2722   return vec_perm(mask, mask, reverse);
2723 }
2724 #else
vec_lvsr(int __a,const signed char * __b)2725 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
2726                                                   const signed char *__b) {
2727   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2728 }
2729 #endif
2730 
2731 #ifdef __LITTLE_ENDIAN__
2732 static vector unsigned char __ATTRS_o_ai
2733     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const unsigned char * __b)2734 loads/stores"))) vec_lvsr(int __a, const unsigned char *__b) {
2735   vector unsigned char mask =
2736       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2737   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2738                                   7,  6,  5,  4,  3,  2,  1, 0};
2739   return vec_perm(mask, mask, reverse);
2740 }
2741 #else
vec_lvsr(int __a,const unsigned char * __b)2742 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
2743                                                   const unsigned char *__b) {
2744   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2745 }
2746 #endif
2747 
2748 #ifdef __LITTLE_ENDIAN__
2749 static vector unsigned char __ATTRS_o_ai
2750     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const short * __b)2751 loads/stores"))) vec_lvsr(int __a, const short *__b) {
2752   vector unsigned char mask =
2753       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2754   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2755                                   7,  6,  5,  4,  3,  2,  1, 0};
2756   return vec_perm(mask, mask, reverse);
2757 }
2758 #else
vec_lvsr(int __a,const short * __b)2759 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, const short *__b) {
2760   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2761 }
2762 #endif
2763 
2764 #ifdef __LITTLE_ENDIAN__
2765 static vector unsigned char __ATTRS_o_ai
2766     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const unsigned short * __b)2767 loads/stores"))) vec_lvsr(int __a, const unsigned short *__b) {
2768   vector unsigned char mask =
2769       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2770   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2771                                   7,  6,  5,  4,  3,  2,  1, 0};
2772   return vec_perm(mask, mask, reverse);
2773 }
2774 #else
vec_lvsr(int __a,const unsigned short * __b)2775 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
2776                                                   const unsigned short *__b) {
2777   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2778 }
2779 #endif
2780 
2781 #ifdef __LITTLE_ENDIAN__
2782 static vector unsigned char __ATTRS_o_ai
2783     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const int * __b)2784 loads/stores"))) vec_lvsr(int __a, const int *__b) {
2785   vector unsigned char mask =
2786       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2787   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2788                                   7,  6,  5,  4,  3,  2,  1, 0};
2789   return vec_perm(mask, mask, reverse);
2790 }
2791 #else
vec_lvsr(int __a,const int * __b)2792 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, const int *__b) {
2793   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2794 }
2795 #endif
2796 
2797 #ifdef __LITTLE_ENDIAN__
2798 static vector unsigned char __ATTRS_o_ai
2799     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const unsigned int * __b)2800 loads/stores"))) vec_lvsr(int __a, const unsigned int *__b) {
2801   vector unsigned char mask =
2802       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2803   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2804                                   7,  6,  5,  4,  3,  2,  1, 0};
2805   return vec_perm(mask, mask, reverse);
2806 }
2807 #else
vec_lvsr(int __a,const unsigned int * __b)2808 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a,
2809                                                   const unsigned int *__b) {
2810   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2811 }
2812 #endif
2813 
2814 #ifdef __LITTLE_ENDIAN__
2815 static vector unsigned char __ATTRS_o_ai
2816     __attribute__((__deprecated__("use assignment for unaligned little endian \
vec_lvsr(int __a,const float * __b)2817 loads/stores"))) vec_lvsr(int __a, const float *__b) {
2818   vector unsigned char mask =
2819       (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2820   vector unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
2821                                   7,  6,  5,  4,  3,  2,  1, 0};
2822   return vec_perm(mask, mask, reverse);
2823 }
2824 #else
vec_lvsr(int __a,const float * __b)2825 static vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, const float *__b) {
2826   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
2827 }
2828 #endif
2829 
2830 /* vec_madd */
2831 static vector signed short __ATTRS_o_ai
2832 vec_mladd(vector signed short, vector signed short, vector signed short);
2833 static vector signed short __ATTRS_o_ai
2834 vec_mladd(vector signed short, vector unsigned short, vector unsigned short);
2835 static vector signed short __ATTRS_o_ai
2836 vec_mladd(vector unsigned short, vector signed short, vector signed short);
2837 static vector unsigned short __ATTRS_o_ai
2838 vec_mladd(vector unsigned short, vector unsigned short, vector unsigned short);
2839 
2840 static vector signed short __ATTRS_o_ai
vec_madd(vector signed short __a,vector signed short __b,vector signed short __c)2841 vec_madd(vector signed short __a, vector signed short __b,
2842          vector signed short __c) {
2843   return  vec_mladd(__a, __b, __c);
2844 }
2845 
2846 static vector signed short __ATTRS_o_ai
vec_madd(vector signed short __a,vector unsigned short __b,vector unsigned short __c)2847 vec_madd(vector signed short __a, vector unsigned short __b,
2848          vector unsigned short __c) {
2849   return vec_mladd(__a, __b, __c);
2850 }
2851 
2852 static vector signed short __ATTRS_o_ai
vec_madd(vector unsigned short __a,vector signed short __b,vector signed short __c)2853 vec_madd(vector unsigned short __a, vector signed short __b,
2854          vector signed short __c) {
2855   return vec_mladd(__a, __b, __c);
2856 }
2857 
2858 static vector unsigned short __ATTRS_o_ai
vec_madd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)2859 vec_madd(vector unsigned short __a, vector unsigned short __b,
2860          vector unsigned short __c) {
2861   return vec_mladd(__a, __b, __c);
2862 }
2863 
2864 static vector float __ATTRS_o_ai
vec_madd(vector float __a,vector float __b,vector float __c)2865 vec_madd(vector float __a, vector float __b, vector float __c) {
2866 #ifdef __VSX__
2867   return __builtin_vsx_xvmaddasp(__a, __b, __c);
2868 #else
2869   return __builtin_altivec_vmaddfp(__a, __b, __c);
2870 #endif
2871 }
2872 
2873 #ifdef __VSX__
2874 static vector double __ATTRS_o_ai
vec_madd(vector double __a,vector double __b,vector double __c)2875 vec_madd(vector double __a, vector double __b, vector double __c) {
2876   return __builtin_vsx_xvmaddadp(__a, __b, __c);
2877 }
2878 #endif
2879 
2880 /* vec_vmaddfp */
2881 
2882 static vector float __attribute__((__always_inline__))
vec_vmaddfp(vector float __a,vector float __b,vector float __c)2883 vec_vmaddfp(vector float __a, vector float __b, vector float __c) {
2884   return __builtin_altivec_vmaddfp(__a, __b, __c);
2885 }
2886 
2887 /* vec_madds */
2888 
2889 static vector signed short __attribute__((__always_inline__))
vec_madds(vector signed short __a,vector signed short __b,vector signed short __c)2890 vec_madds(vector signed short __a, vector signed short __b,
2891           vector signed short __c) {
2892   return __builtin_altivec_vmhaddshs(__a, __b, __c);
2893 }
2894 
2895 /* vec_vmhaddshs */
2896 static vector signed short __attribute__((__always_inline__))
vec_vmhaddshs(vector signed short __a,vector signed short __b,vector signed short __c)2897 vec_vmhaddshs(vector signed short __a, vector signed short __b,
2898               vector signed short __c) {
2899   return __builtin_altivec_vmhaddshs(__a, __b, __c);
2900 }
2901 
2902 /* vec_msub */
2903 
2904 #ifdef __VSX__
2905 static vector float __ATTRS_o_ai
vec_msub(vector float __a,vector float __b,vector float __c)2906 vec_msub(vector float __a, vector float __b, vector float __c) {
2907   return __builtin_vsx_xvmsubasp(__a, __b, __c);
2908 }
2909 
2910 static vector double __ATTRS_o_ai
vec_msub(vector double __a,vector double __b,vector double __c)2911 vec_msub(vector double __a, vector double __b, vector double __c) {
2912   return __builtin_vsx_xvmsubadp(__a, __b, __c);
2913 }
2914 #endif
2915 
2916 /* vec_max */
2917 
vec_max(vector signed char __a,vector signed char __b)2918 static vector signed char __ATTRS_o_ai vec_max(vector signed char __a,
2919                                                vector signed char __b) {
2920   return __builtin_altivec_vmaxsb(__a, __b);
2921 }
2922 
vec_max(vector bool char __a,vector signed char __b)2923 static vector signed char __ATTRS_o_ai vec_max(vector bool char __a,
2924                                                vector signed char __b) {
2925   return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
2926 }
2927 
vec_max(vector signed char __a,vector bool char __b)2928 static vector signed char __ATTRS_o_ai vec_max(vector signed char __a,
2929                                                vector bool char __b) {
2930   return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
2931 }
2932 
vec_max(vector unsigned char __a,vector unsigned char __b)2933 static vector unsigned char __ATTRS_o_ai vec_max(vector unsigned char __a,
2934                                                  vector unsigned char __b) {
2935   return __builtin_altivec_vmaxub(__a, __b);
2936 }
2937 
vec_max(vector bool char __a,vector unsigned char __b)2938 static vector unsigned char __ATTRS_o_ai vec_max(vector bool char __a,
2939                                                  vector unsigned char __b) {
2940   return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
2941 }
2942 
vec_max(vector unsigned char __a,vector bool char __b)2943 static vector unsigned char __ATTRS_o_ai vec_max(vector unsigned char __a,
2944                                                  vector bool char __b) {
2945   return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
2946 }
2947 
vec_max(vector short __a,vector short __b)2948 static vector short __ATTRS_o_ai vec_max(vector short __a, vector short __b) {
2949   return __builtin_altivec_vmaxsh(__a, __b);
2950 }
2951 
vec_max(vector bool short __a,vector short __b)2952 static vector short __ATTRS_o_ai vec_max(vector bool short __a,
2953                                          vector short __b) {
2954   return __builtin_altivec_vmaxsh((vector short)__a, __b);
2955 }
2956 
vec_max(vector short __a,vector bool short __b)2957 static vector short __ATTRS_o_ai vec_max(vector short __a,
2958                                          vector bool short __b) {
2959   return __builtin_altivec_vmaxsh(__a, (vector short)__b);
2960 }
2961 
vec_max(vector unsigned short __a,vector unsigned short __b)2962 static vector unsigned short __ATTRS_o_ai vec_max(vector unsigned short __a,
2963                                                   vector unsigned short __b) {
2964   return __builtin_altivec_vmaxuh(__a, __b);
2965 }
2966 
vec_max(vector bool short __a,vector unsigned short __b)2967 static vector unsigned short __ATTRS_o_ai vec_max(vector bool short __a,
2968                                                   vector unsigned short __b) {
2969   return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
2970 }
2971 
vec_max(vector unsigned short __a,vector bool short __b)2972 static vector unsigned short __ATTRS_o_ai vec_max(vector unsigned short __a,
2973                                                   vector bool short __b) {
2974   return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
2975 }
2976 
vec_max(vector int __a,vector int __b)2977 static vector int __ATTRS_o_ai vec_max(vector int __a, vector int __b) {
2978   return __builtin_altivec_vmaxsw(__a, __b);
2979 }
2980 
vec_max(vector bool int __a,vector int __b)2981 static vector int __ATTRS_o_ai vec_max(vector bool int __a, vector int __b) {
2982   return __builtin_altivec_vmaxsw((vector int)__a, __b);
2983 }
2984 
vec_max(vector int __a,vector bool int __b)2985 static vector int __ATTRS_o_ai vec_max(vector int __a, vector bool int __b) {
2986   return __builtin_altivec_vmaxsw(__a, (vector int)__b);
2987 }
2988 
vec_max(vector unsigned int __a,vector unsigned int __b)2989 static vector unsigned int __ATTRS_o_ai vec_max(vector unsigned int __a,
2990                                                 vector unsigned int __b) {
2991   return __builtin_altivec_vmaxuw(__a, __b);
2992 }
2993 
vec_max(vector bool int __a,vector unsigned int __b)2994 static vector unsigned int __ATTRS_o_ai vec_max(vector bool int __a,
2995                                                 vector unsigned int __b) {
2996   return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
2997 }
2998 
vec_max(vector unsigned int __a,vector bool int __b)2999 static vector unsigned int __ATTRS_o_ai vec_max(vector unsigned int __a,
3000                                                 vector bool int __b) {
3001   return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
3002 }
3003 
3004 #ifdef __POWER8_VECTOR__
3005 static vector signed long long __ATTRS_o_ai
vec_max(vector signed long long __a,vector signed long long __b)3006 vec_max(vector signed long long __a, vector signed long long __b) {
3007   return __builtin_altivec_vmaxsd(__a, __b);
3008 }
3009 
3010 static vector signed long long __ATTRS_o_ai
vec_max(vector bool long long __a,vector signed long long __b)3011 vec_max(vector bool long long __a, vector signed long long __b) {
3012   return __builtin_altivec_vmaxsd((vector signed long long)__a, __b);
3013 }
3014 
vec_max(vector signed long long __a,vector bool long long __b)3015 static vector signed long long __ATTRS_o_ai vec_max(vector signed long long __a,
3016                                                     vector bool long long __b) {
3017   return __builtin_altivec_vmaxsd(__a, (vector signed long long)__b);
3018 }
3019 
3020 static vector unsigned long long __ATTRS_o_ai
vec_max(vector unsigned long long __a,vector unsigned long long __b)3021 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
3022   return __builtin_altivec_vmaxud(__a, __b);
3023 }
3024 
3025 static vector unsigned long long __ATTRS_o_ai
vec_max(vector bool long long __a,vector unsigned long long __b)3026 vec_max(vector bool long long __a, vector unsigned long long __b) {
3027   return __builtin_altivec_vmaxud((vector unsigned long long)__a, __b);
3028 }
3029 
3030 static vector unsigned long long __ATTRS_o_ai
vec_max(vector unsigned long long __a,vector bool long long __b)3031 vec_max(vector unsigned long long __a, vector bool long long __b) {
3032   return __builtin_altivec_vmaxud(__a, (vector unsigned long long)__b);
3033 }
3034 #endif
3035 
vec_max(vector float __a,vector float __b)3036 static vector float __ATTRS_o_ai vec_max(vector float __a, vector float __b) {
3037 #ifdef __VSX__
3038   return __builtin_vsx_xvmaxsp(__a, __b);
3039 #else
3040   return __builtin_altivec_vmaxfp(__a, __b);
3041 #endif
3042 }
3043 
3044 #ifdef __VSX__
vec_max(vector double __a,vector double __b)3045 static vector double __ATTRS_o_ai vec_max(vector double __a,
3046                                           vector double __b) {
3047   return __builtin_vsx_xvmaxdp(__a, __b);
3048 }
3049 #endif
3050 
3051 /* vec_vmaxsb */
3052 
vec_vmaxsb(vector signed char __a,vector signed char __b)3053 static vector signed char __ATTRS_o_ai vec_vmaxsb(vector signed char __a,
3054                                                   vector signed char __b) {
3055   return __builtin_altivec_vmaxsb(__a, __b);
3056 }
3057 
vec_vmaxsb(vector bool char __a,vector signed char __b)3058 static vector signed char __ATTRS_o_ai vec_vmaxsb(vector bool char __a,
3059                                                   vector signed char __b) {
3060   return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
3061 }
3062 
vec_vmaxsb(vector signed char __a,vector bool char __b)3063 static vector signed char __ATTRS_o_ai vec_vmaxsb(vector signed char __a,
3064                                                   vector bool char __b) {
3065   return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
3066 }
3067 
3068 /* vec_vmaxub */
3069 
vec_vmaxub(vector unsigned char __a,vector unsigned char __b)3070 static vector unsigned char __ATTRS_o_ai vec_vmaxub(vector unsigned char __a,
3071                                                     vector unsigned char __b) {
3072   return __builtin_altivec_vmaxub(__a, __b);
3073 }
3074 
vec_vmaxub(vector bool char __a,vector unsigned char __b)3075 static vector unsigned char __ATTRS_o_ai vec_vmaxub(vector bool char __a,
3076                                                     vector unsigned char __b) {
3077   return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
3078 }
3079 
vec_vmaxub(vector unsigned char __a,vector bool char __b)3080 static vector unsigned char __ATTRS_o_ai vec_vmaxub(vector unsigned char __a,
3081                                                     vector bool char __b) {
3082   return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
3083 }
3084 
3085 /* vec_vmaxsh */
3086 
vec_vmaxsh(vector short __a,vector short __b)3087 static vector short __ATTRS_o_ai vec_vmaxsh(vector short __a,
3088                                             vector short __b) {
3089   return __builtin_altivec_vmaxsh(__a, __b);
3090 }
3091 
vec_vmaxsh(vector bool short __a,vector short __b)3092 static vector short __ATTRS_o_ai vec_vmaxsh(vector bool short __a,
3093                                             vector short __b) {
3094   return __builtin_altivec_vmaxsh((vector short)__a, __b);
3095 }
3096 
vec_vmaxsh(vector short __a,vector bool short __b)3097 static vector short __ATTRS_o_ai vec_vmaxsh(vector short __a,
3098                                             vector bool short __b) {
3099   return __builtin_altivec_vmaxsh(__a, (vector short)__b);
3100 }
3101 
3102 /* vec_vmaxuh */
3103 
3104 static vector unsigned short __ATTRS_o_ai
vec_vmaxuh(vector unsigned short __a,vector unsigned short __b)3105 vec_vmaxuh(vector unsigned short __a, vector unsigned short __b) {
3106   return __builtin_altivec_vmaxuh(__a, __b);
3107 }
3108 
3109 static vector unsigned short __ATTRS_o_ai
vec_vmaxuh(vector bool short __a,vector unsigned short __b)3110 vec_vmaxuh(vector bool short __a, vector unsigned short __b) {
3111   return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
3112 }
3113 
vec_vmaxuh(vector unsigned short __a,vector bool short __b)3114 static vector unsigned short __ATTRS_o_ai vec_vmaxuh(vector unsigned short __a,
3115                                                      vector bool short __b) {
3116   return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
3117 }
3118 
3119 /* vec_vmaxsw */
3120 
vec_vmaxsw(vector int __a,vector int __b)3121 static vector int __ATTRS_o_ai vec_vmaxsw(vector int __a, vector int __b) {
3122   return __builtin_altivec_vmaxsw(__a, __b);
3123 }
3124 
vec_vmaxsw(vector bool int __a,vector int __b)3125 static vector int __ATTRS_o_ai vec_vmaxsw(vector bool int __a, vector int __b) {
3126   return __builtin_altivec_vmaxsw((vector int)__a, __b);
3127 }
3128 
vec_vmaxsw(vector int __a,vector bool int __b)3129 static vector int __ATTRS_o_ai vec_vmaxsw(vector int __a, vector bool int __b) {
3130   return __builtin_altivec_vmaxsw(__a, (vector int)__b);
3131 }
3132 
3133 /* vec_vmaxuw */
3134 
vec_vmaxuw(vector unsigned int __a,vector unsigned int __b)3135 static vector unsigned int __ATTRS_o_ai vec_vmaxuw(vector unsigned int __a,
3136                                                    vector unsigned int __b) {
3137   return __builtin_altivec_vmaxuw(__a, __b);
3138 }
3139 
vec_vmaxuw(vector bool int __a,vector unsigned int __b)3140 static vector unsigned int __ATTRS_o_ai vec_vmaxuw(vector bool int __a,
3141                                                    vector unsigned int __b) {
3142   return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
3143 }
3144 
vec_vmaxuw(vector unsigned int __a,vector bool int __b)3145 static vector unsigned int __ATTRS_o_ai vec_vmaxuw(vector unsigned int __a,
3146                                                    vector bool int __b) {
3147   return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
3148 }
3149 
3150 /* vec_vmaxfp */
3151 
3152 static vector float __attribute__((__always_inline__))
vec_vmaxfp(vector float __a,vector float __b)3153 vec_vmaxfp(vector float __a, vector float __b) {
3154 #ifdef __VSX__
3155   return __builtin_vsx_xvmaxsp(__a, __b);
3156 #else
3157   return __builtin_altivec_vmaxfp(__a, __b);
3158 #endif
3159 }
3160 
3161 /* vec_mergeh */
3162 
vec_mergeh(vector signed char __a,vector signed char __b)3163 static vector signed char __ATTRS_o_ai vec_mergeh(vector signed char __a,
3164                                                   vector signed char __b) {
3165   return vec_perm(__a, __b,
3166                   (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
3167                                          0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
3168                                          0x06, 0x16, 0x07, 0x17));
3169 }
3170 
vec_mergeh(vector unsigned char __a,vector unsigned char __b)3171 static vector unsigned char __ATTRS_o_ai vec_mergeh(vector unsigned char __a,
3172                                                     vector unsigned char __b) {
3173   return vec_perm(__a, __b,
3174                   (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
3175                                          0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
3176                                          0x06, 0x16, 0x07, 0x17));
3177 }
3178 
vec_mergeh(vector bool char __a,vector bool char __b)3179 static vector bool char __ATTRS_o_ai vec_mergeh(vector bool char __a,
3180                                                 vector bool char __b) {
3181   return vec_perm(__a, __b,
3182                   (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
3183                                          0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
3184                                          0x06, 0x16, 0x07, 0x17));
3185 }
3186 
vec_mergeh(vector short __a,vector short __b)3187 static vector short __ATTRS_o_ai vec_mergeh(vector short __a,
3188                                             vector short __b) {
3189   return vec_perm(__a, __b,
3190                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3191                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3192                                          0x06, 0x07, 0x16, 0x17));
3193 }
3194 
3195 static vector unsigned short __ATTRS_o_ai
vec_mergeh(vector unsigned short __a,vector unsigned short __b)3196 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
3197   return vec_perm(__a, __b,
3198                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3199                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3200                                          0x06, 0x07, 0x16, 0x17));
3201 }
3202 
vec_mergeh(vector bool short __a,vector bool short __b)3203 static vector bool short __ATTRS_o_ai vec_mergeh(vector bool short __a,
3204                                                  vector bool short __b) {
3205   return vec_perm(__a, __b,
3206                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3207                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3208                                          0x06, 0x07, 0x16, 0x17));
3209 }
3210 
vec_mergeh(vector pixel __a,vector pixel __b)3211 static vector pixel __ATTRS_o_ai vec_mergeh(vector pixel __a,
3212                                             vector pixel __b) {
3213   return vec_perm(__a, __b,
3214                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3215                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3216                                          0x06, 0x07, 0x16, 0x17));
3217 }
3218 
vec_mergeh(vector int __a,vector int __b)3219 static vector int __ATTRS_o_ai vec_mergeh(vector int __a, vector int __b) {
3220   return vec_perm(__a, __b,
3221                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3222                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3223                                          0x14, 0x15, 0x16, 0x17));
3224 }
3225 
vec_mergeh(vector unsigned int __a,vector unsigned int __b)3226 static vector unsigned int __ATTRS_o_ai vec_mergeh(vector unsigned int __a,
3227                                                    vector unsigned int __b) {
3228   return vec_perm(__a, __b,
3229                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3230                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3231                                          0x14, 0x15, 0x16, 0x17));
3232 }
3233 
vec_mergeh(vector bool int __a,vector bool int __b)3234 static vector bool int __ATTRS_o_ai vec_mergeh(vector bool int __a,
3235                                                vector bool int __b) {
3236   return vec_perm(__a, __b,
3237                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3238                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3239                                          0x14, 0x15, 0x16, 0x17));
3240 }
3241 
vec_mergeh(vector float __a,vector float __b)3242 static vector float __ATTRS_o_ai vec_mergeh(vector float __a,
3243                                             vector float __b) {
3244   return vec_perm(__a, __b,
3245                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3246                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3247                                          0x14, 0x15, 0x16, 0x17));
3248 }
3249 
3250 #ifdef __VSX__
3251 static vector signed long long __ATTRS_o_ai
vec_mergeh(vector signed long long __a,vector signed long long __b)3252 vec_mergeh(vector signed long long __a, vector signed long long __b) {
3253   return vec_perm(__a, __b,
3254                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3255                                          0x04, 0x05, 0x06, 0x07,
3256                                          0x10, 0x11, 0x12, 0x13,
3257                                          0x14, 0x15, 0x16, 0x17));
3258 }
3259 
3260 static vector signed long long __ATTRS_o_ai
vec_mergeh(vector signed long long __a,vector bool long long __b)3261 vec_mergeh(vector signed long long __a, vector bool long long __b) {
3262   return vec_perm(__a, (vector signed long long)__b,
3263                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3264                                          0x04, 0x05, 0x06, 0x07,
3265                                          0x10, 0x11, 0x12, 0x13,
3266                                          0x14, 0x15, 0x16, 0x17));
3267 }
3268 
3269 static vector signed long long __ATTRS_o_ai
vec_mergeh(vector bool long long __a,vector signed long long __b)3270 vec_mergeh(vector bool long long __a, vector signed long long __b) {
3271   return vec_perm((vector signed long long)__a, __b,
3272                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3273                                          0x04, 0x05, 0x06, 0x07,
3274                                          0x10, 0x11, 0x12, 0x13,
3275                                          0x14, 0x15, 0x16, 0x17));
3276 }
3277 
3278 static vector unsigned long long __ATTRS_o_ai
vec_mergeh(vector unsigned long long __a,vector unsigned long long __b)3279 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
3280   return vec_perm(__a, __b,
3281                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3282                                          0x04, 0x05, 0x06, 0x07,
3283                                          0x10, 0x11, 0x12, 0x13,
3284                                          0x14, 0x15, 0x16, 0x17));
3285 }
3286 
3287 static vector unsigned long long __ATTRS_o_ai
vec_mergeh(vector unsigned long long __a,vector bool long long __b)3288 vec_mergeh(vector unsigned long long __a, vector bool long long __b) {
3289   return vec_perm(__a, (vector unsigned long long)__b,
3290                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3291                                          0x04, 0x05, 0x06, 0x07,
3292                                          0x10, 0x11, 0x12, 0x13,
3293                                          0x14, 0x15, 0x16, 0x17));
3294 }
3295 
3296 static vector unsigned long long __ATTRS_o_ai
vec_mergeh(vector bool long long __a,vector unsigned long long __b)3297 vec_mergeh(vector bool long long __a, vector unsigned long long __b) {
3298   return vec_perm((vector unsigned long long)__a, __b,
3299                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3300                                          0x04, 0x05, 0x06, 0x07,
3301                                          0x10, 0x11, 0x12, 0x13,
3302                                          0x14, 0x15, 0x16, 0x17));
3303 }
3304 
3305 static vector bool long long __ATTRS_o_ai
vec_mergeh(vector bool long long __a,vector bool long long __b)3306 vec_mergeh(vector bool long long __a, vector bool long long __b) {
3307   return vec_perm(__a, __b,
3308                  (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3309                                         0x04, 0x05, 0x06, 0x07,
3310                                         0x10, 0x11, 0x12, 0x13,
3311                                         0x14, 0x15, 0x16, 0x17));
3312 }
3313 
vec_mergeh(vector double __a,vector double __b)3314 static vector double __ATTRS_o_ai vec_mergeh(vector double __a,
3315                                              vector double __b) {
3316   return vec_perm(__a, __b,
3317                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3318                                          0x04, 0x05, 0x06, 0x07,
3319                                          0x10, 0x11, 0x12, 0x13,
3320                                          0x14, 0x15, 0x16, 0x17));
3321 }
vec_mergeh(vector double __a,vector bool long long __b)3322 static vector double __ATTRS_o_ai vec_mergeh(vector double __a,
3323                                              vector bool long long __b) {
3324   return vec_perm(__a, (vector double)__b,
3325                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3326                                          0x04, 0x05, 0x06, 0x07,
3327                                          0x10, 0x11, 0x12, 0x13,
3328                                          0x14, 0x15, 0x16, 0x17));
3329 }
vec_mergeh(vector bool long long __a,vector double __b)3330 static vector double __ATTRS_o_ai vec_mergeh(vector bool long long __a,
3331                                              vector double __b) {
3332   return vec_perm((vector double)__a, __b,
3333                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03,
3334                                          0x04, 0x05, 0x06, 0x07,
3335                                          0x10, 0x11, 0x12, 0x13,
3336                                          0x14, 0x15, 0x16, 0x17));
3337 }
3338 #endif
3339 
3340 /* vec_vmrghb */
3341 
3342 #define __builtin_altivec_vmrghb vec_vmrghb
3343 
vec_vmrghb(vector signed char __a,vector signed char __b)3344 static vector signed char __ATTRS_o_ai vec_vmrghb(vector signed char __a,
3345                                                   vector signed char __b) {
3346   return vec_perm(__a, __b,
3347                   (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
3348                                          0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
3349                                          0x06, 0x16, 0x07, 0x17));
3350 }
3351 
vec_vmrghb(vector unsigned char __a,vector unsigned char __b)3352 static vector unsigned char __ATTRS_o_ai vec_vmrghb(vector unsigned char __a,
3353                                                     vector unsigned char __b) {
3354   return vec_perm(__a, __b,
3355                   (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
3356                                          0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
3357                                          0x06, 0x16, 0x07, 0x17));
3358 }
3359 
vec_vmrghb(vector bool char __a,vector bool char __b)3360 static vector bool char __ATTRS_o_ai vec_vmrghb(vector bool char __a,
3361                                                 vector bool char __b) {
3362   return vec_perm(__a, __b,
3363                   (vector unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
3364                                          0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
3365                                          0x06, 0x16, 0x07, 0x17));
3366 }
3367 
3368 /* vec_vmrghh */
3369 
3370 #define __builtin_altivec_vmrghh vec_vmrghh
3371 
vec_vmrghh(vector short __a,vector short __b)3372 static vector short __ATTRS_o_ai vec_vmrghh(vector short __a,
3373                                             vector short __b) {
3374   return vec_perm(__a, __b,
3375                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3376                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3377                                          0x06, 0x07, 0x16, 0x17));
3378 }
3379 
3380 static vector unsigned short __ATTRS_o_ai
vec_vmrghh(vector unsigned short __a,vector unsigned short __b)3381 vec_vmrghh(vector unsigned short __a, vector unsigned short __b) {
3382   return vec_perm(__a, __b,
3383                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3384                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3385                                          0x06, 0x07, 0x16, 0x17));
3386 }
3387 
vec_vmrghh(vector bool short __a,vector bool short __b)3388 static vector bool short __ATTRS_o_ai vec_vmrghh(vector bool short __a,
3389                                                  vector bool short __b) {
3390   return vec_perm(__a, __b,
3391                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3392                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3393                                          0x06, 0x07, 0x16, 0x17));
3394 }
3395 
vec_vmrghh(vector pixel __a,vector pixel __b)3396 static vector pixel __ATTRS_o_ai vec_vmrghh(vector pixel __a,
3397                                             vector pixel __b) {
3398   return vec_perm(__a, __b,
3399                   (vector unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
3400                                          0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
3401                                          0x06, 0x07, 0x16, 0x17));
3402 }
3403 
3404 /* vec_vmrghw */
3405 
3406 #define __builtin_altivec_vmrghw vec_vmrghw
3407 
vec_vmrghw(vector int __a,vector int __b)3408 static vector int __ATTRS_o_ai vec_vmrghw(vector int __a, vector int __b) {
3409   return vec_perm(__a, __b,
3410                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3411                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3412                                          0x14, 0x15, 0x16, 0x17));
3413 }
3414 
vec_vmrghw(vector unsigned int __a,vector unsigned int __b)3415 static vector unsigned int __ATTRS_o_ai vec_vmrghw(vector unsigned int __a,
3416                                                    vector unsigned int __b) {
3417   return vec_perm(__a, __b,
3418                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3419                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3420                                          0x14, 0x15, 0x16, 0x17));
3421 }
3422 
vec_vmrghw(vector bool int __a,vector bool int __b)3423 static vector bool int __ATTRS_o_ai vec_vmrghw(vector bool int __a,
3424                                                vector bool int __b) {
3425   return vec_perm(__a, __b,
3426                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3427                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3428                                          0x14, 0x15, 0x16, 0x17));
3429 }
3430 
vec_vmrghw(vector float __a,vector float __b)3431 static vector float __ATTRS_o_ai vec_vmrghw(vector float __a,
3432                                             vector float __b) {
3433   return vec_perm(__a, __b,
3434                   (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
3435                                          0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
3436                                          0x14, 0x15, 0x16, 0x17));
3437 }
3438 
3439 /* vec_mergel */
3440 
vec_mergel(vector signed char __a,vector signed char __b)3441 static vector signed char __ATTRS_o_ai vec_mergel(vector signed char __a,
3442                                                   vector signed char __b) {
3443   return vec_perm(__a, __b,
3444                   (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
3445                                          0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
3446                                          0x0E, 0x1E, 0x0F, 0x1F));
3447 }
3448 
vec_mergel(vector unsigned char __a,vector unsigned char __b)3449 static vector unsigned char __ATTRS_o_ai vec_mergel(vector unsigned char __a,
3450                                                     vector unsigned char __b) {
3451   return vec_perm(__a, __b,
3452                   (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
3453                                          0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
3454                                          0x0E, 0x1E, 0x0F, 0x1F));
3455 }
3456 
vec_mergel(vector bool char __a,vector bool char __b)3457 static vector bool char __ATTRS_o_ai vec_mergel(vector bool char __a,
3458                                                 vector bool char __b) {
3459   return vec_perm(__a, __b,
3460                   (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
3461                                          0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
3462                                          0x0E, 0x1E, 0x0F, 0x1F));
3463 }
3464 
vec_mergel(vector short __a,vector short __b)3465 static vector short __ATTRS_o_ai vec_mergel(vector short __a,
3466                                             vector short __b) {
3467   return vec_perm(__a, __b,
3468                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3469                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3470                                          0x0E, 0x0F, 0x1E, 0x1F));
3471 }
3472 
3473 static vector unsigned short __ATTRS_o_ai
vec_mergel(vector unsigned short __a,vector unsigned short __b)3474 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
3475   return vec_perm(__a, __b,
3476                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3477                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3478                                          0x0E, 0x0F, 0x1E, 0x1F));
3479 }
3480 
vec_mergel(vector bool short __a,vector bool short __b)3481 static vector bool short __ATTRS_o_ai vec_mergel(vector bool short __a,
3482                                                  vector bool short __b) {
3483   return vec_perm(__a, __b,
3484                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3485                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3486                                          0x0E, 0x0F, 0x1E, 0x1F));
3487 }
3488 
vec_mergel(vector pixel __a,vector pixel __b)3489 static vector pixel __ATTRS_o_ai vec_mergel(vector pixel __a,
3490                                             vector pixel __b) {
3491   return vec_perm(__a, __b,
3492                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3493                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3494                                          0x0E, 0x0F, 0x1E, 0x1F));
3495 }
3496 
vec_mergel(vector int __a,vector int __b)3497 static vector int __ATTRS_o_ai vec_mergel(vector int __a, vector int __b) {
3498   return vec_perm(__a, __b,
3499                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3500                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3501                                          0x1C, 0x1D, 0x1E, 0x1F));
3502 }
3503 
vec_mergel(vector unsigned int __a,vector unsigned int __b)3504 static vector unsigned int __ATTRS_o_ai vec_mergel(vector unsigned int __a,
3505                                                    vector unsigned int __b) {
3506   return vec_perm(__a, __b,
3507                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3508                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3509                                          0x1C, 0x1D, 0x1E, 0x1F));
3510 }
3511 
vec_mergel(vector bool int __a,vector bool int __b)3512 static vector bool int __ATTRS_o_ai vec_mergel(vector bool int __a,
3513                                                vector bool int __b) {
3514   return vec_perm(__a, __b,
3515                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3516                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3517                                          0x1C, 0x1D, 0x1E, 0x1F));
3518 }
3519 
vec_mergel(vector float __a,vector float __b)3520 static vector float __ATTRS_o_ai vec_mergel(vector float __a,
3521                                             vector float __b) {
3522   return vec_perm(__a, __b,
3523                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3524                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3525                                          0x1C, 0x1D, 0x1E, 0x1F));
3526 }
3527 
3528 #ifdef __VSX__
3529 static vector signed long long __ATTRS_o_ai
vec_mergel(vector signed long long __a,vector signed long long __b)3530 vec_mergel(vector signed long long __a, vector signed long long __b) {
3531   return vec_perm(__a, __b,
3532                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3533                                          0x0C, 0x0D, 0x0E, 0x0F,
3534                                          0x18, 0X19, 0x1A, 0x1B,
3535                                          0x1C, 0x1D, 0x1E, 0x1F));
3536 }
3537 static vector signed long long __ATTRS_o_ai
vec_mergel(vector signed long long __a,vector bool long long __b)3538 vec_mergel(vector signed long long __a, vector bool long long __b) {
3539   return vec_perm(__a, (vector signed long long)__b,
3540                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3541                                          0x0C, 0x0D, 0x0E, 0x0F,
3542                                          0x18, 0X19, 0x1A, 0x1B,
3543                                          0x1C, 0x1D, 0x1E, 0x1F));
3544 }
3545 static vector signed long long __ATTRS_o_ai
vec_mergel(vector bool long long __a,vector signed long long __b)3546 vec_mergel(vector bool long long __a, vector signed long long __b) {
3547   return vec_perm((vector signed long long)__a, __b,
3548                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3549                                          0x0C, 0x0D, 0x0E, 0x0F,
3550                                          0x18, 0X19, 0x1A, 0x1B,
3551                                          0x1C, 0x1D, 0x1E, 0x1F));
3552 }
3553 static vector unsigned long long __ATTRS_o_ai
vec_mergel(vector unsigned long long __a,vector unsigned long long __b)3554 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
3555   return vec_perm(__a, __b,
3556                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3557                                          0x0C, 0x0D, 0x0E, 0x0F,
3558                                          0x18, 0X19, 0x1A, 0x1B,
3559                                          0x1C, 0x1D, 0x1E, 0x1F));
3560 }
3561 static vector unsigned long long __ATTRS_o_ai
vec_mergel(vector unsigned long long __a,vector bool long long __b)3562 vec_mergel(vector unsigned long long __a, vector bool long long __b) {
3563   return vec_perm(__a, (vector unsigned long long)__b,
3564                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3565                                          0x0C, 0x0D, 0x0E, 0x0F,
3566                                          0x18, 0X19, 0x1A, 0x1B,
3567                                          0x1C, 0x1D, 0x1E, 0x1F));
3568 }
3569 static vector unsigned long long __ATTRS_o_ai
vec_mergel(vector bool long long __a,vector unsigned long long __b)3570 vec_mergel(vector bool long long __a, vector unsigned long long __b) {
3571   return vec_perm((vector unsigned long long)__a, __b,
3572                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3573                                          0x0C, 0x0D, 0x0E, 0x0F,
3574                                          0x18, 0X19, 0x1A, 0x1B,
3575                                          0x1C, 0x1D, 0x1E, 0x1F));
3576 }
3577 static vector bool long long __ATTRS_o_ai
vec_mergel(vector bool long long __a,vector bool long long __b)3578 vec_mergel(vector bool long long __a, vector bool long long __b) {
3579   return vec_perm(__a, __b,
3580                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3581                                          0x0C, 0x0D, 0x0E, 0x0F,
3582                                          0x18, 0X19, 0x1A, 0x1B,
3583                                          0x1C, 0x1D, 0x1E, 0x1F));
3584 }
3585 static vector double __ATTRS_o_ai
vec_mergel(vector double __a,vector double __b)3586 vec_mergel(vector double __a, vector double __b) {
3587   return vec_perm(__a, __b,
3588                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3589                                          0x0C, 0x0D, 0x0E, 0x0F,
3590                                          0x18, 0X19, 0x1A, 0x1B,
3591                                          0x1C, 0x1D, 0x1E, 0x1F));
3592 }
3593 static vector double __ATTRS_o_ai
vec_mergel(vector double __a,vector bool long long __b)3594 vec_mergel(vector double __a, vector bool long long __b) {
3595   return vec_perm(__a, (vector double)__b,
3596                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3597                                          0x0C, 0x0D, 0x0E, 0x0F,
3598                                          0x18, 0X19, 0x1A, 0x1B,
3599                                          0x1C, 0x1D, 0x1E, 0x1F));
3600 }
3601 static vector double __ATTRS_o_ai
vec_mergel(vector bool long long __a,vector double __b)3602 vec_mergel(vector bool long long __a, vector double __b) {
3603   return vec_perm((vector double)__a, __b,
3604                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B,
3605                                          0x0C, 0x0D, 0x0E, 0x0F,
3606                                          0x18, 0X19, 0x1A, 0x1B,
3607                                          0x1C, 0x1D, 0x1E, 0x1F));
3608 }
3609 #endif
3610 
3611 /* vec_vmrglb */
3612 
3613 #define __builtin_altivec_vmrglb vec_vmrglb
3614 
vec_vmrglb(vector signed char __a,vector signed char __b)3615 static vector signed char __ATTRS_o_ai vec_vmrglb(vector signed char __a,
3616                                                   vector signed char __b) {
3617   return vec_perm(__a, __b,
3618                   (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
3619                                          0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
3620                                          0x0E, 0x1E, 0x0F, 0x1F));
3621 }
3622 
vec_vmrglb(vector unsigned char __a,vector unsigned char __b)3623 static vector unsigned char __ATTRS_o_ai vec_vmrglb(vector unsigned char __a,
3624                                                     vector unsigned char __b) {
3625   return vec_perm(__a, __b,
3626                   (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
3627                                          0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
3628                                          0x0E, 0x1E, 0x0F, 0x1F));
3629 }
3630 
vec_vmrglb(vector bool char __a,vector bool char __b)3631 static vector bool char __ATTRS_o_ai vec_vmrglb(vector bool char __a,
3632                                                 vector bool char __b) {
3633   return vec_perm(__a, __b,
3634                   (vector unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
3635                                          0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
3636                                          0x0E, 0x1E, 0x0F, 0x1F));
3637 }
3638 
3639 /* vec_vmrglh */
3640 
3641 #define __builtin_altivec_vmrglh vec_vmrglh
3642 
vec_vmrglh(vector short __a,vector short __b)3643 static vector short __ATTRS_o_ai vec_vmrglh(vector short __a,
3644                                             vector short __b) {
3645   return vec_perm(__a, __b,
3646                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3647                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3648                                          0x0E, 0x0F, 0x1E, 0x1F));
3649 }
3650 
3651 static vector unsigned short __ATTRS_o_ai
vec_vmrglh(vector unsigned short __a,vector unsigned short __b)3652 vec_vmrglh(vector unsigned short __a, vector unsigned short __b) {
3653   return vec_perm(__a, __b,
3654                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3655                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3656                                          0x0E, 0x0F, 0x1E, 0x1F));
3657 }
3658 
vec_vmrglh(vector bool short __a,vector bool short __b)3659 static vector bool short __ATTRS_o_ai vec_vmrglh(vector bool short __a,
3660                                                  vector bool short __b) {
3661   return vec_perm(__a, __b,
3662                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3663                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3664                                          0x0E, 0x0F, 0x1E, 0x1F));
3665 }
3666 
vec_vmrglh(vector pixel __a,vector pixel __b)3667 static vector pixel __ATTRS_o_ai vec_vmrglh(vector pixel __a,
3668                                             vector pixel __b) {
3669   return vec_perm(__a, __b,
3670                   (vector unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
3671                                          0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
3672                                          0x0E, 0x0F, 0x1E, 0x1F));
3673 }
3674 
3675 /* vec_vmrglw */
3676 
3677 #define __builtin_altivec_vmrglw vec_vmrglw
3678 
vec_vmrglw(vector int __a,vector int __b)3679 static vector int __ATTRS_o_ai vec_vmrglw(vector int __a, vector int __b) {
3680   return vec_perm(__a, __b,
3681                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3682                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3683                                          0x1C, 0x1D, 0x1E, 0x1F));
3684 }
3685 
vec_vmrglw(vector unsigned int __a,vector unsigned int __b)3686 static vector unsigned int __ATTRS_o_ai vec_vmrglw(vector unsigned int __a,
3687                                                    vector unsigned int __b) {
3688   return vec_perm(__a, __b,
3689                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3690                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3691                                          0x1C, 0x1D, 0x1E, 0x1F));
3692 }
3693 
vec_vmrglw(vector bool int __a,vector bool int __b)3694 static vector bool int __ATTRS_o_ai vec_vmrglw(vector bool int __a,
3695                                                vector bool int __b) {
3696   return vec_perm(__a, __b,
3697                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3698                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3699                                          0x1C, 0x1D, 0x1E, 0x1F));
3700 }
3701 
vec_vmrglw(vector float __a,vector float __b)3702 static vector float __ATTRS_o_ai vec_vmrglw(vector float __a,
3703                                             vector float __b) {
3704   return vec_perm(__a, __b,
3705                   (vector unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
3706                                          0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
3707                                          0x1C, 0x1D, 0x1E, 0x1F));
3708 }
3709 
3710 
3711 #ifdef __POWER8_VECTOR__
3712 /* vec_mergee */
3713 
3714 static vector bool int __ATTRS_o_ai
vec_mergee(vector bool int __a,vector bool int __b)3715 vec_mergee(vector bool int __a, vector bool int __b) {
3716   return vec_perm(__a, __b, (vector unsigned char)
3717                   (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
3718                    0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B));
3719 }
3720 
3721 static vector signed int __ATTRS_o_ai
vec_mergee(vector signed int __a,vector signed int __b)3722 vec_mergee(vector signed int __a, vector signed int __b) {
3723   return vec_perm(__a, __b, (vector unsigned char)
3724                   (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
3725                    0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B));
3726 }
3727 
3728 static vector unsigned int __ATTRS_o_ai
vec_mergee(vector unsigned int __a,vector unsigned int __b)3729 vec_mergee(vector unsigned int __a, vector unsigned int __b) {
3730   return vec_perm(__a, __b, (vector unsigned char)
3731                   (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
3732                    0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B));
3733 }
3734 
3735 /* vec_mergeo */
3736 
3737 static vector bool int  __ATTRS_o_ai
vec_mergeo(vector bool int __a,vector bool int __b)3738 vec_mergeo(vector bool int __a, vector bool int __b) {
3739   return vec_perm(__a, __b, (vector unsigned char)
3740                   (0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17,
3741                    0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
3742 }
3743 
3744 static vector signed int  __ATTRS_o_ai
vec_mergeo(vector signed int __a,vector signed int __b)3745 vec_mergeo(vector signed int __a, vector signed int __b) {
3746   return vec_perm(__a, __b, (vector unsigned char)
3747                   (0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17,
3748                    0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
3749 }
3750 
3751 static vector unsigned int  __ATTRS_o_ai
vec_mergeo(vector unsigned int __a,vector unsigned int __b)3752 vec_mergeo(vector unsigned int __a, vector unsigned int __b) {
3753   return vec_perm(__a, __b, (vector unsigned char)
3754                   (0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17,
3755                    0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
3756 }
3757 
3758 #endif
3759 
3760 /* vec_mfvscr */
3761 
3762 static vector unsigned short __attribute__((__always_inline__))
vec_mfvscr(void)3763 vec_mfvscr(void) {
3764   return __builtin_altivec_mfvscr();
3765 }
3766 
3767 /* vec_min */
3768 
vec_min(vector signed char __a,vector signed char __b)3769 static vector signed char __ATTRS_o_ai vec_min(vector signed char __a,
3770                                                vector signed char __b) {
3771   return __builtin_altivec_vminsb(__a, __b);
3772 }
3773 
vec_min(vector bool char __a,vector signed char __b)3774 static vector signed char __ATTRS_o_ai vec_min(vector bool char __a,
3775                                                vector signed char __b) {
3776   return __builtin_altivec_vminsb((vector signed char)__a, __b);
3777 }
3778 
vec_min(vector signed char __a,vector bool char __b)3779 static vector signed char __ATTRS_o_ai vec_min(vector signed char __a,
3780                                                vector bool char __b) {
3781   return __builtin_altivec_vminsb(__a, (vector signed char)__b);
3782 }
3783 
vec_min(vector unsigned char __a,vector unsigned char __b)3784 static vector unsigned char __ATTRS_o_ai vec_min(vector unsigned char __a,
3785                                                  vector unsigned char __b) {
3786   return __builtin_altivec_vminub(__a, __b);
3787 }
3788 
vec_min(vector bool char __a,vector unsigned char __b)3789 static vector unsigned char __ATTRS_o_ai vec_min(vector bool char __a,
3790                                                  vector unsigned char __b) {
3791   return __builtin_altivec_vminub((vector unsigned char)__a, __b);
3792 }
3793 
vec_min(vector unsigned char __a,vector bool char __b)3794 static vector unsigned char __ATTRS_o_ai vec_min(vector unsigned char __a,
3795                                                  vector bool char __b) {
3796   return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
3797 }
3798 
vec_min(vector short __a,vector short __b)3799 static vector short __ATTRS_o_ai vec_min(vector short __a, vector short __b) {
3800   return __builtin_altivec_vminsh(__a, __b);
3801 }
3802 
vec_min(vector bool short __a,vector short __b)3803 static vector short __ATTRS_o_ai vec_min(vector bool short __a,
3804                                          vector short __b) {
3805   return __builtin_altivec_vminsh((vector short)__a, __b);
3806 }
3807 
vec_min(vector short __a,vector bool short __b)3808 static vector short __ATTRS_o_ai vec_min(vector short __a,
3809                                          vector bool short __b) {
3810   return __builtin_altivec_vminsh(__a, (vector short)__b);
3811 }
3812 
vec_min(vector unsigned short __a,vector unsigned short __b)3813 static vector unsigned short __ATTRS_o_ai vec_min(vector unsigned short __a,
3814                                                   vector unsigned short __b) {
3815   return __builtin_altivec_vminuh(__a, __b);
3816 }
3817 
vec_min(vector bool short __a,vector unsigned short __b)3818 static vector unsigned short __ATTRS_o_ai vec_min(vector bool short __a,
3819                                                   vector unsigned short __b) {
3820   return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
3821 }
3822 
vec_min(vector unsigned short __a,vector bool short __b)3823 static vector unsigned short __ATTRS_o_ai vec_min(vector unsigned short __a,
3824                                                   vector bool short __b) {
3825   return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
3826 }
3827 
vec_min(vector int __a,vector int __b)3828 static vector int __ATTRS_o_ai vec_min(vector int __a, vector int __b) {
3829   return __builtin_altivec_vminsw(__a, __b);
3830 }
3831 
vec_min(vector bool int __a,vector int __b)3832 static vector int __ATTRS_o_ai vec_min(vector bool int __a, vector int __b) {
3833   return __builtin_altivec_vminsw((vector int)__a, __b);
3834 }
3835 
vec_min(vector int __a,vector bool int __b)3836 static vector int __ATTRS_o_ai vec_min(vector int __a, vector bool int __b) {
3837   return __builtin_altivec_vminsw(__a, (vector int)__b);
3838 }
3839 
vec_min(vector unsigned int __a,vector unsigned int __b)3840 static vector unsigned int __ATTRS_o_ai vec_min(vector unsigned int __a,
3841                                                 vector unsigned int __b) {
3842   return __builtin_altivec_vminuw(__a, __b);
3843 }
3844 
vec_min(vector bool int __a,vector unsigned int __b)3845 static vector unsigned int __ATTRS_o_ai vec_min(vector bool int __a,
3846                                                 vector unsigned int __b) {
3847   return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
3848 }
3849 
vec_min(vector unsigned int __a,vector bool int __b)3850 static vector unsigned int __ATTRS_o_ai vec_min(vector unsigned int __a,
3851                                                 vector bool int __b) {
3852   return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
3853 }
3854 
3855 #ifdef __POWER8_VECTOR__
3856 static vector signed long long __ATTRS_o_ai
vec_min(vector signed long long __a,vector signed long long __b)3857 vec_min(vector signed long long __a, vector signed long long __b) {
3858   return __builtin_altivec_vminsd(__a, __b);
3859 }
3860 
3861 static vector signed long long __ATTRS_o_ai
vec_min(vector bool long long __a,vector signed long long __b)3862 vec_min(vector bool long long __a, vector signed long long __b) {
3863   return __builtin_altivec_vminsd((vector signed long long)__a, __b);
3864 }
3865 
vec_min(vector signed long long __a,vector bool long long __b)3866 static vector signed long long __ATTRS_o_ai vec_min(vector signed long long __a,
3867                                                     vector bool long long __b) {
3868   return __builtin_altivec_vminsd(__a, (vector signed long long)__b);
3869 }
3870 
3871 static vector unsigned long long __ATTRS_o_ai
vec_min(vector unsigned long long __a,vector unsigned long long __b)3872 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
3873   return __builtin_altivec_vminud(__a, __b);
3874 }
3875 
3876 static vector unsigned long long __ATTRS_o_ai
vec_min(vector bool long long __a,vector unsigned long long __b)3877 vec_min(vector bool long long __a, vector unsigned long long __b) {
3878   return __builtin_altivec_vminud((vector unsigned long long)__a, __b);
3879 }
3880 
3881 static vector unsigned long long __ATTRS_o_ai
vec_min(vector unsigned long long __a,vector bool long long __b)3882 vec_min(vector unsigned long long __a, vector bool long long __b) {
3883   return __builtin_altivec_vminud(__a, (vector unsigned long long)__b);
3884 }
3885 #endif
3886 
vec_min(vector float __a,vector float __b)3887 static vector float __ATTRS_o_ai vec_min(vector float __a, vector float __b) {
3888 #ifdef __VSX__
3889   return __builtin_vsx_xvminsp(__a, __b);
3890 #else
3891   return __builtin_altivec_vminfp(__a, __b);
3892 #endif
3893 }
3894 
3895 #ifdef __VSX__
vec_min(vector double __a,vector double __b)3896 static vector double __ATTRS_o_ai vec_min(vector double __a,
3897                                           vector double __b) {
3898   return __builtin_vsx_xvmindp(__a, __b);
3899 }
3900 #endif
3901 
3902 /* vec_vminsb */
3903 
vec_vminsb(vector signed char __a,vector signed char __b)3904 static vector signed char __ATTRS_o_ai vec_vminsb(vector signed char __a,
3905                                                   vector signed char __b) {
3906   return __builtin_altivec_vminsb(__a, __b);
3907 }
3908 
vec_vminsb(vector bool char __a,vector signed char __b)3909 static vector signed char __ATTRS_o_ai vec_vminsb(vector bool char __a,
3910                                                   vector signed char __b) {
3911   return __builtin_altivec_vminsb((vector signed char)__a, __b);
3912 }
3913 
vec_vminsb(vector signed char __a,vector bool char __b)3914 static vector signed char __ATTRS_o_ai vec_vminsb(vector signed char __a,
3915                                                   vector bool char __b) {
3916   return __builtin_altivec_vminsb(__a, (vector signed char)__b);
3917 }
3918 
3919 /* vec_vminub */
3920 
vec_vminub(vector unsigned char __a,vector unsigned char __b)3921 static vector unsigned char __ATTRS_o_ai vec_vminub(vector unsigned char __a,
3922                                                     vector unsigned char __b) {
3923   return __builtin_altivec_vminub(__a, __b);
3924 }
3925 
vec_vminub(vector bool char __a,vector unsigned char __b)3926 static vector unsigned char __ATTRS_o_ai vec_vminub(vector bool char __a,
3927                                                     vector unsigned char __b) {
3928   return __builtin_altivec_vminub((vector unsigned char)__a, __b);
3929 }
3930 
vec_vminub(vector unsigned char __a,vector bool char __b)3931 static vector unsigned char __ATTRS_o_ai vec_vminub(vector unsigned char __a,
3932                                                     vector bool char __b) {
3933   return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
3934 }
3935 
3936 /* vec_vminsh */
3937 
vec_vminsh(vector short __a,vector short __b)3938 static vector short __ATTRS_o_ai vec_vminsh(vector short __a,
3939                                             vector short __b) {
3940   return __builtin_altivec_vminsh(__a, __b);
3941 }
3942 
vec_vminsh(vector bool short __a,vector short __b)3943 static vector short __ATTRS_o_ai vec_vminsh(vector bool short __a,
3944                                             vector short __b) {
3945   return __builtin_altivec_vminsh((vector short)__a, __b);
3946 }
3947 
vec_vminsh(vector short __a,vector bool short __b)3948 static vector short __ATTRS_o_ai vec_vminsh(vector short __a,
3949                                             vector bool short __b) {
3950   return __builtin_altivec_vminsh(__a, (vector short)__b);
3951 }
3952 
3953 /* vec_vminuh */
3954 
3955 static vector unsigned short __ATTRS_o_ai
vec_vminuh(vector unsigned short __a,vector unsigned short __b)3956 vec_vminuh(vector unsigned short __a, vector unsigned short __b) {
3957   return __builtin_altivec_vminuh(__a, __b);
3958 }
3959 
3960 static vector unsigned short __ATTRS_o_ai
vec_vminuh(vector bool short __a,vector unsigned short __b)3961 vec_vminuh(vector bool short __a, vector unsigned short __b) {
3962   return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
3963 }
3964 
vec_vminuh(vector unsigned short __a,vector bool short __b)3965 static vector unsigned short __ATTRS_o_ai vec_vminuh(vector unsigned short __a,
3966                                                      vector bool short __b) {
3967   return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
3968 }
3969 
3970 /* vec_vminsw */
3971 
vec_vminsw(vector int __a,vector int __b)3972 static vector int __ATTRS_o_ai vec_vminsw(vector int __a, vector int __b) {
3973   return __builtin_altivec_vminsw(__a, __b);
3974 }
3975 
vec_vminsw(vector bool int __a,vector int __b)3976 static vector int __ATTRS_o_ai vec_vminsw(vector bool int __a, vector int __b) {
3977   return __builtin_altivec_vminsw((vector int)__a, __b);
3978 }
3979 
vec_vminsw(vector int __a,vector bool int __b)3980 static vector int __ATTRS_o_ai vec_vminsw(vector int __a, vector bool int __b) {
3981   return __builtin_altivec_vminsw(__a, (vector int)__b);
3982 }
3983 
3984 /* vec_vminuw */
3985 
vec_vminuw(vector unsigned int __a,vector unsigned int __b)3986 static vector unsigned int __ATTRS_o_ai vec_vminuw(vector unsigned int __a,
3987                                                    vector unsigned int __b) {
3988   return __builtin_altivec_vminuw(__a, __b);
3989 }
3990 
vec_vminuw(vector bool int __a,vector unsigned int __b)3991 static vector unsigned int __ATTRS_o_ai vec_vminuw(vector bool int __a,
3992                                                    vector unsigned int __b) {
3993   return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
3994 }
3995 
vec_vminuw(vector unsigned int __a,vector bool int __b)3996 static vector unsigned int __ATTRS_o_ai vec_vminuw(vector unsigned int __a,
3997                                                    vector bool int __b) {
3998   return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
3999 }
4000 
4001 /* vec_vminfp */
4002 
4003 static vector float __attribute__((__always_inline__))
vec_vminfp(vector float __a,vector float __b)4004 vec_vminfp(vector float __a, vector float __b) {
4005 #ifdef __VSX__
4006   return __builtin_vsx_xvminsp(__a, __b);
4007 #else
4008   return __builtin_altivec_vminfp(__a, __b);
4009 #endif
4010 }
4011 
4012 /* vec_mladd */
4013 
4014 #define __builtin_altivec_vmladduhm vec_mladd
4015 
vec_mladd(vector short __a,vector short __b,vector short __c)4016 static vector short __ATTRS_o_ai vec_mladd(vector short __a, vector short __b,
4017                                            vector short __c) {
4018   return __a * __b + __c;
4019 }
4020 
vec_mladd(vector short __a,vector unsigned short __b,vector unsigned short __c)4021 static vector short __ATTRS_o_ai vec_mladd(vector short __a,
4022                                            vector unsigned short __b,
4023                                            vector unsigned short __c) {
4024   return __a * (vector short)__b + (vector short)__c;
4025 }
4026 
vec_mladd(vector unsigned short __a,vector short __b,vector short __c)4027 static vector short __ATTRS_o_ai vec_mladd(vector unsigned short __a,
4028                                            vector short __b, vector short __c) {
4029   return (vector short)__a * __b + __c;
4030 }
4031 
vec_mladd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)4032 static vector unsigned short __ATTRS_o_ai vec_mladd(vector unsigned short __a,
4033                                                     vector unsigned short __b,
4034                                                     vector unsigned short __c) {
4035   return __a * __b + __c;
4036 }
4037 
4038 /* vec_vmladduhm */
4039 
vec_vmladduhm(vector short __a,vector short __b,vector short __c)4040 static vector short __ATTRS_o_ai vec_vmladduhm(vector short __a,
4041                                                vector short __b,
4042                                                vector short __c) {
4043   return __a * __b + __c;
4044 }
4045 
vec_vmladduhm(vector short __a,vector unsigned short __b,vector unsigned short __c)4046 static vector short __ATTRS_o_ai vec_vmladduhm(vector short __a,
4047                                                vector unsigned short __b,
4048                                                vector unsigned short __c) {
4049   return __a * (vector short)__b + (vector short)__c;
4050 }
4051 
vec_vmladduhm(vector unsigned short __a,vector short __b,vector short __c)4052 static vector short __ATTRS_o_ai vec_vmladduhm(vector unsigned short __a,
4053                                                vector short __b,
4054                                                vector short __c) {
4055   return (vector short)__a * __b + __c;
4056 }
4057 
4058 static vector unsigned short __ATTRS_o_ai
vec_vmladduhm(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)4059 vec_vmladduhm(vector unsigned short __a, vector unsigned short __b,
4060               vector unsigned short __c) {
4061   return __a * __b + __c;
4062 }
4063 
4064 /* vec_mradds */
4065 
4066 static vector short __attribute__((__always_inline__))
vec_mradds(vector short __a,vector short __b,vector short __c)4067 vec_mradds(vector short __a, vector short __b, vector short __c) {
4068   return __builtin_altivec_vmhraddshs(__a, __b, __c);
4069 }
4070 
4071 /* vec_vmhraddshs */
4072 
4073 static vector short __attribute__((__always_inline__))
vec_vmhraddshs(vector short __a,vector short __b,vector short __c)4074 vec_vmhraddshs(vector short __a, vector short __b, vector short __c) {
4075   return __builtin_altivec_vmhraddshs(__a, __b, __c);
4076 }
4077 
4078 /* vec_msum */
4079 
vec_msum(vector signed char __a,vector unsigned char __b,vector int __c)4080 static vector int __ATTRS_o_ai vec_msum(vector signed char __a,
4081                                         vector unsigned char __b,
4082                                         vector int __c) {
4083   return __builtin_altivec_vmsummbm(__a, __b, __c);
4084 }
4085 
vec_msum(vector unsigned char __a,vector unsigned char __b,vector unsigned int __c)4086 static vector unsigned int __ATTRS_o_ai vec_msum(vector unsigned char __a,
4087                                                  vector unsigned char __b,
4088                                                  vector unsigned int __c) {
4089   return __builtin_altivec_vmsumubm(__a, __b, __c);
4090 }
4091 
vec_msum(vector short __a,vector short __b,vector int __c)4092 static vector int __ATTRS_o_ai vec_msum(vector short __a, vector short __b,
4093                                         vector int __c) {
4094   return __builtin_altivec_vmsumshm(__a, __b, __c);
4095 }
4096 
vec_msum(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)4097 static vector unsigned int __ATTRS_o_ai vec_msum(vector unsigned short __a,
4098                                                  vector unsigned short __b,
4099                                                  vector unsigned int __c) {
4100   return __builtin_altivec_vmsumuhm(__a, __b, __c);
4101 }
4102 
4103 /* vec_vmsummbm */
4104 
4105 static vector int __attribute__((__always_inline__))
vec_vmsummbm(vector signed char __a,vector unsigned char __b,vector int __c)4106 vec_vmsummbm(vector signed char __a, vector unsigned char __b, vector int __c) {
4107   return __builtin_altivec_vmsummbm(__a, __b, __c);
4108 }
4109 
4110 /* vec_vmsumubm */
4111 
4112 static vector unsigned int __attribute__((__always_inline__))
vec_vmsumubm(vector unsigned char __a,vector unsigned char __b,vector unsigned int __c)4113 vec_vmsumubm(vector unsigned char __a, vector unsigned char __b,
4114              vector unsigned int __c) {
4115   return __builtin_altivec_vmsumubm(__a, __b, __c);
4116 }
4117 
4118 /* vec_vmsumshm */
4119 
4120 static vector int __attribute__((__always_inline__))
vec_vmsumshm(vector short __a,vector short __b,vector int __c)4121 vec_vmsumshm(vector short __a, vector short __b, vector int __c) {
4122   return __builtin_altivec_vmsumshm(__a, __b, __c);
4123 }
4124 
4125 /* vec_vmsumuhm */
4126 
4127 static vector unsigned int __attribute__((__always_inline__))
vec_vmsumuhm(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)4128 vec_vmsumuhm(vector unsigned short __a, vector unsigned short __b,
4129              vector unsigned int __c) {
4130   return __builtin_altivec_vmsumuhm(__a, __b, __c);
4131 }
4132 
4133 /* vec_msums */
4134 
vec_msums(vector short __a,vector short __b,vector int __c)4135 static vector int __ATTRS_o_ai vec_msums(vector short __a, vector short __b,
4136                                          vector int __c) {
4137   return __builtin_altivec_vmsumshs(__a, __b, __c);
4138 }
4139 
vec_msums(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)4140 static vector unsigned int __ATTRS_o_ai vec_msums(vector unsigned short __a,
4141                                                   vector unsigned short __b,
4142                                                   vector unsigned int __c) {
4143   return __builtin_altivec_vmsumuhs(__a, __b, __c);
4144 }
4145 
4146 /* vec_vmsumshs */
4147 
4148 static vector int __attribute__((__always_inline__))
vec_vmsumshs(vector short __a,vector short __b,vector int __c)4149 vec_vmsumshs(vector short __a, vector short __b, vector int __c) {
4150   return __builtin_altivec_vmsumshs(__a, __b, __c);
4151 }
4152 
4153 /* vec_vmsumuhs */
4154 
4155 static vector unsigned int __attribute__((__always_inline__))
vec_vmsumuhs(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)4156 vec_vmsumuhs(vector unsigned short __a, vector unsigned short __b,
4157              vector unsigned int __c) {
4158   return __builtin_altivec_vmsumuhs(__a, __b, __c);
4159 }
4160 
4161 /* vec_mtvscr */
4162 
vec_mtvscr(vector signed char __a)4163 static void __ATTRS_o_ai vec_mtvscr(vector signed char __a) {
4164   __builtin_altivec_mtvscr((vector int)__a);
4165 }
4166 
vec_mtvscr(vector unsigned char __a)4167 static void __ATTRS_o_ai vec_mtvscr(vector unsigned char __a) {
4168   __builtin_altivec_mtvscr((vector int)__a);
4169 }
4170 
vec_mtvscr(vector bool char __a)4171 static void __ATTRS_o_ai vec_mtvscr(vector bool char __a) {
4172   __builtin_altivec_mtvscr((vector int)__a);
4173 }
4174 
vec_mtvscr(vector short __a)4175 static void __ATTRS_o_ai vec_mtvscr(vector short __a) {
4176   __builtin_altivec_mtvscr((vector int)__a);
4177 }
4178 
vec_mtvscr(vector unsigned short __a)4179 static void __ATTRS_o_ai vec_mtvscr(vector unsigned short __a) {
4180   __builtin_altivec_mtvscr((vector int)__a);
4181 }
4182 
vec_mtvscr(vector bool short __a)4183 static void __ATTRS_o_ai vec_mtvscr(vector bool short __a) {
4184   __builtin_altivec_mtvscr((vector int)__a);
4185 }
4186 
vec_mtvscr(vector pixel __a)4187 static void __ATTRS_o_ai vec_mtvscr(vector pixel __a) {
4188   __builtin_altivec_mtvscr((vector int)__a);
4189 }
4190 
vec_mtvscr(vector int __a)4191 static void __ATTRS_o_ai vec_mtvscr(vector int __a) {
4192   __builtin_altivec_mtvscr((vector int)__a);
4193 }
4194 
vec_mtvscr(vector unsigned int __a)4195 static void __ATTRS_o_ai vec_mtvscr(vector unsigned int __a) {
4196   __builtin_altivec_mtvscr((vector int)__a);
4197 }
4198 
vec_mtvscr(vector bool int __a)4199 static void __ATTRS_o_ai vec_mtvscr(vector bool int __a) {
4200   __builtin_altivec_mtvscr((vector int)__a);
4201 }
4202 
vec_mtvscr(vector float __a)4203 static void __ATTRS_o_ai vec_mtvscr(vector float __a) {
4204   __builtin_altivec_mtvscr((vector int)__a);
4205 }
4206 
4207 /* vec_mul */
4208 
4209 /* Integer vector multiplication will involve multiplication of the odd/even
4210    elements separately, then truncating the results and moving to the
4211    result vector.
4212 */
vec_mul(vector signed char __a,vector signed char __b)4213 static vector signed char __ATTRS_o_ai vec_mul(vector signed char __a,
4214                                                vector signed char __b) {
4215   return __a * __b;
4216 }
4217 
vec_mul(vector unsigned char __a,vector unsigned char __b)4218 static vector unsigned char __ATTRS_o_ai vec_mul(vector unsigned char __a,
4219                                                  vector unsigned char __b) {
4220   return __a * __b;
4221 }
4222 
vec_mul(vector signed short __a,vector signed short __b)4223 static vector signed short __ATTRS_o_ai vec_mul(vector signed short __a,
4224                                                 vector signed short __b) {
4225   return __a * __b;
4226 }
4227 
vec_mul(vector unsigned short __a,vector unsigned short __b)4228 static vector unsigned short __ATTRS_o_ai vec_mul(vector unsigned short __a,
4229                                                   vector unsigned short __b) {
4230   return __a * __b;
4231 }
4232 
vec_mul(vector signed int __a,vector signed int __b)4233 static vector signed int __ATTRS_o_ai vec_mul(vector signed int __a,
4234                                               vector signed int __b) {
4235   return __a * __b;
4236 }
4237 
vec_mul(vector unsigned int __a,vector unsigned int __b)4238 static vector unsigned int __ATTRS_o_ai vec_mul(vector unsigned int __a,
4239                                                 vector unsigned int __b) {
4240   return __a * __b;
4241 }
4242 
4243 #ifdef __VSX__
4244 static vector signed long long __ATTRS_o_ai
vec_mul(vector signed long long __a,vector signed long long __b)4245 vec_mul(vector signed long long __a, vector signed long long __b) {
4246   return __a * __b;
4247 }
4248 
4249 static vector unsigned long long __ATTRS_o_ai
vec_mul(vector unsigned long long __a,vector unsigned long long __b)4250 vec_mul(vector unsigned long long __a, vector unsigned long long __b) {
4251   return __a * __b;
4252 }
4253 #endif
4254 
vec_mul(vector float __a,vector float __b)4255 static vector float __ATTRS_o_ai vec_mul(vector float __a, vector float __b) {
4256   return __a * __b;
4257 }
4258 
4259 #ifdef __VSX__
4260 static vector double __ATTRS_o_ai
vec_mul(vector double __a,vector double __b)4261 vec_mul(vector double __a, vector double __b) {
4262   return __a * __b;
4263 }
4264 #endif
4265 
4266 /* The vmulos* and vmules* instructions have a big endian bias, so
4267    we must reverse the meaning of "even" and "odd" for little endian.  */
4268 
4269 /* vec_mule */
4270 
vec_mule(vector signed char __a,vector signed char __b)4271 static vector short __ATTRS_o_ai vec_mule(vector signed char __a,
4272                                           vector signed char __b) {
4273 #ifdef __LITTLE_ENDIAN__
4274   return __builtin_altivec_vmulosb(__a, __b);
4275 #else
4276   return __builtin_altivec_vmulesb(__a, __b);
4277 #endif
4278 }
4279 
vec_mule(vector unsigned char __a,vector unsigned char __b)4280 static vector unsigned short __ATTRS_o_ai vec_mule(vector unsigned char __a,
4281                                                    vector unsigned char __b) {
4282 #ifdef __LITTLE_ENDIAN__
4283   return __builtin_altivec_vmuloub(__a, __b);
4284 #else
4285   return __builtin_altivec_vmuleub(__a, __b);
4286 #endif
4287 }
4288 
vec_mule(vector short __a,vector short __b)4289 static vector int __ATTRS_o_ai vec_mule(vector short __a, vector short __b) {
4290 #ifdef __LITTLE_ENDIAN__
4291   return __builtin_altivec_vmulosh(__a, __b);
4292 #else
4293   return __builtin_altivec_vmulesh(__a, __b);
4294 #endif
4295 }
4296 
vec_mule(vector unsigned short __a,vector unsigned short __b)4297 static vector unsigned int __ATTRS_o_ai vec_mule(vector unsigned short __a,
4298                                                  vector unsigned short __b) {
4299 #ifdef __LITTLE_ENDIAN__
4300   return __builtin_altivec_vmulouh(__a, __b);
4301 #else
4302   return __builtin_altivec_vmuleuh(__a, __b);
4303 #endif
4304 }
4305 
4306 #ifdef __POWER8_VECTOR__
vec_mule(vector signed int __a,vector signed int __b)4307 static vector signed long long __ATTRS_o_ai vec_mule(vector signed int __a,
4308                                                      vector signed int __b) {
4309 #ifdef __LITTLE_ENDIAN__
4310   return __builtin_altivec_vmulosw(__a, __b);
4311 #else
4312   return __builtin_altivec_vmulesw(__a, __b);
4313 #endif
4314 }
4315 
4316 static vector unsigned long long __ATTRS_o_ai
vec_mule(vector unsigned int __a,vector unsigned int __b)4317 vec_mule(vector unsigned int __a, vector unsigned int __b) {
4318 #ifdef __LITTLE_ENDIAN__
4319   return __builtin_altivec_vmulouw(__a, __b);
4320 #else
4321   return __builtin_altivec_vmuleuw(__a, __b);
4322 #endif
4323 }
4324 #endif
4325 
4326 /* vec_vmulesb */
4327 
4328 static vector short __attribute__((__always_inline__))
vec_vmulesb(vector signed char __a,vector signed char __b)4329 vec_vmulesb(vector signed char __a, vector signed char __b) {
4330 #ifdef __LITTLE_ENDIAN__
4331   return __builtin_altivec_vmulosb(__a, __b);
4332 #else
4333   return __builtin_altivec_vmulesb(__a, __b);
4334 #endif
4335 }
4336 
4337 /* vec_vmuleub */
4338 
4339 static vector unsigned short __attribute__((__always_inline__))
vec_vmuleub(vector unsigned char __a,vector unsigned char __b)4340 vec_vmuleub(vector unsigned char __a, vector unsigned char __b) {
4341 #ifdef __LITTLE_ENDIAN__
4342   return __builtin_altivec_vmuloub(__a, __b);
4343 #else
4344   return __builtin_altivec_vmuleub(__a, __b);
4345 #endif
4346 }
4347 
4348 /* vec_vmulesh */
4349 
4350 static vector int __attribute__((__always_inline__))
vec_vmulesh(vector short __a,vector short __b)4351 vec_vmulesh(vector short __a, vector short __b) {
4352 #ifdef __LITTLE_ENDIAN__
4353   return __builtin_altivec_vmulosh(__a, __b);
4354 #else
4355   return __builtin_altivec_vmulesh(__a, __b);
4356 #endif
4357 }
4358 
4359 /* vec_vmuleuh */
4360 
4361 static vector unsigned int __attribute__((__always_inline__))
vec_vmuleuh(vector unsigned short __a,vector unsigned short __b)4362 vec_vmuleuh(vector unsigned short __a, vector unsigned short __b) {
4363 #ifdef __LITTLE_ENDIAN__
4364   return __builtin_altivec_vmulouh(__a, __b);
4365 #else
4366   return __builtin_altivec_vmuleuh(__a, __b);
4367 #endif
4368 }
4369 
4370 /* vec_mulo */
4371 
vec_mulo(vector signed char __a,vector signed char __b)4372 static vector short __ATTRS_o_ai vec_mulo(vector signed char __a,
4373                                           vector signed char __b) {
4374 #ifdef __LITTLE_ENDIAN__
4375   return __builtin_altivec_vmulesb(__a, __b);
4376 #else
4377   return __builtin_altivec_vmulosb(__a, __b);
4378 #endif
4379 }
4380 
vec_mulo(vector unsigned char __a,vector unsigned char __b)4381 static vector unsigned short __ATTRS_o_ai vec_mulo(vector unsigned char __a,
4382                                                    vector unsigned char __b) {
4383 #ifdef __LITTLE_ENDIAN__
4384   return __builtin_altivec_vmuleub(__a, __b);
4385 #else
4386   return __builtin_altivec_vmuloub(__a, __b);
4387 #endif
4388 }
4389 
vec_mulo(vector short __a,vector short __b)4390 static vector int __ATTRS_o_ai vec_mulo(vector short __a, vector short __b) {
4391 #ifdef __LITTLE_ENDIAN__
4392   return __builtin_altivec_vmulesh(__a, __b);
4393 #else
4394   return __builtin_altivec_vmulosh(__a, __b);
4395 #endif
4396 }
4397 
vec_mulo(vector unsigned short __a,vector unsigned short __b)4398 static vector unsigned int __ATTRS_o_ai vec_mulo(vector unsigned short __a,
4399                                                  vector unsigned short __b) {
4400 #ifdef __LITTLE_ENDIAN__
4401   return __builtin_altivec_vmuleuh(__a, __b);
4402 #else
4403   return __builtin_altivec_vmulouh(__a, __b);
4404 #endif
4405 }
4406 
4407 #ifdef __POWER8_VECTOR__
vec_mulo(vector signed int __a,vector signed int __b)4408 static vector signed long long __ATTRS_o_ai vec_mulo(vector signed int __a,
4409                                                      vector signed int __b) {
4410 #ifdef __LITTLE_ENDIAN__
4411   return __builtin_altivec_vmulesw(__a, __b);
4412 #else
4413   return __builtin_altivec_vmulosw(__a, __b);
4414 #endif
4415 }
4416 
4417 static vector unsigned long long __ATTRS_o_ai
vec_mulo(vector unsigned int __a,vector unsigned int __b)4418 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
4419 #ifdef __LITTLE_ENDIAN__
4420   return __builtin_altivec_vmuleuw(__a, __b);
4421 #else
4422   return __builtin_altivec_vmulouw(__a, __b);
4423 #endif
4424 }
4425 #endif
4426 
4427 /* vec_vmulosb */
4428 
4429 static vector short __attribute__((__always_inline__))
vec_vmulosb(vector signed char __a,vector signed char __b)4430 vec_vmulosb(vector signed char __a, vector signed char __b) {
4431 #ifdef __LITTLE_ENDIAN__
4432   return __builtin_altivec_vmulesb(__a, __b);
4433 #else
4434   return __builtin_altivec_vmulosb(__a, __b);
4435 #endif
4436 }
4437 
4438 /* vec_vmuloub */
4439 
4440 static vector unsigned short __attribute__((__always_inline__))
vec_vmuloub(vector unsigned char __a,vector unsigned char __b)4441 vec_vmuloub(vector unsigned char __a, vector unsigned char __b) {
4442 #ifdef __LITTLE_ENDIAN__
4443   return __builtin_altivec_vmuleub(__a, __b);
4444 #else
4445   return __builtin_altivec_vmuloub(__a, __b);
4446 #endif
4447 }
4448 
4449 /* vec_vmulosh */
4450 
4451 static vector int __attribute__((__always_inline__))
vec_vmulosh(vector short __a,vector short __b)4452 vec_vmulosh(vector short __a, vector short __b) {
4453 #ifdef __LITTLE_ENDIAN__
4454   return __builtin_altivec_vmulesh(__a, __b);
4455 #else
4456   return __builtin_altivec_vmulosh(__a, __b);
4457 #endif
4458 }
4459 
4460 /* vec_vmulouh */
4461 
4462 static vector unsigned int __attribute__((__always_inline__))
vec_vmulouh(vector unsigned short __a,vector unsigned short __b)4463 vec_vmulouh(vector unsigned short __a, vector unsigned short __b) {
4464 #ifdef __LITTLE_ENDIAN__
4465   return __builtin_altivec_vmuleuh(__a, __b);
4466 #else
4467   return __builtin_altivec_vmulouh(__a, __b);
4468 #endif
4469 }
4470 
4471 /*  vec_nand */
4472 
4473 #ifdef __POWER8_VECTOR__
vec_nand(vector signed char __a,vector signed char __b)4474 static vector signed char __ATTRS_o_ai vec_nand(vector signed char __a,
4475                                                 vector signed char __b) {
4476   return ~(__a & __b);
4477 }
4478 
vec_nand(vector signed char __a,vector bool char __b)4479 static vector signed char __ATTRS_o_ai vec_nand(vector signed char __a,
4480                                                 vector bool char __b) {
4481   return ~(__a & __b);
4482 }
4483 
vec_nand(vector bool char __a,vector signed char __b)4484 static vector signed char __ATTRS_o_ai vec_nand(vector bool char __a,
4485                                                 vector signed char __b) {
4486   return ~(__a & __b);
4487 }
4488 
vec_nand(vector unsigned char __a,vector unsigned char __b)4489 static vector unsigned char __ATTRS_o_ai vec_nand(vector unsigned char __a,
4490                                                   vector unsigned char __b) {
4491   return ~(__a & __b);
4492 }
4493 
vec_nand(vector unsigned char __a,vector bool char __b)4494 static vector unsigned char __ATTRS_o_ai vec_nand(vector unsigned char __a,
4495                                                   vector bool char __b) {
4496   return ~(__a & __b);
4497 
4498 }
4499 
vec_nand(vector bool char __a,vector unsigned char __b)4500 static vector unsigned char __ATTRS_o_ai vec_nand(vector bool char __a,
4501                                                   vector unsigned char __b) {
4502   return ~(__a & __b);
4503 }
4504 
vec_nand(vector bool char __a,vector bool char __b)4505 static vector bool char __ATTRS_o_ai vec_nand(vector bool char __a,
4506                                               vector bool char __b) {
4507   return ~(__a & __b);
4508 }
4509 
vec_nand(vector signed short __a,vector signed short __b)4510 static vector signed short __ATTRS_o_ai vec_nand(vector signed short __a,
4511                                                  vector signed short __b) {
4512   return ~(__a & __b);
4513 }
4514 
vec_nand(vector signed short __a,vector bool short __b)4515 static vector signed short __ATTRS_o_ai vec_nand(vector signed short __a,
4516                                                  vector bool short __b) {
4517   return ~(__a & __b);
4518 }
4519 
vec_nand(vector bool short __a,vector signed short __b)4520 static vector signed short __ATTRS_o_ai vec_nand(vector bool short __a,
4521                                                  vector signed short __b) {
4522   return ~(__a & __b);
4523 }
4524 
vec_nand(vector unsigned short __a,vector unsigned short __b)4525 static vector unsigned short __ATTRS_o_ai vec_nand(vector unsigned short __a,
4526                                                    vector unsigned short __b) {
4527   return ~(__a & __b);
4528 }
4529 
vec_nand(vector unsigned short __a,vector bool short __b)4530 static vector unsigned short __ATTRS_o_ai vec_nand(vector unsigned short __a,
4531                                                    vector bool short __b) {
4532   return ~(__a & __b);
4533 
4534 }
4535 
vec_nand(vector bool short __a,vector bool short __b)4536 static vector bool short __ATTRS_o_ai vec_nand(vector bool short __a,
4537                                                vector bool short __b) {
4538   return ~(__a & __b);
4539 
4540 }
4541 
vec_nand(vector signed int __a,vector signed int __b)4542 static vector signed int __ATTRS_o_ai vec_nand(vector signed int __a,
4543                                                vector signed int __b) {
4544   return ~(__a & __b);
4545 }
4546 
vec_nand(vector signed int __a,vector bool int __b)4547 static vector signed int __ATTRS_o_ai vec_nand(vector signed int __a,
4548                                                vector bool int __b) {
4549   return ~(__a & __b);
4550 }
4551 
vec_nand(vector bool int __a,vector signed int __b)4552 static vector signed int __ATTRS_o_ai vec_nand(vector bool int __a,
4553                                                vector signed int __b) {
4554   return ~(__a & __b);
4555 }
4556 
vec_nand(vector unsigned int __a,vector unsigned int __b)4557 static vector unsigned int __ATTRS_o_ai vec_nand(vector unsigned int __a,
4558                                                  vector unsigned int __b) {
4559   return ~(__a & __b);
4560 }
4561 
vec_nand(vector unsigned int __a,vector bool int __b)4562 static vector unsigned int __ATTRS_o_ai vec_nand(vector unsigned int __a,
4563                                                  vector bool int __b) {
4564   return ~(__a & __b);
4565 }
4566 
vec_nand(vector bool int __a,vector unsigned int __b)4567 static vector unsigned int __ATTRS_o_ai vec_nand(vector bool int __a,
4568                                                  vector unsigned int __b) {
4569   return ~(__a & __b);
4570 }
4571 
vec_nand(vector bool int __a,vector bool int __b)4572 static vector bool int __ATTRS_o_ai vec_nand(vector bool int __a,
4573                                              vector bool int __b) {
4574   return ~(__a & __b);
4575 }
4576 
4577 static vector signed long long __ATTRS_o_ai
vec_nand(vector signed long long __a,vector signed long long __b)4578 vec_nand(vector signed long long __a, vector signed long long __b) {
4579   return ~(__a & __b);
4580 }
4581 
4582 static vector signed long long __ATTRS_o_ai
vec_nand(vector signed long long __a,vector bool long long __b)4583 vec_nand(vector signed long long __a, vector bool long long __b) {
4584   return ~(__a & __b);
4585 }
4586 
4587 static vector signed long long __ATTRS_o_ai
vec_nand(vector bool long long __a,vector signed long long __b)4588 vec_nand(vector bool long long __a, vector signed long long __b) {
4589   return ~(__a & __b);
4590 }
4591 
4592 static vector unsigned long long __ATTRS_o_ai
vec_nand(vector unsigned long long __a,vector unsigned long long __b)4593 vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
4594   return ~(__a & __b);
4595 }
4596 
4597 static vector unsigned long long __ATTRS_o_ai
vec_nand(vector unsigned long long __a,vector bool long long __b)4598 vec_nand(vector unsigned long long __a, vector bool long long __b) {
4599   return ~(__a & __b);
4600 }
4601 
4602 static vector unsigned long long __ATTRS_o_ai
vec_nand(vector bool long long __a,vector unsigned long long __b)4603 vec_nand(vector bool long long __a, vector unsigned long long __b) {
4604   return ~(__a & __b);
4605 }
4606 
4607 static vector bool long long __ATTRS_o_ai
vec_nand(vector bool long long __a,vector bool long long __b)4608 vec_nand(vector bool long long __a, vector bool long long __b) {
4609   return ~(__a & __b);
4610 }
4611 
4612 #endif
4613 
4614 /* vec_nmadd */
4615 
4616 #ifdef __VSX__
4617 static vector float __ATTRS_o_ai
vec_nmadd(vector float __a,vector float __b,vector float __c)4618 vec_nmadd(vector float __a, vector float __b, vector float __c) {
4619   return __builtin_vsx_xvnmaddasp(__a, __b, __c);
4620 }
4621 
4622 static vector double __ATTRS_o_ai
vec_nmadd(vector double __a,vector double __b,vector double __c)4623 vec_nmadd(vector double __a, vector double __b, vector double __c) {
4624   return __builtin_vsx_xvnmaddadp(__a, __b, __c);
4625 }
4626 #endif
4627 
4628 /* vec_nmsub */
4629 
4630 static vector float __ATTRS_o_ai
vec_nmsub(vector float __a,vector float __b,vector float __c)4631 vec_nmsub(vector float __a, vector float __b, vector float __c) {
4632 #ifdef __VSX__
4633   return __builtin_vsx_xvnmsubasp(__a, __b, __c);
4634 #else
4635   return __builtin_altivec_vnmsubfp(__a, __b, __c);
4636 #endif
4637 }
4638 
4639 #ifdef __VSX__
4640 static vector double __ATTRS_o_ai
vec_nmsub(vector double __a,vector double __b,vector double __c)4641 vec_nmsub(vector double __a, vector double __b, vector double __c) {
4642   return __builtin_vsx_xvnmsubadp(__a, __b, __c);
4643 }
4644 #endif
4645 
4646 /* vec_vnmsubfp */
4647 
4648 static vector float __attribute__((__always_inline__))
vec_vnmsubfp(vector float __a,vector float __b,vector float __c)4649 vec_vnmsubfp(vector float __a, vector float __b, vector float __c) {
4650   return __builtin_altivec_vnmsubfp(__a, __b, __c);
4651 }
4652 
4653 /* vec_nor */
4654 
4655 #define __builtin_altivec_vnor vec_nor
4656 
vec_nor(vector signed char __a,vector signed char __b)4657 static vector signed char __ATTRS_o_ai vec_nor(vector signed char __a,
4658                                                vector signed char __b) {
4659   return ~(__a | __b);
4660 }
4661 
vec_nor(vector unsigned char __a,vector unsigned char __b)4662 static vector unsigned char __ATTRS_o_ai vec_nor(vector unsigned char __a,
4663                                                  vector unsigned char __b) {
4664   return ~(__a | __b);
4665 }
4666 
vec_nor(vector bool char __a,vector bool char __b)4667 static vector bool char __ATTRS_o_ai vec_nor(vector bool char __a,
4668                                              vector bool char __b) {
4669   return ~(__a | __b);
4670 }
4671 
vec_nor(vector short __a,vector short __b)4672 static vector short __ATTRS_o_ai vec_nor(vector short __a, vector short __b) {
4673   return ~(__a | __b);
4674 }
4675 
vec_nor(vector unsigned short __a,vector unsigned short __b)4676 static vector unsigned short __ATTRS_o_ai vec_nor(vector unsigned short __a,
4677                                                   vector unsigned short __b) {
4678   return ~(__a | __b);
4679 }
4680 
vec_nor(vector bool short __a,vector bool short __b)4681 static vector bool short __ATTRS_o_ai vec_nor(vector bool short __a,
4682                                               vector bool short __b) {
4683   return ~(__a | __b);
4684 }
4685 
vec_nor(vector int __a,vector int __b)4686 static vector int __ATTRS_o_ai vec_nor(vector int __a, vector int __b) {
4687   return ~(__a | __b);
4688 }
4689 
vec_nor(vector unsigned int __a,vector unsigned int __b)4690 static vector unsigned int __ATTRS_o_ai vec_nor(vector unsigned int __a,
4691                                                 vector unsigned int __b) {
4692   return ~(__a | __b);
4693 }
4694 
vec_nor(vector bool int __a,vector bool int __b)4695 static vector bool int __ATTRS_o_ai vec_nor(vector bool int __a,
4696                                             vector bool int __b) {
4697   return ~(__a | __b);
4698 }
4699 
vec_nor(vector float __a,vector float __b)4700 static vector float __ATTRS_o_ai vec_nor(vector float __a, vector float __b) {
4701   vector unsigned int __res =
4702       ~((vector unsigned int)__a | (vector unsigned int)__b);
4703   return (vector float)__res;
4704 }
4705 
4706 #ifdef __VSX__
4707 static vector double __ATTRS_o_ai
vec_nor(vector double __a,vector double __b)4708 vec_nor(vector double __a, vector double __b) {
4709   vector unsigned long long __res =
4710       ~((vector unsigned long long)__a | (vector unsigned long long)__b);
4711   return (vector double)__res;
4712 }
4713 #endif
4714 
4715 /* vec_vnor */
4716 
vec_vnor(vector signed char __a,vector signed char __b)4717 static vector signed char __ATTRS_o_ai vec_vnor(vector signed char __a,
4718                                                 vector signed char __b) {
4719   return ~(__a | __b);
4720 }
4721 
vec_vnor(vector unsigned char __a,vector unsigned char __b)4722 static vector unsigned char __ATTRS_o_ai vec_vnor(vector unsigned char __a,
4723                                                   vector unsigned char __b) {
4724   return ~(__a | __b);
4725 }
4726 
vec_vnor(vector bool char __a,vector bool char __b)4727 static vector bool char __ATTRS_o_ai vec_vnor(vector bool char __a,
4728                                               vector bool char __b) {
4729   return ~(__a | __b);
4730 }
4731 
vec_vnor(vector short __a,vector short __b)4732 static vector short __ATTRS_o_ai vec_vnor(vector short __a, vector short __b) {
4733   return ~(__a | __b);
4734 }
4735 
vec_vnor(vector unsigned short __a,vector unsigned short __b)4736 static vector unsigned short __ATTRS_o_ai vec_vnor(vector unsigned short __a,
4737                                                    vector unsigned short __b) {
4738   return ~(__a | __b);
4739 }
4740 
vec_vnor(vector bool short __a,vector bool short __b)4741 static vector bool short __ATTRS_o_ai vec_vnor(vector bool short __a,
4742                                                vector bool short __b) {
4743   return ~(__a | __b);
4744 }
4745 
vec_vnor(vector int __a,vector int __b)4746 static vector int __ATTRS_o_ai vec_vnor(vector int __a, vector int __b) {
4747   return ~(__a | __b);
4748 }
4749 
vec_vnor(vector unsigned int __a,vector unsigned int __b)4750 static vector unsigned int __ATTRS_o_ai vec_vnor(vector unsigned int __a,
4751                                                  vector unsigned int __b) {
4752   return ~(__a | __b);
4753 }
4754 
vec_vnor(vector bool int __a,vector bool int __b)4755 static vector bool int __ATTRS_o_ai vec_vnor(vector bool int __a,
4756                                              vector bool int __b) {
4757   return ~(__a | __b);
4758 }
4759 
vec_vnor(vector float __a,vector float __b)4760 static vector float __ATTRS_o_ai vec_vnor(vector float __a, vector float __b) {
4761   vector unsigned int __res =
4762       ~((vector unsigned int)__a | (vector unsigned int)__b);
4763   return (vector float)__res;
4764 }
4765 
4766 #ifdef __VSX__
4767 static vector signed long long __ATTRS_o_ai
vec_nor(vector signed long long __a,vector signed long long __b)4768 vec_nor(vector signed long long __a, vector signed long long __b) {
4769   return ~(__a | __b);
4770 }
4771 
4772 static vector unsigned long long __ATTRS_o_ai
vec_nor(vector unsigned long long __a,vector unsigned long long __b)4773 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
4774   return ~(__a | __b);
4775 }
4776 
vec_nor(vector bool long long __a,vector bool long long __b)4777 static vector bool long long __ATTRS_o_ai vec_nor(vector bool long long __a,
4778                                                   vector bool long long __b) {
4779   return ~(__a | __b);
4780 }
4781 #endif
4782 
4783 /* vec_or */
4784 
4785 #define __builtin_altivec_vor vec_or
4786 
vec_or(vector signed char __a,vector signed char __b)4787 static vector signed char __ATTRS_o_ai vec_or(vector signed char __a,
4788                                               vector signed char __b) {
4789   return __a | __b;
4790 }
4791 
vec_or(vector bool char __a,vector signed char __b)4792 static vector signed char __ATTRS_o_ai vec_or(vector bool char __a,
4793                                               vector signed char __b) {
4794   return (vector signed char)__a | __b;
4795 }
4796 
vec_or(vector signed char __a,vector bool char __b)4797 static vector signed char __ATTRS_o_ai vec_or(vector signed char __a,
4798                                               vector bool char __b) {
4799   return __a | (vector signed char)__b;
4800 }
4801 
vec_or(vector unsigned char __a,vector unsigned char __b)4802 static vector unsigned char __ATTRS_o_ai vec_or(vector unsigned char __a,
4803                                                 vector unsigned char __b) {
4804   return __a | __b;
4805 }
4806 
vec_or(vector bool char __a,vector unsigned char __b)4807 static vector unsigned char __ATTRS_o_ai vec_or(vector bool char __a,
4808                                                 vector unsigned char __b) {
4809   return (vector unsigned char)__a | __b;
4810 }
4811 
vec_or(vector unsigned char __a,vector bool char __b)4812 static vector unsigned char __ATTRS_o_ai vec_or(vector unsigned char __a,
4813                                                 vector bool char __b) {
4814   return __a | (vector unsigned char)__b;
4815 }
4816 
vec_or(vector bool char __a,vector bool char __b)4817 static vector bool char __ATTRS_o_ai vec_or(vector bool char __a,
4818                                             vector bool char __b) {
4819   return __a | __b;
4820 }
4821 
vec_or(vector short __a,vector short __b)4822 static vector short __ATTRS_o_ai vec_or(vector short __a, vector short __b) {
4823   return __a | __b;
4824 }
4825 
vec_or(vector bool short __a,vector short __b)4826 static vector short __ATTRS_o_ai vec_or(vector bool short __a,
4827                                         vector short __b) {
4828   return (vector short)__a | __b;
4829 }
4830 
vec_or(vector short __a,vector bool short __b)4831 static vector short __ATTRS_o_ai vec_or(vector short __a,
4832                                         vector bool short __b) {
4833   return __a | (vector short)__b;
4834 }
4835 
vec_or(vector unsigned short __a,vector unsigned short __b)4836 static vector unsigned short __ATTRS_o_ai vec_or(vector unsigned short __a,
4837                                                  vector unsigned short __b) {
4838   return __a | __b;
4839 }
4840 
vec_or(vector bool short __a,vector unsigned short __b)4841 static vector unsigned short __ATTRS_o_ai vec_or(vector bool short __a,
4842                                                  vector unsigned short __b) {
4843   return (vector unsigned short)__a | __b;
4844 }
4845 
vec_or(vector unsigned short __a,vector bool short __b)4846 static vector unsigned short __ATTRS_o_ai vec_or(vector unsigned short __a,
4847                                                  vector bool short __b) {
4848   return __a | (vector unsigned short)__b;
4849 }
4850 
vec_or(vector bool short __a,vector bool short __b)4851 static vector bool short __ATTRS_o_ai vec_or(vector bool short __a,
4852                                              vector bool short __b) {
4853   return __a | __b;
4854 }
4855 
vec_or(vector int __a,vector int __b)4856 static vector int __ATTRS_o_ai vec_or(vector int __a, vector int __b) {
4857   return __a | __b;
4858 }
4859 
vec_or(vector bool int __a,vector int __b)4860 static vector int __ATTRS_o_ai vec_or(vector bool int __a, vector int __b) {
4861   return (vector int)__a | __b;
4862 }
4863 
vec_or(vector int __a,vector bool int __b)4864 static vector int __ATTRS_o_ai vec_or(vector int __a, vector bool int __b) {
4865   return __a | (vector int)__b;
4866 }
4867 
vec_or(vector unsigned int __a,vector unsigned int __b)4868 static vector unsigned int __ATTRS_o_ai vec_or(vector unsigned int __a,
4869                                                vector unsigned int __b) {
4870   return __a | __b;
4871 }
4872 
vec_or(vector bool int __a,vector unsigned int __b)4873 static vector unsigned int __ATTRS_o_ai vec_or(vector bool int __a,
4874                                                vector unsigned int __b) {
4875   return (vector unsigned int)__a | __b;
4876 }
4877 
vec_or(vector unsigned int __a,vector bool int __b)4878 static vector unsigned int __ATTRS_o_ai vec_or(vector unsigned int __a,
4879                                                vector bool int __b) {
4880   return __a | (vector unsigned int)__b;
4881 }
4882 
vec_or(vector bool int __a,vector bool int __b)4883 static vector bool int __ATTRS_o_ai vec_or(vector bool int __a,
4884                                            vector bool int __b) {
4885   return __a | __b;
4886 }
4887 
vec_or(vector float __a,vector float __b)4888 static vector float __ATTRS_o_ai vec_or(vector float __a, vector float __b) {
4889   vector unsigned int __res =
4890       (vector unsigned int)__a | (vector unsigned int)__b;
4891   return (vector float)__res;
4892 }
4893 
vec_or(vector bool int __a,vector float __b)4894 static vector float __ATTRS_o_ai vec_or(vector bool int __a, vector float __b) {
4895   vector unsigned int __res =
4896       (vector unsigned int)__a | (vector unsigned int)__b;
4897   return (vector float)__res;
4898 }
4899 
vec_or(vector float __a,vector bool int __b)4900 static vector float __ATTRS_o_ai vec_or(vector float __a, vector bool int __b) {
4901   vector unsigned int __res =
4902       (vector unsigned int)__a | (vector unsigned int)__b;
4903   return (vector float)__res;
4904 }
4905 
4906 #ifdef __VSX__
vec_or(vector bool long long __a,vector double __b)4907 static vector double __ATTRS_o_ai vec_or(vector bool long long __a,
4908                                          vector double __b) {
4909   return (vector unsigned long long)__a | (vector unsigned long long)__b;
4910 }
4911 
vec_or(vector double __a,vector bool long long __b)4912 static vector double __ATTRS_o_ai vec_or(vector double __a,
4913                                          vector bool long long __b) {
4914   return (vector unsigned long long)__a | (vector unsigned long long)__b;
4915 }
4916 
vec_or(vector double __a,vector double __b)4917 static vector double __ATTRS_o_ai vec_or(vector double __a, vector double __b) {
4918   vector unsigned long long __res =
4919       (vector unsigned long long)__a | (vector unsigned long long)__b;
4920   return (vector double)__res;
4921 }
4922 
4923 static vector signed long long __ATTRS_o_ai
vec_or(vector signed long long __a,vector signed long long __b)4924 vec_or(vector signed long long __a, vector signed long long __b) {
4925   return __a | __b;
4926 }
4927 
4928 static vector signed long long __ATTRS_o_ai
vec_or(vector bool long long __a,vector signed long long __b)4929 vec_or(vector bool long long __a, vector signed long long __b) {
4930   return (vector signed long long)__a | __b;
4931 }
4932 
vec_or(vector signed long long __a,vector bool long long __b)4933 static vector signed long long __ATTRS_o_ai vec_or(vector signed long long __a,
4934                                                    vector bool long long __b) {
4935   return __a | (vector signed long long)__b;
4936 }
4937 
4938 static vector unsigned long long __ATTRS_o_ai
vec_or(vector unsigned long long __a,vector unsigned long long __b)4939 vec_or(vector unsigned long long __a, vector unsigned long long __b) {
4940   return __a | __b;
4941 }
4942 
4943 static vector unsigned long long __ATTRS_o_ai
vec_or(vector bool long long __a,vector unsigned long long __b)4944 vec_or(vector bool long long __a, vector unsigned long long __b) {
4945   return (vector unsigned long long)__a | __b;
4946 }
4947 
4948 static vector unsigned long long __ATTRS_o_ai
vec_or(vector unsigned long long __a,vector bool long long __b)4949 vec_or(vector unsigned long long __a, vector bool long long __b) {
4950   return __a | (vector unsigned long long)__b;
4951 }
4952 
vec_or(vector bool long long __a,vector bool long long __b)4953 static vector bool long long __ATTRS_o_ai vec_or(vector bool long long __a,
4954                                                  vector bool long long __b) {
4955   return __a | __b;
4956 }
4957 #endif
4958 
4959 #ifdef __POWER8_VECTOR__
vec_orc(vector signed char __a,vector signed char __b)4960 static vector signed char __ATTRS_o_ai vec_orc(vector signed char __a,
4961                                                vector signed char __b) {
4962   return __a | ~__b;
4963 }
4964 
vec_orc(vector signed char __a,vector bool char __b)4965 static vector signed char __ATTRS_o_ai vec_orc(vector signed char __a,
4966                                                vector bool char __b) {
4967   return __a | ~__b;
4968 }
4969 
vec_orc(vector bool char __a,vector signed char __b)4970 static vector signed char __ATTRS_o_ai vec_orc(vector bool char __a,
4971                                                vector signed char __b) {
4972   return __a | ~__b;
4973 }
4974 
vec_orc(vector unsigned char __a,vector unsigned char __b)4975 static vector unsigned char __ATTRS_o_ai vec_orc(vector unsigned char __a,
4976                                                  vector unsigned char __b) {
4977   return __a | ~__b;
4978 }
4979 
vec_orc(vector unsigned char __a,vector bool char __b)4980 static vector unsigned char __ATTRS_o_ai vec_orc(vector unsigned char __a,
4981                                                  vector bool char __b) {
4982   return __a | ~__b;
4983 }
4984 
vec_orc(vector bool char __a,vector unsigned char __b)4985 static vector unsigned char __ATTRS_o_ai vec_orc(vector bool char __a,
4986                                                  vector unsigned char __b) {
4987   return __a | ~__b;
4988 }
4989 
vec_orc(vector bool char __a,vector bool char __b)4990 static vector bool char __ATTRS_o_ai vec_orc(vector bool char __a,
4991                                              vector bool char __b) {
4992   return __a | ~__b;
4993 }
4994 
vec_orc(vector signed short __a,vector signed short __b)4995 static vector signed short __ATTRS_o_ai vec_orc(vector signed short __a,
4996                                                 vector signed short __b) {
4997   return __a | ~__b;
4998 }
4999 
vec_orc(vector signed short __a,vector bool short __b)5000 static vector signed short __ATTRS_o_ai vec_orc(vector signed short __a,
5001                                                 vector bool short __b) {
5002   return __a | ~__b;
5003 }
5004 
vec_orc(vector bool short __a,vector signed short __b)5005 static vector signed short __ATTRS_o_ai vec_orc(vector bool short __a,
5006                                                 vector signed short __b) {
5007   return __a | ~__b;
5008 }
5009 
vec_orc(vector unsigned short __a,vector unsigned short __b)5010 static vector unsigned short __ATTRS_o_ai vec_orc(vector unsigned short __a,
5011                                                   vector unsigned short __b) {
5012   return __a | ~__b;
5013 }
5014 
vec_orc(vector unsigned short __a,vector bool short __b)5015 static vector unsigned short __ATTRS_o_ai vec_orc(vector unsigned short __a,
5016                                                   vector bool short __b) {
5017   return __a | ~__b;
5018 }
5019 
5020 static vector unsigned short __ATTRS_o_ai
vec_orc(vector bool short __a,vector unsigned short __b)5021 vec_orc(vector bool short __a, vector unsigned short __b) {
5022   return __a | ~__b;
5023 }
5024 
vec_orc(vector bool short __a,vector bool short __b)5025 static vector bool short __ATTRS_o_ai vec_orc(vector bool short __a,
5026                                               vector bool short __b) {
5027   return __a | ~__b;
5028 }
5029 
vec_orc(vector signed int __a,vector signed int __b)5030 static vector signed int __ATTRS_o_ai vec_orc(vector signed int __a,
5031                                               vector signed int __b) {
5032   return __a | ~__b;
5033 }
5034 
vec_orc(vector signed int __a,vector bool int __b)5035 static vector signed int __ATTRS_o_ai vec_orc(vector signed int __a,
5036                                               vector bool int __b) {
5037   return __a | ~__b;
5038 }
5039 
vec_orc(vector bool int __a,vector signed int __b)5040 static vector signed int __ATTRS_o_ai vec_orc(vector bool int __a,
5041                                               vector signed int __b) {
5042   return __a | ~__b;
5043 }
5044 
vec_orc(vector unsigned int __a,vector unsigned int __b)5045 static vector unsigned int __ATTRS_o_ai vec_orc(vector unsigned int __a,
5046                                                 vector unsigned int __b) {
5047   return __a | ~__b;
5048 }
5049 
vec_orc(vector unsigned int __a,vector bool int __b)5050 static vector unsigned int __ATTRS_o_ai vec_orc(vector unsigned int __a,
5051                                                 vector bool int __b) {
5052   return __a | ~__b;
5053 }
5054 
vec_orc(vector bool int __a,vector unsigned int __b)5055 static vector unsigned int __ATTRS_o_ai vec_orc(vector bool int __a,
5056                                                 vector unsigned int __b) {
5057   return __a | ~__b;
5058 }
5059 
vec_orc(vector bool int __a,vector bool int __b)5060 static vector bool int __ATTRS_o_ai vec_orc(vector bool int __a,
5061                                             vector bool int __b) {
5062   return __a | ~__b;
5063 }
5064 
5065 static vector signed long long __ATTRS_o_ai
vec_orc(vector signed long long __a,vector signed long long __b)5066 vec_orc(vector signed long long __a, vector signed long long __b) {
5067   return __a | ~__b;
5068 }
5069 
vec_orc(vector signed long long __a,vector bool long long __b)5070 static vector signed long long __ATTRS_o_ai vec_orc(vector signed long long __a,
5071                                                     vector bool long long __b) {
5072   return __a | ~__b;
5073 }
5074 
5075 static vector signed long long __ATTRS_o_ai
vec_orc(vector bool long long __a,vector signed long long __b)5076 vec_orc(vector bool long long __a, vector signed long long __b) {
5077   return __a | ~__b;
5078 }
5079 
5080 static vector unsigned long long __ATTRS_o_ai
vec_orc(vector unsigned long long __a,vector unsigned long long __b)5081 vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
5082   return __a | ~__b;
5083 }
5084 
5085 static vector unsigned long long __ATTRS_o_ai
vec_orc(vector unsigned long long __a,vector bool long long __b)5086 vec_orc(vector unsigned long long __a, vector bool long long __b) {
5087   return __a | ~__b;
5088 }
5089 
5090 static vector unsigned long long __ATTRS_o_ai
vec_orc(vector bool long long __a,vector unsigned long long __b)5091 vec_orc(vector bool long long __a, vector unsigned long long __b) {
5092   return __a | ~__b;
5093 }
5094 
5095 static vector bool long long __ATTRS_o_ai
vec_orc(vector bool long long __a,vector bool long long __b)5096 vec_orc(vector bool long long __a, vector bool long long __b) {
5097   return __a | ~__b;
5098 }
5099 #endif
5100 
5101 /* vec_vor */
5102 
vec_vor(vector signed char __a,vector signed char __b)5103 static vector signed char __ATTRS_o_ai vec_vor(vector signed char __a,
5104                                                vector signed char __b) {
5105   return __a | __b;
5106 }
5107 
vec_vor(vector bool char __a,vector signed char __b)5108 static vector signed char __ATTRS_o_ai vec_vor(vector bool char __a,
5109                                                vector signed char __b) {
5110   return (vector signed char)__a | __b;
5111 }
5112 
vec_vor(vector signed char __a,vector bool char __b)5113 static vector signed char __ATTRS_o_ai vec_vor(vector signed char __a,
5114                                                vector bool char __b) {
5115   return __a | (vector signed char)__b;
5116 }
5117 
vec_vor(vector unsigned char __a,vector unsigned char __b)5118 static vector unsigned char __ATTRS_o_ai vec_vor(vector unsigned char __a,
5119                                                  vector unsigned char __b) {
5120   return __a | __b;
5121 }
5122 
vec_vor(vector bool char __a,vector unsigned char __b)5123 static vector unsigned char __ATTRS_o_ai vec_vor(vector bool char __a,
5124                                                  vector unsigned char __b) {
5125   return (vector unsigned char)__a | __b;
5126 }
5127 
vec_vor(vector unsigned char __a,vector bool char __b)5128 static vector unsigned char __ATTRS_o_ai vec_vor(vector unsigned char __a,
5129                                                  vector bool char __b) {
5130   return __a | (vector unsigned char)__b;
5131 }
5132 
vec_vor(vector bool char __a,vector bool char __b)5133 static vector bool char __ATTRS_o_ai vec_vor(vector bool char __a,
5134                                              vector bool char __b) {
5135   return __a | __b;
5136 }
5137 
vec_vor(vector short __a,vector short __b)5138 static vector short __ATTRS_o_ai vec_vor(vector short __a, vector short __b) {
5139   return __a | __b;
5140 }
5141 
vec_vor(vector bool short __a,vector short __b)5142 static vector short __ATTRS_o_ai vec_vor(vector bool short __a,
5143                                          vector short __b) {
5144   return (vector short)__a | __b;
5145 }
5146 
vec_vor(vector short __a,vector bool short __b)5147 static vector short __ATTRS_o_ai vec_vor(vector short __a,
5148                                          vector bool short __b) {
5149   return __a | (vector short)__b;
5150 }
5151 
vec_vor(vector unsigned short __a,vector unsigned short __b)5152 static vector unsigned short __ATTRS_o_ai vec_vor(vector unsigned short __a,
5153                                                   vector unsigned short __b) {
5154   return __a | __b;
5155 }
5156 
vec_vor(vector bool short __a,vector unsigned short __b)5157 static vector unsigned short __ATTRS_o_ai vec_vor(vector bool short __a,
5158                                                   vector unsigned short __b) {
5159   return (vector unsigned short)__a | __b;
5160 }
5161 
vec_vor(vector unsigned short __a,vector bool short __b)5162 static vector unsigned short __ATTRS_o_ai vec_vor(vector unsigned short __a,
5163                                                   vector bool short __b) {
5164   return __a | (vector unsigned short)__b;
5165 }
5166 
vec_vor(vector bool short __a,vector bool short __b)5167 static vector bool short __ATTRS_o_ai vec_vor(vector bool short __a,
5168                                               vector bool short __b) {
5169   return __a | __b;
5170 }
5171 
vec_vor(vector int __a,vector int __b)5172 static vector int __ATTRS_o_ai vec_vor(vector int __a, vector int __b) {
5173   return __a | __b;
5174 }
5175 
vec_vor(vector bool int __a,vector int __b)5176 static vector int __ATTRS_o_ai vec_vor(vector bool int __a, vector int __b) {
5177   return (vector int)__a | __b;
5178 }
5179 
vec_vor(vector int __a,vector bool int __b)5180 static vector int __ATTRS_o_ai vec_vor(vector int __a, vector bool int __b) {
5181   return __a | (vector int)__b;
5182 }
5183 
vec_vor(vector unsigned int __a,vector unsigned int __b)5184 static vector unsigned int __ATTRS_o_ai vec_vor(vector unsigned int __a,
5185                                                 vector unsigned int __b) {
5186   return __a | __b;
5187 }
5188 
vec_vor(vector bool int __a,vector unsigned int __b)5189 static vector unsigned int __ATTRS_o_ai vec_vor(vector bool int __a,
5190                                                 vector unsigned int __b) {
5191   return (vector unsigned int)__a | __b;
5192 }
5193 
vec_vor(vector unsigned int __a,vector bool int __b)5194 static vector unsigned int __ATTRS_o_ai vec_vor(vector unsigned int __a,
5195                                                 vector bool int __b) {
5196   return __a | (vector unsigned int)__b;
5197 }
5198 
vec_vor(vector bool int __a,vector bool int __b)5199 static vector bool int __ATTRS_o_ai vec_vor(vector bool int __a,
5200                                             vector bool int __b) {
5201   return __a | __b;
5202 }
5203 
vec_vor(vector float __a,vector float __b)5204 static vector float __ATTRS_o_ai vec_vor(vector float __a, vector float __b) {
5205   vector unsigned int __res =
5206       (vector unsigned int)__a | (vector unsigned int)__b;
5207   return (vector float)__res;
5208 }
5209 
vec_vor(vector bool int __a,vector float __b)5210 static vector float __ATTRS_o_ai vec_vor(vector bool int __a,
5211                                          vector float __b) {
5212   vector unsigned int __res =
5213       (vector unsigned int)__a | (vector unsigned int)__b;
5214   return (vector float)__res;
5215 }
5216 
vec_vor(vector float __a,vector bool int __b)5217 static vector float __ATTRS_o_ai vec_vor(vector float __a,
5218                                          vector bool int __b) {
5219   vector unsigned int __res =
5220       (vector unsigned int)__a | (vector unsigned int)__b;
5221   return (vector float)__res;
5222 }
5223 
5224 #ifdef __VSX__
5225 static vector signed long long __ATTRS_o_ai
vec_vor(vector signed long long __a,vector signed long long __b)5226 vec_vor(vector signed long long __a, vector signed long long __b) {
5227   return __a | __b;
5228 }
5229 
5230 static vector signed long long __ATTRS_o_ai
vec_vor(vector bool long long __a,vector signed long long __b)5231 vec_vor(vector bool long long __a, vector signed long long __b) {
5232   return (vector signed long long)__a | __b;
5233 }
5234 
vec_vor(vector signed long long __a,vector bool long long __b)5235 static vector signed long long __ATTRS_o_ai vec_vor(vector signed long long __a,
5236                                                     vector bool long long __b) {
5237   return __a | (vector signed long long)__b;
5238 }
5239 
5240 static vector unsigned long long __ATTRS_o_ai
vec_vor(vector unsigned long long __a,vector unsigned long long __b)5241 vec_vor(vector unsigned long long __a, vector unsigned long long __b) {
5242   return __a | __b;
5243 }
5244 
5245 static vector unsigned long long __ATTRS_o_ai
vec_vor(vector bool long long __a,vector unsigned long long __b)5246 vec_vor(vector bool long long __a, vector unsigned long long __b) {
5247   return (vector unsigned long long)__a | __b;
5248 }
5249 
5250 static vector unsigned long long __ATTRS_o_ai
vec_vor(vector unsigned long long __a,vector bool long long __b)5251 vec_vor(vector unsigned long long __a, vector bool long long __b) {
5252   return __a | (vector unsigned long long)__b;
5253 }
5254 
vec_vor(vector bool long long __a,vector bool long long __b)5255 static vector bool long long __ATTRS_o_ai vec_vor(vector bool long long __a,
5256                                                   vector bool long long __b) {
5257   return __a | __b;
5258 }
5259 #endif
5260 
5261 /* vec_pack */
5262 
5263 /* The various vector pack instructions have a big-endian bias, so for
5264    little endian we must handle reversed element numbering.  */
5265 
vec_pack(vector signed short __a,vector signed short __b)5266 static vector signed char __ATTRS_o_ai vec_pack(vector signed short __a,
5267                                                 vector signed short __b) {
5268 #ifdef __LITTLE_ENDIAN__
5269   return (vector signed char)vec_perm(
5270       __a, __b,
5271       (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
5272                              0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
5273 #else
5274   return (vector signed char)vec_perm(
5275       __a, __b,
5276       (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
5277                              0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
5278 #endif
5279 }
5280 
vec_pack(vector unsigned short __a,vector unsigned short __b)5281 static vector unsigned char __ATTRS_o_ai vec_pack(vector unsigned short __a,
5282                                                   vector unsigned short __b) {
5283 #ifdef __LITTLE_ENDIAN__
5284   return (vector unsigned char)vec_perm(
5285       __a, __b,
5286       (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
5287                              0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
5288 #else
5289   return (vector unsigned char)vec_perm(
5290       __a, __b,
5291       (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
5292                              0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
5293 #endif
5294 }
5295 
vec_pack(vector bool short __a,vector bool short __b)5296 static vector bool char __ATTRS_o_ai vec_pack(vector bool short __a,
5297                                               vector bool short __b) {
5298 #ifdef __LITTLE_ENDIAN__
5299   return (vector bool char)vec_perm(
5300       __a, __b,
5301       (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
5302                              0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
5303 #else
5304   return (vector bool char)vec_perm(
5305       __a, __b,
5306       (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
5307                              0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
5308 #endif
5309 }
5310 
vec_pack(vector int __a,vector int __b)5311 static vector short __ATTRS_o_ai vec_pack(vector int __a, vector int __b) {
5312 #ifdef __LITTLE_ENDIAN__
5313   return (vector short)vec_perm(
5314       __a, __b,
5315       (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
5316                              0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
5317 #else
5318   return (vector short)vec_perm(
5319       __a, __b,
5320       (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
5321                              0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
5322 #endif
5323 }
5324 
vec_pack(vector unsigned int __a,vector unsigned int __b)5325 static vector unsigned short __ATTRS_o_ai vec_pack(vector unsigned int __a,
5326                                                    vector unsigned int __b) {
5327 #ifdef __LITTLE_ENDIAN__
5328   return (vector unsigned short)vec_perm(
5329       __a, __b,
5330       (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
5331                              0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
5332 #else
5333   return (vector unsigned short)vec_perm(
5334       __a, __b,
5335       (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
5336                              0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
5337 #endif
5338 }
5339 
vec_pack(vector bool int __a,vector bool int __b)5340 static vector bool short __ATTRS_o_ai vec_pack(vector bool int __a,
5341                                                vector bool int __b) {
5342 #ifdef __LITTLE_ENDIAN__
5343   return (vector bool short)vec_perm(
5344       __a, __b,
5345       (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
5346                              0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
5347 #else
5348   return (vector bool short)vec_perm(
5349       __a, __b,
5350       (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
5351                              0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
5352 #endif
5353 }
5354 
5355 #ifdef __VSX__
vec_pack(vector signed long long __a,vector signed long long __b)5356 static vector signed int __ATTRS_o_ai vec_pack(vector signed long long __a,
5357                                                vector signed long long __b) {
5358 #ifdef __LITTLE_ENDIAN__
5359   return (vector signed int)vec_perm(
5360       __a, __b,
5361       (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
5362                              0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
5363 #else
5364   return (vector signed int)vec_perm(
5365       __a, __b,
5366       (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
5367                              0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
5368 #endif
5369 }
5370 static vector unsigned int __ATTRS_o_ai
vec_pack(vector unsigned long long __a,vector unsigned long long __b)5371 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
5372 #ifdef __LITTLE_ENDIAN__
5373   return (vector unsigned int)vec_perm(
5374       __a, __b,
5375       (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
5376                              0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
5377 #else
5378   return (vector unsigned int)vec_perm(
5379       __a, __b,
5380       (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
5381                              0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
5382 #endif
5383 }
5384 
vec_pack(vector bool long long __a,vector bool long long __b)5385 static vector bool int __ATTRS_o_ai vec_pack(vector bool long long __a,
5386                                              vector bool long long __b) {
5387 #ifdef __LITTLE_ENDIAN__
5388   return (vector bool int)vec_perm(
5389       __a, __b,
5390       (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
5391                              0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
5392 #else
5393   return (vector bool int)vec_perm(
5394       __a, __b,
5395       (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
5396                              0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
5397 #endif
5398 }
5399 
5400 #endif
5401 
5402 /* vec_vpkuhum */
5403 
5404 #define __builtin_altivec_vpkuhum vec_vpkuhum
5405 
vec_vpkuhum(vector signed short __a,vector signed short __b)5406 static vector signed char __ATTRS_o_ai vec_vpkuhum(vector signed short __a,
5407                                                    vector signed short __b) {
5408 #ifdef __LITTLE_ENDIAN__
5409   return (vector signed char)vec_perm(
5410       __a, __b,
5411       (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
5412                              0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
5413 #else
5414   return (vector signed char)vec_perm(
5415       __a, __b,
5416       (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
5417                              0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
5418 #endif
5419 }
5420 
5421 static vector unsigned char __ATTRS_o_ai
vec_vpkuhum(vector unsigned short __a,vector unsigned short __b)5422 vec_vpkuhum(vector unsigned short __a, vector unsigned short __b) {
5423 #ifdef __LITTLE_ENDIAN__
5424   return (vector unsigned char)vec_perm(
5425       __a, __b,
5426       (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
5427                              0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
5428 #else
5429   return (vector unsigned char)vec_perm(
5430       __a, __b,
5431       (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
5432                              0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
5433 #endif
5434 }
5435 
vec_vpkuhum(vector bool short __a,vector bool short __b)5436 static vector bool char __ATTRS_o_ai vec_vpkuhum(vector bool short __a,
5437                                                  vector bool short __b) {
5438 #ifdef __LITTLE_ENDIAN__
5439   return (vector bool char)vec_perm(
5440       __a, __b,
5441       (vector unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
5442                              0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
5443 #else
5444   return (vector bool char)vec_perm(
5445       __a, __b,
5446       (vector unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
5447                              0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
5448 #endif
5449 }
5450 
5451 /* vec_vpkuwum */
5452 
5453 #define __builtin_altivec_vpkuwum vec_vpkuwum
5454 
vec_vpkuwum(vector int __a,vector int __b)5455 static vector short __ATTRS_o_ai vec_vpkuwum(vector int __a, vector int __b) {
5456 #ifdef __LITTLE_ENDIAN__
5457   return (vector short)vec_perm(
5458       __a, __b,
5459       (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
5460                              0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
5461 #else
5462   return (vector short)vec_perm(
5463       __a, __b,
5464       (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
5465                              0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
5466 #endif
5467 }
5468 
vec_vpkuwum(vector unsigned int __a,vector unsigned int __b)5469 static vector unsigned short __ATTRS_o_ai vec_vpkuwum(vector unsigned int __a,
5470                                                       vector unsigned int __b) {
5471 #ifdef __LITTLE_ENDIAN__
5472   return (vector unsigned short)vec_perm(
5473       __a, __b,
5474       (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
5475                              0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
5476 #else
5477   return (vector unsigned short)vec_perm(
5478       __a, __b,
5479       (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
5480                              0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
5481 #endif
5482 }
5483 
vec_vpkuwum(vector bool int __a,vector bool int __b)5484 static vector bool short __ATTRS_o_ai vec_vpkuwum(vector bool int __a,
5485                                                   vector bool int __b) {
5486 #ifdef __LITTLE_ENDIAN__
5487   return (vector bool short)vec_perm(
5488       __a, __b,
5489       (vector unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
5490                              0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
5491 #else
5492   return (vector bool short)vec_perm(
5493       __a, __b,
5494       (vector unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
5495                              0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
5496 #endif
5497 }
5498 
5499 /* vec_vpkudum */
5500 
5501 #ifdef __POWER8_VECTOR__
5502 #define __builtin_altivec_vpkudum vec_vpkudum
5503 
vec_vpkudum(vector long long __a,vector long long __b)5504 static vector int __ATTRS_o_ai vec_vpkudum(vector long long __a,
5505                                            vector long long __b) {
5506 #ifdef __LITTLE_ENDIAN__
5507   return (vector int)vec_perm(
5508       __a, __b,
5509       (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
5510                              0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
5511 #else
5512   return (vector int)vec_perm(
5513       __a, __b,
5514       (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
5515                              0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
5516 #endif
5517 }
5518 
5519 static vector unsigned int __ATTRS_o_ai
vec_vpkudum(vector unsigned long long __a,vector unsigned long long __b)5520 vec_vpkudum(vector unsigned long long __a, vector unsigned long long __b) {
5521 #ifdef __LITTLE_ENDIAN__
5522   return (vector unsigned int)vec_perm(
5523       __a, __b,
5524       (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
5525                              0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
5526 #else
5527   return (vector unsigned int)vec_perm(
5528       __a, __b,
5529       (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
5530                              0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
5531 #endif
5532 }
5533 
vec_vpkudum(vector bool long long __a,vector bool long long __b)5534 static vector bool int __ATTRS_o_ai vec_vpkudum(vector bool long long __a,
5535                                                 vector bool long long __b) {
5536 #ifdef __LITTLE_ENDIAN__
5537   return (vector bool int)vec_perm(
5538       (vector long long)__a, (vector long long)__b,
5539       (vector unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
5540                              0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
5541 #else
5542   return (vector bool int)vec_perm(
5543       (vector long long)__a, (vector long long)__b,
5544       (vector unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
5545                              0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
5546 #endif
5547 }
5548 #endif
5549 
5550 /* vec_packpx */
5551 
5552 static vector pixel __attribute__((__always_inline__))
vec_packpx(vector unsigned int __a,vector unsigned int __b)5553 vec_packpx(vector unsigned int __a, vector unsigned int __b) {
5554 #ifdef __LITTLE_ENDIAN__
5555   return (vector pixel)__builtin_altivec_vpkpx(__b, __a);
5556 #else
5557   return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
5558 #endif
5559 }
5560 
5561 /* vec_vpkpx */
5562 
5563 static vector pixel __attribute__((__always_inline__))
vec_vpkpx(vector unsigned int __a,vector unsigned int __b)5564 vec_vpkpx(vector unsigned int __a, vector unsigned int __b) {
5565 #ifdef __LITTLE_ENDIAN__
5566   return (vector pixel)__builtin_altivec_vpkpx(__b, __a);
5567 #else
5568   return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
5569 #endif
5570 }
5571 
5572 /* vec_packs */
5573 
vec_packs(vector short __a,vector short __b)5574 static vector signed char __ATTRS_o_ai vec_packs(vector short __a,
5575                                                  vector short __b) {
5576 #ifdef __LITTLE_ENDIAN__
5577   return __builtin_altivec_vpkshss(__b, __a);
5578 #else
5579   return __builtin_altivec_vpkshss(__a, __b);
5580 #endif
5581 }
5582 
vec_packs(vector unsigned short __a,vector unsigned short __b)5583 static vector unsigned char __ATTRS_o_ai vec_packs(vector unsigned short __a,
5584                                                    vector unsigned short __b) {
5585 #ifdef __LITTLE_ENDIAN__
5586   return __builtin_altivec_vpkuhus(__b, __a);
5587 #else
5588   return __builtin_altivec_vpkuhus(__a, __b);
5589 #endif
5590 }
5591 
vec_packs(vector int __a,vector int __b)5592 static vector signed short __ATTRS_o_ai vec_packs(vector int __a,
5593                                                   vector int __b) {
5594 #ifdef __LITTLE_ENDIAN__
5595   return __builtin_altivec_vpkswss(__b, __a);
5596 #else
5597   return __builtin_altivec_vpkswss(__a, __b);
5598 #endif
5599 }
5600 
vec_packs(vector unsigned int __a,vector unsigned int __b)5601 static vector unsigned short __ATTRS_o_ai vec_packs(vector unsigned int __a,
5602                                                     vector unsigned int __b) {
5603 #ifdef __LITTLE_ENDIAN__
5604   return __builtin_altivec_vpkuwus(__b, __a);
5605 #else
5606   return __builtin_altivec_vpkuwus(__a, __b);
5607 #endif
5608 }
5609 
5610 #ifdef __POWER8_VECTOR__
vec_packs(vector long long __a,vector long long __b)5611 static vector int __ATTRS_o_ai vec_packs(vector long long __a,
5612                                          vector long long __b) {
5613 #ifdef __LITTLE_ENDIAN__
5614   return __builtin_altivec_vpksdss(__b, __a);
5615 #else
5616   return __builtin_altivec_vpksdss(__a, __b);
5617 #endif
5618 }
5619 
5620 static vector unsigned int __ATTRS_o_ai
vec_packs(vector unsigned long long __a,vector unsigned long long __b)5621 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
5622 #ifdef __LITTLE_ENDIAN__
5623   return __builtin_altivec_vpkudus(__b, __a);
5624 #else
5625   return __builtin_altivec_vpkudus(__a, __b);
5626 #endif
5627 }
5628 #endif
5629 
5630 /* vec_vpkshss */
5631 
5632 static vector signed char __attribute__((__always_inline__))
vec_vpkshss(vector short __a,vector short __b)5633 vec_vpkshss(vector short __a, vector short __b) {
5634 #ifdef __LITTLE_ENDIAN__
5635   return __builtin_altivec_vpkshss(__b, __a);
5636 #else
5637   return __builtin_altivec_vpkshss(__a, __b);
5638 #endif
5639 }
5640 
5641 /* vec_vpksdss */
5642 
5643 #ifdef __POWER8_VECTOR__
vec_vpksdss(vector long long __a,vector long long __b)5644 static vector int __ATTRS_o_ai vec_vpksdss(vector long long __a,
5645                                            vector long long __b) {
5646 #ifdef __LITTLE_ENDIAN__
5647   return __builtin_altivec_vpksdss(__b, __a);
5648 #else
5649   return __builtin_altivec_vpksdss(__a, __b);
5650 #endif
5651 }
5652 #endif
5653 
5654 /* vec_vpkuhus */
5655 
5656 static vector unsigned char __attribute__((__always_inline__))
vec_vpkuhus(vector unsigned short __a,vector unsigned short __b)5657 vec_vpkuhus(vector unsigned short __a, vector unsigned short __b) {
5658 #ifdef __LITTLE_ENDIAN__
5659   return __builtin_altivec_vpkuhus(__b, __a);
5660 #else
5661   return __builtin_altivec_vpkuhus(__a, __b);
5662 #endif
5663 }
5664 
5665 /* vec_vpkudus */
5666 
5667 #ifdef __POWER8_VECTOR__
5668 static vector unsigned int __attribute__((__always_inline__))
vec_vpkudus(vector unsigned long long __a,vector unsigned long long __b)5669 vec_vpkudus(vector unsigned long long __a, vector unsigned long long __b) {
5670 #ifdef __LITTLE_ENDIAN__
5671   return __builtin_altivec_vpkudus(__b, __a);
5672 #else
5673   return __builtin_altivec_vpkudus(__a, __b);
5674 #endif
5675 }
5676 #endif
5677 
5678 /* vec_vpkswss */
5679 
5680 static vector signed short __attribute__((__always_inline__))
vec_vpkswss(vector int __a,vector int __b)5681 vec_vpkswss(vector int __a, vector int __b) {
5682 #ifdef __LITTLE_ENDIAN__
5683   return __builtin_altivec_vpkswss(__b, __a);
5684 #else
5685   return __builtin_altivec_vpkswss(__a, __b);
5686 #endif
5687 }
5688 
5689 /* vec_vpkuwus */
5690 
5691 static vector unsigned short __attribute__((__always_inline__))
vec_vpkuwus(vector unsigned int __a,vector unsigned int __b)5692 vec_vpkuwus(vector unsigned int __a, vector unsigned int __b) {
5693 #ifdef __LITTLE_ENDIAN__
5694   return __builtin_altivec_vpkuwus(__b, __a);
5695 #else
5696   return __builtin_altivec_vpkuwus(__a, __b);
5697 #endif
5698 }
5699 
5700 /* vec_packsu */
5701 
vec_packsu(vector short __a,vector short __b)5702 static vector unsigned char __ATTRS_o_ai vec_packsu(vector short __a,
5703                                                     vector short __b) {
5704 #ifdef __LITTLE_ENDIAN__
5705   return __builtin_altivec_vpkshus(__b, __a);
5706 #else
5707   return __builtin_altivec_vpkshus(__a, __b);
5708 #endif
5709 }
5710 
vec_packsu(vector unsigned short __a,vector unsigned short __b)5711 static vector unsigned char __ATTRS_o_ai vec_packsu(vector unsigned short __a,
5712                                                     vector unsigned short __b) {
5713 #ifdef __LITTLE_ENDIAN__
5714   return __builtin_altivec_vpkuhus(__b, __a);
5715 #else
5716   return __builtin_altivec_vpkuhus(__a, __b);
5717 #endif
5718 }
5719 
vec_packsu(vector int __a,vector int __b)5720 static vector unsigned short __ATTRS_o_ai vec_packsu(vector int __a,
5721                                                      vector int __b) {
5722 #ifdef __LITTLE_ENDIAN__
5723   return __builtin_altivec_vpkswus(__b, __a);
5724 #else
5725   return __builtin_altivec_vpkswus(__a, __b);
5726 #endif
5727 }
5728 
vec_packsu(vector unsigned int __a,vector unsigned int __b)5729 static vector unsigned short __ATTRS_o_ai vec_packsu(vector unsigned int __a,
5730                                                      vector unsigned int __b) {
5731 #ifdef __LITTLE_ENDIAN__
5732   return __builtin_altivec_vpkuwus(__b, __a);
5733 #else
5734   return __builtin_altivec_vpkuwus(__a, __b);
5735 #endif
5736 }
5737 
5738 #ifdef __POWER8_VECTOR__
vec_packsu(vector long long __a,vector long long __b)5739 static vector unsigned int __ATTRS_o_ai vec_packsu(vector long long __a,
5740                                                    vector long long __b) {
5741 #ifdef __LITTLE_ENDIAN__
5742   return __builtin_altivec_vpksdus(__b, __a);
5743 #else
5744   return __builtin_altivec_vpksdus(__a, __b);
5745 #endif
5746 }
5747 
5748 static vector unsigned int __ATTRS_o_ai
vec_packsu(vector unsigned long long __a,vector unsigned long long __b)5749 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
5750 #ifdef __LITTLE_ENDIAN__
5751   return __builtin_altivec_vpkudus(__b, __a);
5752 #else
5753   return __builtin_altivec_vpkudus(__a, __b);
5754 #endif
5755 }
5756 #endif
5757 
5758 /* vec_vpkshus */
5759 
vec_vpkshus(vector short __a,vector short __b)5760 static vector unsigned char __ATTRS_o_ai vec_vpkshus(vector short __a,
5761                                                      vector short __b) {
5762 #ifdef __LITTLE_ENDIAN__
5763   return __builtin_altivec_vpkshus(__b, __a);
5764 #else
5765   return __builtin_altivec_vpkshus(__a, __b);
5766 #endif
5767 }
5768 
5769 static vector unsigned char __ATTRS_o_ai
vec_vpkshus(vector unsigned short __a,vector unsigned short __b)5770 vec_vpkshus(vector unsigned short __a, vector unsigned short __b) {
5771 #ifdef __LITTLE_ENDIAN__
5772   return __builtin_altivec_vpkuhus(__b, __a);
5773 #else
5774   return __builtin_altivec_vpkuhus(__a, __b);
5775 #endif
5776 }
5777 
5778 /* vec_vpkswus */
5779 
vec_vpkswus(vector int __a,vector int __b)5780 static vector unsigned short __ATTRS_o_ai vec_vpkswus(vector int __a,
5781                                                       vector int __b) {
5782 #ifdef __LITTLE_ENDIAN__
5783   return __builtin_altivec_vpkswus(__b, __a);
5784 #else
5785   return __builtin_altivec_vpkswus(__a, __b);
5786 #endif
5787 }
5788 
vec_vpkswus(vector unsigned int __a,vector unsigned int __b)5789 static vector unsigned short __ATTRS_o_ai vec_vpkswus(vector unsigned int __a,
5790                                                       vector unsigned int __b) {
5791 #ifdef __LITTLE_ENDIAN__
5792   return __builtin_altivec_vpkuwus(__b, __a);
5793 #else
5794   return __builtin_altivec_vpkuwus(__a, __b);
5795 #endif
5796 }
5797 
5798 /* vec_vpksdus */
5799 
5800 #ifdef __POWER8_VECTOR__
vec_vpksdus(vector long long __a,vector long long __b)5801 static vector unsigned int __ATTRS_o_ai vec_vpksdus(vector long long __a,
5802                                                     vector long long __b) {
5803 #ifdef __LITTLE_ENDIAN__
5804   return __builtin_altivec_vpksdus(__b, __a);
5805 #else
5806   return __builtin_altivec_vpksdus(__a, __b);
5807 #endif
5808 }
5809 #endif
5810 
5811 /* vec_perm */
5812 
5813 // The vperm instruction is defined architecturally with a big-endian bias.
5814 // For little endian, we swap the input operands and invert the permute
5815 // control vector.  Only the rightmost 5 bits matter, so we could use
5816 // a vector of all 31s instead of all 255s to perform the inversion.
5817 // However, when the PCV is not a constant, using 255 has an advantage
5818 // in that the vec_xor can be recognized as a vec_nor (and for P8 and
5819 // later, possibly a vec_nand).
5820 
vec_perm(vector signed char __a,vector signed char __b,vector unsigned char __c)5821 static vector signed char __ATTRS_o_ai vec_perm(vector signed char __a,
5822                                                 vector signed char __b,
5823                                                 vector unsigned char __c) {
5824 #ifdef __LITTLE_ENDIAN__
5825   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5826                               255, 255, 255, 255, 255, 255, 255, 255};
5827   __d = vec_xor(__c, __d);
5828   return (vector signed char)__builtin_altivec_vperm_4si((vector int)__b,
5829                                                          (vector int)__a, __d);
5830 #else
5831   return (vector signed char)__builtin_altivec_vperm_4si((vector int)__a,
5832                                                          (vector int)__b, __c);
5833 #endif
5834 }
5835 
vec_perm(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)5836 static vector unsigned char __ATTRS_o_ai vec_perm(vector unsigned char __a,
5837                                                   vector unsigned char __b,
5838                                                   vector unsigned char __c) {
5839 #ifdef __LITTLE_ENDIAN__
5840   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5841                               255, 255, 255, 255, 255, 255, 255, 255};
5842   __d = vec_xor(__c, __d);
5843   return (vector unsigned char)__builtin_altivec_vperm_4si(
5844       (vector int)__b, (vector int)__a, __d);
5845 #else
5846   return (vector unsigned char)__builtin_altivec_vperm_4si(
5847       (vector int)__a, (vector int)__b, __c);
5848 #endif
5849 }
5850 
vec_perm(vector bool char __a,vector bool char __b,vector unsigned char __c)5851 static vector bool char __ATTRS_o_ai vec_perm(vector bool char __a,
5852                                               vector bool char __b,
5853                                               vector unsigned char __c) {
5854 #ifdef __LITTLE_ENDIAN__
5855   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5856                               255, 255, 255, 255, 255, 255, 255, 255};
5857   __d = vec_xor(__c, __d);
5858   return (vector bool char)__builtin_altivec_vperm_4si((vector int)__b,
5859                                                        (vector int)__a, __d);
5860 #else
5861   return (vector bool char)__builtin_altivec_vperm_4si((vector int)__a,
5862                                                        (vector int)__b, __c);
5863 #endif
5864 }
5865 
vec_perm(vector signed short __a,vector signed short __b,vector unsigned char __c)5866 static vector short __ATTRS_o_ai vec_perm(vector signed short __a,
5867                                           vector signed short __b,
5868                                           vector unsigned char __c) {
5869 #ifdef __LITTLE_ENDIAN__
5870   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5871                               255, 255, 255, 255, 255, 255, 255, 255};
5872   __d = vec_xor(__c, __d);
5873   return (vector signed short)__builtin_altivec_vperm_4si((vector int)__b,
5874                                                           (vector int)__a, __d);
5875 #else
5876   return (vector signed short)__builtin_altivec_vperm_4si((vector int)__a,
5877                                                           (vector int)__b, __c);
5878 #endif
5879 }
5880 
vec_perm(vector unsigned short __a,vector unsigned short __b,vector unsigned char __c)5881 static vector unsigned short __ATTRS_o_ai vec_perm(vector unsigned short __a,
5882                                                    vector unsigned short __b,
5883                                                    vector unsigned char __c) {
5884 #ifdef __LITTLE_ENDIAN__
5885   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5886                               255, 255, 255, 255, 255, 255, 255, 255};
5887   __d = vec_xor(__c, __d);
5888   return (vector unsigned short)__builtin_altivec_vperm_4si(
5889       (vector int)__b, (vector int)__a, __d);
5890 #else
5891   return (vector unsigned short)__builtin_altivec_vperm_4si(
5892       (vector int)__a, (vector int)__b, __c);
5893 #endif
5894 }
5895 
vec_perm(vector bool short __a,vector bool short __b,vector unsigned char __c)5896 static vector bool short __ATTRS_o_ai vec_perm(vector bool short __a,
5897                                                vector bool short __b,
5898                                                vector unsigned char __c) {
5899 #ifdef __LITTLE_ENDIAN__
5900   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5901                               255, 255, 255, 255, 255, 255, 255, 255};
5902   __d = vec_xor(__c, __d);
5903   return (vector bool short)__builtin_altivec_vperm_4si((vector int)__b,
5904                                                         (vector int)__a, __d);
5905 #else
5906   return (vector bool short)__builtin_altivec_vperm_4si((vector int)__a,
5907                                                         (vector int)__b, __c);
5908 #endif
5909 }
5910 
vec_perm(vector pixel __a,vector pixel __b,vector unsigned char __c)5911 static vector pixel __ATTRS_o_ai vec_perm(vector pixel __a, vector pixel __b,
5912                                           vector unsigned char __c) {
5913 #ifdef __LITTLE_ENDIAN__
5914   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5915                               255, 255, 255, 255, 255, 255, 255, 255};
5916   __d = vec_xor(__c, __d);
5917   return (vector pixel)__builtin_altivec_vperm_4si((vector int)__b,
5918                                                    (vector int)__a, __d);
5919 #else
5920   return (vector pixel)__builtin_altivec_vperm_4si((vector int)__a,
5921                                                    (vector int)__b, __c);
5922 #endif
5923 }
5924 
vec_perm(vector signed int __a,vector signed int __b,vector unsigned char __c)5925 static vector int __ATTRS_o_ai vec_perm(vector signed int __a,
5926                                         vector signed int __b,
5927                                         vector unsigned char __c) {
5928 #ifdef __LITTLE_ENDIAN__
5929   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5930                               255, 255, 255, 255, 255, 255, 255, 255};
5931   __d = vec_xor(__c, __d);
5932   return (vector signed int)__builtin_altivec_vperm_4si(__b, __a, __d);
5933 #else
5934   return (vector signed int)__builtin_altivec_vperm_4si(__a, __b, __c);
5935 #endif
5936 }
5937 
vec_perm(vector unsigned int __a,vector unsigned int __b,vector unsigned char __c)5938 static vector unsigned int __ATTRS_o_ai vec_perm(vector unsigned int __a,
5939                                                  vector unsigned int __b,
5940                                                  vector unsigned char __c) {
5941 #ifdef __LITTLE_ENDIAN__
5942   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5943                               255, 255, 255, 255, 255, 255, 255, 255};
5944   __d = vec_xor(__c, __d);
5945   return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)__b,
5946                                                           (vector int)__a, __d);
5947 #else
5948   return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)__a,
5949                                                           (vector int)__b, __c);
5950 #endif
5951 }
5952 
vec_perm(vector bool int __a,vector bool int __b,vector unsigned char __c)5953 static vector bool int __ATTRS_o_ai vec_perm(vector bool int __a,
5954                                              vector bool int __b,
5955                                              vector unsigned char __c) {
5956 #ifdef __LITTLE_ENDIAN__
5957   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5958                               255, 255, 255, 255, 255, 255, 255, 255};
5959   __d = vec_xor(__c, __d);
5960   return (vector bool int)__builtin_altivec_vperm_4si((vector int)__b,
5961                                                       (vector int)__a, __d);
5962 #else
5963   return (vector bool int)__builtin_altivec_vperm_4si((vector int)__a,
5964                                                       (vector int)__b, __c);
5965 #endif
5966 }
5967 
vec_perm(vector float __a,vector float __b,vector unsigned char __c)5968 static vector float __ATTRS_o_ai vec_perm(vector float __a, vector float __b,
5969                                           vector unsigned char __c) {
5970 #ifdef __LITTLE_ENDIAN__
5971   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5972                               255, 255, 255, 255, 255, 255, 255, 255};
5973   __d = vec_xor(__c, __d);
5974   return (vector float)__builtin_altivec_vperm_4si((vector int)__b,
5975                                                    (vector int)__a, __d);
5976 #else
5977   return (vector float)__builtin_altivec_vperm_4si((vector int)__a,
5978                                                    (vector int)__b, __c);
5979 #endif
5980 }
5981 
5982 #ifdef __VSX__
vec_perm(vector signed long long __a,vector signed long long __b,vector unsigned char __c)5983 static vector long long __ATTRS_o_ai vec_perm(vector signed long long __a,
5984                                               vector signed long long __b,
5985                                               vector unsigned char __c) {
5986 #ifdef __LITTLE_ENDIAN__
5987   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
5988                               255, 255, 255, 255, 255, 255, 255, 255};
5989   __d = vec_xor(__c, __d);
5990   return (vector signed long long)__builtin_altivec_vperm_4si(
5991       (vector int)__b, (vector int)__a, __d);
5992 #else
5993   return (vector signed long long)__builtin_altivec_vperm_4si(
5994       (vector int)__a, (vector int)__b, __c);
5995 #endif
5996 }
5997 
5998 static vector unsigned long long __ATTRS_o_ai
vec_perm(vector unsigned long long __a,vector unsigned long long __b,vector unsigned char __c)5999 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
6000          vector unsigned char __c) {
6001 #ifdef __LITTLE_ENDIAN__
6002   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
6003                               255, 255, 255, 255, 255, 255, 255, 255};
6004   __d = vec_xor(__c, __d);
6005   return (vector unsigned long long)__builtin_altivec_vperm_4si(
6006       (vector int)__b, (vector int)__a, __d);
6007 #else
6008   return (vector unsigned long long)__builtin_altivec_vperm_4si(
6009       (vector int)__a, (vector int)__b, __c);
6010 #endif
6011 }
6012 
6013 static vector bool long long __ATTRS_o_ai
vec_perm(vector bool long long __a,vector bool long long __b,vector unsigned char __c)6014 vec_perm(vector bool long long __a, vector bool long long __b,
6015          vector unsigned char __c) {
6016 #ifdef __LITTLE_ENDIAN__
6017   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
6018                               255, 255, 255, 255, 255, 255, 255, 255};
6019   __d = vec_xor(__c, __d);
6020   return (vector bool long long)__builtin_altivec_vperm_4si(
6021       (vector int)__b, (vector int)__a, __d);
6022 #else
6023   return (vector bool long long)__builtin_altivec_vperm_4si(
6024       (vector int)__a, (vector int)__b, __c);
6025 #endif
6026 }
6027 
vec_perm(vector double __a,vector double __b,vector unsigned char __c)6028 static vector double __ATTRS_o_ai vec_perm(vector double __a, vector double __b,
6029                                            vector unsigned char __c) {
6030 #ifdef __LITTLE_ENDIAN__
6031   vector unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
6032                               255, 255, 255, 255, 255, 255, 255, 255};
6033   __d = vec_xor(__c, __d);
6034   return (vector double)__builtin_altivec_vperm_4si((vector int)__b,
6035                                                     (vector int)__a, __d);
6036 #else
6037   return (vector double)__builtin_altivec_vperm_4si((vector int)__a,
6038                                                     (vector int)__b, __c);
6039 #endif
6040 }
6041 #endif
6042 
6043 /* vec_vperm */
6044 
vec_vperm(vector signed char __a,vector signed char __b,vector unsigned char __c)6045 static vector signed char __ATTRS_o_ai vec_vperm(vector signed char __a,
6046                                                  vector signed char __b,
6047                                                  vector unsigned char __c) {
6048   return vec_perm(__a, __b, __c);
6049 }
6050 
vec_vperm(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6051 static vector unsigned char __ATTRS_o_ai vec_vperm(vector unsigned char __a,
6052                                                    vector unsigned char __b,
6053                                                    vector unsigned char __c) {
6054   return vec_perm(__a, __b, __c);
6055 }
6056 
vec_vperm(vector bool char __a,vector bool char __b,vector unsigned char __c)6057 static vector bool char __ATTRS_o_ai vec_vperm(vector bool char __a,
6058                                                vector bool char __b,
6059                                                vector unsigned char __c) {
6060   return vec_perm(__a, __b, __c);
6061 }
6062 
vec_vperm(vector short __a,vector short __b,vector unsigned char __c)6063 static vector short __ATTRS_o_ai vec_vperm(vector short __a, vector short __b,
6064                                            vector unsigned char __c) {
6065   return vec_perm(__a, __b, __c);
6066 }
6067 
vec_vperm(vector unsigned short __a,vector unsigned short __b,vector unsigned char __c)6068 static vector unsigned short __ATTRS_o_ai vec_vperm(vector unsigned short __a,
6069                                                     vector unsigned short __b,
6070                                                     vector unsigned char __c) {
6071   return vec_perm(__a, __b, __c);
6072 }
6073 
vec_vperm(vector bool short __a,vector bool short __b,vector unsigned char __c)6074 static vector bool short __ATTRS_o_ai vec_vperm(vector bool short __a,
6075                                                 vector bool short __b,
6076                                                 vector unsigned char __c) {
6077   return vec_perm(__a, __b, __c);
6078 }
6079 
vec_vperm(vector pixel __a,vector pixel __b,vector unsigned char __c)6080 static vector pixel __ATTRS_o_ai vec_vperm(vector pixel __a, vector pixel __b,
6081                                            vector unsigned char __c) {
6082   return vec_perm(__a, __b, __c);
6083 }
6084 
vec_vperm(vector int __a,vector int __b,vector unsigned char __c)6085 static vector int __ATTRS_o_ai vec_vperm(vector int __a, vector int __b,
6086                                          vector unsigned char __c) {
6087   return vec_perm(__a, __b, __c);
6088 }
6089 
vec_vperm(vector unsigned int __a,vector unsigned int __b,vector unsigned char __c)6090 static vector unsigned int __ATTRS_o_ai vec_vperm(vector unsigned int __a,
6091                                                   vector unsigned int __b,
6092                                                   vector unsigned char __c) {
6093   return vec_perm(__a, __b, __c);
6094 }
6095 
vec_vperm(vector bool int __a,vector bool int __b,vector unsigned char __c)6096 static vector bool int __ATTRS_o_ai vec_vperm(vector bool int __a,
6097                                               vector bool int __b,
6098                                               vector unsigned char __c) {
6099   return vec_perm(__a, __b, __c);
6100 }
6101 
vec_vperm(vector float __a,vector float __b,vector unsigned char __c)6102 static vector float __ATTRS_o_ai vec_vperm(vector float __a, vector float __b,
6103                                            vector unsigned char __c) {
6104   return vec_perm(__a, __b, __c);
6105 }
6106 
6107 #ifdef __VSX__
vec_vperm(vector long long __a,vector long long __b,vector unsigned char __c)6108 static vector long long __ATTRS_o_ai vec_vperm(vector long long __a,
6109                                                vector long long __b,
6110                                                vector unsigned char __c) {
6111   return vec_perm(__a, __b, __c);
6112 }
6113 
6114 static vector unsigned long long __ATTRS_o_ai
vec_vperm(vector unsigned long long __a,vector unsigned long long __b,vector unsigned char __c)6115 vec_vperm(vector unsigned long long __a, vector unsigned long long __b,
6116           vector unsigned char __c) {
6117   return vec_perm(__a, __b, __c);
6118 }
6119 
vec_vperm(vector double __a,vector double __b,vector unsigned char __c)6120 static vector double __ATTRS_o_ai vec_vperm(vector double __a,
6121                                             vector double __b,
6122                                             vector unsigned char __c) {
6123   return vec_perm(__a, __b, __c);
6124 }
6125 #endif
6126 
6127 /* vec_re */
6128 
6129 static vector float __ATTRS_o_ai
vec_re(vector float __a)6130 vec_re(vector float __a) {
6131 #ifdef __VSX__
6132   return __builtin_vsx_xvresp(__a);
6133 #else
6134   return __builtin_altivec_vrefp(__a);
6135 #endif
6136 }
6137 
6138 #ifdef __VSX__
vec_re(vector double __a)6139 static vector double __ATTRS_o_ai vec_re(vector double __a) {
6140   return __builtin_vsx_xvredp(__a);
6141 }
6142 #endif
6143 
6144 /* vec_vrefp */
6145 
6146 static vector float __attribute__((__always_inline__))
vec_vrefp(vector float __a)6147 vec_vrefp(vector float __a) {
6148   return __builtin_altivec_vrefp(__a);
6149 }
6150 
6151 /* vec_rl */
6152 
vec_rl(vector signed char __a,vector unsigned char __b)6153 static vector signed char __ATTRS_o_ai vec_rl(vector signed char __a,
6154                                               vector unsigned char __b) {
6155   return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
6156 }
6157 
vec_rl(vector unsigned char __a,vector unsigned char __b)6158 static vector unsigned char __ATTRS_o_ai vec_rl(vector unsigned char __a,
6159                                                 vector unsigned char __b) {
6160   return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
6161 }
6162 
vec_rl(vector short __a,vector unsigned short __b)6163 static vector short __ATTRS_o_ai vec_rl(vector short __a,
6164                                         vector unsigned short __b) {
6165   return __builtin_altivec_vrlh(__a, __b);
6166 }
6167 
vec_rl(vector unsigned short __a,vector unsigned short __b)6168 static vector unsigned short __ATTRS_o_ai vec_rl(vector unsigned short __a,
6169                                                  vector unsigned short __b) {
6170   return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
6171 }
6172 
vec_rl(vector int __a,vector unsigned int __b)6173 static vector int __ATTRS_o_ai vec_rl(vector int __a, vector unsigned int __b) {
6174   return __builtin_altivec_vrlw(__a, __b);
6175 }
6176 
vec_rl(vector unsigned int __a,vector unsigned int __b)6177 static vector unsigned int __ATTRS_o_ai vec_rl(vector unsigned int __a,
6178                                                vector unsigned int __b) {
6179   return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
6180 }
6181 
6182 #ifdef __POWER8_VECTOR__
6183 static vector signed long long __ATTRS_o_ai
vec_rl(vector signed long long __a,vector unsigned long long __b)6184 vec_rl(vector signed long long __a, vector unsigned long long __b) {
6185   return __builtin_altivec_vrld(__a, __b);
6186 }
6187 
6188 static vector unsigned long long __ATTRS_o_ai
vec_rl(vector unsigned long long __a,vector unsigned long long __b)6189 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6190   return __builtin_altivec_vrld(__a, __b);
6191 }
6192 #endif
6193 
6194 /* vec_vrlb */
6195 
vec_vrlb(vector signed char __a,vector unsigned char __b)6196 static vector signed char __ATTRS_o_ai vec_vrlb(vector signed char __a,
6197                                                 vector unsigned char __b) {
6198   return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
6199 }
6200 
vec_vrlb(vector unsigned char __a,vector unsigned char __b)6201 static vector unsigned char __ATTRS_o_ai vec_vrlb(vector unsigned char __a,
6202                                                   vector unsigned char __b) {
6203   return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
6204 }
6205 
6206 /* vec_vrlh */
6207 
vec_vrlh(vector short __a,vector unsigned short __b)6208 static vector short __ATTRS_o_ai vec_vrlh(vector short __a,
6209                                           vector unsigned short __b) {
6210   return __builtin_altivec_vrlh(__a, __b);
6211 }
6212 
vec_vrlh(vector unsigned short __a,vector unsigned short __b)6213 static vector unsigned short __ATTRS_o_ai vec_vrlh(vector unsigned short __a,
6214                                                    vector unsigned short __b) {
6215   return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
6216 }
6217 
6218 /* vec_vrlw */
6219 
vec_vrlw(vector int __a,vector unsigned int __b)6220 static vector int __ATTRS_o_ai vec_vrlw(vector int __a,
6221                                         vector unsigned int __b) {
6222   return __builtin_altivec_vrlw(__a, __b);
6223 }
6224 
vec_vrlw(vector unsigned int __a,vector unsigned int __b)6225 static vector unsigned int __ATTRS_o_ai vec_vrlw(vector unsigned int __a,
6226                                                  vector unsigned int __b) {
6227   return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
6228 }
6229 
6230 /* vec_round */
6231 
vec_round(vector float __a)6232 static vector float __ATTRS_o_ai vec_round(vector float __a) {
6233 #ifdef __VSX__
6234   return __builtin_vsx_xvrspi(__a);
6235 #else
6236   return __builtin_altivec_vrfin(__a);
6237 #endif
6238 }
6239 
6240 #ifdef __VSX__
vec_round(vector double __a)6241 static vector double __ATTRS_o_ai vec_round(vector double __a) {
6242   return __builtin_vsx_xvrdpi(__a);
6243 }
6244 
6245 /* vec_rint */
6246 
6247 static vector float __ATTRS_o_ai
vec_rint(vector float __a)6248 vec_rint(vector float __a) {
6249   return __builtin_vsx_xvrspic(__a);
6250 }
6251 
6252 static vector double __ATTRS_o_ai
vec_rint(vector double __a)6253 vec_rint(vector double __a) {
6254   return __builtin_vsx_xvrdpic(__a);
6255 }
6256 
6257 /* vec_nearbyint */
6258 
vec_nearbyint(vector float __a)6259 static vector float __ATTRS_o_ai vec_nearbyint(vector float __a) {
6260   return __builtin_vsx_xvrspi(__a);
6261 }
6262 
vec_nearbyint(vector double __a)6263 static vector double __ATTRS_o_ai vec_nearbyint(vector double __a) {
6264   return __builtin_vsx_xvrdpi(__a);
6265 }
6266 #endif
6267 
6268 /* vec_vrfin */
6269 
6270 static vector float __attribute__((__always_inline__))
vec_vrfin(vector float __a)6271 vec_vrfin(vector float __a) {
6272   return __builtin_altivec_vrfin(__a);
6273 }
6274 
6275 /* vec_sqrt */
6276 
6277 #ifdef __VSX__
vec_sqrt(vector float __a)6278 static vector float __ATTRS_o_ai vec_sqrt(vector float __a) {
6279   return __builtin_vsx_xvsqrtsp(__a);
6280 }
6281 
vec_sqrt(vector double __a)6282 static vector double __ATTRS_o_ai vec_sqrt(vector double __a) {
6283   return __builtin_vsx_xvsqrtdp(__a);
6284 }
6285 #endif
6286 
6287 /* vec_rsqrte */
6288 
6289 static vector float __ATTRS_o_ai
vec_rsqrte(vector float __a)6290 vec_rsqrte(vector float __a) {
6291 #ifdef __VSX__
6292   return __builtin_vsx_xvrsqrtesp(__a);
6293 #else
6294   return __builtin_altivec_vrsqrtefp(__a);
6295 #endif
6296 }
6297 
6298 #ifdef __VSX__
vec_rsqrte(vector double __a)6299 static vector double __ATTRS_o_ai vec_rsqrte(vector double __a) {
6300   return __builtin_vsx_xvrsqrtedp(__a);
6301 }
6302 #endif
6303 
6304 /* vec_vrsqrtefp */
6305 
6306 static __vector float __attribute__((__always_inline__))
vec_vrsqrtefp(vector float __a)6307 vec_vrsqrtefp(vector float __a) {
6308   return __builtin_altivec_vrsqrtefp(__a);
6309 }
6310 
6311 /* vec_sel */
6312 
6313 #define __builtin_altivec_vsel_4si vec_sel
6314 
vec_sel(vector signed char __a,vector signed char __b,vector unsigned char __c)6315 static vector signed char __ATTRS_o_ai vec_sel(vector signed char __a,
6316                                                vector signed char __b,
6317                                                vector unsigned char __c) {
6318   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
6319 }
6320 
vec_sel(vector signed char __a,vector signed char __b,vector bool char __c)6321 static vector signed char __ATTRS_o_ai vec_sel(vector signed char __a,
6322                                                vector signed char __b,
6323                                                vector bool char __c) {
6324   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
6325 }
6326 
vec_sel(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6327 static vector unsigned char __ATTRS_o_ai vec_sel(vector unsigned char __a,
6328                                                  vector unsigned char __b,
6329                                                  vector unsigned char __c) {
6330   return (__a & ~__c) | (__b & __c);
6331 }
6332 
vec_sel(vector unsigned char __a,vector unsigned char __b,vector bool char __c)6333 static vector unsigned char __ATTRS_o_ai vec_sel(vector unsigned char __a,
6334                                                  vector unsigned char __b,
6335                                                  vector bool char __c) {
6336   return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
6337 }
6338 
vec_sel(vector bool char __a,vector bool char __b,vector unsigned char __c)6339 static vector bool char __ATTRS_o_ai vec_sel(vector bool char __a,
6340                                              vector bool char __b,
6341                                              vector unsigned char __c) {
6342   return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
6343 }
6344 
vec_sel(vector bool char __a,vector bool char __b,vector bool char __c)6345 static vector bool char __ATTRS_o_ai vec_sel(vector bool char __a,
6346                                              vector bool char __b,
6347                                              vector bool char __c) {
6348   return (__a & ~__c) | (__b & __c);
6349 }
6350 
vec_sel(vector short __a,vector short __b,vector unsigned short __c)6351 static vector short __ATTRS_o_ai vec_sel(vector short __a, vector short __b,
6352                                          vector unsigned short __c) {
6353   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
6354 }
6355 
vec_sel(vector short __a,vector short __b,vector bool short __c)6356 static vector short __ATTRS_o_ai vec_sel(vector short __a, vector short __b,
6357                                          vector bool short __c) {
6358   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
6359 }
6360 
vec_sel(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)6361 static vector unsigned short __ATTRS_o_ai vec_sel(vector unsigned short __a,
6362                                                   vector unsigned short __b,
6363                                                   vector unsigned short __c) {
6364   return (__a & ~__c) | (__b & __c);
6365 }
6366 
vec_sel(vector unsigned short __a,vector unsigned short __b,vector bool short __c)6367 static vector unsigned short __ATTRS_o_ai vec_sel(vector unsigned short __a,
6368                                                   vector unsigned short __b,
6369                                                   vector bool short __c) {
6370   return (__a & ~(vector unsigned short)__c) |
6371          (__b & (vector unsigned short)__c);
6372 }
6373 
vec_sel(vector bool short __a,vector bool short __b,vector unsigned short __c)6374 static vector bool short __ATTRS_o_ai vec_sel(vector bool short __a,
6375                                               vector bool short __b,
6376                                               vector unsigned short __c) {
6377   return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
6378 }
6379 
vec_sel(vector bool short __a,vector bool short __b,vector bool short __c)6380 static vector bool short __ATTRS_o_ai vec_sel(vector bool short __a,
6381                                               vector bool short __b,
6382                                               vector bool short __c) {
6383   return (__a & ~__c) | (__b & __c);
6384 }
6385 
vec_sel(vector int __a,vector int __b,vector unsigned int __c)6386 static vector int __ATTRS_o_ai vec_sel(vector int __a, vector int __b,
6387                                        vector unsigned int __c) {
6388   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
6389 }
6390 
vec_sel(vector int __a,vector int __b,vector bool int __c)6391 static vector int __ATTRS_o_ai vec_sel(vector int __a, vector int __b,
6392                                        vector bool int __c) {
6393   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
6394 }
6395 
vec_sel(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)6396 static vector unsigned int __ATTRS_o_ai vec_sel(vector unsigned int __a,
6397                                                 vector unsigned int __b,
6398                                                 vector unsigned int __c) {
6399   return (__a & ~__c) | (__b & __c);
6400 }
6401 
vec_sel(vector unsigned int __a,vector unsigned int __b,vector bool int __c)6402 static vector unsigned int __ATTRS_o_ai vec_sel(vector unsigned int __a,
6403                                                 vector unsigned int __b,
6404                                                 vector bool int __c) {
6405   return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
6406 }
6407 
vec_sel(vector bool int __a,vector bool int __b,vector unsigned int __c)6408 static vector bool int __ATTRS_o_ai vec_sel(vector bool int __a,
6409                                             vector bool int __b,
6410                                             vector unsigned int __c) {
6411   return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
6412 }
6413 
vec_sel(vector bool int __a,vector bool int __b,vector bool int __c)6414 static vector bool int __ATTRS_o_ai vec_sel(vector bool int __a,
6415                                             vector bool int __b,
6416                                             vector bool int __c) {
6417   return (__a & ~__c) | (__b & __c);
6418 }
6419 
vec_sel(vector float __a,vector float __b,vector unsigned int __c)6420 static vector float __ATTRS_o_ai vec_sel(vector float __a, vector float __b,
6421                                          vector unsigned int __c) {
6422   vector int __res = ((vector int)__a & ~(vector int)__c) |
6423                      ((vector int)__b & (vector int)__c);
6424   return (vector float)__res;
6425 }
6426 
vec_sel(vector float __a,vector float __b,vector bool int __c)6427 static vector float __ATTRS_o_ai vec_sel(vector float __a, vector float __b,
6428                                          vector bool int __c) {
6429   vector int __res = ((vector int)__a & ~(vector int)__c) |
6430                      ((vector int)__b & (vector int)__c);
6431   return (vector float)__res;
6432 }
6433 
6434 #ifdef __VSX__
vec_sel(vector double __a,vector double __b,vector bool long long __c)6435 static vector double __ATTRS_o_ai vec_sel(vector double __a, vector double __b,
6436                                           vector bool long long __c) {
6437   vector long long __res = ((vector long long)__a & ~(vector long long)__c) |
6438                      ((vector long long)__b & (vector long long)__c);
6439   return (vector double)__res;
6440 }
6441 
vec_sel(vector double __a,vector double __b,vector unsigned long long __c)6442 static vector double __ATTRS_o_ai vec_sel(vector double __a, vector double __b,
6443                                           vector unsigned long long __c) {
6444   vector long long __res = ((vector long long)__a & ~(vector long long)__c) |
6445                      ((vector long long)__b & (vector long long)__c);
6446   return (vector double)__res;
6447 }
6448 #endif
6449 
6450 /* vec_vsel */
6451 
vec_vsel(vector signed char __a,vector signed char __b,vector unsigned char __c)6452 static vector signed char __ATTRS_o_ai vec_vsel(vector signed char __a,
6453                                                 vector signed char __b,
6454                                                 vector unsigned char __c) {
6455   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
6456 }
6457 
vec_vsel(vector signed char __a,vector signed char __b,vector bool char __c)6458 static vector signed char __ATTRS_o_ai vec_vsel(vector signed char __a,
6459                                                 vector signed char __b,
6460                                                 vector bool char __c) {
6461   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
6462 }
6463 
vec_vsel(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6464 static vector unsigned char __ATTRS_o_ai vec_vsel(vector unsigned char __a,
6465                                                   vector unsigned char __b,
6466                                                   vector unsigned char __c) {
6467   return (__a & ~__c) | (__b & __c);
6468 }
6469 
vec_vsel(vector unsigned char __a,vector unsigned char __b,vector bool char __c)6470 static vector unsigned char __ATTRS_o_ai vec_vsel(vector unsigned char __a,
6471                                                   vector unsigned char __b,
6472                                                   vector bool char __c) {
6473   return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
6474 }
6475 
vec_vsel(vector bool char __a,vector bool char __b,vector unsigned char __c)6476 static vector bool char __ATTRS_o_ai vec_vsel(vector bool char __a,
6477                                               vector bool char __b,
6478                                               vector unsigned char __c) {
6479   return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
6480 }
6481 
vec_vsel(vector bool char __a,vector bool char __b,vector bool char __c)6482 static vector bool char __ATTRS_o_ai vec_vsel(vector bool char __a,
6483                                               vector bool char __b,
6484                                               vector bool char __c) {
6485   return (__a & ~__c) | (__b & __c);
6486 }
6487 
vec_vsel(vector short __a,vector short __b,vector unsigned short __c)6488 static vector short __ATTRS_o_ai vec_vsel(vector short __a, vector short __b,
6489                                           vector unsigned short __c) {
6490   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
6491 }
6492 
vec_vsel(vector short __a,vector short __b,vector bool short __c)6493 static vector short __ATTRS_o_ai vec_vsel(vector short __a, vector short __b,
6494                                           vector bool short __c) {
6495   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
6496 }
6497 
vec_vsel(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)6498 static vector unsigned short __ATTRS_o_ai vec_vsel(vector unsigned short __a,
6499                                                    vector unsigned short __b,
6500                                                    vector unsigned short __c) {
6501   return (__a & ~__c) | (__b & __c);
6502 }
6503 
vec_vsel(vector unsigned short __a,vector unsigned short __b,vector bool short __c)6504 static vector unsigned short __ATTRS_o_ai vec_vsel(vector unsigned short __a,
6505                                                    vector unsigned short __b,
6506                                                    vector bool short __c) {
6507   return (__a & ~(vector unsigned short)__c) |
6508          (__b & (vector unsigned short)__c);
6509 }
6510 
vec_vsel(vector bool short __a,vector bool short __b,vector unsigned short __c)6511 static vector bool short __ATTRS_o_ai vec_vsel(vector bool short __a,
6512                                                vector bool short __b,
6513                                                vector unsigned short __c) {
6514   return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
6515 }
6516 
vec_vsel(vector bool short __a,vector bool short __b,vector bool short __c)6517 static vector bool short __ATTRS_o_ai vec_vsel(vector bool short __a,
6518                                                vector bool short __b,
6519                                                vector bool short __c) {
6520   return (__a & ~__c) | (__b & __c);
6521 }
6522 
vec_vsel(vector int __a,vector int __b,vector unsigned int __c)6523 static vector int __ATTRS_o_ai vec_vsel(vector int __a, vector int __b,
6524                                         vector unsigned int __c) {
6525   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
6526 }
6527 
vec_vsel(vector int __a,vector int __b,vector bool int __c)6528 static vector int __ATTRS_o_ai vec_vsel(vector int __a, vector int __b,
6529                                         vector bool int __c) {
6530   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
6531 }
6532 
vec_vsel(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)6533 static vector unsigned int __ATTRS_o_ai vec_vsel(vector unsigned int __a,
6534                                                  vector unsigned int __b,
6535                                                  vector unsigned int __c) {
6536   return (__a & ~__c) | (__b & __c);
6537 }
6538 
vec_vsel(vector unsigned int __a,vector unsigned int __b,vector bool int __c)6539 static vector unsigned int __ATTRS_o_ai vec_vsel(vector unsigned int __a,
6540                                                  vector unsigned int __b,
6541                                                  vector bool int __c) {
6542   return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
6543 }
6544 
vec_vsel(vector bool int __a,vector bool int __b,vector unsigned int __c)6545 static vector bool int __ATTRS_o_ai vec_vsel(vector bool int __a,
6546                                              vector bool int __b,
6547                                              vector unsigned int __c) {
6548   return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
6549 }
6550 
vec_vsel(vector bool int __a,vector bool int __b,vector bool int __c)6551 static vector bool int __ATTRS_o_ai vec_vsel(vector bool int __a,
6552                                              vector bool int __b,
6553                                              vector bool int __c) {
6554   return (__a & ~__c) | (__b & __c);
6555 }
6556 
vec_vsel(vector float __a,vector float __b,vector unsigned int __c)6557 static vector float __ATTRS_o_ai vec_vsel(vector float __a, vector float __b,
6558                                           vector unsigned int __c) {
6559   vector int __res = ((vector int)__a & ~(vector int)__c) |
6560                      ((vector int)__b & (vector int)__c);
6561   return (vector float)__res;
6562 }
6563 
vec_vsel(vector float __a,vector float __b,vector bool int __c)6564 static vector float __ATTRS_o_ai vec_vsel(vector float __a, vector float __b,
6565                                           vector bool int __c) {
6566   vector int __res = ((vector int)__a & ~(vector int)__c) |
6567                      ((vector int)__b & (vector int)__c);
6568   return (vector float)__res;
6569 }
6570 
6571 /* vec_sl */
6572 
vec_sl(vector signed char __a,vector unsigned char __b)6573 static vector signed char __ATTRS_o_ai vec_sl(vector signed char __a,
6574                                               vector unsigned char __b) {
6575   return __a << (vector signed char)__b;
6576 }
6577 
vec_sl(vector unsigned char __a,vector unsigned char __b)6578 static vector unsigned char __ATTRS_o_ai vec_sl(vector unsigned char __a,
6579                                                 vector unsigned char __b) {
6580   return __a << __b;
6581 }
6582 
vec_sl(vector short __a,vector unsigned short __b)6583 static vector short __ATTRS_o_ai vec_sl(vector short __a,
6584                                         vector unsigned short __b) {
6585   return __a << (vector short)__b;
6586 }
6587 
vec_sl(vector unsigned short __a,vector unsigned short __b)6588 static vector unsigned short __ATTRS_o_ai vec_sl(vector unsigned short __a,
6589                                                  vector unsigned short __b) {
6590   return __a << __b;
6591 }
6592 
vec_sl(vector int __a,vector unsigned int __b)6593 static vector int __ATTRS_o_ai vec_sl(vector int __a, vector unsigned int __b) {
6594   return __a << (vector int)__b;
6595 }
6596 
vec_sl(vector unsigned int __a,vector unsigned int __b)6597 static vector unsigned int __ATTRS_o_ai vec_sl(vector unsigned int __a,
6598                                                vector unsigned int __b) {
6599   return __a << __b;
6600 }
6601 
6602 #ifdef __POWER8_VECTOR__
6603 static vector signed long long __ATTRS_o_ai
vec_sl(vector signed long long __a,vector unsigned long long __b)6604 vec_sl(vector signed long long __a, vector unsigned long long __b) {
6605   return __a << (vector long long)__b;
6606 }
6607 
6608 static vector unsigned long long __ATTRS_o_ai
vec_sl(vector unsigned long long __a,vector unsigned long long __b)6609 vec_sl(vector unsigned long long __a, vector unsigned long long __b) {
6610   return __a << __b;
6611 }
6612 #endif
6613 
6614 /* vec_vslb */
6615 
6616 #define __builtin_altivec_vslb vec_vslb
6617 
vec_vslb(vector signed char __a,vector unsigned char __b)6618 static vector signed char __ATTRS_o_ai vec_vslb(vector signed char __a,
6619                                                 vector unsigned char __b) {
6620   return vec_sl(__a, __b);
6621 }
6622 
vec_vslb(vector unsigned char __a,vector unsigned char __b)6623 static vector unsigned char __ATTRS_o_ai vec_vslb(vector unsigned char __a,
6624                                                   vector unsigned char __b) {
6625   return vec_sl(__a, __b);
6626 }
6627 
6628 /* vec_vslh */
6629 
6630 #define __builtin_altivec_vslh vec_vslh
6631 
vec_vslh(vector short __a,vector unsigned short __b)6632 static vector short __ATTRS_o_ai vec_vslh(vector short __a,
6633                                           vector unsigned short __b) {
6634   return vec_sl(__a, __b);
6635 }
6636 
vec_vslh(vector unsigned short __a,vector unsigned short __b)6637 static vector unsigned short __ATTRS_o_ai vec_vslh(vector unsigned short __a,
6638                                                    vector unsigned short __b) {
6639   return vec_sl(__a, __b);
6640 }
6641 
6642 /* vec_vslw */
6643 
6644 #define __builtin_altivec_vslw vec_vslw
6645 
vec_vslw(vector int __a,vector unsigned int __b)6646 static vector int __ATTRS_o_ai vec_vslw(vector int __a,
6647                                         vector unsigned int __b) {
6648   return vec_sl(__a, __b);
6649 }
6650 
vec_vslw(vector unsigned int __a,vector unsigned int __b)6651 static vector unsigned int __ATTRS_o_ai vec_vslw(vector unsigned int __a,
6652                                                  vector unsigned int __b) {
6653   return vec_sl(__a, __b);
6654 }
6655 
6656 /* vec_sld */
6657 
6658 #define __builtin_altivec_vsldoi_4si vec_sld
6659 
vec_sld(vector signed char __a,vector signed char __b,unsigned const int __c)6660 static vector signed char __ATTRS_o_ai vec_sld(vector signed char __a,
6661                                                vector signed char __b,
6662                                                unsigned const int __c) {
6663   unsigned char __d = __c & 0x0F;
6664 #ifdef __LITTLE_ENDIAN__
6665   return vec_perm(
6666       __b, __a,
6667       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6668                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6669                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6670                              31 - __d));
6671 #else
6672   return vec_perm(
6673       __a, __b,
6674       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6675                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6676                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6677 #endif
6678 }
6679 
vec_sld(vector unsigned char __a,vector unsigned char __b,unsigned const int __c)6680 static vector unsigned char __ATTRS_o_ai vec_sld(vector unsigned char __a,
6681                                                  vector unsigned char __b,
6682                                                  unsigned const int __c) {
6683   unsigned char __d = __c & 0x0F;
6684 #ifdef __LITTLE_ENDIAN__
6685   return vec_perm(
6686       __b, __a,
6687       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6688                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6689                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6690                              31 - __d));
6691 #else
6692   return vec_perm(
6693       __a, __b,
6694       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6695                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6696                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6697 #endif
6698 }
6699 
vec_sld(vector bool char __a,vector bool char __b,unsigned const int __c)6700 static vector bool char __ATTRS_o_ai vec_sld(vector bool char __a,
6701                                              vector bool char __b,
6702                                              unsigned const int __c) {
6703   unsigned char __d = __c & 0x0F;
6704 #ifdef __LITTLE_ENDIAN__
6705   return vec_perm(
6706       __b, __a,
6707       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6708                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6709                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6710                              31 - __d));
6711 #else
6712   return vec_perm(
6713       __a, __b,
6714       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6715                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6716                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6717 #endif
6718 }
6719 
vec_sld(vector signed short __a,vector signed short __b,unsigned const int __c)6720 static vector signed short __ATTRS_o_ai vec_sld(vector signed short __a,
6721                                                 vector signed short __b,
6722                                                 unsigned const int __c) {
6723   unsigned char __d = __c & 0x0F;
6724 #ifdef __LITTLE_ENDIAN__
6725   return vec_perm(
6726       __b, __a,
6727       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6728                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6729                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6730                              31 - __d));
6731 #else
6732   return vec_perm(
6733       __a, __b,
6734       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6735                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6736                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6737 #endif
6738 }
6739 
vec_sld(vector unsigned short __a,vector unsigned short __b,unsigned const int __c)6740 static vector unsigned short __ATTRS_o_ai vec_sld(vector unsigned short __a,
6741                                                   vector unsigned short __b,
6742                                                   unsigned const int __c) {
6743   unsigned char __d = __c & 0x0F;
6744 #ifdef __LITTLE_ENDIAN__
6745   return vec_perm(
6746       __b, __a,
6747       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6748                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6749                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6750                              31 - __d));
6751 #else
6752   return vec_perm(
6753       __a, __b,
6754       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6755                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6756                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6757 #endif
6758 }
6759 
vec_sld(vector bool short __a,vector bool short __b,unsigned const int __c)6760 static vector bool short __ATTRS_o_ai vec_sld(vector bool short __a,
6761                                               vector bool short __b,
6762                                               unsigned const int __c) {
6763   unsigned char __d = __c & 0x0F;
6764 #ifdef __LITTLE_ENDIAN__
6765   return vec_perm(
6766       __b, __a,
6767       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6768                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6769                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6770                              31 - __d));
6771 #else
6772   return vec_perm(
6773       __a, __b,
6774       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6775                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6776                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6777 #endif
6778 }
6779 
vec_sld(vector pixel __a,vector pixel __b,unsigned const int __c)6780 static vector pixel __ATTRS_o_ai vec_sld(vector pixel __a, vector pixel __b,
6781                                          unsigned const int __c) {
6782   unsigned char __d = __c & 0x0F;
6783 #ifdef __LITTLE_ENDIAN__
6784   return vec_perm(
6785       __b, __a,
6786       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6787                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6788                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6789                              31 - __d));
6790 #else
6791   return vec_perm(
6792       __a, __b,
6793       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6794                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6795                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6796 #endif
6797 }
6798 
vec_sld(vector signed int __a,vector signed int __b,unsigned const int __c)6799 static vector signed int __ATTRS_o_ai vec_sld(vector signed int __a,
6800                                               vector signed int __b,
6801                                               unsigned const int __c) {
6802   unsigned char __d = __c & 0x0F;
6803 #ifdef __LITTLE_ENDIAN__
6804   return vec_perm(
6805       __b, __a,
6806       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6807                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6808                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6809                              31 - __d));
6810 #else
6811   return vec_perm(
6812       __a, __b,
6813       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6814                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6815                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6816 #endif
6817 }
6818 
vec_sld(vector unsigned int __a,vector unsigned int __b,unsigned const int __c)6819 static vector unsigned int __ATTRS_o_ai vec_sld(vector unsigned int __a,
6820                                                 vector unsigned int __b,
6821                                                 unsigned const int __c) {
6822   unsigned char __d = __c & 0x0F;
6823 #ifdef __LITTLE_ENDIAN__
6824   return vec_perm(
6825       __b, __a,
6826       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6827                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6828                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6829                              31 - __d));
6830 #else
6831   return vec_perm(
6832       __a, __b,
6833       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6834                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6835                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6836 #endif
6837 }
6838 
vec_sld(vector bool int __a,vector bool int __b,unsigned const int __c)6839 static vector bool int __ATTRS_o_ai vec_sld(vector bool int __a,
6840                                             vector bool int __b,
6841                                             unsigned const int __c) {
6842   unsigned char __d = __c & 0x0F;
6843 #ifdef __LITTLE_ENDIAN__
6844   return vec_perm(
6845       __b, __a,
6846       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6847                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6848                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6849                              31 - __d));
6850 #else
6851   return vec_perm(
6852       __a, __b,
6853       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6854                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6855                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6856 #endif
6857 }
6858 
vec_sld(vector float __a,vector float __b,unsigned const int __c)6859 static vector float __ATTRS_o_ai vec_sld(vector float __a, vector float __b,
6860                                          unsigned const int __c) {
6861   unsigned char __d = __c & 0x0F;
6862 #ifdef __LITTLE_ENDIAN__
6863   return vec_perm(
6864       __b, __a,
6865       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6866                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6867                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6868                              31 - __d));
6869 #else
6870   return vec_perm(
6871       __a, __b,
6872       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6873                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6874                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6875 #endif
6876 }
6877 
6878 /* vec_vsldoi */
6879 
vec_vsldoi(vector signed char __a,vector signed char __b,unsigned char __c)6880 static vector signed char __ATTRS_o_ai vec_vsldoi(vector signed char __a,
6881                                                   vector signed char __b,
6882                                                   unsigned char __c) {
6883   unsigned char __d = __c & 0x0F;
6884 #ifdef __LITTLE_ENDIAN__
6885   return vec_perm(
6886       __b, __a,
6887       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6888                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6889                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6890                              31 - __d));
6891 #else
6892   return vec_perm(
6893       __a, __b,
6894       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6895                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6896                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6897 #endif
6898 }
6899 
vec_vsldoi(vector unsigned char __a,vector unsigned char __b,unsigned char __c)6900 static vector unsigned char __ATTRS_o_ai vec_vsldoi(vector unsigned char __a,
6901                                                     vector unsigned char __b,
6902                                                     unsigned char __c) {
6903   unsigned char __d = __c & 0x0F;
6904 #ifdef __LITTLE_ENDIAN__
6905   return vec_perm(
6906       __b, __a,
6907       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6908                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6909                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6910                              31 - __d));
6911 #else
6912   return vec_perm(
6913       __a, __b,
6914       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6915                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6916                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6917 #endif
6918 }
6919 
vec_vsldoi(vector short __a,vector short __b,unsigned char __c)6920 static vector short __ATTRS_o_ai vec_vsldoi(vector short __a, vector short __b,
6921                                             unsigned char __c) {
6922   unsigned char __d = __c & 0x0F;
6923 #ifdef __LITTLE_ENDIAN__
6924   return vec_perm(
6925       __b, __a,
6926       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6927                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6928                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6929                              31 - __d));
6930 #else
6931   return vec_perm(
6932       __a, __b,
6933       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6934                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6935                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6936 #endif
6937 }
6938 
vec_vsldoi(vector unsigned short __a,vector unsigned short __b,unsigned char __c)6939 static vector unsigned short __ATTRS_o_ai vec_vsldoi(vector unsigned short __a,
6940                                                      vector unsigned short __b,
6941                                                      unsigned char __c) {
6942   unsigned char __d = __c & 0x0F;
6943 #ifdef __LITTLE_ENDIAN__
6944   return vec_perm(
6945       __b, __a,
6946       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6947                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6948                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6949                              31 - __d));
6950 #else
6951   return vec_perm(
6952       __a, __b,
6953       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6954                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6955                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6956 #endif
6957 }
6958 
vec_vsldoi(vector pixel __a,vector pixel __b,unsigned char __c)6959 static vector pixel __ATTRS_o_ai vec_vsldoi(vector pixel __a, vector pixel __b,
6960                                             unsigned char __c) {
6961   unsigned char __d = __c & 0x0F;
6962 #ifdef __LITTLE_ENDIAN__
6963   return vec_perm(
6964       __b, __a,
6965       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6966                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6967                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6968                              31 - __d));
6969 #else
6970   return vec_perm(
6971       __a, __b,
6972       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6973                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6974                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6975 #endif
6976 }
6977 
vec_vsldoi(vector int __a,vector int __b,unsigned char __c)6978 static vector int __ATTRS_o_ai vec_vsldoi(vector int __a, vector int __b,
6979                                           unsigned char __c) {
6980   unsigned char __d = __c & 0x0F;
6981 #ifdef __LITTLE_ENDIAN__
6982   return vec_perm(
6983       __b, __a,
6984       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
6985                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
6986                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
6987                              31 - __d));
6988 #else
6989   return vec_perm(
6990       __a, __b,
6991       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
6992                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
6993                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
6994 #endif
6995 }
6996 
vec_vsldoi(vector unsigned int __a,vector unsigned int __b,unsigned char __c)6997 static vector unsigned int __ATTRS_o_ai vec_vsldoi(vector unsigned int __a,
6998                                                    vector unsigned int __b,
6999                                                    unsigned char __c) {
7000   unsigned char __d = __c & 0x0F;
7001 #ifdef __LITTLE_ENDIAN__
7002   return vec_perm(
7003       __b, __a,
7004       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
7005                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
7006                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
7007                              31 - __d));
7008 #else
7009   return vec_perm(
7010       __a, __b,
7011       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
7012                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
7013                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
7014 #endif
7015 }
7016 
vec_vsldoi(vector float __a,vector float __b,unsigned char __c)7017 static vector float __ATTRS_o_ai vec_vsldoi(vector float __a, vector float __b,
7018                                             unsigned char __c) {
7019   unsigned char __d = __c & 0x0F;
7020 #ifdef __LITTLE_ENDIAN__
7021   return vec_perm(
7022       __b, __a,
7023       (vector unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d, 20 - __d,
7024                              21 - __d, 22 - __d, 23 - __d, 24 - __d, 25 - __d,
7025                              26 - __d, 27 - __d, 28 - __d, 29 - __d, 30 - __d,
7026                              31 - __d));
7027 #else
7028   return vec_perm(
7029       __a, __b,
7030       (vector unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
7031                              __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
7032                              __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
7033 #endif
7034 }
7035 
7036 /* vec_sll */
7037 
vec_sll(vector signed char __a,vector unsigned char __b)7038 static vector signed char __ATTRS_o_ai vec_sll(vector signed char __a,
7039                                                vector unsigned char __b) {
7040   return (vector signed char)__builtin_altivec_vsl((vector int)__a,
7041                                                    (vector int)__b);
7042 }
7043 
vec_sll(vector signed char __a,vector unsigned short __b)7044 static vector signed char __ATTRS_o_ai vec_sll(vector signed char __a,
7045                                                vector unsigned short __b) {
7046   return (vector signed char)__builtin_altivec_vsl((vector int)__a,
7047                                                    (vector int)__b);
7048 }
7049 
vec_sll(vector signed char __a,vector unsigned int __b)7050 static vector signed char __ATTRS_o_ai vec_sll(vector signed char __a,
7051                                                vector unsigned int __b) {
7052   return (vector signed char)__builtin_altivec_vsl((vector int)__a,
7053                                                    (vector int)__b);
7054 }
7055 
vec_sll(vector unsigned char __a,vector unsigned char __b)7056 static vector unsigned char __ATTRS_o_ai vec_sll(vector unsigned char __a,
7057                                                  vector unsigned char __b) {
7058   return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
7059                                                      (vector int)__b);
7060 }
7061 
vec_sll(vector unsigned char __a,vector unsigned short __b)7062 static vector unsigned char __ATTRS_o_ai vec_sll(vector unsigned char __a,
7063                                                  vector unsigned short __b) {
7064   return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
7065                                                      (vector int)__b);
7066 }
7067 
vec_sll(vector unsigned char __a,vector unsigned int __b)7068 static vector unsigned char __ATTRS_o_ai vec_sll(vector unsigned char __a,
7069                                                  vector unsigned int __b) {
7070   return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
7071                                                      (vector int)__b);
7072 }
7073 
vec_sll(vector bool char __a,vector unsigned char __b)7074 static vector bool char __ATTRS_o_ai vec_sll(vector bool char __a,
7075                                              vector unsigned char __b) {
7076   return (vector bool char)__builtin_altivec_vsl((vector int)__a,
7077                                                  (vector int)__b);
7078 }
7079 
vec_sll(vector bool char __a,vector unsigned short __b)7080 static vector bool char __ATTRS_o_ai vec_sll(vector bool char __a,
7081                                              vector unsigned short __b) {
7082   return (vector bool char)__builtin_altivec_vsl((vector int)__a,
7083                                                  (vector int)__b);
7084 }
7085 
vec_sll(vector bool char __a,vector unsigned int __b)7086 static vector bool char __ATTRS_o_ai vec_sll(vector bool char __a,
7087                                              vector unsigned int __b) {
7088   return (vector bool char)__builtin_altivec_vsl((vector int)__a,
7089                                                  (vector int)__b);
7090 }
7091 
vec_sll(vector short __a,vector unsigned char __b)7092 static vector short __ATTRS_o_ai vec_sll(vector short __a,
7093                                          vector unsigned char __b) {
7094   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7095 }
7096 
vec_sll(vector short __a,vector unsigned short __b)7097 static vector short __ATTRS_o_ai vec_sll(vector short __a,
7098                                          vector unsigned short __b) {
7099   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7100 }
7101 
vec_sll(vector short __a,vector unsigned int __b)7102 static vector short __ATTRS_o_ai vec_sll(vector short __a,
7103                                          vector unsigned int __b) {
7104   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7105 }
7106 
vec_sll(vector unsigned short __a,vector unsigned char __b)7107 static vector unsigned short __ATTRS_o_ai vec_sll(vector unsigned short __a,
7108                                                   vector unsigned char __b) {
7109   return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
7110                                                       (vector int)__b);
7111 }
7112 
vec_sll(vector unsigned short __a,vector unsigned short __b)7113 static vector unsigned short __ATTRS_o_ai vec_sll(vector unsigned short __a,
7114                                                   vector unsigned short __b) {
7115   return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
7116                                                       (vector int)__b);
7117 }
7118 
vec_sll(vector unsigned short __a,vector unsigned int __b)7119 static vector unsigned short __ATTRS_o_ai vec_sll(vector unsigned short __a,
7120                                                   vector unsigned int __b) {
7121   return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
7122                                                       (vector int)__b);
7123 }
7124 
vec_sll(vector bool short __a,vector unsigned char __b)7125 static vector bool short __ATTRS_o_ai vec_sll(vector bool short __a,
7126                                               vector unsigned char __b) {
7127   return (vector bool short)__builtin_altivec_vsl((vector int)__a,
7128                                                   (vector int)__b);
7129 }
7130 
vec_sll(vector bool short __a,vector unsigned short __b)7131 static vector bool short __ATTRS_o_ai vec_sll(vector bool short __a,
7132                                               vector unsigned short __b) {
7133   return (vector bool short)__builtin_altivec_vsl((vector int)__a,
7134                                                   (vector int)__b);
7135 }
7136 
vec_sll(vector bool short __a,vector unsigned int __b)7137 static vector bool short __ATTRS_o_ai vec_sll(vector bool short __a,
7138                                               vector unsigned int __b) {
7139   return (vector bool short)__builtin_altivec_vsl((vector int)__a,
7140                                                   (vector int)__b);
7141 }
7142 
vec_sll(vector pixel __a,vector unsigned char __b)7143 static vector pixel __ATTRS_o_ai vec_sll(vector pixel __a,
7144                                          vector unsigned char __b) {
7145   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7146 }
7147 
vec_sll(vector pixel __a,vector unsigned short __b)7148 static vector pixel __ATTRS_o_ai vec_sll(vector pixel __a,
7149                                          vector unsigned short __b) {
7150   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7151 }
7152 
vec_sll(vector pixel __a,vector unsigned int __b)7153 static vector pixel __ATTRS_o_ai vec_sll(vector pixel __a,
7154                                          vector unsigned int __b) {
7155   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7156 }
7157 
vec_sll(vector int __a,vector unsigned char __b)7158 static vector int __ATTRS_o_ai vec_sll(vector int __a,
7159                                        vector unsigned char __b) {
7160   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
7161 }
7162 
vec_sll(vector int __a,vector unsigned short __b)7163 static vector int __ATTRS_o_ai vec_sll(vector int __a,
7164                                        vector unsigned short __b) {
7165   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
7166 }
7167 
vec_sll(vector int __a,vector unsigned int __b)7168 static vector int __ATTRS_o_ai vec_sll(vector int __a,
7169                                        vector unsigned int __b) {
7170   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
7171 }
7172 
vec_sll(vector unsigned int __a,vector unsigned char __b)7173 static vector unsigned int __ATTRS_o_ai vec_sll(vector unsigned int __a,
7174                                                 vector unsigned char __b) {
7175   return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
7176                                                     (vector int)__b);
7177 }
7178 
vec_sll(vector unsigned int __a,vector unsigned short __b)7179 static vector unsigned int __ATTRS_o_ai vec_sll(vector unsigned int __a,
7180                                                 vector unsigned short __b) {
7181   return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
7182                                                     (vector int)__b);
7183 }
7184 
vec_sll(vector unsigned int __a,vector unsigned int __b)7185 static vector unsigned int __ATTRS_o_ai vec_sll(vector unsigned int __a,
7186                                                 vector unsigned int __b) {
7187   return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
7188                                                     (vector int)__b);
7189 }
7190 
vec_sll(vector bool int __a,vector unsigned char __b)7191 static vector bool int __ATTRS_o_ai vec_sll(vector bool int __a,
7192                                             vector unsigned char __b) {
7193   return (vector bool int)__builtin_altivec_vsl((vector int)__a,
7194                                                 (vector int)__b);
7195 }
7196 
vec_sll(vector bool int __a,vector unsigned short __b)7197 static vector bool int __ATTRS_o_ai vec_sll(vector bool int __a,
7198                                             vector unsigned short __b) {
7199   return (vector bool int)__builtin_altivec_vsl((vector int)__a,
7200                                                 (vector int)__b);
7201 }
7202 
vec_sll(vector bool int __a,vector unsigned int __b)7203 static vector bool int __ATTRS_o_ai vec_sll(vector bool int __a,
7204                                             vector unsigned int __b) {
7205   return (vector bool int)__builtin_altivec_vsl((vector int)__a,
7206                                                 (vector int)__b);
7207 }
7208 
7209 /* vec_vsl */
7210 
vec_vsl(vector signed char __a,vector unsigned char __b)7211 static vector signed char __ATTRS_o_ai vec_vsl(vector signed char __a,
7212                                                vector unsigned char __b) {
7213   return (vector signed char)__builtin_altivec_vsl((vector int)__a,
7214                                                    (vector int)__b);
7215 }
7216 
vec_vsl(vector signed char __a,vector unsigned short __b)7217 static vector signed char __ATTRS_o_ai vec_vsl(vector signed char __a,
7218                                                vector unsigned short __b) {
7219   return (vector signed char)__builtin_altivec_vsl((vector int)__a,
7220                                                    (vector int)__b);
7221 }
7222 
vec_vsl(vector signed char __a,vector unsigned int __b)7223 static vector signed char __ATTRS_o_ai vec_vsl(vector signed char __a,
7224                                                vector unsigned int __b) {
7225   return (vector signed char)__builtin_altivec_vsl((vector int)__a,
7226                                                    (vector int)__b);
7227 }
7228 
vec_vsl(vector unsigned char __a,vector unsigned char __b)7229 static vector unsigned char __ATTRS_o_ai vec_vsl(vector unsigned char __a,
7230                                                  vector unsigned char __b) {
7231   return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
7232                                                      (vector int)__b);
7233 }
7234 
vec_vsl(vector unsigned char __a,vector unsigned short __b)7235 static vector unsigned char __ATTRS_o_ai vec_vsl(vector unsigned char __a,
7236                                                  vector unsigned short __b) {
7237   return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
7238                                                      (vector int)__b);
7239 }
7240 
vec_vsl(vector unsigned char __a,vector unsigned int __b)7241 static vector unsigned char __ATTRS_o_ai vec_vsl(vector unsigned char __a,
7242                                                  vector unsigned int __b) {
7243   return (vector unsigned char)__builtin_altivec_vsl((vector int)__a,
7244                                                      (vector int)__b);
7245 }
7246 
vec_vsl(vector bool char __a,vector unsigned char __b)7247 static vector bool char __ATTRS_o_ai vec_vsl(vector bool char __a,
7248                                              vector unsigned char __b) {
7249   return (vector bool char)__builtin_altivec_vsl((vector int)__a,
7250                                                  (vector int)__b);
7251 }
7252 
vec_vsl(vector bool char __a,vector unsigned short __b)7253 static vector bool char __ATTRS_o_ai vec_vsl(vector bool char __a,
7254                                              vector unsigned short __b) {
7255   return (vector bool char)__builtin_altivec_vsl((vector int)__a,
7256                                                  (vector int)__b);
7257 }
7258 
vec_vsl(vector bool char __a,vector unsigned int __b)7259 static vector bool char __ATTRS_o_ai vec_vsl(vector bool char __a,
7260                                              vector unsigned int __b) {
7261   return (vector bool char)__builtin_altivec_vsl((vector int)__a,
7262                                                  (vector int)__b);
7263 }
7264 
vec_vsl(vector short __a,vector unsigned char __b)7265 static vector short __ATTRS_o_ai vec_vsl(vector short __a,
7266                                          vector unsigned char __b) {
7267   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7268 }
7269 
vec_vsl(vector short __a,vector unsigned short __b)7270 static vector short __ATTRS_o_ai vec_vsl(vector short __a,
7271                                          vector unsigned short __b) {
7272   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7273 }
7274 
vec_vsl(vector short __a,vector unsigned int __b)7275 static vector short __ATTRS_o_ai vec_vsl(vector short __a,
7276                                          vector unsigned int __b) {
7277   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7278 }
7279 
vec_vsl(vector unsigned short __a,vector unsigned char __b)7280 static vector unsigned short __ATTRS_o_ai vec_vsl(vector unsigned short __a,
7281                                                   vector unsigned char __b) {
7282   return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
7283                                                       (vector int)__b);
7284 }
7285 
vec_vsl(vector unsigned short __a,vector unsigned short __b)7286 static vector unsigned short __ATTRS_o_ai vec_vsl(vector unsigned short __a,
7287                                                   vector unsigned short __b) {
7288   return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
7289                                                       (vector int)__b);
7290 }
7291 
vec_vsl(vector unsigned short __a,vector unsigned int __b)7292 static vector unsigned short __ATTRS_o_ai vec_vsl(vector unsigned short __a,
7293                                                   vector unsigned int __b) {
7294   return (vector unsigned short)__builtin_altivec_vsl((vector int)__a,
7295                                                       (vector int)__b);
7296 }
7297 
vec_vsl(vector bool short __a,vector unsigned char __b)7298 static vector bool short __ATTRS_o_ai vec_vsl(vector bool short __a,
7299                                               vector unsigned char __b) {
7300   return (vector bool short)__builtin_altivec_vsl((vector int)__a,
7301                                                   (vector int)__b);
7302 }
7303 
vec_vsl(vector bool short __a,vector unsigned short __b)7304 static vector bool short __ATTRS_o_ai vec_vsl(vector bool short __a,
7305                                               vector unsigned short __b) {
7306   return (vector bool short)__builtin_altivec_vsl((vector int)__a,
7307                                                   (vector int)__b);
7308 }
7309 
vec_vsl(vector bool short __a,vector unsigned int __b)7310 static vector bool short __ATTRS_o_ai vec_vsl(vector bool short __a,
7311                                               vector unsigned int __b) {
7312   return (vector bool short)__builtin_altivec_vsl((vector int)__a,
7313                                                   (vector int)__b);
7314 }
7315 
vec_vsl(vector pixel __a,vector unsigned char __b)7316 static vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a,
7317                                          vector unsigned char __b) {
7318   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7319 }
7320 
vec_vsl(vector pixel __a,vector unsigned short __b)7321 static vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a,
7322                                          vector unsigned short __b) {
7323   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7324 }
7325 
vec_vsl(vector pixel __a,vector unsigned int __b)7326 static vector pixel __ATTRS_o_ai vec_vsl(vector pixel __a,
7327                                          vector unsigned int __b) {
7328   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
7329 }
7330 
vec_vsl(vector int __a,vector unsigned char __b)7331 static vector int __ATTRS_o_ai vec_vsl(vector int __a,
7332                                        vector unsigned char __b) {
7333   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
7334 }
7335 
vec_vsl(vector int __a,vector unsigned short __b)7336 static vector int __ATTRS_o_ai vec_vsl(vector int __a,
7337                                        vector unsigned short __b) {
7338   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
7339 }
7340 
vec_vsl(vector int __a,vector unsigned int __b)7341 static vector int __ATTRS_o_ai vec_vsl(vector int __a,
7342                                        vector unsigned int __b) {
7343   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
7344 }
7345 
vec_vsl(vector unsigned int __a,vector unsigned char __b)7346 static vector unsigned int __ATTRS_o_ai vec_vsl(vector unsigned int __a,
7347                                                 vector unsigned char __b) {
7348   return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
7349                                                     (vector int)__b);
7350 }
7351 
vec_vsl(vector unsigned int __a,vector unsigned short __b)7352 static vector unsigned int __ATTRS_o_ai vec_vsl(vector unsigned int __a,
7353                                                 vector unsigned short __b) {
7354   return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
7355                                                     (vector int)__b);
7356 }
7357 
vec_vsl(vector unsigned int __a,vector unsigned int __b)7358 static vector unsigned int __ATTRS_o_ai vec_vsl(vector unsigned int __a,
7359                                                 vector unsigned int __b) {
7360   return (vector unsigned int)__builtin_altivec_vsl((vector int)__a,
7361                                                     (vector int)__b);
7362 }
7363 
vec_vsl(vector bool int __a,vector unsigned char __b)7364 static vector bool int __ATTRS_o_ai vec_vsl(vector bool int __a,
7365                                             vector unsigned char __b) {
7366   return (vector bool int)__builtin_altivec_vsl((vector int)__a,
7367                                                 (vector int)__b);
7368 }
7369 
vec_vsl(vector bool int __a,vector unsigned short __b)7370 static vector bool int __ATTRS_o_ai vec_vsl(vector bool int __a,
7371                                             vector unsigned short __b) {
7372   return (vector bool int)__builtin_altivec_vsl((vector int)__a,
7373                                                 (vector int)__b);
7374 }
7375 
vec_vsl(vector bool int __a,vector unsigned int __b)7376 static vector bool int __ATTRS_o_ai vec_vsl(vector bool int __a,
7377                                             vector unsigned int __b) {
7378   return (vector bool int)__builtin_altivec_vsl((vector int)__a,
7379                                                 (vector int)__b);
7380 }
7381 
7382 /* vec_slo */
7383 
vec_slo(vector signed char __a,vector signed char __b)7384 static vector signed char __ATTRS_o_ai vec_slo(vector signed char __a,
7385                                                vector signed char __b) {
7386   return (vector signed char)__builtin_altivec_vslo((vector int)__a,
7387                                                     (vector int)__b);
7388 }
7389 
vec_slo(vector signed char __a,vector unsigned char __b)7390 static vector signed char __ATTRS_o_ai vec_slo(vector signed char __a,
7391                                                vector unsigned char __b) {
7392   return (vector signed char)__builtin_altivec_vslo((vector int)__a,
7393                                                     (vector int)__b);
7394 }
7395 
vec_slo(vector unsigned char __a,vector signed char __b)7396 static vector unsigned char __ATTRS_o_ai vec_slo(vector unsigned char __a,
7397                                                  vector signed char __b) {
7398   return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
7399                                                       (vector int)__b);
7400 }
7401 
vec_slo(vector unsigned char __a,vector unsigned char __b)7402 static vector unsigned char __ATTRS_o_ai vec_slo(vector unsigned char __a,
7403                                                  vector unsigned char __b) {
7404   return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
7405                                                       (vector int)__b);
7406 }
7407 
vec_slo(vector short __a,vector signed char __b)7408 static vector short __ATTRS_o_ai vec_slo(vector short __a,
7409                                          vector signed char __b) {
7410   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7411 }
7412 
vec_slo(vector short __a,vector unsigned char __b)7413 static vector short __ATTRS_o_ai vec_slo(vector short __a,
7414                                          vector unsigned char __b) {
7415   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7416 }
7417 
vec_slo(vector unsigned short __a,vector signed char __b)7418 static vector unsigned short __ATTRS_o_ai vec_slo(vector unsigned short __a,
7419                                                   vector signed char __b) {
7420   return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
7421                                                        (vector int)__b);
7422 }
7423 
vec_slo(vector unsigned short __a,vector unsigned char __b)7424 static vector unsigned short __ATTRS_o_ai vec_slo(vector unsigned short __a,
7425                                                   vector unsigned char __b) {
7426   return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
7427                                                        (vector int)__b);
7428 }
7429 
vec_slo(vector pixel __a,vector signed char __b)7430 static vector pixel __ATTRS_o_ai vec_slo(vector pixel __a,
7431                                          vector signed char __b) {
7432   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7433 }
7434 
vec_slo(vector pixel __a,vector unsigned char __b)7435 static vector pixel __ATTRS_o_ai vec_slo(vector pixel __a,
7436                                          vector unsigned char __b) {
7437   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7438 }
7439 
vec_slo(vector int __a,vector signed char __b)7440 static vector int __ATTRS_o_ai vec_slo(vector int __a, vector signed char __b) {
7441   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
7442 }
7443 
vec_slo(vector int __a,vector unsigned char __b)7444 static vector int __ATTRS_o_ai vec_slo(vector int __a,
7445                                        vector unsigned char __b) {
7446   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
7447 }
7448 
vec_slo(vector unsigned int __a,vector signed char __b)7449 static vector unsigned int __ATTRS_o_ai vec_slo(vector unsigned int __a,
7450                                                 vector signed char __b) {
7451   return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
7452                                                      (vector int)__b);
7453 }
7454 
vec_slo(vector unsigned int __a,vector unsigned char __b)7455 static vector unsigned int __ATTRS_o_ai vec_slo(vector unsigned int __a,
7456                                                 vector unsigned char __b) {
7457   return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
7458                                                      (vector int)__b);
7459 }
7460 
vec_slo(vector float __a,vector signed char __b)7461 static vector float __ATTRS_o_ai vec_slo(vector float __a,
7462                                          vector signed char __b) {
7463   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7464 }
7465 
vec_slo(vector float __a,vector unsigned char __b)7466 static vector float __ATTRS_o_ai vec_slo(vector float __a,
7467                                          vector unsigned char __b) {
7468   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7469 }
7470 
7471 /* vec_vslo */
7472 
vec_vslo(vector signed char __a,vector signed char __b)7473 static vector signed char __ATTRS_o_ai vec_vslo(vector signed char __a,
7474                                                 vector signed char __b) {
7475   return (vector signed char)__builtin_altivec_vslo((vector int)__a,
7476                                                     (vector int)__b);
7477 }
7478 
vec_vslo(vector signed char __a,vector unsigned char __b)7479 static vector signed char __ATTRS_o_ai vec_vslo(vector signed char __a,
7480                                                 vector unsigned char __b) {
7481   return (vector signed char)__builtin_altivec_vslo((vector int)__a,
7482                                                     (vector int)__b);
7483 }
7484 
vec_vslo(vector unsigned char __a,vector signed char __b)7485 static vector unsigned char __ATTRS_o_ai vec_vslo(vector unsigned char __a,
7486                                                   vector signed char __b) {
7487   return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
7488                                                       (vector int)__b);
7489 }
7490 
vec_vslo(vector unsigned char __a,vector unsigned char __b)7491 static vector unsigned char __ATTRS_o_ai vec_vslo(vector unsigned char __a,
7492                                                   vector unsigned char __b) {
7493   return (vector unsigned char)__builtin_altivec_vslo((vector int)__a,
7494                                                       (vector int)__b);
7495 }
7496 
vec_vslo(vector short __a,vector signed char __b)7497 static vector short __ATTRS_o_ai vec_vslo(vector short __a,
7498                                           vector signed char __b) {
7499   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7500 }
7501 
vec_vslo(vector short __a,vector unsigned char __b)7502 static vector short __ATTRS_o_ai vec_vslo(vector short __a,
7503                                           vector unsigned char __b) {
7504   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7505 }
7506 
vec_vslo(vector unsigned short __a,vector signed char __b)7507 static vector unsigned short __ATTRS_o_ai vec_vslo(vector unsigned short __a,
7508                                                    vector signed char __b) {
7509   return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
7510                                                        (vector int)__b);
7511 }
7512 
vec_vslo(vector unsigned short __a,vector unsigned char __b)7513 static vector unsigned short __ATTRS_o_ai vec_vslo(vector unsigned short __a,
7514                                                    vector unsigned char __b) {
7515   return (vector unsigned short)__builtin_altivec_vslo((vector int)__a,
7516                                                        (vector int)__b);
7517 }
7518 
vec_vslo(vector pixel __a,vector signed char __b)7519 static vector pixel __ATTRS_o_ai vec_vslo(vector pixel __a,
7520                                           vector signed char __b) {
7521   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7522 }
7523 
vec_vslo(vector pixel __a,vector unsigned char __b)7524 static vector pixel __ATTRS_o_ai vec_vslo(vector pixel __a,
7525                                           vector unsigned char __b) {
7526   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7527 }
7528 
vec_vslo(vector int __a,vector signed char __b)7529 static vector int __ATTRS_o_ai vec_vslo(vector int __a,
7530                                         vector signed char __b) {
7531   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
7532 }
7533 
vec_vslo(vector int __a,vector unsigned char __b)7534 static vector int __ATTRS_o_ai vec_vslo(vector int __a,
7535                                         vector unsigned char __b) {
7536   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
7537 }
7538 
vec_vslo(vector unsigned int __a,vector signed char __b)7539 static vector unsigned int __ATTRS_o_ai vec_vslo(vector unsigned int __a,
7540                                                  vector signed char __b) {
7541   return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
7542                                                      (vector int)__b);
7543 }
7544 
vec_vslo(vector unsigned int __a,vector unsigned char __b)7545 static vector unsigned int __ATTRS_o_ai vec_vslo(vector unsigned int __a,
7546                                                  vector unsigned char __b) {
7547   return (vector unsigned int)__builtin_altivec_vslo((vector int)__a,
7548                                                      (vector int)__b);
7549 }
7550 
vec_vslo(vector float __a,vector signed char __b)7551 static vector float __ATTRS_o_ai vec_vslo(vector float __a,
7552                                           vector signed char __b) {
7553   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7554 }
7555 
vec_vslo(vector float __a,vector unsigned char __b)7556 static vector float __ATTRS_o_ai vec_vslo(vector float __a,
7557                                           vector unsigned char __b) {
7558   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
7559 }
7560 
7561 /* vec_splat */
7562 
vec_splat(vector signed char __a,unsigned const int __b)7563 static vector signed char __ATTRS_o_ai vec_splat(vector signed char __a,
7564                                                  unsigned const int __b) {
7565   return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F));
7566 }
7567 
vec_splat(vector unsigned char __a,unsigned const int __b)7568 static vector unsigned char __ATTRS_o_ai vec_splat(vector unsigned char __a,
7569                                                    unsigned const int __b) {
7570   return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F));
7571 }
7572 
vec_splat(vector bool char __a,unsigned const int __b)7573 static vector bool char __ATTRS_o_ai vec_splat(vector bool char __a,
7574                                                unsigned const int __b) {
7575   return vec_perm(__a, __a, (vector unsigned char)(__b & 0x0F));
7576 }
7577 
vec_splat(vector signed short __a,unsigned const int __b)7578 static vector signed short __ATTRS_o_ai vec_splat(vector signed short __a,
7579                                                   unsigned const int __b) {
7580   unsigned char b0 = (__b & 0x07) * 2;
7581   unsigned char b1 = b0 + 1;
7582   return vec_perm(__a, __a,
7583                   (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1,
7584                                          b0, b1, b0, b1, b0, b1, b0, b1));
7585 }
7586 
vec_splat(vector unsigned short __a,unsigned const int __b)7587 static vector unsigned short __ATTRS_o_ai vec_splat(vector unsigned short __a,
7588                                                     unsigned const int __b) {
7589   unsigned char b0 = (__b & 0x07) * 2;
7590   unsigned char b1 = b0 + 1;
7591   return vec_perm(__a, __a,
7592                   (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1,
7593                                          b0, b1, b0, b1, b0, b1, b0, b1));
7594 }
7595 
vec_splat(vector bool short __a,unsigned const int __b)7596 static vector bool short __ATTRS_o_ai vec_splat(vector bool short __a,
7597                                                 unsigned const int __b) {
7598   unsigned char b0 = (__b & 0x07) * 2;
7599   unsigned char b1 = b0 + 1;
7600   return vec_perm(__a, __a,
7601                   (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1,
7602                                          b0, b1, b0, b1, b0, b1, b0, b1));
7603 }
7604 
vec_splat(vector pixel __a,unsigned const int __b)7605 static vector pixel __ATTRS_o_ai vec_splat(vector pixel __a,
7606                                            unsigned const int __b) {
7607   unsigned char b0 = (__b & 0x07) * 2;
7608   unsigned char b1 = b0 + 1;
7609   return vec_perm(__a, __a,
7610                   (vector unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1,
7611                                          b0, b1, b0, b1, b0, b1, b0, b1));
7612 }
7613 
vec_splat(vector signed int __a,unsigned const int __b)7614 static vector signed int __ATTRS_o_ai vec_splat(vector signed int __a,
7615                                                 unsigned const int __b) {
7616   unsigned char b0 = (__b & 0x03) * 4;
7617   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
7618   return vec_perm(__a, __a,
7619                   (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0,
7620                                          b1, b2, b3, b0, b1, b2, b3));
7621 }
7622 
vec_splat(vector unsigned int __a,unsigned const int __b)7623 static vector unsigned int __ATTRS_o_ai vec_splat(vector unsigned int __a,
7624                                                   unsigned const int __b) {
7625   unsigned char b0 = (__b & 0x03) * 4;
7626   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
7627   return vec_perm(__a, __a,
7628                   (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0,
7629                                          b1, b2, b3, b0, b1, b2, b3));
7630 }
7631 
vec_splat(vector bool int __a,unsigned const int __b)7632 static vector bool int __ATTRS_o_ai vec_splat(vector bool int __a,
7633                                               unsigned const int __b) {
7634   unsigned char b0 = (__b & 0x03) * 4;
7635   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
7636   return vec_perm(__a, __a,
7637                   (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0,
7638                                          b1, b2, b3, b0, b1, b2, b3));
7639 }
7640 
vec_splat(vector float __a,unsigned const int __b)7641 static vector float __ATTRS_o_ai vec_splat(vector float __a,
7642                                            unsigned const int __b) {
7643   unsigned char b0 = (__b & 0x03) * 4;
7644   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
7645   return vec_perm(__a, __a,
7646                   (vector unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0,
7647                                          b1, b2, b3, b0, b1, b2, b3));
7648 }
7649 
7650 #ifdef __VSX__
vec_splat(vector double __a,unsigned const int __b)7651 static vector double __ATTRS_o_ai vec_splat(vector double __a,
7652                                             unsigned const int __b) {
7653   unsigned char b0 = (__b & 0x01) * 8;
7654   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4,
7655                 b5 = b0 + 5, b6 = b0 + 6, b7 = b0 + 7;
7656   return vec_perm(__a, __a,
7657                   (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7,
7658                                          b0, b1, b2, b3, b4, b5, b6, b7));
7659 }
vec_splat(vector bool long long __a,unsigned const int __b)7660 static vector bool long long __ATTRS_o_ai vec_splat(vector bool long long __a,
7661                                                     unsigned const int __b) {
7662   unsigned char b0 = (__b & 0x01) * 8;
7663   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4,
7664                 b5 = b0 + 5, b6 = b0 + 6, b7 = b0 + 7;
7665   return vec_perm(__a, __a,
7666                   (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7,
7667                                          b0, b1, b2, b3, b4, b5, b6, b7));
7668 }
7669 static vector signed long long __ATTRS_o_ai
vec_splat(vector signed long long __a,unsigned const int __b)7670 vec_splat(vector signed long long __a, unsigned const int __b) {
7671   unsigned char b0 = (__b & 0x01) * 8;
7672   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4,
7673                 b5 = b0 + 5, b6 = b0 + 6, b7 = b0 + 7;
7674   return vec_perm(__a, __a,
7675                   (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7,
7676                                          b0, b1, b2, b3, b4, b5, b6, b7));
7677 }
7678 static vector unsigned long long __ATTRS_o_ai
vec_splat(vector unsigned long long __a,unsigned const int __b)7679 vec_splat(vector unsigned long long __a, unsigned const int __b) {
7680   unsigned char b0 = (__b & 0x01) * 8;
7681   unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4,
7682                 b5 = b0 + 5, b6 = b0 + 6, b7 = b0 + 7;
7683   return vec_perm(__a, __a,
7684                   (vector unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7,
7685                                          b0, b1, b2, b3, b4, b5, b6, b7));
7686 }
7687 #endif
7688 
7689 /* vec_vspltb */
7690 
7691 #define __builtin_altivec_vspltb vec_vspltb
7692 
vec_vspltb(vector signed char __a,unsigned char __b)7693 static vector signed char __ATTRS_o_ai vec_vspltb(vector signed char __a,
7694                                                   unsigned char __b) {
7695   return vec_perm(__a, __a, (vector unsigned char)(__b));
7696 }
7697 
vec_vspltb(vector unsigned char __a,unsigned char __b)7698 static vector unsigned char __ATTRS_o_ai vec_vspltb(vector unsigned char __a,
7699                                                     unsigned char __b) {
7700   return vec_perm(__a, __a, (vector unsigned char)(__b));
7701 }
7702 
vec_vspltb(vector bool char __a,unsigned char __b)7703 static vector bool char __ATTRS_o_ai vec_vspltb(vector bool char __a,
7704                                                 unsigned char __b) {
7705   return vec_perm(__a, __a, (vector unsigned char)(__b));
7706 }
7707 
7708 /* vec_vsplth */
7709 
7710 #define __builtin_altivec_vsplth vec_vsplth
7711 
vec_vsplth(vector short __a,unsigned char __b)7712 static vector short __ATTRS_o_ai vec_vsplth(vector short __a,
7713                                             unsigned char __b) {
7714   __b *= 2;
7715   unsigned char b1 = __b + 1;
7716   return vec_perm(__a, __a,
7717                   (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
7718                                          __b, b1, __b, b1, __b, b1, __b, b1));
7719 }
7720 
vec_vsplth(vector unsigned short __a,unsigned char __b)7721 static vector unsigned short __ATTRS_o_ai vec_vsplth(vector unsigned short __a,
7722                                                      unsigned char __b) {
7723   __b *= 2;
7724   unsigned char b1 = __b + 1;
7725   return vec_perm(__a, __a,
7726                   (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
7727                                          __b, b1, __b, b1, __b, b1, __b, b1));
7728 }
7729 
vec_vsplth(vector bool short __a,unsigned char __b)7730 static vector bool short __ATTRS_o_ai vec_vsplth(vector bool short __a,
7731                                                  unsigned char __b) {
7732   __b *= 2;
7733   unsigned char b1 = __b + 1;
7734   return vec_perm(__a, __a,
7735                   (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
7736                                          __b, b1, __b, b1, __b, b1, __b, b1));
7737 }
7738 
vec_vsplth(vector pixel __a,unsigned char __b)7739 static vector pixel __ATTRS_o_ai vec_vsplth(vector pixel __a,
7740                                             unsigned char __b) {
7741   __b *= 2;
7742   unsigned char b1 = __b + 1;
7743   return vec_perm(__a, __a,
7744                   (vector unsigned char)(__b, b1, __b, b1, __b, b1, __b, b1,
7745                                          __b, b1, __b, b1, __b, b1, __b, b1));
7746 }
7747 
7748 /* vec_vspltw */
7749 
7750 #define __builtin_altivec_vspltw vec_vspltw
7751 
vec_vspltw(vector int __a,unsigned char __b)7752 static vector int __ATTRS_o_ai vec_vspltw(vector int __a, unsigned char __b) {
7753   __b *= 4;
7754   unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
7755   return vec_perm(__a, __a,
7756                   (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
7757                                          b1, b2, b3, __b, b1, b2, b3));
7758 }
7759 
vec_vspltw(vector unsigned int __a,unsigned char __b)7760 static vector unsigned int __ATTRS_o_ai vec_vspltw(vector unsigned int __a,
7761                                                    unsigned char __b) {
7762   __b *= 4;
7763   unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
7764   return vec_perm(__a, __a,
7765                   (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
7766                                          b1, b2, b3, __b, b1, b2, b3));
7767 }
7768 
vec_vspltw(vector bool int __a,unsigned char __b)7769 static vector bool int __ATTRS_o_ai vec_vspltw(vector bool int __a,
7770                                                unsigned char __b) {
7771   __b *= 4;
7772   unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
7773   return vec_perm(__a, __a,
7774                   (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
7775                                          b1, b2, b3, __b, b1, b2, b3));
7776 }
7777 
vec_vspltw(vector float __a,unsigned char __b)7778 static vector float __ATTRS_o_ai vec_vspltw(vector float __a,
7779                                             unsigned char __b) {
7780   __b *= 4;
7781   unsigned char b1 = __b + 1, b2 = __b + 2, b3 = __b + 3;
7782   return vec_perm(__a, __a,
7783                   (vector unsigned char)(__b, b1, b2, b3, __b, b1, b2, b3, __b,
7784                                          b1, b2, b3, __b, b1, b2, b3));
7785 }
7786 
7787 /* vec_splat_s8 */
7788 
7789 #define __builtin_altivec_vspltisb vec_splat_s8
7790 
7791 // FIXME: parameter should be treated as 5-bit signed literal
vec_splat_s8(signed char __a)7792 static vector signed char __ATTRS_o_ai vec_splat_s8(signed char __a) {
7793   return (vector signed char)(__a);
7794 }
7795 
7796 /* vec_vspltisb */
7797 
7798 // FIXME: parameter should be treated as 5-bit signed literal
vec_vspltisb(signed char __a)7799 static vector signed char __ATTRS_o_ai vec_vspltisb(signed char __a) {
7800   return (vector signed char)(__a);
7801 }
7802 
7803 /* vec_splat_s16 */
7804 
7805 #define __builtin_altivec_vspltish vec_splat_s16
7806 
7807 // FIXME: parameter should be treated as 5-bit signed literal
vec_splat_s16(signed char __a)7808 static vector short __ATTRS_o_ai vec_splat_s16(signed char __a) {
7809   return (vector short)(__a);
7810 }
7811 
7812 /* vec_vspltish */
7813 
7814 // FIXME: parameter should be treated as 5-bit signed literal
vec_vspltish(signed char __a)7815 static vector short __ATTRS_o_ai vec_vspltish(signed char __a) {
7816   return (vector short)(__a);
7817 }
7818 
7819 /* vec_splat_s32 */
7820 
7821 #define __builtin_altivec_vspltisw vec_splat_s32
7822 
7823 // FIXME: parameter should be treated as 5-bit signed literal
vec_splat_s32(signed char __a)7824 static vector int __ATTRS_o_ai vec_splat_s32(signed char __a) {
7825   return (vector int)(__a);
7826 }
7827 
7828 /* vec_vspltisw */
7829 
7830 // FIXME: parameter should be treated as 5-bit signed literal
vec_vspltisw(signed char __a)7831 static vector int __ATTRS_o_ai vec_vspltisw(signed char __a) {
7832   return (vector int)(__a);
7833 }
7834 
7835 /* vec_splat_u8 */
7836 
7837 // FIXME: parameter should be treated as 5-bit signed literal
vec_splat_u8(unsigned char __a)7838 static vector unsigned char __ATTRS_o_ai vec_splat_u8(unsigned char __a) {
7839   return (vector unsigned char)(__a);
7840 }
7841 
7842 /* vec_splat_u16 */
7843 
7844 // FIXME: parameter should be treated as 5-bit signed literal
vec_splat_u16(signed char __a)7845 static vector unsigned short __ATTRS_o_ai vec_splat_u16(signed char __a) {
7846   return (vector unsigned short)(__a);
7847 }
7848 
7849 /* vec_splat_u32 */
7850 
7851 // FIXME: parameter should be treated as 5-bit signed literal
vec_splat_u32(signed char __a)7852 static vector unsigned int __ATTRS_o_ai vec_splat_u32(signed char __a) {
7853   return (vector unsigned int)(__a);
7854 }
7855 
7856 /* vec_sr */
7857 
vec_sr(vector signed char __a,vector unsigned char __b)7858 static vector signed char __ATTRS_o_ai vec_sr(vector signed char __a,
7859                                               vector unsigned char __b) {
7860   vector unsigned char __res = (vector unsigned char)__a >> __b;
7861   return (vector signed char)__res;
7862 }
7863 
vec_sr(vector unsigned char __a,vector unsigned char __b)7864 static vector unsigned char __ATTRS_o_ai vec_sr(vector unsigned char __a,
7865                                                 vector unsigned char __b) {
7866   return __a >> __b;
7867 }
7868 
vec_sr(vector signed short __a,vector unsigned short __b)7869 static vector signed short __ATTRS_o_ai vec_sr(vector signed short __a,
7870                                         vector unsigned short __b) {
7871   vector unsigned short __res = (vector unsigned short)__a >> __b;
7872   return (vector signed short)__res;
7873 }
7874 
vec_sr(vector unsigned short __a,vector unsigned short __b)7875 static vector unsigned short __ATTRS_o_ai vec_sr(vector unsigned short __a,
7876                                                  vector unsigned short __b) {
7877   return __a >> __b;
7878 }
7879 
vec_sr(vector signed int __a,vector unsigned int __b)7880 static vector signed int __ATTRS_o_ai vec_sr(vector signed int __a,
7881                                              vector unsigned int __b) {
7882   vector unsigned int __res = (vector unsigned int)__a >> __b;
7883   return (vector signed int)__res;
7884 }
7885 
vec_sr(vector unsigned int __a,vector unsigned int __b)7886 static vector unsigned int __ATTRS_o_ai vec_sr(vector unsigned int __a,
7887                                                vector unsigned int __b) {
7888   return __a >> __b;
7889 }
7890 
7891 #ifdef __POWER8_VECTOR__
7892 static vector signed long long __ATTRS_o_ai
vec_sr(vector signed long long __a,vector unsigned long long __b)7893 vec_sr(vector signed long long __a, vector unsigned long long __b) {
7894   vector unsigned long long __res = (vector unsigned long long)__a >> __b;
7895   return (vector signed long long)__res;
7896 }
7897 
7898 static vector unsigned long long __ATTRS_o_ai
vec_sr(vector unsigned long long __a,vector unsigned long long __b)7899 vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
7900   return __a >> __b;
7901 }
7902 #endif
7903 
7904 /* vec_vsrb */
7905 
7906 #define __builtin_altivec_vsrb vec_vsrb
7907 
vec_vsrb(vector signed char __a,vector unsigned char __b)7908 static vector signed char __ATTRS_o_ai vec_vsrb(vector signed char __a,
7909                                                 vector unsigned char __b) {
7910   return __a >> (vector signed char)__b;
7911 }
7912 
vec_vsrb(vector unsigned char __a,vector unsigned char __b)7913 static vector unsigned char __ATTRS_o_ai vec_vsrb(vector unsigned char __a,
7914                                                   vector unsigned char __b) {
7915   return __a >> __b;
7916 }
7917 
7918 /* vec_vsrh */
7919 
7920 #define __builtin_altivec_vsrh vec_vsrh
7921 
vec_vsrh(vector short __a,vector unsigned short __b)7922 static vector short __ATTRS_o_ai vec_vsrh(vector short __a,
7923                                           vector unsigned short __b) {
7924   return __a >> (vector short)__b;
7925 }
7926 
vec_vsrh(vector unsigned short __a,vector unsigned short __b)7927 static vector unsigned short __ATTRS_o_ai vec_vsrh(vector unsigned short __a,
7928                                                    vector unsigned short __b) {
7929   return __a >> __b;
7930 }
7931 
7932 /* vec_vsrw */
7933 
7934 #define __builtin_altivec_vsrw vec_vsrw
7935 
vec_vsrw(vector int __a,vector unsigned int __b)7936 static vector int __ATTRS_o_ai vec_vsrw(vector int __a,
7937                                         vector unsigned int __b) {
7938   return __a >> (vector int)__b;
7939 }
7940 
vec_vsrw(vector unsigned int __a,vector unsigned int __b)7941 static vector unsigned int __ATTRS_o_ai vec_vsrw(vector unsigned int __a,
7942                                                  vector unsigned int __b) {
7943   return __a >> __b;
7944 }
7945 
7946 /* vec_sra */
7947 
vec_sra(vector signed char __a,vector unsigned char __b)7948 static vector signed char __ATTRS_o_ai vec_sra(vector signed char __a,
7949                                                vector unsigned char __b) {
7950   return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
7951 }
7952 
vec_sra(vector unsigned char __a,vector unsigned char __b)7953 static vector unsigned char __ATTRS_o_ai vec_sra(vector unsigned char __a,
7954                                                  vector unsigned char __b) {
7955   return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
7956 }
7957 
vec_sra(vector short __a,vector unsigned short __b)7958 static vector short __ATTRS_o_ai vec_sra(vector short __a,
7959                                          vector unsigned short __b) {
7960   return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
7961 }
7962 
vec_sra(vector unsigned short __a,vector unsigned short __b)7963 static vector unsigned short __ATTRS_o_ai vec_sra(vector unsigned short __a,
7964                                                   vector unsigned short __b) {
7965   return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
7966 }
7967 
vec_sra(vector int __a,vector unsigned int __b)7968 static vector int __ATTRS_o_ai vec_sra(vector int __a,
7969                                        vector unsigned int __b) {
7970   return __builtin_altivec_vsraw(__a, __b);
7971 }
7972 
vec_sra(vector unsigned int __a,vector unsigned int __b)7973 static vector unsigned int __ATTRS_o_ai vec_sra(vector unsigned int __a,
7974                                                 vector unsigned int __b) {
7975   return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
7976 }
7977 
7978 #ifdef __POWER8_VECTOR__
7979 static vector signed long long __ATTRS_o_ai
vec_sra(vector signed long long __a,vector unsigned long long __b)7980 vec_sra(vector signed long long __a, vector unsigned long long __b) {
7981   return __a >> __b;
7982 }
7983 
7984 static vector unsigned long long __ATTRS_o_ai
vec_sra(vector unsigned long long __a,vector unsigned long long __b)7985 vec_sra(vector unsigned long long __a, vector unsigned long long __b) {
7986   return (vector unsigned long long)((vector signed long long)__a >> __b);
7987 }
7988 #endif
7989 
7990 /* vec_vsrab */
7991 
vec_vsrab(vector signed char __a,vector unsigned char __b)7992 static vector signed char __ATTRS_o_ai vec_vsrab(vector signed char __a,
7993                                                  vector unsigned char __b) {
7994   return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
7995 }
7996 
vec_vsrab(vector unsigned char __a,vector unsigned char __b)7997 static vector unsigned char __ATTRS_o_ai vec_vsrab(vector unsigned char __a,
7998                                                    vector unsigned char __b) {
7999   return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
8000 }
8001 
8002 /* vec_vsrah */
8003 
vec_vsrah(vector short __a,vector unsigned short __b)8004 static vector short __ATTRS_o_ai vec_vsrah(vector short __a,
8005                                            vector unsigned short __b) {
8006   return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
8007 }
8008 
vec_vsrah(vector unsigned short __a,vector unsigned short __b)8009 static vector unsigned short __ATTRS_o_ai vec_vsrah(vector unsigned short __a,
8010                                                     vector unsigned short __b) {
8011   return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
8012 }
8013 
8014 /* vec_vsraw */
8015 
vec_vsraw(vector int __a,vector unsigned int __b)8016 static vector int __ATTRS_o_ai vec_vsraw(vector int __a,
8017                                          vector unsigned int __b) {
8018   return __builtin_altivec_vsraw(__a, __b);
8019 }
8020 
vec_vsraw(vector unsigned int __a,vector unsigned int __b)8021 static vector unsigned int __ATTRS_o_ai vec_vsraw(vector unsigned int __a,
8022                                                   vector unsigned int __b) {
8023   return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
8024 }
8025 
8026 /* vec_srl */
8027 
vec_srl(vector signed char __a,vector unsigned char __b)8028 static vector signed char __ATTRS_o_ai vec_srl(vector signed char __a,
8029                                                vector unsigned char __b) {
8030   return (vector signed char)__builtin_altivec_vsr((vector int)__a,
8031                                                    (vector int)__b);
8032 }
8033 
vec_srl(vector signed char __a,vector unsigned short __b)8034 static vector signed char __ATTRS_o_ai vec_srl(vector signed char __a,
8035                                                vector unsigned short __b) {
8036   return (vector signed char)__builtin_altivec_vsr((vector int)__a,
8037                                                    (vector int)__b);
8038 }
8039 
vec_srl(vector signed char __a,vector unsigned int __b)8040 static vector signed char __ATTRS_o_ai vec_srl(vector signed char __a,
8041                                                vector unsigned int __b) {
8042   return (vector signed char)__builtin_altivec_vsr((vector int)__a,
8043                                                    (vector int)__b);
8044 }
8045 
vec_srl(vector unsigned char __a,vector unsigned char __b)8046 static vector unsigned char __ATTRS_o_ai vec_srl(vector unsigned char __a,
8047                                                  vector unsigned char __b) {
8048   return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
8049                                                      (vector int)__b);
8050 }
8051 
vec_srl(vector unsigned char __a,vector unsigned short __b)8052 static vector unsigned char __ATTRS_o_ai vec_srl(vector unsigned char __a,
8053                                                  vector unsigned short __b) {
8054   return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
8055                                                      (vector int)__b);
8056 }
8057 
vec_srl(vector unsigned char __a,vector unsigned int __b)8058 static vector unsigned char __ATTRS_o_ai vec_srl(vector unsigned char __a,
8059                                                  vector unsigned int __b) {
8060   return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
8061                                                      (vector int)__b);
8062 }
8063 
vec_srl(vector bool char __a,vector unsigned char __b)8064 static vector bool char __ATTRS_o_ai vec_srl(vector bool char __a,
8065                                              vector unsigned char __b) {
8066   return (vector bool char)__builtin_altivec_vsr((vector int)__a,
8067                                                  (vector int)__b);
8068 }
8069 
vec_srl(vector bool char __a,vector unsigned short __b)8070 static vector bool char __ATTRS_o_ai vec_srl(vector bool char __a,
8071                                              vector unsigned short __b) {
8072   return (vector bool char)__builtin_altivec_vsr((vector int)__a,
8073                                                  (vector int)__b);
8074 }
8075 
vec_srl(vector bool char __a,vector unsigned int __b)8076 static vector bool char __ATTRS_o_ai vec_srl(vector bool char __a,
8077                                              vector unsigned int __b) {
8078   return (vector bool char)__builtin_altivec_vsr((vector int)__a,
8079                                                  (vector int)__b);
8080 }
8081 
vec_srl(vector short __a,vector unsigned char __b)8082 static vector short __ATTRS_o_ai vec_srl(vector short __a,
8083                                          vector unsigned char __b) {
8084   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8085 }
8086 
vec_srl(vector short __a,vector unsigned short __b)8087 static vector short __ATTRS_o_ai vec_srl(vector short __a,
8088                                          vector unsigned short __b) {
8089   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8090 }
8091 
vec_srl(vector short __a,vector unsigned int __b)8092 static vector short __ATTRS_o_ai vec_srl(vector short __a,
8093                                          vector unsigned int __b) {
8094   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8095 }
8096 
vec_srl(vector unsigned short __a,vector unsigned char __b)8097 static vector unsigned short __ATTRS_o_ai vec_srl(vector unsigned short __a,
8098                                                   vector unsigned char __b) {
8099   return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
8100                                                       (vector int)__b);
8101 }
8102 
vec_srl(vector unsigned short __a,vector unsigned short __b)8103 static vector unsigned short __ATTRS_o_ai vec_srl(vector unsigned short __a,
8104                                                   vector unsigned short __b) {
8105   return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
8106                                                       (vector int)__b);
8107 }
8108 
vec_srl(vector unsigned short __a,vector unsigned int __b)8109 static vector unsigned short __ATTRS_o_ai vec_srl(vector unsigned short __a,
8110                                                   vector unsigned int __b) {
8111   return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
8112                                                       (vector int)__b);
8113 }
8114 
vec_srl(vector bool short __a,vector unsigned char __b)8115 static vector bool short __ATTRS_o_ai vec_srl(vector bool short __a,
8116                                               vector unsigned char __b) {
8117   return (vector bool short)__builtin_altivec_vsr((vector int)__a,
8118                                                   (vector int)__b);
8119 }
8120 
vec_srl(vector bool short __a,vector unsigned short __b)8121 static vector bool short __ATTRS_o_ai vec_srl(vector bool short __a,
8122                                               vector unsigned short __b) {
8123   return (vector bool short)__builtin_altivec_vsr((vector int)__a,
8124                                                   (vector int)__b);
8125 }
8126 
vec_srl(vector bool short __a,vector unsigned int __b)8127 static vector bool short __ATTRS_o_ai vec_srl(vector bool short __a,
8128                                               vector unsigned int __b) {
8129   return (vector bool short)__builtin_altivec_vsr((vector int)__a,
8130                                                   (vector int)__b);
8131 }
8132 
vec_srl(vector pixel __a,vector unsigned char __b)8133 static vector pixel __ATTRS_o_ai vec_srl(vector pixel __a,
8134                                          vector unsigned char __b) {
8135   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8136 }
8137 
vec_srl(vector pixel __a,vector unsigned short __b)8138 static vector pixel __ATTRS_o_ai vec_srl(vector pixel __a,
8139                                          vector unsigned short __b) {
8140   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8141 }
8142 
vec_srl(vector pixel __a,vector unsigned int __b)8143 static vector pixel __ATTRS_o_ai vec_srl(vector pixel __a,
8144                                          vector unsigned int __b) {
8145   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8146 }
8147 
vec_srl(vector int __a,vector unsigned char __b)8148 static vector int __ATTRS_o_ai vec_srl(vector int __a,
8149                                        vector unsigned char __b) {
8150   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
8151 }
8152 
vec_srl(vector int __a,vector unsigned short __b)8153 static vector int __ATTRS_o_ai vec_srl(vector int __a,
8154                                        vector unsigned short __b) {
8155   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
8156 }
8157 
vec_srl(vector int __a,vector unsigned int __b)8158 static vector int __ATTRS_o_ai vec_srl(vector int __a,
8159                                        vector unsigned int __b) {
8160   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
8161 }
8162 
vec_srl(vector unsigned int __a,vector unsigned char __b)8163 static vector unsigned int __ATTRS_o_ai vec_srl(vector unsigned int __a,
8164                                                 vector unsigned char __b) {
8165   return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
8166                                                     (vector int)__b);
8167 }
8168 
vec_srl(vector unsigned int __a,vector unsigned short __b)8169 static vector unsigned int __ATTRS_o_ai vec_srl(vector unsigned int __a,
8170                                                 vector unsigned short __b) {
8171   return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
8172                                                     (vector int)__b);
8173 }
8174 
vec_srl(vector unsigned int __a,vector unsigned int __b)8175 static vector unsigned int __ATTRS_o_ai vec_srl(vector unsigned int __a,
8176                                                 vector unsigned int __b) {
8177   return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
8178                                                     (vector int)__b);
8179 }
8180 
vec_srl(vector bool int __a,vector unsigned char __b)8181 static vector bool int __ATTRS_o_ai vec_srl(vector bool int __a,
8182                                             vector unsigned char __b) {
8183   return (vector bool int)__builtin_altivec_vsr((vector int)__a,
8184                                                 (vector int)__b);
8185 }
8186 
vec_srl(vector bool int __a,vector unsigned short __b)8187 static vector bool int __ATTRS_o_ai vec_srl(vector bool int __a,
8188                                             vector unsigned short __b) {
8189   return (vector bool int)__builtin_altivec_vsr((vector int)__a,
8190                                                 (vector int)__b);
8191 }
8192 
vec_srl(vector bool int __a,vector unsigned int __b)8193 static vector bool int __ATTRS_o_ai vec_srl(vector bool int __a,
8194                                             vector unsigned int __b) {
8195   return (vector bool int)__builtin_altivec_vsr((vector int)__a,
8196                                                 (vector int)__b);
8197 }
8198 
8199 /* vec_vsr */
8200 
vec_vsr(vector signed char __a,vector unsigned char __b)8201 static vector signed char __ATTRS_o_ai vec_vsr(vector signed char __a,
8202                                                vector unsigned char __b) {
8203   return (vector signed char)__builtin_altivec_vsr((vector int)__a,
8204                                                    (vector int)__b);
8205 }
8206 
vec_vsr(vector signed char __a,vector unsigned short __b)8207 static vector signed char __ATTRS_o_ai vec_vsr(vector signed char __a,
8208                                                vector unsigned short __b) {
8209   return (vector signed char)__builtin_altivec_vsr((vector int)__a,
8210                                                    (vector int)__b);
8211 }
8212 
vec_vsr(vector signed char __a,vector unsigned int __b)8213 static vector signed char __ATTRS_o_ai vec_vsr(vector signed char __a,
8214                                                vector unsigned int __b) {
8215   return (vector signed char)__builtin_altivec_vsr((vector int)__a,
8216                                                    (vector int)__b);
8217 }
8218 
vec_vsr(vector unsigned char __a,vector unsigned char __b)8219 static vector unsigned char __ATTRS_o_ai vec_vsr(vector unsigned char __a,
8220                                                  vector unsigned char __b) {
8221   return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
8222                                                      (vector int)__b);
8223 }
8224 
vec_vsr(vector unsigned char __a,vector unsigned short __b)8225 static vector unsigned char __ATTRS_o_ai vec_vsr(vector unsigned char __a,
8226                                                  vector unsigned short __b) {
8227   return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
8228                                                      (vector int)__b);
8229 }
8230 
vec_vsr(vector unsigned char __a,vector unsigned int __b)8231 static vector unsigned char __ATTRS_o_ai vec_vsr(vector unsigned char __a,
8232                                                  vector unsigned int __b) {
8233   return (vector unsigned char)__builtin_altivec_vsr((vector int)__a,
8234                                                      (vector int)__b);
8235 }
8236 
vec_vsr(vector bool char __a,vector unsigned char __b)8237 static vector bool char __ATTRS_o_ai vec_vsr(vector bool char __a,
8238                                              vector unsigned char __b) {
8239   return (vector bool char)__builtin_altivec_vsr((vector int)__a,
8240                                                  (vector int)__b);
8241 }
8242 
vec_vsr(vector bool char __a,vector unsigned short __b)8243 static vector bool char __ATTRS_o_ai vec_vsr(vector bool char __a,
8244                                              vector unsigned short __b) {
8245   return (vector bool char)__builtin_altivec_vsr((vector int)__a,
8246                                                  (vector int)__b);
8247 }
8248 
vec_vsr(vector bool char __a,vector unsigned int __b)8249 static vector bool char __ATTRS_o_ai vec_vsr(vector bool char __a,
8250                                              vector unsigned int __b) {
8251   return (vector bool char)__builtin_altivec_vsr((vector int)__a,
8252                                                  (vector int)__b);
8253 }
8254 
vec_vsr(vector short __a,vector unsigned char __b)8255 static vector short __ATTRS_o_ai vec_vsr(vector short __a,
8256                                          vector unsigned char __b) {
8257   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8258 }
8259 
vec_vsr(vector short __a,vector unsigned short __b)8260 static vector short __ATTRS_o_ai vec_vsr(vector short __a,
8261                                          vector unsigned short __b) {
8262   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8263 }
8264 
vec_vsr(vector short __a,vector unsigned int __b)8265 static vector short __ATTRS_o_ai vec_vsr(vector short __a,
8266                                          vector unsigned int __b) {
8267   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8268 }
8269 
vec_vsr(vector unsigned short __a,vector unsigned char __b)8270 static vector unsigned short __ATTRS_o_ai vec_vsr(vector unsigned short __a,
8271                                                   vector unsigned char __b) {
8272   return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
8273                                                       (vector int)__b);
8274 }
8275 
vec_vsr(vector unsigned short __a,vector unsigned short __b)8276 static vector unsigned short __ATTRS_o_ai vec_vsr(vector unsigned short __a,
8277                                                   vector unsigned short __b) {
8278   return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
8279                                                       (vector int)__b);
8280 }
8281 
vec_vsr(vector unsigned short __a,vector unsigned int __b)8282 static vector unsigned short __ATTRS_o_ai vec_vsr(vector unsigned short __a,
8283                                                   vector unsigned int __b) {
8284   return (vector unsigned short)__builtin_altivec_vsr((vector int)__a,
8285                                                       (vector int)__b);
8286 }
8287 
vec_vsr(vector bool short __a,vector unsigned char __b)8288 static vector bool short __ATTRS_o_ai vec_vsr(vector bool short __a,
8289                                               vector unsigned char __b) {
8290   return (vector bool short)__builtin_altivec_vsr((vector int)__a,
8291                                                   (vector int)__b);
8292 }
8293 
vec_vsr(vector bool short __a,vector unsigned short __b)8294 static vector bool short __ATTRS_o_ai vec_vsr(vector bool short __a,
8295                                               vector unsigned short __b) {
8296   return (vector bool short)__builtin_altivec_vsr((vector int)__a,
8297                                                   (vector int)__b);
8298 }
8299 
vec_vsr(vector bool short __a,vector unsigned int __b)8300 static vector bool short __ATTRS_o_ai vec_vsr(vector bool short __a,
8301                                               vector unsigned int __b) {
8302   return (vector bool short)__builtin_altivec_vsr((vector int)__a,
8303                                                   (vector int)__b);
8304 }
8305 
vec_vsr(vector pixel __a,vector unsigned char __b)8306 static vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a,
8307                                          vector unsigned char __b) {
8308   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8309 }
8310 
vec_vsr(vector pixel __a,vector unsigned short __b)8311 static vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a,
8312                                          vector unsigned short __b) {
8313   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8314 }
8315 
vec_vsr(vector pixel __a,vector unsigned int __b)8316 static vector pixel __ATTRS_o_ai vec_vsr(vector pixel __a,
8317                                          vector unsigned int __b) {
8318   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
8319 }
8320 
vec_vsr(vector int __a,vector unsigned char __b)8321 static vector int __ATTRS_o_ai vec_vsr(vector int __a,
8322                                        vector unsigned char __b) {
8323   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
8324 }
8325 
vec_vsr(vector int __a,vector unsigned short __b)8326 static vector int __ATTRS_o_ai vec_vsr(vector int __a,
8327                                        vector unsigned short __b) {
8328   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
8329 }
8330 
vec_vsr(vector int __a,vector unsigned int __b)8331 static vector int __ATTRS_o_ai vec_vsr(vector int __a,
8332                                        vector unsigned int __b) {
8333   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
8334 }
8335 
vec_vsr(vector unsigned int __a,vector unsigned char __b)8336 static vector unsigned int __ATTRS_o_ai vec_vsr(vector unsigned int __a,
8337                                                 vector unsigned char __b) {
8338   return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
8339                                                     (vector int)__b);
8340 }
8341 
vec_vsr(vector unsigned int __a,vector unsigned short __b)8342 static vector unsigned int __ATTRS_o_ai vec_vsr(vector unsigned int __a,
8343                                                 vector unsigned short __b) {
8344   return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
8345                                                     (vector int)__b);
8346 }
8347 
vec_vsr(vector unsigned int __a,vector unsigned int __b)8348 static vector unsigned int __ATTRS_o_ai vec_vsr(vector unsigned int __a,
8349                                                 vector unsigned int __b) {
8350   return (vector unsigned int)__builtin_altivec_vsr((vector int)__a,
8351                                                     (vector int)__b);
8352 }
8353 
vec_vsr(vector bool int __a,vector unsigned char __b)8354 static vector bool int __ATTRS_o_ai vec_vsr(vector bool int __a,
8355                                             vector unsigned char __b) {
8356   return (vector bool int)__builtin_altivec_vsr((vector int)__a,
8357                                                 (vector int)__b);
8358 }
8359 
vec_vsr(vector bool int __a,vector unsigned short __b)8360 static vector bool int __ATTRS_o_ai vec_vsr(vector bool int __a,
8361                                             vector unsigned short __b) {
8362   return (vector bool int)__builtin_altivec_vsr((vector int)__a,
8363                                                 (vector int)__b);
8364 }
8365 
vec_vsr(vector bool int __a,vector unsigned int __b)8366 static vector bool int __ATTRS_o_ai vec_vsr(vector bool int __a,
8367                                             vector unsigned int __b) {
8368   return (vector bool int)__builtin_altivec_vsr((vector int)__a,
8369                                                 (vector int)__b);
8370 }
8371 
8372 /* vec_sro */
8373 
vec_sro(vector signed char __a,vector signed char __b)8374 static vector signed char __ATTRS_o_ai vec_sro(vector signed char __a,
8375                                                vector signed char __b) {
8376   return (vector signed char)__builtin_altivec_vsro((vector int)__a,
8377                                                     (vector int)__b);
8378 }
8379 
vec_sro(vector signed char __a,vector unsigned char __b)8380 static vector signed char __ATTRS_o_ai vec_sro(vector signed char __a,
8381                                                vector unsigned char __b) {
8382   return (vector signed char)__builtin_altivec_vsro((vector int)__a,
8383                                                     (vector int)__b);
8384 }
8385 
vec_sro(vector unsigned char __a,vector signed char __b)8386 static vector unsigned char __ATTRS_o_ai vec_sro(vector unsigned char __a,
8387                                                  vector signed char __b) {
8388   return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
8389                                                       (vector int)__b);
8390 }
8391 
vec_sro(vector unsigned char __a,vector unsigned char __b)8392 static vector unsigned char __ATTRS_o_ai vec_sro(vector unsigned char __a,
8393                                                  vector unsigned char __b) {
8394   return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
8395                                                       (vector int)__b);
8396 }
8397 
vec_sro(vector short __a,vector signed char __b)8398 static vector short __ATTRS_o_ai vec_sro(vector short __a,
8399                                          vector signed char __b) {
8400   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8401 }
8402 
vec_sro(vector short __a,vector unsigned char __b)8403 static vector short __ATTRS_o_ai vec_sro(vector short __a,
8404                                          vector unsigned char __b) {
8405   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8406 }
8407 
vec_sro(vector unsigned short __a,vector signed char __b)8408 static vector unsigned short __ATTRS_o_ai vec_sro(vector unsigned short __a,
8409                                                   vector signed char __b) {
8410   return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
8411                                                        (vector int)__b);
8412 }
8413 
vec_sro(vector unsigned short __a,vector unsigned char __b)8414 static vector unsigned short __ATTRS_o_ai vec_sro(vector unsigned short __a,
8415                                                   vector unsigned char __b) {
8416   return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
8417                                                        (vector int)__b);
8418 }
8419 
vec_sro(vector pixel __a,vector signed char __b)8420 static vector pixel __ATTRS_o_ai vec_sro(vector pixel __a,
8421                                          vector signed char __b) {
8422   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8423 }
8424 
vec_sro(vector pixel __a,vector unsigned char __b)8425 static vector pixel __ATTRS_o_ai vec_sro(vector pixel __a,
8426                                          vector unsigned char __b) {
8427   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8428 }
8429 
vec_sro(vector int __a,vector signed char __b)8430 static vector int __ATTRS_o_ai vec_sro(vector int __a, vector signed char __b) {
8431   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
8432 }
8433 
vec_sro(vector int __a,vector unsigned char __b)8434 static vector int __ATTRS_o_ai vec_sro(vector int __a,
8435                                        vector unsigned char __b) {
8436   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
8437 }
8438 
vec_sro(vector unsigned int __a,vector signed char __b)8439 static vector unsigned int __ATTRS_o_ai vec_sro(vector unsigned int __a,
8440                                                 vector signed char __b) {
8441   return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
8442                                                      (vector int)__b);
8443 }
8444 
vec_sro(vector unsigned int __a,vector unsigned char __b)8445 static vector unsigned int __ATTRS_o_ai vec_sro(vector unsigned int __a,
8446                                                 vector unsigned char __b) {
8447   return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
8448                                                      (vector int)__b);
8449 }
8450 
vec_sro(vector float __a,vector signed char __b)8451 static vector float __ATTRS_o_ai vec_sro(vector float __a,
8452                                          vector signed char __b) {
8453   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8454 }
8455 
vec_sro(vector float __a,vector unsigned char __b)8456 static vector float __ATTRS_o_ai vec_sro(vector float __a,
8457                                          vector unsigned char __b) {
8458   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8459 }
8460 
8461 /* vec_vsro */
8462 
vec_vsro(vector signed char __a,vector signed char __b)8463 static vector signed char __ATTRS_o_ai vec_vsro(vector signed char __a,
8464                                                 vector signed char __b) {
8465   return (vector signed char)__builtin_altivec_vsro((vector int)__a,
8466                                                     (vector int)__b);
8467 }
8468 
vec_vsro(vector signed char __a,vector unsigned char __b)8469 static vector signed char __ATTRS_o_ai vec_vsro(vector signed char __a,
8470                                                 vector unsigned char __b) {
8471   return (vector signed char)__builtin_altivec_vsro((vector int)__a,
8472                                                     (vector int)__b);
8473 }
8474 
vec_vsro(vector unsigned char __a,vector signed char __b)8475 static vector unsigned char __ATTRS_o_ai vec_vsro(vector unsigned char __a,
8476                                                   vector signed char __b) {
8477   return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
8478                                                       (vector int)__b);
8479 }
8480 
vec_vsro(vector unsigned char __a,vector unsigned char __b)8481 static vector unsigned char __ATTRS_o_ai vec_vsro(vector unsigned char __a,
8482                                                   vector unsigned char __b) {
8483   return (vector unsigned char)__builtin_altivec_vsro((vector int)__a,
8484                                                       (vector int)__b);
8485 }
8486 
vec_vsro(vector short __a,vector signed char __b)8487 static vector short __ATTRS_o_ai vec_vsro(vector short __a,
8488                                           vector signed char __b) {
8489   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8490 }
8491 
vec_vsro(vector short __a,vector unsigned char __b)8492 static vector short __ATTRS_o_ai vec_vsro(vector short __a,
8493                                           vector unsigned char __b) {
8494   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8495 }
8496 
vec_vsro(vector unsigned short __a,vector signed char __b)8497 static vector unsigned short __ATTRS_o_ai vec_vsro(vector unsigned short __a,
8498                                                    vector signed char __b) {
8499   return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
8500                                                        (vector int)__b);
8501 }
8502 
vec_vsro(vector unsigned short __a,vector unsigned char __b)8503 static vector unsigned short __ATTRS_o_ai vec_vsro(vector unsigned short __a,
8504                                                    vector unsigned char __b) {
8505   return (vector unsigned short)__builtin_altivec_vsro((vector int)__a,
8506                                                        (vector int)__b);
8507 }
8508 
vec_vsro(vector pixel __a,vector signed char __b)8509 static vector pixel __ATTRS_o_ai vec_vsro(vector pixel __a,
8510                                           vector signed char __b) {
8511   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8512 }
8513 
vec_vsro(vector pixel __a,vector unsigned char __b)8514 static vector pixel __ATTRS_o_ai vec_vsro(vector pixel __a,
8515                                           vector unsigned char __b) {
8516   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8517 }
8518 
vec_vsro(vector int __a,vector signed char __b)8519 static vector int __ATTRS_o_ai vec_vsro(vector int __a,
8520                                         vector signed char __b) {
8521   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
8522 }
8523 
vec_vsro(vector int __a,vector unsigned char __b)8524 static vector int __ATTRS_o_ai vec_vsro(vector int __a,
8525                                         vector unsigned char __b) {
8526   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
8527 }
8528 
vec_vsro(vector unsigned int __a,vector signed char __b)8529 static vector unsigned int __ATTRS_o_ai vec_vsro(vector unsigned int __a,
8530                                                  vector signed char __b) {
8531   return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
8532                                                      (vector int)__b);
8533 }
8534 
vec_vsro(vector unsigned int __a,vector unsigned char __b)8535 static vector unsigned int __ATTRS_o_ai vec_vsro(vector unsigned int __a,
8536                                                  vector unsigned char __b) {
8537   return (vector unsigned int)__builtin_altivec_vsro((vector int)__a,
8538                                                      (vector int)__b);
8539 }
8540 
vec_vsro(vector float __a,vector signed char __b)8541 static vector float __ATTRS_o_ai vec_vsro(vector float __a,
8542                                           vector signed char __b) {
8543   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8544 }
8545 
vec_vsro(vector float __a,vector unsigned char __b)8546 static vector float __ATTRS_o_ai vec_vsro(vector float __a,
8547                                           vector unsigned char __b) {
8548   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
8549 }
8550 
8551 /* vec_st */
8552 
vec_st(vector signed char __a,int __b,vector signed char * __c)8553 static void __ATTRS_o_ai vec_st(vector signed char __a, int __b,
8554                                 vector signed char *__c) {
8555   __builtin_altivec_stvx((vector int)__a, __b, __c);
8556 }
8557 
vec_st(vector signed char __a,int __b,signed char * __c)8558 static void __ATTRS_o_ai vec_st(vector signed char __a, int __b,
8559                                 signed char *__c) {
8560   __builtin_altivec_stvx((vector int)__a, __b, __c);
8561 }
8562 
vec_st(vector unsigned char __a,int __b,vector unsigned char * __c)8563 static void __ATTRS_o_ai vec_st(vector unsigned char __a, int __b,
8564                                 vector unsigned char *__c) {
8565   __builtin_altivec_stvx((vector int)__a, __b, __c);
8566 }
8567 
vec_st(vector unsigned char __a,int __b,unsigned char * __c)8568 static void __ATTRS_o_ai vec_st(vector unsigned char __a, int __b,
8569                                 unsigned char *__c) {
8570   __builtin_altivec_stvx((vector int)__a, __b, __c);
8571 }
8572 
vec_st(vector bool char __a,int __b,signed char * __c)8573 static void __ATTRS_o_ai vec_st(vector bool char __a, int __b,
8574                                 signed char *__c) {
8575   __builtin_altivec_stvx((vector int)__a, __b, __c);
8576 }
8577 
vec_st(vector bool char __a,int __b,unsigned char * __c)8578 static void __ATTRS_o_ai vec_st(vector bool char __a, int __b,
8579                                 unsigned char *__c) {
8580   __builtin_altivec_stvx((vector int)__a, __b, __c);
8581 }
8582 
vec_st(vector bool char __a,int __b,vector bool char * __c)8583 static void __ATTRS_o_ai vec_st(vector bool char __a, int __b,
8584                                 vector bool char *__c) {
8585   __builtin_altivec_stvx((vector int)__a, __b, __c);
8586 }
8587 
vec_st(vector short __a,int __b,vector short * __c)8588 static void __ATTRS_o_ai vec_st(vector short __a, int __b, vector short *__c) {
8589   __builtin_altivec_stvx((vector int)__a, __b, __c);
8590 }
8591 
vec_st(vector short __a,int __b,short * __c)8592 static void __ATTRS_o_ai vec_st(vector short __a, int __b, short *__c) {
8593   __builtin_altivec_stvx((vector int)__a, __b, __c);
8594 }
8595 
vec_st(vector unsigned short __a,int __b,vector unsigned short * __c)8596 static void __ATTRS_o_ai vec_st(vector unsigned short __a, int __b,
8597                                 vector unsigned short *__c) {
8598   __builtin_altivec_stvx((vector int)__a, __b, __c);
8599 }
8600 
vec_st(vector unsigned short __a,int __b,unsigned short * __c)8601 static void __ATTRS_o_ai vec_st(vector unsigned short __a, int __b,
8602                                 unsigned short *__c) {
8603   __builtin_altivec_stvx((vector int)__a, __b, __c);
8604 }
8605 
vec_st(vector bool short __a,int __b,short * __c)8606 static void __ATTRS_o_ai vec_st(vector bool short __a, int __b, short *__c) {
8607   __builtin_altivec_stvx((vector int)__a, __b, __c);
8608 }
8609 
vec_st(vector bool short __a,int __b,unsigned short * __c)8610 static void __ATTRS_o_ai vec_st(vector bool short __a, int __b,
8611                                 unsigned short *__c) {
8612   __builtin_altivec_stvx((vector int)__a, __b, __c);
8613 }
8614 
vec_st(vector bool short __a,int __b,vector bool short * __c)8615 static void __ATTRS_o_ai vec_st(vector bool short __a, int __b,
8616                                 vector bool short *__c) {
8617   __builtin_altivec_stvx((vector int)__a, __b, __c);
8618 }
8619 
vec_st(vector pixel __a,int __b,short * __c)8620 static void __ATTRS_o_ai vec_st(vector pixel __a, int __b, short *__c) {
8621   __builtin_altivec_stvx((vector int)__a, __b, __c);
8622 }
8623 
vec_st(vector pixel __a,int __b,unsigned short * __c)8624 static void __ATTRS_o_ai vec_st(vector pixel __a, int __b,
8625                                 unsigned short *__c) {
8626   __builtin_altivec_stvx((vector int)__a, __b, __c);
8627 }
8628 
vec_st(vector pixel __a,int __b,vector pixel * __c)8629 static void __ATTRS_o_ai vec_st(vector pixel __a, int __b, vector pixel *__c) {
8630   __builtin_altivec_stvx((vector int)__a, __b, __c);
8631 }
8632 
vec_st(vector int __a,int __b,vector int * __c)8633 static void __ATTRS_o_ai vec_st(vector int __a, int __b, vector int *__c) {
8634   __builtin_altivec_stvx(__a, __b, __c);
8635 }
8636 
vec_st(vector int __a,int __b,int * __c)8637 static void __ATTRS_o_ai vec_st(vector int __a, int __b, int *__c) {
8638   __builtin_altivec_stvx(__a, __b, __c);
8639 }
8640 
vec_st(vector unsigned int __a,int __b,vector unsigned int * __c)8641 static void __ATTRS_o_ai vec_st(vector unsigned int __a, int __b,
8642                                 vector unsigned int *__c) {
8643   __builtin_altivec_stvx((vector int)__a, __b, __c);
8644 }
8645 
vec_st(vector unsigned int __a,int __b,unsigned int * __c)8646 static void __ATTRS_o_ai vec_st(vector unsigned int __a, int __b,
8647                                 unsigned int *__c) {
8648   __builtin_altivec_stvx((vector int)__a, __b, __c);
8649 }
8650 
vec_st(vector bool int __a,int __b,int * __c)8651 static void __ATTRS_o_ai vec_st(vector bool int __a, int __b, int *__c) {
8652   __builtin_altivec_stvx((vector int)__a, __b, __c);
8653 }
8654 
vec_st(vector bool int __a,int __b,unsigned int * __c)8655 static void __ATTRS_o_ai vec_st(vector bool int __a, int __b,
8656                                 unsigned int *__c) {
8657   __builtin_altivec_stvx((vector int)__a, __b, __c);
8658 }
8659 
vec_st(vector bool int __a,int __b,vector bool int * __c)8660 static void __ATTRS_o_ai vec_st(vector bool int __a, int __b,
8661                                 vector bool int *__c) {
8662   __builtin_altivec_stvx((vector int)__a, __b, __c);
8663 }
8664 
vec_st(vector float __a,int __b,vector float * __c)8665 static void __ATTRS_o_ai vec_st(vector float __a, int __b, vector float *__c) {
8666   __builtin_altivec_stvx((vector int)__a, __b, __c);
8667 }
8668 
vec_st(vector float __a,int __b,float * __c)8669 static void __ATTRS_o_ai vec_st(vector float __a, int __b, float *__c) {
8670   __builtin_altivec_stvx((vector int)__a, __b, __c);
8671 }
8672 
8673 /* vec_stvx */
8674 
vec_stvx(vector signed char __a,int __b,vector signed char * __c)8675 static void __ATTRS_o_ai vec_stvx(vector signed char __a, int __b,
8676                                   vector signed char *__c) {
8677   __builtin_altivec_stvx((vector int)__a, __b, __c);
8678 }
8679 
vec_stvx(vector signed char __a,int __b,signed char * __c)8680 static void __ATTRS_o_ai vec_stvx(vector signed char __a, int __b,
8681                                   signed char *__c) {
8682   __builtin_altivec_stvx((vector int)__a, __b, __c);
8683 }
8684 
vec_stvx(vector unsigned char __a,int __b,vector unsigned char * __c)8685 static void __ATTRS_o_ai vec_stvx(vector unsigned char __a, int __b,
8686                                   vector unsigned char *__c) {
8687   __builtin_altivec_stvx((vector int)__a, __b, __c);
8688 }
8689 
vec_stvx(vector unsigned char __a,int __b,unsigned char * __c)8690 static void __ATTRS_o_ai vec_stvx(vector unsigned char __a, int __b,
8691                                   unsigned char *__c) {
8692   __builtin_altivec_stvx((vector int)__a, __b, __c);
8693 }
8694 
vec_stvx(vector bool char __a,int __b,signed char * __c)8695 static void __ATTRS_o_ai vec_stvx(vector bool char __a, int __b,
8696                                   signed char *__c) {
8697   __builtin_altivec_stvx((vector int)__a, __b, __c);
8698 }
8699 
vec_stvx(vector bool char __a,int __b,unsigned char * __c)8700 static void __ATTRS_o_ai vec_stvx(vector bool char __a, int __b,
8701                                   unsigned char *__c) {
8702   __builtin_altivec_stvx((vector int)__a, __b, __c);
8703 }
8704 
vec_stvx(vector bool char __a,int __b,vector bool char * __c)8705 static void __ATTRS_o_ai vec_stvx(vector bool char __a, int __b,
8706                                   vector bool char *__c) {
8707   __builtin_altivec_stvx((vector int)__a, __b, __c);
8708 }
8709 
vec_stvx(vector short __a,int __b,vector short * __c)8710 static void __ATTRS_o_ai vec_stvx(vector short __a, int __b,
8711                                   vector short *__c) {
8712   __builtin_altivec_stvx((vector int)__a, __b, __c);
8713 }
8714 
vec_stvx(vector short __a,int __b,short * __c)8715 static void __ATTRS_o_ai vec_stvx(vector short __a, int __b, short *__c) {
8716   __builtin_altivec_stvx((vector int)__a, __b, __c);
8717 }
8718 
vec_stvx(vector unsigned short __a,int __b,vector unsigned short * __c)8719 static void __ATTRS_o_ai vec_stvx(vector unsigned short __a, int __b,
8720                                   vector unsigned short *__c) {
8721   __builtin_altivec_stvx((vector int)__a, __b, __c);
8722 }
8723 
vec_stvx(vector unsigned short __a,int __b,unsigned short * __c)8724 static void __ATTRS_o_ai vec_stvx(vector unsigned short __a, int __b,
8725                                   unsigned short *__c) {
8726   __builtin_altivec_stvx((vector int)__a, __b, __c);
8727 }
8728 
vec_stvx(vector bool short __a,int __b,short * __c)8729 static void __ATTRS_o_ai vec_stvx(vector bool short __a, int __b, short *__c) {
8730   __builtin_altivec_stvx((vector int)__a, __b, __c);
8731 }
8732 
vec_stvx(vector bool short __a,int __b,unsigned short * __c)8733 static void __ATTRS_o_ai vec_stvx(vector bool short __a, int __b,
8734                                   unsigned short *__c) {
8735   __builtin_altivec_stvx((vector int)__a, __b, __c);
8736 }
8737 
vec_stvx(vector bool short __a,int __b,vector bool short * __c)8738 static void __ATTRS_o_ai vec_stvx(vector bool short __a, int __b,
8739                                   vector bool short *__c) {
8740   __builtin_altivec_stvx((vector int)__a, __b, __c);
8741 }
8742 
vec_stvx(vector pixel __a,int __b,short * __c)8743 static void __ATTRS_o_ai vec_stvx(vector pixel __a, int __b, short *__c) {
8744   __builtin_altivec_stvx((vector int)__a, __b, __c);
8745 }
8746 
vec_stvx(vector pixel __a,int __b,unsigned short * __c)8747 static void __ATTRS_o_ai vec_stvx(vector pixel __a, int __b,
8748                                   unsigned short *__c) {
8749   __builtin_altivec_stvx((vector int)__a, __b, __c);
8750 }
8751 
vec_stvx(vector pixel __a,int __b,vector pixel * __c)8752 static void __ATTRS_o_ai vec_stvx(vector pixel __a, int __b,
8753                                   vector pixel *__c) {
8754   __builtin_altivec_stvx((vector int)__a, __b, __c);
8755 }
8756 
vec_stvx(vector int __a,int __b,vector int * __c)8757 static void __ATTRS_o_ai vec_stvx(vector int __a, int __b, vector int *__c) {
8758   __builtin_altivec_stvx(__a, __b, __c);
8759 }
8760 
vec_stvx(vector int __a,int __b,int * __c)8761 static void __ATTRS_o_ai vec_stvx(vector int __a, int __b, int *__c) {
8762   __builtin_altivec_stvx(__a, __b, __c);
8763 }
8764 
vec_stvx(vector unsigned int __a,int __b,vector unsigned int * __c)8765 static void __ATTRS_o_ai vec_stvx(vector unsigned int __a, int __b,
8766                                   vector unsigned int *__c) {
8767   __builtin_altivec_stvx((vector int)__a, __b, __c);
8768 }
8769 
vec_stvx(vector unsigned int __a,int __b,unsigned int * __c)8770 static void __ATTRS_o_ai vec_stvx(vector unsigned int __a, int __b,
8771                                   unsigned int *__c) {
8772   __builtin_altivec_stvx((vector int)__a, __b, __c);
8773 }
8774 
vec_stvx(vector bool int __a,int __b,int * __c)8775 static void __ATTRS_o_ai vec_stvx(vector bool int __a, int __b, int *__c) {
8776   __builtin_altivec_stvx((vector int)__a, __b, __c);
8777 }
8778 
vec_stvx(vector bool int __a,int __b,unsigned int * __c)8779 static void __ATTRS_o_ai vec_stvx(vector bool int __a, int __b,
8780                                   unsigned int *__c) {
8781   __builtin_altivec_stvx((vector int)__a, __b, __c);
8782 }
8783 
vec_stvx(vector bool int __a,int __b,vector bool int * __c)8784 static void __ATTRS_o_ai vec_stvx(vector bool int __a, int __b,
8785                                   vector bool int *__c) {
8786   __builtin_altivec_stvx((vector int)__a, __b, __c);
8787 }
8788 
vec_stvx(vector float __a,int __b,vector float * __c)8789 static void __ATTRS_o_ai vec_stvx(vector float __a, int __b,
8790                                   vector float *__c) {
8791   __builtin_altivec_stvx((vector int)__a, __b, __c);
8792 }
8793 
vec_stvx(vector float __a,int __b,float * __c)8794 static void __ATTRS_o_ai vec_stvx(vector float __a, int __b, float *__c) {
8795   __builtin_altivec_stvx((vector int)__a, __b, __c);
8796 }
8797 
8798 /* vec_ste */
8799 
vec_ste(vector signed char __a,int __b,signed char * __c)8800 static void __ATTRS_o_ai vec_ste(vector signed char __a, int __b,
8801                                  signed char *__c) {
8802   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8803 }
8804 
vec_ste(vector unsigned char __a,int __b,unsigned char * __c)8805 static void __ATTRS_o_ai vec_ste(vector unsigned char __a, int __b,
8806                                  unsigned char *__c) {
8807   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8808 }
8809 
vec_ste(vector bool char __a,int __b,signed char * __c)8810 static void __ATTRS_o_ai vec_ste(vector bool char __a, int __b,
8811                                  signed char *__c) {
8812   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8813 }
8814 
vec_ste(vector bool char __a,int __b,unsigned char * __c)8815 static void __ATTRS_o_ai vec_ste(vector bool char __a, int __b,
8816                                  unsigned char *__c) {
8817   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8818 }
8819 
vec_ste(vector short __a,int __b,short * __c)8820 static void __ATTRS_o_ai vec_ste(vector short __a, int __b, short *__c) {
8821   __builtin_altivec_stvehx(__a, __b, __c);
8822 }
8823 
vec_ste(vector unsigned short __a,int __b,unsigned short * __c)8824 static void __ATTRS_o_ai vec_ste(vector unsigned short __a, int __b,
8825                                  unsigned short *__c) {
8826   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8827 }
8828 
vec_ste(vector bool short __a,int __b,short * __c)8829 static void __ATTRS_o_ai vec_ste(vector bool short __a, int __b, short *__c) {
8830   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8831 }
8832 
vec_ste(vector bool short __a,int __b,unsigned short * __c)8833 static void __ATTRS_o_ai vec_ste(vector bool short __a, int __b,
8834                                  unsigned short *__c) {
8835   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8836 }
8837 
vec_ste(vector pixel __a,int __b,short * __c)8838 static void __ATTRS_o_ai vec_ste(vector pixel __a, int __b, short *__c) {
8839   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8840 }
8841 
vec_ste(vector pixel __a,int __b,unsigned short * __c)8842 static void __ATTRS_o_ai vec_ste(vector pixel __a, int __b,
8843                                  unsigned short *__c) {
8844   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8845 }
8846 
vec_ste(vector int __a,int __b,int * __c)8847 static void __ATTRS_o_ai vec_ste(vector int __a, int __b, int *__c) {
8848   __builtin_altivec_stvewx(__a, __b, __c);
8849 }
8850 
vec_ste(vector unsigned int __a,int __b,unsigned int * __c)8851 static void __ATTRS_o_ai vec_ste(vector unsigned int __a, int __b,
8852                                  unsigned int *__c) {
8853   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8854 }
8855 
vec_ste(vector bool int __a,int __b,int * __c)8856 static void __ATTRS_o_ai vec_ste(vector bool int __a, int __b, int *__c) {
8857   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8858 }
8859 
vec_ste(vector bool int __a,int __b,unsigned int * __c)8860 static void __ATTRS_o_ai vec_ste(vector bool int __a, int __b,
8861                                  unsigned int *__c) {
8862   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8863 }
8864 
vec_ste(vector float __a,int __b,float * __c)8865 static void __ATTRS_o_ai vec_ste(vector float __a, int __b, float *__c) {
8866   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8867 }
8868 
8869 /* vec_stvebx */
8870 
vec_stvebx(vector signed char __a,int __b,signed char * __c)8871 static void __ATTRS_o_ai vec_stvebx(vector signed char __a, int __b,
8872                                     signed char *__c) {
8873   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8874 }
8875 
vec_stvebx(vector unsigned char __a,int __b,unsigned char * __c)8876 static void __ATTRS_o_ai vec_stvebx(vector unsigned char __a, int __b,
8877                                     unsigned char *__c) {
8878   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8879 }
8880 
vec_stvebx(vector bool char __a,int __b,signed char * __c)8881 static void __ATTRS_o_ai vec_stvebx(vector bool char __a, int __b,
8882                                     signed char *__c) {
8883   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8884 }
8885 
vec_stvebx(vector bool char __a,int __b,unsigned char * __c)8886 static void __ATTRS_o_ai vec_stvebx(vector bool char __a, int __b,
8887                                     unsigned char *__c) {
8888   __builtin_altivec_stvebx((vector char)__a, __b, __c);
8889 }
8890 
8891 /* vec_stvehx */
8892 
vec_stvehx(vector short __a,int __b,short * __c)8893 static void __ATTRS_o_ai vec_stvehx(vector short __a, int __b, short *__c) {
8894   __builtin_altivec_stvehx(__a, __b, __c);
8895 }
8896 
vec_stvehx(vector unsigned short __a,int __b,unsigned short * __c)8897 static void __ATTRS_o_ai vec_stvehx(vector unsigned short __a, int __b,
8898                                     unsigned short *__c) {
8899   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8900 }
8901 
vec_stvehx(vector bool short __a,int __b,short * __c)8902 static void __ATTRS_o_ai vec_stvehx(vector bool short __a, int __b,
8903                                     short *__c) {
8904   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8905 }
8906 
vec_stvehx(vector bool short __a,int __b,unsigned short * __c)8907 static void __ATTRS_o_ai vec_stvehx(vector bool short __a, int __b,
8908                                     unsigned short *__c) {
8909   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8910 }
8911 
vec_stvehx(vector pixel __a,int __b,short * __c)8912 static void __ATTRS_o_ai vec_stvehx(vector pixel __a, int __b, short *__c) {
8913   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8914 }
8915 
vec_stvehx(vector pixel __a,int __b,unsigned short * __c)8916 static void __ATTRS_o_ai vec_stvehx(vector pixel __a, int __b,
8917                                     unsigned short *__c) {
8918   __builtin_altivec_stvehx((vector short)__a, __b, __c);
8919 }
8920 
8921 /* vec_stvewx */
8922 
vec_stvewx(vector int __a,int __b,int * __c)8923 static void __ATTRS_o_ai vec_stvewx(vector int __a, int __b, int *__c) {
8924   __builtin_altivec_stvewx(__a, __b, __c);
8925 }
8926 
vec_stvewx(vector unsigned int __a,int __b,unsigned int * __c)8927 static void __ATTRS_o_ai vec_stvewx(vector unsigned int __a, int __b,
8928                                     unsigned int *__c) {
8929   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8930 }
8931 
vec_stvewx(vector bool int __a,int __b,int * __c)8932 static void __ATTRS_o_ai vec_stvewx(vector bool int __a, int __b, int *__c) {
8933   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8934 }
8935 
vec_stvewx(vector bool int __a,int __b,unsigned int * __c)8936 static void __ATTRS_o_ai vec_stvewx(vector bool int __a, int __b,
8937                                     unsigned int *__c) {
8938   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8939 }
8940 
vec_stvewx(vector float __a,int __b,float * __c)8941 static void __ATTRS_o_ai vec_stvewx(vector float __a, int __b, float *__c) {
8942   __builtin_altivec_stvewx((vector int)__a, __b, __c);
8943 }
8944 
8945 /* vec_stl */
8946 
vec_stl(vector signed char __a,int __b,vector signed char * __c)8947 static void __ATTRS_o_ai vec_stl(vector signed char __a, int __b,
8948                                  vector signed char *__c) {
8949   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8950 }
8951 
vec_stl(vector signed char __a,int __b,signed char * __c)8952 static void __ATTRS_o_ai vec_stl(vector signed char __a, int __b,
8953                                  signed char *__c) {
8954   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8955 }
8956 
vec_stl(vector unsigned char __a,int __b,vector unsigned char * __c)8957 static void __ATTRS_o_ai vec_stl(vector unsigned char __a, int __b,
8958                                  vector unsigned char *__c) {
8959   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8960 }
8961 
vec_stl(vector unsigned char __a,int __b,unsigned char * __c)8962 static void __ATTRS_o_ai vec_stl(vector unsigned char __a, int __b,
8963                                  unsigned char *__c) {
8964   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8965 }
8966 
vec_stl(vector bool char __a,int __b,signed char * __c)8967 static void __ATTRS_o_ai vec_stl(vector bool char __a, int __b,
8968                                  signed char *__c) {
8969   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8970 }
8971 
vec_stl(vector bool char __a,int __b,unsigned char * __c)8972 static void __ATTRS_o_ai vec_stl(vector bool char __a, int __b,
8973                                  unsigned char *__c) {
8974   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8975 }
8976 
vec_stl(vector bool char __a,int __b,vector bool char * __c)8977 static void __ATTRS_o_ai vec_stl(vector bool char __a, int __b,
8978                                  vector bool char *__c) {
8979   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8980 }
8981 
vec_stl(vector short __a,int __b,vector short * __c)8982 static void __ATTRS_o_ai vec_stl(vector short __a, int __b, vector short *__c) {
8983   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8984 }
8985 
vec_stl(vector short __a,int __b,short * __c)8986 static void __ATTRS_o_ai vec_stl(vector short __a, int __b, short *__c) {
8987   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8988 }
8989 
vec_stl(vector unsigned short __a,int __b,vector unsigned short * __c)8990 static void __ATTRS_o_ai vec_stl(vector unsigned short __a, int __b,
8991                                  vector unsigned short *__c) {
8992   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8993 }
8994 
vec_stl(vector unsigned short __a,int __b,unsigned short * __c)8995 static void __ATTRS_o_ai vec_stl(vector unsigned short __a, int __b,
8996                                  unsigned short *__c) {
8997   __builtin_altivec_stvxl((vector int)__a, __b, __c);
8998 }
8999 
vec_stl(vector bool short __a,int __b,short * __c)9000 static void __ATTRS_o_ai vec_stl(vector bool short __a, int __b, short *__c) {
9001   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9002 }
9003 
vec_stl(vector bool short __a,int __b,unsigned short * __c)9004 static void __ATTRS_o_ai vec_stl(vector bool short __a, int __b,
9005                                  unsigned short *__c) {
9006   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9007 }
9008 
vec_stl(vector bool short __a,int __b,vector bool short * __c)9009 static void __ATTRS_o_ai vec_stl(vector bool short __a, int __b,
9010                                  vector bool short *__c) {
9011   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9012 }
9013 
vec_stl(vector pixel __a,int __b,short * __c)9014 static void __ATTRS_o_ai vec_stl(vector pixel __a, int __b, short *__c) {
9015   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9016 }
9017 
vec_stl(vector pixel __a,int __b,unsigned short * __c)9018 static void __ATTRS_o_ai vec_stl(vector pixel __a, int __b,
9019                                  unsigned short *__c) {
9020   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9021 }
9022 
vec_stl(vector pixel __a,int __b,vector pixel * __c)9023 static void __ATTRS_o_ai vec_stl(vector pixel __a, int __b, vector pixel *__c) {
9024   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9025 }
9026 
vec_stl(vector int __a,int __b,vector int * __c)9027 static void __ATTRS_o_ai vec_stl(vector int __a, int __b, vector int *__c) {
9028   __builtin_altivec_stvxl(__a, __b, __c);
9029 }
9030 
vec_stl(vector int __a,int __b,int * __c)9031 static void __ATTRS_o_ai vec_stl(vector int __a, int __b, int *__c) {
9032   __builtin_altivec_stvxl(__a, __b, __c);
9033 }
9034 
vec_stl(vector unsigned int __a,int __b,vector unsigned int * __c)9035 static void __ATTRS_o_ai vec_stl(vector unsigned int __a, int __b,
9036                                  vector unsigned int *__c) {
9037   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9038 }
9039 
vec_stl(vector unsigned int __a,int __b,unsigned int * __c)9040 static void __ATTRS_o_ai vec_stl(vector unsigned int __a, int __b,
9041                                  unsigned int *__c) {
9042   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9043 }
9044 
vec_stl(vector bool int __a,int __b,int * __c)9045 static void __ATTRS_o_ai vec_stl(vector bool int __a, int __b, int *__c) {
9046   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9047 }
9048 
vec_stl(vector bool int __a,int __b,unsigned int * __c)9049 static void __ATTRS_o_ai vec_stl(vector bool int __a, int __b,
9050                                  unsigned int *__c) {
9051   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9052 }
9053 
vec_stl(vector bool int __a,int __b,vector bool int * __c)9054 static void __ATTRS_o_ai vec_stl(vector bool int __a, int __b,
9055                                  vector bool int *__c) {
9056   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9057 }
9058 
vec_stl(vector float __a,int __b,vector float * __c)9059 static void __ATTRS_o_ai vec_stl(vector float __a, int __b, vector float *__c) {
9060   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9061 }
9062 
vec_stl(vector float __a,int __b,float * __c)9063 static void __ATTRS_o_ai vec_stl(vector float __a, int __b, float *__c) {
9064   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9065 }
9066 
9067 /* vec_stvxl */
9068 
vec_stvxl(vector signed char __a,int __b,vector signed char * __c)9069 static void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b,
9070                                    vector signed char *__c) {
9071   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9072 }
9073 
vec_stvxl(vector signed char __a,int __b,signed char * __c)9074 static void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b,
9075                                    signed char *__c) {
9076   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9077 }
9078 
vec_stvxl(vector unsigned char __a,int __b,vector unsigned char * __c)9079 static void __ATTRS_o_ai vec_stvxl(vector unsigned char __a, int __b,
9080                                    vector unsigned char *__c) {
9081   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9082 }
9083 
vec_stvxl(vector unsigned char __a,int __b,unsigned char * __c)9084 static void __ATTRS_o_ai vec_stvxl(vector unsigned char __a, int __b,
9085                                    unsigned char *__c) {
9086   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9087 }
9088 
vec_stvxl(vector bool char __a,int __b,signed char * __c)9089 static void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b,
9090                                    signed char *__c) {
9091   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9092 }
9093 
vec_stvxl(vector bool char __a,int __b,unsigned char * __c)9094 static void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b,
9095                                    unsigned char *__c) {
9096   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9097 }
9098 
vec_stvxl(vector bool char __a,int __b,vector bool char * __c)9099 static void __ATTRS_o_ai vec_stvxl(vector bool char __a, int __b,
9100                                    vector bool char *__c) {
9101   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9102 }
9103 
vec_stvxl(vector short __a,int __b,vector short * __c)9104 static void __ATTRS_o_ai vec_stvxl(vector short __a, int __b,
9105                                    vector short *__c) {
9106   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9107 }
9108 
vec_stvxl(vector short __a,int __b,short * __c)9109 static void __ATTRS_o_ai vec_stvxl(vector short __a, int __b, short *__c) {
9110   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9111 }
9112 
vec_stvxl(vector unsigned short __a,int __b,vector unsigned short * __c)9113 static void __ATTRS_o_ai vec_stvxl(vector unsigned short __a, int __b,
9114                                    vector unsigned short *__c) {
9115   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9116 }
9117 
vec_stvxl(vector unsigned short __a,int __b,unsigned short * __c)9118 static void __ATTRS_o_ai vec_stvxl(vector unsigned short __a, int __b,
9119                                    unsigned short *__c) {
9120   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9121 }
9122 
vec_stvxl(vector bool short __a,int __b,short * __c)9123 static void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b, short *__c) {
9124   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9125 }
9126 
vec_stvxl(vector bool short __a,int __b,unsigned short * __c)9127 static void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b,
9128                                    unsigned short *__c) {
9129   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9130 }
9131 
vec_stvxl(vector bool short __a,int __b,vector bool short * __c)9132 static void __ATTRS_o_ai vec_stvxl(vector bool short __a, int __b,
9133                                    vector bool short *__c) {
9134   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9135 }
9136 
vec_stvxl(vector pixel __a,int __b,short * __c)9137 static void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b, short *__c) {
9138   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9139 }
9140 
vec_stvxl(vector pixel __a,int __b,unsigned short * __c)9141 static void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b,
9142                                    unsigned short *__c) {
9143   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9144 }
9145 
vec_stvxl(vector pixel __a,int __b,vector pixel * __c)9146 static void __ATTRS_o_ai vec_stvxl(vector pixel __a, int __b,
9147                                    vector pixel *__c) {
9148   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9149 }
9150 
vec_stvxl(vector int __a,int __b,vector int * __c)9151 static void __ATTRS_o_ai vec_stvxl(vector int __a, int __b, vector int *__c) {
9152   __builtin_altivec_stvxl(__a, __b, __c);
9153 }
9154 
vec_stvxl(vector int __a,int __b,int * __c)9155 static void __ATTRS_o_ai vec_stvxl(vector int __a, int __b, int *__c) {
9156   __builtin_altivec_stvxl(__a, __b, __c);
9157 }
9158 
vec_stvxl(vector unsigned int __a,int __b,vector unsigned int * __c)9159 static void __ATTRS_o_ai vec_stvxl(vector unsigned int __a, int __b,
9160                                    vector unsigned int *__c) {
9161   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9162 }
9163 
vec_stvxl(vector unsigned int __a,int __b,unsigned int * __c)9164 static void __ATTRS_o_ai vec_stvxl(vector unsigned int __a, int __b,
9165                                    unsigned int *__c) {
9166   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9167 }
9168 
vec_stvxl(vector bool int __a,int __b,int * __c)9169 static void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b, int *__c) {
9170   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9171 }
9172 
vec_stvxl(vector bool int __a,int __b,unsigned int * __c)9173 static void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b,
9174                                    unsigned int *__c) {
9175   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9176 }
9177 
vec_stvxl(vector bool int __a,int __b,vector bool int * __c)9178 static void __ATTRS_o_ai vec_stvxl(vector bool int __a, int __b,
9179                                    vector bool int *__c) {
9180   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9181 }
9182 
vec_stvxl(vector float __a,int __b,vector float * __c)9183 static void __ATTRS_o_ai vec_stvxl(vector float __a, int __b,
9184                                    vector float *__c) {
9185   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9186 }
9187 
vec_stvxl(vector float __a,int __b,float * __c)9188 static void __ATTRS_o_ai vec_stvxl(vector float __a, int __b, float *__c) {
9189   __builtin_altivec_stvxl((vector int)__a, __b, __c);
9190 }
9191 
9192 /* vec_sub */
9193 
vec_sub(vector signed char __a,vector signed char __b)9194 static vector signed char __ATTRS_o_ai vec_sub(vector signed char __a,
9195                                                vector signed char __b) {
9196   return __a - __b;
9197 }
9198 
vec_sub(vector bool char __a,vector signed char __b)9199 static vector signed char __ATTRS_o_ai vec_sub(vector bool char __a,
9200                                                vector signed char __b) {
9201   return (vector signed char)__a - __b;
9202 }
9203 
vec_sub(vector signed char __a,vector bool char __b)9204 static vector signed char __ATTRS_o_ai vec_sub(vector signed char __a,
9205                                                vector bool char __b) {
9206   return __a - (vector signed char)__b;
9207 }
9208 
vec_sub(vector unsigned char __a,vector unsigned char __b)9209 static vector unsigned char __ATTRS_o_ai vec_sub(vector unsigned char __a,
9210                                                  vector unsigned char __b) {
9211   return __a - __b;
9212 }
9213 
vec_sub(vector bool char __a,vector unsigned char __b)9214 static vector unsigned char __ATTRS_o_ai vec_sub(vector bool char __a,
9215                                                  vector unsigned char __b) {
9216   return (vector unsigned char)__a - __b;
9217 }
9218 
vec_sub(vector unsigned char __a,vector bool char __b)9219 static vector unsigned char __ATTRS_o_ai vec_sub(vector unsigned char __a,
9220                                                  vector bool char __b) {
9221   return __a - (vector unsigned char)__b;
9222 }
9223 
vec_sub(vector short __a,vector short __b)9224 static vector short __ATTRS_o_ai vec_sub(vector short __a, vector short __b) {
9225   return __a - __b;
9226 }
9227 
vec_sub(vector bool short __a,vector short __b)9228 static vector short __ATTRS_o_ai vec_sub(vector bool short __a,
9229                                          vector short __b) {
9230   return (vector short)__a - __b;
9231 }
9232 
vec_sub(vector short __a,vector bool short __b)9233 static vector short __ATTRS_o_ai vec_sub(vector short __a,
9234                                          vector bool short __b) {
9235   return __a - (vector short)__b;
9236 }
9237 
vec_sub(vector unsigned short __a,vector unsigned short __b)9238 static vector unsigned short __ATTRS_o_ai vec_sub(vector unsigned short __a,
9239                                                   vector unsigned short __b) {
9240   return __a - __b;
9241 }
9242 
vec_sub(vector bool short __a,vector unsigned short __b)9243 static vector unsigned short __ATTRS_o_ai vec_sub(vector bool short __a,
9244                                                   vector unsigned short __b) {
9245   return (vector unsigned short)__a - __b;
9246 }
9247 
vec_sub(vector unsigned short __a,vector bool short __b)9248 static vector unsigned short __ATTRS_o_ai vec_sub(vector unsigned short __a,
9249                                                   vector bool short __b) {
9250   return __a - (vector unsigned short)__b;
9251 }
9252 
vec_sub(vector int __a,vector int __b)9253 static vector int __ATTRS_o_ai vec_sub(vector int __a, vector int __b) {
9254   return __a - __b;
9255 }
9256 
vec_sub(vector bool int __a,vector int __b)9257 static vector int __ATTRS_o_ai vec_sub(vector bool int __a, vector int __b) {
9258   return (vector int)__a - __b;
9259 }
9260 
vec_sub(vector int __a,vector bool int __b)9261 static vector int __ATTRS_o_ai vec_sub(vector int __a, vector bool int __b) {
9262   return __a - (vector int)__b;
9263 }
9264 
vec_sub(vector unsigned int __a,vector unsigned int __b)9265 static vector unsigned int __ATTRS_o_ai vec_sub(vector unsigned int __a,
9266                                                 vector unsigned int __b) {
9267   return __a - __b;
9268 }
9269 
vec_sub(vector bool int __a,vector unsigned int __b)9270 static vector unsigned int __ATTRS_o_ai vec_sub(vector bool int __a,
9271                                                 vector unsigned int __b) {
9272   return (vector unsigned int)__a - __b;
9273 }
9274 
vec_sub(vector unsigned int __a,vector bool int __b)9275 static vector unsigned int __ATTRS_o_ai vec_sub(vector unsigned int __a,
9276                                                 vector bool int __b) {
9277   return __a - (vector unsigned int)__b;
9278 }
9279 
9280 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
vec_sub(vector signed __int128 __a,vector signed __int128 __b)9281 static vector signed __int128 __ATTRS_o_ai vec_sub(vector signed __int128 __a,
9282                                                    vector signed __int128 __b) {
9283   return __a - __b;
9284 }
9285 
9286 static vector unsigned __int128 __ATTRS_o_ai
vec_sub(vector unsigned __int128 __a,vector unsigned __int128 __b)9287 vec_sub(vector unsigned __int128 __a, vector unsigned __int128 __b) {
9288   return __a - __b;
9289 }
9290 #endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
9291 
9292 #ifdef __VSX__
9293 static vector signed long long __ATTRS_o_ai
vec_sub(vector signed long long __a,vector signed long long __b)9294 vec_sub(vector signed long long __a, vector signed long long __b) {
9295   return __a - __b;
9296 }
9297 
9298 static vector unsigned long long __ATTRS_o_ai
vec_sub(vector unsigned long long __a,vector unsigned long long __b)9299 vec_sub(vector unsigned long long __a, vector unsigned long long __b) {
9300   return __a - __b;
9301 }
9302 
9303 static vector double __ATTRS_o_ai
vec_sub(vector double __a,vector double __b)9304 vec_sub(vector double __a, vector double __b) {
9305   return __a - __b;
9306 }
9307 #endif
9308 
vec_sub(vector float __a,vector float __b)9309 static vector float __ATTRS_o_ai vec_sub(vector float __a, vector float __b) {
9310   return __a - __b;
9311 }
9312 
9313 /* vec_vsububm */
9314 
9315 #define __builtin_altivec_vsububm vec_vsububm
9316 
vec_vsububm(vector signed char __a,vector signed char __b)9317 static vector signed char __ATTRS_o_ai vec_vsububm(vector signed char __a,
9318                                                    vector signed char __b) {
9319   return __a - __b;
9320 }
9321 
vec_vsububm(vector bool char __a,vector signed char __b)9322 static vector signed char __ATTRS_o_ai vec_vsububm(vector bool char __a,
9323                                                    vector signed char __b) {
9324   return (vector signed char)__a - __b;
9325 }
9326 
vec_vsububm(vector signed char __a,vector bool char __b)9327 static vector signed char __ATTRS_o_ai vec_vsububm(vector signed char __a,
9328                                                    vector bool char __b) {
9329   return __a - (vector signed char)__b;
9330 }
9331 
vec_vsububm(vector unsigned char __a,vector unsigned char __b)9332 static vector unsigned char __ATTRS_o_ai vec_vsububm(vector unsigned char __a,
9333                                                      vector unsigned char __b) {
9334   return __a - __b;
9335 }
9336 
vec_vsububm(vector bool char __a,vector unsigned char __b)9337 static vector unsigned char __ATTRS_o_ai vec_vsububm(vector bool char __a,
9338                                                      vector unsigned char __b) {
9339   return (vector unsigned char)__a - __b;
9340 }
9341 
vec_vsububm(vector unsigned char __a,vector bool char __b)9342 static vector unsigned char __ATTRS_o_ai vec_vsububm(vector unsigned char __a,
9343                                                      vector bool char __b) {
9344   return __a - (vector unsigned char)__b;
9345 }
9346 
9347 /* vec_vsubuhm */
9348 
9349 #define __builtin_altivec_vsubuhm vec_vsubuhm
9350 
vec_vsubuhm(vector short __a,vector short __b)9351 static vector short __ATTRS_o_ai vec_vsubuhm(vector short __a,
9352                                              vector short __b) {
9353   return __a - __b;
9354 }
9355 
vec_vsubuhm(vector bool short __a,vector short __b)9356 static vector short __ATTRS_o_ai vec_vsubuhm(vector bool short __a,
9357                                              vector short __b) {
9358   return (vector short)__a - __b;
9359 }
9360 
vec_vsubuhm(vector short __a,vector bool short __b)9361 static vector short __ATTRS_o_ai vec_vsubuhm(vector short __a,
9362                                              vector bool short __b) {
9363   return __a - (vector short)__b;
9364 }
9365 
9366 static vector unsigned short __ATTRS_o_ai
vec_vsubuhm(vector unsigned short __a,vector unsigned short __b)9367 vec_vsubuhm(vector unsigned short __a, vector unsigned short __b) {
9368   return __a - __b;
9369 }
9370 
9371 static vector unsigned short __ATTRS_o_ai
vec_vsubuhm(vector bool short __a,vector unsigned short __b)9372 vec_vsubuhm(vector bool short __a, vector unsigned short __b) {
9373   return (vector unsigned short)__a - __b;
9374 }
9375 
vec_vsubuhm(vector unsigned short __a,vector bool short __b)9376 static vector unsigned short __ATTRS_o_ai vec_vsubuhm(vector unsigned short __a,
9377                                                       vector bool short __b) {
9378   return __a - (vector unsigned short)__b;
9379 }
9380 
9381 /* vec_vsubuwm */
9382 
9383 #define __builtin_altivec_vsubuwm vec_vsubuwm
9384 
vec_vsubuwm(vector int __a,vector int __b)9385 static vector int __ATTRS_o_ai vec_vsubuwm(vector int __a, vector int __b) {
9386   return __a - __b;
9387 }
9388 
vec_vsubuwm(vector bool int __a,vector int __b)9389 static vector int __ATTRS_o_ai vec_vsubuwm(vector bool int __a,
9390                                            vector int __b) {
9391   return (vector int)__a - __b;
9392 }
9393 
vec_vsubuwm(vector int __a,vector bool int __b)9394 static vector int __ATTRS_o_ai vec_vsubuwm(vector int __a,
9395                                            vector bool int __b) {
9396   return __a - (vector int)__b;
9397 }
9398 
vec_vsubuwm(vector unsigned int __a,vector unsigned int __b)9399 static vector unsigned int __ATTRS_o_ai vec_vsubuwm(vector unsigned int __a,
9400                                                     vector unsigned int __b) {
9401   return __a - __b;
9402 }
9403 
vec_vsubuwm(vector bool int __a,vector unsigned int __b)9404 static vector unsigned int __ATTRS_o_ai vec_vsubuwm(vector bool int __a,
9405                                                     vector unsigned int __b) {
9406   return (vector unsigned int)__a - __b;
9407 }
9408 
vec_vsubuwm(vector unsigned int __a,vector bool int __b)9409 static vector unsigned int __ATTRS_o_ai vec_vsubuwm(vector unsigned int __a,
9410                                                     vector bool int __b) {
9411   return __a - (vector unsigned int)__b;
9412 }
9413 
9414 /* vec_vsubfp */
9415 
9416 #define __builtin_altivec_vsubfp vec_vsubfp
9417 
9418 static vector float __attribute__((__always_inline__))
vec_vsubfp(vector float __a,vector float __b)9419 vec_vsubfp(vector float __a, vector float __b) {
9420   return __a - __b;
9421 }
9422 
9423 /* vec_subc */
9424 
vec_subc(vector unsigned int __a,vector unsigned int __b)9425 static vector unsigned int __ATTRS_o_ai vec_subc(vector unsigned int __a,
9426                                                  vector unsigned int __b) {
9427   return __builtin_altivec_vsubcuw(__a, __b);
9428 }
9429 
9430 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
9431 static vector unsigned __int128 __ATTRS_o_ai
vec_subc(vector unsigned __int128 __a,vector unsigned __int128 __b)9432 vec_subc(vector unsigned __int128 __a, vector unsigned __int128 __b) {
9433   return __builtin_altivec_vsubcuq(__a, __b);
9434 }
9435 
9436 static vector signed __int128 __ATTRS_o_ai
vec_subc(vector signed __int128 __a,vector signed __int128 __b)9437 vec_subc(vector signed __int128 __a, vector signed __int128 __b) {
9438   return __builtin_altivec_vsubcuq(__a, __b);
9439 }
9440 #endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
9441 
9442 /* vec_vsubcuw */
9443 
9444 static vector unsigned int __attribute__((__always_inline__))
vec_vsubcuw(vector unsigned int __a,vector unsigned int __b)9445 vec_vsubcuw(vector unsigned int __a, vector unsigned int __b) {
9446   return __builtin_altivec_vsubcuw(__a, __b);
9447 }
9448 
9449 /* vec_subs */
9450 
vec_subs(vector signed char __a,vector signed char __b)9451 static vector signed char __ATTRS_o_ai vec_subs(vector signed char __a,
9452                                                 vector signed char __b) {
9453   return __builtin_altivec_vsubsbs(__a, __b);
9454 }
9455 
vec_subs(vector bool char __a,vector signed char __b)9456 static vector signed char __ATTRS_o_ai vec_subs(vector bool char __a,
9457                                                 vector signed char __b) {
9458   return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
9459 }
9460 
vec_subs(vector signed char __a,vector bool char __b)9461 static vector signed char __ATTRS_o_ai vec_subs(vector signed char __a,
9462                                                 vector bool char __b) {
9463   return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
9464 }
9465 
vec_subs(vector unsigned char __a,vector unsigned char __b)9466 static vector unsigned char __ATTRS_o_ai vec_subs(vector unsigned char __a,
9467                                                   vector unsigned char __b) {
9468   return __builtin_altivec_vsububs(__a, __b);
9469 }
9470 
vec_subs(vector bool char __a,vector unsigned char __b)9471 static vector unsigned char __ATTRS_o_ai vec_subs(vector bool char __a,
9472                                                   vector unsigned char __b) {
9473   return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
9474 }
9475 
vec_subs(vector unsigned char __a,vector bool char __b)9476 static vector unsigned char __ATTRS_o_ai vec_subs(vector unsigned char __a,
9477                                                   vector bool char __b) {
9478   return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
9479 }
9480 
vec_subs(vector short __a,vector short __b)9481 static vector short __ATTRS_o_ai vec_subs(vector short __a, vector short __b) {
9482   return __builtin_altivec_vsubshs(__a, __b);
9483 }
9484 
vec_subs(vector bool short __a,vector short __b)9485 static vector short __ATTRS_o_ai vec_subs(vector bool short __a,
9486                                           vector short __b) {
9487   return __builtin_altivec_vsubshs((vector short)__a, __b);
9488 }
9489 
vec_subs(vector short __a,vector bool short __b)9490 static vector short __ATTRS_o_ai vec_subs(vector short __a,
9491                                           vector bool short __b) {
9492   return __builtin_altivec_vsubshs(__a, (vector short)__b);
9493 }
9494 
vec_subs(vector unsigned short __a,vector unsigned short __b)9495 static vector unsigned short __ATTRS_o_ai vec_subs(vector unsigned short __a,
9496                                                    vector unsigned short __b) {
9497   return __builtin_altivec_vsubuhs(__a, __b);
9498 }
9499 
vec_subs(vector bool short __a,vector unsigned short __b)9500 static vector unsigned short __ATTRS_o_ai vec_subs(vector bool short __a,
9501                                                    vector unsigned short __b) {
9502   return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
9503 }
9504 
vec_subs(vector unsigned short __a,vector bool short __b)9505 static vector unsigned short __ATTRS_o_ai vec_subs(vector unsigned short __a,
9506                                                    vector bool short __b) {
9507   return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
9508 }
9509 
vec_subs(vector int __a,vector int __b)9510 static vector int __ATTRS_o_ai vec_subs(vector int __a, vector int __b) {
9511   return __builtin_altivec_vsubsws(__a, __b);
9512 }
9513 
vec_subs(vector bool int __a,vector int __b)9514 static vector int __ATTRS_o_ai vec_subs(vector bool int __a, vector int __b) {
9515   return __builtin_altivec_vsubsws((vector int)__a, __b);
9516 }
9517 
vec_subs(vector int __a,vector bool int __b)9518 static vector int __ATTRS_o_ai vec_subs(vector int __a, vector bool int __b) {
9519   return __builtin_altivec_vsubsws(__a, (vector int)__b);
9520 }
9521 
vec_subs(vector unsigned int __a,vector unsigned int __b)9522 static vector unsigned int __ATTRS_o_ai vec_subs(vector unsigned int __a,
9523                                                  vector unsigned int __b) {
9524   return __builtin_altivec_vsubuws(__a, __b);
9525 }
9526 
vec_subs(vector bool int __a,vector unsigned int __b)9527 static vector unsigned int __ATTRS_o_ai vec_subs(vector bool int __a,
9528                                                  vector unsigned int __b) {
9529   return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
9530 }
9531 
vec_subs(vector unsigned int __a,vector bool int __b)9532 static vector unsigned int __ATTRS_o_ai vec_subs(vector unsigned int __a,
9533                                                  vector bool int __b) {
9534   return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
9535 }
9536 
9537 /* vec_vsubsbs */
9538 
vec_vsubsbs(vector signed char __a,vector signed char __b)9539 static vector signed char __ATTRS_o_ai vec_vsubsbs(vector signed char __a,
9540                                                    vector signed char __b) {
9541   return __builtin_altivec_vsubsbs(__a, __b);
9542 }
9543 
vec_vsubsbs(vector bool char __a,vector signed char __b)9544 static vector signed char __ATTRS_o_ai vec_vsubsbs(vector bool char __a,
9545                                                    vector signed char __b) {
9546   return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
9547 }
9548 
vec_vsubsbs(vector signed char __a,vector bool char __b)9549 static vector signed char __ATTRS_o_ai vec_vsubsbs(vector signed char __a,
9550                                                    vector bool char __b) {
9551   return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
9552 }
9553 
9554 /* vec_vsububs */
9555 
vec_vsububs(vector unsigned char __a,vector unsigned char __b)9556 static vector unsigned char __ATTRS_o_ai vec_vsububs(vector unsigned char __a,
9557                                                      vector unsigned char __b) {
9558   return __builtin_altivec_vsububs(__a, __b);
9559 }
9560 
vec_vsububs(vector bool char __a,vector unsigned char __b)9561 static vector unsigned char __ATTRS_o_ai vec_vsububs(vector bool char __a,
9562                                                      vector unsigned char __b) {
9563   return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
9564 }
9565 
vec_vsububs(vector unsigned char __a,vector bool char __b)9566 static vector unsigned char __ATTRS_o_ai vec_vsububs(vector unsigned char __a,
9567                                                      vector bool char __b) {
9568   return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
9569 }
9570 
9571 /* vec_vsubshs */
9572 
vec_vsubshs(vector short __a,vector short __b)9573 static vector short __ATTRS_o_ai vec_vsubshs(vector short __a,
9574                                              vector short __b) {
9575   return __builtin_altivec_vsubshs(__a, __b);
9576 }
9577 
vec_vsubshs(vector bool short __a,vector short __b)9578 static vector short __ATTRS_o_ai vec_vsubshs(vector bool short __a,
9579                                              vector short __b) {
9580   return __builtin_altivec_vsubshs((vector short)__a, __b);
9581 }
9582 
vec_vsubshs(vector short __a,vector bool short __b)9583 static vector short __ATTRS_o_ai vec_vsubshs(vector short __a,
9584                                              vector bool short __b) {
9585   return __builtin_altivec_vsubshs(__a, (vector short)__b);
9586 }
9587 
9588 /* vec_vsubuhs */
9589 
9590 static vector unsigned short __ATTRS_o_ai
vec_vsubuhs(vector unsigned short __a,vector unsigned short __b)9591 vec_vsubuhs(vector unsigned short __a, vector unsigned short __b) {
9592   return __builtin_altivec_vsubuhs(__a, __b);
9593 }
9594 
9595 static vector unsigned short __ATTRS_o_ai
vec_vsubuhs(vector bool short __a,vector unsigned short __b)9596 vec_vsubuhs(vector bool short __a, vector unsigned short __b) {
9597   return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
9598 }
9599 
vec_vsubuhs(vector unsigned short __a,vector bool short __b)9600 static vector unsigned short __ATTRS_o_ai vec_vsubuhs(vector unsigned short __a,
9601                                                       vector bool short __b) {
9602   return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
9603 }
9604 
9605 /* vec_vsubsws */
9606 
vec_vsubsws(vector int __a,vector int __b)9607 static vector int __ATTRS_o_ai vec_vsubsws(vector int __a, vector int __b) {
9608   return __builtin_altivec_vsubsws(__a, __b);
9609 }
9610 
vec_vsubsws(vector bool int __a,vector int __b)9611 static vector int __ATTRS_o_ai vec_vsubsws(vector bool int __a,
9612                                            vector int __b) {
9613   return __builtin_altivec_vsubsws((vector int)__a, __b);
9614 }
9615 
vec_vsubsws(vector int __a,vector bool int __b)9616 static vector int __ATTRS_o_ai vec_vsubsws(vector int __a,
9617                                            vector bool int __b) {
9618   return __builtin_altivec_vsubsws(__a, (vector int)__b);
9619 }
9620 
9621 /* vec_vsubuws */
9622 
vec_vsubuws(vector unsigned int __a,vector unsigned int __b)9623 static vector unsigned int __ATTRS_o_ai vec_vsubuws(vector unsigned int __a,
9624                                                     vector unsigned int __b) {
9625   return __builtin_altivec_vsubuws(__a, __b);
9626 }
9627 
vec_vsubuws(vector bool int __a,vector unsigned int __b)9628 static vector unsigned int __ATTRS_o_ai vec_vsubuws(vector bool int __a,
9629                                                     vector unsigned int __b) {
9630   return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
9631 }
9632 
vec_vsubuws(vector unsigned int __a,vector bool int __b)9633 static vector unsigned int __ATTRS_o_ai vec_vsubuws(vector unsigned int __a,
9634                                                     vector bool int __b) {
9635   return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
9636 }
9637 
9638 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
9639 /* vec_vsubuqm */
9640 
9641 static vector signed __int128 __ATTRS_o_ai
vec_vsubuqm(vector signed __int128 __a,vector signed __int128 __b)9642 vec_vsubuqm(vector signed __int128 __a, vector signed __int128 __b) {
9643   return __a - __b;
9644 }
9645 
9646 static vector unsigned __int128 __ATTRS_o_ai
vec_vsubuqm(vector unsigned __int128 __a,vector unsigned __int128 __b)9647 vec_vsubuqm(vector unsigned __int128 __a, vector unsigned __int128 __b) {
9648   return __a - __b;
9649 }
9650 
9651 /* vec_vsubeuqm */
9652 
9653 static vector signed __int128 __ATTRS_o_ai
vec_vsubeuqm(vector signed __int128 __a,vector signed __int128 __b,vector signed __int128 __c)9654 vec_vsubeuqm(vector signed __int128 __a, vector signed __int128 __b,
9655              vector signed __int128 __c) {
9656   return __builtin_altivec_vsubeuqm(__a, __b, __c);
9657 }
9658 
9659 static vector unsigned __int128 __ATTRS_o_ai
vec_vsubeuqm(vector unsigned __int128 __a,vector unsigned __int128 __b,vector unsigned __int128 __c)9660 vec_vsubeuqm(vector unsigned __int128 __a, vector unsigned __int128 __b,
9661              vector unsigned __int128 __c) {
9662   return __builtin_altivec_vsubeuqm(__a, __b, __c);
9663 }
9664 
9665 /* vec_vsubcuq */
9666 
9667 static vector signed __int128 __ATTRS_o_ai
vec_vsubcuq(vector signed __int128 __a,vector signed __int128 __b)9668 vec_vsubcuq(vector signed __int128 __a, vector signed __int128 __b) {
9669   return __builtin_altivec_vsubcuq(__a, __b);
9670 }
9671 
9672 static vector unsigned __int128 __ATTRS_o_ai
vec_vsubcuq(vector unsigned __int128 __a,vector unsigned __int128 __b)9673 vec_vsubcuq(vector unsigned __int128 __a, vector unsigned __int128 __b) {
9674   return __builtin_altivec_vsubcuq(__a, __b);
9675 }
9676 
9677 /* vec_vsubecuq */
9678 
9679 static vector signed __int128 __ATTRS_o_ai
vec_vsubecuq(vector signed __int128 __a,vector signed __int128 __b,vector signed __int128 __c)9680 vec_vsubecuq(vector signed __int128 __a, vector signed __int128 __b,
9681              vector signed __int128 __c) {
9682   return __builtin_altivec_vsubecuq(__a, __b, __c);
9683 }
9684 
9685 static vector unsigned __int128 __ATTRS_o_ai
vec_vsubecuq(vector unsigned __int128 __a,vector unsigned __int128 __b,vector unsigned __int128 __c)9686 vec_vsubecuq(vector unsigned __int128 __a, vector unsigned __int128 __b,
9687              vector unsigned __int128 __c) {
9688   return __builtin_altivec_vsubecuq(__a, __b, __c);
9689 }
9690 #endif // defined(__POWER8_VECTOR__) && defined(__powerpc64__)
9691 
9692 /* vec_sum4s */
9693 
vec_sum4s(vector signed char __a,vector int __b)9694 static vector int __ATTRS_o_ai vec_sum4s(vector signed char __a,
9695                                          vector int __b) {
9696   return __builtin_altivec_vsum4sbs(__a, __b);
9697 }
9698 
vec_sum4s(vector unsigned char __a,vector unsigned int __b)9699 static vector unsigned int __ATTRS_o_ai vec_sum4s(vector unsigned char __a,
9700                                                   vector unsigned int __b) {
9701   return __builtin_altivec_vsum4ubs(__a, __b);
9702 }
9703 
vec_sum4s(vector signed short __a,vector int __b)9704 static vector int __ATTRS_o_ai vec_sum4s(vector signed short __a,
9705                                          vector int __b) {
9706   return __builtin_altivec_vsum4shs(__a, __b);
9707 }
9708 
9709 /* vec_vsum4sbs */
9710 
9711 static vector int __attribute__((__always_inline__))
vec_vsum4sbs(vector signed char __a,vector int __b)9712 vec_vsum4sbs(vector signed char __a, vector int __b) {
9713   return __builtin_altivec_vsum4sbs(__a, __b);
9714 }
9715 
9716 /* vec_vsum4ubs */
9717 
9718 static vector unsigned int __attribute__((__always_inline__))
vec_vsum4ubs(vector unsigned char __a,vector unsigned int __b)9719 vec_vsum4ubs(vector unsigned char __a, vector unsigned int __b) {
9720   return __builtin_altivec_vsum4ubs(__a, __b);
9721 }
9722 
9723 /* vec_vsum4shs */
9724 
9725 static vector int __attribute__((__always_inline__))
vec_vsum4shs(vector signed short __a,vector int __b)9726 vec_vsum4shs(vector signed short __a, vector int __b) {
9727   return __builtin_altivec_vsum4shs(__a, __b);
9728 }
9729 
9730 /* vec_sum2s */
9731 
9732 /* The vsum2sws instruction has a big-endian bias, so that the second
9733    input vector and the result always reference big-endian elements
9734    1 and 3 (little-endian element 0 and 2).  For ease of porting the
9735    programmer wants elements 1 and 3 in both cases, so for little
9736    endian we must perform some permutes.  */
9737 
9738 static vector signed int __attribute__((__always_inline__))
vec_sum2s(vector int __a,vector int __b)9739 vec_sum2s(vector int __a, vector int __b) {
9740 #ifdef __LITTLE_ENDIAN__
9741   vector int __c = (vector signed int)vec_perm(
9742       __b, __b, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
9743                                        8, 9, 10, 11));
9744   __c = __builtin_altivec_vsum2sws(__a, __c);
9745   return (vector signed int)vec_perm(
9746       __c, __c, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
9747                                        8, 9, 10, 11));
9748 #else
9749   return __builtin_altivec_vsum2sws(__a, __b);
9750 #endif
9751 }
9752 
9753 /* vec_vsum2sws */
9754 
9755 static vector signed int __attribute__((__always_inline__))
vec_vsum2sws(vector int __a,vector int __b)9756 vec_vsum2sws(vector int __a, vector int __b) {
9757 #ifdef __LITTLE_ENDIAN__
9758   vector int __c = (vector signed int)vec_perm(
9759       __b, __b, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
9760                                        8, 9, 10, 11));
9761   __c = __builtin_altivec_vsum2sws(__a, __c);
9762   return (vector signed int)vec_perm(
9763       __c, __c, (vector unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
9764                                        8, 9, 10, 11));
9765 #else
9766   return __builtin_altivec_vsum2sws(__a, __b);
9767 #endif
9768 }
9769 
9770 /* vec_sums */
9771 
9772 /* The vsumsws instruction has a big-endian bias, so that the second
9773    input vector and the result always reference big-endian element 3
9774    (little-endian element 0).  For ease of porting the programmer
9775    wants element 3 in both cases, so for little endian we must perform
9776    some permutes.  */
9777 
9778 static vector signed int __attribute__((__always_inline__))
vec_sums(vector signed int __a,vector signed int __b)9779 vec_sums(vector signed int __a, vector signed int __b) {
9780 #ifdef __LITTLE_ENDIAN__
9781   __b = (vector signed int)vec_splat(__b, 3);
9782   __b = __builtin_altivec_vsumsws(__a, __b);
9783   return (vector signed int)(0, 0, 0, __b[0]);
9784 #else
9785   return __builtin_altivec_vsumsws(__a, __b);
9786 #endif
9787 }
9788 
9789 /* vec_vsumsws */
9790 
9791 static vector signed int __attribute__((__always_inline__))
vec_vsumsws(vector signed int __a,vector signed int __b)9792 vec_vsumsws(vector signed int __a, vector signed int __b) {
9793 #ifdef __LITTLE_ENDIAN__
9794   __b = (vector signed int)vec_splat(__b, 3);
9795   __b = __builtin_altivec_vsumsws(__a, __b);
9796   return (vector signed int)(0, 0, 0, __b[0]);
9797 #else
9798   return __builtin_altivec_vsumsws(__a, __b);
9799 #endif
9800 }
9801 
9802 /* vec_trunc */
9803 
9804 static vector float __ATTRS_o_ai
vec_trunc(vector float __a)9805 vec_trunc(vector float __a) {
9806 #ifdef __VSX__
9807   return __builtin_vsx_xvrspiz(__a);
9808 #else
9809   return __builtin_altivec_vrfiz(__a);
9810 #endif
9811 }
9812 
9813 #ifdef __VSX__
vec_trunc(vector double __a)9814 static vector double __ATTRS_o_ai vec_trunc(vector double __a) {
9815   return __builtin_vsx_xvrdpiz(__a);
9816 }
9817 #endif
9818 
9819 /* vec_vrfiz */
9820 
9821 static vector float __attribute__((__always_inline__))
vec_vrfiz(vector float __a)9822 vec_vrfiz(vector float __a) {
9823   return __builtin_altivec_vrfiz(__a);
9824 }
9825 
9826 /* vec_unpackh */
9827 
9828 /* The vector unpack instructions all have a big-endian bias, so for
9829    little endian we must reverse the meanings of "high" and "low."  */
9830 
vec_unpackh(vector signed char __a)9831 static vector short __ATTRS_o_ai vec_unpackh(vector signed char __a) {
9832 #ifdef __LITTLE_ENDIAN__
9833   return __builtin_altivec_vupklsb((vector char)__a);
9834 #else
9835   return __builtin_altivec_vupkhsb((vector char)__a);
9836 #endif
9837 }
9838 
vec_unpackh(vector bool char __a)9839 static vector bool short __ATTRS_o_ai vec_unpackh(vector bool char __a) {
9840 #ifdef __LITTLE_ENDIAN__
9841   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
9842 #else
9843   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
9844 #endif
9845 }
9846 
vec_unpackh(vector short __a)9847 static vector int __ATTRS_o_ai vec_unpackh(vector short __a) {
9848 #ifdef __LITTLE_ENDIAN__
9849   return __builtin_altivec_vupklsh(__a);
9850 #else
9851   return __builtin_altivec_vupkhsh(__a);
9852 #endif
9853 }
9854 
vec_unpackh(vector bool short __a)9855 static vector bool int __ATTRS_o_ai vec_unpackh(vector bool short __a) {
9856 #ifdef __LITTLE_ENDIAN__
9857   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
9858 #else
9859   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
9860 #endif
9861 }
9862 
vec_unpackh(vector pixel __a)9863 static vector unsigned int __ATTRS_o_ai vec_unpackh(vector pixel __a) {
9864 #ifdef __LITTLE_ENDIAN__
9865   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
9866 #else
9867   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
9868 #endif
9869 }
9870 
9871 #ifdef __POWER8_VECTOR__
vec_unpackh(vector int __a)9872 static vector long long __ATTRS_o_ai vec_unpackh(vector int __a) {
9873 #ifdef __LITTLE_ENDIAN__
9874   return __builtin_altivec_vupklsw(__a);
9875 #else
9876   return __builtin_altivec_vupkhsw(__a);
9877 #endif
9878 }
9879 
vec_unpackh(vector bool int __a)9880 static vector bool long long __ATTRS_o_ai vec_unpackh(vector bool int __a) {
9881 #ifdef __LITTLE_ENDIAN__
9882   return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
9883 #else
9884   return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
9885 #endif
9886 }
9887 #endif
9888 
9889 /* vec_vupkhsb */
9890 
vec_vupkhsb(vector signed char __a)9891 static vector short __ATTRS_o_ai vec_vupkhsb(vector signed char __a) {
9892 #ifdef __LITTLE_ENDIAN__
9893   return __builtin_altivec_vupklsb((vector char)__a);
9894 #else
9895   return __builtin_altivec_vupkhsb((vector char)__a);
9896 #endif
9897 }
9898 
vec_vupkhsb(vector bool char __a)9899 static vector bool short __ATTRS_o_ai vec_vupkhsb(vector bool char __a) {
9900 #ifdef __LITTLE_ENDIAN__
9901   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
9902 #else
9903   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
9904 #endif
9905 }
9906 
9907 /* vec_vupkhsh */
9908 
vec_vupkhsh(vector short __a)9909 static vector int __ATTRS_o_ai vec_vupkhsh(vector short __a) {
9910 #ifdef __LITTLE_ENDIAN__
9911   return __builtin_altivec_vupklsh(__a);
9912 #else
9913   return __builtin_altivec_vupkhsh(__a);
9914 #endif
9915 }
9916 
vec_vupkhsh(vector bool short __a)9917 static vector bool int __ATTRS_o_ai vec_vupkhsh(vector bool short __a) {
9918 #ifdef __LITTLE_ENDIAN__
9919   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
9920 #else
9921   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
9922 #endif
9923 }
9924 
vec_vupkhsh(vector pixel __a)9925 static vector unsigned int __ATTRS_o_ai vec_vupkhsh(vector pixel __a) {
9926 #ifdef __LITTLE_ENDIAN__
9927   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
9928 #else
9929   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
9930 #endif
9931 }
9932 
9933 /* vec_vupkhsw */
9934 
9935 #ifdef __POWER8_VECTOR__
vec_vupkhsw(vector int __a)9936 static vector long long __ATTRS_o_ai vec_vupkhsw(vector int __a) {
9937 #ifdef __LITTLE_ENDIAN__
9938   return __builtin_altivec_vupklsw(__a);
9939 #else
9940   return __builtin_altivec_vupkhsw(__a);
9941 #endif
9942 }
9943 
vec_vupkhsw(vector bool int __a)9944 static vector bool long long __ATTRS_o_ai vec_vupkhsw(vector bool int __a) {
9945 #ifdef __LITTLE_ENDIAN__
9946   return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
9947 #else
9948   return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
9949 #endif
9950 }
9951 #endif
9952 
9953 /* vec_unpackl */
9954 
vec_unpackl(vector signed char __a)9955 static vector short __ATTRS_o_ai vec_unpackl(vector signed char __a) {
9956 #ifdef __LITTLE_ENDIAN__
9957   return __builtin_altivec_vupkhsb((vector char)__a);
9958 #else
9959   return __builtin_altivec_vupklsb((vector char)__a);
9960 #endif
9961 }
9962 
vec_unpackl(vector bool char __a)9963 static vector bool short __ATTRS_o_ai vec_unpackl(vector bool char __a) {
9964 #ifdef __LITTLE_ENDIAN__
9965   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
9966 #else
9967   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
9968 #endif
9969 }
9970 
vec_unpackl(vector short __a)9971 static vector int __ATTRS_o_ai vec_unpackl(vector short __a) {
9972 #ifdef __LITTLE_ENDIAN__
9973   return __builtin_altivec_vupkhsh(__a);
9974 #else
9975   return __builtin_altivec_vupklsh(__a);
9976 #endif
9977 }
9978 
vec_unpackl(vector bool short __a)9979 static vector bool int __ATTRS_o_ai vec_unpackl(vector bool short __a) {
9980 #ifdef __LITTLE_ENDIAN__
9981   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
9982 #else
9983   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
9984 #endif
9985 }
9986 
vec_unpackl(vector pixel __a)9987 static vector unsigned int __ATTRS_o_ai vec_unpackl(vector pixel __a) {
9988 #ifdef __LITTLE_ENDIAN__
9989   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
9990 #else
9991   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
9992 #endif
9993 }
9994 
9995 #ifdef __POWER8_VECTOR__
vec_unpackl(vector int __a)9996 static vector long long __ATTRS_o_ai vec_unpackl(vector int __a) {
9997 #ifdef __LITTLE_ENDIAN__
9998   return __builtin_altivec_vupkhsw(__a);
9999 #else
10000   return __builtin_altivec_vupklsw(__a);
10001 #endif
10002 }
10003 
vec_unpackl(vector bool int __a)10004 static vector bool long long __ATTRS_o_ai vec_unpackl(vector bool int __a) {
10005 #ifdef __LITTLE_ENDIAN__
10006   return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
10007 #else
10008   return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
10009 #endif
10010 }
10011 #endif
10012 
10013 /* vec_vupklsb */
10014 
vec_vupklsb(vector signed char __a)10015 static vector short __ATTRS_o_ai vec_vupklsb(vector signed char __a) {
10016 #ifdef __LITTLE_ENDIAN__
10017   return __builtin_altivec_vupkhsb((vector char)__a);
10018 #else
10019   return __builtin_altivec_vupklsb((vector char)__a);
10020 #endif
10021 }
10022 
vec_vupklsb(vector bool char __a)10023 static vector bool short __ATTRS_o_ai vec_vupklsb(vector bool char __a) {
10024 #ifdef __LITTLE_ENDIAN__
10025   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
10026 #else
10027   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
10028 #endif
10029 }
10030 
10031 /* vec_vupklsh */
10032 
vec_vupklsh(vector short __a)10033 static vector int __ATTRS_o_ai vec_vupklsh(vector short __a) {
10034 #ifdef __LITTLE_ENDIAN__
10035   return __builtin_altivec_vupkhsh(__a);
10036 #else
10037   return __builtin_altivec_vupklsh(__a);
10038 #endif
10039 }
10040 
vec_vupklsh(vector bool short __a)10041 static vector bool int __ATTRS_o_ai vec_vupklsh(vector bool short __a) {
10042 #ifdef __LITTLE_ENDIAN__
10043   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
10044 #else
10045   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
10046 #endif
10047 }
10048 
vec_vupklsh(vector pixel __a)10049 static vector unsigned int __ATTRS_o_ai vec_vupklsh(vector pixel __a) {
10050 #ifdef __LITTLE_ENDIAN__
10051   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
10052 #else
10053   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
10054 #endif
10055 }
10056 
10057 /* vec_vupklsw */
10058 
10059 #ifdef __POWER8_VECTOR__
vec_vupklsw(vector int __a)10060 static vector long long __ATTRS_o_ai vec_vupklsw(vector int __a) {
10061 #ifdef __LITTLE_ENDIAN__
10062   return __builtin_altivec_vupkhsw(__a);
10063 #else
10064   return __builtin_altivec_vupklsw(__a);
10065 #endif
10066 }
10067 
vec_vupklsw(vector bool int __a)10068 static vector bool long long __ATTRS_o_ai vec_vupklsw(vector bool int __a) {
10069 #ifdef __LITTLE_ENDIAN__
10070   return (vector bool long long)__builtin_altivec_vupkhsw((vector int)__a);
10071 #else
10072   return (vector bool long long)__builtin_altivec_vupklsw((vector int)__a);
10073 #endif
10074 }
10075 #endif
10076 
10077 /* vec_vsx_ld */
10078 
10079 #ifdef __VSX__
10080 
vec_vsx_ld(int __a,const vector signed int * __b)10081 static vector signed int __ATTRS_o_ai vec_vsx_ld(int __a,
10082                                                  const vector signed int *__b) {
10083   return (vector signed int)__builtin_vsx_lxvw4x(__a, __b);
10084 }
10085 
10086 static vector unsigned int __ATTRS_o_ai
vec_vsx_ld(int __a,const vector unsigned int * __b)10087 vec_vsx_ld(int __a, const vector unsigned int *__b) {
10088   return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b);
10089 }
10090 
vec_vsx_ld(int __a,const vector float * __b)10091 static vector float __ATTRS_o_ai vec_vsx_ld(int __a, const vector float *__b) {
10092   return (vector float)__builtin_vsx_lxvw4x(__a, __b);
10093 }
10094 
10095 static vector signed long long __ATTRS_o_ai
vec_vsx_ld(int __a,const vector signed long long * __b)10096 vec_vsx_ld(int __a, const vector signed long long *__b) {
10097   return (vector signed long long)__builtin_vsx_lxvd2x(__a, __b);
10098 }
10099 
10100 static vector unsigned long long __ATTRS_o_ai
vec_vsx_ld(int __a,const vector unsigned long long * __b)10101 vec_vsx_ld(int __a, const vector unsigned long long *__b) {
10102   return (vector unsigned long long)__builtin_vsx_lxvd2x(__a, __b);
10103 }
10104 
vec_vsx_ld(int __a,const vector double * __b)10105 static vector double __ATTRS_o_ai vec_vsx_ld(int __a,
10106                                              const vector double *__b) {
10107   return (vector double)__builtin_vsx_lxvd2x(__a, __b);
10108 }
10109 
10110 #endif
10111 
10112 /* vec_vsx_st */
10113 
10114 #ifdef __VSX__
10115 
vec_vsx_st(vector signed int __a,int __b,vector signed int * __c)10116 static void __ATTRS_o_ai vec_vsx_st(vector signed int __a, int __b,
10117                                     vector signed int *__c) {
10118   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
10119 }
10120 
vec_vsx_st(vector unsigned int __a,int __b,vector unsigned int * __c)10121 static void __ATTRS_o_ai vec_vsx_st(vector unsigned int __a, int __b,
10122                                     vector unsigned int *__c) {
10123   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
10124 }
10125 
vec_vsx_st(vector float __a,int __b,vector float * __c)10126 static void __ATTRS_o_ai vec_vsx_st(vector float __a, int __b,
10127                                     vector float *__c) {
10128   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
10129 }
10130 
vec_vsx_st(vector signed long long __a,int __b,vector signed long long * __c)10131 static void __ATTRS_o_ai vec_vsx_st(vector signed long long __a, int __b,
10132                                     vector signed long long *__c) {
10133   __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
10134 }
10135 
vec_vsx_st(vector unsigned long long __a,int __b,vector unsigned long long * __c)10136 static void __ATTRS_o_ai vec_vsx_st(vector unsigned long long __a, int __b,
10137                                     vector unsigned long long *__c) {
10138   __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
10139 }
10140 
vec_vsx_st(vector double __a,int __b,vector double * __c)10141 static void __ATTRS_o_ai vec_vsx_st(vector double __a, int __b,
10142                                     vector double *__c) {
10143   __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
10144 }
10145 
10146 #endif
10147 
10148 /* vec_xor */
10149 
10150 #define __builtin_altivec_vxor vec_xor
10151 
vec_xor(vector signed char __a,vector signed char __b)10152 static vector signed char __ATTRS_o_ai vec_xor(vector signed char __a,
10153                                                vector signed char __b) {
10154   return __a ^ __b;
10155 }
10156 
vec_xor(vector bool char __a,vector signed char __b)10157 static vector signed char __ATTRS_o_ai vec_xor(vector bool char __a,
10158                                                vector signed char __b) {
10159   return (vector signed char)__a ^ __b;
10160 }
10161 
vec_xor(vector signed char __a,vector bool char __b)10162 static vector signed char __ATTRS_o_ai vec_xor(vector signed char __a,
10163                                                vector bool char __b) {
10164   return __a ^ (vector signed char)__b;
10165 }
10166 
vec_xor(vector unsigned char __a,vector unsigned char __b)10167 static vector unsigned char __ATTRS_o_ai vec_xor(vector unsigned char __a,
10168                                                  vector unsigned char __b) {
10169   return __a ^ __b;
10170 }
10171 
vec_xor(vector bool char __a,vector unsigned char __b)10172 static vector unsigned char __ATTRS_o_ai vec_xor(vector bool char __a,
10173                                                  vector unsigned char __b) {
10174   return (vector unsigned char)__a ^ __b;
10175 }
10176 
vec_xor(vector unsigned char __a,vector bool char __b)10177 static vector unsigned char __ATTRS_o_ai vec_xor(vector unsigned char __a,
10178                                                  vector bool char __b) {
10179   return __a ^ (vector unsigned char)__b;
10180 }
10181 
vec_xor(vector bool char __a,vector bool char __b)10182 static vector bool char __ATTRS_o_ai vec_xor(vector bool char __a,
10183                                              vector bool char __b) {
10184   return __a ^ __b;
10185 }
10186 
vec_xor(vector short __a,vector short __b)10187 static vector short __ATTRS_o_ai vec_xor(vector short __a, vector short __b) {
10188   return __a ^ __b;
10189 }
10190 
vec_xor(vector bool short __a,vector short __b)10191 static vector short __ATTRS_o_ai vec_xor(vector bool short __a,
10192                                          vector short __b) {
10193   return (vector short)__a ^ __b;
10194 }
10195 
vec_xor(vector short __a,vector bool short __b)10196 static vector short __ATTRS_o_ai vec_xor(vector short __a,
10197                                          vector bool short __b) {
10198   return __a ^ (vector short)__b;
10199 }
10200 
vec_xor(vector unsigned short __a,vector unsigned short __b)10201 static vector unsigned short __ATTRS_o_ai vec_xor(vector unsigned short __a,
10202                                                   vector unsigned short __b) {
10203   return __a ^ __b;
10204 }
10205 
vec_xor(vector bool short __a,vector unsigned short __b)10206 static vector unsigned short __ATTRS_o_ai vec_xor(vector bool short __a,
10207                                                   vector unsigned short __b) {
10208   return (vector unsigned short)__a ^ __b;
10209 }
10210 
vec_xor(vector unsigned short __a,vector bool short __b)10211 static vector unsigned short __ATTRS_o_ai vec_xor(vector unsigned short __a,
10212                                                   vector bool short __b) {
10213   return __a ^ (vector unsigned short)__b;
10214 }
10215 
vec_xor(vector bool short __a,vector bool short __b)10216 static vector bool short __ATTRS_o_ai vec_xor(vector bool short __a,
10217                                               vector bool short __b) {
10218   return __a ^ __b;
10219 }
10220 
vec_xor(vector int __a,vector int __b)10221 static vector int __ATTRS_o_ai vec_xor(vector int __a, vector int __b) {
10222   return __a ^ __b;
10223 }
10224 
vec_xor(vector bool int __a,vector int __b)10225 static vector int __ATTRS_o_ai vec_xor(vector bool int __a, vector int __b) {
10226   return (vector int)__a ^ __b;
10227 }
10228 
vec_xor(vector int __a,vector bool int __b)10229 static vector int __ATTRS_o_ai vec_xor(vector int __a, vector bool int __b) {
10230   return __a ^ (vector int)__b;
10231 }
10232 
vec_xor(vector unsigned int __a,vector unsigned int __b)10233 static vector unsigned int __ATTRS_o_ai vec_xor(vector unsigned int __a,
10234                                                 vector unsigned int __b) {
10235   return __a ^ __b;
10236 }
10237 
vec_xor(vector bool int __a,vector unsigned int __b)10238 static vector unsigned int __ATTRS_o_ai vec_xor(vector bool int __a,
10239                                                 vector unsigned int __b) {
10240   return (vector unsigned int)__a ^ __b;
10241 }
10242 
vec_xor(vector unsigned int __a,vector bool int __b)10243 static vector unsigned int __ATTRS_o_ai vec_xor(vector unsigned int __a,
10244                                                 vector bool int __b) {
10245   return __a ^ (vector unsigned int)__b;
10246 }
10247 
vec_xor(vector bool int __a,vector bool int __b)10248 static vector bool int __ATTRS_o_ai vec_xor(vector bool int __a,
10249                                             vector bool int __b) {
10250   return __a ^ __b;
10251 }
10252 
vec_xor(vector float __a,vector float __b)10253 static vector float __ATTRS_o_ai vec_xor(vector float __a, vector float __b) {
10254   vector unsigned int __res =
10255       (vector unsigned int)__a ^ (vector unsigned int)__b;
10256   return (vector float)__res;
10257 }
10258 
vec_xor(vector bool int __a,vector float __b)10259 static vector float __ATTRS_o_ai vec_xor(vector bool int __a,
10260                                          vector float __b) {
10261   vector unsigned int __res =
10262       (vector unsigned int)__a ^ (vector unsigned int)__b;
10263   return (vector float)__res;
10264 }
10265 
vec_xor(vector float __a,vector bool int __b)10266 static vector float __ATTRS_o_ai vec_xor(vector float __a,
10267                                          vector bool int __b) {
10268   vector unsigned int __res =
10269       (vector unsigned int)__a ^ (vector unsigned int)__b;
10270   return (vector float)__res;
10271 }
10272 
10273 #ifdef __VSX__
10274 static vector signed long long __ATTRS_o_ai
vec_xor(vector signed long long __a,vector signed long long __b)10275 vec_xor(vector signed long long __a, vector signed long long __b) {
10276   return __a ^ __b;
10277 }
10278 
10279 static vector signed long long __ATTRS_o_ai
vec_xor(vector bool long long __a,vector signed long long __b)10280 vec_xor(vector bool long long __a, vector signed long long __b) {
10281   return (vector signed long long)__a ^ __b;
10282 }
10283 
vec_xor(vector signed long long __a,vector bool long long __b)10284 static vector signed long long __ATTRS_o_ai vec_xor(vector signed long long __a,
10285                                                     vector bool long long __b) {
10286   return __a ^ (vector signed long long)__b;
10287 }
10288 
10289 static vector unsigned long long __ATTRS_o_ai
vec_xor(vector unsigned long long __a,vector unsigned long long __b)10290 vec_xor(vector unsigned long long __a, vector unsigned long long __b) {
10291   return __a ^ __b;
10292 }
10293 
10294 static vector unsigned long long __ATTRS_o_ai
vec_xor(vector bool long long __a,vector unsigned long long __b)10295 vec_xor(vector bool long long __a, vector unsigned long long __b) {
10296   return (vector unsigned long long)__a ^ __b;
10297 }
10298 
10299 static vector unsigned long long __ATTRS_o_ai
vec_xor(vector unsigned long long __a,vector bool long long __b)10300 vec_xor(vector unsigned long long __a, vector bool long long __b) {
10301   return __a ^ (vector unsigned long long)__b;
10302 }
10303 
vec_xor(vector bool long long __a,vector bool long long __b)10304 static vector bool long long __ATTRS_o_ai vec_xor(vector bool long long __a,
10305                                                   vector bool long long __b) {
10306   return __a ^ __b;
10307 }
10308 
10309 static vector double __ATTRS_o_ai
vec_xor(vector double __a,vector double __b)10310 vec_xor(vector double __a, vector double __b) {
10311   return (vector double)((vector unsigned long long)__a ^
10312                           (vector unsigned long long)__b);
10313 }
10314 
10315 static vector double __ATTRS_o_ai
vec_xor(vector double __a,vector bool long long __b)10316 vec_xor(vector double __a, vector bool long long __b) {
10317   return (vector double)((vector unsigned long long)__a ^
10318                          (vector unsigned long long) __b);
10319 }
10320 
10321 static vector double __ATTRS_o_ai
vec_xor(vector bool long long __a,vector double __b)10322 vec_xor(vector bool long long __a, vector double __b) {
10323   return (vector double)((vector unsigned long long)__a ^
10324                          (vector unsigned long long)__b);
10325 }
10326 #endif
10327 
10328 /* vec_vxor */
10329 
vec_vxor(vector signed char __a,vector signed char __b)10330 static vector signed char __ATTRS_o_ai vec_vxor(vector signed char __a,
10331                                                 vector signed char __b) {
10332   return __a ^ __b;
10333 }
10334 
vec_vxor(vector bool char __a,vector signed char __b)10335 static vector signed char __ATTRS_o_ai vec_vxor(vector bool char __a,
10336                                                 vector signed char __b) {
10337   return (vector signed char)__a ^ __b;
10338 }
10339 
vec_vxor(vector signed char __a,vector bool char __b)10340 static vector signed char __ATTRS_o_ai vec_vxor(vector signed char __a,
10341                                                 vector bool char __b) {
10342   return __a ^ (vector signed char)__b;
10343 }
10344 
vec_vxor(vector unsigned char __a,vector unsigned char __b)10345 static vector unsigned char __ATTRS_o_ai vec_vxor(vector unsigned char __a,
10346                                                   vector unsigned char __b) {
10347   return __a ^ __b;
10348 }
10349 
vec_vxor(vector bool char __a,vector unsigned char __b)10350 static vector unsigned char __ATTRS_o_ai vec_vxor(vector bool char __a,
10351                                                   vector unsigned char __b) {
10352   return (vector unsigned char)__a ^ __b;
10353 }
10354 
vec_vxor(vector unsigned char __a,vector bool char __b)10355 static vector unsigned char __ATTRS_o_ai vec_vxor(vector unsigned char __a,
10356                                                   vector bool char __b) {
10357   return __a ^ (vector unsigned char)__b;
10358 }
10359 
vec_vxor(vector bool char __a,vector bool char __b)10360 static vector bool char __ATTRS_o_ai vec_vxor(vector bool char __a,
10361                                               vector bool char __b) {
10362   return __a ^ __b;
10363 }
10364 
vec_vxor(vector short __a,vector short __b)10365 static vector short __ATTRS_o_ai vec_vxor(vector short __a, vector short __b) {
10366   return __a ^ __b;
10367 }
10368 
vec_vxor(vector bool short __a,vector short __b)10369 static vector short __ATTRS_o_ai vec_vxor(vector bool short __a,
10370                                           vector short __b) {
10371   return (vector short)__a ^ __b;
10372 }
10373 
vec_vxor(vector short __a,vector bool short __b)10374 static vector short __ATTRS_o_ai vec_vxor(vector short __a,
10375                                           vector bool short __b) {
10376   return __a ^ (vector short)__b;
10377 }
10378 
vec_vxor(vector unsigned short __a,vector unsigned short __b)10379 static vector unsigned short __ATTRS_o_ai vec_vxor(vector unsigned short __a,
10380                                                    vector unsigned short __b) {
10381   return __a ^ __b;
10382 }
10383 
vec_vxor(vector bool short __a,vector unsigned short __b)10384 static vector unsigned short __ATTRS_o_ai vec_vxor(vector bool short __a,
10385                                                    vector unsigned short __b) {
10386   return (vector unsigned short)__a ^ __b;
10387 }
10388 
vec_vxor(vector unsigned short __a,vector bool short __b)10389 static vector unsigned short __ATTRS_o_ai vec_vxor(vector unsigned short __a,
10390                                                    vector bool short __b) {
10391   return __a ^ (vector unsigned short)__b;
10392 }
10393 
vec_vxor(vector bool short __a,vector bool short __b)10394 static vector bool short __ATTRS_o_ai vec_vxor(vector bool short __a,
10395                                                vector bool short __b) {
10396   return __a ^ __b;
10397 }
10398 
vec_vxor(vector int __a,vector int __b)10399 static vector int __ATTRS_o_ai vec_vxor(vector int __a, vector int __b) {
10400   return __a ^ __b;
10401 }
10402 
vec_vxor(vector bool int __a,vector int __b)10403 static vector int __ATTRS_o_ai vec_vxor(vector bool int __a, vector int __b) {
10404   return (vector int)__a ^ __b;
10405 }
10406 
vec_vxor(vector int __a,vector bool int __b)10407 static vector int __ATTRS_o_ai vec_vxor(vector int __a, vector bool int __b) {
10408   return __a ^ (vector int)__b;
10409 }
10410 
vec_vxor(vector unsigned int __a,vector unsigned int __b)10411 static vector unsigned int __ATTRS_o_ai vec_vxor(vector unsigned int __a,
10412                                                  vector unsigned int __b) {
10413   return __a ^ __b;
10414 }
10415 
vec_vxor(vector bool int __a,vector unsigned int __b)10416 static vector unsigned int __ATTRS_o_ai vec_vxor(vector bool int __a,
10417                                                  vector unsigned int __b) {
10418   return (vector unsigned int)__a ^ __b;
10419 }
10420 
vec_vxor(vector unsigned int __a,vector bool int __b)10421 static vector unsigned int __ATTRS_o_ai vec_vxor(vector unsigned int __a,
10422                                                  vector bool int __b) {
10423   return __a ^ (vector unsigned int)__b;
10424 }
10425 
vec_vxor(vector bool int __a,vector bool int __b)10426 static vector bool int __ATTRS_o_ai vec_vxor(vector bool int __a,
10427                                              vector bool int __b) {
10428   return __a ^ __b;
10429 }
10430 
vec_vxor(vector float __a,vector float __b)10431 static vector float __ATTRS_o_ai vec_vxor(vector float __a, vector float __b) {
10432   vector unsigned int __res =
10433       (vector unsigned int)__a ^ (vector unsigned int)__b;
10434   return (vector float)__res;
10435 }
10436 
vec_vxor(vector bool int __a,vector float __b)10437 static vector float __ATTRS_o_ai vec_vxor(vector bool int __a,
10438                                           vector float __b) {
10439   vector unsigned int __res =
10440       (vector unsigned int)__a ^ (vector unsigned int)__b;
10441   return (vector float)__res;
10442 }
10443 
vec_vxor(vector float __a,vector bool int __b)10444 static vector float __ATTRS_o_ai vec_vxor(vector float __a,
10445                                           vector bool int __b) {
10446   vector unsigned int __res =
10447       (vector unsigned int)__a ^ (vector unsigned int)__b;
10448   return (vector float)__res;
10449 }
10450 
10451 #ifdef __VSX__
10452 static vector signed long long __ATTRS_o_ai
vec_vxor(vector signed long long __a,vector signed long long __b)10453 vec_vxor(vector signed long long __a, vector signed long long __b) {
10454   return __a ^ __b;
10455 }
10456 
10457 static vector signed long long __ATTRS_o_ai
vec_vxor(vector bool long long __a,vector signed long long __b)10458 vec_vxor(vector bool long long __a, vector signed long long __b) {
10459   return (vector signed long long)__a ^ __b;
10460 }
10461 
10462 static vector signed long long __ATTRS_o_ai
vec_vxor(vector signed long long __a,vector bool long long __b)10463 vec_vxor(vector signed long long __a, vector bool long long __b) {
10464   return __a ^ (vector signed long long)__b;
10465 }
10466 
10467 static vector unsigned long long __ATTRS_o_ai
vec_vxor(vector unsigned long long __a,vector unsigned long long __b)10468 vec_vxor(vector unsigned long long __a, vector unsigned long long __b) {
10469   return __a ^ __b;
10470 }
10471 
10472 static vector unsigned long long __ATTRS_o_ai
vec_vxor(vector bool long long __a,vector unsigned long long __b)10473 vec_vxor(vector bool long long __a, vector unsigned long long __b) {
10474   return (vector unsigned long long)__a ^ __b;
10475 }
10476 
10477 static vector unsigned long long __ATTRS_o_ai
vec_vxor(vector unsigned long long __a,vector bool long long __b)10478 vec_vxor(vector unsigned long long __a, vector bool long long __b) {
10479   return __a ^ (vector unsigned long long)__b;
10480 }
10481 
vec_vxor(vector bool long long __a,vector bool long long __b)10482 static vector bool long long __ATTRS_o_ai vec_vxor(vector bool long long __a,
10483                                                    vector bool long long __b) {
10484   return __a ^ __b;
10485 }
10486 #endif
10487 
10488 /* ------------------------ extensions for CBEA ----------------------------- */
10489 
10490 /* vec_extract */
10491 
vec_extract(vector signed char __a,int __b)10492 static signed char __ATTRS_o_ai vec_extract(vector signed char __a, int __b) {
10493   return __a[__b];
10494 }
10495 
vec_extract(vector unsigned char __a,int __b)10496 static unsigned char __ATTRS_o_ai vec_extract(vector unsigned char __a,
10497                                               int __b) {
10498   return __a[__b];
10499 }
10500 
vec_extract(vector bool char __a,int __b)10501 static unsigned char __ATTRS_o_ai vec_extract(vector bool char __a,
10502                                               int __b) {
10503   return __a[__b];
10504 }
10505 
vec_extract(vector signed short __a,int __b)10506 static signed short __ATTRS_o_ai vec_extract(vector signed short __a, int __b) {
10507   return __a[__b];
10508 }
10509 
vec_extract(vector unsigned short __a,int __b)10510 static unsigned short __ATTRS_o_ai vec_extract(vector unsigned short __a,
10511                                                int __b) {
10512   return __a[__b];
10513 }
10514 
vec_extract(vector bool short __a,int __b)10515 static unsigned short __ATTRS_o_ai vec_extract(vector bool short __a,
10516                                                int __b) {
10517   return __a[__b];
10518 }
10519 
vec_extract(vector signed int __a,int __b)10520 static signed int __ATTRS_o_ai vec_extract(vector signed int __a, int __b) {
10521   return __a[__b];
10522 }
10523 
vec_extract(vector unsigned int __a,int __b)10524 static unsigned int __ATTRS_o_ai vec_extract(vector unsigned int __a, int __b) {
10525   return __a[__b];
10526 }
10527 
vec_extract(vector bool int __a,int __b)10528 static unsigned int __ATTRS_o_ai vec_extract(vector bool int __a, int __b) {
10529   return __a[__b];
10530 }
10531 
10532 #ifdef __VSX__
vec_extract(vector signed long long __a,int __b)10533 static signed long long __ATTRS_o_ai vec_extract(vector signed long long __a,
10534                                                  int __b) {
10535   return __a[__b];
10536 }
10537 
10538 static unsigned long long __ATTRS_o_ai
vec_extract(vector unsigned long long __a,int __b)10539 vec_extract(vector unsigned long long __a, int __b) {
10540   return __a[__b];
10541 }
10542 
vec_extract(vector bool long long __a,int __b)10543 static unsigned long long __ATTRS_o_ai vec_extract(vector bool long long __a,
10544                                                    int __b) {
10545   return __a[__b];
10546 }
10547 
vec_extract(vector double __a,int __b)10548 static double __ATTRS_o_ai vec_extract(vector double __a, int __b) {
10549   return __a[__b];
10550 }
10551 #endif
10552 
vec_extract(vector float __a,int __b)10553 static float __ATTRS_o_ai vec_extract(vector float __a, int __b) {
10554   return __a[__b];
10555 }
10556 
10557 /* vec_insert */
10558 
vec_insert(signed char __a,vector signed char __b,int __c)10559 static vector signed char __ATTRS_o_ai vec_insert(signed char __a,
10560                                                   vector signed char __b,
10561                                                   int __c) {
10562   __b[__c] = __a;
10563   return __b;
10564 }
10565 
vec_insert(unsigned char __a,vector unsigned char __b,int __c)10566 static vector unsigned char __ATTRS_o_ai vec_insert(unsigned char __a,
10567                                                     vector unsigned char __b,
10568                                                     int __c) {
10569   __b[__c] = __a;
10570   return __b;
10571 }
10572 
vec_insert(unsigned char __a,vector bool char __b,int __c)10573 static vector bool char __ATTRS_o_ai vec_insert(unsigned char __a,
10574                                                 vector bool char __b,
10575                                                 int __c) {
10576   __b[__c] = __a;
10577   return __b;
10578 }
10579 
vec_insert(signed short __a,vector signed short __b,int __c)10580 static vector signed short __ATTRS_o_ai vec_insert(signed short __a,
10581                                                    vector signed short __b,
10582                                                    int __c) {
10583   __b[__c] = __a;
10584   return __b;
10585 }
10586 
vec_insert(unsigned short __a,vector unsigned short __b,int __c)10587 static vector unsigned short __ATTRS_o_ai vec_insert(unsigned short __a,
10588                                                      vector unsigned short __b,
10589                                                      int __c) {
10590   __b[__c] = __a;
10591   return __b;
10592 }
10593 
vec_insert(unsigned short __a,vector bool short __b,int __c)10594 static vector bool short __ATTRS_o_ai vec_insert(unsigned short __a,
10595                                                  vector bool short __b,
10596                                                  int __c) {
10597   __b[__c] = __a;
10598   return __b;
10599 }
10600 
vec_insert(signed int __a,vector signed int __b,int __c)10601 static vector signed int __ATTRS_o_ai vec_insert(signed int __a,
10602                                                  vector signed int __b,
10603                                                  int __c) {
10604   __b[__c] = __a;
10605   return __b;
10606 }
10607 
vec_insert(unsigned int __a,vector unsigned int __b,int __c)10608 static vector unsigned int __ATTRS_o_ai vec_insert(unsigned int __a,
10609                                                    vector unsigned int __b,
10610                                                    int __c) {
10611   __b[__c] = __a;
10612   return __b;
10613 }
10614 
vec_insert(unsigned int __a,vector bool int __b,int __c)10615 static vector bool int __ATTRS_o_ai vec_insert(unsigned int __a,
10616                                                vector bool int __b,
10617                                                int __c) {
10618   __b[__c] = __a;
10619   return __b;
10620 }
10621 
10622 #ifdef __VSX__
10623 static vector signed long long __ATTRS_o_ai
vec_insert(signed long long __a,vector signed long long __b,int __c)10624 vec_insert(signed long long __a, vector signed long long __b, int __c) {
10625   __b[__c] = __a;
10626   return __b;
10627 }
10628 
10629 static vector unsigned long long __ATTRS_o_ai
vec_insert(unsigned long long __a,vector unsigned long long __b,int __c)10630 vec_insert(unsigned long long __a, vector unsigned long long __b, int __c) {
10631   __b[__c] = __a;
10632   return __b;
10633 }
10634 
10635 static vector bool long long __ATTRS_o_ai
vec_insert(unsigned long long __a,vector bool long long __b,int __c)10636 vec_insert(unsigned long long __a, vector bool long long __b, int __c) {
10637   __b[__c] = __a;
10638   return __b;
10639 }
vec_insert(double __a,vector double __b,int __c)10640 static vector double __ATTRS_o_ai vec_insert(double __a, vector double __b,
10641                                              int __c) {
10642   __b[__c] = __a;
10643   return __b;
10644 }
10645 #endif
10646 
vec_insert(float __a,vector float __b,int __c)10647 static vector float __ATTRS_o_ai vec_insert(float __a, vector float __b,
10648                                             int __c) {
10649   __b[__c] = __a;
10650   return __b;
10651 }
10652 
10653 /* vec_lvlx */
10654 
vec_lvlx(int __a,const signed char * __b)10655 static vector signed char __ATTRS_o_ai vec_lvlx(int __a,
10656                                                 const signed char *__b) {
10657   return vec_perm(vec_ld(__a, __b), (vector signed char)(0),
10658                   vec_lvsl(__a, __b));
10659 }
10660 
vec_lvlx(int __a,const vector signed char * __b)10661 static vector signed char __ATTRS_o_ai vec_lvlx(int __a,
10662                                                 const vector signed char *__b) {
10663   return vec_perm(vec_ld(__a, __b), (vector signed char)(0),
10664                   vec_lvsl(__a, (unsigned char *)__b));
10665 }
10666 
vec_lvlx(int __a,const unsigned char * __b)10667 static vector unsigned char __ATTRS_o_ai vec_lvlx(int __a,
10668                                                   const unsigned char *__b) {
10669   return vec_perm(vec_ld(__a, __b), (vector unsigned char)(0),
10670                   vec_lvsl(__a, __b));
10671 }
10672 
10673 static vector unsigned char __ATTRS_o_ai
vec_lvlx(int __a,const vector unsigned char * __b)10674 vec_lvlx(int __a, const vector unsigned char *__b) {
10675   return vec_perm(vec_ld(__a, __b), (vector unsigned char)(0),
10676                   vec_lvsl(__a, (unsigned char *)__b));
10677 }
10678 
vec_lvlx(int __a,const vector bool char * __b)10679 static vector bool char __ATTRS_o_ai vec_lvlx(int __a,
10680                                               const vector bool char *__b) {
10681   return vec_perm(vec_ld(__a, __b), (vector bool char)(0),
10682                   vec_lvsl(__a, (unsigned char *)__b));
10683 }
10684 
vec_lvlx(int __a,const short * __b)10685 static vector short __ATTRS_o_ai vec_lvlx(int __a, const short *__b) {
10686   return vec_perm(vec_ld(__a, __b), (vector short)(0), vec_lvsl(__a, __b));
10687 }
10688 
vec_lvlx(int __a,const vector short * __b)10689 static vector short __ATTRS_o_ai vec_lvlx(int __a, const vector short *__b) {
10690   return vec_perm(vec_ld(__a, __b), (vector short)(0),
10691                   vec_lvsl(__a, (unsigned char *)__b));
10692 }
10693 
vec_lvlx(int __a,const unsigned short * __b)10694 static vector unsigned short __ATTRS_o_ai vec_lvlx(int __a,
10695                                                    const unsigned short *__b) {
10696   return vec_perm(vec_ld(__a, __b), (vector unsigned short)(0),
10697                   vec_lvsl(__a, __b));
10698 }
10699 
10700 static vector unsigned short __ATTRS_o_ai
vec_lvlx(int __a,const vector unsigned short * __b)10701 vec_lvlx(int __a, const vector unsigned short *__b) {
10702   return vec_perm(vec_ld(__a, __b), (vector unsigned short)(0),
10703                   vec_lvsl(__a, (unsigned char *)__b));
10704 }
10705 
vec_lvlx(int __a,const vector bool short * __b)10706 static vector bool short __ATTRS_o_ai vec_lvlx(int __a,
10707                                                const vector bool short *__b) {
10708   return vec_perm(vec_ld(__a, __b), (vector bool short)(0),
10709                   vec_lvsl(__a, (unsigned char *)__b));
10710 }
10711 
vec_lvlx(int __a,const vector pixel * __b)10712 static vector pixel __ATTRS_o_ai vec_lvlx(int __a, const vector pixel *__b) {
10713   return vec_perm(vec_ld(__a, __b), (vector pixel)(0),
10714                   vec_lvsl(__a, (unsigned char *)__b));
10715 }
10716 
vec_lvlx(int __a,const int * __b)10717 static vector int __ATTRS_o_ai vec_lvlx(int __a, const int *__b) {
10718   return vec_perm(vec_ld(__a, __b), (vector int)(0), vec_lvsl(__a, __b));
10719 }
10720 
vec_lvlx(int __a,const vector int * __b)10721 static vector int __ATTRS_o_ai vec_lvlx(int __a, const vector int *__b) {
10722   return vec_perm(vec_ld(__a, __b), (vector int)(0),
10723                   vec_lvsl(__a, (unsigned char *)__b));
10724 }
10725 
vec_lvlx(int __a,const unsigned int * __b)10726 static vector unsigned int __ATTRS_o_ai vec_lvlx(int __a,
10727                                                  const unsigned int *__b) {
10728   return vec_perm(vec_ld(__a, __b), (vector unsigned int)(0),
10729                   vec_lvsl(__a, __b));
10730 }
10731 
10732 static vector unsigned int __ATTRS_o_ai
vec_lvlx(int __a,const vector unsigned int * __b)10733 vec_lvlx(int __a, const vector unsigned int *__b) {
10734   return vec_perm(vec_ld(__a, __b), (vector unsigned int)(0),
10735                   vec_lvsl(__a, (unsigned char *)__b));
10736 }
10737 
vec_lvlx(int __a,const vector bool int * __b)10738 static vector bool int __ATTRS_o_ai vec_lvlx(int __a,
10739                                              const vector bool int *__b) {
10740   return vec_perm(vec_ld(__a, __b), (vector bool int)(0),
10741                   vec_lvsl(__a, (unsigned char *)__b));
10742 }
10743 
vec_lvlx(int __a,const float * __b)10744 static vector float __ATTRS_o_ai vec_lvlx(int __a, const float *__b) {
10745   return vec_perm(vec_ld(__a, __b), (vector float)(0), vec_lvsl(__a, __b));
10746 }
10747 
vec_lvlx(int __a,const vector float * __b)10748 static vector float __ATTRS_o_ai vec_lvlx(int __a, const vector float *__b) {
10749   return vec_perm(vec_ld(__a, __b), (vector float)(0),
10750                   vec_lvsl(__a, (unsigned char *)__b));
10751 }
10752 
10753 /* vec_lvlxl */
10754 
vec_lvlxl(int __a,const signed char * __b)10755 static vector signed char __ATTRS_o_ai vec_lvlxl(int __a,
10756                                                  const signed char *__b) {
10757   return vec_perm(vec_ldl(__a, __b), (vector signed char)(0),
10758                   vec_lvsl(__a, __b));
10759 }
10760 
10761 static vector signed char __ATTRS_o_ai
vec_lvlxl(int __a,const vector signed char * __b)10762 vec_lvlxl(int __a, const vector signed char *__b) {
10763   return vec_perm(vec_ldl(__a, __b), (vector signed char)(0),
10764                   vec_lvsl(__a, (unsigned char *)__b));
10765 }
10766 
vec_lvlxl(int __a,const unsigned char * __b)10767 static vector unsigned char __ATTRS_o_ai vec_lvlxl(int __a,
10768                                                    const unsigned char *__b) {
10769   return vec_perm(vec_ldl(__a, __b), (vector unsigned char)(0),
10770                   vec_lvsl(__a, __b));
10771 }
10772 
10773 static vector unsigned char __ATTRS_o_ai
vec_lvlxl(int __a,const vector unsigned char * __b)10774 vec_lvlxl(int __a, const vector unsigned char *__b) {
10775   return vec_perm(vec_ldl(__a, __b), (vector unsigned char)(0),
10776                   vec_lvsl(__a, (unsigned char *)__b));
10777 }
10778 
vec_lvlxl(int __a,const vector bool char * __b)10779 static vector bool char __ATTRS_o_ai vec_lvlxl(int __a,
10780                                                const vector bool char *__b) {
10781   return vec_perm(vec_ldl(__a, __b), (vector bool char)(0),
10782                   vec_lvsl(__a, (unsigned char *)__b));
10783 }
10784 
vec_lvlxl(int __a,const short * __b)10785 static vector short __ATTRS_o_ai vec_lvlxl(int __a, const short *__b) {
10786   return vec_perm(vec_ldl(__a, __b), (vector short)(0), vec_lvsl(__a, __b));
10787 }
10788 
vec_lvlxl(int __a,const vector short * __b)10789 static vector short __ATTRS_o_ai vec_lvlxl(int __a, const vector short *__b) {
10790   return vec_perm(vec_ldl(__a, __b), (vector short)(0),
10791                   vec_lvsl(__a, (unsigned char *)__b));
10792 }
10793 
vec_lvlxl(int __a,const unsigned short * __b)10794 static vector unsigned short __ATTRS_o_ai vec_lvlxl(int __a,
10795                                                     const unsigned short *__b) {
10796   return vec_perm(vec_ldl(__a, __b), (vector unsigned short)(0),
10797                   vec_lvsl(__a, __b));
10798 }
10799 
10800 static vector unsigned short __ATTRS_o_ai
vec_lvlxl(int __a,const vector unsigned short * __b)10801 vec_lvlxl(int __a, const vector unsigned short *__b) {
10802   return vec_perm(vec_ldl(__a, __b), (vector unsigned short)(0),
10803                   vec_lvsl(__a, (unsigned char *)__b));
10804 }
10805 
vec_lvlxl(int __a,const vector bool short * __b)10806 static vector bool short __ATTRS_o_ai vec_lvlxl(int __a,
10807                                                 const vector bool short *__b) {
10808   return vec_perm(vec_ldl(__a, __b), (vector bool short)(0),
10809                   vec_lvsl(__a, (unsigned char *)__b));
10810 }
10811 
vec_lvlxl(int __a,const vector pixel * __b)10812 static vector pixel __ATTRS_o_ai vec_lvlxl(int __a, const vector pixel *__b) {
10813   return vec_perm(vec_ldl(__a, __b), (vector pixel)(0),
10814                   vec_lvsl(__a, (unsigned char *)__b));
10815 }
10816 
vec_lvlxl(int __a,const int * __b)10817 static vector int __ATTRS_o_ai vec_lvlxl(int __a, const int *__b) {
10818   return vec_perm(vec_ldl(__a, __b), (vector int)(0), vec_lvsl(__a, __b));
10819 }
10820 
vec_lvlxl(int __a,const vector int * __b)10821 static vector int __ATTRS_o_ai vec_lvlxl(int __a, const vector int *__b) {
10822   return vec_perm(vec_ldl(__a, __b), (vector int)(0),
10823                   vec_lvsl(__a, (unsigned char *)__b));
10824 }
10825 
vec_lvlxl(int __a,const unsigned int * __b)10826 static vector unsigned int __ATTRS_o_ai vec_lvlxl(int __a,
10827                                                   const unsigned int *__b) {
10828   return vec_perm(vec_ldl(__a, __b), (vector unsigned int)(0),
10829                   vec_lvsl(__a, __b));
10830 }
10831 
10832 static vector unsigned int __ATTRS_o_ai
vec_lvlxl(int __a,const vector unsigned int * __b)10833 vec_lvlxl(int __a, const vector unsigned int *__b) {
10834   return vec_perm(vec_ldl(__a, __b), (vector unsigned int)(0),
10835                   vec_lvsl(__a, (unsigned char *)__b));
10836 }
10837 
vec_lvlxl(int __a,const vector bool int * __b)10838 static vector bool int __ATTRS_o_ai vec_lvlxl(int __a,
10839                                               const vector bool int *__b) {
10840   return vec_perm(vec_ldl(__a, __b), (vector bool int)(0),
10841                   vec_lvsl(__a, (unsigned char *)__b));
10842 }
10843 
vec_lvlxl(int __a,const float * __b)10844 static vector float __ATTRS_o_ai vec_lvlxl(int __a, const float *__b) {
10845   return vec_perm(vec_ldl(__a, __b), (vector float)(0), vec_lvsl(__a, __b));
10846 }
10847 
vec_lvlxl(int __a,vector float * __b)10848 static vector float __ATTRS_o_ai vec_lvlxl(int __a, vector float *__b) {
10849   return vec_perm(vec_ldl(__a, __b), (vector float)(0),
10850                   vec_lvsl(__a, (unsigned char *)__b));
10851 }
10852 
10853 /* vec_lvrx */
10854 
vec_lvrx(int __a,const signed char * __b)10855 static vector signed char __ATTRS_o_ai vec_lvrx(int __a,
10856                                                 const signed char *__b) {
10857   return vec_perm((vector signed char)(0), vec_ld(__a, __b),
10858                   vec_lvsl(__a, __b));
10859 }
10860 
vec_lvrx(int __a,const vector signed char * __b)10861 static vector signed char __ATTRS_o_ai vec_lvrx(int __a,
10862                                                 const vector signed char *__b) {
10863   return vec_perm((vector signed char)(0), vec_ld(__a, __b),
10864                   vec_lvsl(__a, (unsigned char *)__b));
10865 }
10866 
vec_lvrx(int __a,const unsigned char * __b)10867 static vector unsigned char __ATTRS_o_ai vec_lvrx(int __a,
10868                                                   const unsigned char *__b) {
10869   return vec_perm((vector unsigned char)(0), vec_ld(__a, __b),
10870                   vec_lvsl(__a, __b));
10871 }
10872 
10873 static vector unsigned char __ATTRS_o_ai
vec_lvrx(int __a,const vector unsigned char * __b)10874 vec_lvrx(int __a, const vector unsigned char *__b) {
10875   return vec_perm((vector unsigned char)(0), vec_ld(__a, __b),
10876                   vec_lvsl(__a, (unsigned char *)__b));
10877 }
10878 
vec_lvrx(int __a,const vector bool char * __b)10879 static vector bool char __ATTRS_o_ai vec_lvrx(int __a,
10880                                               const vector bool char *__b) {
10881   return vec_perm((vector bool char)(0), vec_ld(__a, __b),
10882                   vec_lvsl(__a, (unsigned char *)__b));
10883 }
10884 
vec_lvrx(int __a,const short * __b)10885 static vector short __ATTRS_o_ai vec_lvrx(int __a, const short *__b) {
10886   return vec_perm((vector short)(0), vec_ld(__a, __b), vec_lvsl(__a, __b));
10887 }
10888 
vec_lvrx(int __a,const vector short * __b)10889 static vector short __ATTRS_o_ai vec_lvrx(int __a, const vector short *__b) {
10890   return vec_perm((vector short)(0), vec_ld(__a, __b),
10891                   vec_lvsl(__a, (unsigned char *)__b));
10892 }
10893 
vec_lvrx(int __a,const unsigned short * __b)10894 static vector unsigned short __ATTRS_o_ai vec_lvrx(int __a,
10895                                                    const unsigned short *__b) {
10896   return vec_perm((vector unsigned short)(0), vec_ld(__a, __b),
10897                   vec_lvsl(__a, __b));
10898 }
10899 
10900 static vector unsigned short __ATTRS_o_ai
vec_lvrx(int __a,const vector unsigned short * __b)10901 vec_lvrx(int __a, const vector unsigned short *__b) {
10902   return vec_perm((vector unsigned short)(0), vec_ld(__a, __b),
10903                   vec_lvsl(__a, (unsigned char *)__b));
10904 }
10905 
vec_lvrx(int __a,const vector bool short * __b)10906 static vector bool short __ATTRS_o_ai vec_lvrx(int __a,
10907                                                const vector bool short *__b) {
10908   return vec_perm((vector bool short)(0), vec_ld(__a, __b),
10909                   vec_lvsl(__a, (unsigned char *)__b));
10910 }
10911 
vec_lvrx(int __a,const vector pixel * __b)10912 static vector pixel __ATTRS_o_ai vec_lvrx(int __a, const vector pixel *__b) {
10913   return vec_perm((vector pixel)(0), vec_ld(__a, __b),
10914                   vec_lvsl(__a, (unsigned char *)__b));
10915 }
10916 
vec_lvrx(int __a,const int * __b)10917 static vector int __ATTRS_o_ai vec_lvrx(int __a, const int *__b) {
10918   return vec_perm((vector int)(0), vec_ld(__a, __b), vec_lvsl(__a, __b));
10919 }
10920 
vec_lvrx(int __a,const vector int * __b)10921 static vector int __ATTRS_o_ai vec_lvrx(int __a, const vector int *__b) {
10922   return vec_perm((vector int)(0), vec_ld(__a, __b),
10923                   vec_lvsl(__a, (unsigned char *)__b));
10924 }
10925 
vec_lvrx(int __a,const unsigned int * __b)10926 static vector unsigned int __ATTRS_o_ai vec_lvrx(int __a,
10927                                                  const unsigned int *__b) {
10928   return vec_perm((vector unsigned int)(0), vec_ld(__a, __b),
10929                   vec_lvsl(__a, __b));
10930 }
10931 
10932 static vector unsigned int __ATTRS_o_ai
vec_lvrx(int __a,const vector unsigned int * __b)10933 vec_lvrx(int __a, const vector unsigned int *__b) {
10934   return vec_perm((vector unsigned int)(0), vec_ld(__a, __b),
10935                   vec_lvsl(__a, (unsigned char *)__b));
10936 }
10937 
vec_lvrx(int __a,const vector bool int * __b)10938 static vector bool int __ATTRS_o_ai vec_lvrx(int __a,
10939                                              const vector bool int *__b) {
10940   return vec_perm((vector bool int)(0), vec_ld(__a, __b),
10941                   vec_lvsl(__a, (unsigned char *)__b));
10942 }
10943 
vec_lvrx(int __a,const float * __b)10944 static vector float __ATTRS_o_ai vec_lvrx(int __a, const float *__b) {
10945   return vec_perm((vector float)(0), vec_ld(__a, __b), vec_lvsl(__a, __b));
10946 }
10947 
vec_lvrx(int __a,const vector float * __b)10948 static vector float __ATTRS_o_ai vec_lvrx(int __a, const vector float *__b) {
10949   return vec_perm((vector float)(0), vec_ld(__a, __b),
10950                   vec_lvsl(__a, (unsigned char *)__b));
10951 }
10952 
10953 /* vec_lvrxl */
10954 
vec_lvrxl(int __a,const signed char * __b)10955 static vector signed char __ATTRS_o_ai vec_lvrxl(int __a,
10956                                                  const signed char *__b) {
10957   return vec_perm((vector signed char)(0), vec_ldl(__a, __b),
10958                   vec_lvsl(__a, __b));
10959 }
10960 
10961 static vector signed char __ATTRS_o_ai
vec_lvrxl(int __a,const vector signed char * __b)10962 vec_lvrxl(int __a, const vector signed char *__b) {
10963   return vec_perm((vector signed char)(0), vec_ldl(__a, __b),
10964                   vec_lvsl(__a, (unsigned char *)__b));
10965 }
10966 
vec_lvrxl(int __a,const unsigned char * __b)10967 static vector unsigned char __ATTRS_o_ai vec_lvrxl(int __a,
10968                                                    const unsigned char *__b) {
10969   return vec_perm((vector unsigned char)(0), vec_ldl(__a, __b),
10970                   vec_lvsl(__a, __b));
10971 }
10972 
10973 static vector unsigned char __ATTRS_o_ai
vec_lvrxl(int __a,const vector unsigned char * __b)10974 vec_lvrxl(int __a, const vector unsigned char *__b) {
10975   return vec_perm((vector unsigned char)(0), vec_ldl(__a, __b),
10976                   vec_lvsl(__a, (unsigned char *)__b));
10977 }
10978 
vec_lvrxl(int __a,const vector bool char * __b)10979 static vector bool char __ATTRS_o_ai vec_lvrxl(int __a,
10980                                                const vector bool char *__b) {
10981   return vec_perm((vector bool char)(0), vec_ldl(__a, __b),
10982                   vec_lvsl(__a, (unsigned char *)__b));
10983 }
10984 
vec_lvrxl(int __a,const short * __b)10985 static vector short __ATTRS_o_ai vec_lvrxl(int __a, const short *__b) {
10986   return vec_perm((vector short)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b));
10987 }
10988 
vec_lvrxl(int __a,const vector short * __b)10989 static vector short __ATTRS_o_ai vec_lvrxl(int __a, const vector short *__b) {
10990   return vec_perm((vector short)(0), vec_ldl(__a, __b),
10991                   vec_lvsl(__a, (unsigned char *)__b));
10992 }
10993 
vec_lvrxl(int __a,const unsigned short * __b)10994 static vector unsigned short __ATTRS_o_ai vec_lvrxl(int __a,
10995                                                     const unsigned short *__b) {
10996   return vec_perm((vector unsigned short)(0), vec_ldl(__a, __b),
10997                   vec_lvsl(__a, __b));
10998 }
10999 
11000 static vector unsigned short __ATTRS_o_ai
vec_lvrxl(int __a,const vector unsigned short * __b)11001 vec_lvrxl(int __a, const vector unsigned short *__b) {
11002   return vec_perm((vector unsigned short)(0), vec_ldl(__a, __b),
11003                   vec_lvsl(__a, (unsigned char *)__b));
11004 }
11005 
vec_lvrxl(int __a,const vector bool short * __b)11006 static vector bool short __ATTRS_o_ai vec_lvrxl(int __a,
11007                                                 const vector bool short *__b) {
11008   return vec_perm((vector bool short)(0), vec_ldl(__a, __b),
11009                   vec_lvsl(__a, (unsigned char *)__b));
11010 }
11011 
vec_lvrxl(int __a,const vector pixel * __b)11012 static vector pixel __ATTRS_o_ai vec_lvrxl(int __a, const vector pixel *__b) {
11013   return vec_perm((vector pixel)(0), vec_ldl(__a, __b),
11014                   vec_lvsl(__a, (unsigned char *)__b));
11015 }
11016 
vec_lvrxl(int __a,const int * __b)11017 static vector int __ATTRS_o_ai vec_lvrxl(int __a, const int *__b) {
11018   return vec_perm((vector int)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b));
11019 }
11020 
vec_lvrxl(int __a,const vector int * __b)11021 static vector int __ATTRS_o_ai vec_lvrxl(int __a, const vector int *__b) {
11022   return vec_perm((vector int)(0), vec_ldl(__a, __b),
11023                   vec_lvsl(__a, (unsigned char *)__b));
11024 }
11025 
vec_lvrxl(int __a,const unsigned int * __b)11026 static vector unsigned int __ATTRS_o_ai vec_lvrxl(int __a,
11027                                                   const unsigned int *__b) {
11028   return vec_perm((vector unsigned int)(0), vec_ldl(__a, __b),
11029                   vec_lvsl(__a, __b));
11030 }
11031 
11032 static vector unsigned int __ATTRS_o_ai
vec_lvrxl(int __a,const vector unsigned int * __b)11033 vec_lvrxl(int __a, const vector unsigned int *__b) {
11034   return vec_perm((vector unsigned int)(0), vec_ldl(__a, __b),
11035                   vec_lvsl(__a, (unsigned char *)__b));
11036 }
11037 
vec_lvrxl(int __a,const vector bool int * __b)11038 static vector bool int __ATTRS_o_ai vec_lvrxl(int __a,
11039                                               const vector bool int *__b) {
11040   return vec_perm((vector bool int)(0), vec_ldl(__a, __b),
11041                   vec_lvsl(__a, (unsigned char *)__b));
11042 }
11043 
vec_lvrxl(int __a,const float * __b)11044 static vector float __ATTRS_o_ai vec_lvrxl(int __a, const float *__b) {
11045   return vec_perm((vector float)(0), vec_ldl(__a, __b), vec_lvsl(__a, __b));
11046 }
11047 
vec_lvrxl(int __a,const vector float * __b)11048 static vector float __ATTRS_o_ai vec_lvrxl(int __a, const vector float *__b) {
11049   return vec_perm((vector float)(0), vec_ldl(__a, __b),
11050                   vec_lvsl(__a, (unsigned char *)__b));
11051 }
11052 
11053 /* vec_stvlx */
11054 
vec_stvlx(vector signed char __a,int __b,signed char * __c)11055 static void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b,
11056                                    signed char *__c) {
11057   return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11058                 __c);
11059 }
11060 
vec_stvlx(vector signed char __a,int __b,vector signed char * __c)11061 static void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b,
11062                                    vector signed char *__c) {
11063   return vec_st(
11064       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11065       __b, __c);
11066 }
11067 
vec_stvlx(vector unsigned char __a,int __b,unsigned char * __c)11068 static void __ATTRS_o_ai vec_stvlx(vector unsigned char __a, int __b,
11069                                    unsigned char *__c) {
11070   return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11071                 __c);
11072 }
11073 
vec_stvlx(vector unsigned char __a,int __b,vector unsigned char * __c)11074 static void __ATTRS_o_ai vec_stvlx(vector unsigned char __a, int __b,
11075                                    vector unsigned char *__c) {
11076   return vec_st(
11077       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11078       __b, __c);
11079 }
11080 
vec_stvlx(vector bool char __a,int __b,vector bool char * __c)11081 static void __ATTRS_o_ai vec_stvlx(vector bool char __a, int __b,
11082                                    vector bool char *__c) {
11083   return vec_st(
11084       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11085       __b, __c);
11086 }
11087 
vec_stvlx(vector short __a,int __b,short * __c)11088 static void __ATTRS_o_ai vec_stvlx(vector short __a, int __b, short *__c) {
11089   return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11090                 __c);
11091 }
11092 
vec_stvlx(vector short __a,int __b,vector short * __c)11093 static void __ATTRS_o_ai vec_stvlx(vector short __a, int __b,
11094                                    vector short *__c) {
11095   return vec_st(
11096       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11097       __b, __c);
11098 }
11099 
vec_stvlx(vector unsigned short __a,int __b,unsigned short * __c)11100 static void __ATTRS_o_ai vec_stvlx(vector unsigned short __a, int __b,
11101                                    unsigned short *__c) {
11102   return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11103                 __c);
11104 }
11105 
vec_stvlx(vector unsigned short __a,int __b,vector unsigned short * __c)11106 static void __ATTRS_o_ai vec_stvlx(vector unsigned short __a, int __b,
11107                                    vector unsigned short *__c) {
11108   return vec_st(
11109       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11110       __b, __c);
11111 }
11112 
vec_stvlx(vector bool short __a,int __b,vector bool short * __c)11113 static void __ATTRS_o_ai vec_stvlx(vector bool short __a, int __b,
11114                                    vector bool short *__c) {
11115   return vec_st(
11116       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11117       __b, __c);
11118 }
11119 
vec_stvlx(vector pixel __a,int __b,vector pixel * __c)11120 static void __ATTRS_o_ai vec_stvlx(vector pixel __a, int __b,
11121                                    vector pixel *__c) {
11122   return vec_st(
11123       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11124       __b, __c);
11125 }
11126 
vec_stvlx(vector int __a,int __b,int * __c)11127 static void __ATTRS_o_ai vec_stvlx(vector int __a, int __b, int *__c) {
11128   return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11129                 __c);
11130 }
11131 
vec_stvlx(vector int __a,int __b,vector int * __c)11132 static void __ATTRS_o_ai vec_stvlx(vector int __a, int __b, vector int *__c) {
11133   return vec_st(
11134       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11135       __b, __c);
11136 }
11137 
vec_stvlx(vector unsigned int __a,int __b,unsigned int * __c)11138 static void __ATTRS_o_ai vec_stvlx(vector unsigned int __a, int __b,
11139                                    unsigned int *__c) {
11140   return vec_st(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11141                 __c);
11142 }
11143 
vec_stvlx(vector unsigned int __a,int __b,vector unsigned int * __c)11144 static void __ATTRS_o_ai vec_stvlx(vector unsigned int __a, int __b,
11145                                    vector unsigned int *__c) {
11146   return vec_st(
11147       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11148       __b, __c);
11149 }
11150 
vec_stvlx(vector bool int __a,int __b,vector bool int * __c)11151 static void __ATTRS_o_ai vec_stvlx(vector bool int __a, int __b,
11152                                    vector bool int *__c) {
11153   return vec_st(
11154       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11155       __b, __c);
11156 }
11157 
vec_stvlx(vector float __a,int __b,vector float * __c)11158 static void __ATTRS_o_ai vec_stvlx(vector float __a, int __b,
11159                                    vector float *__c) {
11160   return vec_st(
11161       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11162       __b, __c);
11163 }
11164 
11165 /* vec_stvlxl */
11166 
vec_stvlxl(vector signed char __a,int __b,signed char * __c)11167 static void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b,
11168                                     signed char *__c) {
11169   return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11170                  __c);
11171 }
11172 
vec_stvlxl(vector signed char __a,int __b,vector signed char * __c)11173 static void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b,
11174                                     vector signed char *__c) {
11175   return vec_stl(
11176       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11177       __b, __c);
11178 }
11179 
vec_stvlxl(vector unsigned char __a,int __b,unsigned char * __c)11180 static void __ATTRS_o_ai vec_stvlxl(vector unsigned char __a, int __b,
11181                                     unsigned char *__c) {
11182   return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11183                  __c);
11184 }
11185 
vec_stvlxl(vector unsigned char __a,int __b,vector unsigned char * __c)11186 static void __ATTRS_o_ai vec_stvlxl(vector unsigned char __a, int __b,
11187                                     vector unsigned char *__c) {
11188   return vec_stl(
11189       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11190       __b, __c);
11191 }
11192 
vec_stvlxl(vector bool char __a,int __b,vector bool char * __c)11193 static void __ATTRS_o_ai vec_stvlxl(vector bool char __a, int __b,
11194                                     vector bool char *__c) {
11195   return vec_stl(
11196       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11197       __b, __c);
11198 }
11199 
vec_stvlxl(vector short __a,int __b,short * __c)11200 static void __ATTRS_o_ai vec_stvlxl(vector short __a, int __b, short *__c) {
11201   return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11202                  __c);
11203 }
11204 
vec_stvlxl(vector short __a,int __b,vector short * __c)11205 static void __ATTRS_o_ai vec_stvlxl(vector short __a, int __b,
11206                                     vector short *__c) {
11207   return vec_stl(
11208       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11209       __b, __c);
11210 }
11211 
vec_stvlxl(vector unsigned short __a,int __b,unsigned short * __c)11212 static void __ATTRS_o_ai vec_stvlxl(vector unsigned short __a, int __b,
11213                                     unsigned short *__c) {
11214   return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11215                  __c);
11216 }
11217 
vec_stvlxl(vector unsigned short __a,int __b,vector unsigned short * __c)11218 static void __ATTRS_o_ai vec_stvlxl(vector unsigned short __a, int __b,
11219                                     vector unsigned short *__c) {
11220   return vec_stl(
11221       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11222       __b, __c);
11223 }
11224 
vec_stvlxl(vector bool short __a,int __b,vector bool short * __c)11225 static void __ATTRS_o_ai vec_stvlxl(vector bool short __a, int __b,
11226                                     vector bool short *__c) {
11227   return vec_stl(
11228       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11229       __b, __c);
11230 }
11231 
vec_stvlxl(vector pixel __a,int __b,vector pixel * __c)11232 static void __ATTRS_o_ai vec_stvlxl(vector pixel __a, int __b,
11233                                     vector pixel *__c) {
11234   return vec_stl(
11235       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11236       __b, __c);
11237 }
11238 
vec_stvlxl(vector int __a,int __b,int * __c)11239 static void __ATTRS_o_ai vec_stvlxl(vector int __a, int __b, int *__c) {
11240   return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11241                  __c);
11242 }
11243 
vec_stvlxl(vector int __a,int __b,vector int * __c)11244 static void __ATTRS_o_ai vec_stvlxl(vector int __a, int __b, vector int *__c) {
11245   return vec_stl(
11246       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11247       __b, __c);
11248 }
11249 
vec_stvlxl(vector unsigned int __a,int __b,unsigned int * __c)11250 static void __ATTRS_o_ai vec_stvlxl(vector unsigned int __a, int __b,
11251                                     unsigned int *__c) {
11252   return vec_stl(vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, __c)), __b,
11253                  __c);
11254 }
11255 
vec_stvlxl(vector unsigned int __a,int __b,vector unsigned int * __c)11256 static void __ATTRS_o_ai vec_stvlxl(vector unsigned int __a, int __b,
11257                                     vector unsigned int *__c) {
11258   return vec_stl(
11259       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11260       __b, __c);
11261 }
11262 
vec_stvlxl(vector bool int __a,int __b,vector bool int * __c)11263 static void __ATTRS_o_ai vec_stvlxl(vector bool int __a, int __b,
11264                                     vector bool int *__c) {
11265   return vec_stl(
11266       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11267       __b, __c);
11268 }
11269 
vec_stvlxl(vector float __a,int __b,vector float * __c)11270 static void __ATTRS_o_ai vec_stvlxl(vector float __a, int __b,
11271                                     vector float *__c) {
11272   return vec_stl(
11273       vec_perm(vec_lvrx(__b, __c), __a, vec_lvsr(__b, (unsigned char *)__c)),
11274       __b, __c);
11275 }
11276 
11277 /* vec_stvrx */
11278 
vec_stvrx(vector signed char __a,int __b,signed char * __c)11279 static void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b,
11280                                    signed char *__c) {
11281   return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11282                 __c);
11283 }
11284 
vec_stvrx(vector signed char __a,int __b,vector signed char * __c)11285 static void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b,
11286                                    vector signed char *__c) {
11287   return vec_st(
11288       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11289       __b, __c);
11290 }
11291 
vec_stvrx(vector unsigned char __a,int __b,unsigned char * __c)11292 static void __ATTRS_o_ai vec_stvrx(vector unsigned char __a, int __b,
11293                                    unsigned char *__c) {
11294   return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11295                 __c);
11296 }
11297 
vec_stvrx(vector unsigned char __a,int __b,vector unsigned char * __c)11298 static void __ATTRS_o_ai vec_stvrx(vector unsigned char __a, int __b,
11299                                    vector unsigned char *__c) {
11300   return vec_st(
11301       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11302       __b, __c);
11303 }
11304 
vec_stvrx(vector bool char __a,int __b,vector bool char * __c)11305 static void __ATTRS_o_ai vec_stvrx(vector bool char __a, int __b,
11306                                    vector bool char *__c) {
11307   return vec_st(
11308       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11309       __b, __c);
11310 }
11311 
vec_stvrx(vector short __a,int __b,short * __c)11312 static void __ATTRS_o_ai vec_stvrx(vector short __a, int __b, short *__c) {
11313   return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11314                 __c);
11315 }
11316 
vec_stvrx(vector short __a,int __b,vector short * __c)11317 static void __ATTRS_o_ai vec_stvrx(vector short __a, int __b,
11318                                    vector short *__c) {
11319   return vec_st(
11320       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11321       __b, __c);
11322 }
11323 
vec_stvrx(vector unsigned short __a,int __b,unsigned short * __c)11324 static void __ATTRS_o_ai vec_stvrx(vector unsigned short __a, int __b,
11325                                    unsigned short *__c) {
11326   return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11327                 __c);
11328 }
11329 
vec_stvrx(vector unsigned short __a,int __b,vector unsigned short * __c)11330 static void __ATTRS_o_ai vec_stvrx(vector unsigned short __a, int __b,
11331                                    vector unsigned short *__c) {
11332   return vec_st(
11333       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11334       __b, __c);
11335 }
11336 
vec_stvrx(vector bool short __a,int __b,vector bool short * __c)11337 static void __ATTRS_o_ai vec_stvrx(vector bool short __a, int __b,
11338                                    vector bool short *__c) {
11339   return vec_st(
11340       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11341       __b, __c);
11342 }
11343 
vec_stvrx(vector pixel __a,int __b,vector pixel * __c)11344 static void __ATTRS_o_ai vec_stvrx(vector pixel __a, int __b,
11345                                    vector pixel *__c) {
11346   return vec_st(
11347       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11348       __b, __c);
11349 }
11350 
vec_stvrx(vector int __a,int __b,int * __c)11351 static void __ATTRS_o_ai vec_stvrx(vector int __a, int __b, int *__c) {
11352   return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11353                 __c);
11354 }
11355 
vec_stvrx(vector int __a,int __b,vector int * __c)11356 static void __ATTRS_o_ai vec_stvrx(vector int __a, int __b, vector int *__c) {
11357   return vec_st(
11358       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11359       __b, __c);
11360 }
11361 
vec_stvrx(vector unsigned int __a,int __b,unsigned int * __c)11362 static void __ATTRS_o_ai vec_stvrx(vector unsigned int __a, int __b,
11363                                    unsigned int *__c) {
11364   return vec_st(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11365                 __c);
11366 }
11367 
vec_stvrx(vector unsigned int __a,int __b,vector unsigned int * __c)11368 static void __ATTRS_o_ai vec_stvrx(vector unsigned int __a, int __b,
11369                                    vector unsigned int *__c) {
11370   return vec_st(
11371       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11372       __b, __c);
11373 }
11374 
vec_stvrx(vector bool int __a,int __b,vector bool int * __c)11375 static void __ATTRS_o_ai vec_stvrx(vector bool int __a, int __b,
11376                                    vector bool int *__c) {
11377   return vec_st(
11378       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11379       __b, __c);
11380 }
11381 
vec_stvrx(vector float __a,int __b,vector float * __c)11382 static void __ATTRS_o_ai vec_stvrx(vector float __a, int __b,
11383                                    vector float *__c) {
11384   return vec_st(
11385       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11386       __b, __c);
11387 }
11388 
11389 /* vec_stvrxl */
11390 
vec_stvrxl(vector signed char __a,int __b,signed char * __c)11391 static void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b,
11392                                     signed char *__c) {
11393   return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11394                  __c);
11395 }
11396 
vec_stvrxl(vector signed char __a,int __b,vector signed char * __c)11397 static void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b,
11398                                     vector signed char *__c) {
11399   return vec_stl(
11400       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11401       __b, __c);
11402 }
11403 
vec_stvrxl(vector unsigned char __a,int __b,unsigned char * __c)11404 static void __ATTRS_o_ai vec_stvrxl(vector unsigned char __a, int __b,
11405                                     unsigned char *__c) {
11406   return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11407                  __c);
11408 }
11409 
vec_stvrxl(vector unsigned char __a,int __b,vector unsigned char * __c)11410 static void __ATTRS_o_ai vec_stvrxl(vector unsigned char __a, int __b,
11411                                     vector unsigned char *__c) {
11412   return vec_stl(
11413       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11414       __b, __c);
11415 }
11416 
vec_stvrxl(vector bool char __a,int __b,vector bool char * __c)11417 static void __ATTRS_o_ai vec_stvrxl(vector bool char __a, int __b,
11418                                     vector bool char *__c) {
11419   return vec_stl(
11420       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11421       __b, __c);
11422 }
11423 
vec_stvrxl(vector short __a,int __b,short * __c)11424 static void __ATTRS_o_ai vec_stvrxl(vector short __a, int __b, short *__c) {
11425   return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11426                  __c);
11427 }
11428 
vec_stvrxl(vector short __a,int __b,vector short * __c)11429 static void __ATTRS_o_ai vec_stvrxl(vector short __a, int __b,
11430                                     vector short *__c) {
11431   return vec_stl(
11432       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11433       __b, __c);
11434 }
11435 
vec_stvrxl(vector unsigned short __a,int __b,unsigned short * __c)11436 static void __ATTRS_o_ai vec_stvrxl(vector unsigned short __a, int __b,
11437                                     unsigned short *__c) {
11438   return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11439                  __c);
11440 }
11441 
vec_stvrxl(vector unsigned short __a,int __b,vector unsigned short * __c)11442 static void __ATTRS_o_ai vec_stvrxl(vector unsigned short __a, int __b,
11443                                     vector unsigned short *__c) {
11444   return vec_stl(
11445       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11446       __b, __c);
11447 }
11448 
vec_stvrxl(vector bool short __a,int __b,vector bool short * __c)11449 static void __ATTRS_o_ai vec_stvrxl(vector bool short __a, int __b,
11450                                     vector bool short *__c) {
11451   return vec_stl(
11452       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11453       __b, __c);
11454 }
11455 
vec_stvrxl(vector pixel __a,int __b,vector pixel * __c)11456 static void __ATTRS_o_ai vec_stvrxl(vector pixel __a, int __b,
11457                                     vector pixel *__c) {
11458   return vec_stl(
11459       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11460       __b, __c);
11461 }
11462 
vec_stvrxl(vector int __a,int __b,int * __c)11463 static void __ATTRS_o_ai vec_stvrxl(vector int __a, int __b, int *__c) {
11464   return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11465                  __c);
11466 }
11467 
vec_stvrxl(vector int __a,int __b,vector int * __c)11468 static void __ATTRS_o_ai vec_stvrxl(vector int __a, int __b, vector int *__c) {
11469   return vec_stl(
11470       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11471       __b, __c);
11472 }
11473 
vec_stvrxl(vector unsigned int __a,int __b,unsigned int * __c)11474 static void __ATTRS_o_ai vec_stvrxl(vector unsigned int __a, int __b,
11475                                     unsigned int *__c) {
11476   return vec_stl(vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, __c)), __b,
11477                  __c);
11478 }
11479 
vec_stvrxl(vector unsigned int __a,int __b,vector unsigned int * __c)11480 static void __ATTRS_o_ai vec_stvrxl(vector unsigned int __a, int __b,
11481                                     vector unsigned int *__c) {
11482   return vec_stl(
11483       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11484       __b, __c);
11485 }
11486 
vec_stvrxl(vector bool int __a,int __b,vector bool int * __c)11487 static void __ATTRS_o_ai vec_stvrxl(vector bool int __a, int __b,
11488                                     vector bool int *__c) {
11489   return vec_stl(
11490       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11491       __b, __c);
11492 }
11493 
vec_stvrxl(vector float __a,int __b,vector float * __c)11494 static void __ATTRS_o_ai vec_stvrxl(vector float __a, int __b,
11495                                     vector float *__c) {
11496   return vec_stl(
11497       vec_perm(__a, vec_lvlx(__b, __c), vec_lvsr(__b, (unsigned char *)__c)),
11498       __b, __c);
11499 }
11500 
11501 /* vec_promote */
11502 
vec_promote(signed char __a,int __b)11503 static vector signed char __ATTRS_o_ai vec_promote(signed char __a, int __b) {
11504   vector signed char __res = (vector signed char)(0);
11505   __res[__b] = __a;
11506   return __res;
11507 }
11508 
vec_promote(unsigned char __a,int __b)11509 static vector unsigned char __ATTRS_o_ai vec_promote(unsigned char __a,
11510                                                      int __b) {
11511   vector unsigned char __res = (vector unsigned char)(0);
11512   __res[__b] = __a;
11513   return __res;
11514 }
11515 
vec_promote(short __a,int __b)11516 static vector short __ATTRS_o_ai vec_promote(short __a, int __b) {
11517   vector short __res = (vector short)(0);
11518   __res[__b] = __a;
11519   return __res;
11520 }
11521 
vec_promote(unsigned short __a,int __b)11522 static vector unsigned short __ATTRS_o_ai vec_promote(unsigned short __a,
11523                                                       int __b) {
11524   vector unsigned short __res = (vector unsigned short)(0);
11525   __res[__b] = __a;
11526   return __res;
11527 }
11528 
vec_promote(int __a,int __b)11529 static vector int __ATTRS_o_ai vec_promote(int __a, int __b) {
11530   vector int __res = (vector int)(0);
11531   __res[__b] = __a;
11532   return __res;
11533 }
11534 
vec_promote(unsigned int __a,int __b)11535 static vector unsigned int __ATTRS_o_ai vec_promote(unsigned int __a, int __b) {
11536   vector unsigned int __res = (vector unsigned int)(0);
11537   __res[__b] = __a;
11538   return __res;
11539 }
11540 
vec_promote(float __a,int __b)11541 static vector float __ATTRS_o_ai vec_promote(float __a, int __b) {
11542   vector float __res = (vector float)(0);
11543   __res[__b] = __a;
11544   return __res;
11545 }
11546 
11547 /* vec_splats */
11548 
vec_splats(signed char __a)11549 static vector signed char __ATTRS_o_ai vec_splats(signed char __a) {
11550   return (vector signed char)(__a);
11551 }
11552 
vec_splats(unsigned char __a)11553 static vector unsigned char __ATTRS_o_ai vec_splats(unsigned char __a) {
11554   return (vector unsigned char)(__a);
11555 }
11556 
vec_splats(short __a)11557 static vector short __ATTRS_o_ai vec_splats(short __a) {
11558   return (vector short)(__a);
11559 }
11560 
vec_splats(unsigned short __a)11561 static vector unsigned short __ATTRS_o_ai vec_splats(unsigned short __a) {
11562   return (vector unsigned short)(__a);
11563 }
11564 
vec_splats(int __a)11565 static vector int __ATTRS_o_ai vec_splats(int __a) { return (vector int)(__a); }
11566 
vec_splats(unsigned int __a)11567 static vector unsigned int __ATTRS_o_ai vec_splats(unsigned int __a) {
11568   return (vector unsigned int)(__a);
11569 }
11570 
11571 #ifdef __VSX__
vec_splats(signed long long __a)11572 static vector signed long long __ATTRS_o_ai vec_splats(signed long long __a) {
11573   return (vector signed long long)(__a);
11574 }
11575 
11576 static vector unsigned long long __ATTRS_o_ai
vec_splats(unsigned long long __a)11577 vec_splats(unsigned long long __a) {
11578   return (vector unsigned long long)(__a);
11579 }
11580 
11581 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
vec_splats(signed __int128 __a)11582 static vector signed __int128 __ATTRS_o_ai vec_splats(signed __int128 __a) {
11583   return (vector signed __int128)(__a);
11584 }
11585 
11586 static vector unsigned __int128 __ATTRS_o_ai
vec_splats(unsigned __int128 __a)11587 vec_splats(unsigned __int128 __a) {
11588   return (vector unsigned __int128)(__a);
11589 }
11590 
11591 #endif
11592 
vec_splats(double __a)11593 static vector double __ATTRS_o_ai vec_splats(double __a) {
11594   return (vector double)(__a);
11595 }
11596 #endif
11597 
vec_splats(float __a)11598 static vector float __ATTRS_o_ai vec_splats(float __a) {
11599   return (vector float)(__a);
11600 }
11601 
11602 /* ----------------------------- predicates --------------------------------- */
11603 
11604 /* vec_all_eq */
11605 
vec_all_eq(vector signed char __a,vector signed char __b)11606 static int __ATTRS_o_ai vec_all_eq(vector signed char __a,
11607                                    vector signed char __b) {
11608   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11609                                       (vector char)__b);
11610 }
11611 
vec_all_eq(vector signed char __a,vector bool char __b)11612 static int __ATTRS_o_ai vec_all_eq(vector signed char __a,
11613                                    vector bool char __b) {
11614   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11615                                       (vector char)__b);
11616 }
11617 
vec_all_eq(vector unsigned char __a,vector unsigned char __b)11618 static int __ATTRS_o_ai vec_all_eq(vector unsigned char __a,
11619                                    vector unsigned char __b) {
11620   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11621                                       (vector char)__b);
11622 }
11623 
vec_all_eq(vector unsigned char __a,vector bool char __b)11624 static int __ATTRS_o_ai vec_all_eq(vector unsigned char __a,
11625                                    vector bool char __b) {
11626   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11627                                       (vector char)__b);
11628 }
11629 
vec_all_eq(vector bool char __a,vector signed char __b)11630 static int __ATTRS_o_ai vec_all_eq(vector bool char __a,
11631                                    vector signed char __b) {
11632   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11633                                       (vector char)__b);
11634 }
11635 
vec_all_eq(vector bool char __a,vector unsigned char __b)11636 static int __ATTRS_o_ai vec_all_eq(vector bool char __a,
11637                                    vector unsigned char __b) {
11638   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11639                                       (vector char)__b);
11640 }
11641 
vec_all_eq(vector bool char __a,vector bool char __b)11642 static int __ATTRS_o_ai vec_all_eq(vector bool char __a, vector bool char __b) {
11643   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a,
11644                                       (vector char)__b);
11645 }
11646 
vec_all_eq(vector short __a,vector short __b)11647 static int __ATTRS_o_ai vec_all_eq(vector short __a, vector short __b) {
11648   return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, __b);
11649 }
11650 
vec_all_eq(vector short __a,vector bool short __b)11651 static int __ATTRS_o_ai vec_all_eq(vector short __a, vector bool short __b) {
11652   return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, (vector short)__b);
11653 }
11654 
vec_all_eq(vector unsigned short __a,vector unsigned short __b)11655 static int __ATTRS_o_ai vec_all_eq(vector unsigned short __a,
11656                                    vector unsigned short __b) {
11657   return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
11658                                       (vector short)__b);
11659 }
11660 
vec_all_eq(vector unsigned short __a,vector bool short __b)11661 static int __ATTRS_o_ai vec_all_eq(vector unsigned short __a,
11662                                    vector bool short __b) {
11663   return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
11664                                       (vector short)__b);
11665 }
11666 
vec_all_eq(vector bool short __a,vector short __b)11667 static int __ATTRS_o_ai vec_all_eq(vector bool short __a, vector short __b) {
11668   return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
11669                                       (vector short)__b);
11670 }
11671 
vec_all_eq(vector bool short __a,vector unsigned short __b)11672 static int __ATTRS_o_ai vec_all_eq(vector bool short __a,
11673                                    vector unsigned short __b) {
11674   return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
11675                                       (vector short)__b);
11676 }
11677 
vec_all_eq(vector bool short __a,vector bool short __b)11678 static int __ATTRS_o_ai vec_all_eq(vector bool short __a,
11679                                    vector bool short __b) {
11680   return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
11681                                       (vector short)__b);
11682 }
11683 
vec_all_eq(vector pixel __a,vector pixel __b)11684 static int __ATTRS_o_ai vec_all_eq(vector pixel __a, vector pixel __b) {
11685   return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a,
11686                                       (vector short)__b);
11687 }
11688 
vec_all_eq(vector int __a,vector int __b)11689 static int __ATTRS_o_ai vec_all_eq(vector int __a, vector int __b) {
11690   return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, __b);
11691 }
11692 
vec_all_eq(vector int __a,vector bool int __b)11693 static int __ATTRS_o_ai vec_all_eq(vector int __a, vector bool int __b) {
11694   return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, (vector int)__b);
11695 }
11696 
vec_all_eq(vector unsigned int __a,vector unsigned int __b)11697 static int __ATTRS_o_ai vec_all_eq(vector unsigned int __a,
11698                                    vector unsigned int __b) {
11699   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
11700                                       (vector int)__b);
11701 }
11702 
vec_all_eq(vector unsigned int __a,vector bool int __b)11703 static int __ATTRS_o_ai vec_all_eq(vector unsigned int __a,
11704                                    vector bool int __b) {
11705   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
11706                                       (vector int)__b);
11707 }
11708 
vec_all_eq(vector bool int __a,vector int __b)11709 static int __ATTRS_o_ai vec_all_eq(vector bool int __a, vector int __b) {
11710   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
11711                                       (vector int)__b);
11712 }
11713 
vec_all_eq(vector bool int __a,vector unsigned int __b)11714 static int __ATTRS_o_ai vec_all_eq(vector bool int __a,
11715                                    vector unsigned int __b) {
11716   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
11717                                       (vector int)__b);
11718 }
11719 
vec_all_eq(vector bool int __a,vector bool int __b)11720 static int __ATTRS_o_ai vec_all_eq(vector bool int __a, vector bool int __b) {
11721   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a,
11722                                       (vector int)__b);
11723 }
11724 
11725 #ifdef __POWER8_VECTOR__
vec_all_eq(vector signed long long __a,vector signed long long __b)11726 static int __ATTRS_o_ai vec_all_eq(vector signed long long __a,
11727                                    vector signed long long __b) {
11728   return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, __b);
11729 }
11730 
vec_all_eq(vector long long __a,vector bool long long __b)11731 static int __ATTRS_o_ai vec_all_eq(vector long long __a,
11732                                    vector bool long long __b) {
11733   return __builtin_altivec_vcmpequd_p(__CR6_LT, __a, (vector long long)__b);
11734 }
11735 
vec_all_eq(vector unsigned long long __a,vector unsigned long long __b)11736 static int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
11737                                    vector unsigned long long __b) {
11738   return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
11739                                       (vector long long)__b);
11740 }
11741 
vec_all_eq(vector unsigned long long __a,vector bool long long __b)11742 static int __ATTRS_o_ai vec_all_eq(vector unsigned long long __a,
11743                                    vector bool long long __b) {
11744   return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
11745                                       (vector long long)__b);
11746 }
11747 
vec_all_eq(vector bool long long __a,vector long long __b)11748 static int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
11749                                    vector long long __b) {
11750   return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
11751                                       (vector long long)__b);
11752 }
11753 
vec_all_eq(vector bool long long __a,vector unsigned long long __b)11754 static int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
11755                                    vector unsigned long long __b) {
11756   return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
11757                                       (vector long long)__b);
11758 }
11759 
vec_all_eq(vector bool long long __a,vector bool long long __b)11760 static int __ATTRS_o_ai vec_all_eq(vector bool long long __a,
11761                                    vector bool long long __b) {
11762   return __builtin_altivec_vcmpequd_p(__CR6_LT, (vector long long)__a,
11763                                       (vector long long)__b);
11764 }
11765 #endif
11766 
vec_all_eq(vector float __a,vector float __b)11767 static int __ATTRS_o_ai vec_all_eq(vector float __a, vector float __b) {
11768 #ifdef __VSX__
11769   return __builtin_vsx_xvcmpeqsp_p(__CR6_LT, __a, __b);
11770 #else
11771   return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __b);
11772 #endif
11773 }
11774 
11775 #ifdef __VSX__
vec_all_eq(vector double __a,vector double __b)11776 static int __ATTRS_o_ai vec_all_eq(vector double __a, vector double __b) {
11777   return __builtin_vsx_xvcmpeqdp_p(__CR6_LT, __a, __b);
11778 }
11779 #endif
11780 
11781 /* vec_all_ge */
11782 
vec_all_ge(vector signed char __a,vector signed char __b)11783 static int __ATTRS_o_ai vec_all_ge(vector signed char __a,
11784                                    vector signed char __b) {
11785   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, __a);
11786 }
11787 
vec_all_ge(vector signed char __a,vector bool char __b)11788 static int __ATTRS_o_ai vec_all_ge(vector signed char __a,
11789                                    vector bool char __b) {
11790   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__b, __a);
11791 }
11792 
vec_all_ge(vector unsigned char __a,vector unsigned char __b)11793 static int __ATTRS_o_ai vec_all_ge(vector unsigned char __a,
11794                                    vector unsigned char __b) {
11795   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, __a);
11796 }
11797 
vec_all_ge(vector unsigned char __a,vector bool char __b)11798 static int __ATTRS_o_ai vec_all_ge(vector unsigned char __a,
11799                                    vector bool char __b) {
11800   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, __a);
11801 }
11802 
vec_all_ge(vector bool char __a,vector signed char __b)11803 static int __ATTRS_o_ai vec_all_ge(vector bool char __a,
11804                                    vector signed char __b) {
11805   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b,
11806                                       (vector unsigned char)__a);
11807 }
11808 
vec_all_ge(vector bool char __a,vector unsigned char __b)11809 static int __ATTRS_o_ai vec_all_ge(vector bool char __a,
11810                                    vector unsigned char __b) {
11811   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, (vector unsigned char)__a);
11812 }
11813 
vec_all_ge(vector bool char __a,vector bool char __b)11814 static int __ATTRS_o_ai vec_all_ge(vector bool char __a, vector bool char __b) {
11815   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b,
11816                                       (vector unsigned char)__a);
11817 }
11818 
vec_all_ge(vector short __a,vector short __b)11819 static int __ATTRS_o_ai vec_all_ge(vector short __a, vector short __b) {
11820   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, __a);
11821 }
11822 
vec_all_ge(vector short __a,vector bool short __b)11823 static int __ATTRS_o_ai vec_all_ge(vector short __a, vector bool short __b) {
11824   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)__b, __a);
11825 }
11826 
vec_all_ge(vector unsigned short __a,vector unsigned short __b)11827 static int __ATTRS_o_ai vec_all_ge(vector unsigned short __a,
11828                                    vector unsigned short __b) {
11829   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, __a);
11830 }
11831 
vec_all_ge(vector unsigned short __a,vector bool short __b)11832 static int __ATTRS_o_ai vec_all_ge(vector unsigned short __a,
11833                                    vector bool short __b) {
11834   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b,
11835                                       __a);
11836 }
11837 
vec_all_ge(vector bool short __a,vector short __b)11838 static int __ATTRS_o_ai vec_all_ge(vector bool short __a, vector short __b) {
11839   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b,
11840                                       (vector unsigned short)__a);
11841 }
11842 
vec_all_ge(vector bool short __a,vector unsigned short __b)11843 static int __ATTRS_o_ai vec_all_ge(vector bool short __a,
11844                                    vector unsigned short __b) {
11845   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b,
11846                                       (vector unsigned short)__a);
11847 }
11848 
vec_all_ge(vector bool short __a,vector bool short __b)11849 static int __ATTRS_o_ai vec_all_ge(vector bool short __a,
11850                                    vector bool short __b) {
11851   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b,
11852                                       (vector unsigned short)__a);
11853 }
11854 
vec_all_ge(vector int __a,vector int __b)11855 static int __ATTRS_o_ai vec_all_ge(vector int __a, vector int __b) {
11856   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, __a);
11857 }
11858 
vec_all_ge(vector int __a,vector bool int __b)11859 static int __ATTRS_o_ai vec_all_ge(vector int __a, vector bool int __b) {
11860   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)__b, __a);
11861 }
11862 
vec_all_ge(vector unsigned int __a,vector unsigned int __b)11863 static int __ATTRS_o_ai vec_all_ge(vector unsigned int __a,
11864                                    vector unsigned int __b) {
11865   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, __a);
11866 }
11867 
vec_all_ge(vector unsigned int __a,vector bool int __b)11868 static int __ATTRS_o_ai vec_all_ge(vector unsigned int __a,
11869                                    vector bool int __b) {
11870   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, __a);
11871 }
11872 
vec_all_ge(vector bool int __a,vector int __b)11873 static int __ATTRS_o_ai vec_all_ge(vector bool int __a, vector int __b) {
11874   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b,
11875                                       (vector unsigned int)__a);
11876 }
11877 
vec_all_ge(vector bool int __a,vector unsigned int __b)11878 static int __ATTRS_o_ai vec_all_ge(vector bool int __a,
11879                                    vector unsigned int __b) {
11880   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, (vector unsigned int)__a);
11881 }
11882 
vec_all_ge(vector bool int __a,vector bool int __b)11883 static int __ATTRS_o_ai vec_all_ge(vector bool int __a, vector bool int __b) {
11884   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b,
11885                                       (vector unsigned int)__a);
11886 }
11887 
11888 #ifdef __POWER8_VECTOR__
vec_all_ge(vector signed long long __a,vector signed long long __b)11889 static int __ATTRS_o_ai vec_all_ge(vector signed long long __a,
11890                                    vector signed long long __b) {
11891   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __b, __a);
11892 }
vec_all_ge(vector signed long long __a,vector bool long long __b)11893 static int __ATTRS_o_ai vec_all_ge(vector signed long long __a,
11894                                    vector bool long long __b) {
11895   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, (vector signed long long)__b,
11896                                       __a);
11897 }
11898 
vec_all_ge(vector unsigned long long __a,vector unsigned long long __b)11899 static int __ATTRS_o_ai vec_all_ge(vector unsigned long long __a,
11900                                    vector unsigned long long __b) {
11901   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __b, __a);
11902 }
11903 
vec_all_ge(vector unsigned long long __a,vector bool long long __b)11904 static int __ATTRS_o_ai vec_all_ge(vector unsigned long long __a,
11905                                    vector bool long long __b) {
11906   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b,
11907                                       __a);
11908 }
11909 
vec_all_ge(vector bool long long __a,vector signed long long __b)11910 static int __ATTRS_o_ai vec_all_ge(vector bool long long __a,
11911                                    vector signed long long __b) {
11912   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b,
11913                                       (vector unsigned long long)__a);
11914 }
11915 
vec_all_ge(vector bool long long __a,vector unsigned long long __b)11916 static int __ATTRS_o_ai vec_all_ge(vector bool long long __a,
11917                                    vector unsigned long long __b) {
11918   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __b,
11919                                       (vector unsigned long long)__a);
11920 }
11921 
vec_all_ge(vector bool long long __a,vector bool long long __b)11922 static int __ATTRS_o_ai vec_all_ge(vector bool long long __a,
11923                                    vector bool long long __b) {
11924   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__b,
11925                                       (vector unsigned long long)__a);
11926 }
11927 #endif
11928 
vec_all_ge(vector float __a,vector float __b)11929 static int __ATTRS_o_ai vec_all_ge(vector float __a, vector float __b) {
11930 #ifdef __VSX__
11931   return __builtin_vsx_xvcmpgesp_p(__CR6_LT, __a, __b);
11932 #else
11933   return __builtin_altivec_vcmpgefp_p(__CR6_LT, __a, __b);
11934 #endif
11935 }
11936 
11937 #ifdef __VSX__
vec_all_ge(vector double __a,vector double __b)11938 static int __ATTRS_o_ai vec_all_ge(vector double __a, vector double __b) {
11939   return __builtin_vsx_xvcmpgedp_p(__CR6_LT, __a, __b);
11940 }
11941 #endif
11942 
11943 /* vec_all_gt */
11944 
vec_all_gt(vector signed char __a,vector signed char __b)11945 static int __ATTRS_o_ai vec_all_gt(vector signed char __a,
11946                                    vector signed char __b) {
11947   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, __b);
11948 }
11949 
vec_all_gt(vector signed char __a,vector bool char __b)11950 static int __ATTRS_o_ai vec_all_gt(vector signed char __a,
11951                                    vector bool char __b) {
11952   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, (vector signed char)__b);
11953 }
11954 
vec_all_gt(vector unsigned char __a,vector unsigned char __b)11955 static int __ATTRS_o_ai vec_all_gt(vector unsigned char __a,
11956                                    vector unsigned char __b) {
11957   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, __b);
11958 }
11959 
vec_all_gt(vector unsigned char __a,vector bool char __b)11960 static int __ATTRS_o_ai vec_all_gt(vector unsigned char __a,
11961                                    vector bool char __b) {
11962   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, (vector unsigned char)__b);
11963 }
11964 
vec_all_gt(vector bool char __a,vector signed char __b)11965 static int __ATTRS_o_ai vec_all_gt(vector bool char __a,
11966                                    vector signed char __b) {
11967   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a,
11968                                       (vector unsigned char)__b);
11969 }
11970 
vec_all_gt(vector bool char __a,vector unsigned char __b)11971 static int __ATTRS_o_ai vec_all_gt(vector bool char __a,
11972                                    vector unsigned char __b) {
11973   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, __b);
11974 }
11975 
vec_all_gt(vector bool char __a,vector bool char __b)11976 static int __ATTRS_o_ai vec_all_gt(vector bool char __a, vector bool char __b) {
11977   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a,
11978                                       (vector unsigned char)__b);
11979 }
11980 
vec_all_gt(vector short __a,vector short __b)11981 static int __ATTRS_o_ai vec_all_gt(vector short __a, vector short __b) {
11982   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, __b);
11983 }
11984 
vec_all_gt(vector short __a,vector bool short __b)11985 static int __ATTRS_o_ai vec_all_gt(vector short __a, vector bool short __b) {
11986   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, (vector short)__b);
11987 }
11988 
vec_all_gt(vector unsigned short __a,vector unsigned short __b)11989 static int __ATTRS_o_ai vec_all_gt(vector unsigned short __a,
11990                                    vector unsigned short __b) {
11991   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, __b);
11992 }
11993 
vec_all_gt(vector unsigned short __a,vector bool short __b)11994 static int __ATTRS_o_ai vec_all_gt(vector unsigned short __a,
11995                                    vector bool short __b) {
11996   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a,
11997                                       (vector unsigned short)__b);
11998 }
11999 
vec_all_gt(vector bool short __a,vector short __b)12000 static int __ATTRS_o_ai vec_all_gt(vector bool short __a, vector short __b) {
12001   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a,
12002                                       (vector unsigned short)__b);
12003 }
12004 
vec_all_gt(vector bool short __a,vector unsigned short __b)12005 static int __ATTRS_o_ai vec_all_gt(vector bool short __a,
12006                                    vector unsigned short __b) {
12007   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a,
12008                                       __b);
12009 }
12010 
vec_all_gt(vector bool short __a,vector bool short __b)12011 static int __ATTRS_o_ai vec_all_gt(vector bool short __a,
12012                                    vector bool short __b) {
12013   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a,
12014                                       (vector unsigned short)__b);
12015 }
12016 
vec_all_gt(vector int __a,vector int __b)12017 static int __ATTRS_o_ai vec_all_gt(vector int __a, vector int __b) {
12018   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, __b);
12019 }
12020 
vec_all_gt(vector int __a,vector bool int __b)12021 static int __ATTRS_o_ai vec_all_gt(vector int __a, vector bool int __b) {
12022   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, (vector int)__b);
12023 }
12024 
vec_all_gt(vector unsigned int __a,vector unsigned int __b)12025 static int __ATTRS_o_ai vec_all_gt(vector unsigned int __a,
12026                                    vector unsigned int __b) {
12027   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, __b);
12028 }
12029 
vec_all_gt(vector unsigned int __a,vector bool int __b)12030 static int __ATTRS_o_ai vec_all_gt(vector unsigned int __a,
12031                                    vector bool int __b) {
12032   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, (vector unsigned int)__b);
12033 }
12034 
vec_all_gt(vector bool int __a,vector int __b)12035 static int __ATTRS_o_ai vec_all_gt(vector bool int __a, vector int __b) {
12036   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a,
12037                                       (vector unsigned int)__b);
12038 }
12039 
vec_all_gt(vector bool int __a,vector unsigned int __b)12040 static int __ATTRS_o_ai vec_all_gt(vector bool int __a,
12041                                    vector unsigned int __b) {
12042   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, __b);
12043 }
12044 
vec_all_gt(vector bool int __a,vector bool int __b)12045 static int __ATTRS_o_ai vec_all_gt(vector bool int __a, vector bool int __b) {
12046   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a,
12047                                       (vector unsigned int)__b);
12048 }
12049 
12050 #ifdef __POWER8_VECTOR__
vec_all_gt(vector signed long long __a,vector signed long long __b)12051 static int __ATTRS_o_ai vec_all_gt(vector signed long long __a,
12052                                    vector signed long long __b) {
12053   return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __a, __b);
12054 }
vec_all_gt(vector signed long long __a,vector bool long long __b)12055 static int __ATTRS_o_ai vec_all_gt(vector signed long long __a,
12056                                    vector bool long long __b) {
12057   return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __a,
12058                                       (vector signed long long)__b);
12059 }
12060 
vec_all_gt(vector unsigned long long __a,vector unsigned long long __b)12061 static int __ATTRS_o_ai vec_all_gt(vector unsigned long long __a,
12062                                    vector unsigned long long __b) {
12063   return __builtin_altivec_vcmpgtud_p(__CR6_LT, __a, __b);
12064 }
12065 
vec_all_gt(vector unsigned long long __a,vector bool long long __b)12066 static int __ATTRS_o_ai vec_all_gt(vector unsigned long long __a,
12067                                    vector bool long long __b) {
12068   return __builtin_altivec_vcmpgtud_p(__CR6_LT, __a,
12069                                       (vector unsigned long long)__b);
12070 }
12071 
vec_all_gt(vector bool long long __a,vector signed long long __b)12072 static int __ATTRS_o_ai vec_all_gt(vector bool long long __a,
12073                                    vector signed long long __b) {
12074   return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a,
12075                                       (vector unsigned long long)__b);
12076 }
12077 
vec_all_gt(vector bool long long __a,vector unsigned long long __b)12078 static int __ATTRS_o_ai vec_all_gt(vector bool long long __a,
12079                                    vector unsigned long long __b) {
12080   return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a,
12081                                       __b);
12082 }
12083 
vec_all_gt(vector bool long long __a,vector bool long long __b)12084 static int __ATTRS_o_ai vec_all_gt(vector bool long long __a,
12085                                    vector bool long long __b) {
12086   return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__a,
12087                                       (vector unsigned long long)__b);
12088 }
12089 #endif
12090 
vec_all_gt(vector float __a,vector float __b)12091 static int __ATTRS_o_ai vec_all_gt(vector float __a, vector float __b) {
12092 #ifdef __VSX__
12093   return __builtin_vsx_xvcmpgtsp_p(__CR6_LT, __a, __b);
12094 #else
12095   return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __a, __b);
12096 #endif
12097 }
12098 
12099 #ifdef __VSX__
vec_all_gt(vector double __a,vector double __b)12100 static int __ATTRS_o_ai vec_all_gt(vector double __a, vector double __b) {
12101   return __builtin_vsx_xvcmpgtdp_p(__CR6_LT, __a, __b);
12102 }
12103 #endif
12104 
12105 /* vec_all_in */
12106 
12107 static int __attribute__((__always_inline__))
vec_all_in(vector float __a,vector float __b)12108 vec_all_in(vector float __a, vector float __b) {
12109   return __builtin_altivec_vcmpbfp_p(__CR6_EQ, __a, __b);
12110 }
12111 
12112 /* vec_all_le */
12113 
vec_all_le(vector signed char __a,vector signed char __b)12114 static int __ATTRS_o_ai vec_all_le(vector signed char __a,
12115                                    vector signed char __b) {
12116   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, __b);
12117 }
12118 
vec_all_le(vector signed char __a,vector bool char __b)12119 static int __ATTRS_o_ai vec_all_le(vector signed char __a,
12120                                    vector bool char __b) {
12121   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, (vector signed char)__b);
12122 }
12123 
vec_all_le(vector unsigned char __a,vector unsigned char __b)12124 static int __ATTRS_o_ai vec_all_le(vector unsigned char __a,
12125                                    vector unsigned char __b) {
12126   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, __b);
12127 }
12128 
vec_all_le(vector unsigned char __a,vector bool char __b)12129 static int __ATTRS_o_ai vec_all_le(vector unsigned char __a,
12130                                    vector bool char __b) {
12131   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, (vector unsigned char)__b);
12132 }
12133 
vec_all_le(vector bool char __a,vector signed char __b)12134 static int __ATTRS_o_ai vec_all_le(vector bool char __a,
12135                                    vector signed char __b) {
12136   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a,
12137                                       (vector unsigned char)__b);
12138 }
12139 
vec_all_le(vector bool char __a,vector unsigned char __b)12140 static int __ATTRS_o_ai vec_all_le(vector bool char __a,
12141                                    vector unsigned char __b) {
12142   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, __b);
12143 }
12144 
vec_all_le(vector bool char __a,vector bool char __b)12145 static int __ATTRS_o_ai vec_all_le(vector bool char __a, vector bool char __b) {
12146   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a,
12147                                       (vector unsigned char)__b);
12148 }
12149 
vec_all_le(vector short __a,vector short __b)12150 static int __ATTRS_o_ai vec_all_le(vector short __a, vector short __b) {
12151   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, __b);
12152 }
12153 
vec_all_le(vector short __a,vector bool short __b)12154 static int __ATTRS_o_ai vec_all_le(vector short __a, vector bool short __b) {
12155   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, (vector short)__b);
12156 }
12157 
vec_all_le(vector unsigned short __a,vector unsigned short __b)12158 static int __ATTRS_o_ai vec_all_le(vector unsigned short __a,
12159                                    vector unsigned short __b) {
12160   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, __b);
12161 }
12162 
vec_all_le(vector unsigned short __a,vector bool short __b)12163 static int __ATTRS_o_ai vec_all_le(vector unsigned short __a,
12164                                    vector bool short __b) {
12165   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a,
12166                                       (vector unsigned short)__b);
12167 }
12168 
vec_all_le(vector bool short __a,vector short __b)12169 static int __ATTRS_o_ai vec_all_le(vector bool short __a, vector short __b) {
12170   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a,
12171                                       (vector unsigned short)__b);
12172 }
12173 
vec_all_le(vector bool short __a,vector unsigned short __b)12174 static int __ATTRS_o_ai vec_all_le(vector bool short __a,
12175                                    vector unsigned short __b) {
12176   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a,
12177                                       __b);
12178 }
12179 
vec_all_le(vector bool short __a,vector bool short __b)12180 static int __ATTRS_o_ai vec_all_le(vector bool short __a,
12181                                    vector bool short __b) {
12182   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a,
12183                                       (vector unsigned short)__b);
12184 }
12185 
vec_all_le(vector int __a,vector int __b)12186 static int __ATTRS_o_ai vec_all_le(vector int __a, vector int __b) {
12187   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, __b);
12188 }
12189 
vec_all_le(vector int __a,vector bool int __b)12190 static int __ATTRS_o_ai vec_all_le(vector int __a, vector bool int __b) {
12191   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, (vector int)__b);
12192 }
12193 
vec_all_le(vector unsigned int __a,vector unsigned int __b)12194 static int __ATTRS_o_ai vec_all_le(vector unsigned int __a,
12195                                    vector unsigned int __b) {
12196   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, __b);
12197 }
12198 
vec_all_le(vector unsigned int __a,vector bool int __b)12199 static int __ATTRS_o_ai vec_all_le(vector unsigned int __a,
12200                                    vector bool int __b) {
12201   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, (vector unsigned int)__b);
12202 }
12203 
vec_all_le(vector bool int __a,vector int __b)12204 static int __ATTRS_o_ai vec_all_le(vector bool int __a, vector int __b) {
12205   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a,
12206                                       (vector unsigned int)__b);
12207 }
12208 
vec_all_le(vector bool int __a,vector unsigned int __b)12209 static int __ATTRS_o_ai vec_all_le(vector bool int __a,
12210                                    vector unsigned int __b) {
12211   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, __b);
12212 }
12213 
vec_all_le(vector bool int __a,vector bool int __b)12214 static int __ATTRS_o_ai vec_all_le(vector bool int __a, vector bool int __b) {
12215   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a,
12216                                       (vector unsigned int)__b);
12217 }
12218 
12219 #ifdef __POWER8_VECTOR__
vec_all_le(vector signed long long __a,vector signed long long __b)12220 static int __ATTRS_o_ai vec_all_le(vector signed long long __a,
12221                                    vector signed long long __b) {
12222   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __a, __b);
12223 }
12224 
vec_all_le(vector unsigned long long __a,vector unsigned long long __b)12225 static int __ATTRS_o_ai vec_all_le(vector unsigned long long __a,
12226                                    vector unsigned long long __b) {
12227   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __a, __b);
12228 }
12229 
vec_all_le(vector signed long long __a,vector bool long long __b)12230 static int __ATTRS_o_ai vec_all_le(vector signed long long __a,
12231                                    vector bool long long __b) {
12232   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ, __a,
12233                                       (vector signed long long)__b);
12234 }
12235 
vec_all_le(vector unsigned long long __a,vector bool long long __b)12236 static int __ATTRS_o_ai vec_all_le(vector unsigned long long __a,
12237                                    vector bool long long __b) {
12238   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, __a,
12239                                       (vector unsigned long long)__b);
12240 }
12241 
vec_all_le(vector bool long long __a,vector signed long long __b)12242 static int __ATTRS_o_ai vec_all_le(vector bool long long __a,
12243                                    vector signed long long __b) {
12244   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a,
12245                                       (vector unsigned long long)__b);
12246 }
12247 
vec_all_le(vector bool long long __a,vector unsigned long long __b)12248 static int __ATTRS_o_ai vec_all_le(vector bool long long __a,
12249                                    vector unsigned long long __b) {
12250   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a,
12251                                       __b);
12252 }
12253 
vec_all_le(vector bool long long __a,vector bool long long __b)12254 static int __ATTRS_o_ai vec_all_le(vector bool long long __a,
12255                                    vector bool long long __b) {
12256   return __builtin_altivec_vcmpgtud_p(__CR6_EQ, (vector unsigned long long)__a,
12257                                       (vector unsigned long long)__b);
12258 }
12259 #endif
12260 
vec_all_le(vector float __a,vector float __b)12261 static int __ATTRS_o_ai vec_all_le(vector float __a, vector float __b) {
12262 #ifdef __VSX__
12263   return __builtin_vsx_xvcmpgesp_p(__CR6_LT, __b, __a);
12264 #else
12265   return __builtin_altivec_vcmpgefp_p(__CR6_LT, __b, __a);
12266 #endif
12267 }
12268 
12269 #ifdef __VSX__
vec_all_le(vector double __a,vector double __b)12270 static int __ATTRS_o_ai vec_all_le(vector double __a, vector double __b) {
12271   return __builtin_vsx_xvcmpgedp_p(__CR6_LT, __b, __a);
12272 }
12273 #endif
12274 
12275 /* vec_all_lt */
12276 
vec_all_lt(vector signed char __a,vector signed char __b)12277 static int __ATTRS_o_ai vec_all_lt(vector signed char __a,
12278                                    vector signed char __b) {
12279   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, __a);
12280 }
12281 
vec_all_lt(vector signed char __a,vector bool char __b)12282 static int __ATTRS_o_ai vec_all_lt(vector signed char __a,
12283                                    vector bool char __b) {
12284   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__b, __a);
12285 }
12286 
vec_all_lt(vector unsigned char __a,vector unsigned char __b)12287 static int __ATTRS_o_ai vec_all_lt(vector unsigned char __a,
12288                                    vector unsigned char __b) {
12289   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, __a);
12290 }
12291 
vec_all_lt(vector unsigned char __a,vector bool char __b)12292 static int __ATTRS_o_ai vec_all_lt(vector unsigned char __a,
12293                                    vector bool char __b) {
12294   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, __a);
12295 }
12296 
vec_all_lt(vector bool char __a,vector signed char __b)12297 static int __ATTRS_o_ai vec_all_lt(vector bool char __a,
12298                                    vector signed char __b) {
12299   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b,
12300                                       (vector unsigned char)__a);
12301 }
12302 
vec_all_lt(vector bool char __a,vector unsigned char __b)12303 static int __ATTRS_o_ai vec_all_lt(vector bool char __a,
12304                                    vector unsigned char __b) {
12305   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, (vector unsigned char)__a);
12306 }
12307 
vec_all_lt(vector bool char __a,vector bool char __b)12308 static int __ATTRS_o_ai vec_all_lt(vector bool char __a, vector bool char __b) {
12309   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b,
12310                                       (vector unsigned char)__a);
12311 }
12312 
vec_all_lt(vector short __a,vector short __b)12313 static int __ATTRS_o_ai vec_all_lt(vector short __a, vector short __b) {
12314   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, __a);
12315 }
12316 
vec_all_lt(vector short __a,vector bool short __b)12317 static int __ATTRS_o_ai vec_all_lt(vector short __a, vector bool short __b) {
12318   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)__b, __a);
12319 }
12320 
vec_all_lt(vector unsigned short __a,vector unsigned short __b)12321 static int __ATTRS_o_ai vec_all_lt(vector unsigned short __a,
12322                                    vector unsigned short __b) {
12323   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, __a);
12324 }
12325 
vec_all_lt(vector unsigned short __a,vector bool short __b)12326 static int __ATTRS_o_ai vec_all_lt(vector unsigned short __a,
12327                                    vector bool short __b) {
12328   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b,
12329                                       __a);
12330 }
12331 
vec_all_lt(vector bool short __a,vector short __b)12332 static int __ATTRS_o_ai vec_all_lt(vector bool short __a, vector short __b) {
12333   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b,
12334                                       (vector unsigned short)__a);
12335 }
12336 
vec_all_lt(vector bool short __a,vector unsigned short __b)12337 static int __ATTRS_o_ai vec_all_lt(vector bool short __a,
12338                                    vector unsigned short __b) {
12339   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b,
12340                                       (vector unsigned short)__a);
12341 }
12342 
vec_all_lt(vector bool short __a,vector bool short __b)12343 static int __ATTRS_o_ai vec_all_lt(vector bool short __a,
12344                                    vector bool short __b) {
12345   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b,
12346                                       (vector unsigned short)__a);
12347 }
12348 
vec_all_lt(vector int __a,vector int __b)12349 static int __ATTRS_o_ai vec_all_lt(vector int __a, vector int __b) {
12350   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, __a);
12351 }
12352 
vec_all_lt(vector int __a,vector bool int __b)12353 static int __ATTRS_o_ai vec_all_lt(vector int __a, vector bool int __b) {
12354   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)__b, __a);
12355 }
12356 
vec_all_lt(vector unsigned int __a,vector unsigned int __b)12357 static int __ATTRS_o_ai vec_all_lt(vector unsigned int __a,
12358                                    vector unsigned int __b) {
12359   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, __a);
12360 }
12361 
vec_all_lt(vector unsigned int __a,vector bool int __b)12362 static int __ATTRS_o_ai vec_all_lt(vector unsigned int __a,
12363                                    vector bool int __b) {
12364   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, __a);
12365 }
12366 
vec_all_lt(vector bool int __a,vector int __b)12367 static int __ATTRS_o_ai vec_all_lt(vector bool int __a, vector int __b) {
12368   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b,
12369                                       (vector unsigned int)__a);
12370 }
12371 
vec_all_lt(vector bool int __a,vector unsigned int __b)12372 static int __ATTRS_o_ai vec_all_lt(vector bool int __a,
12373                                    vector unsigned int __b) {
12374   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, (vector unsigned int)__a);
12375 }
12376 
vec_all_lt(vector bool int __a,vector bool int __b)12377 static int __ATTRS_o_ai vec_all_lt(vector bool int __a, vector bool int __b) {
12378   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b,
12379                                       (vector unsigned int)__a);
12380 }
12381 
12382 #ifdef __POWER8_VECTOR__
vec_all_lt(vector signed long long __a,vector signed long long __b)12383 static int __ATTRS_o_ai vec_all_lt(vector signed long long __a,
12384                                    vector signed long long __b) {
12385   return __builtin_altivec_vcmpgtsd_p(__CR6_LT, __b, __a);
12386 }
12387 
vec_all_lt(vector unsigned long long __a,vector unsigned long long __b)12388 static int __ATTRS_o_ai vec_all_lt(vector unsigned long long __a,
12389                                    vector unsigned long long __b) {
12390   return __builtin_altivec_vcmpgtud_p(__CR6_LT, __b, __a);
12391 }
12392 
vec_all_lt(vector signed long long __a,vector bool long long __b)12393 static int __ATTRS_o_ai vec_all_lt(vector signed long long __a,
12394                                    vector bool long long __b) {
12395   return __builtin_altivec_vcmpgtsd_p(__CR6_LT, (vector signed long long)__b,
12396                                       __a);
12397 }
12398 
vec_all_lt(vector unsigned long long __a,vector bool long long __b)12399 static int __ATTRS_o_ai vec_all_lt(vector unsigned long long __a,
12400                                    vector bool long long __b) {
12401   return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b,
12402                                       __a);
12403 }
12404 
vec_all_lt(vector bool long long __a,vector signed long long __b)12405 static int __ATTRS_o_ai vec_all_lt(vector bool long long __a,
12406                                    vector signed long long __b) {
12407   return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b,
12408                                       (vector unsigned long long)__a);
12409 }
12410 
vec_all_lt(vector bool long long __a,vector unsigned long long __b)12411 static int __ATTRS_o_ai vec_all_lt(vector bool long long __a,
12412                                    vector unsigned long long __b) {
12413   return __builtin_altivec_vcmpgtud_p(__CR6_LT, __b,
12414                                       (vector unsigned long long)__a);
12415 }
12416 
vec_all_lt(vector bool long long __a,vector bool long long __b)12417 static int __ATTRS_o_ai vec_all_lt(vector bool long long __a,
12418                                    vector bool long long __b) {
12419   return __builtin_altivec_vcmpgtud_p(__CR6_LT, (vector unsigned long long)__b,
12420                                       (vector unsigned long long)__a);
12421 }
12422 #endif
12423 
vec_all_lt(vector float __a,vector float __b)12424 static int __ATTRS_o_ai vec_all_lt(vector float __a, vector float __b) {
12425 #ifdef __VSX__
12426   return __builtin_vsx_xvcmpgtsp_p(__CR6_LT, __b, __a);
12427 #else
12428   return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __b, __a);
12429 #endif
12430 }
12431 
12432 #ifdef __VSX__
vec_all_lt(vector double __a,vector double __b)12433 static int __ATTRS_o_ai vec_all_lt(vector double __a, vector double __b) {
12434   return __builtin_vsx_xvcmpgtdp_p(__CR6_LT, __b, __a);
12435 }
12436 #endif
12437 
12438 /* vec_all_nan */
12439 
vec_all_nan(vector float __a)12440 static int __ATTRS_o_ai vec_all_nan(vector float __a) {
12441 #ifdef __VSX__
12442   return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ, __a, __a);
12443 #else
12444   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __a);
12445 #endif
12446 }
12447 
12448 #ifdef __VSX__
vec_all_nan(vector double __a)12449 static int __ATTRS_o_ai vec_all_nan(vector double __a) {
12450   return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __a);
12451 }
12452 #endif
12453 
12454 /* vec_all_ne */
12455 
vec_all_ne(vector signed char __a,vector signed char __b)12456 static int __ATTRS_o_ai vec_all_ne(vector signed char __a,
12457                                    vector signed char __b) {
12458   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12459                                       (vector char)__b);
12460 }
12461 
vec_all_ne(vector signed char __a,vector bool char __b)12462 static int __ATTRS_o_ai vec_all_ne(vector signed char __a,
12463                                    vector bool char __b) {
12464   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12465                                       (vector char)__b);
12466 }
12467 
vec_all_ne(vector unsigned char __a,vector unsigned char __b)12468 static int __ATTRS_o_ai vec_all_ne(vector unsigned char __a,
12469                                    vector unsigned char __b) {
12470   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12471                                       (vector char)__b);
12472 }
12473 
vec_all_ne(vector unsigned char __a,vector bool char __b)12474 static int __ATTRS_o_ai vec_all_ne(vector unsigned char __a,
12475                                    vector bool char __b) {
12476   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12477                                       (vector char)__b);
12478 }
12479 
vec_all_ne(vector bool char __a,vector signed char __b)12480 static int __ATTRS_o_ai vec_all_ne(vector bool char __a,
12481                                    vector signed char __b) {
12482   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12483                                       (vector char)__b);
12484 }
12485 
vec_all_ne(vector bool char __a,vector unsigned char __b)12486 static int __ATTRS_o_ai vec_all_ne(vector bool char __a,
12487                                    vector unsigned char __b) {
12488   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12489                                       (vector char)__b);
12490 }
12491 
vec_all_ne(vector bool char __a,vector bool char __b)12492 static int __ATTRS_o_ai vec_all_ne(vector bool char __a, vector bool char __b) {
12493   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a,
12494                                       (vector char)__b);
12495 }
12496 
vec_all_ne(vector short __a,vector short __b)12497 static int __ATTRS_o_ai vec_all_ne(vector short __a, vector short __b) {
12498   return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, __b);
12499 }
12500 
vec_all_ne(vector short __a,vector bool short __b)12501 static int __ATTRS_o_ai vec_all_ne(vector short __a, vector bool short __b) {
12502   return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, (vector short)__b);
12503 }
12504 
vec_all_ne(vector unsigned short __a,vector unsigned short __b)12505 static int __ATTRS_o_ai vec_all_ne(vector unsigned short __a,
12506                                    vector unsigned short __b) {
12507   return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
12508                                       (vector short)__b);
12509 }
12510 
vec_all_ne(vector unsigned short __a,vector bool short __b)12511 static int __ATTRS_o_ai vec_all_ne(vector unsigned short __a,
12512                                    vector bool short __b) {
12513   return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
12514                                       (vector short)__b);
12515 }
12516 
vec_all_ne(vector bool short __a,vector short __b)12517 static int __ATTRS_o_ai vec_all_ne(vector bool short __a, vector short __b) {
12518   return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
12519                                       (vector short)__b);
12520 }
12521 
vec_all_ne(vector bool short __a,vector unsigned short __b)12522 static int __ATTRS_o_ai vec_all_ne(vector bool short __a,
12523                                    vector unsigned short __b) {
12524   return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
12525                                       (vector short)__b);
12526 }
12527 
vec_all_ne(vector bool short __a,vector bool short __b)12528 static int __ATTRS_o_ai vec_all_ne(vector bool short __a,
12529                                    vector bool short __b) {
12530   return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
12531                                       (vector short)__b);
12532 }
12533 
vec_all_ne(vector pixel __a,vector pixel __b)12534 static int __ATTRS_o_ai vec_all_ne(vector pixel __a, vector pixel __b) {
12535   return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a,
12536                                       (vector short)__b);
12537 }
12538 
vec_all_ne(vector int __a,vector int __b)12539 static int __ATTRS_o_ai vec_all_ne(vector int __a, vector int __b) {
12540   return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, __b);
12541 }
12542 
vec_all_ne(vector int __a,vector bool int __b)12543 static int __ATTRS_o_ai vec_all_ne(vector int __a, vector bool int __b) {
12544   return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, (vector int)__b);
12545 }
12546 
vec_all_ne(vector unsigned int __a,vector unsigned int __b)12547 static int __ATTRS_o_ai vec_all_ne(vector unsigned int __a,
12548                                    vector unsigned int __b) {
12549   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
12550                                       (vector int)__b);
12551 }
12552 
vec_all_ne(vector unsigned int __a,vector bool int __b)12553 static int __ATTRS_o_ai vec_all_ne(vector unsigned int __a,
12554                                    vector bool int __b) {
12555   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
12556                                       (vector int)__b);
12557 }
12558 
vec_all_ne(vector bool int __a,vector int __b)12559 static int __ATTRS_o_ai vec_all_ne(vector bool int __a, vector int __b) {
12560   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
12561                                       (vector int)__b);
12562 }
12563 
vec_all_ne(vector bool int __a,vector unsigned int __b)12564 static int __ATTRS_o_ai vec_all_ne(vector bool int __a,
12565                                    vector unsigned int __b) {
12566   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
12567                                       (vector int)__b);
12568 }
12569 
vec_all_ne(vector bool int __a,vector bool int __b)12570 static int __ATTRS_o_ai vec_all_ne(vector bool int __a, vector bool int __b) {
12571   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a,
12572                                       (vector int)__b);
12573 }
12574 
12575 #ifdef __POWER8_VECTOR__
vec_all_ne(vector signed long long __a,vector signed long long __b)12576 static int __ATTRS_o_ai vec_all_ne(vector signed long long __a,
12577                                    vector signed long long __b) {
12578   return __builtin_altivec_vcmpequd_p(__CR6_EQ, __a, __b);
12579 }
12580 
vec_all_ne(vector unsigned long long __a,vector unsigned long long __b)12581 static int __ATTRS_o_ai vec_all_ne(vector unsigned long long __a,
12582                                    vector unsigned long long __b) {
12583   return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector long long)__a,
12584                                       (vector long long)__b);
12585 }
12586 
vec_all_ne(vector signed long long __a,vector bool long long __b)12587 static int __ATTRS_o_ai vec_all_ne(vector signed long long __a,
12588                                    vector bool long long __b) {
12589   return __builtin_altivec_vcmpequd_p(__CR6_EQ, __a,
12590                                       (vector signed long long)__b);
12591 }
12592 
vec_all_ne(vector unsigned long long __a,vector bool long long __b)12593 static int __ATTRS_o_ai vec_all_ne(vector unsigned long long __a,
12594                                    vector bool long long __b) {
12595   return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
12596                                       (vector signed long long)__b);
12597 }
12598 
vec_all_ne(vector bool long long __a,vector signed long long __b)12599 static int __ATTRS_o_ai vec_all_ne(vector bool long long __a,
12600                                    vector signed long long __b) {
12601   return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
12602                                       (vector signed long long)__b);
12603 }
12604 
vec_all_ne(vector bool long long __a,vector unsigned long long __b)12605 static int __ATTRS_o_ai vec_all_ne(vector bool long long __a,
12606                                    vector unsigned long long __b) {
12607   return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
12608                                       (vector signed long long)__b);
12609 }
12610 
vec_all_ne(vector bool long long __a,vector bool long long __b)12611 static int __ATTRS_o_ai vec_all_ne(vector bool long long __a,
12612                                    vector bool long long __b) {
12613   return __builtin_altivec_vcmpequd_p(__CR6_EQ, (vector signed long long)__a,
12614                                       (vector signed long long)__b);
12615 }
12616 #endif
12617 
vec_all_ne(vector float __a,vector float __b)12618 static int __ATTRS_o_ai vec_all_ne(vector float __a, vector float __b) {
12619 #ifdef __VSX__
12620   return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __b);
12621 #else
12622   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __b);
12623 #endif
12624 }
12625 
12626 #ifdef __VSX__
vec_all_ne(vector double __a,vector double __b)12627 static int __ATTRS_o_ai vec_all_ne(vector double __a, vector double __b) {
12628   return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ, __a, __b);
12629 }
12630 #endif
12631 
12632 /* vec_all_nge */
12633 
12634 static int __ATTRS_o_ai
vec_all_nge(vector float __a,vector float __b)12635 vec_all_nge(vector float __a, vector float __b) {
12636 #ifdef __VSX__
12637   return __builtin_vsx_xvcmpgesp_p(__CR6_EQ, __a, __b);
12638 #else
12639   return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __a, __b);
12640 #endif
12641 }
12642 
12643 #ifdef __VSX__
12644 static int __ATTRS_o_ai
vec_all_nge(vector double __a,vector double __b)12645 vec_all_nge(vector double __a, vector double __b) {
12646   return __builtin_vsx_xvcmpgedp_p(__CR6_EQ, __a, __b);
12647 }
12648 #endif
12649 
12650 /* vec_all_ngt */
12651 
12652 static int __ATTRS_o_ai
vec_all_ngt(vector float __a,vector float __b)12653 vec_all_ngt(vector float __a, vector float __b) {
12654 #ifdef __VSX__
12655   return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ, __a, __b);
12656 #else
12657   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __a, __b);
12658 #endif
12659 }
12660 
12661 #ifdef __VSX__
12662 static int __ATTRS_o_ai
vec_all_ngt(vector double __a,vector double __b)12663 vec_all_ngt(vector double __a, vector double __b) {
12664   return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ, __a, __b);
12665 }
12666 #endif
12667 
12668 /* vec_all_nle */
12669 
12670 static int __attribute__((__always_inline__))
vec_all_nle(vector float __a,vector float __b)12671 vec_all_nle(vector float __a, vector float __b) {
12672   return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __b, __a);
12673 }
12674 
12675 /* vec_all_nlt */
12676 
12677 static int __attribute__((__always_inline__))
vec_all_nlt(vector float __a,vector float __b)12678 vec_all_nlt(vector float __a, vector float __b) {
12679   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __b, __a);
12680 }
12681 
12682 /* vec_all_numeric */
12683 
12684 static int __attribute__((__always_inline__))
vec_all_numeric(vector float __a)12685 vec_all_numeric(vector float __a) {
12686   return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __a);
12687 }
12688 
12689 /* vec_any_eq */
12690 
vec_any_eq(vector signed char __a,vector signed char __b)12691 static int __ATTRS_o_ai vec_any_eq(vector signed char __a,
12692                                    vector signed char __b) {
12693   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12694                                       (vector char)__b);
12695 }
12696 
vec_any_eq(vector signed char __a,vector bool char __b)12697 static int __ATTRS_o_ai vec_any_eq(vector signed char __a,
12698                                    vector bool char __b) {
12699   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12700                                       (vector char)__b);
12701 }
12702 
vec_any_eq(vector unsigned char __a,vector unsigned char __b)12703 static int __ATTRS_o_ai vec_any_eq(vector unsigned char __a,
12704                                    vector unsigned char __b) {
12705   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12706                                       (vector char)__b);
12707 }
12708 
vec_any_eq(vector unsigned char __a,vector bool char __b)12709 static int __ATTRS_o_ai vec_any_eq(vector unsigned char __a,
12710                                    vector bool char __b) {
12711   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12712                                       (vector char)__b);
12713 }
12714 
vec_any_eq(vector bool char __a,vector signed char __b)12715 static int __ATTRS_o_ai vec_any_eq(vector bool char __a,
12716                                    vector signed char __b) {
12717   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12718                                       (vector char)__b);
12719 }
12720 
vec_any_eq(vector bool char __a,vector unsigned char __b)12721 static int __ATTRS_o_ai vec_any_eq(vector bool char __a,
12722                                    vector unsigned char __b) {
12723   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12724                                       (vector char)__b);
12725 }
12726 
vec_any_eq(vector bool char __a,vector bool char __b)12727 static int __ATTRS_o_ai vec_any_eq(vector bool char __a, vector bool char __b) {
12728   return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a,
12729                                       (vector char)__b);
12730 }
12731 
vec_any_eq(vector short __a,vector short __b)12732 static int __ATTRS_o_ai vec_any_eq(vector short __a, vector short __b) {
12733   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, __b);
12734 }
12735 
vec_any_eq(vector short __a,vector bool short __b)12736 static int __ATTRS_o_ai vec_any_eq(vector short __a, vector bool short __b) {
12737   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, (vector short)__b);
12738 }
12739 
vec_any_eq(vector unsigned short __a,vector unsigned short __b)12740 static int __ATTRS_o_ai vec_any_eq(vector unsigned short __a,
12741                                    vector unsigned short __b) {
12742   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
12743                                       (vector short)__b);
12744 }
12745 
vec_any_eq(vector unsigned short __a,vector bool short __b)12746 static int __ATTRS_o_ai vec_any_eq(vector unsigned short __a,
12747                                    vector bool short __b) {
12748   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
12749                                       (vector short)__b);
12750 }
12751 
vec_any_eq(vector bool short __a,vector short __b)12752 static int __ATTRS_o_ai vec_any_eq(vector bool short __a, vector short __b) {
12753   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
12754                                       (vector short)__b);
12755 }
12756 
vec_any_eq(vector bool short __a,vector unsigned short __b)12757 static int __ATTRS_o_ai vec_any_eq(vector bool short __a,
12758                                    vector unsigned short __b) {
12759   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
12760                                       (vector short)__b);
12761 }
12762 
vec_any_eq(vector bool short __a,vector bool short __b)12763 static int __ATTRS_o_ai vec_any_eq(vector bool short __a,
12764                                    vector bool short __b) {
12765   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
12766                                       (vector short)__b);
12767 }
12768 
vec_any_eq(vector pixel __a,vector pixel __b)12769 static int __ATTRS_o_ai vec_any_eq(vector pixel __a, vector pixel __b) {
12770   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)__a,
12771                                       (vector short)__b);
12772 }
12773 
vec_any_eq(vector int __a,vector int __b)12774 static int __ATTRS_o_ai vec_any_eq(vector int __a, vector int __b) {
12775   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, __b);
12776 }
12777 
vec_any_eq(vector int __a,vector bool int __b)12778 static int __ATTRS_o_ai vec_any_eq(vector int __a, vector bool int __b) {
12779   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, (vector int)__b);
12780 }
12781 
vec_any_eq(vector unsigned int __a,vector unsigned int __b)12782 static int __ATTRS_o_ai vec_any_eq(vector unsigned int __a,
12783                                    vector unsigned int __b) {
12784   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
12785                                       (vector int)__b);
12786 }
12787 
vec_any_eq(vector unsigned int __a,vector bool int __b)12788 static int __ATTRS_o_ai vec_any_eq(vector unsigned int __a,
12789                                    vector bool int __b) {
12790   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
12791                                       (vector int)__b);
12792 }
12793 
vec_any_eq(vector bool int __a,vector int __b)12794 static int __ATTRS_o_ai vec_any_eq(vector bool int __a, vector int __b) {
12795   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
12796                                       (vector int)__b);
12797 }
12798 
vec_any_eq(vector bool int __a,vector unsigned int __b)12799 static int __ATTRS_o_ai vec_any_eq(vector bool int __a,
12800                                    vector unsigned int __b) {
12801   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
12802                                       (vector int)__b);
12803 }
12804 
vec_any_eq(vector bool int __a,vector bool int __b)12805 static int __ATTRS_o_ai vec_any_eq(vector bool int __a, vector bool int __b) {
12806   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a,
12807                                       (vector int)__b);
12808 }
12809 
12810 #ifdef __POWER8_VECTOR__
vec_any_eq(vector signed long long __a,vector signed long long __b)12811 static int __ATTRS_o_ai vec_any_eq(vector signed long long __a,
12812                                    vector signed long long __b) {
12813   return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, __a, __b);
12814 }
12815 
vec_any_eq(vector unsigned long long __a,vector unsigned long long __b)12816 static int __ATTRS_o_ai vec_any_eq(vector unsigned long long __a,
12817                                    vector unsigned long long __b) {
12818   return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, (vector long long)__a,
12819                                       (vector long long)__b);
12820 }
12821 
vec_any_eq(vector signed long long __a,vector bool long long __b)12822 static int __ATTRS_o_ai vec_any_eq(vector signed long long __a,
12823                                    vector bool long long __b) {
12824   return __builtin_altivec_vcmpequd_p(__CR6_EQ_REV, __a,
12825                                       (vector signed long long)__b);
12826 }
12827 
vec_any_eq(vector unsigned long long __a,vector bool long long __b)12828 static int __ATTRS_o_ai vec_any_eq(vector unsigned long long __a,
12829                                    vector bool long long __b) {
12830   return __builtin_altivec_vcmpequd_p(
12831       __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
12832 }
12833 
vec_any_eq(vector bool long long __a,vector signed long long __b)12834 static int __ATTRS_o_ai vec_any_eq(vector bool long long __a,
12835                                    vector signed long long __b) {
12836   return __builtin_altivec_vcmpequd_p(
12837       __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
12838 }
12839 
vec_any_eq(vector bool long long __a,vector unsigned long long __b)12840 static int __ATTRS_o_ai vec_any_eq(vector bool long long __a,
12841                                    vector unsigned long long __b) {
12842   return __builtin_altivec_vcmpequd_p(
12843       __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
12844 }
12845 
vec_any_eq(vector bool long long __a,vector bool long long __b)12846 static int __ATTRS_o_ai vec_any_eq(vector bool long long __a,
12847                                    vector bool long long __b) {
12848   return __builtin_altivec_vcmpequd_p(
12849       __CR6_EQ_REV, (vector signed long long)__a, (vector signed long long)__b);
12850 }
12851 #endif
12852 
vec_any_eq(vector float __a,vector float __b)12853 static int __ATTRS_o_ai vec_any_eq(vector float __a, vector float __b) {
12854 #ifdef __VSX__
12855   return __builtin_vsx_xvcmpeqsp_p(__CR6_EQ_REV, __a, __b);
12856 #else
12857   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __b);
12858 #endif
12859 }
12860 
12861 #ifdef __VSX__
vec_any_eq(vector double __a,vector double __b)12862 static int __ATTRS_o_ai vec_any_eq(vector double __a, vector double __b) {
12863   return __builtin_vsx_xvcmpeqdp_p(__CR6_EQ_REV, __a, __b);
12864 }
12865 #endif
12866 
12867 /* vec_any_ge */
12868 
vec_any_ge(vector signed char __a,vector signed char __b)12869 static int __ATTRS_o_ai vec_any_ge(vector signed char __a,
12870                                    vector signed char __b) {
12871   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b, __a);
12872 }
12873 
vec_any_ge(vector signed char __a,vector bool char __b)12874 static int __ATTRS_o_ai vec_any_ge(vector signed char __a,
12875                                    vector bool char __b) {
12876   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__b,
12877                                       __a);
12878 }
12879 
vec_any_ge(vector unsigned char __a,vector unsigned char __b)12880 static int __ATTRS_o_ai vec_any_ge(vector unsigned char __a,
12881                                    vector unsigned char __b) {
12882   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, __a);
12883 }
12884 
vec_any_ge(vector unsigned char __a,vector bool char __b)12885 static int __ATTRS_o_ai vec_any_ge(vector unsigned char __a,
12886                                    vector bool char __b) {
12887   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b,
12888                                       __a);
12889 }
12890 
vec_any_ge(vector bool char __a,vector signed char __b)12891 static int __ATTRS_o_ai vec_any_ge(vector bool char __a,
12892                                    vector signed char __b) {
12893   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b,
12894                                       (vector unsigned char)__a);
12895 }
12896 
vec_any_ge(vector bool char __a,vector unsigned char __b)12897 static int __ATTRS_o_ai vec_any_ge(vector bool char __a,
12898                                    vector unsigned char __b) {
12899   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b,
12900                                       (vector unsigned char)__a);
12901 }
12902 
vec_any_ge(vector bool char __a,vector bool char __b)12903 static int __ATTRS_o_ai vec_any_ge(vector bool char __a, vector bool char __b) {
12904   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b,
12905                                       (vector unsigned char)__a);
12906 }
12907 
vec_any_ge(vector short __a,vector short __b)12908 static int __ATTRS_o_ai vec_any_ge(vector short __a, vector short __b) {
12909   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b, __a);
12910 }
12911 
vec_any_ge(vector short __a,vector bool short __b)12912 static int __ATTRS_o_ai vec_any_ge(vector short __a, vector bool short __b) {
12913   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)__b, __a);
12914 }
12915 
vec_any_ge(vector unsigned short __a,vector unsigned short __b)12916 static int __ATTRS_o_ai vec_any_ge(vector unsigned short __a,
12917                                    vector unsigned short __b) {
12918   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, __a);
12919 }
12920 
vec_any_ge(vector unsigned short __a,vector bool short __b)12921 static int __ATTRS_o_ai vec_any_ge(vector unsigned short __a,
12922                                    vector bool short __b) {
12923   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b,
12924                                       __a);
12925 }
12926 
vec_any_ge(vector bool short __a,vector short __b)12927 static int __ATTRS_o_ai vec_any_ge(vector bool short __a, vector short __b) {
12928   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b,
12929                                       (vector unsigned short)__a);
12930 }
12931 
vec_any_ge(vector bool short __a,vector unsigned short __b)12932 static int __ATTRS_o_ai vec_any_ge(vector bool short __a,
12933                                    vector unsigned short __b) {
12934   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b,
12935                                       (vector unsigned short)__a);
12936 }
12937 
vec_any_ge(vector bool short __a,vector bool short __b)12938 static int __ATTRS_o_ai vec_any_ge(vector bool short __a,
12939                                    vector bool short __b) {
12940   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b,
12941                                       (vector unsigned short)__a);
12942 }
12943 
vec_any_ge(vector int __a,vector int __b)12944 static int __ATTRS_o_ai vec_any_ge(vector int __a, vector int __b) {
12945   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b, __a);
12946 }
12947 
vec_any_ge(vector int __a,vector bool int __b)12948 static int __ATTRS_o_ai vec_any_ge(vector int __a, vector bool int __b) {
12949   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)__b, __a);
12950 }
12951 
vec_any_ge(vector unsigned int __a,vector unsigned int __b)12952 static int __ATTRS_o_ai vec_any_ge(vector unsigned int __a,
12953                                    vector unsigned int __b) {
12954   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, __a);
12955 }
12956 
vec_any_ge(vector unsigned int __a,vector bool int __b)12957 static int __ATTRS_o_ai vec_any_ge(vector unsigned int __a,
12958                                    vector bool int __b) {
12959   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b,
12960                                       __a);
12961 }
12962 
vec_any_ge(vector bool int __a,vector int __b)12963 static int __ATTRS_o_ai vec_any_ge(vector bool int __a, vector int __b) {
12964   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b,
12965                                       (vector unsigned int)__a);
12966 }
12967 
vec_any_ge(vector bool int __a,vector unsigned int __b)12968 static int __ATTRS_o_ai vec_any_ge(vector bool int __a,
12969                                    vector unsigned int __b) {
12970   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b,
12971                                       (vector unsigned int)__a);
12972 }
12973 
vec_any_ge(vector bool int __a,vector bool int __b)12974 static int __ATTRS_o_ai vec_any_ge(vector bool int __a, vector bool int __b) {
12975   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b,
12976                                       (vector unsigned int)__a);
12977 }
12978 
12979 #ifdef __POWER8_VECTOR__
vec_any_ge(vector signed long long __a,vector signed long long __b)12980 static int __ATTRS_o_ai vec_any_ge(vector signed long long __a,
12981                                    vector signed long long __b) {
12982   return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __b, __a);
12983 }
12984 
vec_any_ge(vector unsigned long long __a,vector unsigned long long __b)12985 static int __ATTRS_o_ai vec_any_ge(vector unsigned long long __a,
12986                                    vector unsigned long long __b) {
12987   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __b, __a);
12988 }
12989 
vec_any_ge(vector signed long long __a,vector bool long long __b)12990 static int __ATTRS_o_ai vec_any_ge(vector signed long long __a,
12991                                    vector bool long long __b) {
12992   return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV,
12993                                       (vector signed long long)__b, __a);
12994 }
12995 
vec_any_ge(vector unsigned long long __a,vector bool long long __b)12996 static int __ATTRS_o_ai vec_any_ge(vector unsigned long long __a,
12997                                    vector bool long long __b) {
12998   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
12999                                       (vector unsigned long long)__b, __a);
13000 }
13001 
vec_any_ge(vector bool long long __a,vector signed long long __b)13002 static int __ATTRS_o_ai vec_any_ge(vector bool long long __a,
13003                                    vector signed long long __b) {
13004   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
13005                                       (vector unsigned long long)__b,
13006                                       (vector unsigned long long)__a);
13007 }
13008 
vec_any_ge(vector bool long long __a,vector unsigned long long __b)13009 static int __ATTRS_o_ai vec_any_ge(vector bool long long __a,
13010                                    vector unsigned long long __b) {
13011   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __b,
13012                                       (vector unsigned long long)__a);
13013 }
13014 
vec_any_ge(vector bool long long __a,vector bool long long __b)13015 static int __ATTRS_o_ai vec_any_ge(vector bool long long __a,
13016                                    vector bool long long __b) {
13017   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
13018                                       (vector unsigned long long)__b,
13019                                       (vector unsigned long long)__a);
13020 }
13021 #endif
13022 
vec_any_ge(vector float __a,vector float __b)13023 static int __ATTRS_o_ai vec_any_ge(vector float __a, vector float __b) {
13024 #ifdef __VSX__
13025   return __builtin_vsx_xvcmpgesp_p(__CR6_EQ_REV, __a, __b);
13026 #else
13027   return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __a, __b);
13028 #endif
13029 }
13030 
13031 #ifdef __VSX__
vec_any_ge(vector double __a,vector double __b)13032 static int __ATTRS_o_ai vec_any_ge(vector double __a, vector double __b) {
13033   return __builtin_vsx_xvcmpgedp_p(__CR6_EQ_REV, __a, __b);
13034 }
13035 #endif
13036 
13037 /* vec_any_gt */
13038 
vec_any_gt(vector signed char __a,vector signed char __b)13039 static int __ATTRS_o_ai vec_any_gt(vector signed char __a,
13040                                    vector signed char __b) {
13041   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, __b);
13042 }
13043 
vec_any_gt(vector signed char __a,vector bool char __b)13044 static int __ATTRS_o_ai vec_any_gt(vector signed char __a,
13045                                    vector bool char __b) {
13046   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a,
13047                                       (vector signed char)__b);
13048 }
13049 
vec_any_gt(vector unsigned char __a,vector unsigned char __b)13050 static int __ATTRS_o_ai vec_any_gt(vector unsigned char __a,
13051                                    vector unsigned char __b) {
13052   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, __b);
13053 }
13054 
vec_any_gt(vector unsigned char __a,vector bool char __b)13055 static int __ATTRS_o_ai vec_any_gt(vector unsigned char __a,
13056                                    vector bool char __b) {
13057   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a,
13058                                       (vector unsigned char)__b);
13059 }
13060 
vec_any_gt(vector bool char __a,vector signed char __b)13061 static int __ATTRS_o_ai vec_any_gt(vector bool char __a,
13062                                    vector signed char __b) {
13063   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a,
13064                                       (vector unsigned char)__b);
13065 }
13066 
vec_any_gt(vector bool char __a,vector unsigned char __b)13067 static int __ATTRS_o_ai vec_any_gt(vector bool char __a,
13068                                    vector unsigned char __b) {
13069   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a,
13070                                       __b);
13071 }
13072 
vec_any_gt(vector bool char __a,vector bool char __b)13073 static int __ATTRS_o_ai vec_any_gt(vector bool char __a, vector bool char __b) {
13074   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a,
13075                                       (vector unsigned char)__b);
13076 }
13077 
vec_any_gt(vector short __a,vector short __b)13078 static int __ATTRS_o_ai vec_any_gt(vector short __a, vector short __b) {
13079   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, __b);
13080 }
13081 
vec_any_gt(vector short __a,vector bool short __b)13082 static int __ATTRS_o_ai vec_any_gt(vector short __a, vector bool short __b) {
13083   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, (vector short)__b);
13084 }
13085 
vec_any_gt(vector unsigned short __a,vector unsigned short __b)13086 static int __ATTRS_o_ai vec_any_gt(vector unsigned short __a,
13087                                    vector unsigned short __b) {
13088   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, __b);
13089 }
13090 
vec_any_gt(vector unsigned short __a,vector bool short __b)13091 static int __ATTRS_o_ai vec_any_gt(vector unsigned short __a,
13092                                    vector bool short __b) {
13093   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a,
13094                                       (vector unsigned short)__b);
13095 }
13096 
vec_any_gt(vector bool short __a,vector short __b)13097 static int __ATTRS_o_ai vec_any_gt(vector bool short __a, vector short __b) {
13098   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a,
13099                                       (vector unsigned short)__b);
13100 }
13101 
vec_any_gt(vector bool short __a,vector unsigned short __b)13102 static int __ATTRS_o_ai vec_any_gt(vector bool short __a,
13103                                    vector unsigned short __b) {
13104   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a,
13105                                       __b);
13106 }
13107 
vec_any_gt(vector bool short __a,vector bool short __b)13108 static int __ATTRS_o_ai vec_any_gt(vector bool short __a,
13109                                    vector bool short __b) {
13110   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a,
13111                                       (vector unsigned short)__b);
13112 }
13113 
vec_any_gt(vector int __a,vector int __b)13114 static int __ATTRS_o_ai vec_any_gt(vector int __a, vector int __b) {
13115   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, __b);
13116 }
13117 
vec_any_gt(vector int __a,vector bool int __b)13118 static int __ATTRS_o_ai vec_any_gt(vector int __a, vector bool int __b) {
13119   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, (vector int)__b);
13120 }
13121 
vec_any_gt(vector unsigned int __a,vector unsigned int __b)13122 static int __ATTRS_o_ai vec_any_gt(vector unsigned int __a,
13123                                    vector unsigned int __b) {
13124   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, __b);
13125 }
13126 
vec_any_gt(vector unsigned int __a,vector bool int __b)13127 static int __ATTRS_o_ai vec_any_gt(vector unsigned int __a,
13128                                    vector bool int __b) {
13129   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a,
13130                                       (vector unsigned int)__b);
13131 }
13132 
vec_any_gt(vector bool int __a,vector int __b)13133 static int __ATTRS_o_ai vec_any_gt(vector bool int __a, vector int __b) {
13134   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a,
13135                                       (vector unsigned int)__b);
13136 }
13137 
vec_any_gt(vector bool int __a,vector unsigned int __b)13138 static int __ATTRS_o_ai vec_any_gt(vector bool int __a,
13139                                    vector unsigned int __b) {
13140   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a,
13141                                       __b);
13142 }
13143 
vec_any_gt(vector bool int __a,vector bool int __b)13144 static int __ATTRS_o_ai vec_any_gt(vector bool int __a, vector bool int __b) {
13145   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a,
13146                                       (vector unsigned int)__b);
13147 }
13148 
13149 #ifdef __POWER8_VECTOR__
vec_any_gt(vector signed long long __a,vector signed long long __b)13150 static int __ATTRS_o_ai vec_any_gt(vector signed long long __a,
13151                                    vector signed long long __b) {
13152   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __a, __b);
13153 }
13154 
vec_any_gt(vector unsigned long long __a,vector unsigned long long __b)13155 static int __ATTRS_o_ai vec_any_gt(vector unsigned long long __a,
13156                                    vector unsigned long long __b) {
13157   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __a, __b);
13158 }
13159 
vec_any_gt(vector signed long long __a,vector bool long long __b)13160 static int __ATTRS_o_ai vec_any_gt(vector signed long long __a,
13161                                    vector bool long long __b) {
13162   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __a,
13163                                       (vector signed long long)__b);
13164 }
13165 
vec_any_gt(vector unsigned long long __a,vector bool long long __b)13166 static int __ATTRS_o_ai vec_any_gt(vector unsigned long long __a,
13167                                    vector bool long long __b) {
13168   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __a,
13169                                       (vector unsigned long long)__b);
13170 }
13171 
vec_any_gt(vector bool long long __a,vector signed long long __b)13172 static int __ATTRS_o_ai vec_any_gt(vector bool long long __a,
13173                                    vector signed long long __b) {
13174   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
13175                                       (vector unsigned long long)__a,
13176                                       (vector unsigned long long)__b);
13177 }
13178 
vec_any_gt(vector bool long long __a,vector unsigned long long __b)13179 static int __ATTRS_o_ai vec_any_gt(vector bool long long __a,
13180                                    vector unsigned long long __b) {
13181   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
13182                                       (vector unsigned long long)__a, __b);
13183 }
13184 
vec_any_gt(vector bool long long __a,vector bool long long __b)13185 static int __ATTRS_o_ai vec_any_gt(vector bool long long __a,
13186                                    vector bool long long __b) {
13187   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
13188                                       (vector unsigned long long)__a,
13189                                       (vector unsigned long long)__b);
13190 }
13191 #endif
13192 
vec_any_gt(vector float __a,vector float __b)13193 static int __ATTRS_o_ai vec_any_gt(vector float __a, vector float __b) {
13194 #ifdef __VSX__
13195   return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ_REV, __a, __b);
13196 #else
13197   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __a, __b);
13198 #endif
13199 }
13200 
13201 #ifdef __VSX__
vec_any_gt(vector double __a,vector double __b)13202 static int __ATTRS_o_ai vec_any_gt(vector double __a, vector double __b) {
13203   return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ_REV, __a, __b);
13204 }
13205 #endif
13206 
13207 /* vec_any_le */
13208 
vec_any_le(vector signed char __a,vector signed char __b)13209 static int __ATTRS_o_ai vec_any_le(vector signed char __a,
13210                                    vector signed char __b) {
13211   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, __b);
13212 }
13213 
vec_any_le(vector signed char __a,vector bool char __b)13214 static int __ATTRS_o_ai vec_any_le(vector signed char __a,
13215                                    vector bool char __b) {
13216   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a,
13217                                       (vector signed char)__b);
13218 }
13219 
vec_any_le(vector unsigned char __a,vector unsigned char __b)13220 static int __ATTRS_o_ai vec_any_le(vector unsigned char __a,
13221                                    vector unsigned char __b) {
13222   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, __b);
13223 }
13224 
vec_any_le(vector unsigned char __a,vector bool char __b)13225 static int __ATTRS_o_ai vec_any_le(vector unsigned char __a,
13226                                    vector bool char __b) {
13227   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a,
13228                                       (vector unsigned char)__b);
13229 }
13230 
vec_any_le(vector bool char __a,vector signed char __b)13231 static int __ATTRS_o_ai vec_any_le(vector bool char __a,
13232                                    vector signed char __b) {
13233   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a,
13234                                       (vector unsigned char)__b);
13235 }
13236 
vec_any_le(vector bool char __a,vector unsigned char __b)13237 static int __ATTRS_o_ai vec_any_le(vector bool char __a,
13238                                    vector unsigned char __b) {
13239   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a,
13240                                       __b);
13241 }
13242 
vec_any_le(vector bool char __a,vector bool char __b)13243 static int __ATTRS_o_ai vec_any_le(vector bool char __a, vector bool char __b) {
13244   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a,
13245                                       (vector unsigned char)__b);
13246 }
13247 
vec_any_le(vector short __a,vector short __b)13248 static int __ATTRS_o_ai vec_any_le(vector short __a, vector short __b) {
13249   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, __b);
13250 }
13251 
vec_any_le(vector short __a,vector bool short __b)13252 static int __ATTRS_o_ai vec_any_le(vector short __a, vector bool short __b) {
13253   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, (vector short)__b);
13254 }
13255 
vec_any_le(vector unsigned short __a,vector unsigned short __b)13256 static int __ATTRS_o_ai vec_any_le(vector unsigned short __a,
13257                                    vector unsigned short __b) {
13258   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, __b);
13259 }
13260 
vec_any_le(vector unsigned short __a,vector bool short __b)13261 static int __ATTRS_o_ai vec_any_le(vector unsigned short __a,
13262                                    vector bool short __b) {
13263   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a,
13264                                       (vector unsigned short)__b);
13265 }
13266 
vec_any_le(vector bool short __a,vector short __b)13267 static int __ATTRS_o_ai vec_any_le(vector bool short __a, vector short __b) {
13268   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a,
13269                                       (vector unsigned short)__b);
13270 }
13271 
vec_any_le(vector bool short __a,vector unsigned short __b)13272 static int __ATTRS_o_ai vec_any_le(vector bool short __a,
13273                                    vector unsigned short __b) {
13274   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a,
13275                                       __b);
13276 }
13277 
vec_any_le(vector bool short __a,vector bool short __b)13278 static int __ATTRS_o_ai vec_any_le(vector bool short __a,
13279                                    vector bool short __b) {
13280   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a,
13281                                       (vector unsigned short)__b);
13282 }
13283 
vec_any_le(vector int __a,vector int __b)13284 static int __ATTRS_o_ai vec_any_le(vector int __a, vector int __b) {
13285   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, __b);
13286 }
13287 
vec_any_le(vector int __a,vector bool int __b)13288 static int __ATTRS_o_ai vec_any_le(vector int __a, vector bool int __b) {
13289   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, (vector int)__b);
13290 }
13291 
vec_any_le(vector unsigned int __a,vector unsigned int __b)13292 static int __ATTRS_o_ai vec_any_le(vector unsigned int __a,
13293                                    vector unsigned int __b) {
13294   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, __b);
13295 }
13296 
vec_any_le(vector unsigned int __a,vector bool int __b)13297 static int __ATTRS_o_ai vec_any_le(vector unsigned int __a,
13298                                    vector bool int __b) {
13299   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a,
13300                                       (vector unsigned int)__b);
13301 }
13302 
vec_any_le(vector bool int __a,vector int __b)13303 static int __ATTRS_o_ai vec_any_le(vector bool int __a, vector int __b) {
13304   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a,
13305                                       (vector unsigned int)__b);
13306 }
13307 
vec_any_le(vector bool int __a,vector unsigned int __b)13308 static int __ATTRS_o_ai vec_any_le(vector bool int __a,
13309                                    vector unsigned int __b) {
13310   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a,
13311                                       __b);
13312 }
13313 
vec_any_le(vector bool int __a,vector bool int __b)13314 static int __ATTRS_o_ai vec_any_le(vector bool int __a, vector bool int __b) {
13315   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a,
13316                                       (vector unsigned int)__b);
13317 }
13318 
13319 #ifdef __POWER8_VECTOR__
vec_any_le(vector signed long long __a,vector signed long long __b)13320 static int __ATTRS_o_ai vec_any_le(vector signed long long __a,
13321                                    vector signed long long __b) {
13322   return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __a, __b);
13323 }
13324 
vec_any_le(vector unsigned long long __a,vector unsigned long long __b)13325 static int __ATTRS_o_ai vec_any_le(vector unsigned long long __a,
13326                                    vector unsigned long long __b) {
13327   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __a, __b);
13328 }
13329 
vec_any_le(vector signed long long __a,vector bool long long __b)13330 static int __ATTRS_o_ai vec_any_le(vector signed long long __a,
13331                                    vector bool long long __b) {
13332   return __builtin_altivec_vcmpgtsd_p(__CR6_LT_REV, __a,
13333                                       (vector signed long long)__b);
13334 }
13335 
vec_any_le(vector unsigned long long __a,vector bool long long __b)13336 static int __ATTRS_o_ai vec_any_le(vector unsigned long long __a,
13337                                    vector bool long long __b) {
13338   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV, __a,
13339                                       (vector unsigned long long)__b);
13340 }
13341 
vec_any_le(vector bool long long __a,vector signed long long __b)13342 static int __ATTRS_o_ai vec_any_le(vector bool long long __a,
13343                                    vector signed long long __b) {
13344   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
13345                                       (vector unsigned long long)__a,
13346                                       (vector unsigned long long)__b);
13347 }
13348 
vec_any_le(vector bool long long __a,vector unsigned long long __b)13349 static int __ATTRS_o_ai vec_any_le(vector bool long long __a,
13350                                    vector unsigned long long __b) {
13351   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
13352                                       (vector unsigned long long)__a, __b);
13353 }
13354 
vec_any_le(vector bool long long __a,vector bool long long __b)13355 static int __ATTRS_o_ai vec_any_le(vector bool long long __a,
13356                                    vector bool long long __b) {
13357   return __builtin_altivec_vcmpgtud_p(__CR6_LT_REV,
13358                                       (vector unsigned long long)__a,
13359                                       (vector unsigned long long)__b);
13360 }
13361 #endif
13362 
vec_any_le(vector float __a,vector float __b)13363 static int __ATTRS_o_ai vec_any_le(vector float __a, vector float __b) {
13364 #ifdef __VSX__
13365   return __builtin_vsx_xvcmpgesp_p(__CR6_EQ_REV, __b, __a);
13366 #else
13367   return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __b, __a);
13368 #endif
13369 }
13370 
13371 #ifdef __VSX__
vec_any_le(vector double __a,vector double __b)13372 static int __ATTRS_o_ai vec_any_le(vector double __a, vector double __b) {
13373   return __builtin_vsx_xvcmpgedp_p(__CR6_EQ_REV, __b, __a);
13374 }
13375 #endif
13376 
13377 /* vec_any_lt */
13378 
vec_any_lt(vector signed char __a,vector signed char __b)13379 static int __ATTRS_o_ai vec_any_lt(vector signed char __a,
13380                                    vector signed char __b) {
13381   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b, __a);
13382 }
13383 
vec_any_lt(vector signed char __a,vector bool char __b)13384 static int __ATTRS_o_ai vec_any_lt(vector signed char __a,
13385                                    vector bool char __b) {
13386   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__b,
13387                                       __a);
13388 }
13389 
vec_any_lt(vector unsigned char __a,vector unsigned char __b)13390 static int __ATTRS_o_ai vec_any_lt(vector unsigned char __a,
13391                                    vector unsigned char __b) {
13392   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, __a);
13393 }
13394 
vec_any_lt(vector unsigned char __a,vector bool char __b)13395 static int __ATTRS_o_ai vec_any_lt(vector unsigned char __a,
13396                                    vector bool char __b) {
13397   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b,
13398                                       __a);
13399 }
13400 
vec_any_lt(vector bool char __a,vector signed char __b)13401 static int __ATTRS_o_ai vec_any_lt(vector bool char __a,
13402                                    vector signed char __b) {
13403   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b,
13404                                       (vector unsigned char)__a);
13405 }
13406 
vec_any_lt(vector bool char __a,vector unsigned char __b)13407 static int __ATTRS_o_ai vec_any_lt(vector bool char __a,
13408                                    vector unsigned char __b) {
13409   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b,
13410                                       (vector unsigned char)__a);
13411 }
13412 
vec_any_lt(vector bool char __a,vector bool char __b)13413 static int __ATTRS_o_ai vec_any_lt(vector bool char __a, vector bool char __b) {
13414   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b,
13415                                       (vector unsigned char)__a);
13416 }
13417 
vec_any_lt(vector short __a,vector short __b)13418 static int __ATTRS_o_ai vec_any_lt(vector short __a, vector short __b) {
13419   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b, __a);
13420 }
13421 
vec_any_lt(vector short __a,vector bool short __b)13422 static int __ATTRS_o_ai vec_any_lt(vector short __a, vector bool short __b) {
13423   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)__b, __a);
13424 }
13425 
vec_any_lt(vector unsigned short __a,vector unsigned short __b)13426 static int __ATTRS_o_ai vec_any_lt(vector unsigned short __a,
13427                                    vector unsigned short __b) {
13428   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, __a);
13429 }
13430 
vec_any_lt(vector unsigned short __a,vector bool short __b)13431 static int __ATTRS_o_ai vec_any_lt(vector unsigned short __a,
13432                                    vector bool short __b) {
13433   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b,
13434                                       __a);
13435 }
13436 
vec_any_lt(vector bool short __a,vector short __b)13437 static int __ATTRS_o_ai vec_any_lt(vector bool short __a, vector short __b) {
13438   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b,
13439                                       (vector unsigned short)__a);
13440 }
13441 
vec_any_lt(vector bool short __a,vector unsigned short __b)13442 static int __ATTRS_o_ai vec_any_lt(vector bool short __a,
13443                                    vector unsigned short __b) {
13444   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b,
13445                                       (vector unsigned short)__a);
13446 }
13447 
vec_any_lt(vector bool short __a,vector bool short __b)13448 static int __ATTRS_o_ai vec_any_lt(vector bool short __a,
13449                                    vector bool short __b) {
13450   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b,
13451                                       (vector unsigned short)__a);
13452 }
13453 
vec_any_lt(vector int __a,vector int __b)13454 static int __ATTRS_o_ai vec_any_lt(vector int __a, vector int __b) {
13455   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b, __a);
13456 }
13457 
vec_any_lt(vector int __a,vector bool int __b)13458 static int __ATTRS_o_ai vec_any_lt(vector int __a, vector bool int __b) {
13459   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)__b, __a);
13460 }
13461 
vec_any_lt(vector unsigned int __a,vector unsigned int __b)13462 static int __ATTRS_o_ai vec_any_lt(vector unsigned int __a,
13463                                    vector unsigned int __b) {
13464   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, __a);
13465 }
13466 
vec_any_lt(vector unsigned int __a,vector bool int __b)13467 static int __ATTRS_o_ai vec_any_lt(vector unsigned int __a,
13468                                    vector bool int __b) {
13469   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b,
13470                                       __a);
13471 }
13472 
vec_any_lt(vector bool int __a,vector int __b)13473 static int __ATTRS_o_ai vec_any_lt(vector bool int __a, vector int __b) {
13474   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b,
13475                                       (vector unsigned int)__a);
13476 }
13477 
vec_any_lt(vector bool int __a,vector unsigned int __b)13478 static int __ATTRS_o_ai vec_any_lt(vector bool int __a,
13479                                    vector unsigned int __b) {
13480   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b,
13481                                       (vector unsigned int)__a);
13482 }
13483 
vec_any_lt(vector bool int __a,vector bool int __b)13484 static int __ATTRS_o_ai vec_any_lt(vector bool int __a, vector bool int __b) {
13485   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b,
13486                                       (vector unsigned int)__a);
13487 }
13488 
13489 #ifdef __POWER8_VECTOR__
vec_any_lt(vector signed long long __a,vector signed long long __b)13490 static int __ATTRS_o_ai vec_any_lt(vector signed long long __a,
13491                                    vector signed long long __b) {
13492   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV, __b, __a);
13493 }
13494 
vec_any_lt(vector unsigned long long __a,vector unsigned long long __b)13495 static int __ATTRS_o_ai vec_any_lt(vector unsigned long long __a,
13496                                    vector unsigned long long __b) {
13497   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __b, __a);
13498 }
13499 
vec_any_lt(vector signed long long __a,vector bool long long __b)13500 static int __ATTRS_o_ai vec_any_lt(vector signed long long __a,
13501                                    vector bool long long __b) {
13502   return __builtin_altivec_vcmpgtsd_p(__CR6_EQ_REV,
13503                                       (vector signed long long)__b, __a);
13504 }
13505 
vec_any_lt(vector unsigned long long __a,vector bool long long __b)13506 static int __ATTRS_o_ai vec_any_lt(vector unsigned long long __a,
13507                                    vector bool long long __b) {
13508   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
13509                                       (vector unsigned long long)__b, __a);
13510 }
13511 
vec_any_lt(vector bool long long __a,vector signed long long __b)13512 static int __ATTRS_o_ai vec_any_lt(vector bool long long __a,
13513                                    vector signed long long __b) {
13514   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
13515                                       (vector unsigned long long)__b,
13516                                       (vector unsigned long long)__a);
13517 }
13518 
vec_any_lt(vector bool long long __a,vector unsigned long long __b)13519 static int __ATTRS_o_ai vec_any_lt(vector bool long long __a,
13520                                    vector unsigned long long __b) {
13521   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV, __b,
13522                                       (vector unsigned long long)__a);
13523 }
13524 
vec_any_lt(vector bool long long __a,vector bool long long __b)13525 static int __ATTRS_o_ai vec_any_lt(vector bool long long __a,
13526                                    vector bool long long __b) {
13527   return __builtin_altivec_vcmpgtud_p(__CR6_EQ_REV,
13528                                       (vector unsigned long long)__b,
13529                                       (vector unsigned long long)__a);
13530 }
13531 #endif
13532 
vec_any_lt(vector float __a,vector float __b)13533 static int __ATTRS_o_ai vec_any_lt(vector float __a, vector float __b) {
13534 #ifdef __VSX__
13535   return __builtin_vsx_xvcmpgtsp_p(__CR6_EQ_REV, __b, __a);
13536 #else
13537   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __b, __a);
13538 #endif
13539 }
13540 
13541 #ifdef __VSX__
vec_any_lt(vector double __a,vector double __b)13542 static int __ATTRS_o_ai vec_any_lt(vector double __a, vector double __b) {
13543   return __builtin_vsx_xvcmpgtdp_p(__CR6_EQ_REV, __b, __a);
13544 }
13545 #endif
13546 
13547 /* vec_any_nan */
13548 
vec_any_nan(vector float __a)13549 static int __attribute__((__always_inline__)) vec_any_nan(vector float __a) {
13550   return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __a);
13551 }
13552 
13553 /* vec_any_ne */
13554 
vec_any_ne(vector signed char __a,vector signed char __b)13555 static int __ATTRS_o_ai vec_any_ne(vector signed char __a,
13556                                    vector signed char __b) {
13557   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13558                                       (vector char)__b);
13559 }
13560 
vec_any_ne(vector signed char __a,vector bool char __b)13561 static int __ATTRS_o_ai vec_any_ne(vector signed char __a,
13562                                    vector bool char __b) {
13563   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13564                                       (vector char)__b);
13565 }
13566 
vec_any_ne(vector unsigned char __a,vector unsigned char __b)13567 static int __ATTRS_o_ai vec_any_ne(vector unsigned char __a,
13568                                    vector unsigned char __b) {
13569   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13570                                       (vector char)__b);
13571 }
13572 
vec_any_ne(vector unsigned char __a,vector bool char __b)13573 static int __ATTRS_o_ai vec_any_ne(vector unsigned char __a,
13574                                    vector bool char __b) {
13575   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13576                                       (vector char)__b);
13577 }
13578 
vec_any_ne(vector bool char __a,vector signed char __b)13579 static int __ATTRS_o_ai vec_any_ne(vector bool char __a,
13580                                    vector signed char __b) {
13581   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13582                                       (vector char)__b);
13583 }
13584 
vec_any_ne(vector bool char __a,vector unsigned char __b)13585 static int __ATTRS_o_ai vec_any_ne(vector bool char __a,
13586                                    vector unsigned char __b) {
13587   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13588                                       (vector char)__b);
13589 }
13590 
vec_any_ne(vector bool char __a,vector bool char __b)13591 static int __ATTRS_o_ai vec_any_ne(vector bool char __a, vector bool char __b) {
13592   return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a,
13593                                       (vector char)__b);
13594 }
13595 
vec_any_ne(vector short __a,vector short __b)13596 static int __ATTRS_o_ai vec_any_ne(vector short __a, vector short __b) {
13597   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, __b);
13598 }
13599 
vec_any_ne(vector short __a,vector bool short __b)13600 static int __ATTRS_o_ai vec_any_ne(vector short __a, vector bool short __b) {
13601   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, (vector short)__b);
13602 }
13603 
vec_any_ne(vector unsigned short __a,vector unsigned short __b)13604 static int __ATTRS_o_ai vec_any_ne(vector unsigned short __a,
13605                                    vector unsigned short __b) {
13606   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
13607                                       (vector short)__b);
13608 }
13609 
vec_any_ne(vector unsigned short __a,vector bool short __b)13610 static int __ATTRS_o_ai vec_any_ne(vector unsigned short __a,
13611                                    vector bool short __b) {
13612   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
13613                                       (vector short)__b);
13614 }
13615 
vec_any_ne(vector bool short __a,vector short __b)13616 static int __ATTRS_o_ai vec_any_ne(vector bool short __a, vector short __b) {
13617   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
13618                                       (vector short)__b);
13619 }
13620 
vec_any_ne(vector bool short __a,vector unsigned short __b)13621 static int __ATTRS_o_ai vec_any_ne(vector bool short __a,
13622                                    vector unsigned short __b) {
13623   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
13624                                       (vector short)__b);
13625 }
13626 
vec_any_ne(vector bool short __a,vector bool short __b)13627 static int __ATTRS_o_ai vec_any_ne(vector bool short __a,
13628                                    vector bool short __b) {
13629   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
13630                                       (vector short)__b);
13631 }
13632 
vec_any_ne(vector pixel __a,vector pixel __b)13633 static int __ATTRS_o_ai vec_any_ne(vector pixel __a, vector pixel __b) {
13634   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)__a,
13635                                       (vector short)__b);
13636 }
13637 
vec_any_ne(vector int __a,vector int __b)13638 static int __ATTRS_o_ai vec_any_ne(vector int __a, vector int __b) {
13639   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, __b);
13640 }
13641 
vec_any_ne(vector int __a,vector bool int __b)13642 static int __ATTRS_o_ai vec_any_ne(vector int __a, vector bool int __b) {
13643   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, (vector int)__b);
13644 }
13645 
vec_any_ne(vector unsigned int __a,vector unsigned int __b)13646 static int __ATTRS_o_ai vec_any_ne(vector unsigned int __a,
13647                                    vector unsigned int __b) {
13648   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
13649                                       (vector int)__b);
13650 }
13651 
vec_any_ne(vector unsigned int __a,vector bool int __b)13652 static int __ATTRS_o_ai vec_any_ne(vector unsigned int __a,
13653                                    vector bool int __b) {
13654   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
13655                                       (vector int)__b);
13656 }
13657 
vec_any_ne(vector bool int __a,vector int __b)13658 static int __ATTRS_o_ai vec_any_ne(vector bool int __a, vector int __b) {
13659   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
13660                                       (vector int)__b);
13661 }
13662 
vec_any_ne(vector bool int __a,vector unsigned int __b)13663 static int __ATTRS_o_ai vec_any_ne(vector bool int __a,
13664                                    vector unsigned int __b) {
13665   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
13666                                       (vector int)__b);
13667 }
13668 
vec_any_ne(vector bool int __a,vector bool int __b)13669 static int __ATTRS_o_ai vec_any_ne(vector bool int __a, vector bool int __b) {
13670   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a,
13671                                       (vector int)__b);
13672 }
13673 
13674 #ifdef __POWER8_VECTOR__
vec_any_ne(vector signed long long __a,vector signed long long __b)13675 static int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
13676                                    vector signed long long __b) {
13677   return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a, __b);
13678 }
13679 
vec_any_ne(vector unsigned long long __a,vector unsigned long long __b)13680 static int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
13681                                    vector unsigned long long __b) {
13682   return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, (vector long long)__a,
13683                                       (vector long long)__b);
13684 }
13685 
vec_any_ne(vector signed long long __a,vector bool long long __b)13686 static int __ATTRS_o_ai vec_any_ne(vector signed long long __a,
13687                                    vector bool long long __b) {
13688   return __builtin_altivec_vcmpequd_p(__CR6_LT_REV, __a,
13689                                       (vector signed long long)__b);
13690 }
13691 
vec_any_ne(vector unsigned long long __a,vector bool long long __b)13692 static int __ATTRS_o_ai vec_any_ne(vector unsigned long long __a,
13693                                    vector bool long long __b) {
13694   return __builtin_altivec_vcmpequd_p(
13695       __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
13696 }
13697 
vec_any_ne(vector bool long long __a,vector signed long long __b)13698 static int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
13699                                    vector signed long long __b) {
13700   return __builtin_altivec_vcmpequd_p(
13701       __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
13702 }
13703 
vec_any_ne(vector bool long long __a,vector unsigned long long __b)13704 static int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
13705                                    vector unsigned long long __b) {
13706   return __builtin_altivec_vcmpequd_p(
13707       __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
13708 }
13709 
vec_any_ne(vector bool long long __a,vector bool long long __b)13710 static int __ATTRS_o_ai vec_any_ne(vector bool long long __a,
13711                                    vector bool long long __b) {
13712   return __builtin_altivec_vcmpequd_p(
13713       __CR6_LT_REV, (vector signed long long)__a, (vector signed long long)__b);
13714 }
13715 #endif
13716 
vec_any_ne(vector float __a,vector float __b)13717 static int __ATTRS_o_ai vec_any_ne(vector float __a, vector float __b) {
13718 #ifdef __VSX__
13719   return __builtin_vsx_xvcmpeqsp_p(__CR6_LT_REV, __a, __b);
13720 #else
13721   return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __b);
13722 #endif
13723 }
13724 
13725 #ifdef __VSX__
vec_any_ne(vector double __a,vector double __b)13726 static int __ATTRS_o_ai vec_any_ne(vector double __a, vector double __b) {
13727   return __builtin_vsx_xvcmpeqdp_p(__CR6_LT_REV, __a, __b);
13728 }
13729 #endif
13730 
13731 /* vec_any_nge */
13732 
13733 static int __attribute__((__always_inline__))
vec_any_nge(vector float __a,vector float __b)13734 vec_any_nge(vector float __a, vector float __b) {
13735   return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __a, __b);
13736 }
13737 
13738 /* vec_any_ngt */
13739 
13740 static int __attribute__((__always_inline__))
vec_any_ngt(vector float __a,vector float __b)13741 vec_any_ngt(vector float __a, vector float __b) {
13742   return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __a, __b);
13743 }
13744 
13745 /* vec_any_nle */
13746 
13747 static int __attribute__((__always_inline__))
vec_any_nle(vector float __a,vector float __b)13748 vec_any_nle(vector float __a, vector float __b) {
13749   return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __b, __a);
13750 }
13751 
13752 /* vec_any_nlt */
13753 
13754 static int __attribute__((__always_inline__))
vec_any_nlt(vector float __a,vector float __b)13755 vec_any_nlt(vector float __a, vector float __b) {
13756   return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __b, __a);
13757 }
13758 
13759 /* vec_any_numeric */
13760 
13761 static int __attribute__((__always_inline__))
vec_any_numeric(vector float __a)13762 vec_any_numeric(vector float __a) {
13763   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __a);
13764 }
13765 
13766 /* vec_any_out */
13767 
13768 static int __attribute__((__always_inline__))
vec_any_out(vector float __a,vector float __b)13769 vec_any_out(vector float __a, vector float __b) {
13770   return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, __a, __b);
13771 }
13772 
13773 /* Power 8 Crypto functions
13774 Note: We diverge from the current GCC implementation with regard
13775 to cryptography and related functions as follows:
13776 - Only the SHA and AES instructions and builtins are disabled by -mno-crypto
13777 - The remaining ones are only available on Power8 and up so
13778   require -mpower8-vector
13779 The justification for this is that export requirements require that
13780 Category:Vector.Crypto is optional (i.e. compliant hardware may not provide
13781 support). As a result, we need to be able to turn off support for those.
13782 The remaining ones (currently controlled by -mcrypto for GCC) still
13783 need to be provided on compliant hardware even if Vector.Crypto is not
13784 provided.
13785 */
13786 #ifdef __CRYPTO__
13787 #define vec_sbox_be __builtin_altivec_crypto_vsbox
13788 #define vec_cipher_be __builtin_altivec_crypto_vcipher
13789 #define vec_cipherlast_be __builtin_altivec_crypto_vcipherlast
13790 #define vec_ncipher_be __builtin_altivec_crypto_vncipher
13791 #define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
13792 
13793 static vector unsigned long long __attribute__((__always_inline__))
__builtin_crypto_vsbox(vector unsigned long long __a)13794 __builtin_crypto_vsbox(vector unsigned long long __a) {
13795   return __builtin_altivec_crypto_vsbox(__a);
13796 }
13797 
13798 static vector unsigned long long __attribute__((__always_inline__))
__builtin_crypto_vcipher(vector unsigned long long __a,vector unsigned long long __b)13799 __builtin_crypto_vcipher(vector unsigned long long __a,
13800                          vector unsigned long long __b) {
13801   return __builtin_altivec_crypto_vcipher(__a, __b);
13802 }
13803 
13804 static vector unsigned long long __attribute__((__always_inline__))
__builtin_crypto_vcipherlast(vector unsigned long long __a,vector unsigned long long __b)13805 __builtin_crypto_vcipherlast(vector unsigned long long __a,
13806                              vector unsigned long long __b) {
13807   return __builtin_altivec_crypto_vcipherlast(__a, __b);
13808 }
13809 
13810 static vector unsigned long long __attribute__((__always_inline__))
__builtin_crypto_vncipher(vector unsigned long long __a,vector unsigned long long __b)13811 __builtin_crypto_vncipher(vector unsigned long long __a,
13812                           vector unsigned long long __b) {
13813   return __builtin_altivec_crypto_vncipher(__a, __b);
13814 }
13815 
13816 static vector unsigned long long __attribute__((__always_inline__))
__builtin_crypto_vncipherlast(vector unsigned long long __a,vector unsigned long long __b)13817 __builtin_crypto_vncipherlast(vector unsigned long long __a,
13818                               vector unsigned long long __b) {
13819   return __builtin_altivec_crypto_vncipherlast(__a, __b);
13820 }
13821 
13822 #define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
13823 #define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
13824 
13825 #define vec_shasigma_be(X, Y, Z) \
13826   _Generic((X), vector unsigned int: __builtin_crypto_vshasigmaw, \
13827                 vector unsigned long long: __builtin_crypto_vshasigmad) \
13828 ((X), (Y), (Z))
13829 #endif
13830 
13831 #ifdef __POWER8_VECTOR__
13832 static vector unsigned char __ATTRS_o_ai
__builtin_crypto_vpermxor(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)13833 __builtin_crypto_vpermxor(vector unsigned char __a, vector unsigned char __b,
13834                           vector unsigned char __c) {
13835   return __builtin_altivec_crypto_vpermxor(__a, __b, __c);
13836 }
13837 
13838 static vector unsigned short __ATTRS_o_ai
__builtin_crypto_vpermxor(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)13839 __builtin_crypto_vpermxor(vector unsigned short __a, vector unsigned short __b,
13840                           vector unsigned short __c) {
13841   return (vector unsigned short)__builtin_altivec_crypto_vpermxor(
13842       (vector unsigned char)__a, (vector unsigned char)__b,
13843       (vector unsigned char)__c);
13844 }
13845 
__builtin_crypto_vpermxor(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)13846 static vector unsigned int __ATTRS_o_ai __builtin_crypto_vpermxor(
13847     vector unsigned int __a, vector unsigned int __b, vector unsigned int __c) {
13848   return (vector unsigned int)__builtin_altivec_crypto_vpermxor(
13849       (vector unsigned char)__a, (vector unsigned char)__b,
13850       (vector unsigned char)__c);
13851 }
13852 
__builtin_crypto_vpermxor(vector unsigned long long __a,vector unsigned long long __b,vector unsigned long long __c)13853 static vector unsigned long long __ATTRS_o_ai __builtin_crypto_vpermxor(
13854     vector unsigned long long __a, vector unsigned long long __b,
13855     vector unsigned long long __c) {
13856   return (vector unsigned long long)__builtin_altivec_crypto_vpermxor(
13857       (vector unsigned char)__a, (vector unsigned char)__b,
13858       (vector unsigned char)__c);
13859 }
13860 
13861 static vector unsigned char __ATTRS_o_ai
__builtin_crypto_vpmsumb(vector unsigned char __a,vector unsigned char __b)13862 __builtin_crypto_vpmsumb(vector unsigned char __a, vector unsigned char __b) {
13863   return __builtin_altivec_crypto_vpmsumb(__a, __b);
13864 }
13865 
13866 static vector unsigned short __ATTRS_o_ai
__builtin_crypto_vpmsumb(vector unsigned short __a,vector unsigned short __b)13867 __builtin_crypto_vpmsumb(vector unsigned short __a, vector unsigned short __b) {
13868   return __builtin_altivec_crypto_vpmsumh(__a, __b);
13869 }
13870 
13871 static vector unsigned int __ATTRS_o_ai
__builtin_crypto_vpmsumb(vector unsigned int __a,vector unsigned int __b)13872 __builtin_crypto_vpmsumb(vector unsigned int __a, vector unsigned int __b) {
13873   return __builtin_altivec_crypto_vpmsumw(__a, __b);
13874 }
13875 
13876 static vector unsigned long long __ATTRS_o_ai
__builtin_crypto_vpmsumb(vector unsigned long long __a,vector unsigned long long __b)13877 __builtin_crypto_vpmsumb(vector unsigned long long __a,
13878                          vector unsigned long long __b) {
13879   return __builtin_altivec_crypto_vpmsumd(__a, __b);
13880 }
13881 
vec_vgbbd(vector signed char __a)13882 static vector signed char __ATTRS_o_ai vec_vgbbd (vector signed char __a)
13883 {
13884   return __builtin_altivec_vgbbd((vector unsigned char) __a);
13885 }
13886 
13887 #define vec_pmsum_be __builtin_crypto_vpmsumb
13888 #define vec_gb __builtin_altivec_vgbbd
13889 
vec_vgbbd(vector unsigned char __a)13890 static vector unsigned char __ATTRS_o_ai vec_vgbbd (vector unsigned char __a)
13891 {
13892   return __builtin_altivec_vgbbd(__a);
13893 }
13894 
13895 static vector long long __ATTRS_o_ai
vec_vbpermq(vector signed char __a,vector signed char __b)13896 vec_vbpermq (vector signed char __a, vector signed char __b)
13897 {
13898   return __builtin_altivec_vbpermq((vector unsigned char) __a,
13899                                    (vector unsigned char) __b);
13900 }
13901 
13902 static vector long long __ATTRS_o_ai
vec_vbpermq(vector unsigned char __a,vector unsigned char __b)13903 vec_vbpermq (vector unsigned char __a, vector unsigned char __b)
13904 {
13905   return __builtin_altivec_vbpermq(__a, __b);
13906 }
13907 
13908 #ifdef __powerpc64__
13909 static vector unsigned long long __attribute__((__always_inline__))
vec_bperm(vector unsigned __int128 __a,vector unsigned char __b)13910 vec_bperm (vector unsigned __int128 __a, vector unsigned char __b) {
13911   return __builtin_altivec_vbpermq((vector unsigned char) __a,
13912                                    (vector unsigned char) __b);
13913 }
13914 #endif
13915 #endif
13916 
13917 #undef __ATTRS_o_ai
13918 
13919 #endif /* __ALTIVEC_H */
13920