13 #error "AltiVec support not enabled"
19 #define __CR6_EQ_REV 1
21 #define __CR6_LT_REV 3
24 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0)
25 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 1)
26 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
27 __VEC_CLASS_FP_SUBNORMAL_N)
28 #define __VEC_CLASS_FP_ZERO_N (1<<2)
29 #define __VEC_CLASS_FP_ZERO_P (1<<3)
30 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | \
31 __VEC_CLASS_FP_ZERO_N)
32 #define __VEC_CLASS_FP_INFINITY_N (1<<4)
33 #define __VEC_CLASS_FP_INFINITY_P (1<<5)
34 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
35 __VEC_CLASS_FP_INFINITY_N)
36 #define __VEC_CLASS_FP_NAN (1<<6)
37 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
38 __VEC_CLASS_FP_SUBNORMAL | \
39 __VEC_CLASS_FP_ZERO | \
40 __VEC_CLASS_FP_INFINITY)
42 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
44 #ifdef __POWER9_VECTOR__
49 vector
signed char __a, vector
signed char __b, vector
unsigned char __c);
53 vector
unsigned char __c);
59 vector
signed short __b,
60 vector
unsigned char __c);
64 vector
unsigned char __c);
67 vector
bool short __a, vector
bool short __b, vector
unsigned char __c);
71 vector
unsigned char __c);
74 vector
signed int __b,
75 vector
unsigned char __c);
78 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned char __c);
85 vector
unsigned char __c);
90 vector
unsigned char __c);
93 vec_perm(vector
unsigned long long __a, vector
unsigned long long __b,
94 vector
unsigned char __c);
98 vector
unsigned char __c);
102 vector
unsigned char __c);
110 #define __builtin_altivec_abs_v16qi vec_abs
111 #define __builtin_altivec_abs_v8hi vec_abs
112 #define __builtin_altivec_abs_v4si vec_abs
116 return __builtin_altivec_vmaxsb(
__a, -
__a);
121 return __builtin_altivec_vmaxsh(
__a, -
__a);
126 return __builtin_altivec_vmaxsw(
__a, -
__a);
129 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
132 return __builtin_altivec_vmaxsd(
__a, -
__a);
138 return __builtin_vsx_xvabssp(
__a);
140 vector
unsigned int __res =
141 (vector
unsigned int)
__a & (vector
unsigned int)(0x7FFFFFFF);
142 return (vector
float)__res;
148 return __builtin_vsx_xvabsdp(
__a);
153 #define __builtin_altivec_abss_v16qi vec_abss
154 #define __builtin_altivec_abss_v8hi vec_abss
155 #define __builtin_altivec_abss_v4si vec_abss
159 return __builtin_altivec_vmaxsb(
160 __a, __builtin_altivec_vsubsbs((vector
signed char)(0),
__a));
165 return __builtin_altivec_vmaxsh(
166 __a, __builtin_altivec_vsubshs((vector
signed short)(0),
__a));
171 return __builtin_altivec_vmaxsw(
172 __a, __builtin_altivec_vsubsws((vector
signed int)(0),
__a));
176 #if defined(__POWER9_VECTOR__)
179 vec_absd(vector
unsigned char __a, vector
unsigned char __b) {
180 return __builtin_altivec_vabsdub(
__a,
__b);
184 vec_absd(vector
unsigned short __a, vector
unsigned short __b) {
185 return __builtin_altivec_vabsduh(
__a,
__b);
189 vec_absd(vector
unsigned int __a, vector
unsigned int __b) {
190 return __builtin_altivec_vabsduw(
__a,
__b);
204 return (vector
signed char)
__a +
__b;
209 return __a + (vector
signed char)
__b;
219 return (vector
unsigned char)
__a +
__b;
224 return __a + (vector
unsigned char)
__b;
234 return (vector
short)
__a +
__b;
238 vector
bool short __b) {
239 return __a + (vector short)
__b;
249 return (vector
unsigned short)
__a +
__b;
254 return __a + (vector
unsigned short)
__b;
264 return (vector
int)
__a +
__b;
268 vector
bool int __b) {
279 return (vector
unsigned int)
__a +
__b;
287 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
289 vec_add(vector
signed long long __a, vector
signed long long __b) {
293 static __inline__ vector
unsigned long long __ATTRS_o_ai
294 vec_add(vector
unsigned long long __a, vector
unsigned long long __b) {
299 vec_add(vector
signed __int128
__a, vector
signed __int128
__b) {
304 vec_add(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
323 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
326 vector
signed __int128
__c) {
327 return __builtin_altivec_vaddeuqm(
__a,
__b,
__c);
331 vec_adde(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
332 vector
unsigned __int128
__c) {
333 return __builtin_altivec_vaddeuqm(
__a,
__b,
__c);
339 vector
signed int __c) {
340 vector
signed int __mask = {1, 1, 1, 1};
341 vector
signed int __carry =
__c & __mask;
347 vector
unsigned int __c) {
348 vector
unsigned int __mask = {1, 1, 1, 1};
349 vector
unsigned int __carry =
__c & __mask;
355 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
357 vec_addec(vector
signed __int128
__a, vector
signed __int128
__b,
358 vector
signed __int128
__c) {
359 return __builtin_altivec_vaddecuq(
__a,
__b,
__c);
363 vec_addec(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
364 vector
unsigned __int128
__c) {
365 return __builtin_altivec_vaddecuq(
__a,
__b,
__c);
369 vec_addec(vector
signed int __a, vector
signed int __b,
370 vector
signed int __c) {
372 signed int __result[4];
373 for (
int i = 0; i < 4; i++) {
374 unsigned int __tempa = (
unsigned int)
__a[i];
375 unsigned int __tempb = (
unsigned int)
__b[i];
376 unsigned int __tempc = (
unsigned int)
__c[i];
377 __tempc = __tempc & 0x00000001;
378 unsigned long long __longa = (
unsigned long long) __tempa;
379 unsigned long long __longb = (
unsigned long long) __tempb;
380 unsigned long long __longc = (
unsigned long long) __tempc;
381 unsigned long long __sum = __longa + __longb + __longc;
382 unsigned long long __res = (__sum >> 32) & 0x01;
383 unsigned long long __tempres = (
unsigned int) __res;
384 __result[i] = (
signed int) __tempres;
387 vector
signed int ret = { __result[0], __result[1], __result[2], __result[3] };
392 vec_addec(vector
unsigned int __a, vector
unsigned int __b,
393 vector
unsigned int __c) {
395 unsigned int __result[4];
396 for (
int i = 0; i < 4; i++) {
397 unsigned int __tempc =
__c[i] & 1;
398 unsigned long long __longa = (
unsigned long long)
__a[i];
399 unsigned long long __longb = (
unsigned long long)
__b[i];
400 unsigned long long __longc = (
unsigned long long) __tempc;
401 unsigned long long __sum = __longa + __longb + __longc;
402 unsigned long long __res = (__sum >> 32) & 0x01;
403 unsigned long long __tempres = (
unsigned int) __res;
404 __result[i] = (
signed int) __tempres;
407 vector
unsigned int ret = { __result[0], __result[1], __result[2], __result[3] };
415 #define __builtin_altivec_vaddubm vec_vaddubm
424 return (vector
signed char)
__a +
__b;
429 return __a + (vector
signed char)
__b;
439 return (vector
unsigned char)
__a +
__b;
444 return __a + (vector
unsigned char)
__b;
449 #define __builtin_altivec_vadduhm vec_vadduhm
458 return (vector
short)
__a +
__b;
462 vector
bool short __b) {
463 return __a + (vector short)
__b;
473 return (vector
unsigned short)
__a +
__b;
478 return __a + (vector
unsigned short)
__b;
483 #define __builtin_altivec_vadduwm vec_vadduwm
492 return (vector
int)
__a +
__b;
496 vector
bool int __b) {
507 return (vector
unsigned int)
__a +
__b;
517 #define __builtin_altivec_vaddfp vec_vaddfp
519 static __inline__ vector
float __attribute__((__always_inline__))
520 vec_vaddfp(vector
float __a, vector
float __b) {
528 return (vector
signed int)__builtin_altivec_vaddcuw((vector
unsigned int)
__a,
529 (vector
unsigned int)
__b);
534 return __builtin_altivec_vaddcuw(
__a,
__b);
537 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
539 vec_addc(vector
signed __int128
__a, vector
signed __int128
__b) {
540 return (vector
signed __int128)__builtin_altivec_vaddcuq(
541 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
545 vec_addc(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
546 return __builtin_altivec_vaddcuq(
__a,
__b);
552 static __inline__ vector
unsigned int __attribute__((__always_inline__))
553 vec_vaddcuw(vector
unsigned int __a, vector
unsigned int __b) {
554 return __builtin_altivec_vaddcuw(
__a,
__b);
561 return __builtin_altivec_vaddsbs(
__a,
__b);
566 return __builtin_altivec_vaddsbs((vector
signed char)
__a,
__b);
571 return __builtin_altivec_vaddsbs(
__a, (vector
signed char)
__b);
576 return __builtin_altivec_vaddubs(
__a,
__b);
581 return __builtin_altivec_vaddubs((vector
unsigned char)
__a,
__b);
586 return __builtin_altivec_vaddubs(
__a, (vector
unsigned char)
__b);
591 return __builtin_altivec_vaddshs(
__a,
__b);
596 return __builtin_altivec_vaddshs((vector
short)
__a,
__b);
600 vector
bool short __b) {
601 return __builtin_altivec_vaddshs(
__a, (vector
short)
__b);
606 return __builtin_altivec_vadduhs(
__a,
__b);
611 return __builtin_altivec_vadduhs((vector
unsigned short)
__a,
__b);
616 return __builtin_altivec_vadduhs(
__a, (vector
unsigned short)
__b);
621 return __builtin_altivec_vaddsws(
__a,
__b);
626 return __builtin_altivec_vaddsws((vector
int)
__a,
__b);
630 vector
bool int __b) {
631 return __builtin_altivec_vaddsws(
__a, (vector
int)
__b);
636 return __builtin_altivec_vadduws(
__a,
__b);
641 return __builtin_altivec_vadduws((vector
unsigned int)
__a,
__b);
646 return __builtin_altivec_vadduws(
__a, (vector
unsigned int)
__b);
653 return __builtin_altivec_vaddsbs(
__a,
__b);
658 return __builtin_altivec_vaddsbs((vector
signed char)
__a,
__b);
663 return __builtin_altivec_vaddsbs(
__a, (vector
signed char)
__b);
670 return __builtin_altivec_vaddubs(
__a,
__b);
675 return __builtin_altivec_vaddubs((vector
unsigned char)
__a,
__b);
680 return __builtin_altivec_vaddubs(
__a, (vector
unsigned char)
__b);
687 return __builtin_altivec_vaddshs(
__a,
__b);
692 return __builtin_altivec_vaddshs((vector
short)
__a,
__b);
696 vector
bool short __b) {
697 return __builtin_altivec_vaddshs(
__a, (vector
short)
__b);
704 return __builtin_altivec_vadduhs(
__a,
__b);
709 return __builtin_altivec_vadduhs((vector
unsigned short)
__a,
__b);
714 return __builtin_altivec_vadduhs(
__a, (vector
unsigned short)
__b);
721 return __builtin_altivec_vaddsws(
__a,
__b);
726 return __builtin_altivec_vaddsws((vector
int)
__a,
__b);
730 vector
bool int __b) {
731 return __builtin_altivec_vaddsws(
__a, (vector
int)
__b);
738 return __builtin_altivec_vadduws(
__a,
__b);
743 return __builtin_altivec_vadduws((vector
unsigned int)
__a,
__b);
748 return __builtin_altivec_vadduws(
__a, (vector
unsigned int)
__b);
751 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
755 vec_vadduqm(vector
signed __int128
__a, vector
signed __int128
__b) {
760 vec_vadduqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
767 vec_vaddeuqm(vector
signed __int128
__a, vector
signed __int128
__b,
768 vector
signed __int128
__c) {
769 return __builtin_altivec_vaddeuqm(
__a,
__b,
__c);
773 vec_vaddeuqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
774 vector
unsigned __int128
__c) {
775 return __builtin_altivec_vaddeuqm(
__a,
__b,
__c);
781 vec_vaddcuq(vector
signed __int128
__a, vector
signed __int128
__b) {
782 return __builtin_altivec_vaddcuq(
__a,
__b);
786 vec_vaddcuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
787 return __builtin_altivec_vaddcuq(
__a,
__b);
793 vec_vaddecuq(vector
signed __int128
__a, vector
signed __int128
__b,
794 vector
signed __int128
__c) {
795 return __builtin_altivec_vaddecuq(
__a,
__b,
__c);
799 vec_vaddecuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
800 vector
unsigned __int128
__c) {
801 return __builtin_altivec_vaddecuq(
__a,
__b,
__c);
807 #define __builtin_altivec_vand vec_and
816 return (vector
signed char)
__a &
__b;
821 return __a & (vector
signed char)
__b;
831 return (vector
unsigned char)
__a &
__b;
836 return __a & (vector
unsigned char)
__b;
840 vector
bool char __b) {
851 return (vector
short)
__a &
__b;
855 vector
bool short __b) {
856 return __a & (vector short)
__b;
866 return (vector
unsigned short)
__a &
__b;
871 return __a & (vector
unsigned short)
__b;
886 return (vector
int)
__a &
__b;
890 vector
bool int __b) {
901 return (vector
unsigned int)
__a &
__b;
910 vector
bool int __b) {
916 vector
unsigned int __res =
917 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
918 return (vector
float)__res;
923 vector
unsigned int __res =
924 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
925 return (vector
float)__res;
929 vector
bool int __b) {
930 vector
unsigned int __res =
931 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
932 return (vector
float)__res;
938 vector
unsigned long long __res =
939 (vector
unsigned long long)
__a & (vector
unsigned long long)
__b;
940 return (vector
double)__res;
945 vector
unsigned long long __res =
946 (vector
unsigned long long)
__a & (vector
unsigned long long)
__b;
947 return (vector
double)__res;
952 vector
unsigned long long __res =
953 (vector
unsigned long long)
__a & (vector
unsigned long long)
__b;
954 return (vector
double)__res;
958 vec_and(vector
signed long long __a, vector
signed long long __b) {
963 vec_and(vector
bool long long __a, vector
signed long long __b) {
964 return (vector
signed long long)
__a &
__b;
968 vec_and(vector
signed long long __a, vector
bool long long __b) {
969 return __a & (vector
signed long long)
__b;
972 static __inline__ vector
unsigned long long __ATTRS_o_ai
973 vec_and(vector
unsigned long long __a, vector
unsigned long long __b) {
977 static __inline__ vector
unsigned long long __ATTRS_o_ai
978 vec_and(vector
bool long long __a, vector
unsigned long long __b) {
979 return (vector
unsigned long long)
__a &
__b;
982 static __inline__ vector
unsigned long long __ATTRS_o_ai
983 vec_and(vector
unsigned long long __a, vector
bool long long __b) {
984 return __a & (vector
unsigned long long)
__b;
988 vec_and(vector
bool long long __a, vector
bool long long __b) {
1002 return (vector
signed char)
__a &
__b;
1007 return __a & (vector
signed char)
__b;
1017 return (vector
unsigned char)
__a &
__b;
1022 return __a & (vector
unsigned char)
__b;
1026 vector
bool char __b) {
1037 return (vector
short)
__a &
__b;
1041 vector
bool short __b) {
1042 return __a & (vector short)
__b;
1052 return (vector
unsigned short)
__a &
__b;
1057 return __a & (vector
unsigned short)
__b;
1072 return (vector
int)
__a &
__b;
1076 vector
bool int __b) {
1087 return (vector
unsigned int)
__a &
__b;
1096 vector
bool int __b) {
1102 vector
unsigned int __res =
1103 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1104 return (vector
float)__res;
1109 vector
unsigned int __res =
1110 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1111 return (vector
float)__res;
1115 vector
bool int __b) {
1116 vector
unsigned int __res =
1117 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1118 return (vector
float)__res;
1123 vec_vand(vector
signed long long __a, vector
signed long long __b) {
1128 vec_vand(vector
bool long long __a, vector
signed long long __b) {
1129 return (vector
signed long long)
__a &
__b;
1133 vec_vand(vector
signed long long __a, vector
bool long long __b) {
1134 return __a & (vector
signed long long)
__b;
1137 static __inline__ vector
unsigned long long __ATTRS_o_ai
1138 vec_vand(vector
unsigned long long __a, vector
unsigned long long __b) {
1142 static __inline__ vector
unsigned long long __ATTRS_o_ai
1143 vec_vand(vector
bool long long __a, vector
unsigned long long __b) {
1144 return (vector
unsigned long long)
__a &
__b;
1147 static __inline__ vector
unsigned long long __ATTRS_o_ai
1148 vec_vand(vector
unsigned long long __a, vector
bool long long __b) {
1149 return __a & (vector
unsigned long long)
__b;
1160 #define __builtin_altivec_vandc vec_andc
1169 return (vector
signed char)
__a & ~
__b;
1174 return __a & ~(vector
signed char)
__b;
1184 return (vector
unsigned char)
__a & ~
__b;
1189 return __a & ~(vector
unsigned char)
__b;
1193 vector
bool char __b) {
1204 return (vector
short)
__a & ~
__b;
1208 vector
bool short __b) {
1209 return __a & ~(vector short)
__b;
1219 return (vector
unsigned short)
__a & ~
__b;
1224 return __a & ~(vector
unsigned short)
__b;
1239 return (vector
int)
__a & ~
__b;
1243 vector
bool int __b) {
1254 return (vector
unsigned int)
__a & ~
__b;
1263 vector
bool int __b) {
1269 vector
unsigned int __res =
1270 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1271 return (vector
float)__res;
1276 vector
unsigned int __res =
1277 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1278 return (vector
float)__res;
1282 vector
bool int __b) {
1283 vector
unsigned int __res =
1284 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1285 return (vector
float)__res;
1290 vector
double __b) {
1291 vector
unsigned long long __res =
1292 (vector
unsigned long long)
__a & ~(vector
unsigned long long)
__b;
1293 return (vector
double)__res;
1298 vector
unsigned long long __res =
1299 (vector
unsigned long long)
__a & ~(vector
unsigned long long)
__b;
1300 return (vector
double)__res;
1304 vector
double __b) {
1305 vector
unsigned long long __res =
1306 (vector
unsigned long long)
__a & ~(vector
unsigned long long)
__b;
1307 return (vector
double)__res;
1311 vec_andc(vector
signed long long __a, vector
signed long long __b) {
1316 vec_andc(vector
bool long long __a, vector
signed long long __b) {
1317 return (vector
signed long long)
__a & ~
__b;
1321 vec_andc(vector
signed long long __a, vector
bool long long __b) {
1322 return __a & ~(vector
signed long long)
__b;
1325 static __inline__ vector
unsigned long long __ATTRS_o_ai
1326 vec_andc(vector
unsigned long long __a, vector
unsigned long long __b) {
1330 static __inline__ vector
unsigned long long __ATTRS_o_ai
1331 vec_andc(vector
bool long long __a, vector
unsigned long long __b) {
1332 return (vector
unsigned long long)
__a & ~
__b;
1335 static __inline__ vector
unsigned long long __ATTRS_o_ai
1336 vec_andc(vector
unsigned long long __a, vector
bool long long __b) {
1337 return __a & ~(vector
unsigned long long)
__b;
1355 return (vector
signed char)
__a & ~
__b;
1360 return __a & ~(vector
signed char)
__b;
1370 return (vector
unsigned char)
__a & ~
__b;
1375 return __a & ~(vector
unsigned char)
__b;
1390 return (vector
short)
__a & ~
__b;
1394 vector
bool short __b) {
1395 return __a & ~(vector short)
__b;
1405 return (vector
unsigned short)
__a & ~
__b;
1410 return __a & ~(vector
unsigned short)
__b;
1425 return (vector
int)
__a & ~
__b;
1429 vector
bool int __b) {
1440 return (vector
unsigned int)
__a & ~
__b;
1449 vector
bool int __b) {
1455 vector
unsigned int __res =
1456 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1457 return (vector
float)__res;
1462 vector
unsigned int __res =
1463 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1464 return (vector
float)__res;
1468 vector
bool int __b) {
1469 vector
unsigned int __res =
1470 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1471 return (vector
float)__res;
1482 return (vector
signed long long)
__a & ~
__b;
1487 return __a & ~(vector
signed long long)
__b;
1490 static __inline__ vector
unsigned long long __ATTRS_o_ai
1491 vec_vandc(vector
unsigned long long __a, vector
unsigned long long __b) {
1495 static __inline__ vector
unsigned long long __ATTRS_o_ai
1497 return (vector
unsigned long long)
__a & ~
__b;
1500 static __inline__ vector
unsigned long long __ATTRS_o_ai
1502 return __a & ~(vector
unsigned long long)
__b;
1515 return __builtin_altivec_vavgsb(
__a,
__b);
1520 return __builtin_altivec_vavgub(
__a,
__b);
1525 return __builtin_altivec_vavgsh(
__a,
__b);
1530 return __builtin_altivec_vavguh(
__a,
__b);
1535 return __builtin_altivec_vavgsw(
__a,
__b);
1540 return __builtin_altivec_vavguw(
__a,
__b);
1545 static __inline__ vector
signed char __attribute__((__always_inline__))
1546 vec_vavgsb(vector
signed char __a, vector
signed char __b) {
1547 return __builtin_altivec_vavgsb(
__a,
__b);
1552 static __inline__ vector
unsigned char __attribute__((__always_inline__))
1553 vec_vavgub(vector
unsigned char __a, vector
unsigned char __b) {
1554 return __builtin_altivec_vavgub(
__a,
__b);
1559 static __inline__ vector
short __attribute__((__always_inline__))
1560 vec_vavgsh(vector
short __a, vector
short __b) {
1561 return __builtin_altivec_vavgsh(
__a,
__b);
1566 static __inline__ vector
unsigned short __attribute__((__always_inline__))
1567 vec_vavguh(vector
unsigned short __a, vector
unsigned short __b) {
1568 return __builtin_altivec_vavguh(
__a,
__b);
1573 static __inline__ vector
int __attribute__((__always_inline__))
1574 vec_vavgsw(vector
int __a, vector
int __b) {
1575 return __builtin_altivec_vavgsw(
__a,
__b);
1580 static __inline__ vector
unsigned int __attribute__((__always_inline__))
1581 vec_vavguw(vector
unsigned int __a, vector
unsigned int __b) {
1582 return __builtin_altivec_vavguw(
__a,
__b);
1589 return __builtin_vsx_xvrspip(
__a);
1591 return __builtin_altivec_vrfip(
__a);
1597 return __builtin_vsx_xvrdpip(
__a);
1604 vec_vrfip(vector
float __a) {
1605 return __builtin_altivec_vrfip(
__a);
1610 static __inline__ vector
int __attribute__((__always_inline__))
1611 vec_cmpb(vector
float __a, vector
float __b) {
1612 return __builtin_altivec_vcmpbfp(
__a,
__b);
1617 static __inline__ vector
int __attribute__((__always_inline__))
1618 vec_vcmpbfp(vector
float __a, vector
float __b) {
1619 return __builtin_altivec_vcmpbfp(
__a,
__b);
1626 return (vector
bool char)__builtin_altivec_vcmpequb((vector
char)
__a,
1632 return (vector
bool char)__builtin_altivec_vcmpequb((vector
char)
__a,
1638 return (vector
bool char)__builtin_altivec_vcmpequb((vector
char)
__a,
1644 return (vector
bool short)__builtin_altivec_vcmpequh(
__a,
__b);
1649 return (vector
bool short)__builtin_altivec_vcmpequh((vector
short)
__a,
1655 return (vector
bool short)__builtin_altivec_vcmpequh((vector
short)
__a,
1661 return (vector
bool int)__builtin_altivec_vcmpequw(
__a,
__b);
1666 return (vector
bool int)__builtin_altivec_vcmpequw((vector
int)
__a,
1671 vector
bool int __b) {
1672 return (vector
bool int)__builtin_altivec_vcmpequw((vector
int)
__a,
1676 #ifdef __POWER8_VECTOR__
1679 return (vector
bool long long)__builtin_altivec_vcmpequd(
__a,
__b);
1683 vec_cmpeq(vector
unsigned long long __a, vector
unsigned long long __b) {
1684 return (vector
bool long long)__builtin_altivec_vcmpequd(
1685 (vector
long long)
__a, (vector
long long)
__b);
1690 return (vector
bool long long)__builtin_altivec_vcmpequd(
1691 (vector
long long)
__a, (vector
long long)
__b);
1699 return (vector
bool int)__builtin_vsx_xvcmpeqsp(
__a,
__b);
1701 return (vector
bool int)__builtin_altivec_vcmpeqfp(
__a,
__b);
1708 return (vector
bool long long)__builtin_vsx_xvcmpeqdp(
__a,
__b);
1712 #ifdef __POWER9_VECTOR__
1717 return (vector
bool char)__builtin_altivec_vcmpneb((vector
char)
__a,
1723 return (vector
bool char)__builtin_altivec_vcmpneb((vector
char)
__a,
1729 return (vector
bool char)__builtin_altivec_vcmpneb((vector
char)
__a,
1735 return (vector
bool short)__builtin_altivec_vcmpneh((vector
short)
__a,
1741 return (vector
bool short)__builtin_altivec_vcmpneh((vector
short)
__a,
1747 return (vector
bool short)__builtin_altivec_vcmpneh((vector
short)
__a,
1753 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1759 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1765 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1771 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1778 vec_cmpnez(vector
signed char __a, vector
signed char __b) {
1779 return (vector
bool char)__builtin_altivec_vcmpnezb((vector
char)
__a,
1784 vec_cmpnez(vector
unsigned char __a, vector
unsigned char __b) {
1785 return (vector
bool char)__builtin_altivec_vcmpnezb((vector
char)
__a,
1790 vec_cmpnez(vector
signed short __a, vector
signed short __b) {
1791 return (vector
bool short)__builtin_altivec_vcmpnezh((vector
short)
__a,
1796 vec_cmpnez(vector
unsigned short __a, vector
unsigned short __b) {
1797 return (vector
bool short)__builtin_altivec_vcmpnezh((vector
short)
__a,
1802 vec_cmpnez(vector
signed int __a, vector
signed int __b) {
1803 return (vector
bool int)__builtin_altivec_vcmpnezw((vector
int)
__a,
1808 vec_cmpnez(vector
unsigned int __a, vector
unsigned int __b) {
1809 return (vector
bool int)__builtin_altivec_vcmpnezw((vector
int)
__a,
1814 vec_cntlz_lsbb(vector
signed char __a) {
1815 #ifdef __LITTLE_ENDIAN__
1816 return __builtin_altivec_vctzlsbb(
__a);
1818 return __builtin_altivec_vclzlsbb(
__a);
1823 vec_cntlz_lsbb(vector
unsigned char __a) {
1824 #ifdef __LITTLE_ENDIAN__
1825 return __builtin_altivec_vctzlsbb(
__a);
1827 return __builtin_altivec_vclzlsbb(
__a);
1832 vec_cnttz_lsbb(vector
signed char __a) {
1833 #ifdef __LITTLE_ENDIAN__
1834 return __builtin_altivec_vclzlsbb(
__a);
1836 return __builtin_altivec_vctzlsbb(
__a);
1841 vec_cnttz_lsbb(vector
unsigned char __a) {
1842 #ifdef __LITTLE_ENDIAN__
1843 return __builtin_altivec_vclzlsbb(
__a);
1845 return __builtin_altivec_vctzlsbb(
__a);
1850 vec_parity_lsbb(vector
unsigned int __a) {
1851 return __builtin_altivec_vprtybw(
__a);
1855 vec_parity_lsbb(vector
signed int __a) {
1856 return __builtin_altivec_vprtybw(
__a);
1859 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
1860 vec_parity_lsbb(vector
unsigned __int128
__a) {
1861 return __builtin_altivec_vprtybq(
__a);
1864 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
1865 vec_parity_lsbb(vector
signed __int128
__a) {
1866 return __builtin_altivec_vprtybq(
__a);
1869 static __inline__ vector
unsigned long long __ATTRS_o_ai
1870 vec_parity_lsbb(vector
unsigned long long __a) {
1871 return __builtin_altivec_vprtybd(
__a);
1874 static __inline__ vector
unsigned long long __ATTRS_o_ai
1875 vec_parity_lsbb(vector
signed long long __a) {
1876 return __builtin_altivec_vprtybd(
__a);
1933 #ifdef __POWER8_VECTOR__
1936 return (vector
bool long long)
1937 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
1942 return (vector
bool long long)
1943 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
1947 vec_cmpne(vector
unsigned long long __a, vector
unsigned long long __b) {
1948 return (vector
bool long long)
1949 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
1956 return (vector
bool long long)
1957 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
1965 return (vector
bool char)__builtin_altivec_vcmpgtsb(
__a,
__b);
1970 return (vector
bool char)__builtin_altivec_vcmpgtub(
__a,
__b);
1975 return (vector
bool short)__builtin_altivec_vcmpgtsh(
__a,
__b);
1980 return (vector
bool short)__builtin_altivec_vcmpgtuh(
__a,
__b);
1985 return (vector
bool int)__builtin_altivec_vcmpgtsw(
__a,
__b);
1990 return (vector
bool int)__builtin_altivec_vcmpgtuw(
__a,
__b);
1993 #ifdef __POWER8_VECTOR__
1996 return (vector
bool long long)__builtin_altivec_vcmpgtsd(
__a,
__b);
2000 vec_cmpgt(vector
unsigned long long __a, vector
unsigned long long __b) {
2001 return (vector
bool long long)__builtin_altivec_vcmpgtud(
__a,
__b);
2008 return (vector
bool int)__builtin_vsx_xvcmpgtsp(
__a,
__b);
2010 return (vector
bool int)__builtin_altivec_vcmpgtfp(
__a,
__b);
2017 return (vector
bool long long)__builtin_vsx_xvcmpgtdp(
__a,
__b);
2056 return (vector
bool int)__builtin_vsx_xvcmpgesp(
__a,
__b);
2058 return (vector
bool int)__builtin_altivec_vcmpgefp(
__a,
__b);
2065 return (vector
bool long long)__builtin_vsx_xvcmpgedp(
__a,
__b);
2069 #ifdef __POWER8_VECTOR__
2076 vec_cmpge(vector
unsigned long long __a, vector
unsigned long long __b) {
2083 static __inline__ vector
bool int __attribute__((__always_inline__))
2084 vec_vcmpgefp(vector
float __a, vector
float __b) {
2085 return (vector
bool int)__builtin_altivec_vcmpgefp(
__a,
__b);
2090 static __inline__ vector
bool char __attribute__((__always_inline__))
2091 vec_vcmpgtsb(vector
signed char __a, vector
signed char __b) {
2092 return (vector
bool char)__builtin_altivec_vcmpgtsb(
__a,
__b);
2097 static __inline__ vector
bool char __attribute__((__always_inline__))
2098 vec_vcmpgtub(vector
unsigned char __a, vector
unsigned char __b) {
2099 return (vector
bool char)__builtin_altivec_vcmpgtub(
__a,
__b);
2104 static __inline__ vector
bool short __attribute__((__always_inline__))
2105 vec_vcmpgtsh(vector
short __a, vector
short __b) {
2106 return (vector
bool short)__builtin_altivec_vcmpgtsh(
__a,
__b);
2111 static __inline__ vector
bool short __attribute__((__always_inline__))
2112 vec_vcmpgtuh(vector
unsigned short __a, vector
unsigned short __b) {
2113 return (vector
bool short)__builtin_altivec_vcmpgtuh(
__a,
__b);
2118 static __inline__ vector
bool int __attribute__((__always_inline__))
2119 vec_vcmpgtsw(vector
int __a, vector
int __b) {
2120 return (vector
bool int)__builtin_altivec_vcmpgtsw(
__a,
__b);
2125 static __inline__ vector
bool int __attribute__((__always_inline__))
2126 vec_vcmpgtuw(vector
unsigned int __a, vector
unsigned int __b) {
2127 return (vector
bool int)__builtin_altivec_vcmpgtuw(
__a,
__b);
2132 static __inline__ vector
bool int __attribute__((__always_inline__))
2133 vec_vcmpgtfp(vector
float __a, vector
float __b) {
2134 return (vector
bool int)__builtin_altivec_vcmpgtfp(
__a,
__b);
2181 #ifdef __POWER8_VECTOR__
2188 vec_cmple(vector
unsigned long long __a, vector
unsigned long long __b) {
2237 #ifdef __POWER8_VECTOR__
2244 vec_cmplt(vector
unsigned long long __a, vector
unsigned long long __b) {
2251 vec_popcnt(vector
signed char __a) {
2252 return __builtin_altivec_vpopcntb(
__a);
2255 vec_popcnt(vector
unsigned char __a) {
2256 return __builtin_altivec_vpopcntb(
__a);
2259 vec_popcnt(vector
signed short __a) {
2260 return __builtin_altivec_vpopcnth(
__a);
2263 vec_popcnt(vector
unsigned short __a) {
2264 return __builtin_altivec_vpopcnth(
__a);
2267 vec_popcnt(vector
signed int __a) {
2268 return __builtin_altivec_vpopcntw(
__a);
2271 vec_popcnt(vector
unsigned int __a) {
2272 return __builtin_altivec_vpopcntw(
__a);
2275 vec_popcnt(vector
signed long long __a) {
2276 return __builtin_altivec_vpopcntd(
__a);
2278 static __inline__ vector
unsigned long long __ATTRS_o_ai
2279 vec_popcnt(vector
unsigned long long __a) {
2280 return __builtin_altivec_vpopcntd(
__a);
2286 vec_cntlz(vector
signed char __a) {
2287 return __builtin_altivec_vclzb(
__a);
2290 vec_cntlz(vector
unsigned char __a) {
2291 return __builtin_altivec_vclzb(
__a);
2294 vec_cntlz(vector
signed short __a) {
2295 return __builtin_altivec_vclzh(
__a);
2298 vec_cntlz(vector
unsigned short __a) {
2299 return __builtin_altivec_vclzh(
__a);
2302 vec_cntlz(vector
signed int __a) {
2303 return __builtin_altivec_vclzw(
__a);
2306 vec_cntlz(vector
unsigned int __a) {
2307 return __builtin_altivec_vclzw(
__a);
2310 vec_cntlz(vector
signed long long __a) {
2311 return __builtin_altivec_vclzd(
__a);
2313 static __inline__ vector
unsigned long long __ATTRS_o_ai
2314 vec_cntlz(vector
unsigned long long __a) {
2315 return __builtin_altivec_vclzd(
__a);
2319 #ifdef __POWER9_VECTOR__
2324 vec_cnttz(vector
signed char __a) {
2325 return __builtin_altivec_vctzb(
__a);
2328 vec_cnttz(vector
unsigned char __a) {
2329 return __builtin_altivec_vctzb(
__a);
2332 vec_cnttz(vector
signed short __a) {
2333 return __builtin_altivec_vctzh(
__a);
2336 vec_cnttz(vector
unsigned short __a) {
2337 return __builtin_altivec_vctzh(
__a);
2340 vec_cnttz(vector
signed int __a) {
2341 return __builtin_altivec_vctzw(
__a);
2344 vec_cnttz(vector
unsigned int __a) {
2345 return __builtin_altivec_vctzw(
__a);
2348 vec_cnttz(vector
signed long long __a) {
2349 return __builtin_altivec_vctzd(
__a);
2351 static __inline__ vector
unsigned long long __ATTRS_o_ai
2352 vec_cnttz(vector
unsigned long long __a) {
2353 return __builtin_altivec_vctzd(
__a);
2359 vec_first_match_index(vector
signed char __a, vector
signed char __b) {
2360 vector
unsigned long long __res =
2361 #ifdef __LITTLE_ENDIAN__
2366 if (__res[0] == 64) {
2367 return (__res[1] + 64) >> 3;
2369 return __res[0] >> 3;
2373 vec_first_match_index(vector
unsigned char __a, vector
unsigned char __b) {
2374 vector
unsigned long long __res =
2375 #ifdef __LITTLE_ENDIAN__
2380 if (__res[0] == 64) {
2381 return (__res[1] + 64) >> 3;
2383 return __res[0] >> 3;
2387 vec_first_match_index(vector
signed short __a, vector
signed short __b) {
2388 vector
unsigned long long __res =
2389 #ifdef __LITTLE_ENDIAN__
2394 if (__res[0] == 64) {
2395 return (__res[1] + 64) >> 4;
2397 return __res[0] >> 4;
2401 vec_first_match_index(vector
unsigned short __a, vector
unsigned short __b) {
2402 vector
unsigned long long __res =
2403 #ifdef __LITTLE_ENDIAN__
2408 if (__res[0] == 64) {
2409 return (__res[1] + 64) >> 4;
2411 return __res[0] >> 4;
2415 vec_first_match_index(vector
signed int __a, vector
signed int __b) {
2416 vector
unsigned long long __res =
2417 #ifdef __LITTLE_ENDIAN__
2422 if (__res[0] == 64) {
2423 return (__res[1] + 64) >> 5;
2425 return __res[0] >> 5;
2429 vec_first_match_index(vector
unsigned int __a, vector
unsigned int __b) {
2430 vector
unsigned long long __res =
2431 #ifdef __LITTLE_ENDIAN__
2436 if (__res[0] == 64) {
2437 return (__res[1] + 64) >> 5;
2439 return __res[0] >> 5;
2445 vec_first_match_or_eos_index(vector
signed char __a, vector
signed char __b) {
2451 vector
bool char __tmp2 = __tmp1 |
2455 vector
unsigned long long __res =
2456 #ifdef __LITTLE_ENDIAN__
2457 vec_cnttz((vector
unsigned long long)__tmp2);
2459 vec_cntlz((vector
unsigned long long)__tmp2);
2461 if (__res[0] == 64) {
2462 return (__res[1] + 64) >> 3;
2464 return __res[0] >> 3;
2468 vec_first_match_or_eos_index(vector
unsigned char __a,
2469 vector
unsigned char __b) {
2471 vector
bool char __tmp2 = __tmp1 |
2475 vector
unsigned long long __res =
2476 #ifdef __LITTLE_ENDIAN__
2477 vec_cnttz((vector
unsigned long long)__tmp2);
2479 vec_cntlz((vector
unsigned long long)__tmp2);
2481 if (__res[0] == 64) {
2482 return (__res[1] + 64) >> 3;
2484 return __res[0] >> 3;
2488 vec_first_match_or_eos_index(vector
signed short __a, vector
signed short __b) {
2490 vector
bool short __tmp2 = __tmp1 |
2494 vector
unsigned long long __res =
2495 #ifdef __LITTLE_ENDIAN__
2496 vec_cnttz((vector
unsigned long long)__tmp2);
2498 vec_cntlz((vector
unsigned long long)__tmp2);
2500 if (__res[0] == 64) {
2501 return (__res[1] + 64) >> 4;
2503 return __res[0] >> 4;
2507 vec_first_match_or_eos_index(vector
unsigned short __a,
2508 vector
unsigned short __b) {
2510 vector
bool short __tmp2 = __tmp1 |
2514 vector
unsigned long long __res =
2515 #ifdef __LITTLE_ENDIAN__
2516 vec_cnttz((vector
unsigned long long)__tmp2);
2518 vec_cntlz((vector
unsigned long long)__tmp2);
2520 if (__res[0] == 64) {
2521 return (__res[1] + 64) >> 4;
2523 return __res[0] >> 4;
2527 vec_first_match_or_eos_index(vector
signed int __a, vector
signed int __b) {
2529 vector
bool int __tmp2 = __tmp1 |
vec_cmpeq((vector
signed int)__tmp1,
__a) |
2532 vector
unsigned long long __res =
2533 #ifdef __LITTLE_ENDIAN__
2534 vec_cnttz((vector
unsigned long long)__tmp2);
2536 vec_cntlz((vector
unsigned long long)__tmp2);
2538 if (__res[0] == 64) {
2539 return (__res[1] + 64) >> 5;
2541 return __res[0] >> 5;
2545 vec_first_match_or_eos_index(vector
unsigned int __a, vector
unsigned int __b) {
2547 vector
bool int __tmp2 = __tmp1 |
2551 vector
unsigned long long __res =
2552 #ifdef __LITTLE_ENDIAN__
2553 vec_cnttz((vector
unsigned long long)__tmp2);
2555 vec_cntlz((vector
unsigned long long)__tmp2);
2557 if (__res[0] == 64) {
2558 return (__res[1] + 64) >> 5;
2560 return __res[0] >> 5;
2566 vec_first_mismatch_index(vector
signed char __a, vector
signed char __b) {
2567 vector
unsigned long long __res =
2568 #ifdef __LITTLE_ENDIAN__
2573 if (__res[0] == 64) {
2574 return (__res[1] + 64) >> 3;
2576 return __res[0] >> 3;
2580 vec_first_mismatch_index(vector
unsigned char __a, vector
unsigned char __b) {
2581 vector
unsigned long long __res =
2582 #ifdef __LITTLE_ENDIAN__
2587 if (__res[0] == 64) {
2588 return (__res[1] + 64) >> 3;
2590 return __res[0] >> 3;
2594 vec_first_mismatch_index(vector
signed short __a, vector
signed short __b) {
2595 vector
unsigned long long __res =
2596 #ifdef __LITTLE_ENDIAN__
2601 if (__res[0] == 64) {
2602 return (__res[1] + 64) >> 4;
2604 return __res[0] >> 4;
2608 vec_first_mismatch_index(vector
unsigned short __a, vector
unsigned short __b) {
2609 vector
unsigned long long __res =
2610 #ifdef __LITTLE_ENDIAN__
2615 if (__res[0] == 64) {
2616 return (__res[1] + 64) >> 4;
2618 return __res[0] >> 4;
2622 vec_first_mismatch_index(vector
signed int __a, vector
signed int __b) {
2623 vector
unsigned long long __res =
2624 #ifdef __LITTLE_ENDIAN__
2629 if (__res[0] == 64) {
2630 return (__res[1] + 64) >> 5;
2632 return __res[0] >> 5;
2636 vec_first_mismatch_index(vector
unsigned int __a, vector
unsigned int __b) {
2637 vector
unsigned long long __res =
2638 #ifdef __LITTLE_ENDIAN__
2643 if (__res[0] == 64) {
2644 return (__res[1] + 64) >> 5;
2646 return __res[0] >> 5;
2652 vec_first_mismatch_or_eos_index(vector
signed char __a,
2653 vector
signed char __b) {
2654 vector
unsigned long long __res =
2655 #ifdef __LITTLE_ENDIAN__
2656 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2658 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2660 if (__res[0] == 64) {
2661 return (__res[1] + 64) >> 3;
2663 return __res[0] >> 3;
2667 vec_first_mismatch_or_eos_index(vector
unsigned char __a,
2668 vector
unsigned char __b) {
2669 vector
unsigned long long __res =
2670 #ifdef __LITTLE_ENDIAN__
2671 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2673 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2675 if (__res[0] == 64) {
2676 return (__res[1] + 64) >> 3;
2678 return __res[0] >> 3;
2682 vec_first_mismatch_or_eos_index(vector
signed short __a,
2683 vector
signed short __b) {
2684 vector
unsigned long long __res =
2685 #ifdef __LITTLE_ENDIAN__
2686 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2688 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2690 if (__res[0] == 64) {
2691 return (__res[1] + 64) >> 4;
2693 return __res[0] >> 4;
2697 vec_first_mismatch_or_eos_index(vector
unsigned short __a,
2698 vector
unsigned short __b) {
2699 vector
unsigned long long __res =
2700 #ifdef __LITTLE_ENDIAN__
2701 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2703 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2705 if (__res[0] == 64) {
2706 return (__res[1] + 64) >> 4;
2708 return __res[0] >> 4;
2712 vec_first_mismatch_or_eos_index(vector
signed int __a, vector
signed int __b) {
2713 vector
unsigned long long __res =
2714 #ifdef __LITTLE_ENDIAN__
2715 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2717 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2719 if (__res[0] == 64) {
2720 return (__res[1] + 64) >> 5;
2722 return __res[0] >> 5;
2726 vec_first_mismatch_or_eos_index(vector
unsigned int __a,
2727 vector
unsigned int __b) {
2728 vector
unsigned long long __res =
2729 #ifdef __LITTLE_ENDIAN__
2730 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2732 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2734 if (__res[0] == 64) {
2735 return (__res[1] + 64) >> 5;
2737 return __res[0] >> 5;
2741 vec_insert_exp(vector
double __a, vector
unsigned long long __b) {
2742 return __builtin_vsx_xviexpdp((vector
unsigned long long)
__a,
__b);
2746 vec_insert_exp(vector
unsigned long long __a, vector
unsigned long long __b) {
2747 return __builtin_vsx_xviexpdp(
__a,
__b);
2751 vec_insert_exp(vector
float __a, vector
unsigned int __b) {
2752 return __builtin_vsx_xviexpsp((vector
unsigned int)
__a,
__b);
2756 vec_insert_exp(vector
unsigned int __a, vector
unsigned int __b) {
2757 return __builtin_vsx_xviexpsp(
__a,
__b);
2760 #if defined(__powerpc64__)
2761 static __inline__ vector
signed char __ATTRS_o_ai vec_xl_len(
const signed char *
__a,
2763 return (vector
signed char)__builtin_vsx_lxvl(
__a, (
__b << 56));
2767 vec_xl_len(
const unsigned char *
__a,
size_t __b) {
2768 return (vector
unsigned char)__builtin_vsx_lxvl(
__a, (
__b << 56));
2771 static __inline__ vector
signed short __ATTRS_o_ai vec_xl_len(
const signed short *
__a,
2773 return (vector
signed short)__builtin_vsx_lxvl(
__a, (
__b << 56));
2777 vec_xl_len(
const unsigned short *
__a,
size_t __b) {
2778 return (vector
unsigned short)__builtin_vsx_lxvl(
__a, (
__b << 56));
2781 static __inline__ vector
signed int __ATTRS_o_ai vec_xl_len(
const signed int *
__a,
2783 return (vector
signed int)__builtin_vsx_lxvl(
__a, (
__b << 56));
2786 static __inline__ vector
unsigned int __ATTRS_o_ai vec_xl_len(
const unsigned int *
__a,
2788 return (vector
unsigned int)__builtin_vsx_lxvl(
__a, (
__b << 56));
2791 static __inline__ vector
float __ATTRS_o_ai vec_xl_len(
const float *
__a,
size_t __b) {
2792 return (vector
float)__builtin_vsx_lxvl(
__a, (
__b << 56));
2796 vec_xl_len(
const signed __int128 *
__a,
size_t __b) {
2797 return (vector
signed __int128)__builtin_vsx_lxvl(
__a, (
__b << 56));
2800 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
2801 vec_xl_len(
const unsigned __int128 *
__a,
size_t __b) {
2802 return (vector
unsigned __int128)__builtin_vsx_lxvl(
__a, (
__b << 56));
2806 vec_xl_len(
const signed long long *
__a,
size_t __b) {
2807 return (vector
signed long long)__builtin_vsx_lxvl(
__a, (
__b << 56));
2810 static __inline__ vector
unsigned long long __ATTRS_o_ai
2811 vec_xl_len(
const unsigned long long *
__a,
size_t __b) {
2812 return (vector
unsigned long long)__builtin_vsx_lxvl(
__a, (
__b << 56));
2815 static __inline__ vector
double __ATTRS_o_ai vec_xl_len(
const double *
__a,
2817 return (vector
double)__builtin_vsx_lxvl(
__a, (
__b << 56));
2821 vec_xl_len_r(
const unsigned char *
__a,
size_t __b) {
2822 vector
unsigned char __res =
2823 (vector
unsigned char)__builtin_vsx_lxvll(
__a, (
__b << 56));
2824 #ifdef __LITTLE_ENDIAN__
2825 vector
unsigned char __mask =
2826 (vector
unsigned char)__builtin_altivec_lvsr(16 -
__b, (
int *)
NULL);
2827 __res = (vector
unsigned char)__builtin_altivec_vperm_4si(
2828 (vector
int)__res, (vector
int)__res, __mask);
2834 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned char __a,
2837 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2840 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed char __a,
2841 signed char *
__b,
size_t __c) {
2842 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2845 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed short __a,
2846 signed short *
__b,
size_t __c) {
2847 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2850 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned short __a,
2851 unsigned short *
__b,
2853 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2856 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed int __a,
2857 signed int *
__b,
size_t __c) {
2858 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2861 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned int __a,
2862 unsigned int *
__b,
size_t __c) {
2863 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2868 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2871 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed __int128
__a,
2872 signed __int128 *
__b,
2874 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2877 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned __int128
__a,
2878 unsigned __int128 *
__b,
2880 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2883 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed long long __a,
2884 signed long long *
__b,
2886 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2889 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned long long __a,
2890 unsigned long long *
__b,
2892 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2897 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
2900 static __inline__
void __ATTRS_o_ai vec_xst_len_r(vector
unsigned char __a,
2903 #ifdef __LITTLE_ENDIAN__
2904 vector
unsigned char __mask =
2905 (vector
unsigned char)__builtin_altivec_lvsl(16 -
__c, (
int *)
NULL);
2906 vector
unsigned char __res =
2907 __builtin_altivec_vperm_4si((vector
int)
__a, (vector
int)
__a, __mask);
2908 return __builtin_vsx_stxvll((vector
int)__res,
__b, (
__c << 56));
2910 return __builtin_vsx_stxvll((vector
int)
__a,
__b, (
__c << 56));
2919 static __inline__ vector
float __ATTRS_o_ai vec_cpsgn(vector
float __a,
2921 return __builtin_vsx_xvcpsgnsp(
__a,
__b);
2924 static __inline__ vector
double __ATTRS_o_ai vec_cpsgn(vector
double __a,
2925 vector
double __b) {
2926 return __builtin_vsx_xvcpsgndp(
__a,
__b);
2933 #define vec_ctf(__a, __b) \
2934 _Generic((__a), vector int \
2935 : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)), \
2936 vector unsigned int \
2937 : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
2939 vector unsigned long long \
2940 : (__builtin_convertvector((vector unsigned long long)(__a), \
2942 (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \
2944 vector signed long long \
2945 : (__builtin_convertvector((vector signed long long)(__a), \
2947 (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \
2950 #define vec_ctf(__a, __b) \
2951 _Generic((__a), vector int \
2952 : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)), \
2953 vector unsigned int \
2954 : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
2960 #define vec_vcfux __builtin_altivec_vcfux
2964 #define vec_vcfsx(__a, __b) __builtin_altivec_vcfsx((vector int)(__a), (__b))
2969 #define vec_cts(__a, __b) \
2970 _Generic((__a), vector float \
2971 : __builtin_altivec_vctsxs((vector float)(__a), (__b)), \
2974 vector double __ret = \
2975 (vector double)(__a) * \
2976 (vector double)(vector unsigned long long)((0x3ffULL + (__b)) \
2978 __builtin_convertvector(__ret, vector signed long long); \
2981 #define vec_cts __builtin_altivec_vctsxs
2986 #define vec_vctsxs __builtin_altivec_vctsxs
2991 #define vec_ctu(__a, __b) \
2992 _Generic((__a), vector float \
2993 : __builtin_altivec_vctuxs((vector float)(__a), (__b)), \
2996 vector double __ret = \
2997 (vector double)(__a) * \
2998 (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3000 __builtin_convertvector(__ret, vector unsigned long long); \
3003 #define vec_ctu __builtin_altivec_vctuxs
3008 #define vec_vctuxs __builtin_altivec_vctuxs
3013 vec_sld(vector
signed int, vector
signed int,
unsigned const int __c);
3017 return __builtin_convertvector(
__a, vector
signed int);
3023 return __builtin_convertvector(
__a, vector
signed long long);
3026 static __inline__ vector
signed int __attribute__((__always_inline__))
3027 vec_signed2(vector
double __a, vector
double __b) {
3028 return (vector
signed int) {
__a[0],
__a[1],
__b[0],
__b[1] };
3032 vec_signede(vector
double __a) {
3033 #ifdef __LITTLE_ENDIAN__
3034 vector
signed int __ret = __builtin_vsx_xvcvdpsxws(
__a);
3035 return vec_sld(__ret, __ret, 12);
3037 return __builtin_vsx_xvcvdpsxws(
__a);
3042 vec_signedo(vector
double __a) {
3043 #ifdef __LITTLE_ENDIAN__
3044 return __builtin_vsx_xvcvdpsxws(
__a);
3046 vector
signed int __ret = __builtin_vsx_xvcvdpsxws(
__a);
3047 return vec_sld(__ret, __ret, 12);
3055 vec_sld(vector
unsigned int, vector
unsigned int,
unsigned const int __c);
3059 return __builtin_convertvector(
__a, vector
unsigned int);
3063 static __inline__ vector
unsigned long long __ATTRS_o_ai
3065 return __builtin_convertvector(
__a, vector
unsigned long long);
3068 static __inline__ vector
unsigned int __attribute__((__always_inline__))
3069 vec_unsigned2(vector
double __a, vector
double __b) {
3070 return (vector
unsigned int) {
__a[0],
__a[1],
__b[0],
__b[1] };
3074 vec_unsignede(vector
double __a) {
3075 #ifdef __LITTLE_ENDIAN__
3076 vector
unsigned int __ret = __builtin_vsx_xvcvdpuxws(
__a);
3077 return vec_sld(__ret, __ret, 12);
3079 return __builtin_vsx_xvcvdpuxws(
__a);
3084 vec_unsignedo(vector
double __a) {
3085 #ifdef __LITTLE_ENDIAN__
3086 return __builtin_vsx_xvcvdpuxws(
__a);
3088 vector
unsigned int __ret = __builtin_vsx_xvcvdpuxws(
__a);
3089 return vec_sld(__ret, __ret, 12);
3097 vec_sld(vector
float, vector
float,
unsigned const int __c);
3101 return __builtin_convertvector(
__a, vector
float);
3106 return __builtin_convertvector(
__a, vector
float);
3111 vec_float2(vector
signed long long __a, vector
signed long long __b) {
3112 return (vector
float) {
__a[0],
__a[1],
__b[0],
__b[1] };
3116 vec_float2(vector
unsigned long long __a, vector
unsigned long long __b) {
3117 return (vector
float) {
__a[0],
__a[1],
__b[0],
__b[1] };
3121 vec_float2(vector
double __a, vector
double __b) {
3122 return (vector
float) {
__a[0],
__a[1],
__b[0],
__b[1] };
3126 vec_floate(vector
signed long long __a) {
3127 #ifdef __LITTLE_ENDIAN__
3128 vector
float __ret = __builtin_vsx_xvcvsxdsp(
__a);
3129 return vec_sld(__ret, __ret, 12);
3131 return __builtin_vsx_xvcvsxdsp(
__a);
3136 vec_floate(vector
unsigned long long __a) {
3137 #ifdef __LITTLE_ENDIAN__
3138 vector
float __ret = __builtin_vsx_xvcvuxdsp(
__a);
3139 return vec_sld(__ret, __ret, 12);
3141 return __builtin_vsx_xvcvuxdsp(
__a);
3146 vec_floate(vector
double __a) {
3147 #ifdef __LITTLE_ENDIAN__
3148 vector
float __ret = __builtin_vsx_xvcvdpsp(
__a);
3149 return vec_sld(__ret, __ret, 12);
3151 return __builtin_vsx_xvcvdpsp(
__a);
3156 vec_floato(vector
signed long long __a) {
3157 #ifdef __LITTLE_ENDIAN__
3158 return __builtin_vsx_xvcvsxdsp(
__a);
3160 vector
float __ret = __builtin_vsx_xvcvsxdsp(
__a);
3161 return vec_sld(__ret, __ret, 12);
3166 vec_floato(vector
unsigned long long __a) {
3167 #ifdef __LITTLE_ENDIAN__
3168 return __builtin_vsx_xvcvuxdsp(
__a);
3170 vector
float __ret = __builtin_vsx_xvcvuxdsp(
__a);
3171 return vec_sld(__ret, __ret, 12);
3176 vec_floato(vector
double __a) {
3177 #ifdef __LITTLE_ENDIAN__
3178 return __builtin_vsx_xvcvdpsp(
__a);
3180 vector
float __ret = __builtin_vsx_xvcvdpsp(
__a);
3181 return vec_sld(__ret, __ret, 12);
3190 vec_double(vector
signed long long __a) {
3191 return __builtin_convertvector(
__a, vector
double);
3195 vec_double(vector
unsigned long long __a) {
3196 return __builtin_convertvector(
__a, vector
double);
3200 vec_doublee(vector
signed int __a) {
3201 #ifdef __LITTLE_ENDIAN__
3204 return __builtin_vsx_xvcvsxwdp(
__a);
3209 vec_doublee(vector
unsigned int __a) {
3210 #ifdef __LITTLE_ENDIAN__
3213 return __builtin_vsx_xvcvuxwdp(
__a);
3218 vec_doublee(vector
float __a) {
3219 #ifdef __LITTLE_ENDIAN__
3222 return __builtin_vsx_xvcvspdp(
__a);
3227 vec_doubleh(vector
signed int __a) {
3228 vector
double __ret = {
__a[0],
__a[1]};
3233 vec_doubleh(vector
unsigned int __a) {
3234 vector
double __ret = {
__a[0],
__a[1]};
3239 vec_doubleh(vector
float __a) {
3240 vector
double __ret = {
__a[0],
__a[1]};
3245 vec_doublel(vector
signed int __a) {
3246 vector
double __ret = {
__a[2],
__a[3]};
3251 vec_doublel(vector
unsigned int __a) {
3252 vector
double __ret = {
__a[2],
__a[3]};
3257 vec_doublel(vector
float __a) {
3258 vector
double __ret = {
__a[2],
__a[3]};
3263 vec_doubleo(vector
signed int __a) {
3264 #ifdef __LITTLE_ENDIAN__
3265 return __builtin_vsx_xvcvsxwdp(
__a);
3272 vec_doubleo(vector
unsigned int __a) {
3273 #ifdef __LITTLE_ENDIAN__
3274 return __builtin_vsx_xvcvuxwdp(
__a);
3281 vec_doubleo(vector
float __a) {
3282 #ifdef __LITTLE_ENDIAN__
3283 return __builtin_vsx_xvcvspdp(
__a);
3327 vec_div(vector
signed long long __a, vector
signed long long __b) {
3331 static __inline__ vector
unsigned long long __ATTRS_o_ai
3332 vec_div(vector
unsigned long long __a, vector
unsigned long long __b) {
3342 vector
double __b) {
3349 #define vec_dss __builtin_altivec_dss
3353 static __inline__
void __attribute__((__always_inline__)) vec_dssall(
void) {
3354 __builtin_altivec_dssall();
3358 #define vec_dst(__PTR, __CW, __STR) \
3360 { __builtin_altivec_dst((const void *)(__PTR), (__CW), (__STR)); })
3363 #define vec_dstst(__PTR, __CW, __STR) \
3365 { __builtin_altivec_dstst((const void *)(__PTR), (__CW), (__STR)); })
3368 #define vec_dststt(__PTR, __CW, __STR) \
3370 { __builtin_altivec_dststt((const void *)(__PTR), (__CW), (__STR)); })
3373 #define vec_dstt(__PTR, __CW, __STR) \
3375 { __builtin_altivec_dstt((const void *)(__PTR), (__CW), (__STR)); })
3379 #ifdef __POWER8_VECTOR__
3381 vec_eqv(vector
signed char __a, vector
signed char __b) {
3382 return (vector
signed char)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3383 (vector
unsigned int)
__b);
3387 vec_eqv(vector
unsigned char __a, vector
unsigned char __b) {
3388 return (vector
unsigned char)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3389 (vector
unsigned int)
__b);
3392 static __inline__ vector
bool char __ATTRS_o_ai vec_eqv(vector
bool char __a,
3393 vector
bool char __b) {
3394 return (vector
bool char)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3395 (vector
unsigned int)
__b);
3399 vec_eqv(vector
signed short __a, vector
signed short __b) {
3400 return (vector
signed short)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3401 (vector
unsigned int)
__b);
3405 vec_eqv(vector
unsigned short __a, vector
unsigned short __b) {
3406 return (vector
unsigned short)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3407 (vector
unsigned int)
__b);
3411 vec_eqv(vector
bool short __a, vector
bool short __b) {
3412 return (vector
bool short)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3413 (vector
unsigned int)
__b);
3417 vec_eqv(vector
signed int __a, vector
signed int __b) {
3418 return (vector
signed int)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3419 (vector
unsigned int)
__b);
3423 vec_eqv(vector
unsigned int __a, vector
unsigned int __b) {
3424 return __builtin_vsx_xxleqv(
__a,
__b);
3427 static __inline__ vector
bool int __ATTRS_o_ai vec_eqv(vector
bool int __a,
3428 vector
bool int __b) {
3429 return (vector
bool int)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3430 (vector
unsigned int)
__b);
3434 vec_eqv(vector
signed long long __a, vector
signed long long __b) {
3435 return (vector
signed long long)__builtin_vsx_xxleqv(
3436 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
3439 static __inline__ vector
unsigned long long __ATTRS_o_ai
3440 vec_eqv(vector
unsigned long long __a, vector
unsigned long long __b) {
3441 return (vector
unsigned long long)__builtin_vsx_xxleqv(
3442 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
3446 vec_eqv(vector
bool long long __a, vector
bool long long __b) {
3447 return (vector
bool long long)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3448 (vector
unsigned int)
__b);
3453 return (vector
float)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3454 (vector
unsigned int)
__b);
3457 static __inline__ vector
double __ATTRS_o_ai vec_eqv(vector
double __a,
3458 vector
double __b) {
3459 return (vector
double)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3460 (vector
unsigned int)
__b);
3466 static __inline__ vector
float __attribute__((__always_inline__))
3467 vec_expte(vector
float __a) {
3468 return __builtin_altivec_vexptefp(
__a);
3473 static __inline__ vector
float __attribute__((__always_inline__))
3474 vec_vexptefp(vector
float __a) {
3475 return __builtin_altivec_vexptefp(
__a);
3482 return __builtin_vsx_xvrspim(
__a);
3484 return __builtin_altivec_vrfim(
__a);
3490 return __builtin_vsx_xvrdpim(
__a);
3496 static __inline__ vector
float __attribute__((__always_inline__))
3497 vec_vrfim(vector
float __a) {
3498 return __builtin_altivec_vrfim(
__a);
3505 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
3510 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
3515 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
3520 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
3525 return (vector
bool char)__builtin_altivec_lvx(
__a,
__b);
3529 const vector
short *
__b) {
3530 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
3534 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
3539 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
3544 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
3549 return (vector
bool short)__builtin_altivec_lvx(
__a,
__b);
3553 const vector pixel *
__b) {
3554 return (vector pixel)__builtin_altivec_lvx(
__a,
__b);
3558 const vector
int *
__b) {
3559 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
3563 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
3568 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
3573 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
3578 return (vector
bool int)__builtin_altivec_lvx(
__a,
__b);
3582 const vector
float *
__b) {
3583 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
3587 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
3594 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
3599 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
3604 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
3609 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
3614 return (vector
bool char)__builtin_altivec_lvx(
__a,
__b);
3618 const vector
short *
__b) {
3619 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
3623 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
3628 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
3633 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
3638 return (vector
bool short)__builtin_altivec_lvx(
__a,
__b);
3642 const vector pixel *
__b) {
3643 return (vector pixel)__builtin_altivec_lvx(
__a,
__b);
3647 const vector
int *
__b) {
3648 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
3652 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
3657 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
3662 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
3667 return (vector
bool int)__builtin_altivec_lvx(
__a,
__b);
3671 const vector
float *
__b) {
3672 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
3676 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
3683 return (vector
signed char)__builtin_altivec_lvebx(
__a,
__b);
3688 return (vector
unsigned char)__builtin_altivec_lvebx(
__a,
__b);
3692 return (vector
short)__builtin_altivec_lvehx(
__a,
__b);
3697 return (vector
unsigned short)__builtin_altivec_lvehx(
__a,
__b);
3701 return (vector
int)__builtin_altivec_lvewx(
__a,
__b);
3706 return (vector
unsigned int)__builtin_altivec_lvewx(
__a,
__b);
3710 return (vector
float)__builtin_altivec_lvewx(
__a,
__b);
3717 return (vector
signed char)__builtin_altivec_lvebx(
__a,
__b);
3722 return (vector
unsigned char)__builtin_altivec_lvebx(
__a,
__b);
3729 return (vector
short)__builtin_altivec_lvehx(
__a,
__b);
3734 return (vector
unsigned short)__builtin_altivec_lvehx(
__a,
__b);
3740 return (vector
int)__builtin_altivec_lvewx(
__a,
__b);
3745 return (vector
unsigned int)__builtin_altivec_lvewx(
__a,
__b);
3750 return (vector
float)__builtin_altivec_lvewx(
__a,
__b);
3757 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
3762 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
3767 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
3772 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
3777 return (vector
bool char)__builtin_altivec_lvxl(
__a,
__b);
3781 const vector
short *
__b) {
3782 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
3786 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
3791 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
3796 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
3801 return (vector
bool short)__builtin_altivec_lvxl(
__a,
__b);
3805 const vector pixel *
__b) {
3806 return (vector pixel
short)__builtin_altivec_lvxl(
__a,
__b);
3810 const vector
int *
__b) {
3811 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
3815 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
3820 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
3825 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
3830 return (vector
bool int)__builtin_altivec_lvxl(
__a,
__b);
3834 const vector
float *
__b) {
3835 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
3839 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
3846 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
3851 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
3856 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
3861 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
3866 return (vector
bool char)__builtin_altivec_lvxl(
__a,
__b);
3870 const vector
short *
__b) {
3871 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
3876 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
3881 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
3886 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
3891 return (vector
bool short)__builtin_altivec_lvxl(
__a,
__b);
3895 const vector pixel *
__b) {
3896 return (vector pixel)__builtin_altivec_lvxl(
__a,
__b);
3900 const vector
int *
__b) {
3901 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
3905 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
3910 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
3915 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
3920 return (vector
bool int)__builtin_altivec_lvxl(
__a,
__b);
3924 const vector
float *
__b) {
3925 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
3930 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
3935 static __inline__ vector
float __attribute__((__always_inline__))
3936 vec_loge(vector
float __a) {
3937 return __builtin_altivec_vlogefp(
__a);
3942 static __inline__ vector
float __attribute__((__always_inline__))
3943 vec_vlogefp(vector
float __a) {
3944 return __builtin_altivec_vlogefp(
__a);
3949 #ifdef __LITTLE_ENDIAN__
3951 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
3953 vector
unsigned char mask =
3954 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
3955 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
3956 7, 6, 5, 4, 3, 2, 1, 0};
3962 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
3966 #ifdef __LITTLE_ENDIAN__
3968 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
3970 vector
unsigned char mask =
3971 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
3972 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
3973 7, 6, 5, 4, 3, 2, 1, 0};
3979 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
3983 #ifdef __LITTLE_ENDIAN__
3985 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
3987 vector
unsigned char mask =
3988 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
3989 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
3990 7, 6, 5, 4, 3, 2, 1, 0};
3996 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4000 #ifdef __LITTLE_ENDIAN__
4002 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4004 vector
unsigned char mask =
4005 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4006 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4007 7, 6, 5, 4, 3, 2, 1, 0};
4013 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4017 #ifdef __LITTLE_ENDIAN__
4019 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4021 vector
unsigned char mask =
4022 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4023 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4024 7, 6, 5, 4, 3, 2, 1, 0};
4030 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4034 #ifdef __LITTLE_ENDIAN__
4036 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4038 vector
unsigned char mask =
4039 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4040 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4041 7, 6, 5, 4, 3, 2, 1, 0};
4047 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4051 #ifdef __LITTLE_ENDIAN__
4053 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4055 vector
unsigned char mask =
4056 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4057 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4058 7, 6, 5, 4, 3, 2, 1, 0};
4064 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4070 #ifdef __LITTLE_ENDIAN__
4072 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4074 vector
unsigned char mask =
4075 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4076 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4077 7, 6, 5, 4, 3, 2, 1, 0};
4083 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4087 #ifdef __LITTLE_ENDIAN__
4089 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4091 vector
unsigned char mask =
4092 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4093 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4094 7, 6, 5, 4, 3, 2, 1, 0};
4100 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4104 #ifdef __LITTLE_ENDIAN__
4106 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4108 vector
unsigned char mask =
4109 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4110 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4111 7, 6, 5, 4, 3, 2, 1, 0};
4117 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4121 #ifdef __LITTLE_ENDIAN__
4123 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4125 vector
unsigned char mask =
4126 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4127 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4128 7, 6, 5, 4, 3, 2, 1, 0};
4134 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4138 #ifdef __LITTLE_ENDIAN__
4140 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4142 vector
unsigned char mask =
4143 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4144 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4145 7, 6, 5, 4, 3, 2, 1, 0};
4151 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4155 #ifdef __LITTLE_ENDIAN__
4157 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4159 vector
unsigned char mask =
4160 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4161 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4162 7, 6, 5, 4, 3, 2, 1, 0};
4168 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4172 #ifdef __LITTLE_ENDIAN__
4174 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4176 vector
unsigned char mask =
4177 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4178 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4179 7, 6, 5, 4, 3, 2, 1, 0};
4185 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4191 vec_mladd(vector
signed short, vector
signed short, vector
signed short);
4193 vec_mladd(vector
signed short, vector
unsigned short, vector
unsigned short);
4195 vec_mladd(vector
unsigned short, vector
signed short, vector
signed short);
4197 vec_mladd(vector
unsigned short, vector
unsigned short, vector
unsigned short);
4200 vector
signed short __a, vector
signed short __b, vector
signed short __c) {
4206 vector
unsigned short __c) {
4212 vector
signed short __c) {
4218 vector
unsigned short __c) {
4226 return __builtin_vsx_xvmaddasp(
__a,
__b,
__c);
4228 return __builtin_altivec_vmaddfp(
__a,
__b,
__c);
4235 vector
double __c) {
4236 return __builtin_vsx_xvmaddadp(
__a,
__b,
__c);
4242 static __inline__ vector
float __attribute__((__always_inline__))
4243 vec_vmaddfp(vector
float __a, vector
float __b, vector
float __c) {
4244 return __builtin_altivec_vmaddfp(
__a,
__b,
__c);
4249 static __inline__ vector
signed short __attribute__((__always_inline__))
4250 vec_madds(vector
signed short __a, vector
signed short __b,
4251 vector
signed short __c) {
4252 return __builtin_altivec_vmhaddshs(
__a,
__b,
__c);
4256 static __inline__ vector
signed short __attribute__((__always_inline__))
4257 vec_vmhaddshs(vector
signed short __a, vector
signed short __b,
4258 vector
signed short __c) {
4259 return __builtin_altivec_vmhaddshs(
__a,
__b,
__c);
4265 static __inline__ vector
float __ATTRS_o_ai vec_msub(vector
float __a,
4268 return __builtin_vsx_xvmsubasp(
__a,
__b,
__c);
4271 static __inline__ vector
double __ATTRS_o_ai vec_msub(vector
double __a,
4273 vector
double __c) {
4274 return __builtin_vsx_xvmsubadp(
__a,
__b,
__c);
4282 return __builtin_altivec_vmaxsb(
__a,
__b);
4287 return __builtin_altivec_vmaxsb((vector
signed char)
__a,
__b);
4292 return __builtin_altivec_vmaxsb(
__a, (vector
signed char)
__b);
4297 return __builtin_altivec_vmaxub(
__a,
__b);
4302 return __builtin_altivec_vmaxub((vector
unsigned char)
__a,
__b);
4307 return __builtin_altivec_vmaxub(
__a, (vector
unsigned char)
__b);
4312 return __builtin_altivec_vmaxsh(
__a,
__b);
4317 return __builtin_altivec_vmaxsh((vector
short)
__a,
__b);
4321 vector
bool short __b) {
4322 return __builtin_altivec_vmaxsh(
__a, (vector
short)
__b);
4327 return __builtin_altivec_vmaxuh(
__a,
__b);
4332 return __builtin_altivec_vmaxuh((vector
unsigned short)
__a,
__b);
4337 return __builtin_altivec_vmaxuh(
__a, (vector
unsigned short)
__b);
4342 return __builtin_altivec_vmaxsw(
__a,
__b);
4347 return __builtin_altivec_vmaxsw((vector
int)
__a,
__b);
4351 vector
bool int __b) {
4352 return __builtin_altivec_vmaxsw(
__a, (vector
int)
__b);
4357 return __builtin_altivec_vmaxuw(
__a,
__b);
4362 return __builtin_altivec_vmaxuw((vector
unsigned int)
__a,
__b);
4367 return __builtin_altivec_vmaxuw(
__a, (vector
unsigned int)
__b);
4370 #ifdef __POWER8_VECTOR__
4372 vec_max(vector
signed long long __a, vector
signed long long __b) {
4373 return __builtin_altivec_vmaxsd(
__a,
__b);
4377 vec_max(vector
bool long long __a, vector
signed long long __b) {
4378 return __builtin_altivec_vmaxsd((vector
signed long long)
__a,
__b);
4382 vec_max(vector
signed long long __a, vector
bool long long __b) {
4383 return __builtin_altivec_vmaxsd(
__a, (vector
signed long long)
__b);
4386 static __inline__ vector
unsigned long long __ATTRS_o_ai
4387 vec_max(vector
unsigned long long __a, vector
unsigned long long __b) {
4388 return __builtin_altivec_vmaxud(
__a,
__b);
4391 static __inline__ vector
unsigned long long __ATTRS_o_ai
4392 vec_max(vector
bool long long __a, vector
unsigned long long __b) {
4393 return __builtin_altivec_vmaxud((vector
unsigned long long)
__a,
__b);
4396 static __inline__ vector
unsigned long long __ATTRS_o_ai
4397 vec_max(vector
unsigned long long __a, vector
bool long long __b) {
4398 return __builtin_altivec_vmaxud(
__a, (vector
unsigned long long)
__b);
4405 return __builtin_vsx_xvmaxsp(
__a,
__b);
4407 return __builtin_altivec_vmaxfp(
__a,
__b);
4413 vector
double __b) {
4414 return __builtin_vsx_xvmaxdp(
__a,
__b);
4422 return __builtin_altivec_vmaxsb(
__a,
__b);
4427 return __builtin_altivec_vmaxsb((vector
signed char)
__a,
__b);
4432 return __builtin_altivec_vmaxsb(
__a, (vector
signed char)
__b);
4439 return __builtin_altivec_vmaxub(
__a,
__b);
4444 return __builtin_altivec_vmaxub((vector
unsigned char)
__a,
__b);
4449 return __builtin_altivec_vmaxub(
__a, (vector
unsigned char)
__b);
4456 return __builtin_altivec_vmaxsh(
__a,
__b);
4461 return __builtin_altivec_vmaxsh((vector
short)
__a,
__b);
4465 vector
bool short __b) {
4466 return __builtin_altivec_vmaxsh(
__a, (vector
short)
__b);
4473 return __builtin_altivec_vmaxuh(
__a,
__b);
4478 return __builtin_altivec_vmaxuh((vector
unsigned short)
__a,
__b);
4483 return __builtin_altivec_vmaxuh(
__a, (vector
unsigned short)
__b);
4490 return __builtin_altivec_vmaxsw(
__a,
__b);
4495 return __builtin_altivec_vmaxsw((vector
int)
__a,
__b);
4499 vector
bool int __b) {
4500 return __builtin_altivec_vmaxsw(
__a, (vector
int)
__b);
4507 return __builtin_altivec_vmaxuw(
__a,
__b);
4512 return __builtin_altivec_vmaxuw((vector
unsigned int)
__a,
__b);
4517 return __builtin_altivec_vmaxuw(
__a, (vector
unsigned int)
__b);
4522 static __inline__ vector
float __attribute__((__always_inline__))
4523 vec_vmaxfp(vector
float __a, vector
float __b) {
4525 return __builtin_vsx_xvmaxsp(
__a,
__b);
4527 return __builtin_altivec_vmaxfp(
__a,
__b);
4536 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
4537 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
4538 0x06, 0x16, 0x07, 0x17));
4544 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
4545 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
4546 0x06, 0x16, 0x07, 0x17));
4552 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
4553 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
4554 0x06, 0x16, 0x07, 0x17));
4560 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4561 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4562 0x06, 0x07, 0x16, 0x17));
4568 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4569 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4570 0x06, 0x07, 0x16, 0x17));
4576 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4577 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4578 0x06, 0x07, 0x16, 0x17));
4584 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4585 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4586 0x06, 0x07, 0x16, 0x17));
4592 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4593 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4594 0x14, 0x15, 0x16, 0x17));
4600 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4601 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4602 0x14, 0x15, 0x16, 0x17));
4606 vector
bool int __b) {
4608 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4609 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4610 0x14, 0x15, 0x16, 0x17));
4616 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4617 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4618 0x14, 0x15, 0x16, 0x17));
4625 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4626 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4627 0x14, 0x15, 0x16, 0x17));
4633 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4634 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4635 0x14, 0x15, 0x16, 0x17));
4641 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4642 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4643 0x14, 0x15, 0x16, 0x17));
4646 static __inline__ vector
unsigned long long __ATTRS_o_ai
4649 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4650 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4651 0x14, 0x15, 0x16, 0x17));
4654 static __inline__ vector
unsigned long long __ATTRS_o_ai
4657 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4658 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4659 0x14, 0x15, 0x16, 0x17));
4662 static __inline__ vector
unsigned long long __ATTRS_o_ai
4665 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4666 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4667 0x14, 0x15, 0x16, 0x17));
4673 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4674 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4675 0x14, 0x15, 0x16, 0x17));
4679 vector
double __b) {
4681 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4682 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4683 0x14, 0x15, 0x16, 0x17));
4688 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4689 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4690 0x14, 0x15, 0x16, 0x17));
4695 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
4696 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
4697 0x14, 0x15, 0x16, 0x17));
4703 #define __builtin_altivec_vmrghb vec_vmrghb
4708 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
4709 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
4710 0x06, 0x16, 0x07, 0x17));
4716 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
4717 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
4718 0x06, 0x16, 0x07, 0x17));
4724 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
4725 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
4726 0x06, 0x16, 0x07, 0x17));
4731 #define __builtin_altivec_vmrghh vec_vmrghh
4736 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4737 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4738 0x06, 0x07, 0x16, 0x17));
4744 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4745 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4746 0x06, 0x07, 0x16, 0x17));
4752 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4753 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4754 0x06, 0x07, 0x16, 0x17));
4760 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
4761 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
4762 0x06, 0x07, 0x16, 0x17));
4767 #define __builtin_altivec_vmrghw vec_vmrghw
4772 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4773 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4774 0x14, 0x15, 0x16, 0x17));
4780 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4781 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4782 0x14, 0x15, 0x16, 0x17));
4786 vector
bool int __b) {
4788 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4789 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4790 0x14, 0x15, 0x16, 0x17));
4796 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
4797 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
4798 0x14, 0x15, 0x16, 0x17));
4806 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
4807 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
4808 0x0E, 0x1E, 0x0F, 0x1F));
4814 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
4815 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
4816 0x0E, 0x1E, 0x0F, 0x1F));
4822 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
4823 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
4824 0x0E, 0x1E, 0x0F, 0x1F));
4830 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
4831 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
4832 0x0E, 0x0F, 0x1E, 0x1F));
4838 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
4839 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
4840 0x0E, 0x0F, 0x1E, 0x1F));
4846 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
4847 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
4848 0x0E, 0x0F, 0x1E, 0x1F));
4854 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
4855 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
4856 0x0E, 0x0F, 0x1E, 0x1F));
4862 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
4863 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
4864 0x1C, 0x1D, 0x1E, 0x1F));
4870 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
4871 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
4872 0x1C, 0x1D, 0x1E, 0x1F));
4876 vector
bool int __b) {
4878 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
4879 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
4880 0x1C, 0x1D, 0x1E, 0x1F));
4886 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
4887 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
4888 0x1C, 0x1D, 0x1E, 0x1F));
4895 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4896 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4897 0x1C, 0x1D, 0x1E, 0x1F));
4902 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4903 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4904 0x1C, 0x1D, 0x1E, 0x1F));
4909 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4910 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4911 0x1C, 0x1D, 0x1E, 0x1F));
4913 static __inline__ vector
unsigned long long __ATTRS_o_ai
4916 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4917 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4918 0x1C, 0x1D, 0x1E, 0x1F));
4920 static __inline__ vector
unsigned long long __ATTRS_o_ai
4923 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4924 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4925 0x1C, 0x1D, 0x1E, 0x1F));
4927 static __inline__ vector
unsigned long long __ATTRS_o_ai
4930 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4931 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4932 0x1C, 0x1D, 0x1E, 0x1F));
4937 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4938 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4939 0x1C, 0x1D, 0x1E, 0x1F));
4942 vector
double __b) {
4944 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4945 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4946 0x1C, 0x1D, 0x1E, 0x1F));
4951 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4952 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4953 0x1C, 0x1D, 0x1E, 0x1F));
4958 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
4959 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
4960 0x1C, 0x1D, 0x1E, 0x1F));
4966 #define __builtin_altivec_vmrglb vec_vmrglb
4971 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
4972 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
4973 0x0E, 0x1E, 0x0F, 0x1F));
4979 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
4980 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
4981 0x0E, 0x1E, 0x0F, 0x1F));
4987 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
4988 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
4989 0x0E, 0x1E, 0x0F, 0x1F));
4994 #define __builtin_altivec_vmrglh vec_vmrglh
4999 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5000 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5001 0x0E, 0x0F, 0x1E, 0x1F));
5007 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5008 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5009 0x0E, 0x0F, 0x1E, 0x1F));
5015 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5016 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5017 0x0E, 0x0F, 0x1E, 0x1F));
5023 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5024 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5025 0x0E, 0x0F, 0x1E, 0x1F));
5030 #define __builtin_altivec_vmrglw vec_vmrglw
5035 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5036 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5037 0x1C, 0x1D, 0x1E, 0x1F));
5043 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5044 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5045 0x1C, 0x1D, 0x1E, 0x1F));
5049 vector
bool int __b) {
5051 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5052 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5053 0x1C, 0x1D, 0x1E, 0x1F));
5059 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5060 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5061 0x1C, 0x1D, 0x1E, 0x1F));
5064 #ifdef __POWER8_VECTOR__
5067 static __inline__ vector
bool int __ATTRS_o_ai vec_mergee(vector
bool int __a,
5068 vector
bool int __b) {
5070 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5071 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5072 0x18, 0x19, 0x1A, 0x1B));
5076 vec_mergee(vector
signed int __a, vector
signed int __b) {
5078 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5079 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5080 0x18, 0x19, 0x1A, 0x1B));
5084 vec_mergee(vector
unsigned int __a, vector
unsigned int __b) {
5086 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5087 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5088 0x18, 0x19, 0x1A, 0x1B));
5092 vec_mergee(vector
bool long long __a, vector
bool long long __b) {
5097 vec_mergee(vector
signed long long __a, vector
signed long long __b) {
5101 static __inline__ vector
unsigned long long __ATTRS_o_ai
5102 vec_mergee(vector
unsigned long long __a, vector
unsigned long long __b) {
5107 vec_mergee(vector
float __a, vector
float __b) {
5109 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5110 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5111 0x18, 0x19, 0x1A, 0x1B));
5115 vec_mergee(vector
double __a, vector
double __b) {
5121 static __inline__ vector
bool int __ATTRS_o_ai vec_mergeo(vector
bool int __a,
5122 vector
bool int __b) {
5124 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5125 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5126 0x1C, 0x1D, 0x1E, 0x1F));
5130 vec_mergeo(vector
signed int __a, vector
signed int __b) {
5132 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5133 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5134 0x1C, 0x1D, 0x1E, 0x1F));
5138 vec_mergeo(vector
unsigned int __a, vector
unsigned int __b) {
5140 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5141 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5142 0x1C, 0x1D, 0x1E, 0x1F));
5146 vec_mergeo(vector
bool long long __a, vector
bool long long __b) {
5151 vec_mergeo(vector
signed long long __a, vector
signed long long __b) {
5155 static __inline__ vector
unsigned long long __ATTRS_o_ai
5156 vec_mergeo(vector
unsigned long long __a, vector
unsigned long long __b) {
5161 vec_mergeo(vector
float __a, vector
float __b) {
5163 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5164 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5165 0x1C, 0x1D, 0x1E, 0x1F));
5169 vec_mergeo(vector
double __a, vector
double __b) {
5177 static __inline__ vector
unsigned short __attribute__((__always_inline__))
5179 return __builtin_altivec_mfvscr();
5186 return __builtin_altivec_vminsb(
__a,
__b);
5191 return __builtin_altivec_vminsb((vector
signed char)
__a,
__b);
5196 return __builtin_altivec_vminsb(
__a, (vector
signed char)
__b);
5201 return __builtin_altivec_vminub(
__a,
__b);
5206 return __builtin_altivec_vminub((vector
unsigned char)
__a,
__b);
5211 return __builtin_altivec_vminub(
__a, (vector
unsigned char)
__b);
5216 return __builtin_altivec_vminsh(
__a,
__b);
5221 return __builtin_altivec_vminsh((vector
short)
__a,
__b);
5225 vector
bool short __b) {
5226 return __builtin_altivec_vminsh(
__a, (vector
short)
__b);
5231 return __builtin_altivec_vminuh(
__a,
__b);
5236 return __builtin_altivec_vminuh((vector
unsigned short)
__a,
__b);
5241 return __builtin_altivec_vminuh(
__a, (vector
unsigned short)
__b);
5246 return __builtin_altivec_vminsw(
__a,
__b);
5251 return __builtin_altivec_vminsw((vector
int)
__a,
__b);
5255 vector
bool int __b) {
5256 return __builtin_altivec_vminsw(
__a, (vector
int)
__b);
5261 return __builtin_altivec_vminuw(
__a,
__b);
5266 return __builtin_altivec_vminuw((vector
unsigned int)
__a,
__b);
5271 return __builtin_altivec_vminuw(
__a, (vector
unsigned int)
__b);
5274 #ifdef __POWER8_VECTOR__
5276 vec_min(vector
signed long long __a, vector
signed long long __b) {
5277 return __builtin_altivec_vminsd(
__a,
__b);
5281 vec_min(vector
bool long long __a, vector
signed long long __b) {
5282 return __builtin_altivec_vminsd((vector
signed long long)
__a,
__b);
5286 vec_min(vector
signed long long __a, vector
bool long long __b) {
5287 return __builtin_altivec_vminsd(
__a, (vector
signed long long)
__b);
5290 static __inline__ vector
unsigned long long __ATTRS_o_ai
5291 vec_min(vector
unsigned long long __a, vector
unsigned long long __b) {
5292 return __builtin_altivec_vminud(
__a,
__b);
5295 static __inline__ vector
unsigned long long __ATTRS_o_ai
5296 vec_min(vector
bool long long __a, vector
unsigned long long __b) {
5297 return __builtin_altivec_vminud((vector
unsigned long long)
__a,
__b);
5300 static __inline__ vector
unsigned long long __ATTRS_o_ai
5301 vec_min(vector
unsigned long long __a, vector
bool long long __b) {
5302 return __builtin_altivec_vminud(
__a, (vector
unsigned long long)
__b);
5309 return __builtin_vsx_xvminsp(
__a,
__b);
5311 return __builtin_altivec_vminfp(
__a,
__b);
5317 vector
double __b) {
5318 return __builtin_vsx_xvmindp(
__a,
__b);
5326 return __builtin_altivec_vminsb(
__a,
__b);
5331 return __builtin_altivec_vminsb((vector
signed char)
__a,
__b);
5336 return __builtin_altivec_vminsb(
__a, (vector
signed char)
__b);
5343 return __builtin_altivec_vminub(
__a,
__b);
5348 return __builtin_altivec_vminub((vector
unsigned char)
__a,
__b);
5353 return __builtin_altivec_vminub(
__a, (vector
unsigned char)
__b);
5360 return __builtin_altivec_vminsh(
__a,
__b);
5365 return __builtin_altivec_vminsh((vector
short)
__a,
__b);
5369 vector
bool short __b) {
5370 return __builtin_altivec_vminsh(
__a, (vector
short)
__b);
5377 return __builtin_altivec_vminuh(
__a,
__b);
5382 return __builtin_altivec_vminuh((vector
unsigned short)
__a,
__b);
5387 return __builtin_altivec_vminuh(
__a, (vector
unsigned short)
__b);
5394 return __builtin_altivec_vminsw(
__a,
__b);
5399 return __builtin_altivec_vminsw((vector
int)
__a,
__b);
5403 vector
bool int __b) {
5404 return __builtin_altivec_vminsw(
__a, (vector
int)
__b);
5411 return __builtin_altivec_vminuw(
__a,
__b);
5416 return __builtin_altivec_vminuw((vector
unsigned int)
__a,
__b);
5421 return __builtin_altivec_vminuw(
__a, (vector
unsigned int)
__b);
5426 static __inline__ vector
float __attribute__((__always_inline__))
5427 vec_vminfp(vector
float __a, vector
float __b) {
5429 return __builtin_vsx_xvminsp(
__a,
__b);
5431 return __builtin_altivec_vminfp(
__a,
__b);
5437 #define __builtin_altivec_vmladduhm vec_mladd
5446 vector
short __a, vector
unsigned short __b, vector
unsigned short __c) {
5447 return __a * (vector short)
__b + (vector
short)
__c;
5458 vector
unsigned short __c) {
5471 vector
short __a, vector
unsigned short __b, vector
unsigned short __c) {
5472 return __a * (vector short)
__b + (vector
short)
__c;
5482 vector
unsigned short __c) {
5488 static __inline__ vector
short __attribute__((__always_inline__))
5489 vec_mradds(vector
short __a, vector
short __b, vector
short __c) {
5490 return __builtin_altivec_vmhraddshs(
__a,
__b,
__c);
5495 static __inline__ vector
short __attribute__((__always_inline__))
5496 vec_vmhraddshs(vector
short __a, vector
short __b, vector
short __c) {
5497 return __builtin_altivec_vmhraddshs(
__a,
__b,
__c);
5503 vector
unsigned char __b,
5505 return __builtin_altivec_vmsummbm(
__a,
__b,
__c);
5510 vector
unsigned int __c) {
5511 return __builtin_altivec_vmsumubm(
__a,
__b,
__c);
5517 return __builtin_altivec_vmsumshm(
__a,
__b,
__c);
5522 vector
unsigned int __c) {
5523 return __builtin_altivec_vmsumuhm(
__a,
__b,
__c);
5528 static __inline__ vector
int __attribute__((__always_inline__))
5529 vec_vmsummbm(vector
signed char __a, vector
unsigned char __b, vector
int __c) {
5530 return __builtin_altivec_vmsummbm(
__a,
__b,
__c);
5535 static __inline__ vector
unsigned int __attribute__((__always_inline__))
5536 vec_vmsumubm(vector
unsigned char __a, vector
unsigned char __b,
5537 vector
unsigned int __c) {
5538 return __builtin_altivec_vmsumubm(
__a,
__b,
__c);
5543 static __inline__ vector
int __attribute__((__always_inline__))
5544 vec_vmsumshm(vector
short __a, vector
short __b, vector
int __c) {
5545 return __builtin_altivec_vmsumshm(
__a,
__b,
__c);
5550 static __inline__ vector
unsigned int __attribute__((__always_inline__))
5551 vec_vmsumuhm(vector
unsigned short __a, vector
unsigned short __b,
5552 vector
unsigned int __c) {
5553 return __builtin_altivec_vmsumuhm(
__a,
__b,
__c);
5561 return __builtin_altivec_vmsumshs(
__a,
__b,
__c);
5566 vector
unsigned int __c) {
5567 return __builtin_altivec_vmsumuhs(
__a,
__b,
__c);
5572 static __inline__ vector
int __attribute__((__always_inline__))
5573 vec_vmsumshs(vector
short __a, vector
short __b, vector
int __c) {
5574 return __builtin_altivec_vmsumshs(
__a,
__b,
__c);
5579 static __inline__ vector
unsigned int __attribute__((__always_inline__))
5580 vec_vmsumuhs(vector
unsigned short __a, vector
unsigned short __b,
5581 vector
unsigned int __c) {
5582 return __builtin_altivec_vmsumuhs(
__a,
__b,
__c);
5588 __builtin_altivec_mtvscr((vector
int)
__a);
5592 __builtin_altivec_mtvscr((vector
int)
__a);
5596 __builtin_altivec_mtvscr((vector
int)
__a);
5600 __builtin_altivec_mtvscr((vector
int)
__a);
5604 __builtin_altivec_mtvscr((vector
int)
__a);
5608 __builtin_altivec_mtvscr((vector
int)
__a);
5612 __builtin_altivec_mtvscr((vector
int)
__a);
5616 __builtin_altivec_mtvscr((vector
int)
__a);
5620 __builtin_altivec_mtvscr((vector
int)
__a);
5624 __builtin_altivec_mtvscr((vector
int)
__a);
5628 __builtin_altivec_mtvscr((vector
int)
__a);
5669 vec_mul(vector
signed long long __a, vector
signed long long __b) {
5673 static __inline__ vector
unsigned long long __ATTRS_o_ai
5674 vec_mul(vector
unsigned long long __a, vector
unsigned long long __b) {
5686 vector
double __b) {
5697 vector
signed char __b) {
5698 #ifdef __LITTLE_ENDIAN__
5699 return __builtin_altivec_vmulosb(
__a,
__b);
5701 return __builtin_altivec_vmulesb(
__a,
__b);
5707 #ifdef __LITTLE_ENDIAN__
5708 return __builtin_altivec_vmuloub(
__a,
__b);
5710 return __builtin_altivec_vmuleub(
__a,
__b);
5716 #ifdef __LITTLE_ENDIAN__
5717 return __builtin_altivec_vmulosh(
__a,
__b);
5719 return __builtin_altivec_vmulesh(
__a,
__b);
5725 #ifdef __LITTLE_ENDIAN__
5726 return __builtin_altivec_vmulouh(
__a,
__b);
5728 return __builtin_altivec_vmuleuh(
__a,
__b);
5732 #ifdef __POWER8_VECTOR__
5735 #ifdef __LITTLE_ENDIAN__
5736 return __builtin_altivec_vmulosw(
__a,
__b);
5738 return __builtin_altivec_vmulesw(
__a,
__b);
5742 static __inline__ vector
unsigned long long __ATTRS_o_ai
5744 #ifdef __LITTLE_ENDIAN__
5745 return __builtin_altivec_vmulouw(
__a,
__b);
5747 return __builtin_altivec_vmuleuw(
__a,
__b);
5754 static __inline__ vector
short __attribute__((__always_inline__))
5755 vec_vmulesb(vector
signed char __a, vector
signed char __b) {
5756 #ifdef __LITTLE_ENDIAN__
5757 return __builtin_altivec_vmulosb(
__a,
__b);
5759 return __builtin_altivec_vmulesb(
__a,
__b);
5765 static __inline__ vector
unsigned short __attribute__((__always_inline__))
5766 vec_vmuleub(vector
unsigned char __a, vector
unsigned char __b) {
5767 #ifdef __LITTLE_ENDIAN__
5768 return __builtin_altivec_vmuloub(
__a,
__b);
5770 return __builtin_altivec_vmuleub(
__a,
__b);
5776 static __inline__ vector
int __attribute__((__always_inline__))
5777 vec_vmulesh(vector
short __a, vector
short __b) {
5778 #ifdef __LITTLE_ENDIAN__
5779 return __builtin_altivec_vmulosh(
__a,
__b);
5781 return __builtin_altivec_vmulesh(
__a,
__b);
5787 static __inline__ vector
unsigned int __attribute__((__always_inline__))
5788 vec_vmuleuh(vector
unsigned short __a, vector
unsigned short __b) {
5789 #ifdef __LITTLE_ENDIAN__
5790 return __builtin_altivec_vmulouh(
__a,
__b);
5792 return __builtin_altivec_vmuleuh(
__a,
__b);
5799 vector
signed char __b) {
5800 #ifdef __LITTLE_ENDIAN__
5801 return __builtin_altivec_vmulesb(
__a,
__b);
5803 return __builtin_altivec_vmulosb(
__a,
__b);
5809 #ifdef __LITTLE_ENDIAN__
5810 return __builtin_altivec_vmuleub(
__a,
__b);
5812 return __builtin_altivec_vmuloub(
__a,
__b);
5818 #ifdef __LITTLE_ENDIAN__
5819 return __builtin_altivec_vmulesh(
__a,
__b);
5821 return __builtin_altivec_vmulosh(
__a,
__b);
5827 #ifdef __LITTLE_ENDIAN__
5828 return __builtin_altivec_vmuleuh(
__a,
__b);
5830 return __builtin_altivec_vmulouh(
__a,
__b);
5834 #ifdef __POWER8_VECTOR__
5837 #ifdef __LITTLE_ENDIAN__
5838 return __builtin_altivec_vmulesw(
__a,
__b);
5840 return __builtin_altivec_vmulosw(
__a,
__b);
5844 static __inline__ vector
unsigned long long __ATTRS_o_ai
5846 #ifdef __LITTLE_ENDIAN__
5847 return __builtin_altivec_vmuleuw(
__a,
__b);
5849 return __builtin_altivec_vmulouw(
__a,
__b);
5856 static __inline__ vector
short __attribute__((__always_inline__))
5857 vec_vmulosb(vector
signed char __a, vector
signed char __b) {
5858 #ifdef __LITTLE_ENDIAN__
5859 return __builtin_altivec_vmulesb(
__a,
__b);
5861 return __builtin_altivec_vmulosb(
__a,
__b);
5867 static __inline__ vector
unsigned short __attribute__((__always_inline__))
5868 vec_vmuloub(vector
unsigned char __a, vector
unsigned char __b) {
5869 #ifdef __LITTLE_ENDIAN__
5870 return __builtin_altivec_vmuleub(
__a,
__b);
5872 return __builtin_altivec_vmuloub(
__a,
__b);
5878 static __inline__ vector
int __attribute__((__always_inline__))
5879 vec_vmulosh(vector
short __a, vector
short __b) {
5880 #ifdef __LITTLE_ENDIAN__
5881 return __builtin_altivec_vmulesh(
__a,
__b);
5883 return __builtin_altivec_vmulosh(
__a,
__b);
5889 static __inline__ vector
unsigned int __attribute__((__always_inline__))
5890 vec_vmulouh(vector
unsigned short __a, vector
unsigned short __b) {
5891 #ifdef __LITTLE_ENDIAN__
5892 return __builtin_altivec_vmuleuh(
__a,
__b);
5894 return __builtin_altivec_vmulouh(
__a,
__b);
5900 #ifdef __POWER8_VECTOR__
5902 vec_nand(vector
signed char __a, vector
signed char __b) {
5907 vec_nand(vector
signed char __a, vector
bool char __b) {
5912 vec_nand(vector
bool char __a, vector
signed char __b) {
5917 vec_nand(vector
unsigned char __a, vector
unsigned char __b) {
5922 vec_nand(vector
unsigned char __a, vector
bool char __b) {
5927 vec_nand(vector
bool char __a, vector
unsigned char __b) {
5931 static __inline__ vector
bool char __ATTRS_o_ai vec_nand(vector
bool char __a,
5932 vector
bool char __b) {
5937 vec_nand(vector
signed short __a, vector
signed short __b) {
5942 vec_nand(vector
signed short __a, vector
bool short __b) {
5947 vec_nand(vector
bool short __a, vector
signed short __b) {
5952 vec_nand(vector
unsigned short __a, vector
unsigned short __b) {
5957 vec_nand(vector
unsigned short __a, vector
bool short __b) {
5962 vec_nand(vector
bool short __a, vector
bool short __b) {
5967 vec_nand(vector
signed int __a, vector
signed int __b) {
5971 static __inline__ vector
signed int __ATTRS_o_ai vec_nand(vector
signed int __a,
5972 vector
bool int __b) {
5977 vec_nand(vector
bool int __a, vector
signed int __b) {
5982 vec_nand(vector
unsigned int __a, vector
unsigned int __b) {
5987 vec_nand(vector
unsigned int __a, vector
bool int __b) {
5992 vec_nand(vector
bool int __a, vector
unsigned int __b) {
5996 static __inline__ vector
bool int __ATTRS_o_ai vec_nand(vector
bool int __a,
5997 vector
bool int __b) {
6002 vec_nand(vector
float __a, vector
float __b) {
6003 return (vector
float)(~((vector
unsigned int)
__a &
6004 (vector
unsigned int)
__b));
6008 vec_nand(vector
signed long long __a, vector
signed long long __b) {
6013 vec_nand(vector
signed long long __a, vector
bool long long __b) {
6018 vec_nand(vector
bool long long __a, vector
signed long long __b) {
6022 static __inline__ vector
unsigned long long __ATTRS_o_ai
6023 vec_nand(vector
unsigned long long __a, vector
unsigned long long __b) {
6027 static __inline__ vector
unsigned long long __ATTRS_o_ai
6028 vec_nand(vector
unsigned long long __a, vector
bool long long __b) {
6032 static __inline__ vector
unsigned long long __ATTRS_o_ai
6033 vec_nand(vector
bool long long __a, vector
unsigned long long __b) {
6038 vec_nand(vector
bool long long __a, vector
bool long long __b) {
6043 vec_nand(vector
double __a, vector
double __b) {
6044 return (vector
double)(~((vector
unsigned long long)
__a &
6045 (vector
unsigned long long)
__b));
6053 static __inline__ vector
float __ATTRS_o_ai vec_nmadd(vector
float __a,
6056 return __builtin_vsx_xvnmaddasp(
__a,
__b,
__c);
6059 static __inline__ vector
double __ATTRS_o_ai vec_nmadd(vector
double __a,
6061 vector
double __c) {
6062 return __builtin_vsx_xvnmaddadp(
__a,
__b,
__c);
6072 return __builtin_vsx_xvnmsubasp(
__a,
__b,
__c);
6074 return __builtin_altivec_vnmsubfp(
__a,
__b,
__c);
6081 vector
double __c) {
6082 return __builtin_vsx_xvnmsubadp(
__a,
__b,
__c);
6088 static __inline__ vector
float __attribute__((__always_inline__))
6089 vec_vnmsubfp(vector
float __a, vector
float __b, vector
float __c) {
6090 return __builtin_altivec_vnmsubfp(
__a,
__b,
__c);
6095 #define __builtin_altivec_vnor vec_nor
6108 vector
bool char __b) {
6138 vector
bool int __b) {
6144 vector
unsigned int __res =
6145 ~((vector
unsigned int)
__a | (vector
unsigned int)
__b);
6146 return (vector
float)__res;
6151 vector
double __b) {
6152 vector
unsigned long long __res =
6153 ~((vector
unsigned long long)
__a | (vector
unsigned long long)
__b);
6154 return (vector
double)__res;
6171 vector
bool char __b) {
6201 vector
bool int __b) {
6207 vector
unsigned int __res =
6208 ~((vector
unsigned int)
__a | (vector
unsigned int)
__b);
6209 return (vector
float)__res;
6214 vec_nor(vector
signed long long __a, vector
signed long long __b) {
6218 static __inline__ vector
unsigned long long __ATTRS_o_ai
6219 vec_nor(vector
unsigned long long __a, vector
unsigned long long __b) {
6224 vec_nor(vector
bool long long __a, vector
bool long long __b) {
6231 #define __builtin_altivec_vor vec_or
6240 return (vector
signed char)
__a |
__b;
6244 vector
bool char __b) {
6245 return __a | (vector
signed char)
__b;
6255 return (vector
unsigned char)
__a |
__b;
6260 return __a | (vector
unsigned char)
__b;
6264 vector
bool char __b) {
6275 return (vector
short)
__a |
__b;
6279 vector
bool short __b) {
6280 return __a | (vector short)
__b;
6290 return (vector
unsigned short)
__a |
__b;
6295 return __a | (vector
unsigned short)
__b;
6299 vector
bool short __b) {
6310 return (vector
int)
__a |
__b;
6314 vector
bool int __b) {
6325 return (vector
unsigned int)
__a |
__b;
6334 vector
bool int __b) {
6340 vector
unsigned int __res =
6341 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6342 return (vector
float)__res;
6347 vector
unsigned int __res =
6348 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6349 return (vector
float)__res;
6353 vector
bool int __b) {
6354 vector
unsigned int __res =
6355 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6356 return (vector
float)__res;
6361 vector
double __b) {
6362 return (vector
double)((vector
unsigned long long)
__a |
6363 (vector
unsigned long long)
__b);
6367 vector
bool long long __b) {
6368 return (vector
double)((vector
unsigned long long)
__a |
6369 (vector
unsigned long long)
__b);
6373 vector
double __b) {
6374 return (vector
double)((vector
unsigned long long)
__a |
6375 (vector
unsigned long long)
__b);
6379 vec_or(vector
signed long long __a, vector
signed long long __b) {
6384 vec_or(vector
bool long long __a, vector
signed long long __b) {
6385 return (vector
signed long long)
__a |
__b;
6389 vec_or(vector
signed long long __a, vector
bool long long __b) {
6390 return __a | (vector
signed long long)
__b;
6393 static __inline__ vector
unsigned long long __ATTRS_o_ai
6394 vec_or(vector
unsigned long long __a, vector
unsigned long long __b) {
6398 static __inline__ vector
unsigned long long __ATTRS_o_ai
6399 vec_or(vector
bool long long __a, vector
unsigned long long __b) {
6400 return (vector
unsigned long long)
__a |
__b;
6403 static __inline__ vector
unsigned long long __ATTRS_o_ai
6404 vec_or(vector
unsigned long long __a, vector
bool long long __b) {
6405 return __a | (vector
unsigned long long)
__b;
6409 vec_or(vector
bool long long __a, vector
bool long long __b) {
6414 #ifdef __POWER8_VECTOR__
6416 vec_orc(vector
signed char __a, vector
signed char __b) {
6421 vec_orc(vector
signed char __a, vector
bool char __b) {
6426 vec_orc(vector
bool char __a, vector
signed char __b) {
6431 vec_orc(vector
unsigned char __a, vector
unsigned char __b) {
6436 vec_orc(vector
unsigned char __a, vector
bool char __b) {
6441 vec_orc(vector
bool char __a, vector
unsigned char __b) {
6445 static __inline__ vector
bool char __ATTRS_o_ai vec_orc(vector
bool char __a,
6446 vector
bool char __b) {
6451 vec_orc(vector
signed short __a, vector
signed short __b) {
6456 vec_orc(vector
signed short __a, vector
bool short __b) {
6461 vec_orc(vector
bool short __a, vector
signed short __b) {
6466 vec_orc(vector
unsigned short __a, vector
unsigned short __b) {
6471 vec_orc(vector
unsigned short __a, vector
bool short __b) {
6476 vec_orc(vector
bool short __a, vector
unsigned short __b) {
6481 vec_orc(vector
bool short __a, vector
bool short __b) {
6486 vec_orc(vector
signed int __a, vector
signed int __b) {
6490 static __inline__ vector
signed int __ATTRS_o_ai vec_orc(vector
signed int __a,
6491 vector
bool int __b) {
6496 vec_orc(vector
bool int __a, vector
signed int __b) {
6501 vec_orc(vector
unsigned int __a, vector
unsigned int __b) {
6506 vec_orc(vector
unsigned int __a, vector
bool int __b) {
6511 vec_orc(vector
bool int __a, vector
unsigned int __b) {
6515 static __inline__ vector
bool int __ATTRS_o_ai vec_orc(vector
bool int __a,
6516 vector
bool int __b) {
6521 vec_orc(vector
bool int __a, vector
float __b) {
6522 return (vector
float)(
__a | ~(vector
unsigned int)
__b);
6526 vec_orc(vector
float __a, vector
bool int __b) {
6527 return (vector
float)((vector
unsigned int)
__a | ~
__b);
6531 vec_orc(vector
signed long long __a, vector
signed long long __b) {
6536 vec_orc(vector
signed long long __a, vector
bool long long __b) {
6541 vec_orc(vector
bool long long __a, vector
signed long long __b) {
6545 static __inline__ vector
unsigned long long __ATTRS_o_ai
6546 vec_orc(vector
unsigned long long __a, vector
unsigned long long __b) {
6550 static __inline__ vector
unsigned long long __ATTRS_o_ai
6551 vec_orc(vector
unsigned long long __a, vector
bool long long __b) {
6555 static __inline__ vector
unsigned long long __ATTRS_o_ai
6556 vec_orc(vector
bool long long __a, vector
unsigned long long __b) {
6561 vec_orc(vector
bool long long __a, vector
bool long long __b) {
6566 vec_orc(vector
double __a, vector
bool long long __b) {
6567 return (vector
double)((vector
unsigned long long)
__a | ~
__b);
6571 vec_orc(vector
bool long long __a, vector
double __b) {
6572 return (vector
double)(
__a | ~(vector
unsigned long long)
__b);
6585 return (vector
signed char)
__a |
__b;
6590 return __a | (vector
signed char)
__b;
6600 return (vector
unsigned char)
__a |
__b;
6605 return __a | (vector
unsigned char)
__b;
6609 vector
bool char __b) {
6620 return (vector
short)
__a |
__b;
6624 vector
bool short __b) {
6625 return __a | (vector short)
__b;
6635 return (vector
unsigned short)
__a |
__b;
6640 return __a | (vector
unsigned short)
__b;
6655 return (vector
int)
__a |
__b;
6659 vector
bool int __b) {
6670 return (vector
unsigned int)
__a |
__b;
6679 vector
bool int __b) {
6685 vector
unsigned int __res =
6686 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6687 return (vector
float)__res;
6692 vector
unsigned int __res =
6693 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6694 return (vector
float)__res;
6698 vector
bool int __b) {
6699 vector
unsigned int __res =
6700 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6701 return (vector
float)__res;
6706 vec_vor(vector
signed long long __a, vector
signed long long __b) {
6711 vec_vor(vector
bool long long __a, vector
signed long long __b) {
6712 return (vector
signed long long)
__a |
__b;
6716 vec_vor(vector
signed long long __a, vector
bool long long __b) {
6717 return __a | (vector
signed long long)
__b;
6720 static __inline__ vector
unsigned long long __ATTRS_o_ai
6721 vec_vor(vector
unsigned long long __a, vector
unsigned long long __b) {
6725 static __inline__ vector
unsigned long long __ATTRS_o_ai
6726 vec_vor(vector
bool long long __a, vector
unsigned long long __b) {
6727 return (vector
unsigned long long)
__a |
__b;
6730 static __inline__ vector
unsigned long long __ATTRS_o_ai
6731 vec_vor(vector
unsigned long long __a, vector
bool long long __b) {
6732 return __a | (vector
unsigned long long)
__b;
6736 vec_vor(vector
bool long long __a, vector
bool long long __b) {
6748 #ifdef __LITTLE_ENDIAN__
6749 return (vector
signed char)
vec_perm(
6751 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
6752 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
6754 return (vector
signed char)
vec_perm(
6756 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
6757 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
6763 #ifdef __LITTLE_ENDIAN__
6764 return (vector
unsigned char)
vec_perm(
6766 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
6767 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
6769 return (vector
unsigned char)
vec_perm(
6771 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
6772 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
6778 #ifdef __LITTLE_ENDIAN__
6781 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
6782 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
6786 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
6787 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
6793 #ifdef __LITTLE_ENDIAN__
6796 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
6797 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
6801 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
6802 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
6808 #ifdef __LITTLE_ENDIAN__
6809 return (vector
unsigned short)
vec_perm(
6811 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
6812 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
6814 return (vector
unsigned short)
vec_perm(
6816 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
6817 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
6822 vector
bool int __b) {
6823 #ifdef __LITTLE_ENDIAN__
6824 return (vector
bool short)
vec_perm(
6826 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
6827 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
6829 return (vector
bool short)
vec_perm(
6831 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
6832 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
6838 vec_pack(vector
signed long long __a, vector
signed long long __b) {
6839 #ifdef __LITTLE_ENDIAN__
6840 return (vector
signed int)
vec_perm(
6842 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
6843 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
6845 return (vector
signed int)
vec_perm(
6847 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
6848 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
6852 vec_pack(vector
unsigned long long __a, vector
unsigned long long __b) {
6853 #ifdef __LITTLE_ENDIAN__
6854 return (vector
unsigned int)
vec_perm(
6856 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
6857 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
6859 return (vector
unsigned int)
vec_perm(
6861 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
6862 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
6868 #ifdef __LITTLE_ENDIAN__
6871 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
6872 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
6876 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
6877 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
6883 return (vector
float) (
__a[0],
__a[1],
__b[0],
__b[1]);
6887 #ifdef __POWER9_VECTOR__
6889 vec_pack_to_short_fp32(vector
float __a, vector
float __b) {
6890 vector
float __resa = __builtin_vsx_xvcvsphp(
__a);
6891 vector
float __resb = __builtin_vsx_xvcvsphp(
__b);
6892 #ifdef __LITTLE_ENDIAN__
6893 return (vector
unsigned short)vec_mergee(__resa, __resb);
6895 return (vector
unsigned short)vec_mergeo(__resa, __resb);
6902 #define __builtin_altivec_vpkuhum vec_vpkuhum
6906 #ifdef __LITTLE_ENDIAN__
6907 return (vector
signed char)
vec_perm(
6909 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
6910 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
6912 return (vector
signed char)
vec_perm(
6914 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
6915 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
6921 #ifdef __LITTLE_ENDIAN__
6922 return (vector
unsigned char)
vec_perm(
6924 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
6925 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
6927 return (vector
unsigned char)
vec_perm(
6929 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
6930 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
6936 #ifdef __LITTLE_ENDIAN__
6939 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
6940 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
6944 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
6945 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
6951 #define __builtin_altivec_vpkuwum vec_vpkuwum
6955 #ifdef __LITTLE_ENDIAN__
6958 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
6959 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
6963 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
6964 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
6970 #ifdef __LITTLE_ENDIAN__
6971 return (vector
unsigned short)
vec_perm(
6973 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
6974 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
6976 return (vector
unsigned short)
vec_perm(
6978 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
6979 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
6985 #ifdef __LITTLE_ENDIAN__
6986 return (vector
bool short)
vec_perm(
6988 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
6989 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
6991 return (vector
bool short)
vec_perm(
6993 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
6994 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7000 #ifdef __POWER8_VECTOR__
7001 #define __builtin_altivec_vpkudum vec_vpkudum
7003 static __inline__ vector
int __ATTRS_o_ai vec_vpkudum(vector
long long __a,
7004 vector
long long __b) {
7005 #ifdef __LITTLE_ENDIAN__
7008 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7009 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7013 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7014 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7019 vec_vpkudum(vector
unsigned long long __a, vector
unsigned long long __b) {
7020 #ifdef __LITTLE_ENDIAN__
7021 return (vector
unsigned int)
vec_perm(
7023 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7024 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7026 return (vector
unsigned int)
vec_perm(
7028 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7029 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7034 vec_vpkudum(vector
bool long long __a, vector
bool long long __b) {
7035 #ifdef __LITTLE_ENDIAN__
7037 (vector
long long)
__a, (vector
long long)
__b,
7038 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7039 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7042 (vector
long long)
__a, (vector
long long)
__b,
7043 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7044 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7051 static __inline__ vector pixel
__attribute__((__always_inline__))
7052 vec_packpx(vector
unsigned int __a, vector
unsigned int __b) {
7053 #ifdef __LITTLE_ENDIAN__
7054 return (vector pixel)__builtin_altivec_vpkpx(
__b,
__a);
7056 return (vector pixel)__builtin_altivec_vpkpx(
__a,
__b);
7062 static __inline__ vector pixel
__attribute__((__always_inline__))
7063 vec_vpkpx(vector
unsigned int __a, vector
unsigned int __b) {
7064 #ifdef __LITTLE_ENDIAN__
7065 return (vector pixel)__builtin_altivec_vpkpx(
__b,
__a);
7067 return (vector pixel)__builtin_altivec_vpkpx(
__a,
__b);
7075 #ifdef __LITTLE_ENDIAN__
7076 return __builtin_altivec_vpkshss(
__b,
__a);
7078 return __builtin_altivec_vpkshss(
__a,
__b);
7084 #ifdef __LITTLE_ENDIAN__
7085 return __builtin_altivec_vpkuhus(
__b,
__a);
7087 return __builtin_altivec_vpkuhus(
__a,
__b);
7093 #ifdef __LITTLE_ENDIAN__
7094 return __builtin_altivec_vpkswss(
__b,
__a);
7096 return __builtin_altivec_vpkswss(
__a,
__b);
7102 #ifdef __LITTLE_ENDIAN__
7103 return __builtin_altivec_vpkuwus(
__b,
__a);
7105 return __builtin_altivec_vpkuwus(
__a,
__b);
7109 #ifdef __POWER8_VECTOR__
7111 vector
long long __b) {
7112 #ifdef __LITTLE_ENDIAN__
7113 return __builtin_altivec_vpksdss(
__b,
__a);
7115 return __builtin_altivec_vpksdss(
__a,
__b);
7120 vec_packs(vector
unsigned long long __a, vector
unsigned long long __b) {
7121 #ifdef __LITTLE_ENDIAN__
7122 return __builtin_altivec_vpkudus(
__b,
__a);
7124 return __builtin_altivec_vpkudus(
__a,
__b);
7131 static __inline__ vector
signed char __attribute__((__always_inline__))
7132 vec_vpkshss(vector
short __a, vector
short __b) {
7133 #ifdef __LITTLE_ENDIAN__
7134 return __builtin_altivec_vpkshss(
__b,
__a);
7136 return __builtin_altivec_vpkshss(
__a,
__b);
7142 #ifdef __POWER8_VECTOR__
7143 static __inline__ vector
int __ATTRS_o_ai vec_vpksdss(vector
long long __a,
7144 vector
long long __b) {
7145 #ifdef __LITTLE_ENDIAN__
7146 return __builtin_altivec_vpksdss(
__b,
__a);
7148 return __builtin_altivec_vpksdss(
__a,
__b);
7155 static __inline__ vector
unsigned char __attribute__((__always_inline__))
7156 vec_vpkuhus(vector
unsigned short __a, vector
unsigned short __b) {
7157 #ifdef __LITTLE_ENDIAN__
7158 return __builtin_altivec_vpkuhus(
__b,
__a);
7160 return __builtin_altivec_vpkuhus(
__a,
__b);
7166 #ifdef __POWER8_VECTOR__
7167 static __inline__ vector
unsigned int __attribute__((__always_inline__))
7168 vec_vpkudus(vector
unsigned long long __a, vector
unsigned long long __b) {
7169 #ifdef __LITTLE_ENDIAN__
7170 return __builtin_altivec_vpkudus(
__b,
__a);
7172 return __builtin_altivec_vpkudus(
__a,
__b);
7179 static __inline__ vector
signed short __attribute__((__always_inline__))
7180 vec_vpkswss(vector
int __a, vector
int __b) {
7181 #ifdef __LITTLE_ENDIAN__
7182 return __builtin_altivec_vpkswss(
__b,
__a);
7184 return __builtin_altivec_vpkswss(
__a,
__b);
7190 static __inline__ vector
unsigned short __attribute__((__always_inline__))
7191 vec_vpkuwus(vector
unsigned int __a, vector
unsigned int __b) {
7192 #ifdef __LITTLE_ENDIAN__
7193 return __builtin_altivec_vpkuwus(
__b,
__a);
7195 return __builtin_altivec_vpkuwus(
__a,
__b);
7203 #ifdef __LITTLE_ENDIAN__
7204 return __builtin_altivec_vpkshus(
__b,
__a);
7206 return __builtin_altivec_vpkshus(
__a,
__b);
7212 #ifdef __LITTLE_ENDIAN__
7213 return __builtin_altivec_vpkuhus(
__b,
__a);
7215 return __builtin_altivec_vpkuhus(
__a,
__b);
7221 #ifdef __LITTLE_ENDIAN__
7222 return __builtin_altivec_vpkswus(
__b,
__a);
7224 return __builtin_altivec_vpkswus(
__a,
__b);
7230 #ifdef __LITTLE_ENDIAN__
7231 return __builtin_altivec_vpkuwus(
__b,
__a);
7233 return __builtin_altivec_vpkuwus(
__a,
__b);
7237 #ifdef __POWER8_VECTOR__
7240 #ifdef __LITTLE_ENDIAN__
7241 return __builtin_altivec_vpksdus(
__b,
__a);
7243 return __builtin_altivec_vpksdus(
__a,
__b);
7249 #ifdef __LITTLE_ENDIAN__
7250 return __builtin_altivec_vpkudus(
__b,
__a);
7252 return __builtin_altivec_vpkudus(
__a,
__b);
7261 #ifdef __LITTLE_ENDIAN__
7262 return __builtin_altivec_vpkshus(
__b,
__a);
7264 return __builtin_altivec_vpkshus(
__a,
__b);
7270 #ifdef __LITTLE_ENDIAN__
7271 return __builtin_altivec_vpkuhus(
__b,
__a);
7273 return __builtin_altivec_vpkuhus(
__a,
__b);
7281 #ifdef __LITTLE_ENDIAN__
7282 return __builtin_altivec_vpkswus(
__b,
__a);
7284 return __builtin_altivec_vpkswus(
__a,
__b);
7290 #ifdef __LITTLE_ENDIAN__
7291 return __builtin_altivec_vpkuwus(
__b,
__a);
7293 return __builtin_altivec_vpkuwus(
__a,
__b);
7299 #ifdef __POWER8_VECTOR__
7301 vec_vpksdus(vector
long long __a, vector
long long __b) {
7302 #ifdef __LITTLE_ENDIAN__
7303 return __builtin_altivec_vpksdus(
__b,
__a);
7305 return __builtin_altivec_vpksdus(
__a,
__b);
7321 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
7322 #ifdef __LITTLE_ENDIAN__
7323 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7324 255, 255, 255, 255, 255, 255, 255, 255};
7326 return (vector
signed char)__builtin_altivec_vperm_4si((vector
int)
__b,
7327 (vector
int)
__a, __d);
7329 return (vector
signed char)__builtin_altivec_vperm_4si((vector
int)
__a,
7336 vector
unsigned char __c) {
7337 #ifdef __LITTLE_ENDIAN__
7338 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7339 255, 255, 255, 255, 255, 255, 255, 255};
7341 return (vector
unsigned char)__builtin_altivec_vperm_4si(
7342 (vector
int)
__b, (vector
int)
__a, __d);
7344 return (vector
unsigned char)__builtin_altivec_vperm_4si(
7351 #ifdef __LITTLE_ENDIAN__
7352 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7353 255, 255, 255, 255, 255, 255, 255, 255};
7355 return (vector
bool char)__builtin_altivec_vperm_4si((vector
int)
__b,
7356 (vector
int)
__a, __d);
7358 return (vector
bool char)__builtin_altivec_vperm_4si((vector
int)
__a,
7364 vector
signed short __b,
7365 vector
unsigned char __c) {
7366 #ifdef __LITTLE_ENDIAN__
7367 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7368 255, 255, 255, 255, 255, 255, 255, 255};
7370 return (vector
signed short)__builtin_altivec_vperm_4si((vector
int)
__b,
7371 (vector
int)
__a, __d);
7373 return (vector
signed short)__builtin_altivec_vperm_4si((vector
int)
__a,
7380 vector
unsigned char __c) {
7381 #ifdef __LITTLE_ENDIAN__
7382 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7383 255, 255, 255, 255, 255, 255, 255, 255};
7385 return (vector
unsigned short)__builtin_altivec_vperm_4si(
7386 (vector
int)
__b, (vector
int)
__a, __d);
7388 return (vector
unsigned short)__builtin_altivec_vperm_4si(
7394 vector
bool short __a, vector
bool short __b, vector
unsigned char __c) {
7395 #ifdef __LITTLE_ENDIAN__
7396 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7397 255, 255, 255, 255, 255, 255, 255, 255};
7399 return (vector
bool short)__builtin_altivec_vperm_4si((vector
int)
__b,
7400 (vector
int)
__a, __d);
7402 return (vector
bool short)__builtin_altivec_vperm_4si((vector
int)
__a,
7409 vector
unsigned char __c) {
7410 #ifdef __LITTLE_ENDIAN__
7411 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7412 255, 255, 255, 255, 255, 255, 255, 255};
7414 return (vector pixel)__builtin_altivec_vperm_4si((vector
int)
__b,
7415 (vector
int)
__a, __d);
7417 return (vector pixel)__builtin_altivec_vperm_4si((vector
int)
__a,
7423 vector
signed int __b,
7424 vector
unsigned char __c) {
7425 #ifdef __LITTLE_ENDIAN__
7426 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7427 255, 255, 255, 255, 255, 255, 255, 255};
7429 return (vector
signed int)__builtin_altivec_vperm_4si(
__b,
__a, __d);
7431 return (vector
signed int)__builtin_altivec_vperm_4si(
__a,
__b,
__c);
7437 vector
unsigned char __c) {
7438 #ifdef __LITTLE_ENDIAN__
7439 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7440 255, 255, 255, 255, 255, 255, 255, 255};
7442 return (vector
unsigned int)__builtin_altivec_vperm_4si((vector
int)
__b,
7443 (vector
int)
__a, __d);
7445 return (vector
unsigned int)__builtin_altivec_vperm_4si((vector
int)
__a,
7452 #ifdef __LITTLE_ENDIAN__
7453 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7454 255, 255, 255, 255, 255, 255, 255, 255};
7456 return (vector
bool int)__builtin_altivec_vperm_4si((vector
int)
__b,
7457 (vector
int)
__a, __d);
7459 return (vector
bool int)__builtin_altivec_vperm_4si((vector
int)
__a,
7466 vector
unsigned char __c) {
7467 #ifdef __LITTLE_ENDIAN__
7468 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7469 255, 255, 255, 255, 255, 255, 255, 255};
7471 return (vector
float)__builtin_altivec_vperm_4si((vector
int)
__b,
7472 (vector
int)
__a, __d);
7474 return (vector
float)__builtin_altivec_vperm_4si((vector
int)
__a,
7481 vec_perm(vector
signed long long __a, vector
signed long long __b,
7482 vector
unsigned char __c) {
7483 #ifdef __LITTLE_ENDIAN__
7484 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7485 255, 255, 255, 255, 255, 255, 255, 255};
7487 return (vector
signed long long)__builtin_altivec_vperm_4si(
7488 (vector
int)
__b, (vector
int)
__a, __d);
7490 return (vector
signed long long)__builtin_altivec_vperm_4si(
7495 static __inline__ vector
unsigned long long __ATTRS_o_ai
7496 vec_perm(vector
unsigned long long __a, vector
unsigned long long __b,
7497 vector
unsigned char __c) {
7498 #ifdef __LITTLE_ENDIAN__
7499 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7500 255, 255, 255, 255, 255, 255, 255, 255};
7502 return (vector
unsigned long long)__builtin_altivec_vperm_4si(
7503 (vector
int)
__b, (vector
int)
__a, __d);
7505 return (vector
unsigned long long)__builtin_altivec_vperm_4si(
7512 vector
unsigned char __c) {
7513 #ifdef __LITTLE_ENDIAN__
7514 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7515 255, 255, 255, 255, 255, 255, 255, 255};
7517 return (vector
bool long long)__builtin_altivec_vperm_4si(
7518 (vector
int)
__b, (vector
int)
__a, __d);
7520 return (vector
bool long long)__builtin_altivec_vperm_4si(
7527 #ifdef __LITTLE_ENDIAN__
7528 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7529 255, 255, 255, 255, 255, 255, 255, 255};
7531 return (vector
double)__builtin_altivec_vperm_4si((vector
int)
__b,
7532 (vector
int)
__a, __d);
7534 return (vector
double)__builtin_altivec_vperm_4si((vector
int)
__a,
7543 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
7549 vector
unsigned char __c) {
7554 vector
bool char __a, vector
bool char __b, vector
unsigned char __c) {
7565 vector
unsigned char __c) {
7570 vector
bool short __a, vector
bool short __b, vector
unsigned char __c) {
7581 vector
unsigned char __c) {
7587 vector
unsigned char __c) {
7603 vector
long long __a, vector
long long __b, vector
unsigned char __c) {
7607 static __inline__ vector
unsigned long long __ATTRS_o_ai
7608 vec_vperm(vector
unsigned long long __a, vector
unsigned long long __b,
7609 vector
unsigned char __c) {
7623 return __builtin_vsx_xvresp(
__a);
7625 return __builtin_altivec_vrefp(
__a);
7631 return __builtin_vsx_xvredp(
__a);
7637 static __inline__ vector
float __attribute__((__always_inline__))
7638 vec_vrefp(vector
float __a) {
7639 return __builtin_altivec_vrefp(
__a);
7646 return (vector
signed char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
7651 return (vector
unsigned char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
7655 vector
unsigned short __b) {
7656 return __builtin_altivec_vrlh(
__a,
__b);
7661 return (vector
unsigned short)__builtin_altivec_vrlh((vector
short)
__a,
__b);
7665 vector
unsigned int __b) {
7666 return __builtin_altivec_vrlw(
__a,
__b);
7671 return (vector
unsigned int)__builtin_altivec_vrlw((vector
int)
__a,
__b);
7674 #ifdef __POWER8_VECTOR__
7676 vec_rl(vector
signed long long __a, vector
unsigned long long __b) {
7677 return __builtin_altivec_vrld(
__a,
__b);
7680 static __inline__ vector
unsigned long long __ATTRS_o_ai
7681 vec_rl(vector
unsigned long long __a, vector
unsigned long long __b) {
7682 return __builtin_altivec_vrld(
__a,
__b);
7687 #ifdef __POWER9_VECTOR__
7689 vec_rlmi(vector
unsigned int __a, vector
unsigned int __b,
7690 vector
unsigned int __c) {
7691 return __builtin_altivec_vrlwmi(
__a,
__c,
__b);
7694 static __inline__ vector
unsigned long long __ATTRS_o_ai
7695 vec_rlmi(vector
unsigned long long __a, vector
unsigned long long __b,
7696 vector
unsigned long long __c) {
7697 return __builtin_altivec_vrldmi(
__a,
__c,
__b);
7702 vec_rlnm(vector
unsigned int __a, vector
unsigned int __b,
7703 vector
unsigned int __c) {
7704 vector
unsigned int OneByte = { 0x8, 0x8, 0x8, 0x8 };
7705 return __builtin_altivec_vrlwnm(
__a, ((
__c << OneByte) |
__b));
7708 static __inline__ vector
unsigned long long __ATTRS_o_ai
7709 vec_rlnm(vector
unsigned long long __a, vector
unsigned long long __b,
7710 vector
unsigned long long __c) {
7711 vector
unsigned long long OneByte = { 0x8, 0x8 };
7712 return __builtin_altivec_vrldnm(
__a, ((
__c << OneByte) |
__b));
7720 return (vector
signed char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
7725 return (vector
unsigned char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
7732 return __builtin_altivec_vrlh(
__a,
__b);
7737 return (vector
unsigned short)__builtin_altivec_vrlh((vector
short)
__a,
__b);
7743 vector
unsigned int __b) {
7744 return __builtin_altivec_vrlw(
__a,
__b);
7749 return (vector
unsigned int)__builtin_altivec_vrlw((vector
int)
__a,
__b);
7756 return __builtin_vsx_xvrspi(
__a);
7758 return __builtin_altivec_vrfin(
__a);
7764 return __builtin_vsx_xvrdpi(
__a);
7769 static __inline__ vector
float __ATTRS_o_ai vec_rint(vector
float __a) {
7770 return __builtin_vsx_xvrspic(
__a);
7773 static __inline__ vector
double __ATTRS_o_ai vec_rint(vector
double __a) {
7774 return __builtin_vsx_xvrdpic(
__a);
7779 static __inline__ vector
float __ATTRS_o_ai vec_nearbyint(vector
float __a) {
7780 return __builtin_vsx_xvrspi(
__a);
7783 static __inline__ vector
double __ATTRS_o_ai vec_nearbyint(vector
double __a) {
7784 return __builtin_vsx_xvrdpi(
__a);
7790 static __inline__ vector
float __attribute__((__always_inline__))
7791 vec_vrfin(vector
float __a) {
7792 return __builtin_altivec_vrfin(
__a);
7798 static __inline__ vector
float __ATTRS_o_ai vec_sqrt(vector
float __a) {
7799 return __builtin_vsx_xvsqrtsp(
__a);
7802 static __inline__ vector
double __ATTRS_o_ai vec_sqrt(vector
double __a) {
7803 return __builtin_vsx_xvsqrtdp(
__a);
7811 return __builtin_vsx_xvrsqrtesp(
__a);
7813 return __builtin_altivec_vrsqrtefp(
__a);
7819 return __builtin_vsx_xvrsqrtedp(
__a);
7825 static __inline__ __vector
float __attribute__((__always_inline__))
7826 vec_vrsqrtefp(vector
float __a) {
7827 return __builtin_altivec_vrsqrtefp(
__a);
7832 #define __builtin_altivec_vsel_4si vec_sel
7835 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
7836 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
7841 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
7846 vector
unsigned char __c) {
7851 vector
unsigned char __a, vector
unsigned char __b, vector
bool char __c) {
7852 return (
__a & ~(vector
unsigned char)
__c) | (
__b & (vector
unsigned char)
__c);
7857 return (
__a & ~(vector
bool char)
__c) | (
__b & (vector
bool char)
__c);
7861 vector
bool char __b,
7862 vector
bool char __c) {
7868 vector
unsigned short __c) {
7869 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
7874 vector
bool short __c) {
7875 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
7880 vector
unsigned short __c) {
7886 vector
bool short __c) {
7887 return (
__a & ~(vector
unsigned short)
__c) |
7888 (
__b & (vector
unsigned short)
__c);
7892 vector
bool short __a, vector
bool short __b, vector
unsigned short __c) {
7893 return (
__a & ~(vector
bool short)
__c) | (
__b & (vector
bool short)
__c);
7903 vector
unsigned int __c) {
7909 vector
bool int __c) {
7914 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned int __c) {
7920 return (
__a & ~(vector
unsigned int)
__c) | (
__b & (vector
unsigned int)
__c);
7929 vector
bool int __b,
7930 vector
bool int __c) {
7936 vector
unsigned int __c) {
7937 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
7939 return (vector
float)__res;
7944 vector
bool int __c) {
7945 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
7947 return (vector
float)__res;
7953 vector
long long __res = ((vector
long long)
__a & ~(vector
long long)
__c) |
7954 ((vector
long long)
__b & (vector
long long)
__c);
7955 return (vector
double)__res;
7959 vec_sel(vector
double __a, vector
double __b, vector
unsigned long long __c) {
7960 vector
long long __res = ((vector
long long)
__a & ~(vector
long long)
__c) |
7961 ((vector
long long)
__b & (vector
long long)
__c);
7962 return (vector
double)__res;
7969 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
7970 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
7975 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
7980 vector
unsigned char __c) {
7985 vector
unsigned char __a, vector
unsigned char __b, vector
bool char __c) {
7986 return (
__a & ~(vector
unsigned char)
__c) | (
__b & (vector
unsigned char)
__c);
7991 return (
__a & ~(vector
bool char)
__c) | (
__b & (vector
bool char)
__c);
7995 vector
bool char __b,
7996 vector
bool char __c) {
8002 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
8007 vector
bool short __c) {
8008 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
8013 vector
unsigned short __c) {
8019 vector
bool short __c) {
8020 return (
__a & ~(vector
unsigned short)
__c) |
8021 (
__b & (vector
unsigned short)
__c);
8025 vector
bool short __a, vector
bool short __b, vector
unsigned short __c) {
8026 return (
__a & ~(vector
bool short)
__c) | (
__b & (vector
bool short)
__c);
8036 vector
unsigned int __c) {
8042 vector
bool int __c) {
8047 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned int __c) {
8052 vector
unsigned int __a, vector
unsigned int __b, vector
bool int __c) {
8053 return (
__a & ~(vector
unsigned int)
__c) | (
__b & (vector
unsigned int)
__c);
8062 vector
bool int __b,
8063 vector
bool int __c) {
8069 vector
unsigned int __c) {
8070 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
8072 return (vector
float)__res;
8077 vector
bool int __c) {
8078 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
8080 return (vector
float)__res;
8090 (vector
unsigned char)(
sizeof(
unsigned char) * __CHAR_BIT__));
8095 return (vector
signed char)
vec_sl((vector
unsigned char)
__a,
__b);
8100 return __a << (
__b % (vector
unsigned short)(
sizeof(
unsigned short) *
8105 vector
unsigned short __b) {
8106 return (vector
short)
vec_sl((vector
unsigned short)
__a,
__b);
8112 (vector
unsigned int)(
sizeof(
unsigned int) * __CHAR_BIT__));
8116 vector
unsigned int __b) {
8117 return (vector
int)
vec_sl((vector
unsigned int)
__a,
__b);
8120 #ifdef __POWER8_VECTOR__
8121 static __inline__ vector
unsigned long long __ATTRS_o_ai
8122 vec_sl(vector
unsigned long long __a, vector
unsigned long long __b) {
8123 return __a << (
__b % (vector
unsigned long long)(
sizeof(
unsigned long long) *
8128 vec_sl(vector
long long __a, vector
unsigned long long __b) {
8129 return (vector
long long)
vec_sl((vector
unsigned long long)
__a,
__b);
8135 #define __builtin_altivec_vslb vec_vslb
8149 #define __builtin_altivec_vslh vec_vslh
8163 #define __builtin_altivec_vslw vec_vslw
8166 vector
unsigned int __b) {
8177 #define __builtin_altivec_vsldoi_4si vec_sld
8180 vector
signed char __a, vector
signed char __b,
unsigned const int __c) {
8181 unsigned char __d =
__c & 0x0F;
8182 #ifdef __LITTLE_ENDIAN__
8184 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8185 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8186 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8187 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8191 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8192 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8193 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8199 unsigned const int __c) {
8200 unsigned char __d =
__c & 0x0F;
8201 #ifdef __LITTLE_ENDIAN__
8203 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8204 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8205 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8206 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8210 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8211 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8212 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8218 unsigned char __d =
__c & 0x0F;
8219 #ifdef __LITTLE_ENDIAN__
8221 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8222 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8223 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8224 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8228 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8229 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8230 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8235 vector
signed short __a, vector
signed short __b,
unsigned const int __c) {
8236 unsigned char __d =
__c & 0x0F;
8237 #ifdef __LITTLE_ENDIAN__
8239 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8240 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8241 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8242 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8246 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8247 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8248 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8254 unsigned const int __c) {
8255 unsigned char __d =
__c & 0x0F;
8256 #ifdef __LITTLE_ENDIAN__
8258 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8259 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8260 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8261 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8265 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8266 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8267 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8273 unsigned char __d =
__c & 0x0F;
8274 #ifdef __LITTLE_ENDIAN__
8276 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8277 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8278 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8279 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8283 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8284 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8285 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8291 unsigned const int __c) {
8292 unsigned char __d =
__c & 0x0F;
8293 #ifdef __LITTLE_ENDIAN__
8295 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8296 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8297 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8298 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8302 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8303 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8304 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8310 unsigned char __d =
__c & 0x0F;
8311 #ifdef __LITTLE_ENDIAN__
8313 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8314 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8315 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8316 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8320 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8321 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8322 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8327 vector
unsigned int __a, vector
unsigned int __b,
unsigned const int __c) {
8328 unsigned char __d =
__c & 0x0F;
8329 #ifdef __LITTLE_ENDIAN__
8331 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8332 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8333 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8334 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8338 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8339 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8340 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8345 vector
bool int __b,
8346 unsigned const int __c) {
8347 unsigned char __d =
__c & 0x0F;
8348 #ifdef __LITTLE_ENDIAN__
8350 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8351 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8352 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8353 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8357 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8358 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8359 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8365 unsigned const int __c) {
8366 unsigned char __d =
__c & 0x0F;
8367 #ifdef __LITTLE_ENDIAN__
8369 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8370 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8371 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8372 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8376 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8377 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8378 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8384 vec_sld(vector
bool long long __a, vector
bool long long __b,
8385 unsigned const int __c) {
8386 unsigned char __d =
__c & 0x0F;
8387 #ifdef __LITTLE_ENDIAN__
8389 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8390 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8391 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8392 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8396 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8397 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8398 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8403 vec_sld(vector
signed long long __a, vector
signed long long __b,
8404 unsigned const int __c) {
8405 unsigned char __d =
__c & 0x0F;
8406 #ifdef __LITTLE_ENDIAN__
8408 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8409 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8410 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8411 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8415 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8416 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8417 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8421 static __inline__ vector
unsigned long long __ATTRS_o_ai
8422 vec_sld(vector
unsigned long long __a, vector
unsigned long long __b,
8423 unsigned const int __c) {
8424 unsigned char __d =
__c & 0x0F;
8425 #ifdef __LITTLE_ENDIAN__
8427 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8428 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8429 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8430 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8434 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8435 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8436 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8442 unsigned const int __c) {
8443 unsigned char __d =
__c & 0x0F;
8444 #ifdef __LITTLE_ENDIAN__
8446 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8447 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8448 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8449 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8453 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8454 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8455 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8462 vector
signed char __a, vector
signed char __b,
unsigned const int __c) {
8468 unsigned const int __c) {
8473 vector
signed short __a, vector
signed short __b,
unsigned const int __c) {
8479 unsigned const int __c) {
8489 vector
unsigned int __a, vector
unsigned int __b,
unsigned const int __c) {
8495 vec_sldw(vector
signed long long __a, vector
signed long long __b,
8496 unsigned const int __c) {
8500 static __inline__ vector
unsigned long long __ATTRS_o_ai
8501 vec_sldw(vector
unsigned long long __a, vector
unsigned long long __b,
8502 unsigned const int __c) {
8507 #ifdef __POWER9_VECTOR__
8510 vec_slv(vector
unsigned char __a, vector
unsigned char __b) {
8511 return __builtin_altivec_vslv(
__a,
__b);
8516 vec_srv(vector
unsigned char __a, vector
unsigned char __b) {
8517 return __builtin_altivec_vsrv(
__a,
__b);
8525 unsigned char __d =
__c & 0x0F;
8526 #ifdef __LITTLE_ENDIAN__
8528 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8529 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8530 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8531 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8535 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8536 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8537 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8542 vector
unsigned char __a, vector
unsigned char __b,
unsigned char __c) {
8543 unsigned char __d =
__c & 0x0F;
8544 #ifdef __LITTLE_ENDIAN__
8546 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8547 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8548 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8549 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8553 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8554 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8555 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8561 unsigned char __c) {
8562 unsigned char __d =
__c & 0x0F;
8563 #ifdef __LITTLE_ENDIAN__
8565 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8566 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8567 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8568 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8572 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8573 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8574 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8579 vector
unsigned short __a, vector
unsigned short __b,
unsigned char __c) {
8580 unsigned char __d =
__c & 0x0F;
8581 #ifdef __LITTLE_ENDIAN__
8583 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8584 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8585 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8586 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8590 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8591 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8592 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8598 unsigned char __c) {
8599 unsigned char __d =
__c & 0x0F;
8600 #ifdef __LITTLE_ENDIAN__
8602 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8603 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8604 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8605 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8609 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8610 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8611 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8617 unsigned char __c) {
8618 unsigned char __d =
__c & 0x0F;
8619 #ifdef __LITTLE_ENDIAN__
8621 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8622 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8623 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8624 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8628 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8629 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8630 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8635 vector
unsigned int __a, vector
unsigned int __b,
unsigned char __c) {
8636 unsigned char __d =
__c & 0x0F;
8637 #ifdef __LITTLE_ENDIAN__
8639 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8640 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8641 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8642 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8646 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8647 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8648 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8654 unsigned char __c) {
8655 unsigned char __d =
__c & 0x0F;
8656 #ifdef __LITTLE_ENDIAN__
8658 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
8659 20 - __d, 21 - __d, 22 - __d, 23 - __d,
8660 24 - __d, 25 - __d, 26 - __d, 27 - __d,
8661 28 - __d, 29 - __d, 30 - __d, 31 - __d));
8665 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
8666 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
8667 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
8675 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
8681 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
8687 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
8693 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
8699 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
8705 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
8711 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
8717 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
8723 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
8728 vector
unsigned char __b) {
8729 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8733 vector
unsigned short __b) {
8734 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8738 vector
unsigned int __b) {
8739 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8744 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
8750 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
8756 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
8762 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
8768 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
8774 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
8779 vector
unsigned char __b) {
8780 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8784 vector
unsigned short __b) {
8785 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8789 vector
unsigned int __b) {
8790 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8794 vector
unsigned char __b) {
8795 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
8799 vector
unsigned short __b) {
8800 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
8804 vector
unsigned int __b) {
8805 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
8810 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
8816 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
8822 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
8828 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
8834 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
8840 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
8846 vec_sll(vector
signed long long __a, vector
unsigned char __b) {
8847 return (vector
signed long long)__builtin_altivec_vsl((vector
int)
__a,
8851 static __inline__ vector
unsigned long long __ATTRS_o_ai
8852 vec_sll(vector
unsigned long long __a, vector
unsigned char __b) {
8853 return (vector
unsigned long long)__builtin_altivec_vsl((vector
int)
__a,
8862 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
8868 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
8874 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
8880 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
8886 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
8892 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
8898 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
8904 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
8910 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
8915 vector
unsigned char __b) {
8916 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8920 vector
unsigned short __b) {
8921 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8925 vector
unsigned int __b) {
8926 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8931 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
8937 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
8943 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
8949 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
8955 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
8961 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
8966 vector
unsigned char __b) {
8967 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8971 vector
unsigned short __b) {
8972 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8976 vector
unsigned int __b) {
8977 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
8981 vector
unsigned char __b) {
8982 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
8986 vector
unsigned short __b) {
8987 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
8991 vector
unsigned int __b) {
8992 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
8997 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9003 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9009 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9015 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9021 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9027 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9035 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
9041 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
9047 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
9053 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
9058 vector
signed char __b) {
9059 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9063 vector
unsigned char __b) {
9064 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9069 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
9075 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
9080 vector
signed char __b) {
9081 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9085 vector
unsigned char __b) {
9086 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9090 vector
signed char __b) {
9091 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
9095 vector
unsigned char __b) {
9096 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
9101 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
9107 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
9112 vector
signed char __b) {
9113 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9117 vector
unsigned char __b) {
9118 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9123 vec_slo(vector
signed long long __a, vector
signed char __b) {
9124 return (vector
signed long long)__builtin_altivec_vslo((vector
int)
__a,
9129 vec_slo(vector
signed long long __a, vector
unsigned char __b) {
9130 return (vector
signed long long)__builtin_altivec_vslo((vector
int)
__a,
9134 static __inline__ vector
unsigned long long __ATTRS_o_ai
9135 vec_slo(vector
unsigned long long __a, vector
signed char __b) {
9136 return (vector
unsigned long long)__builtin_altivec_vslo((vector
int)
__a,
9140 static __inline__ vector
unsigned long long __ATTRS_o_ai
9141 vec_slo(vector
unsigned long long __a, vector
unsigned char __b) {
9142 return (vector
unsigned long long)__builtin_altivec_vslo((vector
int)
__a,
9151 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
9157 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
9163 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
9169 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
9174 vector
signed char __b) {
9175 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9179 vector
unsigned char __b) {
9180 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9185 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
9191 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
9196 vector
signed char __b) {
9197 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9201 vector
unsigned char __b) {
9202 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9206 vector
signed char __b) {
9207 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
9211 vector
unsigned char __b) {
9212 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
9217 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
9223 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
9228 vector
signed char __b) {
9229 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9233 vector
unsigned char __b) {
9234 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9256 unsigned char b0 = (
__b & 0x07) * 2;
9257 unsigned char b1 = b0 + 1;
9259 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
9260 b0, b1, b0, b1, b0, b1));
9265 unsigned char b0 = (
__b & 0x07) * 2;
9266 unsigned char b1 = b0 + 1;
9268 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
9269 b0, b1, b0, b1, b0, b1));
9274 unsigned char b0 = (
__b & 0x07) * 2;
9275 unsigned char b1 = b0 + 1;
9277 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
9278 b0, b1, b0, b1, b0, b1));
9282 unsigned const int __b) {
9283 unsigned char b0 = (
__b & 0x07) * 2;
9284 unsigned char b1 = b0 + 1;
9286 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
9287 b0, b1, b0, b1, b0, b1));
9292 unsigned char b0 = (
__b & 0x03) * 4;
9293 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
9295 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
9296 b2, b3, b0, b1, b2, b3));
9301 unsigned char b0 = (
__b & 0x03) * 4;
9302 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
9304 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
9305 b2, b3, b0, b1, b2, b3));
9310 unsigned char b0 = (
__b & 0x03) * 4;
9311 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
9313 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
9314 b2, b3, b0, b1, b2, b3));
9318 unsigned const int __b) {
9319 unsigned char b0 = (
__b & 0x03) * 4;
9320 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
9322 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
9323 b2, b3, b0, b1, b2, b3));
9328 unsigned const int __b) {
9329 unsigned char b0 = (
__b & 0x01) * 8;
9330 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
9331 b6 = b0 + 6, b7 = b0 + 7;
9333 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
9334 b2, b3, b4, b5, b6, b7));
9338 unsigned char b0 = (
__b & 0x01) * 8;
9339 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
9340 b6 = b0 + 6, b7 = b0 + 7;
9342 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
9343 b2, b3, b4, b5, b6, b7));
9347 unsigned char b0 = (
__b & 0x01) * 8;
9348 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
9349 b6 = b0 + 6, b7 = b0 + 7;
9351 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
9352 b2, b3, b4, b5, b6, b7));
9354 static __inline__ vector
unsigned long long __ATTRS_o_ai
9356 unsigned char b0 = (
__b & 0x01) * 8;
9357 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
9358 b6 = b0 + 6, b7 = b0 + 7;
9360 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
9361 b2, b3, b4, b5, b6, b7));
9367 #define __builtin_altivec_vspltb vec_vspltb
9380 unsigned char __b) {
9386 #define __builtin_altivec_vsplth vec_vsplth
9389 unsigned char __b) {
9391 unsigned char b1 =
__b + 1;
9393 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
9400 unsigned char b1 =
__b + 1;
9402 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
9409 unsigned char b1 =
__b + 1;
9411 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
9416 unsigned char __b) {
9418 unsigned char b1 =
__b + 1;
9420 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
9426 #define __builtin_altivec_vspltw vec_vspltw
9429 unsigned char __b) {
9431 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
9433 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
9434 b1, b2, b3,
__b, b1, b2, b3));
9440 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
9442 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
9443 b1, b2, b3,
__b, b1, b2, b3));
9447 unsigned char __b) {
9449 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
9451 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
9452 b1, b2, b3,
__b, b1, b2, b3));
9456 unsigned char __b) {
9458 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
9460 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
9461 b1, b2, b3,
__b, b1, b2, b3));
9466 #define __builtin_altivec_vspltisb vec_splat_s8
9471 return (vector
signed char)(
__a);
9479 return (vector
signed char)(
__a);
9484 #define __builtin_altivec_vspltish vec_splat_s16
9488 return (vector
short)(
__a);
9495 return (vector
short)(
__a);
9500 #define __builtin_altivec_vspltisw vec_splat_s32
9504 return (vector
int)(
__a);
9511 return (vector
int)(
__a);
9519 return (vector
unsigned char)(
__a);
9527 return (vector
unsigned short)(
__a);
9535 return (vector
unsigned int)(
__a);
9545 (
__b % (vector
unsigned char)(
sizeof(
unsigned char) * __CHAR_BIT__));
9550 return (vector
signed char)
vec_sr((vector
unsigned char)
__a,
__b);
9556 (
__b % (vector
unsigned short)(
sizeof(
unsigned short) * __CHAR_BIT__));
9560 vector
unsigned short __b) {
9561 return (vector
short)
vec_sr((vector
unsigned short)
__a,
__b);
9567 (
__b % (vector
unsigned int)(
sizeof(
unsigned int) * __CHAR_BIT__));
9571 vector
unsigned int __b) {
9572 return (vector
int)
vec_sr((vector
unsigned int)
__a,
__b);
9575 #ifdef __POWER8_VECTOR__
9576 static __inline__ vector
unsigned long long __ATTRS_o_ai
9577 vec_sr(vector
unsigned long long __a, vector
unsigned long long __b) {
9578 return __a >> (
__b % (vector
unsigned long long)(
sizeof(
unsigned long long) *
9583 vec_sr(vector
long long __a, vector
unsigned long long __b) {
9584 return (vector
long long)
vec_sr((vector
unsigned long long)
__a,
__b);
9590 #define __builtin_altivec_vsrb vec_vsrb
9604 #define __builtin_altivec_vsrh vec_vsrh
9618 #define __builtin_altivec_vsrw vec_vsrw
9621 vector
unsigned int __b) {
9634 return (vector
signed char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
9639 return (vector
unsigned char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
9643 vector
unsigned short __b) {
9644 return __builtin_altivec_vsrah(
__a, (vector
unsigned short)
__b);
9649 return (vector
unsigned short)__builtin_altivec_vsrah((vector
short)
__a,
__b);
9653 vector
unsigned int __b) {
9654 return __builtin_altivec_vsraw(
__a,
__b);
9659 return (vector
unsigned int)__builtin_altivec_vsraw((vector
int)
__a,
__b);
9662 #ifdef __POWER8_VECTOR__
9664 vec_sra(vector
signed long long __a, vector
unsigned long long __b) {
9668 static __inline__ vector
unsigned long long __ATTRS_o_ai
9669 vec_sra(vector
unsigned long long __a, vector
unsigned long long __b) {
9670 return (vector
unsigned long long)((vector
signed long long)
__a >>
__b);
9678 return (vector
signed char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
9683 return (vector
unsigned char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
9690 return __builtin_altivec_vsrah(
__a, (vector
unsigned short)
__b);
9695 return (vector
unsigned short)__builtin_altivec_vsrah((vector
short)
__a,
__b);
9701 vector
unsigned int __b) {
9702 return __builtin_altivec_vsraw(
__a,
__b);
9707 return (vector
unsigned int)__builtin_altivec_vsraw((vector
int)
__a,
__b);
9714 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
9720 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
9726 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
9732 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
9738 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
9744 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
9750 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
9756 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
9762 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
9767 vector
unsigned char __b) {
9768 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9772 vector
unsigned short __b) {
9773 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9777 vector
unsigned int __b) {
9778 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9783 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
9789 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
9795 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
9801 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
9807 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
9813 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
9818 vector
unsigned char __b) {
9819 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9823 vector
unsigned short __b) {
9824 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9828 vector
unsigned int __b) {
9829 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9833 vector
unsigned char __b) {
9834 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
9838 vector
unsigned short __b) {
9839 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
9843 vector
unsigned int __b) {
9844 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
9849 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
9855 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
9861 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
9867 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
9873 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
9879 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
9885 vec_srl(vector
signed long long __a, vector
unsigned char __b) {
9886 return (vector
signed long long)__builtin_altivec_vsr((vector
int)
__a,
9890 static __inline__ vector
unsigned long long __ATTRS_o_ai
9891 vec_srl(vector
unsigned long long __a, vector
unsigned char __b) {
9892 return (vector
unsigned long long)__builtin_altivec_vsr((vector
int)
__a,
9901 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
9907 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
9913 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
9919 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
9925 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
9931 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
9937 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
9943 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
9949 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
9954 vector
unsigned char __b) {
9955 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9959 vector
unsigned short __b) {
9960 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9964 vector
unsigned int __b) {
9965 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
9970 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
9976 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
9982 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
9988 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
9994 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10000 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10005 vector
unsigned char __b) {
10006 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10010 vector
unsigned short __b) {
10011 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10015 vector
unsigned int __b) {
10016 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10020 vector
unsigned char __b) {
10021 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10025 vector
unsigned short __b) {
10026 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10030 vector
unsigned int __b) {
10031 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10036 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10042 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10048 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10054 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10060 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10066 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10074 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
10080 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
10086 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
10092 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
10097 vector
signed char __b) {
10098 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10102 vector
unsigned char __b) {
10103 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10108 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
10114 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
10119 vector
signed char __b) {
10120 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10124 vector
unsigned char __b) {
10125 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10129 vector
signed char __b) {
10130 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
10134 vector
unsigned char __b) {
10135 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
10140 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
10146 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
10151 vector
signed char __b) {
10152 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10156 vector
unsigned char __b) {
10157 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10161 static __inline__ vector
signed long long __ATTRS_o_ai
10162 vec_sro(vector
signed long long __a, vector
signed char __b) {
10163 return (vector
signed long long)__builtin_altivec_vsro((vector
int)
__a,
10167 static __inline__ vector
signed long long __ATTRS_o_ai
10168 vec_sro(vector
signed long long __a, vector
unsigned char __b) {
10169 return (vector
signed long long)__builtin_altivec_vsro((vector
int)
__a,
10173 static __inline__ vector
unsigned long long __ATTRS_o_ai
10174 vec_sro(vector
unsigned long long __a, vector
signed char __b) {
10175 return (vector
unsigned long long)__builtin_altivec_vsro((vector
int)
__a,
10179 static __inline__ vector
unsigned long long __ATTRS_o_ai
10180 vec_sro(vector
unsigned long long __a, vector
unsigned char __b) {
10181 return (vector
unsigned long long)__builtin_altivec_vsro((vector
int)
__a,
10190 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
10196 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
10202 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
10208 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
10213 vector
signed char __b) {
10214 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10218 vector
unsigned char __b) {
10219 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10224 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
10230 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
10235 vector
signed char __b) {
10236 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10240 vector
unsigned char __b) {
10241 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10245 vector
signed char __b) {
10246 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
10250 vector
unsigned char __b) {
10251 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
10256 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
10262 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
10267 vector
signed char __b) {
10268 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10272 vector
unsigned char __b) {
10273 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
10279 vector
signed char *
__c) {
10280 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10284 signed char *
__c) {
10285 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10289 vector
unsigned char *
__c) {
10290 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10294 unsigned char *
__c) {
10295 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10299 signed char *
__c) {
10300 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10304 unsigned char *
__c) {
10305 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10309 vector
bool char *
__c) {
10310 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10314 vector
short *
__c) {
10315 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10320 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10324 vector
unsigned short *
__c) {
10325 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10329 unsigned short *
__c) {
10330 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10335 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10339 unsigned short *
__c) {
10340 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10344 vector
bool short *
__c) {
10345 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10350 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10354 unsigned short *
__c) {
10355 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10359 vector pixel *
__c) {
10360 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10373 vector
unsigned int *
__c) {
10374 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10378 unsigned int *
__c) {
10379 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10384 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10388 unsigned int *
__c) {
10389 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10393 vector
bool int *
__c) {
10394 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10398 vector
float *
__c) {
10399 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10404 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10410 vector
signed char *
__c) {
10411 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10415 signed char *
__c) {
10416 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10420 vector
unsigned char *
__c) {
10421 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10425 unsigned char *
__c) {
10426 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10430 signed char *
__c) {
10431 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10435 unsigned char *
__c) {
10436 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10440 vector
bool char *
__c) {
10441 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10445 vector
short *
__c) {
10446 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10451 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10455 vector
unsigned short *
__c) {
10456 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10460 unsigned short *
__c) {
10461 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10466 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10470 unsigned short *
__c) {
10471 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10475 vector
bool short *
__c) {
10476 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10481 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10485 unsigned short *
__c) {
10486 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10490 vector pixel *
__c) {
10491 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10505 vector
unsigned int *
__c) {
10506 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10510 unsigned int *
__c) {
10511 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10516 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10520 unsigned int *
__c) {
10521 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10525 vector
bool int *
__c) {
10526 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10530 vector
float *
__c) {
10531 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10536 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
10542 signed char *
__c) {
10543 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10547 unsigned char *
__c) {
10548 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10552 signed char *
__c) {
10553 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10557 unsigned char *
__c) {
10558 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10563 __builtin_altivec_stvehx(
__a,
__b,
__c);
10567 unsigned short *
__c) {
10568 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10573 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10577 unsigned short *
__c) {
10578 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10583 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10587 unsigned short *
__c) {
10588 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10592 __builtin_altivec_stvewx(
__a,
__b,
__c);
10596 unsigned int *
__c) {
10597 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10602 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10606 unsigned int *
__c) {
10607 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10612 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10618 signed char *
__c) {
10619 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10623 int __b,
unsigned char *
__c) {
10624 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10628 signed char *
__c) {
10629 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10633 unsigned char *
__c) {
10634 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
10641 __builtin_altivec_stvehx(
__a,
__b,
__c);
10645 int __b,
unsigned short *
__c) {
10646 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10651 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10655 unsigned short *
__c) {
10656 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10661 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10665 unsigned short *
__c) {
10666 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
10673 __builtin_altivec_stvewx(
__a,
__b,
__c);
10677 unsigned int *
__c) {
10678 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10683 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10687 unsigned int *
__c) {
10688 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10693 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
10699 vector
signed char *
__c) {
10700 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10704 signed char *
__c) {
10705 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10709 vector
unsigned char *
__c) {
10710 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10714 unsigned char *
__c) {
10715 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10719 signed char *
__c) {
10720 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10724 unsigned char *
__c) {
10725 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10729 vector
bool char *
__c) {
10730 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10734 vector
short *
__c) {
10735 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10740 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10744 vector
unsigned short *
__c) {
10745 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10749 unsigned short *
__c) {
10750 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10755 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10759 unsigned short *
__c) {
10760 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10764 vector
bool short *
__c) {
10765 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10770 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10774 unsigned short *
__c) {
10775 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10779 vector pixel *
__c) {
10780 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10785 __builtin_altivec_stvxl(
__a,
__b,
__c);
10789 __builtin_altivec_stvxl(
__a,
__b,
__c);
10793 vector
unsigned int *
__c) {
10794 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10798 unsigned int *
__c) {
10799 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10804 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10808 unsigned int *
__c) {
10809 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10813 vector
bool int *
__c) {
10814 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10818 vector
float *
__c) {
10819 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10824 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10830 vector
signed char *
__c) {
10831 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10835 signed char *
__c) {
10836 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10840 vector
unsigned char *
__c) {
10841 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10845 unsigned char *
__c) {
10846 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10850 signed char *
__c) {
10851 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10855 unsigned char *
__c) {
10856 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10860 vector
bool char *
__c) {
10861 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10865 vector
short *
__c) {
10866 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10871 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10876 vector
unsigned short *
__c) {
10877 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10881 int __b,
unsigned short *
__c) {
10882 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10887 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10891 unsigned short *
__c) {
10892 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10896 vector
bool short *
__c) {
10897 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10902 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10906 unsigned short *
__c) {
10907 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10911 vector pixel *
__c) {
10912 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10917 __builtin_altivec_stvxl(
__a,
__b,
__c);
10922 __builtin_altivec_stvxl(
__a,
__b,
__c);
10926 vector
unsigned int *
__c) {
10927 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10931 unsigned int *
__c) {
10932 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10937 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10941 unsigned int *
__c) {
10942 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10946 vector
bool int *
__c) {
10947 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10951 vector
float *
__c) {
10952 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10957 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
10969 return (vector
signed char)
__a -
__b;
10974 return __a - (vector
signed char)
__b;
10984 return (vector
unsigned char)
__a -
__b;
10989 return __a - (vector
unsigned char)
__b;
10993 vector
short __b) {
10998 vector
short __b) {
10999 return (vector
short)
__a -
__b;
11003 vector
bool short __b) {
11004 return __a - (vector short)
__b;
11014 return (vector
unsigned short)
__a -
__b;
11019 return __a - (vector
unsigned short)
__b;
11029 return (vector
int)
__a -
__b;
11033 vector
bool int __b) {
11044 return (vector
unsigned int)
__a -
__b;
11052 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
11054 vec_sub(vector
signed __int128
__a, vector
signed __int128
__b) {
11058 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11059 vec_sub(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
11065 static __inline__ vector
signed long long __ATTRS_o_ai
11066 vec_sub(vector
signed long long __a, vector
signed long long __b) {
11070 static __inline__ vector
unsigned long long __ATTRS_o_ai
11071 vec_sub(vector
unsigned long long __a, vector
unsigned long long __b) {
11076 vector
double __b) {
11082 vector
float __b) {
11088 #define __builtin_altivec_vsububm vec_vsububm
11097 return (vector
signed char)
__a -
__b;
11102 return __a - (vector
signed char)
__b;
11112 return (vector
unsigned char)
__a -
__b;
11117 return __a - (vector
unsigned char)
__b;
11122 #define __builtin_altivec_vsubuhm vec_vsubuhm
11125 vector
short __b) {
11130 vector
short __b) {
11131 return (vector
short)
__a -
__b;
11135 vector
bool short __b) {
11136 return __a - (vector short)
__b;
11146 return (vector
unsigned short)
__a -
__b;
11151 return __a - (vector
unsigned short)
__b;
11156 #define __builtin_altivec_vsubuwm vec_vsubuwm
11165 return (vector
int)
__a -
__b;
11169 vector
bool int __b) {
11180 return (vector
unsigned int)
__a -
__b;
11190 #define __builtin_altivec_vsubfp vec_vsubfp
11192 static __inline__ vector
float __attribute__((__always_inline__))
11193 vec_vsubfp(vector
float __a, vector
float __b) {
11201 return (vector
signed int)__builtin_altivec_vsubcuw((vector
unsigned int)
__a,
11202 (vector
unsigned int)
__b);
11207 return __builtin_altivec_vsubcuw(
__a,
__b);
11210 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
11211 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11212 vec_subc(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
11213 return __builtin_altivec_vsubcuq(
__a,
__b);
11217 vec_subc(vector
signed __int128
__a, vector
signed __int128
__b) {
11218 return __builtin_altivec_vsubcuq(
__a,
__b);
11224 static __inline__ vector
unsigned int __attribute__((__always_inline__))
11225 vec_vsubcuw(vector
unsigned int __a, vector
unsigned int __b) {
11226 return __builtin_altivec_vsubcuw(
__a,
__b);
11233 return __builtin_altivec_vsubsbs(
__a,
__b);
11238 return __builtin_altivec_vsubsbs((vector
signed char)
__a,
__b);
11243 return __builtin_altivec_vsubsbs(
__a, (vector
signed char)
__b);
11248 return __builtin_altivec_vsububs(
__a,
__b);
11253 return __builtin_altivec_vsububs((vector
unsigned char)
__a,
__b);
11258 return __builtin_altivec_vsububs(
__a, (vector
unsigned char)
__b);
11262 vector
short __b) {
11263 return __builtin_altivec_vsubshs(
__a,
__b);
11267 vector
short __b) {
11268 return __builtin_altivec_vsubshs((vector
short)
__a,
__b);
11272 vector
bool short __b) {
11273 return __builtin_altivec_vsubshs(
__a, (vector
short)
__b);
11278 return __builtin_altivec_vsubuhs(
__a,
__b);
11283 return __builtin_altivec_vsubuhs((vector
unsigned short)
__a,
__b);
11288 return __builtin_altivec_vsubuhs(
__a, (vector
unsigned short)
__b);
11293 return __builtin_altivec_vsubsws(
__a,
__b);
11298 return __builtin_altivec_vsubsws((vector
int)
__a,
__b);
11302 vector
bool int __b) {
11303 return __builtin_altivec_vsubsws(
__a, (vector
int)
__b);
11308 return __builtin_altivec_vsubuws(
__a,
__b);
11313 return __builtin_altivec_vsubuws((vector
unsigned int)
__a,
__b);
11318 return __builtin_altivec_vsubuws(
__a, (vector
unsigned int)
__b);
11325 return __builtin_altivec_vsubsbs(
__a,
__b);
11330 return __builtin_altivec_vsubsbs((vector
signed char)
__a,
__b);
11335 return __builtin_altivec_vsubsbs(
__a, (vector
signed char)
__b);
11342 return __builtin_altivec_vsububs(
__a,
__b);
11347 return __builtin_altivec_vsububs((vector
unsigned char)
__a,
__b);
11352 return __builtin_altivec_vsububs(
__a, (vector
unsigned char)
__b);
11358 vector
short __b) {
11359 return __builtin_altivec_vsubshs(
__a,
__b);
11363 vector
short __b) {
11364 return __builtin_altivec_vsubshs((vector
short)
__a,
__b);
11368 vector
bool short __b) {
11369 return __builtin_altivec_vsubshs(
__a, (vector
short)
__b);
11376 return __builtin_altivec_vsubuhs(
__a,
__b);
11381 return __builtin_altivec_vsubuhs((vector
unsigned short)
__a,
__b);
11386 return __builtin_altivec_vsubuhs(
__a, (vector
unsigned short)
__b);
11393 return __builtin_altivec_vsubsws(
__a,
__b);
11398 return __builtin_altivec_vsubsws((vector
int)
__a,
__b);
11402 vector
bool int __b) {
11403 return __builtin_altivec_vsubsws(
__a, (vector
int)
__b);
11410 return __builtin_altivec_vsubuws(
__a,
__b);
11415 return __builtin_altivec_vsubuws((vector
unsigned int)
__a,
__b);
11420 return __builtin_altivec_vsubuws(
__a, (vector
unsigned int)
__b);
11423 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
11427 vec_vsubuqm(vector
signed __int128
__a, vector
signed __int128
__b) {
11431 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11432 vec_vsubuqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
11440 vec_vsubeuqm(vector
signed __int128
__a, vector
signed __int128
__b,
11441 vector
signed __int128
__c) {
11442 return __builtin_altivec_vsubeuqm(
__a,
__b,
__c);
11445 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11446 vec_vsubeuqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
11447 vector
unsigned __int128
__c) {
11448 return __builtin_altivec_vsubeuqm(
__a,
__b,
__c);
11452 vec_sube(vector
signed __int128
__a, vector
signed __int128
__b,
11453 vector
signed __int128
__c) {
11454 return __builtin_altivec_vsubeuqm(
__a,
__b,
__c);
11457 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11458 vec_sube(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
11459 vector
unsigned __int128
__c) {
11460 return __builtin_altivec_vsubeuqm(
__a,
__b,
__c);
11466 vec_vsubcuq(vector
signed __int128
__a, vector
signed __int128
__b) {
11467 return __builtin_altivec_vsubcuq(
__a,
__b);
11470 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11471 vec_vsubcuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
11472 return __builtin_altivec_vsubcuq(
__a,
__b);
11478 vec_vsubecuq(vector
signed __int128
__a, vector
signed __int128
__b,
11479 vector
signed __int128
__c) {
11480 return __builtin_altivec_vsubecuq(
__a,
__b,
__c);
11483 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11484 vec_vsubecuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
11485 vector
unsigned __int128
__c) {
11486 return __builtin_altivec_vsubecuq(
__a,
__b,
__c);
11490 vec_subec(vector
signed int __a, vector
signed int __b,
11491 vector
signed int __c) {
11496 vec_subec(vector
unsigned int __a, vector
unsigned int __b,
11497 vector
unsigned int __c) {
11502 vec_subec(vector
signed __int128
__a, vector
signed __int128
__b,
11503 vector
signed __int128
__c) {
11504 return __builtin_altivec_vsubecuq(
__a,
__b,
__c);
11507 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11508 vec_subec(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
11509 vector
unsigned __int128
__c) {
11510 return __builtin_altivec_vsubecuq(
__a,
__b,
__c);
11516 vector
signed int __c) {
11517 vector
signed int __mask = {1, 1, 1, 1};
11518 vector
signed int __carry =
__c & __mask;
11524 vector
unsigned int __c) {
11525 vector
unsigned int __mask = {1, 1, 1, 1};
11526 vector
unsigned int __carry =
__c & __mask;
11533 return __builtin_altivec_vsum4sbs(
__a,
__b);
11538 return __builtin_altivec_vsum4ubs(
__a,
__b);
11543 return __builtin_altivec_vsum4shs(
__a,
__b);
11548 static __inline__ vector
int __attribute__((__always_inline__))
11549 vec_vsum4sbs(vector
signed char __a, vector
int __b) {
11550 return __builtin_altivec_vsum4sbs(
__a,
__b);
11555 static __inline__ vector
unsigned int __attribute__((__always_inline__))
11556 vec_vsum4ubs(vector
unsigned char __a, vector
unsigned int __b) {
11557 return __builtin_altivec_vsum4ubs(
__a,
__b);
11562 static __inline__ vector
int __attribute__((__always_inline__))
11563 vec_vsum4shs(vector
signed short __a, vector
int __b) {
11564 return __builtin_altivec_vsum4shs(
__a,
__b);
11575 static __inline__ vector
signed int __attribute__((__always_inline__))
11576 vec_sum2s(vector
int __a, vector
int __b) {
11577 #ifdef __LITTLE_ENDIAN__
11579 __b,
__b, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
11581 __c = __builtin_altivec_vsum2sws(
__a,
__c);
11582 return (vector
signed int)
vec_perm(
11583 __c,
__c, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
11586 return __builtin_altivec_vsum2sws(
__a,
__b);
11592 static __inline__ vector
signed int __attribute__((__always_inline__))
11593 vec_vsum2sws(vector
int __a, vector
int __b) {
11594 #ifdef __LITTLE_ENDIAN__
11596 __b,
__b, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
11598 __c = __builtin_altivec_vsum2sws(
__a,
__c);
11599 return (vector
signed int)
vec_perm(
11600 __c,
__c, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
11603 return __builtin_altivec_vsum2sws(
__a,
__b);
11615 static __inline__ vector
signed int __attribute__((__always_inline__))
11616 vec_sums(vector
signed int __a, vector
signed int __b) {
11617 #ifdef __LITTLE_ENDIAN__
11619 __b = __builtin_altivec_vsumsws(
__a,
__b);
11620 return (vector
signed int)(0, 0, 0,
__b[0]);
11622 return __builtin_altivec_vsumsws(
__a,
__b);
11628 static __inline__ vector
signed int __attribute__((__always_inline__))
11629 vec_vsumsws(vector
signed int __a, vector
signed int __b) {
11630 #ifdef __LITTLE_ENDIAN__
11632 __b = __builtin_altivec_vsumsws(
__a,
__b);
11633 return (vector
signed int)(0, 0, 0,
__b[0]);
11635 return __builtin_altivec_vsumsws(
__a,
__b);
11643 return __builtin_vsx_xvrspiz(
__a);
11645 return __builtin_altivec_vrfiz(
__a);
11651 return __builtin_vsx_xvrdpiz(
__a);
11657 static __inline__ vector
float __attribute__((__always_inline__))
11658 vec_vrfiz(vector
float __a) {
11659 return __builtin_altivec_vrfiz(
__a);
11669 #ifdef __LITTLE_ENDIAN__
11670 return __builtin_altivec_vupklsb((vector
char)
__a);
11672 return __builtin_altivec_vupkhsb((vector
char)
__a);
11678 #ifdef __LITTLE_ENDIAN__
11679 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
11681 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
11686 #ifdef __LITTLE_ENDIAN__
11687 return __builtin_altivec_vupklsh(
__a);
11689 return __builtin_altivec_vupkhsh(
__a);
11695 #ifdef __LITTLE_ENDIAN__
11696 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
11698 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
11704 #ifdef __LITTLE_ENDIAN__
11705 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
11707 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
11711 #ifdef __POWER8_VECTOR__
11713 #ifdef __LITTLE_ENDIAN__
11714 return __builtin_altivec_vupklsw(
__a);
11716 return __builtin_altivec_vupkhsw(
__a);
11722 #ifdef __LITTLE_ENDIAN__
11723 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
11725 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
11731 return (vector
double)(
__a[0],
__a[1]);
11739 #ifdef __LITTLE_ENDIAN__
11740 return __builtin_altivec_vupklsb((vector
char)
__a);
11742 return __builtin_altivec_vupkhsb((vector
char)
__a);
11748 #ifdef __LITTLE_ENDIAN__
11749 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
11751 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
11758 #ifdef __LITTLE_ENDIAN__
11759 return __builtin_altivec_vupklsh(
__a);
11761 return __builtin_altivec_vupkhsh(
__a);
11767 #ifdef __LITTLE_ENDIAN__
11768 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
11770 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
11776 #ifdef __LITTLE_ENDIAN__
11777 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
11779 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
11785 #ifdef __POWER8_VECTOR__
11786 static __inline__ vector
long long __ATTRS_o_ai vec_vupkhsw(vector
int __a) {
11787 #ifdef __LITTLE_ENDIAN__
11788 return __builtin_altivec_vupklsw(
__a);
11790 return __builtin_altivec_vupkhsw(
__a);
11795 vec_vupkhsw(vector
bool int __a) {
11796 #ifdef __LITTLE_ENDIAN__
11797 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
11799 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
11808 #ifdef __LITTLE_ENDIAN__
11809 return __builtin_altivec_vupkhsb((vector
char)
__a);
11811 return __builtin_altivec_vupklsb((vector
char)
__a);
11817 #ifdef __LITTLE_ENDIAN__
11818 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
11820 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
11825 #ifdef __LITTLE_ENDIAN__
11826 return __builtin_altivec_vupkhsh(
__a);
11828 return __builtin_altivec_vupklsh(
__a);
11834 #ifdef __LITTLE_ENDIAN__
11835 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
11837 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
11843 #ifdef __LITTLE_ENDIAN__
11844 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
11846 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
11850 #ifdef __POWER8_VECTOR__
11852 #ifdef __LITTLE_ENDIAN__
11853 return __builtin_altivec_vupkhsw(
__a);
11855 return __builtin_altivec_vupklsw(
__a);
11861 #ifdef __LITTLE_ENDIAN__
11862 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
11864 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
11870 return (vector
double)(
__a[2],
__a[3]);
11878 #ifdef __LITTLE_ENDIAN__
11879 return __builtin_altivec_vupkhsb((vector
char)
__a);
11881 return __builtin_altivec_vupklsb((vector
char)
__a);
11887 #ifdef __LITTLE_ENDIAN__
11888 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
11890 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
11897 #ifdef __LITTLE_ENDIAN__
11898 return __builtin_altivec_vupkhsh(
__a);
11900 return __builtin_altivec_vupklsh(
__a);
11906 #ifdef __LITTLE_ENDIAN__
11907 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
11909 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
11915 #ifdef __LITTLE_ENDIAN__
11916 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
11918 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
11924 #ifdef __POWER8_VECTOR__
11925 static __inline__ vector
long long __ATTRS_o_ai vec_vupklsw(vector
int __a) {
11926 #ifdef __LITTLE_ENDIAN__
11927 return __builtin_altivec_vupkhsw(
__a);
11929 return __builtin_altivec_vupklsw(
__a);
11934 vec_vupklsw(vector
bool int __a) {
11935 #ifdef __LITTLE_ENDIAN__
11936 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
11938 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
11948 vec_vsx_ld(
int __a,
const vector
bool int *
__b) {
11949 return (vector
bool int)__builtin_vsx_lxvw4x(
__a,
__b);
11953 vec_vsx_ld(
int __a,
const vector
signed int *
__b) {
11954 return (vector
signed int)__builtin_vsx_lxvw4x(
__a,
__b);
11958 vec_vsx_ld(
int __a,
const signed int *
__b) {
11959 return (vector
signed int)__builtin_vsx_lxvw4x(
__a,
__b);
11963 vec_vsx_ld(
int __a,
const vector
unsigned int *
__b) {
11964 return (vector
unsigned int)__builtin_vsx_lxvw4x(
__a,
__b);
11968 vec_vsx_ld(
int __a,
const unsigned int *
__b) {
11969 return (vector
unsigned int)__builtin_vsx_lxvw4x(
__a,
__b);
11973 vec_vsx_ld(
int __a,
const vector
float *
__b) {
11974 return (vector
float)__builtin_vsx_lxvw4x(
__a,
__b);
11978 const float *
__b) {
11979 return (vector
float)__builtin_vsx_lxvw4x(
__a,
__b);
11982 static __inline__ vector
signed long long __ATTRS_o_ai
11983 vec_vsx_ld(
int __a,
const vector
signed long long *
__b) {
11984 return (vector
signed long long)__builtin_vsx_lxvd2x(
__a,
__b);
11987 static __inline__ vector
unsigned long long __ATTRS_o_ai
11988 vec_vsx_ld(
int __a,
const vector
unsigned long long *
__b) {
11989 return (vector
unsigned long long)__builtin_vsx_lxvd2x(
__a,
__b);
11993 vec_vsx_ld(
int __a,
const vector
double *
__b) {
11994 return (vector
double)__builtin_vsx_lxvd2x(
__a,
__b);
11998 vec_vsx_ld(
int __a,
const double *
__b) {
11999 return (vector
double)__builtin_vsx_lxvd2x(
__a,
__b);
12003 vec_vsx_ld(
int __a,
const vector
bool short *
__b) {
12004 return (vector
bool short)__builtin_vsx_lxvw4x(
__a,
__b);
12008 vec_vsx_ld(
int __a,
const vector
signed short *
__b) {
12009 return (vector
signed short)__builtin_vsx_lxvw4x(
__a,
__b);
12013 vec_vsx_ld(
int __a,
const signed short *
__b) {
12014 return (vector
signed short)__builtin_vsx_lxvw4x(
__a,
__b);
12018 vec_vsx_ld(
int __a,
const vector
unsigned short *
__b) {
12019 return (vector
unsigned short)__builtin_vsx_lxvw4x(
__a,
__b);
12023 vec_vsx_ld(
int __a,
const unsigned short *
__b) {
12024 return (vector
unsigned short)__builtin_vsx_lxvw4x(
__a,
__b);
12028 vec_vsx_ld(
int __a,
const vector
bool char *
__b) {
12029 return (vector
bool char)__builtin_vsx_lxvw4x(
__a,
__b);
12033 vec_vsx_ld(
int __a,
const vector
signed char *
__b) {
12034 return (vector
signed char)__builtin_vsx_lxvw4x(
__a,
__b);
12038 vec_vsx_ld(
int __a,
const signed char *
__b) {
12039 return (vector
signed char)__builtin_vsx_lxvw4x(
__a,
__b);
12043 vec_vsx_ld(
int __a,
const vector
unsigned char *
__b) {
12044 return (vector
unsigned char)__builtin_vsx_lxvw4x(
__a,
__b);
12048 vec_vsx_ld(
int __a,
const unsigned char *
__b) {
12049 return (vector
unsigned char)__builtin_vsx_lxvw4x(
__a,
__b);
12059 vector
bool int *
__c) {
12060 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12065 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12069 unsigned int *
__c) {
12070 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12074 vector
signed int *
__c) {
12075 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12080 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12084 vector
unsigned int *
__c) {
12085 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12089 unsigned int *
__c) {
12090 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12094 vector
float *
__c) {
12095 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12100 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12103 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
signed long long __a,
12105 vector
signed long long *
__c) {
12106 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
12109 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned long long __a,
12111 vector
unsigned long long *
__c) {
12112 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
12116 vector
double *
__c) {
12117 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
12122 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
12126 vector
bool short *
__c) {
12127 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12131 signed short *
__c) {
12132 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12136 unsigned short *
__c) {
12137 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12140 vector
signed short *
__c) {
12141 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12145 signed short *
__c) {
12146 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12149 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned short __a,
12151 vector
unsigned short *
__c) {
12152 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12155 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned short __a,
12156 int __b,
unsigned short *
__c) {
12157 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12161 vector
bool char *
__c) {
12162 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12166 signed char *
__c) {
12167 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12171 unsigned char *
__c) {
12172 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12176 vector
signed char *
__c) {
12177 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12181 signed char *
__c) {
12182 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12185 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned char __a,
12187 vector
unsigned char *
__c) {
12188 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12191 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned char __a,
12192 int __b,
unsigned char *
__c) {
12193 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
12199 #define vec_xxpermdi __builtin_vsx_xxpermdi
12200 #define vec_xxsldwi __builtin_vsx_xxsldwi
12205 #define __builtin_altivec_vxor vec_xor
12214 return (vector
signed char)
__a ^
__b;
12219 return __a ^ (vector
signed char)
__b;
12229 return (vector
unsigned char)
__a ^
__b;
12234 return __a ^ (vector
unsigned char)
__b;
12238 vector
bool char __b) {
12243 vector
short __b) {
12248 vector
short __b) {
12249 return (vector
short)
__a ^
__b;
12253 vector
bool short __b) {
12254 return __a ^ (vector short)
__b;
12264 return (vector
unsigned short)
__a ^
__b;
12269 return __a ^ (vector
unsigned short)
__b;
12284 return (vector
int)
__a ^
__b;
12288 vector
bool int __b) {
12299 return (vector
unsigned int)
__a ^
__b;
12308 vector
bool int __b) {
12313 vector
float __b) {
12314 vector
unsigned int __res =
12315 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
12316 return (vector
float)__res;
12320 vector
float __b) {
12321 vector
unsigned int __res =
12322 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
12323 return (vector
float)__res;
12327 vector
bool int __b) {
12328 vector
unsigned int __res =
12329 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
12330 return (vector
float)__res;
12334 static __inline__ vector
signed long long __ATTRS_o_ai
12335 vec_xor(vector
signed long long __a, vector
signed long long __b) {
12339 static __inline__ vector
signed long long __ATTRS_o_ai
12340 vec_xor(vector
bool long long __a, vector
signed long long __b) {
12341 return (vector
signed long long)
__a ^
__b;
12344 static __inline__ vector
signed long long __ATTRS_o_ai
12345 vec_xor(vector
signed long long __a, vector
bool long long __b) {
12346 return __a ^ (vector
signed long long)
__b;
12349 static __inline__ vector
unsigned long long __ATTRS_o_ai
12350 vec_xor(vector
unsigned long long __a, vector
unsigned long long __b) {
12354 static __inline__ vector
unsigned long long __ATTRS_o_ai
12355 vec_xor(vector
bool long long __a, vector
unsigned long long __b) {
12356 return (vector
unsigned long long)
__a ^
__b;
12359 static __inline__ vector
unsigned long long __ATTRS_o_ai
12360 vec_xor(vector
unsigned long long __a, vector
bool long long __b) {
12361 return __a ^ (vector
unsigned long long)
__b;
12365 vec_xor(vector
bool long long __a, vector
bool long long __b) {
12370 vector
double __b) {
12371 return (vector
double)((vector
unsigned long long)
__a ^
12372 (vector
unsigned long long)
__b);
12377 return (vector
double)((vector
unsigned long long)
__a ^
12378 (vector
unsigned long long)
__b);
12382 vector
double __b) {
12383 return (vector
double)((vector
unsigned long long)
__a ^
12384 (vector
unsigned long long)
__b);
12397 return (vector
signed char)
__a ^
__b;
12402 return __a ^ (vector
signed char)
__b;
12412 return (vector
unsigned char)
__a ^
__b;
12417 return __a ^ (vector
unsigned char)
__b;
12421 vector
bool char __b) {
12426 vector
short __b) {
12431 vector
short __b) {
12432 return (vector
short)
__a ^
__b;
12436 vector
bool short __b) {
12437 return __a ^ (vector short)
__b;
12447 return (vector
unsigned short)
__a ^
__b;
12452 return __a ^ (vector
unsigned short)
__b;
12467 return (vector
int)
__a ^
__b;
12471 vector
bool int __b) {
12482 return (vector
unsigned int)
__a ^
__b;
12491 vector
bool int __b) {
12496 vector
float __b) {
12497 vector
unsigned int __res =
12498 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
12499 return (vector
float)__res;
12503 vector
float __b) {
12504 vector
unsigned int __res =
12505 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
12506 return (vector
float)__res;
12510 vector
bool int __b) {
12511 vector
unsigned int __res =
12512 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
12513 return (vector
float)__res;
12517 static __inline__ vector
signed long long __ATTRS_o_ai
12518 vec_vxor(vector
signed long long __a, vector
signed long long __b) {
12522 static __inline__ vector
signed long long __ATTRS_o_ai
12523 vec_vxor(vector
bool long long __a, vector
signed long long __b) {
12524 return (vector
signed long long)
__a ^
__b;
12527 static __inline__ vector
signed long long __ATTRS_o_ai
12528 vec_vxor(vector
signed long long __a, vector
bool long long __b) {
12529 return __a ^ (vector
signed long long)
__b;
12532 static __inline__ vector
unsigned long long __ATTRS_o_ai
12533 vec_vxor(vector
unsigned long long __a, vector
unsigned long long __b) {
12537 static __inline__ vector
unsigned long long __ATTRS_o_ai
12538 vec_vxor(vector
bool long long __a, vector
unsigned long long __b) {
12539 return (vector
unsigned long long)
__a ^
__b;
12542 static __inline__ vector
unsigned long long __ATTRS_o_ai
12543 vec_vxor(vector
unsigned long long __a, vector
bool long long __b) {
12544 return __a ^ (vector
unsigned long long)
__b;
12548 vec_vxor(vector
bool long long __a, vector
bool long long __b) {
12627 #ifdef __POWER9_VECTOR__
12629 #define vec_insert4b __builtin_vsx_insertword
12630 #define vec_extract4b __builtin_vsx_extractuword
12635 vec_extract_exp(vector
float __a) {
12636 return __builtin_vsx_xvxexpsp(
__a);
12639 static __inline__ vector
unsigned long long __ATTRS_o_ai
12640 vec_extract_exp(vector
double __a) {
12641 return __builtin_vsx_xvxexpdp(
__a);
12647 vec_extract_sig(vector
float __a) {
12648 return __builtin_vsx_xvxsigsp(
__a);
12651 static __inline__ vector
unsigned long long __ATTRS_o_ai
12652 vec_extract_sig (vector
double __a) {
12653 return __builtin_vsx_xvxsigdp(
__a);
12657 vec_extract_fp32_from_shorth(vector
unsigned short __a) {
12658 vector
unsigned short __b =
12659 #ifdef __LITTLE_ENDIAN__
12660 __builtin_shufflevector(
__a,
__a, 0, -1, 1, -1, 2, -1, 3, -1);
12662 __builtin_shufflevector(
__a,
__a, -1, 0, -1, 1, -1, 2, -1, 3);
12664 return __builtin_vsx_xvcvhpsp(
__b);
12668 vec_extract_fp32_from_shortl(vector
unsigned short __a) {
12669 vector
unsigned short __b =
12670 #ifdef __LITTLE_ENDIAN__
12671 __builtin_shufflevector(
__a,
__a, 4, -1, 5, -1, 6, -1, 7, -1);
12673 __builtin_shufflevector(
__a,
__a, -1, 4, -1, 5, -1, 6, -1, 7);
12675 return __builtin_vsx_xvcvhpsp(
__b);
12694 vector
bool char __b,
12731 vector
bool int __b,
12738 static __inline__ vector
signed long long __ATTRS_o_ai
12744 static __inline__ vector
unsigned long long __ATTRS_o_ai
12803 const short *
__b) {
12808 const vector
short *
__b) {
12832 const vector pixel *
__b) {
12842 const vector
int *
__b) {
12866 const float *
__b) {
12871 const vector
float *
__b) {
12909 const short *
__b) {
12914 const vector
short *
__b) {
12938 const vector pixel *
__b) {
12948 const vector
int *
__b) {
12972 const float *
__b) {
12977 vector
float *
__b) {
13015 const short *
__b) {
13020 const vector
short *
__b) {
13044 const vector pixel *
__b) {
13054 const vector
int *
__b) {
13078 const float *
__b) {
13083 const vector
float *
__b) {
13121 const short *
__b) {
13126 const vector
short *
__b) {
13150 const vector pixel *
__b) {
13160 const vector
int *
__b) {
13184 const float *
__b) {
13189 const vector
float *
__b) {
13197 signed char *
__c) {
13203 vector
signed char *
__c) {
13210 unsigned char *
__c) {
13216 vector
unsigned char *
__c) {
13223 vector
bool char *
__c) {
13236 vector
short *
__c) {
13243 int __b,
unsigned short *
__c) {
13250 vector
unsigned short *
__c) {
13257 vector
bool short *
__c) {
13264 vector pixel *
__c) {
13284 unsigned int *
__c) {
13290 vector
unsigned int *
__c) {
13297 vector
bool int *
__c) {
13304 vector
float *
__c) {
13313 signed char *
__c) {
13319 vector
signed char *
__c) {
13326 int __b,
unsigned char *
__c) {
13333 vector
unsigned char *
__c) {
13340 vector
bool char *
__c) {
13353 vector
short *
__c) {
13360 int __b,
unsigned short *
__c) {
13367 vector
unsigned short *
__c) {
13374 vector
bool short *
__c) {
13381 vector pixel *
__c) {
13401 unsigned int *
__c) {
13407 vector
unsigned int *
__c) {
13414 vector
bool int *
__c) {
13421 vector
float *
__c) {
13430 signed char *
__c) {
13436 vector
signed char *
__c) {
13443 unsigned char *
__c) {
13449 vector
unsigned char *
__c) {
13456 vector
bool char *
__c) {
13469 vector
short *
__c) {
13476 int __b,
unsigned short *
__c) {
13483 vector
unsigned short *
__c) {
13490 vector
bool short *
__c) {
13497 vector pixel *
__c) {
13517 unsigned int *
__c) {
13523 vector
unsigned int *
__c) {
13530 vector
bool int *
__c) {
13537 vector
float *
__c) {
13546 signed char *
__c) {
13552 vector
signed char *
__c) {
13559 int __b,
unsigned char *
__c) {
13566 vector
unsigned char *
__c) {
13573 vector
bool char *
__c) {
13586 vector
short *
__c) {
13593 int __b,
unsigned short *
__c) {
13600 vector
unsigned short *
__c) {
13607 vector
bool short *
__c) {
13614 vector pixel *
__c) {
13634 unsigned int *
__c) {
13640 vector
unsigned int *
__c) {
13647 vector
bool int *
__c) {
13654 vector
float *
__c) {
13664 vector
signed char __res = (vector
signed char)(0);
13671 vector
unsigned char __res = (vector
unsigned char)(0);
13677 vector
short __res = (vector short)(0);
13684 vector
unsigned short __res = (vector
unsigned short)(0);
13690 vector
int __res = (vector
int)(0);
13697 vector
unsigned int __res = (vector
unsigned int)(0);
13703 vector
float __res = (vector
float)(0);
13711 return (vector
signed char)(
__a);
13716 return (vector
unsigned char)(
__a);
13720 return (vector
short)(
__a);
13725 return (vector
unsigned short)(
__a);
13729 return (vector
int)(
__a);
13734 return (vector
unsigned int)(
__a);
13738 static __inline__ vector
signed long long __ATTRS_o_ai
13740 return (vector
signed long long)(
__a);
13743 static __inline__ vector
unsigned long long __ATTRS_o_ai
13745 return (vector
unsigned long long)(
__a);
13748 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
13751 return (vector
signed __int128)(
__a);
13754 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
13756 return (vector
unsigned __int128)(
__a);
13762 return (vector
double)(
__a);
13767 return (vector
float)(
__a);
13775 vector
signed char __b) {
13776 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13781 vector
bool char __b) {
13782 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13787 vector
unsigned char __b) {
13788 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13793 vector
bool char __b) {
13794 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13799 vector
signed char __b) {
13800 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13805 vector
unsigned char __b) {
13806 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13811 vector
bool char __b) {
13812 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
13817 vector
short __b) {
13822 vector
bool short __b) {
13823 return __builtin_altivec_vcmpequh_p(
__CR6_LT,
__a, (vector
short)
__b);
13827 vector
unsigned short __b) {
13828 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
13829 (vector
short)
__b);
13833 vector
bool short __b) {
13834 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
13835 (vector
short)
__b);
13839 vector
short __b) {
13840 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
13841 (vector
short)
__b);
13845 vector
unsigned short __b) {
13846 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
13847 (vector
short)
__b);
13851 vector
bool short __b) {
13852 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
13853 (vector
short)
__b);
13857 vector pixel
__b) {
13858 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
13859 (vector
short)
__b);
13867 vector
bool int __b) {
13868 return __builtin_altivec_vcmpequw_p(
__CR6_LT,
__a, (vector
int)
__b);
13872 vector
unsigned int __b) {
13873 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
13878 vector
bool int __b) {
13879 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
13885 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
13890 vector
unsigned int __b) {
13891 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
13896 vector
bool int __b) {
13897 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
13901 #ifdef __POWER8_VECTOR__
13903 vector
signed long long __b) {
13908 vector
bool long long __b) {
13909 return __builtin_altivec_vcmpequd_p(
__CR6_LT,
__a, (vector
long long)
__b);
13913 vector
unsigned long long __b) {
13914 return __builtin_altivec_vcmpequd_p(
__CR6_LT, (vector
long long)
__a,
13915 (vector
long long)
__b);
13919 vector
bool long long __b) {
13920 return __builtin_altivec_vcmpequd_p(
__CR6_LT, (vector
long long)
__a,
13921 (vector
long long)
__b);
13925 vector
long long __b) {
13926 return __builtin_altivec_vcmpequd_p(
__CR6_LT, (vector
long long)
__a,
13927 (vector
long long)
__b);
13931 vector
unsigned long long __b) {
13932 return __builtin_altivec_vcmpequd_p(
__CR6_LT, (vector
long long)
__a,
13933 (vector
long long)
__b);
13937 vector
bool long long __b) {
13938 return __builtin_altivec_vcmpequd_p(
__CR6_LT, (vector
long long)
__a,
13939 (vector
long long)
__b);
13944 vector
float __b) {
13954 vector
double __b) {
13962 vector
signed char __b) {
13967 vector
bool char __b) {
13968 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ, (vector
signed char)
__b,
__a);
13972 vector
unsigned char __b) {
13977 vector
bool char __b) {
13978 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__b,
__a);
13982 vector
signed char __b) {
13983 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__b,
13984 (vector
unsigned char)
__a);
13988 vector
unsigned char __b) {
13989 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ,
__b, (vector
unsigned char)
__a);
13993 vector
bool char __b) {
13994 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__b,
13995 (vector
unsigned char)
__a);
13999 vector
short __b) {
14004 vector
bool short __b) {
14005 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ, (vector
short)
__b,
__a);
14009 vector
unsigned short __b) {
14014 vector
bool short __b) {
14015 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__b,
14020 vector
short __b) {
14021 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__b,
14022 (vector
unsigned short)
__a);
14026 vector
unsigned short __b) {
14027 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ,
__b,
14028 (vector
unsigned short)
__a);
14032 vector
bool short __b) {
14033 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__b,
14034 (vector
unsigned short)
__a);
14042 vector
bool int __b) {
14043 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ, (vector
int)
__b,
__a);
14047 vector
unsigned int __b) {
14052 vector
bool int __b) {
14053 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__b,
__a);
14058 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__b,
14059 (vector
unsigned int)
__a);
14063 vector
unsigned int __b) {
14064 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ,
__b, (vector
unsigned int)
__a);
14068 vector
bool int __b) {
14069 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__b,
14070 (vector
unsigned int)
__a);
14073 #ifdef __POWER8_VECTOR__
14075 vector
signed long long __b) {
14079 vector
bool long long __b) {
14080 return __builtin_altivec_vcmpgtsd_p(
__CR6_EQ, (vector
signed long long)
__b,
14085 vector
unsigned long long __b) {
14090 vector
bool long long __b) {
14091 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__b,
14096 vector
signed long long __b) {
14097 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__b,
14098 (vector
unsigned long long)
__a);
14102 vector
unsigned long long __b) {
14103 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ,
__b,
14104 (vector
unsigned long long)
__a);
14108 vector
bool long long __b) {
14109 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__b,
14110 (vector
unsigned long long)
__a);
14115 vector
float __b) {
14125 vector
double __b) {
14133 vector
signed char __b) {
14138 vector
bool char __b) {
14139 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT,
__a, (vector
signed char)
__b);
14143 vector
unsigned char __b) {
14148 vector
bool char __b) {
14149 return __builtin_altivec_vcmpgtub_p(
__CR6_LT,
__a, (vector
unsigned char)
__b);
14153 vector
signed char __b) {
14154 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__a,
14155 (vector
unsigned char)
__b);
14159 vector
unsigned char __b) {
14160 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__a,
__b);
14164 vector
bool char __b) {
14165 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__a,
14166 (vector
unsigned char)
__b);
14170 vector
short __b) {
14175 vector
bool short __b) {
14176 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT,
__a, (vector
short)
__b);
14180 vector
unsigned short __b) {
14185 vector
bool short __b) {
14186 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT,
__a,
14187 (vector
unsigned short)
__b);
14191 vector
short __b) {
14192 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__a,
14193 (vector
unsigned short)
__b);
14197 vector
unsigned short __b) {
14198 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__a,
14203 vector
bool short __b) {
14204 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__a,
14205 (vector
unsigned short)
__b);
14213 vector
bool int __b) {
14214 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT,
__a, (vector
int)
__b);
14218 vector
unsigned int __b) {
14223 vector
bool int __b) {
14224 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT,
__a, (vector
unsigned int)
__b);
14229 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__a,
14230 (vector
unsigned int)
__b);
14234 vector
unsigned int __b) {
14235 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__a,
__b);
14239 vector
bool int __b) {
14240 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__a,
14241 (vector
unsigned int)
__b);
14244 #ifdef __POWER8_VECTOR__
14246 vector
signed long long __b) {
14250 vector
bool long long __b) {
14251 return __builtin_altivec_vcmpgtsd_p(
__CR6_LT,
__a,
14252 (vector
signed long long)
__b);
14256 vector
unsigned long long __b) {
14261 vector
bool long long __b) {
14262 return __builtin_altivec_vcmpgtud_p(
__CR6_LT,
__a,
14263 (vector
unsigned long long)
__b);
14267 vector
signed long long __b) {
14268 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__a,
14269 (vector
unsigned long long)
__b);
14273 vector
unsigned long long __b) {
14274 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__a,
14279 vector
bool long long __b) {
14280 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__a,
14281 (vector
unsigned long long)
__b);
14286 vector
float __b) {
14296 vector
double __b) {
14304 vec_all_in(vector
float __a, vector
float __b) {
14311 vector
signed char __b) {
14316 vector
bool char __b) {
14317 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ,
__a, (vector
signed char)
__b);
14321 vector
unsigned char __b) {
14326 vector
bool char __b) {
14327 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ,
__a, (vector
unsigned char)
__b);
14331 vector
signed char __b) {
14332 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__a,
14333 (vector
unsigned char)
__b);
14337 vector
unsigned char __b) {
14338 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__a,
__b);
14342 vector
bool char __b) {
14343 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__a,
14344 (vector
unsigned char)
__b);
14348 vector
short __b) {
14353 vector
bool short __b) {
14354 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ,
__a, (vector
short)
__b);
14358 vector
unsigned short __b) {
14363 vector
bool short __b) {
14364 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ,
__a,
14365 (vector
unsigned short)
__b);
14369 vector
short __b) {
14370 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__a,
14371 (vector
unsigned short)
__b);
14375 vector
unsigned short __b) {
14376 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__a,
14381 vector
bool short __b) {
14382 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__a,
14383 (vector
unsigned short)
__b);
14391 vector
bool int __b) {
14392 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ,
__a, (vector
int)
__b);
14396 vector
unsigned int __b) {
14401 vector
bool int __b) {
14402 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ,
__a, (vector
unsigned int)
__b);
14407 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__a,
14408 (vector
unsigned int)
__b);
14412 vector
unsigned int __b) {
14413 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__a,
__b);
14417 vector
bool int __b) {
14418 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__a,
14419 (vector
unsigned int)
__b);
14422 #ifdef __POWER8_VECTOR__
14424 vector
signed long long __b) {
14429 vector
unsigned long long __b) {
14434 vector
bool long long __b) {
14435 return __builtin_altivec_vcmpgtsd_p(
__CR6_EQ,
__a,
14436 (vector
signed long long)
__b);
14440 vector
bool long long __b) {
14441 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ,
__a,
14442 (vector
unsigned long long)
__b);
14446 vector
signed long long __b) {
14447 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__a,
14448 (vector
unsigned long long)
__b);
14452 vector
unsigned long long __b) {
14453 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__a,
14458 vector
bool long long __b) {
14459 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__a,
14460 (vector
unsigned long long)
__b);
14465 vector
float __b) {
14475 vector
double __b) {
14483 vector
signed char __b) {
14488 vector
bool char __b) {
14489 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT, (vector
signed char)
__b,
__a);
14493 vector
unsigned char __b) {
14498 vector
bool char __b) {
14499 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__b,
__a);
14503 vector
signed char __b) {
14504 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__b,
14505 (vector
unsigned char)
__a);
14509 vector
unsigned char __b) {
14510 return __builtin_altivec_vcmpgtub_p(
__CR6_LT,
__b, (vector
unsigned char)
__a);
14514 vector
bool char __b) {
14515 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__b,
14516 (vector
unsigned char)
__a);
14520 vector
short __b) {
14525 vector
bool short __b) {
14526 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT, (vector
short)
__b,
__a);
14530 vector
unsigned short __b) {
14535 vector
bool short __b) {
14536 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__b,
14541 vector
short __b) {
14542 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__b,
14543 (vector
unsigned short)
__a);
14547 vector
unsigned short __b) {
14548 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT,
__b,
14549 (vector
unsigned short)
__a);
14553 vector
bool short __b) {
14554 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__b,
14555 (vector
unsigned short)
__a);
14563 vector
bool int __b) {
14564 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT, (vector
int)
__b,
__a);
14568 vector
unsigned int __b) {
14573 vector
bool int __b) {
14574 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__b,
__a);
14579 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__b,
14580 (vector
unsigned int)
__a);
14584 vector
unsigned int __b) {
14585 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT,
__b, (vector
unsigned int)
__a);
14589 vector
bool int __b) {
14590 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__b,
14591 (vector
unsigned int)
__a);
14594 #ifdef __POWER8_VECTOR__
14596 vector
signed long long __b) {
14601 vector
unsigned long long __b) {
14606 vector
bool long long __b) {
14607 return __builtin_altivec_vcmpgtsd_p(
__CR6_LT, (vector
signed long long)
__b,
14612 vector
bool long long __b) {
14613 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__b,
14618 vector
signed long long __b) {
14619 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__b,
14620 (vector
unsigned long long)
__a);
14624 vector
unsigned long long __b) {
14625 return __builtin_altivec_vcmpgtud_p(
__CR6_LT,
__b,
14626 (vector
unsigned long long)
__a);
14630 vector
bool long long __b) {
14631 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__b,
14632 (vector
unsigned long long)
__a);
14637 vector
float __b) {
14647 vector
double __b) {
14671 vector
signed char __b) {
14672 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14677 vector
bool char __b) {
14678 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14683 vector
unsigned char __b) {
14684 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14689 vector
bool char __b) {
14690 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14695 vector
signed char __b) {
14696 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14701 vector
unsigned char __b) {
14702 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14707 vector
bool char __b) {
14708 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
14713 vector
short __b) {
14718 vector
bool short __b) {
14719 return __builtin_altivec_vcmpequh_p(
__CR6_EQ,
__a, (vector
short)
__b);
14723 vector
unsigned short __b) {
14724 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
14725 (vector
short)
__b);
14729 vector
bool short __b) {
14730 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
14731 (vector
short)
__b);
14735 vector
short __b) {
14736 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
14737 (vector
short)
__b);
14741 vector
unsigned short __b) {
14742 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
14743 (vector
short)
__b);
14747 vector
bool short __b) {
14748 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
14749 (vector
short)
__b);
14753 vector pixel
__b) {
14754 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
14755 (vector
short)
__b);
14763 vector
bool int __b) {
14764 return __builtin_altivec_vcmpequw_p(
__CR6_EQ,
__a, (vector
int)
__b);
14768 vector
unsigned int __b) {
14769 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
14774 vector
bool int __b) {
14775 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
14781 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
14786 vector
unsigned int __b) {
14787 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
14792 vector
bool int __b) {
14793 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
14797 #ifdef __POWER8_VECTOR__
14799 vector
signed long long __b) {
14804 vector
unsigned long long __b) {
14805 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
long long)
__a,
14806 (vector
long long)
__b);
14810 vector
bool long long __b) {
14811 return __builtin_altivec_vcmpequd_p(
__CR6_EQ,
__a,
14812 (vector
signed long long)
__b);
14816 vector
bool long long __b) {
14817 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
14818 (vector
signed long long)
__b);
14822 vector
signed long long __b) {
14823 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
14824 (vector
signed long long)
__b);
14828 vector
unsigned long long __b) {
14829 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
14830 (vector
signed long long)
__b);
14834 vector
bool long long __b) {
14835 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
14836 (vector
signed long long)
__b);
14841 vector
float __b) {
14851 vector
double __b) {
14859 vector
float __b) {
14869 vector
double __b) {
14877 vector
float __b) {
14887 vector
double __b) {
14895 vec_all_nle(vector
float __a, vector
float __b) {
14902 vec_all_nlt(vector
float __a, vector
float __b) {
14909 vec_all_numeric(vector
float __a) {
14916 vector
signed char __b) {
14922 vector
bool char __b) {
14928 vector
unsigned char __b) {
14934 vector
bool char __b) {
14940 vector
signed char __b) {
14946 vector
unsigned char __b) {
14952 vector
bool char __b) {
14958 vector
short __b) {
14963 vector
bool short __b) {
14968 vector
unsigned short __b) {
14970 (vector
short)
__b);
14974 vector
bool short __b) {
14976 (vector
short)
__b);
14980 vector
short __b) {
14982 (vector
short)
__b);
14986 vector
unsigned short __b) {
14988 (vector
short)
__b);
14992 vector
bool short __b) {
14994 (vector
short)
__b);
14998 vector pixel
__b) {
15000 (vector
short)
__b);
15008 vector
bool int __b) {
15013 vector
unsigned int __b) {
15019 vector
bool int __b) {
15031 vector
unsigned int __b) {
15037 vector
bool int __b) {
15042 #ifdef __POWER8_VECTOR__
15044 vector
signed long long __b) {
15049 vector
unsigned long long __b) {
15050 return __builtin_altivec_vcmpequd_p(
__CR6_EQ_REV, (vector
long long)
__a,
15051 (vector
long long)
__b);
15055 vector
bool long long __b) {
15057 (vector
signed long long)
__b);
15061 vector
bool long long __b) {
15062 return __builtin_altivec_vcmpequd_p(
15067 vector
signed long long __b) {
15068 return __builtin_altivec_vcmpequd_p(
15073 vector
unsigned long long __b) {
15074 return __builtin_altivec_vcmpequd_p(
15079 vector
bool long long __b) {
15080 return __builtin_altivec_vcmpequd_p(
15086 vector
float __b) {
15096 vector
double __b) {
15104 vector
signed char __b) {
15109 vector
bool char __b) {
15110 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT_REV, (vector
signed char)
__b,
15115 vector
unsigned char __b) {
15120 vector
bool char __b) {
15121 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__b,
15126 vector
signed char __b) {
15127 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__b,
15128 (vector
unsigned char)
__a);
15132 vector
unsigned char __b) {
15134 (vector
unsigned char)
__a);
15138 vector
bool char __b) {
15139 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__b,
15140 (vector
unsigned char)
__a);
15144 vector
short __b) {
15149 vector
bool short __b) {
15154 vector
unsigned short __b) {
15159 vector
bool short __b) {
15160 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__b,
15165 vector
short __b) {
15166 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__b,
15167 (vector
unsigned short)
__a);
15171 vector
unsigned short __b) {
15173 (vector
unsigned short)
__a);
15177 vector
bool short __b) {
15178 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__b,
15179 (vector
unsigned short)
__a);
15187 vector
bool int __b) {
15192 vector
unsigned int __b) {
15197 vector
bool int __b) {
15198 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__b,
15204 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__b,
15205 (vector
unsigned int)
__a);
15209 vector
unsigned int __b) {
15211 (vector
unsigned int)
__a);
15215 vector
bool int __b) {
15216 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__b,
15217 (vector
unsigned int)
__a);
15220 #ifdef __POWER8_VECTOR__
15222 vector
signed long long __b) {
15227 vector
unsigned long long __b) {
15232 vector
bool long long __b) {
15234 (vector
signed long long)
__b,
__a);
15238 vector
bool long long __b) {
15240 (vector
unsigned long long)
__b,
__a);
15244 vector
signed long long __b) {
15246 (vector
unsigned long long)
__b,
15247 (vector
unsigned long long)
__a);
15251 vector
unsigned long long __b) {
15253 (vector
unsigned long long)
__a);
15257 vector
bool long long __b) {
15259 (vector
unsigned long long)
__b,
15260 (vector
unsigned long long)
__a);
15265 vector
float __b) {
15275 vector
double __b) {
15283 vector
signed char __b) {
15288 vector
bool char __b) {
15290 (vector
signed char)
__b);
15294 vector
unsigned char __b) {
15299 vector
bool char __b) {
15301 (vector
unsigned char)
__b);
15305 vector
signed char __b) {
15306 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__a,
15307 (vector
unsigned char)
__b);
15311 vector
unsigned char __b) {
15312 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__a,
15317 vector
bool char __b) {
15318 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__a,
15319 (vector
unsigned char)
__b);
15323 vector
short __b) {
15328 vector
bool short __b) {
15333 vector
unsigned short __b) {
15338 vector
bool short __b) {
15340 (vector
unsigned short)
__b);
15344 vector
short __b) {
15345 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__a,
15346 (vector
unsigned short)
__b);
15350 vector
unsigned short __b) {
15351 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__a,
15356 vector
bool short __b) {
15357 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__a,
15358 (vector
unsigned short)
__b);
15366 vector
bool int __b) {
15371 vector
unsigned int __b) {
15376 vector
bool int __b) {
15378 (vector
unsigned int)
__b);
15383 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__a,
15384 (vector
unsigned int)
__b);
15388 vector
unsigned int __b) {
15389 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__a,
15394 vector
bool int __b) {
15395 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__a,
15396 (vector
unsigned int)
__b);
15399 #ifdef __POWER8_VECTOR__
15401 vector
signed long long __b) {
15406 vector
unsigned long long __b) {
15411 vector
bool long long __b) {
15413 (vector
signed long long)
__b);
15417 vector
bool long long __b) {
15419 (vector
unsigned long long)
__b);
15423 vector
signed long long __b) {
15425 (vector
unsigned long long)
__a,
15426 (vector
unsigned long long)
__b);
15430 vector
unsigned long long __b) {
15432 (vector
unsigned long long)
__a,
__b);
15436 vector
bool long long __b) {
15438 (vector
unsigned long long)
__a,
15439 (vector
unsigned long long)
__b);
15444 vector
float __b) {
15454 vector
double __b) {
15462 vector
signed char __b) {
15467 vector
bool char __b) {
15469 (vector
signed char)
__b);
15473 vector
unsigned char __b) {
15478 vector
bool char __b) {
15480 (vector
unsigned char)
__b);
15484 vector
signed char __b) {
15485 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__a,
15486 (vector
unsigned char)
__b);
15490 vector
unsigned char __b) {
15491 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__a,
15496 vector
bool char __b) {
15497 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__a,
15498 (vector
unsigned char)
__b);
15502 vector
short __b) {
15507 vector
bool short __b) {
15512 vector
unsigned short __b) {
15517 vector
bool short __b) {
15519 (vector
unsigned short)
__b);
15523 vector
short __b) {
15524 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__a,
15525 (vector
unsigned short)
__b);
15529 vector
unsigned short __b) {
15530 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__a,
15535 vector
bool short __b) {
15536 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__a,
15537 (vector
unsigned short)
__b);
15545 vector
bool int __b) {
15550 vector
unsigned int __b) {
15555 vector
bool int __b) {
15557 (vector
unsigned int)
__b);
15562 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__a,
15563 (vector
unsigned int)
__b);
15567 vector
unsigned int __b) {
15568 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__a,
15573 vector
bool int __b) {
15574 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__a,
15575 (vector
unsigned int)
__b);
15578 #ifdef __POWER8_VECTOR__
15580 vector
signed long long __b) {
15585 vector
unsigned long long __b) {
15590 vector
bool long long __b) {
15592 (vector
signed long long)
__b);
15596 vector
bool long long __b) {
15598 (vector
unsigned long long)
__b);
15602 vector
signed long long __b) {
15604 (vector
unsigned long long)
__a,
15605 (vector
unsigned long long)
__b);
15609 vector
unsigned long long __b) {
15611 (vector
unsigned long long)
__a,
__b);
15615 vector
bool long long __b) {
15617 (vector
unsigned long long)
__a,
15618 (vector
unsigned long long)
__b);
15623 vector
float __b) {
15633 vector
double __b) {
15641 vector
signed char __b) {
15646 vector
bool char __b) {
15647 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ_REV, (vector
signed char)
__b,
15652 vector
unsigned char __b) {
15657 vector
bool char __b) {
15658 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__b,
15663 vector
signed char __b) {
15664 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__b,
15665 (vector
unsigned char)
__a);
15669 vector
unsigned char __b) {
15671 (vector
unsigned char)
__a);
15675 vector
bool char __b) {
15676 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__b,
15677 (vector
unsigned char)
__a);
15681 vector
short __b) {
15686 vector
bool short __b) {
15691 vector
unsigned short __b) {
15696 vector
bool short __b) {
15697 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__b,
15702 vector
short __b) {
15703 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__b,
15704 (vector
unsigned short)
__a);
15708 vector
unsigned short __b) {
15710 (vector
unsigned short)
__a);
15714 vector
bool short __b) {
15715 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__b,
15716 (vector
unsigned short)
__a);
15724 vector
bool int __b) {
15729 vector
unsigned int __b) {
15734 vector
bool int __b) {
15735 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__b,
15741 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__b,
15742 (vector
unsigned int)
__a);
15746 vector
unsigned int __b) {
15748 (vector
unsigned int)
__a);
15752 vector
bool int __b) {
15753 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__b,
15754 (vector
unsigned int)
__a);
15757 #ifdef __POWER8_VECTOR__
15759 vector
signed long long __b) {
15764 vector
unsigned long long __b) {
15769 vector
bool long long __b) {
15771 (vector
signed long long)
__b,
__a);
15775 vector
bool long long __b) {
15777 (vector
unsigned long long)
__b,
__a);
15781 vector
signed long long __b) {
15783 (vector
unsigned long long)
__b,
15784 (vector
unsigned long long)
__a);
15788 vector
unsigned long long __b) {
15790 (vector
unsigned long long)
__a);
15794 vector
bool long long __b) {
15796 (vector
unsigned long long)
__b,
15797 (vector
unsigned long long)
__a);
15802 vector
float __b) {
15812 vector
double __b) {
15820 vec_any_nan(vector
float __a) {
15827 vector
signed char __b) {
15833 vector
bool char __b) {
15839 vector
unsigned char __b) {
15845 vector
bool char __b) {
15851 vector
signed char __b) {
15857 vector
unsigned char __b) {
15863 vector
bool char __b) {
15869 vector
short __b) {
15874 vector
bool short __b) {
15879 vector
unsigned short __b) {
15881 (vector
short)
__b);
15885 vector
bool short __b) {
15887 (vector
short)
__b);
15891 vector
short __b) {
15893 (vector
short)
__b);
15897 vector
unsigned short __b) {
15899 (vector
short)
__b);
15903 vector
bool short __b) {
15905 (vector
short)
__b);
15909 vector pixel
__b) {
15911 (vector
short)
__b);
15919 vector
bool int __b) {
15924 vector
unsigned int __b) {
15930 vector
bool int __b) {
15942 vector
unsigned int __b) {
15948 vector
bool int __b) {
15953 #ifdef __POWER8_VECTOR__
15955 vector
signed long long __b) {
15960 vector
unsigned long long __b) {
15961 return __builtin_altivec_vcmpequd_p(
__CR6_LT_REV, (vector
long long)
__a,
15962 (vector
long long)
__b);
15966 vector
bool long long __b) {
15968 (vector
signed long long)
__b);
15972 vector
bool long long __b) {
15973 return __builtin_altivec_vcmpequd_p(
15978 vector
signed long long __b) {
15979 return __builtin_altivec_vcmpequd_p(
15984 vector
unsigned long long __b) {
15985 return __builtin_altivec_vcmpequd_p(
15990 vector
bool long long __b) {
15991 return __builtin_altivec_vcmpequd_p(
15997 vector
float __b) {
16007 vector
double __b) {
16015 vec_any_nge(vector
float __a, vector
float __b) {
16022 vec_any_ngt(vector
float __a, vector
float __b) {
16029 vec_any_nle(vector
float __a, vector
float __b) {
16036 vec_any_nlt(vector
float __a, vector
float __b) {
16043 vec_any_numeric(vector
float __a) {
16050 vec_any_out(vector
float __a, vector
float __b) {
16068 #define vec_sbox_be __builtin_altivec_crypto_vsbox
16069 #define vec_cipher_be __builtin_altivec_crypto_vcipher
16070 #define vec_cipherlast_be __builtin_altivec_crypto_vcipherlast
16071 #define vec_ncipher_be __builtin_altivec_crypto_vncipher
16072 #define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
16074 static __inline__ vector
unsigned long long __attribute__((__always_inline__))
16075 __builtin_crypto_vsbox(vector
unsigned long long __a) {
16076 return __builtin_altivec_crypto_vsbox(
__a);
16079 static __inline__ vector
unsigned long long __attribute__((__always_inline__))
16080 __builtin_crypto_vcipher(vector
unsigned long long __a,
16081 vector
unsigned long long __b) {
16082 return __builtin_altivec_crypto_vcipher(
__a,
__b);
16085 static __inline__ vector
unsigned long long __attribute__((__always_inline__))
16086 __builtin_crypto_vcipherlast(vector
unsigned long long __a,
16087 vector
unsigned long long __b) {
16088 return __builtin_altivec_crypto_vcipherlast(
__a,
__b);
16091 static __inline__ vector
unsigned long long __attribute__((__always_inline__))
16092 __builtin_crypto_vncipher(vector
unsigned long long __a,
16093 vector
unsigned long long __b) {
16094 return __builtin_altivec_crypto_vncipher(
__a,
__b);
16097 static __inline__ vector
unsigned long long __attribute__((__always_inline__))
16098 __builtin_crypto_vncipherlast(vector
unsigned long long __a,
16099 vector
unsigned long long __b) {
16100 return __builtin_altivec_crypto_vncipherlast(
__a,
__b);
16103 #define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
16104 #define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
16106 #define vec_shasigma_be(X, Y, Z) \
16107 _Generic((X), vector unsigned int \
16108 : __builtin_crypto_vshasigmaw, vector unsigned long long \
16109 : __builtin_crypto_vshasigmad)((X), (Y), (Z))
16112 #ifdef __POWER8_VECTOR__
16114 vec_permxor(vector
bool char __a, vector
bool char __b,
16115 vector
bool char __c) {
16116 return __builtin_altivec_crypto_vpermxor(
__a,
__b,
__c);
16120 vec_permxor(vector
signed char __a, vector
signed char __b,
16121 vector
signed char __c) {
16122 return __builtin_altivec_crypto_vpermxor(
__a,
__b,
__c);
16126 vec_permxor(vector
unsigned char __a, vector
unsigned char __b,
16127 vector
unsigned char __c) {
16128 return __builtin_altivec_crypto_vpermxor(
__a,
__b,
__c);
16132 __builtin_crypto_vpermxor(vector
unsigned char __a, vector
unsigned char __b,
16133 vector
unsigned char __c) {
16134 return __builtin_altivec_crypto_vpermxor(
__a,
__b,
__c);
16138 __builtin_crypto_vpermxor(vector
unsigned short __a, vector
unsigned short __b,
16139 vector
unsigned short __c) {
16140 return (vector
unsigned short)__builtin_altivec_crypto_vpermxor(
16141 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
16142 (vector
unsigned char)
__c);
16145 static __inline__ vector
unsigned int __ATTRS_o_ai __builtin_crypto_vpermxor(
16146 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned int __c) {
16147 return (vector
unsigned int)__builtin_altivec_crypto_vpermxor(
16148 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
16149 (vector
unsigned char)
__c);
16152 static __inline__ vector
unsigned long long __ATTRS_o_ai
16153 __builtin_crypto_vpermxor(vector
unsigned long long __a,
16154 vector
unsigned long long __b,
16155 vector
unsigned long long __c) {
16156 return (vector
unsigned long long)__builtin_altivec_crypto_vpermxor(
16157 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
16158 (vector
unsigned char)
__c);
16162 __builtin_crypto_vpmsumb(vector
unsigned char __a, vector
unsigned char __b) {
16163 return __builtin_altivec_crypto_vpmsumb(
__a,
__b);
16167 __builtin_crypto_vpmsumb(vector
unsigned short __a, vector
unsigned short __b) {
16168 return __builtin_altivec_crypto_vpmsumh(
__a,
__b);
16172 __builtin_crypto_vpmsumb(vector
unsigned int __a, vector
unsigned int __b) {
16173 return __builtin_altivec_crypto_vpmsumw(
__a,
__b);
16176 static __inline__ vector
unsigned long long __ATTRS_o_ai
16177 __builtin_crypto_vpmsumb(vector
unsigned long long __a,
16178 vector
unsigned long long __b) {
16179 return __builtin_altivec_crypto_vpmsumd(
__a,
__b);
16183 vec_vgbbd(vector
signed char __a) {
16184 return __builtin_altivec_vgbbd((vector
unsigned char)
__a);
16187 #define vec_pmsum_be __builtin_crypto_vpmsumb
16188 #define vec_gb __builtin_altivec_vgbbd
16191 vec_vgbbd(vector
unsigned char __a) {
16192 return __builtin_altivec_vgbbd(
__a);
16196 vec_vbpermq(vector
signed char __a, vector
signed char __b) {
16197 return __builtin_altivec_vbpermq((vector
unsigned char)
__a,
16198 (vector
unsigned char)
__b);
16202 vec_vbpermq(vector
unsigned char __a, vector
unsigned char __b) {
16203 return __builtin_altivec_vbpermq(
__a,
__b);
16206 #ifdef __powerpc64__
16207 static __inline__ vector
unsigned long long __attribute__((__always_inline__))
16208 vec_bperm(vector
unsigned __int128
__a, vector
unsigned char __b) {
16209 return __builtin_altivec_vbpermq((vector
unsigned char)
__a,
16210 (vector
unsigned char)
__b);
16219 return __builtin_shufflevector(
__a,
__a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
16224 return __builtin_shufflevector(
__a,
__a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
16230 return __builtin_shufflevector(
__a,
__a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
16235 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
16239 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
16244 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
16248 return __builtin_shufflevector(
__a,
__a, 7, 6, 5, 4, 3, 2, 1, 0);
16253 return __builtin_shufflevector(
__a,
__a, 7, 6, 5, 4, 3, 2, 1, 0);
16258 return __builtin_shufflevector(
__a,
__a, 7, 6, 5, 4, 3, 2, 1, 0);
16262 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
16268 return __builtin_shufflevector(
__a,
__a, 1, 0);
16273 return __builtin_shufflevector(
__a,
__a, 1, 0);
16278 return __builtin_shufflevector(
__a,
__a, 1, 0);
16282 return __builtin_shufflevector(
__a,
__a, 1, 0);
16304 vector
unsigned char __indices =
16305 { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
16311 vector
unsigned char __indices =
16312 { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
16318 vector
unsigned char __indices =
16319 { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
16325 vector
unsigned char __indices =
16326 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
16332 vector
unsigned char __indices =
16333 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
16339 vector
unsigned char __indices =
16340 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
16346 vector
unsigned char __indices =
16347 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
16354 vector
unsigned char __indices =
16355 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
16359 static __inline__ vector
signed long long __ATTRS_o_ai
16361 vector
unsigned char __indices =
16362 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
16366 static __inline__ vector
unsigned long long __ATTRS_o_ai
16368 vector
unsigned char __indices =
16369 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
16375 vector
unsigned char __indices =
16376 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
16381 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16384 vector
unsigned char __indices =
16385 { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
16386 return (vector
signed __int128)
vec_perm((vector
signed int)
__a,
16387 (vector
signed int)
__a,
16391 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
16393 vector
unsigned char __indices =
16394 { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
16395 return (vector
unsigned __int128)
vec_perm((vector
signed int)
__a,
16396 (vector
signed int)
__a,
16404 typedef vector
unsigned char unaligned_vec_uchar
__attribute__((aligned(1)));
16405 typedef vector
signed short unaligned_vec_sshort
__attribute__((aligned(1)));
16406 typedef vector
unsigned short unaligned_vec_ushort
__attribute__((aligned(1)));
16407 typedef vector
signed int unaligned_vec_sint
__attribute__((aligned(1)));
16408 typedef vector
unsigned int unaligned_vec_uint
__attribute__((aligned(1)));
16409 typedef vector
float unaligned_vec_float
__attribute__((aligned(1)));
16412 const signed char *__ptr) {
16413 return *(unaligned_vec_schar *)(__ptr + __offset);
16417 vec_xl(
signed long long __offset,
const unsigned char *__ptr) {
16418 return *(unaligned_vec_uchar*)(__ptr + __offset);
16422 const signed short *__ptr) {
16423 signed char *__addr = (
signed char *)__ptr + __offset;
16424 return *(unaligned_vec_sshort *)__addr;
16428 vec_xl(
signed long long __offset,
const unsigned short *__ptr) {
16429 signed char *__addr = (
signed char *)__ptr + __offset;
16430 return *(unaligned_vec_ushort *)__addr;
16434 const signed int *__ptr) {
16435 signed char *__addr = (
signed char *)__ptr + __offset;
16436 return *(unaligned_vec_sint *)__addr;
16440 const unsigned int *__ptr) {
16441 signed char *__addr = (
signed char *)__ptr + __offset;
16442 return *(unaligned_vec_uint *)__addr;
16446 const float *__ptr) {
16447 signed char *__addr = (
signed char *)__ptr + __offset;
16448 return *(unaligned_vec_float *)__addr;
16452 typedef vector
signed long long unaligned_vec_sll
__attribute__((aligned(1)));
16453 typedef vector
unsigned long long unaligned_vec_ull
__attribute__((aligned(1)));
16454 typedef vector
double unaligned_vec_double
__attribute__((aligned(1)));
16457 vec_xl(
signed long long __offset,
const signed long long *__ptr) {
16458 signed char *__addr = (
signed char *)__ptr + __offset;
16459 return *(unaligned_vec_sll *)__addr;
16463 vec_xl(
signed long long __offset,
const unsigned long long *__ptr) {
16464 signed char *__addr = (
signed char *)__ptr + __offset;
16465 return *(unaligned_vec_ull *)__addr;
16469 const double *__ptr) {
16470 signed char *__addr = (
signed char *)__ptr + __offset;
16471 return *(unaligned_vec_double *)__addr;
16475 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16476 typedef vector
signed __int128 unaligned_vec_si128
__attribute__((aligned(1)));
16477 typedef vector
unsigned __int128 unaligned_vec_ui128
16480 vec_xl(
signed long long __offset,
const signed __int128 *__ptr) {
16481 signed char *__addr = (
signed char *)__ptr + __offset;
16482 return *(unaligned_vec_si128 *)__addr;
16486 vec_xl(
signed long long __offset,
const unsigned __int128 *__ptr) {
16487 signed char *__addr = (
signed char *)__ptr + __offset;
16488 return *(unaligned_vec_ui128 *)__addr;
16494 #ifdef __LITTLE_ENDIAN__
16496 vec_xl_be(
signed long long __offset,
const signed char *__ptr) {
16497 vector
signed char __vec = (vector
signed char)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16498 return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
16499 13, 12, 11, 10, 9, 8);
16503 vec_xl_be(
signed long long __offset,
const unsigned char *__ptr) {
16504 vector
unsigned char __vec = (vector
unsigned char)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16505 return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
16506 13, 12, 11, 10, 9, 8);
16510 vec_xl_be(
signed long long __offset,
const signed short *__ptr) {
16511 vector
signed short __vec = (vector
signed short)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16512 return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
16516 vec_xl_be(
signed long long __offset,
const unsigned short *__ptr) {
16517 vector
unsigned short __vec = (vector
unsigned short)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16518 return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
16522 vec_xl_be(
signed long long __offset,
const signed int *__ptr) {
16523 return (vector
signed int)__builtin_vsx_lxvw4x_be(__offset, __ptr);
16527 vec_xl_be(
signed long long __offset,
const unsigned int *__ptr) {
16528 return (vector
unsigned int)__builtin_vsx_lxvw4x_be(__offset, __ptr);
16532 vec_xl_be(
signed long long __offset,
const float *__ptr) {
16533 return (vector
float)__builtin_vsx_lxvw4x_be(__offset, __ptr);
16537 static __inline__ vector
signed long long __ATTRS_o_ai
16538 vec_xl_be(
signed long long __offset,
const signed long long *__ptr) {
16539 return (vector
signed long long)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16542 static __inline__ vector
unsigned long long __ATTRS_o_ai
16543 vec_xl_be(
signed long long __offset,
const unsigned long long *__ptr) {
16544 return (vector
unsigned long long)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16548 vec_xl_be(
signed long long __offset,
const double *__ptr) {
16549 return (vector
double)__builtin_vsx_lxvd2x_be(__offset, __ptr);
16553 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16555 vec_xl_be(
signed long long __offset,
const signed __int128 *__ptr) {
16556 return vec_xl(__offset, __ptr);
16559 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
16560 vec_xl_be(
signed long long __offset,
const unsigned __int128 *__ptr) {
16561 return vec_xl(__offset, __ptr);
16565 #define vec_xl_be vec_xl
16571 signed long long __offset,
16572 signed char *__ptr) {
16573 *(unaligned_vec_schar *)(__ptr + __offset) = __vec;
16577 signed long long __offset,
16578 unsigned char *__ptr) {
16579 *(unaligned_vec_uchar *)(__ptr + __offset) = __vec;
16583 signed long long __offset,
16584 signed short *__ptr) {
16585 signed char *__addr = (
signed char *)__ptr + __offset;
16586 *(unaligned_vec_sshort *)__addr = __vec;
16590 signed long long __offset,
16591 unsigned short *__ptr) {
16592 signed char *__addr = (
signed char *)__ptr + __offset;
16593 *(unaligned_vec_ushort *)__addr = __vec;
16597 signed long long __offset,
16598 signed int *__ptr) {
16599 signed char *__addr = (
signed char *)__ptr + __offset;
16600 *(unaligned_vec_sint *)__addr = __vec;
16604 signed long long __offset,
16605 unsigned int *__ptr) {
16606 signed char *__addr = (
signed char *)__ptr + __offset;
16607 *(unaligned_vec_uint *)__addr = __vec;
16611 signed long long __offset,
16613 signed char *__addr = (
signed char *)__ptr + __offset;
16614 *(unaligned_vec_float *)__addr = __vec;
16619 signed long long __offset,
16620 signed long long *__ptr) {
16621 signed char *__addr = (
signed char *)__ptr + __offset;
16622 *(unaligned_vec_sll *)__addr = __vec;
16626 signed long long __offset,
16627 unsigned long long *__ptr) {
16628 signed char *__addr = (
signed char *)__ptr + __offset;
16629 *(unaligned_vec_ull *)__addr = __vec;
16633 signed long long __offset,
16635 signed char *__addr = (
signed char *)__ptr + __offset;
16636 *(unaligned_vec_double *)__addr = __vec;
16640 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16642 signed long long __offset,
16643 signed __int128 *__ptr) {
16644 signed char *__addr = (
signed char *)__ptr + __offset;
16645 *(unaligned_vec_si128 *)__addr = __vec;
16649 signed long long __offset,
16650 unsigned __int128 *__ptr) {
16651 signed char *__addr = (
signed char *)__ptr + __offset;
16652 *(unaligned_vec_ui128 *)__addr = __vec;
16658 #ifdef __LITTLE_ENDIAN__
16660 signed long long __offset,
16661 signed char *__ptr) {
16662 vector
signed char __tmp =
16663 __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
16664 13, 12, 11, 10, 9, 8);
16665 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
16666 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
16670 signed long long __offset,
16671 unsigned char *__ptr) {
16672 vector
unsigned char __tmp =
16673 __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
16674 13, 12, 11, 10, 9, 8);
16675 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
16676 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
16680 signed long long __offset,
16681 signed short *__ptr) {
16682 vector
signed short __tmp =
16683 __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
16684 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
16685 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
16689 signed long long __offset,
16690 unsigned short *__ptr) {
16691 vector
unsigned short __tmp =
16692 __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
16693 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
16694 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
16698 signed long long __offset,
16699 signed int *__ptr) {
16700 __builtin_vsx_stxvw4x_be(__vec, __offset, __ptr);
16704 signed long long __offset,
16705 unsigned int *__ptr) {
16706 __builtin_vsx_stxvw4x_be((vector
int)__vec, __offset, __ptr);
16710 signed long long __offset,
16712 __builtin_vsx_stxvw4x_be((vector
int)__vec, __offset, __ptr);
16717 signed long long __offset,
16718 signed long long *__ptr) {
16719 __builtin_vsx_stxvd2x_be((vector
double)__vec, __offset, __ptr);
16723 signed long long __offset,
16724 unsigned long long *__ptr) {
16725 __builtin_vsx_stxvd2x_be((vector
double)__vec, __offset, __ptr);
16729 signed long long __offset,
16731 __builtin_vsx_stxvd2x_be((vector
double)__vec, __offset, __ptr);
16735 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16737 signed long long __offset,
16738 signed __int128 *__ptr) {
16739 vec_xst(__vec, __offset, __ptr);
16743 signed long long __offset,
16744 unsigned __int128 *__ptr) {
16745 vec_xst(__vec, __offset, __ptr);
16749 #define vec_xst_be vec_xst
16752 #ifdef __POWER9_VECTOR__
16753 #define vec_test_data_class(__a, __b) \
16755 (__a), vector float \
16756 : (vector bool int)__builtin_vsx_xvtstdcsp((vector float)(__a), (__b)), \
16758 : (vector bool long long)__builtin_vsx_xvtstdcdp((vector double)(__a), \
16774 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16803 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16805 return __builtin_altivec_vminsd(
__a, -
__a);
16810 return __builtin_altivec_vminsw(
__a, -
__a);
16814 return __builtin_altivec_vminsh(
__a, -
__a);
16818 return __builtin_altivec_vminsb(
__a, -
__a);
16821 #ifdef __POWER10_VECTOR__
16824 static __inline__ vector
unsigned long long __ATTRS_o_ai
16825 vec_pdep(vector
unsigned long long __a, vector
unsigned long long __b) {
16826 return __builtin_altivec_vpdepd(
__a,
__b);
16831 static __inline__ vector
unsigned long long __ATTRS_o_ai
16832 vec_pext(vector
unsigned long long __a, vector
unsigned long long __b) {
16833 return __builtin_altivec_vpextd(
__a,
__b);
16838 static __inline__ vector
unsigned long long __ATTRS_o_ai
16839 vec_cfuge(vector
unsigned long long __a, vector
unsigned long long __b) {
16840 return __builtin_altivec_vcfuged(
__a,
__b);
16845 #define vec_gnb(__a, __b) __builtin_altivec_vgnb(__a, __b)
16849 #define vec_ternarylogic(__a, __b, __c, __imm) \
16850 _Generic((__a), vector unsigned char \
16851 : __builtin_vsx_xxeval((vector unsigned long long)(__a), \
16852 (vector unsigned long long)(__b), \
16853 (vector unsigned long long)(__c), (__imm)), \
16854 vector unsigned short \
16855 : __builtin_vsx_xxeval((vector unsigned long long)(__a), \
16856 (vector unsigned long long)(__b), \
16857 (vector unsigned long long)(__c), (__imm)), \
16858 vector unsigned int \
16859 : __builtin_vsx_xxeval((vector unsigned long long)(__a), \
16860 (vector unsigned long long)(__b), \
16861 (vector unsigned long long)(__c), (__imm)), \
16862 vector unsigned long long \
16863 : __builtin_vsx_xxeval((vector unsigned long long)(__a), \
16864 (vector unsigned long long)(__b), \
16865 (vector unsigned long long)(__c), (__imm)), \
16866 vector unsigned __int128 \
16867 : __builtin_vsx_xxeval((vector unsigned long long)(__a), \
16868 (vector unsigned long long)(__b), \
16869 (vector unsigned long long)(__c), (__imm)))
16875 #define vec_genpcvm(__a, __imm) \
16876 _Generic((__a), vector unsigned char \
16877 : __builtin_vsx_xxgenpcvbm((__a), (int)(__imm)), \
16878 vector unsigned short \
16879 : __builtin_vsx_xxgenpcvhm((__a), (int)(__imm)), \
16880 vector unsigned int \
16881 : __builtin_vsx_xxgenpcvwm((__a), (int)(__imm)), \
16882 vector unsigned long long \
16883 : __builtin_vsx_xxgenpcvdm((__a), (int)(__imm)))
16889 vec_clrl(vector
signed char __a,
unsigned int __n) {
16890 #ifdef __LITTLE_ENDIAN__
16891 return __builtin_altivec_vclrrb(
__a, __n);
16893 return __builtin_altivec_vclrlb(
__a, __n);
16898 vec_clrl(vector
unsigned char __a,
unsigned int __n) {
16899 #ifdef __LITTLE_ENDIAN__
16900 return __builtin_altivec_vclrrb((vector
signed char)
__a, __n);
16902 return __builtin_altivec_vclrlb((vector
signed char)
__a, __n);
16909 vec_clrr(vector
signed char __a,
unsigned int __n) {
16910 #ifdef __LITTLE_ENDIAN__
16911 return __builtin_altivec_vclrlb(
__a, __n);
16913 return __builtin_altivec_vclrrb(
__a, __n);
16918 vec_clrr(vector
unsigned char __a,
unsigned int __n) {
16919 #ifdef __LITTLE_ENDIAN__
16920 return __builtin_altivec_vclrlb((vector
signed char)
__a, __n);
16922 return __builtin_altivec_vclrrb((vector
signed char)
__a, __n);
16928 static __inline__ vector
unsigned long long __ATTRS_o_ai
16929 vec_cntlzm(vector
unsigned long long __a, vector
unsigned long long __b) {
16930 return __builtin_altivec_vclzdm(
__a,
__b);
16935 static __inline__ vector
unsigned long long __ATTRS_o_ai
16936 vec_cnttzm(vector
unsigned long long __a, vector
unsigned long long __b) {
16937 return __builtin_altivec_vctzdm(
__a,
__b);
16942 #define vec_sldb(__a, __b, __c) __builtin_altivec_vsldbi(__a, __b, (__c & 0x7))
16946 #define vec_srdb(__a, __b, __c) __builtin_altivec_vsrdbi(__a, __b, (__c & 0x7))
16951 vec_insertl(
unsigned char __a, vector
unsigned char __b,
unsigned int __c) {
16952 #ifdef __LITTLE_ENDIAN__
16953 return __builtin_altivec_vinsbrx(
__b,
__c,
__a);
16955 return __builtin_altivec_vinsblx(
__b,
__c,
__a);
16960 vec_insertl(
unsigned short __a, vector
unsigned short __b,
unsigned int __c) {
16961 #ifdef __LITTLE_ENDIAN__
16962 return __builtin_altivec_vinshrx(
__b,
__c,
__a);
16964 return __builtin_altivec_vinshlx(
__b,
__c,
__a);
16969 vec_insertl(
unsigned int __a, vector
unsigned int __b,
unsigned int __c) {
16970 #ifdef __LITTLE_ENDIAN__
16971 return __builtin_altivec_vinswrx(
__b,
__c,
__a);
16973 return __builtin_altivec_vinswlx(
__b,
__c,
__a);
16977 static __inline__ vector
unsigned long long __ATTRS_o_ai
16978 vec_insertl(
unsigned long long __a, vector
unsigned long long __b,
16979 unsigned int __c) {
16980 #ifdef __LITTLE_ENDIAN__
16981 return __builtin_altivec_vinsdrx(
__b,
__c,
__a);
16983 return __builtin_altivec_vinsdlx(
__b,
__c,
__a);
16988 vec_insertl(vector
unsigned char __a, vector
unsigned char __b,
16989 unsigned int __c) {
16990 #ifdef __LITTLE_ENDIAN__
16991 return __builtin_altivec_vinsbvrx(
__b,
__c,
__a);
16993 return __builtin_altivec_vinsbvlx(
__b,
__c,
__a);
16998 vec_insertl(vector
unsigned short __a, vector
unsigned short __b,
16999 unsigned int __c) {
17000 #ifdef __LITTLE_ENDIAN__
17001 return __builtin_altivec_vinshvrx(
__b,
__c,
__a);
17003 return __builtin_altivec_vinshvlx(
__b,
__c,
__a);
17008 vec_insertl(vector
unsigned int __a, vector
unsigned int __b,
17009 unsigned int __c) {
17010 #ifdef __LITTLE_ENDIAN__
17011 return __builtin_altivec_vinswvrx(
__b,
__c,
__a);
17013 return __builtin_altivec_vinswvlx(
__b,
__c,
__a);
17020 vec_inserth(
unsigned char __a, vector
unsigned char __b,
unsigned int __c) {
17021 #ifdef __LITTLE_ENDIAN__
17022 return __builtin_altivec_vinsblx(
__b,
__c,
__a);
17024 return __builtin_altivec_vinsbrx(
__b,
__c,
__a);
17029 vec_inserth(
unsigned short __a, vector
unsigned short __b,
unsigned int __c) {
17030 #ifdef __LITTLE_ENDIAN__
17031 return __builtin_altivec_vinshlx(
__b,
__c,
__a);
17033 return __builtin_altivec_vinshrx(
__b,
__c,
__a);
17038 vec_inserth(
unsigned int __a, vector
unsigned int __b,
unsigned int __c) {
17039 #ifdef __LITTLE_ENDIAN__
17040 return __builtin_altivec_vinswlx(
__b,
__c,
__a);
17042 return __builtin_altivec_vinswrx(
__b,
__c,
__a);
17046 static __inline__ vector
unsigned long long __ATTRS_o_ai
17047 vec_inserth(
unsigned long long __a, vector
unsigned long long __b,
17048 unsigned int __c) {
17049 #ifdef __LITTLE_ENDIAN__
17050 return __builtin_altivec_vinsdlx(
__b,
__c,
__a);
17052 return __builtin_altivec_vinsdrx(
__b,
__c,
__a);
17057 vec_inserth(vector
unsigned char __a, vector
unsigned char __b,
17058 unsigned int __c) {
17059 #ifdef __LITTLE_ENDIAN__
17060 return __builtin_altivec_vinsbvlx(
__b,
__c,
__a);
17062 return __builtin_altivec_vinsbvrx(
__b,
__c,
__a);
17067 vec_inserth(vector
unsigned short __a, vector
unsigned short __b,
17068 unsigned int __c) {
17069 #ifdef __LITTLE_ENDIAN__
17070 return __builtin_altivec_vinshvlx(
__b,
__c,
__a);
17072 return __builtin_altivec_vinshvrx(
__b,
__c,
__a);
17077 vec_inserth(vector
unsigned int __a, vector
unsigned int __b,
17078 unsigned int __c) {
17079 #ifdef __LITTLE_ENDIAN__
17080 return __builtin_altivec_vinswvlx(
__b,
__c,
__a);
17082 return __builtin_altivec_vinswvrx(
__b,
__c,
__a);
17090 #define vec_permx(__a, __b, __c, __d) \
17091 __builtin_vsx_xxpermx((__a), (__b), (__c), (__d))
17096 vec_blendv(vector
signed char __a, vector
signed char __b,
17097 vector
unsigned char __c) {
17098 return __builtin_vsx_xxblendvb(
__a,
__b,
__c);
17102 vec_blendv(vector
unsigned char __a, vector
unsigned char __b,
17103 vector
unsigned char __c) {
17104 return __builtin_vsx_xxblendvb(
__a,
__b,
__c);
17108 vec_blendv(vector
signed short __a, vector
signed short __b,
17109 vector
unsigned short __c) {
17110 return __builtin_vsx_xxblendvh(
__a,
__b,
__c);
17114 vec_blendv(vector
unsigned short __a, vector
unsigned short __b,
17115 vector
unsigned short __c) {
17116 return __builtin_vsx_xxblendvh(
__a,
__b,
__c);
17120 vec_blendv(vector
signed int __a, vector
signed int __b,
17121 vector
unsigned int __c) {
17122 return __builtin_vsx_xxblendvw(
__a,
__b,
__c);
17126 vec_blendv(vector
unsigned int __a, vector
unsigned int __b,
17127 vector
unsigned int __c) {
17128 return __builtin_vsx_xxblendvw(
__a,
__b,
__c);
17131 static __inline__ vector
signed long long __ATTRS_o_ai
17132 vec_blendv(vector
signed long long __a, vector
signed long long __b,
17133 vector
unsigned long long __c) {
17134 return __builtin_vsx_xxblendvd(
__a,
__b,
__c);
17137 static __inline__ vector
unsigned long long __ATTRS_o_ai
17138 vec_blendv(vector
unsigned long long __a, vector
unsigned long long __b,
17139 vector
unsigned long long __c) {
17140 return __builtin_vsx_xxblendvd(
__a,
__b,
__c);
17144 vec_blendv(vector
float __a, vector
float __b, vector
unsigned int __c) {
17145 return __builtin_vsx_xxblendvw(
__a,
__b,
__c);
17149 vec_blendv(vector
double __a, vector
double __b,
17150 vector
unsigned long long __c) {
17151 return __builtin_vsx_xxblendvd(
__a,
__b,
__c);
17156 #define vec_splati(__a) \
17157 _Generic((__a), signed int \
17158 : ((vector signed int)__a), unsigned int \
17159 : ((vector unsigned int)__a), float \
17160 : ((vector float)__a))
17164 static __inline__ vector
double __ATTRS_o_ai vec_splatid(
const float __a) {
17165 return ((vector
double)((
double)
__a));
17170 static __inline__ vector
signed int __ATTRS_o_ai vec_splati_ins(
17171 vector
signed int __a,
const unsigned int __b,
const signed int __c) {
17172 #ifdef __LITTLE_ENDIAN__
17182 static __inline__ vector
unsigned int __ATTRS_o_ai vec_splati_ins(
17183 vector
unsigned int __a,
const unsigned int __b,
const unsigned int __c) {
17184 #ifdef __LITTLE_ENDIAN__
17195 vec_splati_ins(vector
float __a,
const unsigned int __b,
const float __c) {
17196 #ifdef __LITTLE_ENDIAN__
17209 vec_test_lsbb_all_ones(vector
unsigned char __a) {
17210 return __builtin_vsx_xvtlsbb(
__a, 1);
17216 vec_test_lsbb_all_zeros(vector
unsigned char __a) {
17217 return __builtin_vsx_xvtlsbb(
__a, 0);
17222 #undef __ATTRS_o_ai
static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector int __a, vector int __b)
static __inline__ vector signed int __ATTRS_o_ai vec_sube(vector signed int __a, vector signed int __b, vector signed int __c)
static __inline__ vector unsigned char __ATTRS_o_ai vec_sr(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector unsigned short __ATTRS_o_ai vec_vadduhs(vector unsigned short __a, vector unsigned short __b)
static __inline__ vector bool char __ATTRS_o_ai vec_cmpeq(vector signed char __a, vector signed char __b)
static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_sra(vector signed char __a, vector unsigned char __b)
static __inline__ vector short __ATTRS_o_ai vec_lvehx(int __a, const short *__b)
static __inline__ vector int __ATTRS_o_ai vec_vmrghw(vector int __a, vector int __b)
static __inline__ vector short __ATTRS_o_ai vec_vsubshs(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_sro(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvrx(int __a, const signed char *__b)
static __inline__ vector signed char __ATTRS_o_ai vec_lde(int __a, const signed char *__b)
static __inline__ vector signed char __ATTRS_o_ai vec_ld(int __a, const vector signed char *__b)
static __inline__ void __ATTRS_o_ai vec_stvebx(vector signed char __a, int __b, signed char *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_abss(vector signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vsubsbs(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned int __ATTRS_o_ai vec_vmaxuw(vector unsigned int __a, vector unsigned int __b)
static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vslb(vector signed char __a, vector unsigned char __b)
static __inline__ vector short __ATTRS_o_ai vec_vsplth(vector short __a, unsigned char __b)
static __inline__ vector short __ATTRS_o_ai vec_vmladduhm(vector short __a, vector short __b, vector short __c)
static __inline__ vector int __ATTRS_o_ai vec_vupkhsh(vector short __a)
static __inline__ void __ATTRS_o_ai vec_stvx(vector signed char __a, int __b, vector signed char *__c)
static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, vector signed char __b)
static __inline__ void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b, signed char *__c)
static __inline__ vector int __ATTRS_o_ai vec_vsraw(vector int __a, vector unsigned int __b)
static __inline__ vector bool char __ATTRS_o_ai vec_cmpne(vector bool char __a, vector bool char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_sldw(vector signed char __a, vector signed char __b, unsigned const int __c)
vector signed char unaligned_vec_schar __attribute__((aligned(1)))
static __inline__ vector short __ATTRS_o_ai vec_vslh(vector short __a, vector unsigned short __b)
static __inline__ vector float vector float vector float __c
static __inline__ vector short __ATTRS_o_ai vec_vaddshs(vector short __a, vector short __b)
static __inline__ vector int __ATTRS_o_ai vec_msum(vector signed char __a, vector unsigned char __b, vector int __c)
static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a, vector signed char __b)
static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vaddubm(vector signed char __a, vector signed char __b)
static __inline__ vector short __ATTRS_o_ai vec_vspltish(signed char __a)
static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, const signed char *__b)
static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a, vector short __b)
static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vrlb(vector signed char __a, vector unsigned char __b)
static __inline__ vector signed int __ATTRS_o_ai vec_subc(vector signed int __a, vector signed int __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_vaddubs(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector int __ATTRS_o_ai vec_lvewx(int __a, const int *__b)
static __inline__ vector signed char __ATTRS_o_ai vec_vpkuhum(vector signed short __a, vector signed short __b)
static __inline__ vector signed int __ATTRS_o_ai vec_addc(vector signed int __a, vector signed int __b)
static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a, vector signed char __b)
static __ATTRS_o_ai vector bool char vec_reve(vector bool char __a)
static __inline__ vector short __ATTRS_o_ai vec_vminsh(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a)
static __inline__ vector short __ATTRS_o_ai vec_vupkhsb(vector signed char __a)
static __inline__ vector bool char __ATTRS_o_ai vec_revb(vector bool char __a)
static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, vector signed char __b)
static __inline__ void __ATTRS_o_ai vec_st(vector signed char __a, int __b, vector signed char *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_andc(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsl(int __a, const signed char *__b)
static __inline__ vector signed int __ATTRS_o_ai vec_sld(vector signed int, vector signed int, unsigned const int __c)
static __inline__ vector int __ATTRS_o_ai vec_vsrw(vector int __a, vector unsigned int __b)
static __inline__ vector short __ATTRS_o_ai vec_unpackl(vector signed char __a)
static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a, vector signed char __b)
static __inline__ vector int __ATTRS_o_ai vec_sum4s(vector signed char __a, vector int __b)
static __inline__ void __ATTRS_o_ai vec_mtvscr(vector signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vandc(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_mul(vector signed char __a, vector signed char __b)
static __inline__ void __ATTRS_o_ai vec_stvxl(vector signed char __a, int __b, vector signed char *__c)
static __inline__ vector signed int __ATTRS_o_ai vec_signed(vector float __a)
static __inline__ void __ATTRS_o_ai vec_stl(vector signed char __a, int __b, vector signed char *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_and(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_avg(vector signed char __a, vector signed char __b)
static __inline__ void __ATTRS_o_ai vec_ste(vector signed char __a, int __b, signed char *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_splat_s8(signed char __a)
static __inline__ int __ATTRS_o_ai vec_all_nan(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_mergel(vector signed char __a, vector signed char __b)
static __inline__ vector int __ATTRS_o_ai vec_vspltisw(signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_subs(vector signed char __a, vector signed char __b)
static __inline__ vector float vector float __b
static __inline__ vector int __ATTRS_o_ai vec_vmrglw(vector int __a, vector int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vxor(vector signed char __a, vector signed char __b)
static __inline__ vector short __ATTRS_o_ai vec_vmrglh(vector short __a, vector short __b)
static __inline__ int __ATTRS_o_ai vec_all_ngt(vector float __a, vector float __b)
static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_lvlx(int __a, const signed char *__b)
static __inline__ vector short __ATTRS_o_ai vec_vrlh(vector short __a, vector unsigned short __b)
static __inline__ vector int __ATTRS_o_ai vec_vrlw(vector int __a, vector unsigned int __b)
static __inline__ void __ATTRS_o_ai vec_stvehx(vector short __a, int __b, short *__c)
static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a, vector signed char __b)
static __inline__ vector int __ATTRS_o_ai vec_splat_s32(signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vmrglb(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_adds(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned short __ATTRS_o_ai vec_vsubuhs(vector unsigned short __a, vector unsigned short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a, int __b)
static __inline__ vector unsigned short __ATTRS_o_ai vec_vmaxuh(vector unsigned short __a, vector unsigned short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
static __inline__ vector unsigned char __ATTRS_o_ai vec_vminub(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vsrab(vector signed char __a, vector unsigned char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vsububm(vector signed char __a, vector signed char __b)
static __inline__ vector signed short __ATTRS_o_ai vec_mladd(vector signed short, vector signed short, vector signed short)
static __inline__ void __ATTRS_o_ai vec_stvlx(vector signed char __a, int __b, signed char *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
static __inline__ vector signed char __ATTRS_o_ai vec_vmaxsb(vector signed char __a, vector signed char __b)
static __inline__ vector float __ATTRS_o_ai vec_float(vector signed int __a)
static __inline__ vector unsigned int __ATTRS_o_ai vec_splat_u32(signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_mergeh(vector signed char __a, vector signed char __b)
static __inline__ vector int __ATTRS_o_ai vec_vupklsh(vector short __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vsldoi(vector signed char __a, vector signed char __b, unsigned char __c)
static __inline__ vector signed char __ATTRS_o_ai vec_rl(vector signed char __a, vector unsigned char __b)
static __inline__ vector bool char __ATTRS_o_ai vec_cmplt(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned int __ATTRS_o_ai vec_unsigned(vector float __a)
static __inline__ vector int __ATTRS_o_ai vec_vslw(vector int __a, vector unsigned int __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_vmaxub(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector unsigned short __ATTRS_o_ai vec_vpkswus(vector int __a, vector int __b)
static __inline__ vector short __ATTRS_o_ai vec_vsrh(vector short __a, vector unsigned short __b)
static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a, int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vmrghb(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vnor(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_max(vector signed char __a, vector signed char __b)
static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a, vector signed char __b)
static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a, vector signed char __b)
static __inline__ vector signed int __ATTRS_o_ai vec_adde(vector signed int __a, vector signed int __b, vector signed int __c)
static __inline__ vector int __ATTRS_o_ai vec_vspltw(vector int __a, unsigned char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_slo(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_nor(vector signed char __a, vector signed char __b)
static __inline__ vector short __ATTRS_o_ai vec_vpkuwum(vector int __a, vector int __b)
static __inline__ vector bool char __ATTRS_o_ai vec_cmpge(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvlxl(int __a, const signed char *__b)
static __inline__ vector signed char __ATTRS_o_ai vec_pack(vector signed short __a, vector signed short __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_packsu(vector short __a, vector short __b)
static __inline__ vector short __ATTRS_o_ai vec_mulo(vector signed char __a, vector signed char __b)
static __inline__ int __ATTRS_o_ai vec_all_nge(vector float __a, vector float __b)
static __inline__ vector int __ATTRS_o_ai vec_vsubuwm(vector int __a, vector int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_srl(vector signed char __a, vector unsigned char __b)
static __inline__ vector float __ATTRS_o_ai vec_re(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_min(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vand(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_splat(vector signed char __a, unsigned const int __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_vpkshus(vector short __a, vector short __b)
static __inline__ vector unsigned int __ATTRS_o_ai vec_vminuw(vector unsigned int __a, vector unsigned int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvrxl(int __a, const signed char *__b)
static vector float __ATTRS_o_ai vec_neg(vector float __a)
static vector float __ATTRS_o_ai vec_nabs(vector float __a)
static __inline__ vector signed char __ATTRS_o_ai vec_or(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvxl(int __a, const vector signed char *__b)
static __inline__ vector short __ATTRS_o_ai vec_unpackh(vector signed char __a)
static __inline__ vector short __ATTRS_o_ai vec_vmrghh(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vsr(vector signed char __a, vector unsigned char __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_sl(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector short __ATTRS_o_ai vec_vadduhm(vector short __a, vector short __b)
static __inline__ vector short __ATTRS_o_ai vec_splat_s16(signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vminsb(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_add(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vperm(vector signed char __a, vector signed char __b, vector unsigned char __c)
static __ATTRS_o_ai void vec_xst(vector signed char __vec, signed long long __offset, signed char *__ptr)
static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector int __a, vector int __b)
static __inline__ void __ATTRS_o_ai vec_stvrxl(vector signed char __a, int __b, signed char *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_ldl(int __a, const vector signed char *__b)
static __inline__ void __ATTRS_o_ai vec_stvewx(vector int __a, int __b, int *__c)
static __inline__ vector signed char __ATTRS_o_ai vec_abs(vector signed char __a)
static __inline__ void __ATTRS_o_ai vec_stvrx(vector signed char __a, int __b, signed char *__c)
static __inline__ vector signed short __ATTRS_o_ai vec_madd(vector signed short __a, vector signed short __b, vector signed short __c)
static __inline__ vector signed char __ATTRS_o_ai vec_vsel(vector signed char __a, vector signed char __b, vector unsigned char __c)
static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned char __ATTRS_o_ai vec_xor(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector int __ATTRS_o_ai vec_vminsw(vector int __a, vector int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvebx(int __a, const signed char *__b)
static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, vector signed char __b)
static __inline__ vector unsigned int __ATTRS_o_ai vec_vadduws(vector unsigned int __a, vector unsigned int __b)
static __inline__ vector int __ATTRS_o_ai vec_vmaxsw(vector int __a, vector int __b)
static __inline__ vector float __ATTRS_o_ai vec_rsqrte(vector float __a)
static __inline__ vector unsigned char __ATTRS_o_ai vec_vsububs(vector unsigned char __a, vector unsigned char __b)
static __inline__ vector unsigned short __ATTRS_o_ai vec_vminuh(vector unsigned short __a, vector unsigned short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vspltb(vector signed char __a, unsigned char __b)
static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a)
static __inline__ vector short __ATTRS_o_ai vec_vupklsb(vector signed char __a)
static __inline__ vector bool char __ATTRS_o_ai vec_cmpgt(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_insert(signed char __a, vector signed char __b, int __c)
static __inline__ vector signed char __ATTRS_o_ai vec_sll(vector signed char __a, vector unsigned char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vsrb(vector signed char __a, vector unsigned char __b)
static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vsro(vector signed char __a, vector signed char __b)
static __inline__ vector bool char __ATTRS_o_ai vec_cmple(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vsl(vector signed char __a, vector unsigned char __b)
static __inline__ vector unsigned short __ATTRS_o_ai vec_splat_u16(signed char __a)
static __inline__ vector int __ATTRS_o_ai vec_vadduwm(vector int __a, vector int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_packs(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vspltisb(signed char __a)
static __inline__ vector signed char __ATTRS_o_ai vec_vslo(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_vaddsbs(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvx(int __a, const vector signed char *__b)
static __inline__ vector signed char __ATTRS_o_ai vec_div(vector signed char __a, vector signed char __b)
static __inline__ vector int __ATTRS_o_ai vec_msums(vector short __a, vector short __b, vector int __c)
static __inline__ vector signed char __ATTRS_o_ai vec_vor(vector signed char __a, vector signed char __b)
static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a, vector signed char __b)
static __ATTRS_o_ai vector signed char vec_xl(signed long long __offset, const signed char *__ptr)
static __inline__ vector signed char __ATTRS_o_ai vec_sub(vector signed char __a, vector signed char __b)
static __inline__ vector short __ATTRS_o_ai vec_vsrah(vector short __a, vector unsigned short __b)
static __inline__ vector float __ATTRS_o_ai vec_nmsub(vector float __a, vector float __b, vector float __c)
static __inline__ vector unsigned char __ATTRS_o_ai vec_splat_u8(unsigned char __a)
static __inline__ vector unsigned int __ATTRS_o_ai vec_vsubuws(vector unsigned int __a, vector unsigned int __b)
static __inline__ void int __a
void reverse(I begin, I end)