13 #error "AltiVec support not enabled"
19 #define __CR6_EQ_REV 1
21 #define __CR6_LT_REV 3
23 #define __CR6_GT_REV 5
25 #define __CR6_SO_REV 7
28 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 0)
29 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 1)
30 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
31 __VEC_CLASS_FP_SUBNORMAL_N)
32 #define __VEC_CLASS_FP_ZERO_N (1<<2)
33 #define __VEC_CLASS_FP_ZERO_P (1<<3)
34 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | \
35 __VEC_CLASS_FP_ZERO_N)
36 #define __VEC_CLASS_FP_INFINITY_N (1<<4)
37 #define __VEC_CLASS_FP_INFINITY_P (1<<5)
38 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
39 __VEC_CLASS_FP_INFINITY_N)
40 #define __VEC_CLASS_FP_NAN (1<<6)
41 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
42 __VEC_CLASS_FP_SUBNORMAL | \
43 __VEC_CLASS_FP_ZERO | \
44 __VEC_CLASS_FP_INFINITY)
46 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
51 vector
signed char __a, vector
signed char __b, vector
unsigned char __c);
55 vector
unsigned char __c);
61 vector
signed short __b,
62 vector
unsigned char __c);
66 vector
unsigned char __c);
69 vector
bool short __a, vector
bool short __b, vector
unsigned char __c);
73 vector
unsigned char __c);
76 vector
signed int __b,
77 vector
unsigned char __c);
80 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned char __c);
87 vector
unsigned char __c);
92 vector
unsigned char __c);
95 vec_perm(vector
unsigned long long __a, vector
unsigned long long __b,
96 vector
unsigned char __c);
100 vector
unsigned char __c);
104 vector
unsigned char __c);
112 #define __builtin_altivec_abs_v16qi vec_abs
113 #define __builtin_altivec_abs_v8hi vec_abs
114 #define __builtin_altivec_abs_v4si vec_abs
118 return __builtin_altivec_vmaxsb(
__a, -
__a);
123 return __builtin_altivec_vmaxsh(
__a, -
__a);
128 return __builtin_altivec_vmaxsw(
__a, -
__a);
131 #ifdef __POWER8_VECTOR__
134 return __builtin_altivec_vmaxsd(
__a, -
__a);
140 return __builtin_vsx_xvabssp(
__a);
142 vector
unsigned int __res =
143 (vector
unsigned int)
__a & (vector
unsigned int)(0x7FFFFFFF);
144 return (vector
float)__res;
150 return __builtin_vsx_xvabsdp(
__a);
155 #define __builtin_altivec_abss_v16qi vec_abss
156 #define __builtin_altivec_abss_v8hi vec_abss
157 #define __builtin_altivec_abss_v4si vec_abss
161 return __builtin_altivec_vmaxsb(
162 __a, __builtin_altivec_vsubsbs((vector
signed char)(0),
__a));
167 return __builtin_altivec_vmaxsh(
168 __a, __builtin_altivec_vsubshs((vector
signed short)(0),
__a));
173 return __builtin_altivec_vmaxsw(
174 __a, __builtin_altivec_vsubsws((vector
signed int)(0),
__a));
178 #if defined(__POWER9_VECTOR__)
181 vec_absd(vector
unsigned char __a, vector
unsigned char __b) {
182 return __builtin_altivec_vabsdub(
__a,
__b);
186 vec_absd(vector
unsigned short __a, vector
unsigned short __b) {
187 return __builtin_altivec_vabsduh(
__a,
__b);
191 vec_absd(vector
unsigned int __a, vector
unsigned int __b) {
192 return __builtin_altivec_vabsduw(
__a,
__b);
206 return (vector
signed char)
__a +
__b;
211 return __a + (vector
signed char)
__b;
221 return (vector
unsigned char)
__a +
__b;
226 return __a + (vector
unsigned char)
__b;
236 return (vector
short)
__a +
__b;
240 vector
bool short __b) {
241 return __a + (vector short)
__b;
251 return (vector
unsigned short)
__a +
__b;
256 return __a + (vector
unsigned short)
__b;
266 return (vector
int)
__a +
__b;
270 vector
bool int __b) {
281 return (vector
unsigned int)
__a +
__b;
289 #ifdef __POWER8_VECTOR__
291 vec_add(vector
signed long long __a, vector
signed long long __b) {
295 static __inline__ vector
unsigned long long __ATTRS_o_ai
296 vec_add(vector
unsigned long long __a, vector
unsigned long long __b) {
300 #ifdef __SIZEOF_INT128__
302 vec_add(vector
signed __int128
__a, vector
signed __int128
__b) {
307 vec_add(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
312 static __inline__ vector
unsigned char __attribute__((__always_inline__))
313 vec_add_u128(vector
unsigned char __a, vector
unsigned char __b) {
314 return (vector
unsigned char)__builtin_altivec_vadduqm(
__a,
__b);
316 #elif defined(__VSX__)
318 vec_add(vector
signed long long __a, vector
signed long long __b) {
319 #ifdef __LITTLE_ENDIAN__
324 vector
unsigned int __res =
325 (vector
unsigned int)
__a + (vector
unsigned int)
__b;
326 vector
unsigned int __carry = __builtin_altivec_vaddcuw(
327 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
328 __carry = (vector
unsigned int)__builtin_shufflevector(
329 (vector
unsigned char)__carry, (vector
unsigned char)__carry, 0, 0, 0, 7,
330 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0);
331 return (vector
signed long long)(__res + __carry);
335 static __inline__ vector
unsigned long long __ATTRS_o_ai
336 vec_add(vector
unsigned long long __a, vector
unsigned long long __b) {
337 return (vector
unsigned long long)
vec_add((vector
signed long long)
__a,
338 (vector
signed long long)
__b);
356 #ifdef __POWER8_VECTOR__
357 #ifdef __SIZEOF_INT128__
360 vector
signed __int128
__c) {
361 return (vector
signed __int128)__builtin_altivec_vaddeuqm(
362 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
363 (vector
unsigned __int128)
__c);
367 vec_adde(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
368 vector
unsigned __int128
__c) {
369 return __builtin_altivec_vaddeuqm(
__a,
__b,
__c);
373 static __inline__ vector
unsigned char __attribute__((__always_inline__))
374 vec_adde_u128(vector
unsigned char __a, vector
unsigned char __b,
375 vector
unsigned char __c) {
376 return (vector
unsigned char)__builtin_altivec_vaddeuqm_c(
377 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
378 (vector
unsigned char)
__c);
384 vector
signed int __c) {
385 vector
signed int __mask = {1, 1, 1, 1};
386 vector
signed int __carry =
__c & __mask;
392 vector
unsigned int __c) {
393 vector
unsigned int __mask = {1, 1, 1, 1};
394 vector
unsigned int __carry =
__c & __mask;
400 #ifdef __POWER8_VECTOR__
401 #ifdef __SIZEOF_INT128__
403 vec_addec(vector
signed __int128
__a, vector
signed __int128
__b,
404 vector
signed __int128
__c) {
405 return (vector
signed __int128)__builtin_altivec_vaddecuq(
406 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
407 (vector
unsigned __int128)
__c);
411 vec_addec(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
412 vector
unsigned __int128
__c) {
413 return __builtin_altivec_vaddecuq(
__a,
__b,
__c);
417 static __inline__ vector
unsigned char __attribute__((__always_inline__))
418 vec_addec_u128(vector
unsigned char __a, vector
unsigned char __b,
419 vector
unsigned char __c) {
420 return (vector
unsigned char)__builtin_altivec_vaddecuq_c(
421 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
422 (vector
unsigned char)
__c);
427 vec_addec(vector
signed int __a, vector
signed int __b,
428 vector
signed int __c) {
430 signed int __result[4];
431 for (
int i = 0; i < 4; i++) {
432 unsigned int __tempa = (
unsigned int)
__a[i];
433 unsigned int __tempb = (
unsigned int)
__b[i];
434 unsigned int __tempc = (
unsigned int)
__c[i];
435 __tempc = __tempc & 0x00000001;
436 unsigned long long __longa = (
unsigned long long) __tempa;
437 unsigned long long __longb = (
unsigned long long) __tempb;
438 unsigned long long __longc = (
unsigned long long) __tempc;
439 unsigned long long __sum = __longa + __longb + __longc;
440 unsigned long long __res = (__sum >> 32) & 0x01;
441 unsigned long long __tempres = (
unsigned int) __res;
442 __result[i] = (
signed int) __tempres;
445 vector
signed int ret = { __result[0], __result[1], __result[2], __result[3] };
450 vec_addec(vector
unsigned int __a, vector
unsigned int __b,
451 vector
unsigned int __c) {
453 unsigned int __result[4];
454 for (
int i = 0; i < 4; i++) {
455 unsigned int __tempc =
__c[i] & 1;
456 unsigned long long __longa = (
unsigned long long)
__a[i];
457 unsigned long long __longb = (
unsigned long long)
__b[i];
458 unsigned long long __longc = (
unsigned long long) __tempc;
459 unsigned long long __sum = __longa + __longb + __longc;
460 unsigned long long __res = (__sum >> 32) & 0x01;
461 unsigned long long __tempres = (
unsigned int) __res;
462 __result[i] = (
signed int) __tempres;
465 vector
unsigned int ret = { __result[0], __result[1], __result[2], __result[3] };
473 #define __builtin_altivec_vaddubm vec_vaddubm
482 return (vector
signed char)
__a +
__b;
487 return __a + (vector
signed char)
__b;
497 return (vector
unsigned char)
__a +
__b;
502 return __a + (vector
unsigned char)
__b;
507 #define __builtin_altivec_vadduhm vec_vadduhm
516 return (vector
short)
__a +
__b;
520 vector
bool short __b) {
521 return __a + (vector short)
__b;
531 return (vector
unsigned short)
__a +
__b;
536 return __a + (vector
unsigned short)
__b;
541 #define __builtin_altivec_vadduwm vec_vadduwm
550 return (vector
int)
__a +
__b;
554 vector
bool int __b) {
565 return (vector
unsigned int)
__a +
__b;
575 #define __builtin_altivec_vaddfp vec_vaddfp
577 static __inline__ vector
float __attribute__((__always_inline__))
578 vec_vaddfp(vector
float __a, vector
float __b) {
586 return (vector
signed int)__builtin_altivec_vaddcuw((vector
unsigned int)
__a,
587 (vector
unsigned int)
__b);
592 return __builtin_altivec_vaddcuw(
__a,
__b);
595 #ifdef __POWER8_VECTOR__
596 #ifdef __SIZEOF_INT128__
598 vec_addc(vector
signed __int128
__a, vector
signed __int128
__b) {
599 return (vector
signed __int128)__builtin_altivec_vaddcuq(
600 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
604 vec_addc(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
605 return __builtin_altivec_vaddcuq(
__a,
__b);
609 static __inline__ vector
unsigned char __attribute__((__always_inline__))
610 vec_addc_u128(vector
unsigned char __a, vector
unsigned char __b) {
611 return (vector
unsigned char)__builtin_altivec_vaddcuq_c(
612 (vector
unsigned char)
__a, (vector
unsigned char)
__b);
618 static __inline__ vector
unsigned int __attribute__((__always_inline__))
619 vec_vaddcuw(vector
unsigned int __a, vector
unsigned int __b) {
620 return __builtin_altivec_vaddcuw(
__a,
__b);
627 return __builtin_altivec_vaddsbs(
__a,
__b);
632 return __builtin_altivec_vaddsbs((vector
signed char)
__a,
__b);
637 return __builtin_altivec_vaddsbs(
__a, (vector
signed char)
__b);
642 return __builtin_altivec_vaddubs(
__a,
__b);
647 return __builtin_altivec_vaddubs((vector
unsigned char)
__a,
__b);
652 return __builtin_altivec_vaddubs(
__a, (vector
unsigned char)
__b);
657 return __builtin_altivec_vaddshs(
__a,
__b);
662 return __builtin_altivec_vaddshs((vector
short)
__a,
__b);
666 vector
bool short __b) {
667 return __builtin_altivec_vaddshs(
__a, (vector
short)
__b);
672 return __builtin_altivec_vadduhs(
__a,
__b);
677 return __builtin_altivec_vadduhs((vector
unsigned short)
__a,
__b);
682 return __builtin_altivec_vadduhs(
__a, (vector
unsigned short)
__b);
687 return __builtin_altivec_vaddsws(
__a,
__b);
692 return __builtin_altivec_vaddsws((vector
int)
__a,
__b);
696 vector
bool int __b) {
697 return __builtin_altivec_vaddsws(
__a, (vector
int)
__b);
702 return __builtin_altivec_vadduws(
__a,
__b);
707 return __builtin_altivec_vadduws((vector
unsigned int)
__a,
__b);
712 return __builtin_altivec_vadduws(
__a, (vector
unsigned int)
__b);
719 return __builtin_altivec_vaddsbs(
__a,
__b);
724 return __builtin_altivec_vaddsbs((vector
signed char)
__a,
__b);
729 return __builtin_altivec_vaddsbs(
__a, (vector
signed char)
__b);
736 return __builtin_altivec_vaddubs(
__a,
__b);
741 return __builtin_altivec_vaddubs((vector
unsigned char)
__a,
__b);
746 return __builtin_altivec_vaddubs(
__a, (vector
unsigned char)
__b);
753 return __builtin_altivec_vaddshs(
__a,
__b);
758 return __builtin_altivec_vaddshs((vector
short)
__a,
__b);
762 vector
bool short __b) {
763 return __builtin_altivec_vaddshs(
__a, (vector
short)
__b);
770 return __builtin_altivec_vadduhs(
__a,
__b);
775 return __builtin_altivec_vadduhs((vector
unsigned short)
__a,
__b);
780 return __builtin_altivec_vadduhs(
__a, (vector
unsigned short)
__b);
787 return __builtin_altivec_vaddsws(
__a,
__b);
792 return __builtin_altivec_vaddsws((vector
int)
__a,
__b);
796 vector
bool int __b) {
797 return __builtin_altivec_vaddsws(
__a, (vector
int)
__b);
804 return __builtin_altivec_vadduws(
__a,
__b);
809 return __builtin_altivec_vadduws((vector
unsigned int)
__a,
__b);
814 return __builtin_altivec_vadduws(
__a, (vector
unsigned int)
__b);
817 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
818 defined(__SIZEOF_INT128__)
822 vec_vadduqm(vector
signed __int128
__a, vector
signed __int128
__b) {
827 vec_vadduqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
834 vec_vaddeuqm(vector
signed __int128
__a, vector
signed __int128
__b,
835 vector
signed __int128
__c) {
836 return (vector
signed __int128)__builtin_altivec_vaddeuqm(
837 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
838 (vector
unsigned __int128)
__c);
842 vec_vaddeuqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
843 vector
unsigned __int128
__c) {
844 return __builtin_altivec_vaddeuqm(
__a,
__b,
__c);
850 vec_vaddcuq(vector
signed __int128
__a, vector
signed __int128
__b) {
851 return (vector
signed __int128)__builtin_altivec_vaddcuq(
852 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
856 vec_vaddcuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
857 return __builtin_altivec_vaddcuq(
__a,
__b);
863 vec_vaddecuq(vector
signed __int128
__a, vector
signed __int128
__b,
864 vector
signed __int128
__c) {
865 return (vector
signed __int128)__builtin_altivec_vaddecuq(
866 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
867 (vector
unsigned __int128)
__c);
871 vec_vaddecuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
872 vector
unsigned __int128
__c) {
873 return __builtin_altivec_vaddecuq(
__a,
__b,
__c);
879 #define __builtin_altivec_vand vec_and
888 return (vector
signed char)
__a &
__b;
893 return __a & (vector
signed char)
__b;
903 return (vector
unsigned char)
__a &
__b;
908 return __a & (vector
unsigned char)
__b;
912 vector
bool char __b) {
923 return (vector
short)
__a &
__b;
927 vector
bool short __b) {
928 return __a & (vector short)
__b;
938 return (vector
unsigned short)
__a &
__b;
943 return __a & (vector
unsigned short)
__b;
958 return (vector
int)
__a &
__b;
962 vector
bool int __b) {
973 return (vector
unsigned int)
__a &
__b;
982 vector
bool int __b) {
988 vector
unsigned int __res =
989 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
990 return (vector
float)__res;
995 vector
unsigned int __res =
996 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
997 return (vector
float)__res;
1001 vector
bool int __b) {
1002 vector
unsigned int __res =
1003 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1004 return (vector
float)__res;
1009 vector
double __b) {
1010 vector
unsigned long long __res =
1011 (vector
unsigned long long)
__a & (vector
unsigned long long)
__b;
1012 return (vector
double)__res;
1017 vector
unsigned long long __res =
1018 (vector
unsigned long long)
__a & (vector
unsigned long long)
__b;
1019 return (vector
double)__res;
1023 vector
double __b) {
1024 vector
unsigned long long __res =
1025 (vector
unsigned long long)
__a & (vector
unsigned long long)
__b;
1026 return (vector
double)__res;
1030 vec_and(vector
signed long long __a, vector
signed long long __b) {
1035 vec_and(vector
bool long long __a, vector
signed long long __b) {
1036 return (vector
signed long long)
__a &
__b;
1040 vec_and(vector
signed long long __a, vector
bool long long __b) {
1041 return __a & (vector
signed long long)
__b;
1044 static __inline__ vector
unsigned long long __ATTRS_o_ai
1045 vec_and(vector
unsigned long long __a, vector
unsigned long long __b) {
1049 static __inline__ vector
unsigned long long __ATTRS_o_ai
1050 vec_and(vector
bool long long __a, vector
unsigned long long __b) {
1051 return (vector
unsigned long long)
__a &
__b;
1054 static __inline__ vector
unsigned long long __ATTRS_o_ai
1055 vec_and(vector
unsigned long long __a, vector
bool long long __b) {
1056 return __a & (vector
unsigned long long)
__b;
1060 vec_and(vector
bool long long __a, vector
bool long long __b) {
1074 return (vector
signed char)
__a &
__b;
1079 return __a & (vector
signed char)
__b;
1089 return (vector
unsigned char)
__a &
__b;
1094 return __a & (vector
unsigned char)
__b;
1098 vector
bool char __b) {
1109 return (vector
short)
__a &
__b;
1113 vector
bool short __b) {
1114 return __a & (vector short)
__b;
1124 return (vector
unsigned short)
__a &
__b;
1129 return __a & (vector
unsigned short)
__b;
1144 return (vector
int)
__a &
__b;
1148 vector
bool int __b) {
1159 return (vector
unsigned int)
__a &
__b;
1168 vector
bool int __b) {
1174 vector
unsigned int __res =
1175 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1176 return (vector
float)__res;
1181 vector
unsigned int __res =
1182 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1183 return (vector
float)__res;
1187 vector
bool int __b) {
1188 vector
unsigned int __res =
1189 (vector
unsigned int)
__a & (vector
unsigned int)
__b;
1190 return (vector
float)__res;
1195 vec_vand(vector
signed long long __a, vector
signed long long __b) {
1200 vec_vand(vector
bool long long __a, vector
signed long long __b) {
1201 return (vector
signed long long)
__a &
__b;
1205 vec_vand(vector
signed long long __a, vector
bool long long __b) {
1206 return __a & (vector
signed long long)
__b;
1209 static __inline__ vector
unsigned long long __ATTRS_o_ai
1210 vec_vand(vector
unsigned long long __a, vector
unsigned long long __b) {
1214 static __inline__ vector
unsigned long long __ATTRS_o_ai
1215 vec_vand(vector
bool long long __a, vector
unsigned long long __b) {
1216 return (vector
unsigned long long)
__a &
__b;
1219 static __inline__ vector
unsigned long long __ATTRS_o_ai
1220 vec_vand(vector
unsigned long long __a, vector
bool long long __b) {
1221 return __a & (vector
unsigned long long)
__b;
1232 #define __builtin_altivec_vandc vec_andc
1241 return (vector
signed char)
__a & ~
__b;
1246 return __a & ~(vector
signed char)
__b;
1256 return (vector
unsigned char)
__a & ~
__b;
1261 return __a & ~(vector
unsigned char)
__b;
1265 vector
bool char __b) {
1276 return (vector
short)
__a & ~
__b;
1280 vector
bool short __b) {
1281 return __a & ~(vector short)
__b;
1291 return (vector
unsigned short)
__a & ~
__b;
1296 return __a & ~(vector
unsigned short)
__b;
1311 return (vector
int)
__a & ~
__b;
1315 vector
bool int __b) {
1326 return (vector
unsigned int)
__a & ~
__b;
1335 vector
bool int __b) {
1341 vector
unsigned int __res =
1342 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1343 return (vector
float)__res;
1348 vector
unsigned int __res =
1349 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1350 return (vector
float)__res;
1354 vector
bool int __b) {
1355 vector
unsigned int __res =
1356 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1357 return (vector
float)__res;
1362 vector
double __b) {
1363 vector
unsigned long long __res =
1364 (vector
unsigned long long)
__a & ~(vector
unsigned long long)
__b;
1365 return (vector
double)__res;
1370 vector
unsigned long long __res =
1371 (vector
unsigned long long)
__a & ~(vector
unsigned long long)
__b;
1372 return (vector
double)__res;
1376 vector
double __b) {
1377 vector
unsigned long long __res =
1378 (vector
unsigned long long)
__a & ~(vector
unsigned long long)
__b;
1379 return (vector
double)__res;
1383 vec_andc(vector
signed long long __a, vector
signed long long __b) {
1388 vec_andc(vector
bool long long __a, vector
signed long long __b) {
1389 return (vector
signed long long)
__a & ~
__b;
1393 vec_andc(vector
signed long long __a, vector
bool long long __b) {
1394 return __a & ~(vector
signed long long)
__b;
1397 static __inline__ vector
unsigned long long __ATTRS_o_ai
1398 vec_andc(vector
unsigned long long __a, vector
unsigned long long __b) {
1402 static __inline__ vector
unsigned long long __ATTRS_o_ai
1403 vec_andc(vector
bool long long __a, vector
unsigned long long __b) {
1404 return (vector
unsigned long long)
__a & ~
__b;
1407 static __inline__ vector
unsigned long long __ATTRS_o_ai
1408 vec_andc(vector
unsigned long long __a, vector
bool long long __b) {
1409 return __a & ~(vector
unsigned long long)
__b;
1427 return (vector
signed char)
__a & ~
__b;
1432 return __a & ~(vector
signed char)
__b;
1442 return (vector
unsigned char)
__a & ~
__b;
1447 return __a & ~(vector
unsigned char)
__b;
1462 return (vector
short)
__a & ~
__b;
1466 vector
bool short __b) {
1467 return __a & ~(vector short)
__b;
1477 return (vector
unsigned short)
__a & ~
__b;
1482 return __a & ~(vector
unsigned short)
__b;
1497 return (vector
int)
__a & ~
__b;
1501 vector
bool int __b) {
1512 return (vector
unsigned int)
__a & ~
__b;
1521 vector
bool int __b) {
1527 vector
unsigned int __res =
1528 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1529 return (vector
float)__res;
1534 vector
unsigned int __res =
1535 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1536 return (vector
float)__res;
1540 vector
bool int __b) {
1541 vector
unsigned int __res =
1542 (vector
unsigned int)
__a & ~(vector
unsigned int)
__b;
1543 return (vector
float)__res;
1554 return (vector
signed long long)
__a & ~
__b;
1559 return __a & ~(vector
signed long long)
__b;
1562 static __inline__ vector
unsigned long long __ATTRS_o_ai
1563 vec_vandc(vector
unsigned long long __a, vector
unsigned long long __b) {
1567 static __inline__ vector
unsigned long long __ATTRS_o_ai
1569 return (vector
unsigned long long)
__a & ~
__b;
1572 static __inline__ vector
unsigned long long __ATTRS_o_ai
1574 return __a & ~(vector
unsigned long long)
__b;
1587 return __builtin_altivec_vavgsb(
__a,
__b);
1592 return __builtin_altivec_vavgub(
__a,
__b);
1597 return __builtin_altivec_vavgsh(
__a,
__b);
1602 return __builtin_altivec_vavguh(
__a,
__b);
1607 return __builtin_altivec_vavgsw(
__a,
__b);
1612 return __builtin_altivec_vavguw(
__a,
__b);
1617 static __inline__ vector
signed char __attribute__((__always_inline__))
1618 vec_vavgsb(vector
signed char __a, vector
signed char __b) {
1619 return __builtin_altivec_vavgsb(
__a,
__b);
1624 static __inline__ vector
unsigned char __attribute__((__always_inline__))
1625 vec_vavgub(vector
unsigned char __a, vector
unsigned char __b) {
1626 return __builtin_altivec_vavgub(
__a,
__b);
1631 static __inline__ vector
short __attribute__((__always_inline__))
1632 vec_vavgsh(vector
short __a, vector
short __b) {
1633 return __builtin_altivec_vavgsh(
__a,
__b);
1638 static __inline__ vector
unsigned short __attribute__((__always_inline__))
1639 vec_vavguh(vector
unsigned short __a, vector
unsigned short __b) {
1640 return __builtin_altivec_vavguh(
__a,
__b);
1645 static __inline__ vector
int __attribute__((__always_inline__))
1646 vec_vavgsw(vector
int __a, vector
int __b) {
1647 return __builtin_altivec_vavgsw(
__a,
__b);
1652 static __inline__ vector
unsigned int __attribute__((__always_inline__))
1653 vec_vavguw(vector
unsigned int __a, vector
unsigned int __b) {
1654 return __builtin_altivec_vavguw(
__a,
__b);
1661 return __builtin_vsx_xvrspip(
__a);
1663 return __builtin_altivec_vrfip(
__a);
1669 return __builtin_vsx_xvrdpip(
__a);
1687 vec_vrfip(vector
float __a) {
1688 return __builtin_altivec_vrfip(
__a);
1693 static __inline__ vector
int __attribute__((__always_inline__))
1694 vec_cmpb(vector
float __a, vector
float __b) {
1695 return __builtin_altivec_vcmpbfp(
__a,
__b);
1700 static __inline__ vector
int __attribute__((__always_inline__))
1701 vec_vcmpbfp(vector
float __a, vector
float __b) {
1702 return __builtin_altivec_vcmpbfp(
__a,
__b);
1709 return (vector
bool char)__builtin_altivec_vcmpequb((vector
char)
__a,
1715 return (vector
bool char)__builtin_altivec_vcmpequb((vector
char)
__a,
1721 return (vector
bool char)__builtin_altivec_vcmpequb((vector
char)
__a,
1727 return (vector
bool short)__builtin_altivec_vcmpequh(
__a,
__b);
1732 return (vector
bool short)__builtin_altivec_vcmpequh((vector
short)
__a,
1738 return (vector
bool short)__builtin_altivec_vcmpequh((vector
short)
__a,
1744 return (vector
bool int)__builtin_altivec_vcmpequw(
__a,
__b);
1749 return (vector
bool int)__builtin_altivec_vcmpequw((vector
int)
__a,
1754 vector
bool int __b) {
1755 return (vector
bool int)__builtin_altivec_vcmpequw((vector
int)
__a,
1759 #ifdef __POWER8_VECTOR__
1762 return (vector
bool long long)__builtin_altivec_vcmpequd(
__a,
__b);
1766 vec_cmpeq(vector
unsigned long long __a, vector
unsigned long long __b) {
1767 return (vector
bool long long)__builtin_altivec_vcmpequd(
1768 (vector
long long)
__a, (vector
long long)
__b);
1773 return (vector
bool long long)__builtin_altivec_vcmpequd(
1774 (vector
long long)
__a, (vector
long long)
__b);
1776 #elif defined(__VSX__)
1779 vector
bool int __wordcmp =
1781 #ifdef __LITTLE_ENDIAN__
1782 __wordcmp &= __builtin_shufflevector(__wordcmp, __wordcmp, 3, 0, 1, 2);
1783 return (vector
bool long long)__builtin_shufflevector(__wordcmp, __wordcmp, 1,
1786 __wordcmp &= __builtin_shufflevector(__wordcmp, __wordcmp, 1, 2, 3, 0);
1787 return (vector
bool long long)__builtin_shufflevector(__wordcmp, __wordcmp, 0,
1793 vec_cmpeq(vector
unsigned long long __a, vector
unsigned long long __b) {
1794 return vec_cmpeq((vector
signed long long)
__a, (vector
signed long long)
__b);
1799 return vec_cmpeq((vector
signed long long)
__a, (vector
signed long long)
__b);
1806 return (vector
bool int)__builtin_vsx_xvcmpeqsp(
__a,
__b);
1808 return (vector
bool int)__builtin_altivec_vcmpeqfp(
__a,
__b);
1815 return (vector
bool long long)__builtin_vsx_xvcmpeqdp(
__a,
__b);
1819 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
1822 return (vector
bool __int128)__builtin_altivec_vcmpequq(
1823 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
1827 vec_cmpeq(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
1828 return (vector
bool __int128)__builtin_altivec_vcmpequq(
1829 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
1834 return (vector
bool __int128)__builtin_altivec_vcmpequq(
1835 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
1839 #ifdef __POWER9_VECTOR__
1844 return (vector
bool char)__builtin_altivec_vcmpneb((vector
char)
__a,
1850 return (vector
bool char)__builtin_altivec_vcmpneb((vector
char)
__a,
1856 return (vector
bool char)__builtin_altivec_vcmpneb((vector
char)
__a,
1862 return (vector
bool short)__builtin_altivec_vcmpneh((vector
short)
__a,
1868 return (vector
bool short)__builtin_altivec_vcmpneh((vector
short)
__a,
1874 return (vector
bool short)__builtin_altivec_vcmpneh((vector
short)
__a,
1880 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1886 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1892 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1898 return (vector
bool int)__builtin_altivec_vcmpnew((vector
int)
__a,
1902 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
1904 vec_cmpne(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
1905 return (vector
bool __int128)~(__builtin_altivec_vcmpequq(
1906 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b));
1911 return (vector
bool __int128)~(__builtin_altivec_vcmpequq(
1912 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b));
1917 return (vector
bool __int128)~(__builtin_altivec_vcmpequq(
1918 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b));
1925 vec_cmpnez(vector
signed char __a, vector
signed char __b) {
1926 return (vector
bool char)__builtin_altivec_vcmpnezb((vector
char)
__a,
1931 vec_cmpnez(vector
unsigned char __a, vector
unsigned char __b) {
1932 return (vector
bool char)__builtin_altivec_vcmpnezb((vector
char)
__a,
1937 vec_cmpnez(vector
signed short __a, vector
signed short __b) {
1938 return (vector
bool short)__builtin_altivec_vcmpnezh((vector
short)
__a,
1943 vec_cmpnez(vector
unsigned short __a, vector
unsigned short __b) {
1944 return (vector
bool short)__builtin_altivec_vcmpnezh((vector
short)
__a,
1949 vec_cmpnez(vector
signed int __a, vector
signed int __b) {
1950 return (vector
bool int)__builtin_altivec_vcmpnezw((vector
int)
__a,
1955 vec_cmpnez(vector
unsigned int __a, vector
unsigned int __b) {
1956 return (vector
bool int)__builtin_altivec_vcmpnezw((vector
int)
__a,
1961 vec_cntlz_lsbb(vector
signed char __a) {
1962 #ifdef __LITTLE_ENDIAN__
1963 return __builtin_altivec_vctzlsbb((vector
unsigned char)
__a);
1965 return __builtin_altivec_vclzlsbb((vector
unsigned char)
__a);
1970 vec_cntlz_lsbb(vector
unsigned char __a) {
1971 #ifdef __LITTLE_ENDIAN__
1972 return __builtin_altivec_vctzlsbb((vector
unsigned char)
__a);
1974 return __builtin_altivec_vclzlsbb(
__a);
1979 vec_cnttz_lsbb(vector
signed char __a) {
1980 #ifdef __LITTLE_ENDIAN__
1981 return __builtin_altivec_vclzlsbb((vector
unsigned char)
__a);
1983 return __builtin_altivec_vctzlsbb((vector
unsigned char)
__a);
1988 vec_cnttz_lsbb(vector
unsigned char __a) {
1989 #ifdef __LITTLE_ENDIAN__
1990 return __builtin_altivec_vclzlsbb(
__a);
1992 return __builtin_altivec_vctzlsbb(
__a);
1997 vec_parity_lsbb(vector
unsigned int __a) {
1998 return __builtin_altivec_vprtybw(
__a);
2002 vec_parity_lsbb(vector
signed int __a) {
2003 return __builtin_altivec_vprtybw((vector
unsigned int)
__a);
2006 #ifdef __SIZEOF_INT128__
2007 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
2008 vec_parity_lsbb(vector
unsigned __int128
__a) {
2009 return __builtin_altivec_vprtybq(
__a);
2012 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
2013 vec_parity_lsbb(vector
signed __int128
__a) {
2014 return __builtin_altivec_vprtybq((vector
unsigned __int128)
__a);
2018 static __inline__ vector
unsigned long long __ATTRS_o_ai
2019 vec_parity_lsbb(vector
unsigned long long __a) {
2020 return __builtin_altivec_vprtybd(
__a);
2023 static __inline__ vector
unsigned long long __ATTRS_o_ai
2024 vec_parity_lsbb(vector
signed long long __a) {
2025 return __builtin_altivec_vprtybd((vector
unsigned long long)
__a);
2082 #ifdef __POWER8_VECTOR__
2085 return (vector
bool long long)
2086 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
2091 return (vector
bool long long)
2092 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
2096 vec_cmpne(vector
unsigned long long __a, vector
unsigned long long __b) {
2097 return (vector
bool long long)
2098 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
2100 #elif defined(__VSX__)
2103 return (vector
bool long long)~(
2104 vec_cmpeq((vector
signed long long)
__a, (vector
signed long long)
__b));
2109 return (vector
bool long long)~(
2110 vec_cmpeq((vector
signed long long)
__a, (vector
signed long long)
__b));
2114 vec_cmpne(vector
unsigned long long __a, vector
unsigned long long __b) {
2115 return (vector
bool long long)~(
2116 vec_cmpeq((vector
signed long long)
__a, (vector
signed long long)
__b));
2123 return (vector
bool long long)
2124 ~(__builtin_altivec_vcmpequd((vector
long long)
__a, (vector
long long)
__b));
2132 return (vector
bool char)__builtin_altivec_vcmpgtsb(
__a,
__b);
2137 return (vector
bool char)__builtin_altivec_vcmpgtub(
__a,
__b);
2142 return (vector
bool short)__builtin_altivec_vcmpgtsh(
__a,
__b);
2147 return (vector
bool short)__builtin_altivec_vcmpgtuh(
__a,
__b);
2152 return (vector
bool int)__builtin_altivec_vcmpgtsw(
__a,
__b);
2157 return (vector
bool int)__builtin_altivec_vcmpgtuw(
__a,
__b);
2160 #ifdef __POWER8_VECTOR__
2163 return (vector
bool long long)__builtin_altivec_vcmpgtsd(
__a,
__b);
2167 vec_cmpgt(vector
unsigned long long __a, vector
unsigned long long __b) {
2168 return (vector
bool long long)__builtin_altivec_vcmpgtud(
__a,
__b);
2170 #elif defined(__VSX__)
2173 vector
signed int __sgtw = (vector
signed int)
vec_cmpgt(
2174 (vector
signed int)
__a, (vector
signed int)
__b);
2175 vector
unsigned int __ugtw = (vector
unsigned int)
vec_cmpgt(
2176 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
2177 vector
unsigned int __eqw = (vector
unsigned int)
vec_cmpeq(
2178 (vector
signed int)
__a, (vector
signed int)
__b);
2179 #ifdef __LITTLE_ENDIAN__
2180 __ugtw = __builtin_shufflevector(__ugtw, __ugtw, 3, 0, 1, 2) & __eqw;
2181 __sgtw |= (vector
signed int)__ugtw;
2182 return (vector
bool long long)__builtin_shufflevector(__sgtw, __sgtw, 1, 1, 3,
2185 __ugtw = __builtin_shufflevector(__ugtw, __ugtw, 1, 2, 3, 0) & __eqw;
2186 __sgtw |= (vector
signed int)__ugtw;
2187 return (vector
bool long long)__builtin_shufflevector(__sgtw, __sgtw, 0, 0, 2,
2193 vec_cmpgt(vector
unsigned long long __a, vector
unsigned long long __b) {
2194 vector
unsigned int __ugtw = (vector
unsigned int)
vec_cmpgt(
2195 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
2196 vector
unsigned int __eqw = (vector
unsigned int)
vec_cmpeq(
2197 (vector
signed int)
__a, (vector
signed int)
__b);
2198 #ifdef __LITTLE_ENDIAN__
2199 __eqw = __builtin_shufflevector(__ugtw, __ugtw, 3, 0, 1, 2) & __eqw;
2201 return (vector
bool long long)__builtin_shufflevector(__ugtw, __ugtw, 1, 1, 3,
2204 __eqw = __builtin_shufflevector(__ugtw, __ugtw, 1, 2, 3, 0) & __eqw;
2206 return (vector
bool long long)__builtin_shufflevector(__ugtw, __ugtw, 0, 0, 2,
2215 return (vector
bool int)__builtin_vsx_xvcmpgtsp(
__a,
__b);
2217 return (vector
bool int)__builtin_altivec_vcmpgtfp(
__a,
__b);
2224 return (vector
bool long long)__builtin_vsx_xvcmpgtdp(
__a,
__b);
2228 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
2231 return (vector
bool __int128)__builtin_altivec_vcmpgtsq(
__a,
__b);
2235 vec_cmpgt(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
2236 return (vector
bool __int128)__builtin_altivec_vcmpgtuq(
__a,
__b);
2275 return (vector
bool int)__builtin_vsx_xvcmpgesp(
__a,
__b);
2277 return (vector
bool int)__builtin_altivec_vcmpgefp(
__a,
__b);
2284 return (vector
bool long long)__builtin_vsx_xvcmpgedp(
__a,
__b);
2293 vec_cmpge(vector
unsigned long long __a, vector
unsigned long long __b) {
2298 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
2305 vec_cmpge(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
2312 static __inline__ vector
bool int __attribute__((__always_inline__))
2313 vec_vcmpgefp(vector
float __a, vector
float __b) {
2314 return (vector
bool int)__builtin_altivec_vcmpgefp(
__a,
__b);
2319 static __inline__ vector
bool char __attribute__((__always_inline__))
2320 vec_vcmpgtsb(vector
signed char __a, vector
signed char __b) {
2321 return (vector
bool char)__builtin_altivec_vcmpgtsb(
__a,
__b);
2326 static __inline__ vector
bool char __attribute__((__always_inline__))
2327 vec_vcmpgtub(vector
unsigned char __a, vector
unsigned char __b) {
2328 return (vector
bool char)__builtin_altivec_vcmpgtub(
__a,
__b);
2333 static __inline__ vector
bool short __attribute__((__always_inline__))
2334 vec_vcmpgtsh(vector
short __a, vector
short __b) {
2335 return (vector
bool short)__builtin_altivec_vcmpgtsh(
__a,
__b);
2340 static __inline__ vector
bool short __attribute__((__always_inline__))
2341 vec_vcmpgtuh(vector
unsigned short __a, vector
unsigned short __b) {
2342 return (vector
bool short)__builtin_altivec_vcmpgtuh(
__a,
__b);
2347 static __inline__ vector
bool int __attribute__((__always_inline__))
2348 vec_vcmpgtsw(vector
int __a, vector
int __b) {
2349 return (vector
bool int)__builtin_altivec_vcmpgtsw(
__a,
__b);
2354 static __inline__ vector
bool int __attribute__((__always_inline__))
2355 vec_vcmpgtuw(vector
unsigned int __a, vector
unsigned int __b) {
2356 return (vector
bool int)__builtin_altivec_vcmpgtuw(
__a,
__b);
2361 static __inline__ vector
bool int __attribute__((__always_inline__))
2362 vec_vcmpgtfp(vector
float __a, vector
float __b) {
2363 return (vector
bool int)__builtin_altivec_vcmpgtfp(
__a,
__b);
2415 vec_cmple(vector
unsigned long long __a, vector
unsigned long long __b) {
2420 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
2427 vec_cmple(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
2476 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
2483 vec_cmplt(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
2495 vec_cmplt(vector
unsigned long long __a, vector
unsigned long long __b) {
2500 #ifdef __POWER8_VECTOR__
2504 vec_popcnt(vector
signed char __a) {
2505 return (vector
unsigned char)__builtin_altivec_vpopcntb(
2506 (vector
unsigned char)
__a);
2509 vec_popcnt(vector
unsigned char __a) {
2510 return __builtin_altivec_vpopcntb(
__a);
2513 vec_popcnt(vector
signed short __a) {
2514 return (vector
unsigned short)__builtin_altivec_vpopcnth(
2515 (vector
unsigned short)
__a);
2518 vec_popcnt(vector
unsigned short __a) {
2519 return __builtin_altivec_vpopcnth(
__a);
2522 vec_popcnt(vector
signed int __a) {
2523 return __builtin_altivec_vpopcntw((vector
unsigned int)
__a);
2526 vec_popcnt(vector
unsigned int __a) {
2527 return __builtin_altivec_vpopcntw(
__a);
2529 static __inline__ vector
unsigned long long __ATTRS_o_ai
2530 vec_popcnt(vector
signed long long __a) {
2531 return __builtin_altivec_vpopcntd((vector
unsigned long long)
__a);
2533 static __inline__ vector
unsigned long long __ATTRS_o_ai
2534 vec_popcnt(vector
unsigned long long __a) {
2535 return __builtin_altivec_vpopcntd(
__a);
2538 #define vec_vclz vec_cntlz
2542 vec_cntlz(vector
signed char __a) {
2543 return (vector
signed char)__builtin_altivec_vclzb((vector
unsigned char)
__a);
2546 vec_cntlz(vector
unsigned char __a) {
2547 return __builtin_altivec_vclzb(
__a);
2550 vec_cntlz(vector
signed short __a) {
2551 return (vector
signed short)__builtin_altivec_vclzh(
2552 (vector
unsigned short)
__a);
2555 vec_cntlz(vector
unsigned short __a) {
2556 return __builtin_altivec_vclzh(
__a);
2559 vec_cntlz(vector
signed int __a) {
2560 return (vector
signed int)__builtin_altivec_vclzw((vector
unsigned int)
__a);
2563 vec_cntlz(vector
unsigned int __a) {
2564 return __builtin_altivec_vclzw(
__a);
2567 vec_cntlz(vector
signed long long __a) {
2568 return (vector
signed long long)__builtin_altivec_vclzd(
2569 (vector
unsigned long long)
__a);
2571 static __inline__ vector
unsigned long long __ATTRS_o_ai
2572 vec_cntlz(vector
unsigned long long __a) {
2573 return __builtin_altivec_vclzd(
__a);
2577 #ifdef __POWER9_VECTOR__
2582 vec_cnttz(vector
signed char __a) {
2583 return (vector
signed char)__builtin_altivec_vctzb((vector
unsigned char)
__a);
2586 vec_cnttz(vector
unsigned char __a) {
2587 return __builtin_altivec_vctzb(
__a);
2590 vec_cnttz(vector
signed short __a) {
2591 return (vector
signed short)__builtin_altivec_vctzh(
2592 (vector
unsigned short)
__a);
2595 vec_cnttz(vector
unsigned short __a) {
2596 return __builtin_altivec_vctzh(
__a);
2599 vec_cnttz(vector
signed int __a) {
2600 return (vector
signed int)__builtin_altivec_vctzw((vector
unsigned int)
__a);
2603 vec_cnttz(vector
unsigned int __a) {
2604 return __builtin_altivec_vctzw(
__a);
2607 vec_cnttz(vector
signed long long __a) {
2608 return (vector
signed long long)__builtin_altivec_vctzd(
2609 (vector
unsigned long long)
__a);
2611 static __inline__ vector
unsigned long long __ATTRS_o_ai
2612 vec_cnttz(vector
unsigned long long __a) {
2613 return __builtin_altivec_vctzd(
__a);
2619 vec_first_match_index(vector
signed char __a, vector
signed char __b) {
2620 vector
unsigned long long __res =
2621 #ifdef __LITTLE_ENDIAN__
2626 if (__res[0] == 64) {
2627 return (__res[1] + 64) >> 3;
2629 return __res[0] >> 3;
2633 vec_first_match_index(vector
unsigned char __a, vector
unsigned char __b) {
2634 vector
unsigned long long __res =
2635 #ifdef __LITTLE_ENDIAN__
2640 if (__res[0] == 64) {
2641 return (__res[1] + 64) >> 3;
2643 return __res[0] >> 3;
2647 vec_first_match_index(vector
signed short __a, vector
signed short __b) {
2648 vector
unsigned long long __res =
2649 #ifdef __LITTLE_ENDIAN__
2654 if (__res[0] == 64) {
2655 return (__res[1] + 64) >> 4;
2657 return __res[0] >> 4;
2661 vec_first_match_index(vector
unsigned short __a, vector
unsigned short __b) {
2662 vector
unsigned long long __res =
2663 #ifdef __LITTLE_ENDIAN__
2668 if (__res[0] == 64) {
2669 return (__res[1] + 64) >> 4;
2671 return __res[0] >> 4;
2675 vec_first_match_index(vector
signed int __a, vector
signed int __b) {
2676 vector
unsigned long long __res =
2677 #ifdef __LITTLE_ENDIAN__
2682 if (__res[0] == 64) {
2683 return (__res[1] + 64) >> 5;
2685 return __res[0] >> 5;
2689 vec_first_match_index(vector
unsigned int __a, vector
unsigned int __b) {
2690 vector
unsigned long long __res =
2691 #ifdef __LITTLE_ENDIAN__
2696 if (__res[0] == 64) {
2697 return (__res[1] + 64) >> 5;
2699 return __res[0] >> 5;
2705 vec_first_match_or_eos_index(vector
signed char __a, vector
signed char __b) {
2711 vector
bool char __tmp2 = __tmp1 |
2715 vector
unsigned long long __res =
2716 #ifdef __LITTLE_ENDIAN__
2717 vec_cnttz((vector
unsigned long long)__tmp2);
2719 vec_cntlz((vector
unsigned long long)__tmp2);
2721 if (__res[0] == 64) {
2722 return (__res[1] + 64) >> 3;
2724 return __res[0] >> 3;
2728 vec_first_match_or_eos_index(vector
unsigned char __a,
2729 vector
unsigned char __b) {
2731 vector
bool char __tmp2 = __tmp1 |
2735 vector
unsigned long long __res =
2736 #ifdef __LITTLE_ENDIAN__
2737 vec_cnttz((vector
unsigned long long)__tmp2);
2739 vec_cntlz((vector
unsigned long long)__tmp2);
2741 if (__res[0] == 64) {
2742 return (__res[1] + 64) >> 3;
2744 return __res[0] >> 3;
2748 vec_first_match_or_eos_index(vector
signed short __a, vector
signed short __b) {
2750 vector
bool short __tmp2 = __tmp1 |
2754 vector
unsigned long long __res =
2755 #ifdef __LITTLE_ENDIAN__
2756 vec_cnttz((vector
unsigned long long)__tmp2);
2758 vec_cntlz((vector
unsigned long long)__tmp2);
2760 if (__res[0] == 64) {
2761 return (__res[1] + 64) >> 4;
2763 return __res[0] >> 4;
2767 vec_first_match_or_eos_index(vector
unsigned short __a,
2768 vector
unsigned short __b) {
2770 vector
bool short __tmp2 = __tmp1 |
2774 vector
unsigned long long __res =
2775 #ifdef __LITTLE_ENDIAN__
2776 vec_cnttz((vector
unsigned long long)__tmp2);
2778 vec_cntlz((vector
unsigned long long)__tmp2);
2780 if (__res[0] == 64) {
2781 return (__res[1] + 64) >> 4;
2783 return __res[0] >> 4;
2787 vec_first_match_or_eos_index(vector
signed int __a, vector
signed int __b) {
2789 vector
bool int __tmp2 = __tmp1 |
vec_cmpeq((vector
signed int)__tmp1,
__a) |
2792 vector
unsigned long long __res =
2793 #ifdef __LITTLE_ENDIAN__
2794 vec_cnttz((vector
unsigned long long)__tmp2);
2796 vec_cntlz((vector
unsigned long long)__tmp2);
2798 if (__res[0] == 64) {
2799 return (__res[1] + 64) >> 5;
2801 return __res[0] >> 5;
2805 vec_first_match_or_eos_index(vector
unsigned int __a, vector
unsigned int __b) {
2807 vector
bool int __tmp2 = __tmp1 |
2811 vector
unsigned long long __res =
2812 #ifdef __LITTLE_ENDIAN__
2813 vec_cnttz((vector
unsigned long long)__tmp2);
2815 vec_cntlz((vector
unsigned long long)__tmp2);
2817 if (__res[0] == 64) {
2818 return (__res[1] + 64) >> 5;
2820 return __res[0] >> 5;
2826 vec_first_mismatch_index(vector
signed char __a, vector
signed char __b) {
2827 vector
unsigned long long __res =
2828 #ifdef __LITTLE_ENDIAN__
2833 if (__res[0] == 64) {
2834 return (__res[1] + 64) >> 3;
2836 return __res[0] >> 3;
2840 vec_first_mismatch_index(vector
unsigned char __a, vector
unsigned char __b) {
2841 vector
unsigned long long __res =
2842 #ifdef __LITTLE_ENDIAN__
2847 if (__res[0] == 64) {
2848 return (__res[1] + 64) >> 3;
2850 return __res[0] >> 3;
2854 vec_first_mismatch_index(vector
signed short __a, vector
signed short __b) {
2855 vector
unsigned long long __res =
2856 #ifdef __LITTLE_ENDIAN__
2861 if (__res[0] == 64) {
2862 return (__res[1] + 64) >> 4;
2864 return __res[0] >> 4;
2868 vec_first_mismatch_index(vector
unsigned short __a, vector
unsigned short __b) {
2869 vector
unsigned long long __res =
2870 #ifdef __LITTLE_ENDIAN__
2875 if (__res[0] == 64) {
2876 return (__res[1] + 64) >> 4;
2878 return __res[0] >> 4;
2882 vec_first_mismatch_index(vector
signed int __a, vector
signed int __b) {
2883 vector
unsigned long long __res =
2884 #ifdef __LITTLE_ENDIAN__
2889 if (__res[0] == 64) {
2890 return (__res[1] + 64) >> 5;
2892 return __res[0] >> 5;
2896 vec_first_mismatch_index(vector
unsigned int __a, vector
unsigned int __b) {
2897 vector
unsigned long long __res =
2898 #ifdef __LITTLE_ENDIAN__
2903 if (__res[0] == 64) {
2904 return (__res[1] + 64) >> 5;
2906 return __res[0] >> 5;
2912 vec_first_mismatch_or_eos_index(vector
signed char __a,
2913 vector
signed char __b) {
2914 vector
unsigned long long __res =
2915 #ifdef __LITTLE_ENDIAN__
2916 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2918 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2920 if (__res[0] == 64) {
2921 return (__res[1] + 64) >> 3;
2923 return __res[0] >> 3;
2927 vec_first_mismatch_or_eos_index(vector
unsigned char __a,
2928 vector
unsigned char __b) {
2929 vector
unsigned long long __res =
2930 #ifdef __LITTLE_ENDIAN__
2931 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2933 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2935 if (__res[0] == 64) {
2936 return (__res[1] + 64) >> 3;
2938 return __res[0] >> 3;
2942 vec_first_mismatch_or_eos_index(vector
signed short __a,
2943 vector
signed short __b) {
2944 vector
unsigned long long __res =
2945 #ifdef __LITTLE_ENDIAN__
2946 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2948 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2950 if (__res[0] == 64) {
2951 return (__res[1] + 64) >> 4;
2953 return __res[0] >> 4;
2957 vec_first_mismatch_or_eos_index(vector
unsigned short __a,
2958 vector
unsigned short __b) {
2959 vector
unsigned long long __res =
2960 #ifdef __LITTLE_ENDIAN__
2961 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2963 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2965 if (__res[0] == 64) {
2966 return (__res[1] + 64) >> 4;
2968 return __res[0] >> 4;
2972 vec_first_mismatch_or_eos_index(vector
signed int __a, vector
signed int __b) {
2973 vector
unsigned long long __res =
2974 #ifdef __LITTLE_ENDIAN__
2975 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2977 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2979 if (__res[0] == 64) {
2980 return (__res[1] + 64) >> 5;
2982 return __res[0] >> 5;
2986 vec_first_mismatch_or_eos_index(vector
unsigned int __a,
2987 vector
unsigned int __b) {
2988 vector
unsigned long long __res =
2989 #ifdef __LITTLE_ENDIAN__
2990 vec_cnttz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2992 vec_cntlz((vector
unsigned long long)vec_cmpnez(
__a,
__b));
2994 if (__res[0] == 64) {
2995 return (__res[1] + 64) >> 5;
2997 return __res[0] >> 5;
3001 vec_insert_exp(vector
double __a, vector
unsigned long long __b) {
3002 return __builtin_vsx_xviexpdp((vector
unsigned long long)
__a,
__b);
3006 vec_insert_exp(vector
unsigned long long __a, vector
unsigned long long __b) {
3007 return __builtin_vsx_xviexpdp(
__a,
__b);
3011 vec_insert_exp(vector
float __a, vector
unsigned int __b) {
3012 return __builtin_vsx_xviexpsp((vector
unsigned int)
__a,
__b);
3016 vec_insert_exp(vector
unsigned int __a, vector
unsigned int __b) {
3017 return __builtin_vsx_xviexpsp(
__a,
__b);
3020 #if defined(__powerpc64__)
3021 static __inline__ vector
signed char __ATTRS_o_ai vec_xl_len(
const signed char *
__a,
3023 return (vector
signed char)__builtin_vsx_lxvl(
__a, (
__b << 56));
3027 vec_xl_len(
const unsigned char *
__a,
size_t __b) {
3028 return (vector
unsigned char)__builtin_vsx_lxvl(
__a, (
__b << 56));
3031 static __inline__ vector
signed short __ATTRS_o_ai vec_xl_len(
const signed short *
__a,
3033 return (vector
signed short)__builtin_vsx_lxvl(
__a, (
__b << 56));
3037 vec_xl_len(
const unsigned short *
__a,
size_t __b) {
3038 return (vector
unsigned short)__builtin_vsx_lxvl(
__a, (
__b << 56));
3041 static __inline__ vector
signed int __ATTRS_o_ai vec_xl_len(
const signed int *
__a,
3043 return (vector
signed int)__builtin_vsx_lxvl(
__a, (
__b << 56));
3046 static __inline__ vector
unsigned int __ATTRS_o_ai vec_xl_len(
const unsigned int *
__a,
3048 return (vector
unsigned int)__builtin_vsx_lxvl(
__a, (
__b << 56));
3051 static __inline__ vector
float __ATTRS_o_ai vec_xl_len(
const float *
__a,
size_t __b) {
3052 return (vector
float)__builtin_vsx_lxvl(
__a, (
__b << 56));
3055 #ifdef __SIZEOF_INT128__
3057 vec_xl_len(
const signed __int128 *
__a,
size_t __b) {
3058 return (vector
signed __int128)__builtin_vsx_lxvl(
__a, (
__b << 56));
3061 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
3062 vec_xl_len(
const unsigned __int128 *
__a,
size_t __b) {
3063 return (vector
unsigned __int128)__builtin_vsx_lxvl(
__a, (
__b << 56));
3068 vec_xl_len(
const signed long long *
__a,
size_t __b) {
3069 return (vector
signed long long)__builtin_vsx_lxvl(
__a, (
__b << 56));
3072 static __inline__ vector
unsigned long long __ATTRS_o_ai
3073 vec_xl_len(
const unsigned long long *
__a,
size_t __b) {
3074 return (vector
unsigned long long)__builtin_vsx_lxvl(
__a, (
__b << 56));
3077 static __inline__ vector
double __ATTRS_o_ai vec_xl_len(
const double *
__a,
3079 return (vector
double)__builtin_vsx_lxvl(
__a, (
__b << 56));
3083 vec_xl_len_r(
const unsigned char *
__a,
size_t __b) {
3084 vector
unsigned char __res =
3085 (vector
unsigned char)__builtin_vsx_lxvll(
__a, (
__b << 56));
3086 vector
unsigned char __mask =
3087 (vector
unsigned char)__builtin_altivec_lvsr(16 -
__b, (
int *)
NULL);
3088 return (vector
unsigned char)__builtin_altivec_vperm_4si(
3089 (vector
int)__res, (vector
int)__res, __mask);
3093 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned char __a,
3096 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3099 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed char __a,
3100 signed char *
__b,
size_t __c) {
3101 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3104 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed short __a,
3105 signed short *
__b,
size_t __c) {
3106 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3109 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned short __a,
3110 unsigned short *
__b,
3112 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3115 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed int __a,
3116 signed int *
__b,
size_t __c) {
3117 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3120 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned int __a,
3121 unsigned int *
__b,
size_t __c) {
3122 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3127 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3130 #ifdef __SIZEOF_INT128__
3131 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed __int128
__a,
3132 signed __int128 *
__b,
3134 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3137 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned __int128
__a,
3138 unsigned __int128 *
__b,
3140 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3144 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
signed long long __a,
3145 signed long long *
__b,
3147 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3150 static __inline__
void __ATTRS_o_ai vec_xst_len(vector
unsigned long long __a,
3151 unsigned long long *
__b,
3153 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3158 return __builtin_vsx_stxvl((vector
int)
__a,
__b, (
__c << 56));
3161 static __inline__
void __ATTRS_o_ai vec_xst_len_r(vector
unsigned char __a,
3164 vector
unsigned char __mask =
3165 (vector
unsigned char)__builtin_altivec_lvsl(16 -
__c, (
int *)
NULL);
3166 vector
unsigned char __res =
3167 (vector
unsigned char)__builtin_altivec_vperm_4si(
3168 (vector
int)
__a, (vector
int)
__a, __mask);
3169 return __builtin_vsx_stxvll((vector
int)__res,
__b, (
__c << 56));
3174 #if defined(__POWER9_VECTOR__) && defined(__powerpc64__)
3175 #define __vec_ldrmb(PTR, CNT) vec_xl_len_r((const unsigned char *)(PTR), (CNT))
3176 #define __vec_strmb(PTR, CNT, VAL) \
3177 vec_xst_len_r((VAL), (unsigned char *)(PTR), (CNT))
3179 #define __vec_ldrmb __builtin_vsx_ldrmb
3180 #define __vec_strmb __builtin_vsx_strmb
3186 static __inline__ vector
float __ATTRS_o_ai vec_cpsgn(vector
float __a,
3188 return __builtin_vsx_xvcpsgnsp(
__b,
__a);
3191 static __inline__ vector
double __ATTRS_o_ai vec_cpsgn(vector
double __a,
3192 vector
double __b) {
3193 return __builtin_vsx_xvcpsgndp(
__b,
__a);
3203 #ifdef __XL_COMPAT_ALTIVEC__
3204 #define vec_ctf(__a, __b) \
3206 vector int: (vector float)__builtin_altivec_vcfsx((vector int)(__a), \
3208 vector unsigned int: (vector float)__builtin_altivec_vcfux( \
3209 (vector unsigned int)(__a), ((__b)&0x1F)), \
3210 vector unsigned long long: ( \
3211 vector float)(__builtin_vsx_xvcvuxdsp( \
3212 (vector unsigned long long)(__a)) * \
3213 (vector float)(vector unsigned)((0x7f - \
3216 vector signed long long: ( \
3217 vector float)(__builtin_vsx_xvcvsxdsp( \
3218 (vector signed long long)(__a)) * \
3219 (vector float)(vector unsigned)((0x7f - \
3223 #define vec_ctf(__a, __b) \
3226 vector int: (vector float)__builtin_altivec_vcfsx((vector int)(__a), \
3228 vector unsigned int: (vector float)__builtin_altivec_vcfux( \
3229 (vector unsigned int)(__a), ((__b)&0x1F)), \
3230 vector unsigned long long: ( \
3231 vector float)(__builtin_convertvector( \
3232 (vector unsigned long long)(__a), vector double) * \
3233 (vector double)(vector unsigned long long)((0x3ffULL - \
3236 vector signed long long: ( \
3237 vector float)(__builtin_convertvector( \
3238 (vector signed long long)(__a), vector double) * \
3239 (vector double)(vector unsigned long long)((0x3ffULL - \
3244 #define vec_ctf(__a, __b) \
3246 vector int: (vector float)__builtin_altivec_vcfsx((vector int)(__a), \
3248 vector unsigned int: (vector float)__builtin_altivec_vcfux( \
3249 (vector unsigned int)(__a), ((__b)&0x1F)))
3254 #define vec_ctd(__a, __b) \
3256 vector signed int: ( \
3257 vec_doublee((vector signed int)(__a)) * \
3258 (vector double)(vector unsigned long long)((0x3ffULL - \
3261 vector unsigned int: ( \
3262 vec_doublee((vector unsigned int)(__a)) * \
3263 (vector double)(vector unsigned long long)((0x3ffULL - \
3266 vector unsigned long long: ( \
3267 __builtin_convertvector((vector unsigned long long)(__a), \
3269 (vector double)(vector unsigned long long)((0x3ffULL - \
3272 vector signed long long: ( \
3273 __builtin_convertvector((vector signed long long)(__a), \
3275 (vector double)(vector unsigned long long)((0x3ffULL - \
3282 #define vec_vcfux __builtin_altivec_vcfux
3285 #define vec_vcfsx(__a, __b) __builtin_altivec_vcfsx((vector int)(__a), (__b))
3290 #ifdef __XL_COMPAT_ALTIVEC__
3291 #define vec_cts(__a, __b) \
3293 vector float: (vector signed int)__builtin_altivec_vctsxs( \
3294 (vector float)(__a), ((__b)&0x1F)), \
3295 vector double: __extension__({ \
3296 vector double __ret = \
3297 (vector double)(__a) * \
3298 (vector double)(vector unsigned long long)((0x3ffULL + \
3301 (vector signed long long)__builtin_vsx_xvcvdpsxws(__ret); \
3304 #define vec_cts(__a, __b) \
3306 vector float: (vector signed int)__builtin_altivec_vctsxs( \
3307 (vector float)(__a), ((__b)&0x1F)), \
3308 vector double: __extension__({ \
3309 vector double __ret = \
3310 (vector double)(__a) * \
3311 (vector double)(vector unsigned long long)((0x3ffULL + \
3314 (vector signed long long)__builtin_convertvector( \
3315 __ret, vector signed long long); \
3319 #define vec_cts __builtin_altivec_vctsxs
3324 #define vec_vctsxs __builtin_altivec_vctsxs
3329 #ifdef __XL_COMPAT_ALTIVEC__
3330 #define vec_ctu(__a, __b) \
3332 vector float: (vector unsigned int)__builtin_altivec_vctuxs( \
3333 (vector float)(__a), ((__b)&0x1F)), \
3334 vector double: __extension__({ \
3335 vector double __ret = \
3336 (vector double)(__a) * \
3337 (vector double)(vector unsigned long long)((0x3ffULL + \
3340 (vector unsigned long long)__builtin_vsx_xvcvdpuxws(__ret); \
3343 #define vec_ctu(__a, __b) \
3345 vector float: (vector unsigned int)__builtin_altivec_vctuxs( \
3346 (vector float)(__a), ((__b)&0x1F)), \
3347 vector double: __extension__({ \
3348 vector double __ret = \
3349 (vector double)(__a) * \
3350 (vector double)(vector unsigned long long)((0x3ffULL + \
3353 (vector unsigned long long)__builtin_convertvector( \
3354 __ret, vector unsigned long long); \
3358 #define vec_ctu __builtin_altivec_vctuxs
3361 #ifdef __LITTLE_ENDIAN__
3365 #define vec_ctsl(__a, __b) \
3367 (__a), vector float \
3369 vector float __ret = \
3370 (vector float)(__a) * \
3371 (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) << 23); \
3372 __builtin_vsx_xvcvspsxds(__builtin_vsx_xxsldwi(__ret, __ret, 1)); \
3376 vector double __ret = \
3377 (vector double)(__a) * \
3378 (vector double)(vector unsigned long long)((0x3ffULL + \
3381 __builtin_convertvector(__ret, vector signed long long); \
3386 #define vec_ctul(__a, __b) \
3388 (__a), vector float \
3390 vector float __ret = \
3391 (vector float)(__a) * \
3392 (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) << 23); \
3393 __builtin_vsx_xvcvspuxds(__builtin_vsx_xxsldwi(__ret, __ret, 1)); \
3397 vector double __ret = \
3398 (vector double)(__a) * \
3399 (vector double)(vector unsigned long long)((0x3ffULL + \
3402 __builtin_convertvector(__ret, vector unsigned long long); \
3409 #define vec_ctsl(__a, __b) \
3411 vector float: __extension__({ \
3412 vector float __ret = \
3413 (vector float)(__a) * \
3414 (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) << 23); \
3415 __builtin_vsx_xvcvspsxds(__ret); \
3417 vector double: __extension__({ \
3418 vector double __ret = \
3419 (vector double)(__a) * \
3420 (vector double)(vector unsigned long long)((0x3ffULL + \
3423 __builtin_convertvector(__ret, vector signed long long); \
3428 #define vec_ctul(__a, __b) \
3429 _Generic((__a), vector float \
3431 vector float __ret = \
3432 (vector float)(__a) * \
3433 (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) \
3435 __builtin_vsx_xvcvspuxds(__ret); \
3439 vector double __ret = \
3440 (vector double)(__a) * \
3441 (vector double)(vector unsigned long long)((0x3ffULL + \
3444 __builtin_convertvector(__ret, vector unsigned long long); \
3451 #define vec_vctuxs __builtin_altivec_vctuxs
3455 #ifdef __POWER9_VECTOR__
3457 vec_signexti(vector
signed char __a) {
3458 return __builtin_altivec_vextsb2w(
__a);
3462 vec_signexti(vector
signed short __a) {
3463 return __builtin_altivec_vextsh2w(
__a);
3467 vec_signextll(vector
signed char __a) {
3468 return __builtin_altivec_vextsb2d(
__a);
3472 vec_signextll(vector
signed short __a) {
3473 return __builtin_altivec_vextsh2d(
__a);
3477 vec_signextll(vector
signed int __a) {
3478 return __builtin_altivec_vextsw2d(
__a);
3482 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
3484 vec_signextq(vector
signed long long __a) {
3485 return __builtin_altivec_vextsd2q(
__a);
3492 vec_sld(vector
signed int, vector
signed int,
unsigned const int __c);
3496 return __builtin_convertvector(
__a, vector
signed int);
3502 return __builtin_convertvector(
__a, vector
signed long long);
3505 static __inline__ vector
signed int __attribute__((__always_inline__))
3506 vec_signed2(vector
double __a, vector
double __b) {
3507 return (vector
signed int) {
__a[0],
__a[1],
__b[0],
__b[1] };
3511 vec_signede(vector
double __a) {
3512 #ifdef __LITTLE_ENDIAN__
3513 vector
signed int __ret = __builtin_vsx_xvcvdpsxws(
__a);
3514 return vec_sld(__ret, __ret, 12);
3516 return __builtin_vsx_xvcvdpsxws(
__a);
3521 vec_signedo(vector
double __a) {
3522 #ifdef __LITTLE_ENDIAN__
3523 return __builtin_vsx_xvcvdpsxws(
__a);
3525 vector
signed int __ret = __builtin_vsx_xvcvdpsxws(
__a);
3526 return vec_sld(__ret, __ret, 12);
3534 vec_sld(vector
unsigned int, vector
unsigned int,
unsigned const int __c);
3538 return __builtin_convertvector(
__a, vector
unsigned int);
3542 static __inline__ vector
unsigned long long __ATTRS_o_ai
3544 return __builtin_convertvector(
__a, vector
unsigned long long);
3547 static __inline__ vector
unsigned int __attribute__((__always_inline__))
3548 vec_unsigned2(vector
double __a, vector
double __b) {
3549 return (vector
unsigned int) {
__a[0],
__a[1],
__b[0],
__b[1] };
3553 vec_unsignede(vector
double __a) {
3554 #ifdef __LITTLE_ENDIAN__
3555 vector
unsigned int __ret = __builtin_vsx_xvcvdpuxws(
__a);
3556 return vec_sld(__ret, __ret, 12);
3558 return __builtin_vsx_xvcvdpuxws(
__a);
3563 vec_unsignedo(vector
double __a) {
3564 #ifdef __LITTLE_ENDIAN__
3565 return __builtin_vsx_xvcvdpuxws(
__a);
3567 vector
unsigned int __ret = __builtin_vsx_xvcvdpuxws(
__a);
3568 return vec_sld(__ret, __ret, 12);
3576 vec_sld(vector
float, vector
float,
unsigned const int __c);
3580 return __builtin_convertvector(
__a, vector
float);
3585 return __builtin_convertvector(
__a, vector
float);
3590 vec_float2(vector
signed long long __a, vector
signed long long __b) {
3591 return (vector
float) {
__a[0],
__a[1],
__b[0],
__b[1] };
3595 vec_float2(vector
unsigned long long __a, vector
unsigned long long __b) {
3596 return (vector
float) {
__a[0],
__a[1],
__b[0],
__b[1] };
3600 vec_float2(vector
double __a, vector
double __b) {
3601 return (vector
float) {
__a[0],
__a[1],
__b[0],
__b[1] };
3605 vec_floate(vector
signed long long __a) {
3606 #ifdef __LITTLE_ENDIAN__
3607 vector
float __ret = __builtin_vsx_xvcvsxdsp(
__a);
3608 return vec_sld(__ret, __ret, 12);
3610 return __builtin_vsx_xvcvsxdsp(
__a);
3615 vec_floate(vector
unsigned long long __a) {
3616 #ifdef __LITTLE_ENDIAN__
3617 vector
float __ret = __builtin_vsx_xvcvuxdsp(
__a);
3618 return vec_sld(__ret, __ret, 12);
3620 return __builtin_vsx_xvcvuxdsp(
__a);
3625 vec_floate(vector
double __a) {
3626 #ifdef __LITTLE_ENDIAN__
3627 vector
float __ret = __builtin_vsx_xvcvdpsp(
__a);
3628 return vec_sld(__ret, __ret, 12);
3630 return __builtin_vsx_xvcvdpsp(
__a);
3635 vec_floato(vector
signed long long __a) {
3636 #ifdef __LITTLE_ENDIAN__
3637 return __builtin_vsx_xvcvsxdsp(
__a);
3639 vector
float __ret = __builtin_vsx_xvcvsxdsp(
__a);
3640 return vec_sld(__ret, __ret, 12);
3645 vec_floato(vector
unsigned long long __a) {
3646 #ifdef __LITTLE_ENDIAN__
3647 return __builtin_vsx_xvcvuxdsp(
__a);
3649 vector
float __ret = __builtin_vsx_xvcvuxdsp(
__a);
3650 return vec_sld(__ret, __ret, 12);
3655 vec_floato(vector
double __a) {
3656 #ifdef __LITTLE_ENDIAN__
3657 return __builtin_vsx_xvcvdpsp(
__a);
3659 vector
float __ret = __builtin_vsx_xvcvdpsp(
__a);
3660 return vec_sld(__ret, __ret, 12);
3669 vec_double(vector
signed long long __a) {
3670 return __builtin_convertvector(
__a, vector
double);
3674 vec_double(vector
unsigned long long __a) {
3675 return __builtin_convertvector(
__a, vector
double);
3679 vec_doublee(vector
signed int __a) {
3680 #ifdef __LITTLE_ENDIAN__
3683 return __builtin_vsx_xvcvsxwdp(
__a);
3688 vec_doublee(vector
unsigned int __a) {
3689 #ifdef __LITTLE_ENDIAN__
3692 return __builtin_vsx_xvcvuxwdp(
__a);
3697 vec_doublee(vector
float __a) {
3698 #ifdef __LITTLE_ENDIAN__
3701 return __builtin_vsx_xvcvspdp(
__a);
3706 vec_doubleh(vector
signed int __a) {
3707 vector
double __ret = {
__a[0],
__a[1]};
3712 vec_doubleh(vector
unsigned int __a) {
3713 vector
double __ret = {
__a[0],
__a[1]};
3718 vec_doubleh(vector
float __a) {
3719 vector
double __ret = {
__a[0],
__a[1]};
3724 vec_doublel(vector
signed int __a) {
3725 vector
double __ret = {
__a[2],
__a[3]};
3730 vec_doublel(vector
unsigned int __a) {
3731 vector
double __ret = {
__a[2],
__a[3]};
3736 vec_doublel(vector
float __a) {
3737 vector
double __ret = {
__a[2],
__a[3]};
3742 vec_doubleo(vector
signed int __a) {
3743 #ifdef __LITTLE_ENDIAN__
3744 return __builtin_vsx_xvcvsxwdp(
__a);
3751 vec_doubleo(vector
unsigned int __a) {
3752 #ifdef __LITTLE_ENDIAN__
3753 return __builtin_vsx_xvcvuxwdp(
__a);
3760 vec_doubleo(vector
float __a) {
3761 #ifdef __LITTLE_ENDIAN__
3762 return __builtin_vsx_xvcvspdp(
__a);
3769 static __inline__ vector
double __ATTRS_o_ai vec_cvf(vector
float __a) {
3770 return vec_doublee(
__a);
3773 static __inline__ vector
float __ATTRS_o_ai vec_cvf(vector
double __a) {
3774 return vec_floate(
__a);
3815 vec_div(vector
signed long long __a, vector
signed long long __b) {
3819 static __inline__ vector
unsigned long long __ATTRS_o_ai
3820 vec_div(vector
unsigned long long __a, vector
unsigned long long __b) {
3830 vector
double __b) {
3837 #ifdef __POWER10_VECTOR__
3839 vec_dive(vector
signed int __a, vector
signed int __b) {
3840 return __builtin_altivec_vdivesw(
__a,
__b);
3844 vec_dive(vector
unsigned int __a, vector
unsigned int __b) {
3845 return __builtin_altivec_vdiveuw(
__a,
__b);
3849 vec_dive(vector
signed long long __a, vector
signed long long __b) {
3850 return __builtin_altivec_vdivesd(
__a,
__b);
3853 static __inline__ vector
unsigned long long __ATTRS_o_ai
3854 vec_dive(vector
unsigned long long __a, vector
unsigned long long __b) {
3855 return __builtin_altivec_vdiveud(
__a,
__b);
3858 #ifdef __SIZEOF_INT128__
3859 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
3860 vec_dive(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
3861 return __builtin_altivec_vdiveuq(
__a,
__b);
3865 vec_dive(vector
signed __int128
__a, vector
signed __int128
__b) {
3866 return __builtin_altivec_vdivesq(
__a,
__b);
3871 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
3872 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
3873 vec_div(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
3878 vec_div(vector
signed __int128
__a, vector
signed __int128
__b) {
3887 vector
double __b) {
3888 return __builtin_vsx_xvtdivdp(
__a,
__b);
3893 return __builtin_vsx_xvtdivsp(
__a,
__b);
3899 #define vec_dss __builtin_altivec_dss
3903 static __inline__
void __attribute__((__always_inline__)) vec_dssall(
void) {
3904 __builtin_altivec_dssall();
3908 #define vec_dst(__PTR, __CW, __STR) \
3909 __builtin_altivec_dst((const void *)(__PTR), (__CW), (__STR))
3912 #define vec_dstst(__PTR, __CW, __STR) \
3913 __builtin_altivec_dstst((const void *)(__PTR), (__CW), (__STR))
3916 #define vec_dststt(__PTR, __CW, __STR) \
3917 __builtin_altivec_dststt((const void *)(__PTR), (__CW), (__STR))
3920 #define vec_dstt(__PTR, __CW, __STR) \
3921 __builtin_altivec_dstt((const void *)(__PTR), (__CW), (__STR))
3925 #ifdef __POWER8_VECTOR__
3927 vec_eqv(vector
signed char __a, vector
signed char __b) {
3928 return (vector
signed char)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3929 (vector
unsigned int)
__b);
3933 vec_eqv(vector
unsigned char __a, vector
unsigned char __b) {
3934 return (vector
unsigned char)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3935 (vector
unsigned int)
__b);
3938 static __inline__ vector
bool char __ATTRS_o_ai vec_eqv(vector
bool char __a,
3939 vector
bool char __b) {
3940 return (vector
bool char)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3941 (vector
unsigned int)
__b);
3945 vec_eqv(vector
signed short __a, vector
signed short __b) {
3946 return (vector
signed short)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3947 (vector
unsigned int)
__b);
3951 vec_eqv(vector
unsigned short __a, vector
unsigned short __b) {
3952 return (vector
unsigned short)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3953 (vector
unsigned int)
__b);
3957 vec_eqv(vector
bool short __a, vector
bool short __b) {
3958 return (vector
bool short)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3959 (vector
unsigned int)
__b);
3963 vec_eqv(vector
signed int __a, vector
signed int __b) {
3964 return (vector
signed int)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3965 (vector
unsigned int)
__b);
3969 vec_eqv(vector
unsigned int __a, vector
unsigned int __b) {
3970 return __builtin_vsx_xxleqv(
__a,
__b);
3973 static __inline__ vector
bool int __ATTRS_o_ai vec_eqv(vector
bool int __a,
3974 vector
bool int __b) {
3975 return (vector
bool int)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3976 (vector
unsigned int)
__b);
3980 vec_eqv(vector
signed long long __a, vector
signed long long __b) {
3981 return (vector
signed long long)__builtin_vsx_xxleqv(
3982 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
3985 static __inline__ vector
unsigned long long __ATTRS_o_ai
3986 vec_eqv(vector
unsigned long long __a, vector
unsigned long long __b) {
3987 return (vector
unsigned long long)__builtin_vsx_xxleqv(
3988 (vector
unsigned int)
__a, (vector
unsigned int)
__b);
3992 vec_eqv(vector
bool long long __a, vector
bool long long __b) {
3993 return (vector
bool long long)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
3994 (vector
unsigned int)
__b);
3999 return (vector
float)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
4000 (vector
unsigned int)
__b);
4003 static __inline__ vector
double __ATTRS_o_ai vec_eqv(vector
double __a,
4004 vector
double __b) {
4005 return (vector
double)__builtin_vsx_xxleqv((vector
unsigned int)
__a,
4006 (vector
unsigned int)
__b);
4012 static __inline__ vector
float __attribute__((__always_inline__))
4013 vec_expte(vector
float __a) {
4014 return __builtin_altivec_vexptefp(
__a);
4019 static __inline__ vector
float __attribute__((__always_inline__))
4020 vec_vexptefp(vector
float __a) {
4021 return __builtin_altivec_vexptefp(
__a);
4028 return __builtin_vsx_xvrspim(
__a);
4030 return __builtin_altivec_vrfim(
__a);
4036 return __builtin_vsx_xvrdpim(
__a);
4053 static __inline__ vector
float __attribute__((__always_inline__))
4054 vec_vrfim(vector
float __a) {
4055 return __builtin_altivec_vrfim(
__a);
4062 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
4067 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
4072 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
4077 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
4082 return (vector
bool char)__builtin_altivec_lvx(
__a,
__b);
4086 const vector
short *
__b) {
4087 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
4091 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
4096 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
4101 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
4106 return (vector
bool short)__builtin_altivec_lvx(
__a,
__b);
4110 const vector pixel *
__b) {
4111 return (vector pixel)__builtin_altivec_lvx(
__a,
__b);
4115 const vector
int *
__b) {
4116 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
4120 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
4125 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
4130 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
4135 return (vector
bool int)__builtin_altivec_lvx(
__a,
__b);
4139 const vector
float *
__b) {
4140 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
4144 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
4151 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
4156 return (vector
signed char)__builtin_altivec_lvx(
__a,
__b);
4161 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
4166 return (vector
unsigned char)__builtin_altivec_lvx(
__a,
__b);
4171 return (vector
bool char)__builtin_altivec_lvx(
__a,
__b);
4175 const vector
short *
__b) {
4176 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
4180 return (vector
short)__builtin_altivec_lvx(
__a,
__b);
4185 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
4190 return (vector
unsigned short)__builtin_altivec_lvx(
__a,
__b);
4195 return (vector
bool short)__builtin_altivec_lvx(
__a,
__b);
4199 const vector pixel *
__b) {
4200 return (vector pixel)__builtin_altivec_lvx(
__a,
__b);
4204 const vector
int *
__b) {
4205 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
4209 return (vector
int)__builtin_altivec_lvx(
__a,
__b);
4214 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
4219 return (vector
unsigned int)__builtin_altivec_lvx(
__a,
__b);
4224 return (vector
bool int)__builtin_altivec_lvx(
__a,
__b);
4228 const vector
float *
__b) {
4229 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
4233 return (vector
float)__builtin_altivec_lvx(
__a,
__b);
4240 return (vector
signed char)__builtin_altivec_lvebx(
__a,
__b);
4245 return (vector
unsigned char)__builtin_altivec_lvebx(
__a,
__b);
4249 return (vector
short)__builtin_altivec_lvehx(
__a,
__b);
4254 return (vector
unsigned short)__builtin_altivec_lvehx(
__a,
__b);
4258 return (vector
int)__builtin_altivec_lvewx(
__a,
__b);
4263 return (vector
unsigned int)__builtin_altivec_lvewx(
__a,
__b);
4267 return (vector
float)__builtin_altivec_lvewx(
__a,
__b);
4274 return (vector
signed char)__builtin_altivec_lvebx(
__a,
__b);
4279 return (vector
unsigned char)__builtin_altivec_lvebx(
__a,
__b);
4286 return (vector
short)__builtin_altivec_lvehx(
__a,
__b);
4291 return (vector
unsigned short)__builtin_altivec_lvehx(
__a,
__b);
4297 return (vector
int)__builtin_altivec_lvewx(
__a,
__b);
4302 return (vector
unsigned int)__builtin_altivec_lvewx(
__a,
__b);
4307 return (vector
float)__builtin_altivec_lvewx(
__a,
__b);
4314 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
4319 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
4324 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
4329 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
4334 return (vector
bool char)__builtin_altivec_lvxl(
__a,
__b);
4338 const vector
short *
__b) {
4339 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
4343 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
4348 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
4353 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
4358 return (vector
bool short)__builtin_altivec_lvxl(
__a,
__b);
4362 const vector pixel *
__b) {
4363 return (vector pixel
short)__builtin_altivec_lvxl(
__a,
__b);
4367 const vector
int *
__b) {
4368 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
4372 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
4377 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
4382 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
4387 return (vector
bool int)__builtin_altivec_lvxl(
__a,
__b);
4391 const vector
float *
__b) {
4392 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
4396 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
4403 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
4408 return (vector
signed char)__builtin_altivec_lvxl(
__a,
__b);
4413 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
4418 return (vector
unsigned char)__builtin_altivec_lvxl(
__a,
__b);
4423 return (vector
bool char)__builtin_altivec_lvxl(
__a,
__b);
4427 const vector
short *
__b) {
4428 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
4433 return (vector
short)__builtin_altivec_lvxl(
__a,
__b);
4438 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
4443 return (vector
unsigned short)__builtin_altivec_lvxl(
__a,
__b);
4448 return (vector
bool short)__builtin_altivec_lvxl(
__a,
__b);
4452 const vector pixel *
__b) {
4453 return (vector pixel)__builtin_altivec_lvxl(
__a,
__b);
4457 const vector
int *
__b) {
4458 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
4462 return (vector
int)__builtin_altivec_lvxl(
__a,
__b);
4467 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
4472 return (vector
unsigned int)__builtin_altivec_lvxl(
__a,
__b);
4477 return (vector
bool int)__builtin_altivec_lvxl(
__a,
__b);
4481 const vector
float *
__b) {
4482 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
4487 return (vector
float)__builtin_altivec_lvxl(
__a,
__b);
4492 static __inline__ vector
float __attribute__((__always_inline__))
4493 vec_loge(vector
float __a) {
4494 return __builtin_altivec_vlogefp(
__a);
4499 static __inline__ vector
float __attribute__((__always_inline__))
4500 vec_vlogefp(vector
float __a) {
4501 return __builtin_altivec_vlogefp(
__a);
4506 #ifdef __LITTLE_ENDIAN__
4508 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4510 vector
unsigned char mask =
4511 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4512 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4513 7, 6, 5, 4, 3, 2, 1, 0};
4514 return vec_perm(mask, mask, reverse);
4519 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4523 #ifdef __LITTLE_ENDIAN__
4525 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4527 vector
unsigned char mask =
4528 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4529 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4530 7, 6, 5, 4, 3, 2, 1, 0};
4531 return vec_perm(mask, mask, reverse);
4536 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4540 #ifdef __LITTLE_ENDIAN__
4542 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4544 vector
unsigned char mask =
4545 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4546 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4547 7, 6, 5, 4, 3, 2, 1, 0};
4548 return vec_perm(mask, mask, reverse);
4553 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4557 #ifdef __LITTLE_ENDIAN__
4559 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4561 vector
unsigned char mask =
4562 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4563 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4564 7, 6, 5, 4, 3, 2, 1, 0};
4565 return vec_perm(mask, mask, reverse);
4570 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4574 #ifdef __LITTLE_ENDIAN__
4576 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4578 vector
unsigned char mask =
4579 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4580 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4581 7, 6, 5, 4, 3, 2, 1, 0};
4582 return vec_perm(mask, mask, reverse);
4587 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4591 #ifdef __LITTLE_ENDIAN__
4593 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4595 vector
unsigned char mask =
4596 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4597 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4598 7, 6, 5, 4, 3, 2, 1, 0};
4599 return vec_perm(mask, mask, reverse);
4604 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4608 #ifdef __LITTLE_ENDIAN__
4610 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4612 vector
unsigned char mask =
4613 (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4614 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4615 7, 6, 5, 4, 3, 2, 1, 0};
4616 return vec_perm(mask, mask, reverse);
4621 return (vector
unsigned char)__builtin_altivec_lvsl(
__a,
__b);
4627 #ifdef __LITTLE_ENDIAN__
4629 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4631 vector
unsigned char mask =
4632 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4633 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4634 7, 6, 5, 4, 3, 2, 1, 0};
4635 return vec_perm(mask, mask, reverse);
4640 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4644 #ifdef __LITTLE_ENDIAN__
4646 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4648 vector
unsigned char mask =
4649 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4650 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4651 7, 6, 5, 4, 3, 2, 1, 0};
4652 return vec_perm(mask, mask, reverse);
4657 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4661 #ifdef __LITTLE_ENDIAN__
4663 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4665 vector
unsigned char mask =
4666 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4667 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4668 7, 6, 5, 4, 3, 2, 1, 0};
4669 return vec_perm(mask, mask, reverse);
4674 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4678 #ifdef __LITTLE_ENDIAN__
4680 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4682 vector
unsigned char mask =
4683 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4684 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4685 7, 6, 5, 4, 3, 2, 1, 0};
4686 return vec_perm(mask, mask, reverse);
4691 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4695 #ifdef __LITTLE_ENDIAN__
4697 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4699 vector
unsigned char mask =
4700 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4701 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4702 7, 6, 5, 4, 3, 2, 1, 0};
4703 return vec_perm(mask, mask, reverse);
4708 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4712 #ifdef __LITTLE_ENDIAN__
4714 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4716 vector
unsigned char mask =
4717 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4718 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4719 7, 6, 5, 4, 3, 2, 1, 0};
4720 return vec_perm(mask, mask, reverse);
4725 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4729 #ifdef __LITTLE_ENDIAN__
4731 __attribute__((__deprecated__(
"use assignment for unaligned little endian \
4733 vector
unsigned char mask =
4734 (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4735 vector
unsigned char reverse = {15, 14, 13, 12, 11, 10, 9, 8,
4736 7, 6, 5, 4, 3, 2, 1, 0};
4737 return vec_perm(mask, mask, reverse);
4742 return (vector
unsigned char)__builtin_altivec_lvsr(
__a,
__b);
4748 vec_mladd(vector
signed short, vector
signed short, vector
signed short);
4750 vec_mladd(vector
signed short, vector
unsigned short, vector
unsigned short);
4752 vec_mladd(vector
unsigned short, vector
signed short, vector
signed short);
4754 vec_mladd(vector
unsigned short, vector
unsigned short, vector
unsigned short);
4757 vector
signed short __a, vector
signed short __b, vector
signed short __c) {
4763 vector
unsigned short __c) {
4769 vector
signed short __c) {
4775 vector
unsigned short __c) {
4783 return __builtin_vsx_xvmaddasp(
__a,
__b,
__c);
4785 return __builtin_altivec_vmaddfp(
__a,
__b,
__c);
4792 vector
double __c) {
4793 return __builtin_vsx_xvmaddadp(
__a,
__b,
__c);
4799 static __inline__ vector
float __attribute__((__always_inline__))
4800 vec_vmaddfp(vector
float __a, vector
float __b, vector
float __c) {
4801 return __builtin_altivec_vmaddfp(
__a,
__b,
__c);
4806 static __inline__ vector
signed short __attribute__((__always_inline__))
4807 vec_madds(vector
signed short __a, vector
signed short __b,
4808 vector
signed short __c) {
4809 return __builtin_altivec_vmhaddshs(
__a,
__b,
__c);
4813 static __inline__ vector
signed short __attribute__((__always_inline__))
4814 vec_vmhaddshs(vector
signed short __a, vector
signed short __b,
4815 vector
signed short __c) {
4816 return __builtin_altivec_vmhaddshs(
__a,
__b,
__c);
4822 static __inline__ vector
float __ATTRS_o_ai vec_msub(vector
float __a,
4825 return __builtin_vsx_xvmsubasp(
__a,
__b,
__c);
4828 static __inline__ vector
double __ATTRS_o_ai vec_msub(vector
double __a,
4830 vector
double __c) {
4831 return __builtin_vsx_xvmsubadp(
__a,
__b,
__c);
4839 return __builtin_altivec_vmaxsb(
__a,
__b);
4844 return __builtin_altivec_vmaxsb((vector
signed char)
__a,
__b);
4849 return __builtin_altivec_vmaxsb(
__a, (vector
signed char)
__b);
4854 return __builtin_altivec_vmaxub(
__a,
__b);
4859 return __builtin_altivec_vmaxub((vector
unsigned char)
__a,
__b);
4864 return __builtin_altivec_vmaxub(
__a, (vector
unsigned char)
__b);
4869 return __builtin_altivec_vmaxsh(
__a,
__b);
4874 return __builtin_altivec_vmaxsh((vector
short)
__a,
__b);
4878 vector
bool short __b) {
4879 return __builtin_altivec_vmaxsh(
__a, (vector
short)
__b);
4884 return __builtin_altivec_vmaxuh(
__a,
__b);
4889 return __builtin_altivec_vmaxuh((vector
unsigned short)
__a,
__b);
4894 return __builtin_altivec_vmaxuh(
__a, (vector
unsigned short)
__b);
4899 return __builtin_altivec_vmaxsw(
__a,
__b);
4904 return __builtin_altivec_vmaxsw((vector
int)
__a,
__b);
4908 vector
bool int __b) {
4909 return __builtin_altivec_vmaxsw(
__a, (vector
int)
__b);
4914 return __builtin_altivec_vmaxuw(
__a,
__b);
4919 return __builtin_altivec_vmaxuw((vector
unsigned int)
__a,
__b);
4924 return __builtin_altivec_vmaxuw(
__a, (vector
unsigned int)
__b);
4927 #ifdef __POWER8_VECTOR__
4929 vec_max(vector
signed long long __a, vector
signed long long __b) {
4930 return __builtin_altivec_vmaxsd(
__a,
__b);
4934 vec_max(vector
bool long long __a, vector
signed long long __b) {
4935 return __builtin_altivec_vmaxsd((vector
signed long long)
__a,
__b);
4939 vec_max(vector
signed long long __a, vector
bool long long __b) {
4940 return __builtin_altivec_vmaxsd(
__a, (vector
signed long long)
__b);
4943 static __inline__ vector
unsigned long long __ATTRS_o_ai
4944 vec_max(vector
unsigned long long __a, vector
unsigned long long __b) {
4945 return __builtin_altivec_vmaxud(
__a,
__b);
4948 static __inline__ vector
unsigned long long __ATTRS_o_ai
4949 vec_max(vector
bool long long __a, vector
unsigned long long __b) {
4950 return __builtin_altivec_vmaxud((vector
unsigned long long)
__a,
__b);
4953 static __inline__ vector
unsigned long long __ATTRS_o_ai
4954 vec_max(vector
unsigned long long __a, vector
bool long long __b) {
4955 return __builtin_altivec_vmaxud(
__a, (vector
unsigned long long)
__b);
4962 return __builtin_vsx_xvmaxsp(
__a,
__b);
4964 return __builtin_altivec_vmaxfp(
__a,
__b);
4970 vector
double __b) {
4971 return __builtin_vsx_xvmaxdp(
__a,
__b);
4979 return __builtin_altivec_vmaxsb(
__a,
__b);
4984 return __builtin_altivec_vmaxsb((vector
signed char)
__a,
__b);
4989 return __builtin_altivec_vmaxsb(
__a, (vector
signed char)
__b);
4996 return __builtin_altivec_vmaxub(
__a,
__b);
5001 return __builtin_altivec_vmaxub((vector
unsigned char)
__a,
__b);
5006 return __builtin_altivec_vmaxub(
__a, (vector
unsigned char)
__b);
5013 return __builtin_altivec_vmaxsh(
__a,
__b);
5018 return __builtin_altivec_vmaxsh((vector
short)
__a,
__b);
5022 vector
bool short __b) {
5023 return __builtin_altivec_vmaxsh(
__a, (vector
short)
__b);
5030 return __builtin_altivec_vmaxuh(
__a,
__b);
5035 return __builtin_altivec_vmaxuh((vector
unsigned short)
__a,
__b);
5040 return __builtin_altivec_vmaxuh(
__a, (vector
unsigned short)
__b);
5047 return __builtin_altivec_vmaxsw(
__a,
__b);
5052 return __builtin_altivec_vmaxsw((vector
int)
__a,
__b);
5056 vector
bool int __b) {
5057 return __builtin_altivec_vmaxsw(
__a, (vector
int)
__b);
5064 return __builtin_altivec_vmaxuw(
__a,
__b);
5069 return __builtin_altivec_vmaxuw((vector
unsigned int)
__a,
__b);
5074 return __builtin_altivec_vmaxuw(
__a, (vector
unsigned int)
__b);
5079 static __inline__ vector
float __attribute__((__always_inline__))
5080 vec_vmaxfp(vector
float __a, vector
float __b) {
5082 return __builtin_vsx_xvmaxsp(
__a,
__b);
5084 return __builtin_altivec_vmaxfp(
__a,
__b);
5093 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
5094 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
5095 0x06, 0x16, 0x07, 0x17));
5101 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
5102 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
5103 0x06, 0x16, 0x07, 0x17));
5109 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
5110 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
5111 0x06, 0x16, 0x07, 0x17));
5117 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5118 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5119 0x06, 0x07, 0x16, 0x17));
5125 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5126 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5127 0x06, 0x07, 0x16, 0x17));
5133 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5134 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5135 0x06, 0x07, 0x16, 0x17));
5141 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5142 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5143 0x06, 0x07, 0x16, 0x17));
5149 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5150 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5151 0x14, 0x15, 0x16, 0x17));
5157 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5158 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5159 0x14, 0x15, 0x16, 0x17));
5163 vector
bool int __b) {
5165 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5166 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5167 0x14, 0x15, 0x16, 0x17));
5173 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5174 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5175 0x14, 0x15, 0x16, 0x17));
5182 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5183 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5184 0x14, 0x15, 0x16, 0x17));
5190 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5191 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5192 0x14, 0x15, 0x16, 0x17));
5198 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5199 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5200 0x14, 0x15, 0x16, 0x17));
5203 static __inline__ vector
unsigned long long __ATTRS_o_ai
5206 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5207 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5208 0x14, 0x15, 0x16, 0x17));
5211 static __inline__ vector
unsigned long long __ATTRS_o_ai
5214 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5215 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5216 0x14, 0x15, 0x16, 0x17));
5219 static __inline__ vector
unsigned long long __ATTRS_o_ai
5222 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5223 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5224 0x14, 0x15, 0x16, 0x17));
5230 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5231 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5232 0x14, 0x15, 0x16, 0x17));
5236 vector
double __b) {
5238 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5239 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5240 0x14, 0x15, 0x16, 0x17));
5245 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5246 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5247 0x14, 0x15, 0x16, 0x17));
5252 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
5253 0x06, 0x07, 0x10, 0x11, 0x12, 0x13,
5254 0x14, 0x15, 0x16, 0x17));
5260 #define __builtin_altivec_vmrghb vec_vmrghb
5265 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
5266 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
5267 0x06, 0x16, 0x07, 0x17));
5273 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
5274 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
5275 0x06, 0x16, 0x07, 0x17));
5281 (vector
unsigned char)(0x00, 0x10, 0x01, 0x11, 0x02, 0x12,
5282 0x03, 0x13, 0x04, 0x14, 0x05, 0x15,
5283 0x06, 0x16, 0x07, 0x17));
5288 #define __builtin_altivec_vmrghh vec_vmrghh
5293 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5294 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5295 0x06, 0x07, 0x16, 0x17));
5301 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5302 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5303 0x06, 0x07, 0x16, 0x17));
5309 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5310 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5311 0x06, 0x07, 0x16, 0x17));
5317 (vector
unsigned char)(0x00, 0x01, 0x10, 0x11, 0x02, 0x03,
5318 0x12, 0x13, 0x04, 0x05, 0x14, 0x15,
5319 0x06, 0x07, 0x16, 0x17));
5324 #define __builtin_altivec_vmrghw vec_vmrghw
5329 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5330 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5331 0x14, 0x15, 0x16, 0x17));
5337 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5338 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5339 0x14, 0x15, 0x16, 0x17));
5343 vector
bool int __b) {
5345 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5346 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5347 0x14, 0x15, 0x16, 0x17));
5353 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5354 0x12, 0x13, 0x04, 0x05, 0x06, 0x07,
5355 0x14, 0x15, 0x16, 0x17));
5363 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
5364 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
5365 0x0E, 0x1E, 0x0F, 0x1F));
5371 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
5372 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
5373 0x0E, 0x1E, 0x0F, 0x1F));
5379 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
5380 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
5381 0x0E, 0x1E, 0x0F, 0x1F));
5387 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5388 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5389 0x0E, 0x0F, 0x1E, 0x1F));
5395 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5396 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5397 0x0E, 0x0F, 0x1E, 0x1F));
5403 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5404 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5405 0x0E, 0x0F, 0x1E, 0x1F));
5411 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5412 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5413 0x0E, 0x0F, 0x1E, 0x1F));
5419 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5420 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5421 0x1C, 0x1D, 0x1E, 0x1F));
5427 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5428 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5429 0x1C, 0x1D, 0x1E, 0x1F));
5433 vector
bool int __b) {
5435 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5436 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5437 0x1C, 0x1D, 0x1E, 0x1F));
5443 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5444 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5445 0x1C, 0x1D, 0x1E, 0x1F));
5452 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5453 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5454 0x1C, 0x1D, 0x1E, 0x1F));
5459 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5460 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5461 0x1C, 0x1D, 0x1E, 0x1F));
5466 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5467 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5468 0x1C, 0x1D, 0x1E, 0x1F));
5470 static __inline__ vector
unsigned long long __ATTRS_o_ai
5473 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5474 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5475 0x1C, 0x1D, 0x1E, 0x1F));
5477 static __inline__ vector
unsigned long long __ATTRS_o_ai
5480 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5481 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5482 0x1C, 0x1D, 0x1E, 0x1F));
5484 static __inline__ vector
unsigned long long __ATTRS_o_ai
5487 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5488 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5489 0x1C, 0x1D, 0x1E, 0x1F));
5494 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5495 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5496 0x1C, 0x1D, 0x1E, 0x1F));
5499 vector
double __b) {
5501 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5502 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5503 0x1C, 0x1D, 0x1E, 0x1F));
5508 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5509 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5510 0x1C, 0x1D, 0x1E, 0x1F));
5515 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D,
5516 0x0E, 0x0F, 0x18, 0X19, 0x1A, 0x1B,
5517 0x1C, 0x1D, 0x1E, 0x1F));
5523 #define __builtin_altivec_vmrglb vec_vmrglb
5528 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
5529 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
5530 0x0E, 0x1E, 0x0F, 0x1F));
5536 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
5537 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
5538 0x0E, 0x1E, 0x0F, 0x1F));
5544 (vector
unsigned char)(0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A,
5545 0x0B, 0x1B, 0x0C, 0x1C, 0x0D, 0x1D,
5546 0x0E, 0x1E, 0x0F, 0x1F));
5551 #define __builtin_altivec_vmrglh vec_vmrglh
5556 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5557 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5558 0x0E, 0x0F, 0x1E, 0x1F));
5564 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5565 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5566 0x0E, 0x0F, 0x1E, 0x1F));
5572 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5573 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5574 0x0E, 0x0F, 0x1E, 0x1F));
5580 (vector
unsigned char)(0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B,
5581 0x1A, 0x1B, 0x0C, 0x0D, 0x1C, 0x1D,
5582 0x0E, 0x0F, 0x1E, 0x1F));
5587 #define __builtin_altivec_vmrglw vec_vmrglw
5592 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5593 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5594 0x1C, 0x1D, 0x1E, 0x1F));
5600 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5601 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5602 0x1C, 0x1D, 0x1E, 0x1F));
5606 vector
bool int __b) {
5608 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5609 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5610 0x1C, 0x1D, 0x1E, 0x1F));
5616 (vector
unsigned char)(0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19,
5617 0x1A, 0x1B, 0x0C, 0x0D, 0x0E, 0x0F,
5618 0x1C, 0x1D, 0x1E, 0x1F));
5621 #ifdef __POWER8_VECTOR__
5624 static __inline__ vector
bool int __ATTRS_o_ai vec_mergee(vector
bool int __a,
5625 vector
bool int __b) {
5627 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5628 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5629 0x18, 0x19, 0x1A, 0x1B));
5633 vec_mergee(vector
signed int __a, vector
signed int __b) {
5635 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5636 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5637 0x18, 0x19, 0x1A, 0x1B));
5641 vec_mergee(vector
unsigned int __a, vector
unsigned int __b) {
5643 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5644 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5645 0x18, 0x19, 0x1A, 0x1B));
5649 vec_mergee(vector
bool long long __a, vector
bool long long __b) {
5654 vec_mergee(vector
signed long long __a, vector
signed long long __b) {
5658 static __inline__ vector
unsigned long long __ATTRS_o_ai
5659 vec_mergee(vector
unsigned long long __a, vector
unsigned long long __b) {
5664 vec_mergee(vector
float __a, vector
float __b) {
5666 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x10, 0x11,
5667 0x12, 0x13, 0x08, 0x09, 0x0A, 0x0B,
5668 0x18, 0x19, 0x1A, 0x1B));
5672 vec_mergee(vector
double __a, vector
double __b) {
5678 static __inline__ vector
bool int __ATTRS_o_ai vec_mergeo(vector
bool int __a,
5679 vector
bool int __b) {
5681 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5682 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5683 0x1C, 0x1D, 0x1E, 0x1F));
5687 vec_mergeo(vector
signed int __a, vector
signed int __b) {
5689 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5690 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5691 0x1C, 0x1D, 0x1E, 0x1F));
5695 vec_mergeo(vector
unsigned int __a, vector
unsigned int __b) {
5697 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5698 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5699 0x1C, 0x1D, 0x1E, 0x1F));
5703 vec_mergeo(vector
bool long long __a, vector
bool long long __b) {
5708 vec_mergeo(vector
signed long long __a, vector
signed long long __b) {
5712 static __inline__ vector
unsigned long long __ATTRS_o_ai
5713 vec_mergeo(vector
unsigned long long __a, vector
unsigned long long __b) {
5718 vec_mergeo(vector
float __a, vector
float __b) {
5720 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x14, 0x15,
5721 0x16, 0x17, 0x0C, 0x0D, 0x0E, 0x0F,
5722 0x1C, 0x1D, 0x1E, 0x1F));
5726 vec_mergeo(vector
double __a, vector
double __b) {
5734 static __inline__ vector
unsigned short __attribute__((__always_inline__))
5736 return __builtin_altivec_mfvscr();
5743 return __builtin_altivec_vminsb(
__a,
__b);
5748 return __builtin_altivec_vminsb((vector
signed char)
__a,
__b);
5753 return __builtin_altivec_vminsb(
__a, (vector
signed char)
__b);
5758 return __builtin_altivec_vminub(
__a,
__b);
5763 return __builtin_altivec_vminub((vector
unsigned char)
__a,
__b);
5768 return __builtin_altivec_vminub(
__a, (vector
unsigned char)
__b);
5773 return __builtin_altivec_vminsh(
__a,
__b);
5778 return __builtin_altivec_vminsh((vector
short)
__a,
__b);
5782 vector
bool short __b) {
5783 return __builtin_altivec_vminsh(
__a, (vector
short)
__b);
5788 return __builtin_altivec_vminuh(
__a,
__b);
5793 return __builtin_altivec_vminuh((vector
unsigned short)
__a,
__b);
5798 return __builtin_altivec_vminuh(
__a, (vector
unsigned short)
__b);
5803 return __builtin_altivec_vminsw(
__a,
__b);
5808 return __builtin_altivec_vminsw((vector
int)
__a,
__b);
5812 vector
bool int __b) {
5813 return __builtin_altivec_vminsw(
__a, (vector
int)
__b);
5818 return __builtin_altivec_vminuw(
__a,
__b);
5823 return __builtin_altivec_vminuw((vector
unsigned int)
__a,
__b);
5828 return __builtin_altivec_vminuw(
__a, (vector
unsigned int)
__b);
5831 #ifdef __POWER8_VECTOR__
5833 vec_min(vector
signed long long __a, vector
signed long long __b) {
5834 return __builtin_altivec_vminsd(
__a,
__b);
5838 vec_min(vector
bool long long __a, vector
signed long long __b) {
5839 return __builtin_altivec_vminsd((vector
signed long long)
__a,
__b);
5843 vec_min(vector
signed long long __a, vector
bool long long __b) {
5844 return __builtin_altivec_vminsd(
__a, (vector
signed long long)
__b);
5847 static __inline__ vector
unsigned long long __ATTRS_o_ai
5848 vec_min(vector
unsigned long long __a, vector
unsigned long long __b) {
5849 return __builtin_altivec_vminud(
__a,
__b);
5852 static __inline__ vector
unsigned long long __ATTRS_o_ai
5853 vec_min(vector
bool long long __a, vector
unsigned long long __b) {
5854 return __builtin_altivec_vminud((vector
unsigned long long)
__a,
__b);
5857 static __inline__ vector
unsigned long long __ATTRS_o_ai
5858 vec_min(vector
unsigned long long __a, vector
bool long long __b) {
5859 return __builtin_altivec_vminud(
__a, (vector
unsigned long long)
__b);
5866 return __builtin_vsx_xvminsp(
__a,
__b);
5868 return __builtin_altivec_vminfp(
__a,
__b);
5874 vector
double __b) {
5875 return __builtin_vsx_xvmindp(
__a,
__b);
5883 return __builtin_altivec_vminsb(
__a,
__b);
5888 return __builtin_altivec_vminsb((vector
signed char)
__a,
__b);
5893 return __builtin_altivec_vminsb(
__a, (vector
signed char)
__b);
5900 return __builtin_altivec_vminub(
__a,
__b);
5905 return __builtin_altivec_vminub((vector
unsigned char)
__a,
__b);
5910 return __builtin_altivec_vminub(
__a, (vector
unsigned char)
__b);
5917 return __builtin_altivec_vminsh(
__a,
__b);
5922 return __builtin_altivec_vminsh((vector
short)
__a,
__b);
5926 vector
bool short __b) {
5927 return __builtin_altivec_vminsh(
__a, (vector
short)
__b);
5934 return __builtin_altivec_vminuh(
__a,
__b);
5939 return __builtin_altivec_vminuh((vector
unsigned short)
__a,
__b);
5944 return __builtin_altivec_vminuh(
__a, (vector
unsigned short)
__b);
5951 return __builtin_altivec_vminsw(
__a,
__b);
5956 return __builtin_altivec_vminsw((vector
int)
__a,
__b);
5960 vector
bool int __b) {
5961 return __builtin_altivec_vminsw(
__a, (vector
int)
__b);
5968 return __builtin_altivec_vminuw(
__a,
__b);
5973 return __builtin_altivec_vminuw((vector
unsigned int)
__a,
__b);
5978 return __builtin_altivec_vminuw(
__a, (vector
unsigned int)
__b);
5983 static __inline__ vector
float __attribute__((__always_inline__))
5984 vec_vminfp(vector
float __a, vector
float __b) {
5986 return __builtin_vsx_xvminsp(
__a,
__b);
5988 return __builtin_altivec_vminfp(
__a,
__b);
5994 #define __builtin_altivec_vmladduhm vec_mladd
6003 vector
short __a, vector
unsigned short __b, vector
unsigned short __c) {
6004 return __a * (vector short)
__b + (vector
short)
__c;
6015 vector
unsigned short __c) {
6028 vector
short __a, vector
unsigned short __b, vector
unsigned short __c) {
6029 return __a * (vector short)
__b + (vector
short)
__c;
6039 vector
unsigned short __c) {
6045 static __inline__ vector
short __attribute__((__always_inline__))
6046 vec_mradds(vector
short __a, vector
short __b, vector
short __c) {
6047 return __builtin_altivec_vmhraddshs(
__a,
__b,
__c);
6052 static __inline__ vector
short __attribute__((__always_inline__))
6053 vec_vmhraddshs(vector
short __a, vector
short __b, vector
short __c) {
6054 return __builtin_altivec_vmhraddshs(
__a,
__b,
__c);
6060 vector
unsigned char __b,
6062 return __builtin_altivec_vmsummbm(
__a,
__b,
__c);
6067 vector
unsigned int __c) {
6068 return __builtin_altivec_vmsumubm(
__a,
__b,
__c);
6074 return __builtin_altivec_vmsumshm(
__a,
__b,
__c);
6079 vector
unsigned int __c) {
6080 return __builtin_altivec_vmsumuhm(
__a,
__b,
__c);
6085 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
6086 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
6087 vec_msumc(vector
unsigned long long __a, vector
unsigned long long __b,
6088 vector
unsigned __int128
__c) {
6089 return __builtin_altivec_vmsumcud(
__a,
__b,
__c);
6095 static __inline__ vector
int __attribute__((__always_inline__))
6096 vec_vmsummbm(vector
signed char __a, vector
unsigned char __b, vector
int __c) {
6097 return __builtin_altivec_vmsummbm(
__a,
__b,
__c);
6102 static __inline__ vector
unsigned int __attribute__((__always_inline__))
6103 vec_vmsumubm(vector
unsigned char __a, vector
unsigned char __b,
6104 vector
unsigned int __c) {
6105 return __builtin_altivec_vmsumubm(
__a,
__b,
__c);
6110 static __inline__ vector
int __attribute__((__always_inline__))
6111 vec_vmsumshm(vector
short __a, vector
short __b, vector
int __c) {
6112 return __builtin_altivec_vmsumshm(
__a,
__b,
__c);
6117 static __inline__ vector
unsigned int __attribute__((__always_inline__))
6118 vec_vmsumuhm(vector
unsigned short __a, vector
unsigned short __b,
6119 vector
unsigned int __c) {
6120 return __builtin_altivec_vmsumuhm(
__a,
__b,
__c);
6128 return __builtin_altivec_vmsumshs(
__a,
__b,
__c);
6133 vector
unsigned int __c) {
6134 return __builtin_altivec_vmsumuhs(
__a,
__b,
__c);
6139 static __inline__ vector
int __attribute__((__always_inline__))
6140 vec_vmsumshs(vector
short __a, vector
short __b, vector
int __c) {
6141 return __builtin_altivec_vmsumshs(
__a,
__b,
__c);
6146 static __inline__ vector
unsigned int __attribute__((__always_inline__))
6147 vec_vmsumuhs(vector
unsigned short __a, vector
unsigned short __b,
6148 vector
unsigned int __c) {
6149 return __builtin_altivec_vmsumuhs(
__a,
__b,
__c);
6155 __builtin_altivec_mtvscr((vector
int)
__a);
6159 __builtin_altivec_mtvscr((vector
int)
__a);
6163 __builtin_altivec_mtvscr((vector
int)
__a);
6167 __builtin_altivec_mtvscr((vector
int)
__a);
6171 __builtin_altivec_mtvscr((vector
int)
__a);
6175 __builtin_altivec_mtvscr((vector
int)
__a);
6179 __builtin_altivec_mtvscr((vector
int)
__a);
6183 __builtin_altivec_mtvscr((vector
int)
__a);
6187 __builtin_altivec_mtvscr((vector
int)
__a);
6191 __builtin_altivec_mtvscr((vector
int)
__a);
6195 __builtin_altivec_mtvscr((vector
int)
__a);
6236 vec_mul(vector
signed long long __a, vector
signed long long __b) {
6240 static __inline__ vector
unsigned long long __ATTRS_o_ai
6241 vec_mul(vector
unsigned long long __a, vector
unsigned long long __b) {
6253 vector
double __b) {
6264 vector
signed char __b) {
6265 #ifdef __LITTLE_ENDIAN__
6266 return __builtin_altivec_vmulosb(
__a,
__b);
6268 return __builtin_altivec_vmulesb(
__a,
__b);
6274 #ifdef __LITTLE_ENDIAN__
6275 return __builtin_altivec_vmuloub(
__a,
__b);
6277 return __builtin_altivec_vmuleub(
__a,
__b);
6283 #ifdef __LITTLE_ENDIAN__
6284 return __builtin_altivec_vmulosh(
__a,
__b);
6286 return __builtin_altivec_vmulesh(
__a,
__b);
6292 #ifdef __LITTLE_ENDIAN__
6293 return __builtin_altivec_vmulouh(
__a,
__b);
6295 return __builtin_altivec_vmuleuh(
__a,
__b);
6299 #ifdef __POWER8_VECTOR__
6302 #ifdef __LITTLE_ENDIAN__
6303 return __builtin_altivec_vmulosw(
__a,
__b);
6305 return __builtin_altivec_vmulesw(
__a,
__b);
6309 static __inline__ vector
unsigned long long __ATTRS_o_ai
6311 #ifdef __LITTLE_ENDIAN__
6312 return __builtin_altivec_vmulouw(
__a,
__b);
6314 return __builtin_altivec_vmuleuw(
__a,
__b);
6319 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
6321 vec_mule(vector
signed long long __a, vector
signed long long __b) {
6322 #ifdef __LITTLE_ENDIAN__
6323 return __builtin_altivec_vmulosd(
__a,
__b);
6325 return __builtin_altivec_vmulesd(
__a,
__b);
6329 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
6330 vec_mule(vector
unsigned long long __a, vector
unsigned long long __b) {
6331 #ifdef __LITTLE_ENDIAN__
6332 return __builtin_altivec_vmuloud(
__a,
__b);
6334 return __builtin_altivec_vmuleud(
__a,
__b);
6341 static __inline__ vector
short __attribute__((__always_inline__))
6342 vec_vmulesb(vector
signed char __a, vector
signed char __b) {
6343 #ifdef __LITTLE_ENDIAN__
6344 return __builtin_altivec_vmulosb(
__a,
__b);
6346 return __builtin_altivec_vmulesb(
__a,
__b);
6352 static __inline__ vector
unsigned short __attribute__((__always_inline__))
6353 vec_vmuleub(vector
unsigned char __a, vector
unsigned char __b) {
6354 #ifdef __LITTLE_ENDIAN__
6355 return __builtin_altivec_vmuloub(
__a,
__b);
6357 return __builtin_altivec_vmuleub(
__a,
__b);
6363 static __inline__ vector
int __attribute__((__always_inline__))
6364 vec_vmulesh(vector
short __a, vector
short __b) {
6365 #ifdef __LITTLE_ENDIAN__
6366 return __builtin_altivec_vmulosh(
__a,
__b);
6368 return __builtin_altivec_vmulesh(
__a,
__b);
6374 static __inline__ vector
unsigned int __attribute__((__always_inline__))
6375 vec_vmuleuh(vector
unsigned short __a, vector
unsigned short __b) {
6376 #ifdef __LITTLE_ENDIAN__
6377 return __builtin_altivec_vmulouh(
__a,
__b);
6379 return __builtin_altivec_vmuleuh(
__a,
__b);
6385 #ifdef __POWER10_VECTOR__
6387 vec_mulh(vector
signed int __a, vector
signed int __b) {
6388 return __builtin_altivec_vmulhsw(
__a,
__b);
6392 vec_mulh(vector
unsigned int __a, vector
unsigned int __b) {
6393 return __builtin_altivec_vmulhuw(
__a,
__b);
6397 vec_mulh(vector
signed long long __a, vector
signed long long __b) {
6398 return __builtin_altivec_vmulhsd(
__a,
__b);
6401 static __inline__ vector
unsigned long long __ATTRS_o_ai
6402 vec_mulh(vector
unsigned long long __a, vector
unsigned long long __b) {
6403 return __builtin_altivec_vmulhud(
__a,
__b);
6410 vector
signed char __b) {
6411 #ifdef __LITTLE_ENDIAN__
6412 return __builtin_altivec_vmulesb(
__a,
__b);
6414 return __builtin_altivec_vmulosb(
__a,
__b);
6420 #ifdef __LITTLE_ENDIAN__
6421 return __builtin_altivec_vmuleub(
__a,
__b);
6423 return __builtin_altivec_vmuloub(
__a,
__b);
6429 #ifdef __LITTLE_ENDIAN__
6430 return __builtin_altivec_vmulesh(
__a,
__b);
6432 return __builtin_altivec_vmulosh(
__a,
__b);
6438 #ifdef __LITTLE_ENDIAN__
6439 return __builtin_altivec_vmuleuh(
__a,
__b);
6441 return __builtin_altivec_vmulouh(
__a,
__b);
6445 #ifdef __POWER8_VECTOR__
6448 #ifdef __LITTLE_ENDIAN__
6449 return __builtin_altivec_vmulesw(
__a,
__b);
6451 return __builtin_altivec_vmulosw(
__a,
__b);
6455 static __inline__ vector
unsigned long long __ATTRS_o_ai
6457 #ifdef __LITTLE_ENDIAN__
6458 return __builtin_altivec_vmuleuw(
__a,
__b);
6460 return __builtin_altivec_vmulouw(
__a,
__b);
6465 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
6467 vec_mulo(vector
signed long long __a, vector
signed long long __b) {
6468 #ifdef __LITTLE_ENDIAN__
6469 return __builtin_altivec_vmulesd(
__a,
__b);
6471 return __builtin_altivec_vmulosd(
__a,
__b);
6475 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
6476 vec_mulo(vector
unsigned long long __a, vector
unsigned long long __b) {
6477 #ifdef __LITTLE_ENDIAN__
6478 return __builtin_altivec_vmuleud(
__a,
__b);
6480 return __builtin_altivec_vmuloud(
__a,
__b);
6487 static __inline__ vector
short __attribute__((__always_inline__))
6488 vec_vmulosb(vector
signed char __a, vector
signed char __b) {
6489 #ifdef __LITTLE_ENDIAN__
6490 return __builtin_altivec_vmulesb(
__a,
__b);
6492 return __builtin_altivec_vmulosb(
__a,
__b);
6498 static __inline__ vector
unsigned short __attribute__((__always_inline__))
6499 vec_vmuloub(vector
unsigned char __a, vector
unsigned char __b) {
6500 #ifdef __LITTLE_ENDIAN__
6501 return __builtin_altivec_vmuleub(
__a,
__b);
6503 return __builtin_altivec_vmuloub(
__a,
__b);
6509 static __inline__ vector
int __attribute__((__always_inline__))
6510 vec_vmulosh(vector
short __a, vector
short __b) {
6511 #ifdef __LITTLE_ENDIAN__
6512 return __builtin_altivec_vmulesh(
__a,
__b);
6514 return __builtin_altivec_vmulosh(
__a,
__b);
6520 static __inline__ vector
unsigned int __attribute__((__always_inline__))
6521 vec_vmulouh(vector
unsigned short __a, vector
unsigned short __b) {
6522 #ifdef __LITTLE_ENDIAN__
6523 return __builtin_altivec_vmuleuh(
__a,
__b);
6525 return __builtin_altivec_vmulouh(
__a,
__b);
6531 #ifdef __POWER8_VECTOR__
6533 vec_nand(vector
signed char __a, vector
signed char __b) {
6538 vec_nand(vector
signed char __a, vector
bool char __b) {
6539 return ~(
__a & (vector
signed char)
__b);
6543 vec_nand(vector
bool char __a, vector
signed char __b) {
6544 return (vector
signed char)~(
__a & (vector
bool char)
__b);
6548 vec_nand(vector
unsigned char __a, vector
unsigned char __b) {
6553 vec_nand(vector
unsigned char __a, vector
bool char __b) {
6554 return ~(
__a & (vector
unsigned char)
__b);
6558 vec_nand(vector
bool char __a, vector
unsigned char __b) {
6559 return (vector
unsigned char)~(
__a & (vector
bool char)
__b);
6562 static __inline__ vector
bool char __ATTRS_o_ai vec_nand(vector
bool char __a,
6563 vector
bool char __b) {
6568 vec_nand(vector
signed short __a, vector
signed short __b) {
6573 vec_nand(vector
signed short __a, vector
bool short __b) {
6574 return ~(
__a & (vector
signed short)
__b);
6578 vec_nand(vector
bool short __a, vector
signed short __b) {
6579 return (vector
signed short)~(
__a & (vector
bool short)
__b);
6583 vec_nand(vector
unsigned short __a, vector
unsigned short __b) {
6588 vec_nand(vector
unsigned short __a, vector
bool short __b) {
6589 return ~(
__a & (vector
unsigned short)
__b);
6593 vec_nand(vector
bool short __a, vector
bool short __b) {
6598 vec_nand(vector
signed int __a, vector
signed int __b) {
6602 static __inline__ vector
signed int __ATTRS_o_ai vec_nand(vector
signed int __a,
6603 vector
bool int __b) {
6608 vec_nand(vector
bool int __a, vector
signed int __b) {
6609 return (vector
signed int)~(
__a & (vector
bool int)
__b);
6613 vec_nand(vector
unsigned int __a, vector
unsigned int __b) {
6618 vec_nand(vector
unsigned int __a, vector
bool int __b) {
6619 return ~(
__a & (vector
unsigned int)
__b);
6623 vec_nand(vector
bool int __a, vector
unsigned int __b) {
6624 return (vector
unsigned int)~(
__a & (vector
bool int)
__b);
6627 static __inline__ vector
bool int __ATTRS_o_ai vec_nand(vector
bool int __a,
6628 vector
bool int __b) {
6633 vec_nand(vector
float __a, vector
float __b) {
6634 return (vector
float)(~((vector
unsigned int)
__a &
6635 (vector
unsigned int)
__b));
6639 vec_nand(vector
signed long long __a, vector
signed long long __b) {
6644 vec_nand(vector
signed long long __a, vector
bool long long __b) {
6645 return ~(
__a & (vector
signed long long)
__b);
6649 vec_nand(vector
bool long long __a, vector
signed long long __b) {
6650 return (vector
signed long long)~(
__a & (vector
bool long long)
__b);
6653 static __inline__ vector
unsigned long long __ATTRS_o_ai
6654 vec_nand(vector
unsigned long long __a, vector
unsigned long long __b) {
6658 static __inline__ vector
unsigned long long __ATTRS_o_ai
6659 vec_nand(vector
unsigned long long __a, vector
bool long long __b) {
6660 return ~(
__a & (vector
unsigned long long)
__b);
6663 static __inline__ vector
unsigned long long __ATTRS_o_ai
6664 vec_nand(vector
bool long long __a, vector
unsigned long long __b) {
6665 return (vector
unsigned long long)~(
__a & (vector
bool long long)
__b);
6669 vec_nand(vector
bool long long __a, vector
bool long long __b) {
6674 vec_nand(vector
double __a, vector
double __b) {
6675 return (vector
double)(~((vector
unsigned long long)
__a &
6676 (vector
unsigned long long)
__b));
6684 static __inline__ vector
float __ATTRS_o_ai vec_nmadd(vector
float __a,
6687 return __builtin_vsx_xvnmaddasp(
__a,
__b,
__c);
6690 static __inline__ vector
double __ATTRS_o_ai vec_nmadd(vector
double __a,
6692 vector
double __c) {
6693 return __builtin_vsx_xvnmaddadp(
__a,
__b,
__c);
6703 return __builtin_vsx_xvnmsubasp(
__a,
__b,
__c);
6705 return __builtin_altivec_vnmsubfp(
__a,
__b,
__c);
6712 vector
double __c) {
6713 return __builtin_vsx_xvnmsubadp(
__a,
__b,
__c);
6719 static __inline__ vector
float __attribute__((__always_inline__))
6720 vec_vnmsubfp(vector
float __a, vector
float __b, vector
float __c) {
6721 return __builtin_altivec_vnmsubfp(
__a,
__b,
__c);
6726 #define __builtin_altivec_vnor vec_nor
6739 vector
bool char __b) {
6769 vector
bool int __b) {
6775 vector
unsigned int __res =
6776 ~((vector
unsigned int)
__a | (vector
unsigned int)
__b);
6777 return (vector
float)__res;
6782 vector
double __b) {
6783 vector
unsigned long long __res =
6784 ~((vector
unsigned long long)
__a | (vector
unsigned long long)
__b);
6785 return (vector
double)__res;
6802 vector
bool char __b) {
6832 vector
bool int __b) {
6838 vector
unsigned int __res =
6839 ~((vector
unsigned int)
__a | (vector
unsigned int)
__b);
6840 return (vector
float)__res;
6845 vec_nor(vector
signed long long __a, vector
signed long long __b) {
6849 static __inline__ vector
unsigned long long __ATTRS_o_ai
6850 vec_nor(vector
unsigned long long __a, vector
unsigned long long __b) {
6855 vec_nor(vector
bool long long __a, vector
bool long long __b) {
6862 #define __builtin_altivec_vor vec_or
6871 return (vector
signed char)
__a |
__b;
6875 vector
bool char __b) {
6876 return __a | (vector
signed char)
__b;
6886 return (vector
unsigned char)
__a |
__b;
6891 return __a | (vector
unsigned char)
__b;
6895 vector
bool char __b) {
6906 return (vector
short)
__a |
__b;
6910 vector
bool short __b) {
6911 return __a | (vector short)
__b;
6921 return (vector
unsigned short)
__a |
__b;
6926 return __a | (vector
unsigned short)
__b;
6930 vector
bool short __b) {
6941 return (vector
int)
__a |
__b;
6945 vector
bool int __b) {
6956 return (vector
unsigned int)
__a |
__b;
6965 vector
bool int __b) {
6971 vector
unsigned int __res =
6972 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6973 return (vector
float)__res;
6978 vector
unsigned int __res =
6979 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6980 return (vector
float)__res;
6984 vector
bool int __b) {
6985 vector
unsigned int __res =
6986 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
6987 return (vector
float)__res;
6992 vector
double __b) {
6993 return (vector
double)((vector
unsigned long long)
__a |
6994 (vector
unsigned long long)
__b);
6998 vector
bool long long __b) {
6999 return (vector
double)((vector
unsigned long long)
__a |
7000 (vector
unsigned long long)
__b);
7004 vector
double __b) {
7005 return (vector
double)((vector
unsigned long long)
__a |
7006 (vector
unsigned long long)
__b);
7010 vec_or(vector
signed long long __a, vector
signed long long __b) {
7015 vec_or(vector
bool long long __a, vector
signed long long __b) {
7016 return (vector
signed long long)
__a |
__b;
7020 vec_or(vector
signed long long __a, vector
bool long long __b) {
7021 return __a | (vector
signed long long)
__b;
7024 static __inline__ vector
unsigned long long __ATTRS_o_ai
7025 vec_or(vector
unsigned long long __a, vector
unsigned long long __b) {
7029 static __inline__ vector
unsigned long long __ATTRS_o_ai
7030 vec_or(vector
bool long long __a, vector
unsigned long long __b) {
7031 return (vector
unsigned long long)
__a |
__b;
7034 static __inline__ vector
unsigned long long __ATTRS_o_ai
7035 vec_or(vector
unsigned long long __a, vector
bool long long __b) {
7036 return __a | (vector
unsigned long long)
__b;
7040 vec_or(vector
bool long long __a, vector
bool long long __b) {
7045 #ifdef __POWER8_VECTOR__
7047 vec_orc(vector
signed char __a, vector
signed char __b) {
7052 vec_orc(vector
signed char __a, vector
bool char __b) {
7053 return __a | (vector
signed char)~
__b;
7057 vec_orc(vector
bool char __a, vector
signed char __b) {
7058 return (vector
signed char)(
__a | (vector
bool char)~
__b);
7062 vec_orc(vector
unsigned char __a, vector
unsigned char __b) {
7067 vec_orc(vector
unsigned char __a, vector
bool char __b) {
7068 return __a | (vector
unsigned char)~
__b;
7072 vec_orc(vector
bool char __a, vector
unsigned char __b) {
7073 return (vector
unsigned char)(
__a | (vector
bool char)~
__b);
7076 static __inline__ vector
bool char __ATTRS_o_ai vec_orc(vector
bool char __a,
7077 vector
bool char __b) {
7082 vec_orc(vector
signed short __a, vector
signed short __b) {
7087 vec_orc(vector
signed short __a, vector
bool short __b) {
7088 return __a | (vector
signed short)~
__b;
7092 vec_orc(vector
bool short __a, vector
signed short __b) {
7093 return (vector
signed short)(
__a | (vector
bool short)~
__b);
7097 vec_orc(vector
unsigned short __a, vector
unsigned short __b) {
7102 vec_orc(vector
unsigned short __a, vector
bool short __b) {
7103 return __a | (vector
unsigned short)~
__b;
7107 vec_orc(vector
bool short __a, vector
unsigned short __b) {
7108 return (vector
unsigned short)(
__a | (vector
bool short)~
__b);
7112 vec_orc(vector
bool short __a, vector
bool short __b) {
7117 vec_orc(vector
signed int __a, vector
signed int __b) {
7121 static __inline__ vector
signed int __ATTRS_o_ai vec_orc(vector
signed int __a,
7122 vector
bool int __b) {
7127 vec_orc(vector
bool int __a, vector
signed int __b) {
7128 return (vector
signed int)(
__a | (vector
bool int)~
__b);
7132 vec_orc(vector
unsigned int __a, vector
unsigned int __b) {
7137 vec_orc(vector
unsigned int __a, vector
bool int __b) {
7142 vec_orc(vector
bool int __a, vector
unsigned int __b) {
7143 return (vector
unsigned int)(
__a | (vector
bool int)~
__b);
7146 static __inline__ vector
bool int __ATTRS_o_ai vec_orc(vector
bool int __a,
7147 vector
bool int __b) {
7152 vec_orc(vector
bool int __a, vector
float __b) {
7153 return (vector
float)(
__a | ~(vector
bool int)
__b);
7157 vec_orc(vector
float __a, vector
bool int __b) {
7158 return (vector
float)((vector
bool int)
__a | ~
__b);
7163 return (vector
float)((vector
unsigned int)
__a | ~(vector
unsigned int)
__b);
7167 vec_orc(vector
signed long long __a, vector
signed long long __b) {
7172 vec_orc(vector
signed long long __a, vector
bool long long __b) {
7173 return __a | (vector
signed long long)~
__b;
7177 vec_orc(vector
bool long long __a, vector
signed long long __b) {
7178 return (vector
signed long long)(
__a | (vector
bool long long)~
__b);
7181 static __inline__ vector
unsigned long long __ATTRS_o_ai
7182 vec_orc(vector
unsigned long long __a, vector
unsigned long long __b) {
7186 static __inline__ vector
unsigned long long __ATTRS_o_ai
7187 vec_orc(vector
unsigned long long __a, vector
bool long long __b) {
7188 return __a | (vector
unsigned long long)~
__b;
7191 static __inline__ vector
unsigned long long __ATTRS_o_ai
7192 vec_orc(vector
bool long long __a, vector
unsigned long long __b) {
7193 return (vector
unsigned long long)(
__a | (vector
bool long long)~
__b);
7197 vec_orc(vector
bool long long __a, vector
bool long long __b) {
7202 vec_orc(vector
double __a, vector
bool long long __b) {
7203 return (vector
double)((vector
bool long long)
__a | ~
__b);
7207 vec_orc(vector
bool long long __a, vector
double __b) {
7208 return (vector
double)(
__a | ~(vector
bool long long)
__b);
7211 static __inline__ vector
double __ATTRS_o_ai vec_orc(vector
double __a,
7212 vector
double __b) {
7213 return (vector
double)((vector
unsigned long long)
__a |
7214 ~(vector
unsigned long long)
__b);
7227 return (vector
signed char)
__a |
__b;
7232 return __a | (vector
signed char)
__b;
7242 return (vector
unsigned char)
__a |
__b;
7247 return __a | (vector
unsigned char)
__b;
7251 vector
bool char __b) {
7262 return (vector
short)
__a |
__b;
7266 vector
bool short __b) {
7267 return __a | (vector short)
__b;
7277 return (vector
unsigned short)
__a |
__b;
7282 return __a | (vector
unsigned short)
__b;
7297 return (vector
int)
__a |
__b;
7301 vector
bool int __b) {
7312 return (vector
unsigned int)
__a |
__b;
7321 vector
bool int __b) {
7327 vector
unsigned int __res =
7328 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
7329 return (vector
float)__res;
7334 vector
unsigned int __res =
7335 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
7336 return (vector
float)__res;
7340 vector
bool int __b) {
7341 vector
unsigned int __res =
7342 (vector
unsigned int)
__a | (vector
unsigned int)
__b;
7343 return (vector
float)__res;
7348 vec_vor(vector
signed long long __a, vector
signed long long __b) {
7353 vec_vor(vector
bool long long __a, vector
signed long long __b) {
7354 return (vector
signed long long)
__a |
__b;
7358 vec_vor(vector
signed long long __a, vector
bool long long __b) {
7359 return __a | (vector
signed long long)
__b;
7362 static __inline__ vector
unsigned long long __ATTRS_o_ai
7363 vec_vor(vector
unsigned long long __a, vector
unsigned long long __b) {
7367 static __inline__ vector
unsigned long long __ATTRS_o_ai
7368 vec_vor(vector
bool long long __a, vector
unsigned long long __b) {
7369 return (vector
unsigned long long)
__a |
__b;
7372 static __inline__ vector
unsigned long long __ATTRS_o_ai
7373 vec_vor(vector
unsigned long long __a, vector
bool long long __b) {
7374 return __a | (vector
unsigned long long)
__b;
7378 vec_vor(vector
bool long long __a, vector
bool long long __b) {
7390 #ifdef __LITTLE_ENDIAN__
7391 return (vector
signed char)
vec_perm(
7393 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
7394 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
7396 return (vector
signed char)
vec_perm(
7398 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
7399 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
7405 #ifdef __LITTLE_ENDIAN__
7406 return (vector
unsigned char)
vec_perm(
7408 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
7409 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
7411 return (vector
unsigned char)
vec_perm(
7413 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
7414 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
7420 #ifdef __LITTLE_ENDIAN__
7423 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
7424 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
7428 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
7429 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
7435 #ifdef __LITTLE_ENDIAN__
7438 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
7439 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
7443 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
7444 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7450 #ifdef __LITTLE_ENDIAN__
7451 return (vector
unsigned short)
vec_perm(
7453 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
7454 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
7456 return (vector
unsigned short)
vec_perm(
7458 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
7459 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7464 vector
bool int __b) {
7465 #ifdef __LITTLE_ENDIAN__
7466 return (vector
bool short)
vec_perm(
7468 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
7469 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
7471 return (vector
bool short)
vec_perm(
7473 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
7474 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7480 vec_pack(vector
signed long long __a, vector
signed long long __b) {
7481 #ifdef __LITTLE_ENDIAN__
7482 return (vector
signed int)
vec_perm(
7484 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7485 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7487 return (vector
signed int)
vec_perm(
7489 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7490 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7494 vec_pack(vector
unsigned long long __a, vector
unsigned long long __b) {
7495 #ifdef __LITTLE_ENDIAN__
7496 return (vector
unsigned int)
vec_perm(
7498 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7499 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7501 return (vector
unsigned int)
vec_perm(
7503 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7504 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7510 #ifdef __LITTLE_ENDIAN__
7513 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7514 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7518 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7519 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7525 return (vector
float) (
__a[0],
__a[1],
__b[0],
__b[1]);
7529 #ifdef __POWER9_VECTOR__
7531 vec_pack_to_short_fp32(vector
float __a, vector
float __b) {
7532 vector
float __resa = __builtin_vsx_xvcvsphp(
__a);
7533 vector
float __resb = __builtin_vsx_xvcvsphp(
__b);
7534 #ifdef __LITTLE_ENDIAN__
7535 return (vector
unsigned short)vec_mergee(__resa, __resb);
7537 return (vector
unsigned short)vec_mergeo(__resa, __resb);
7544 #define __builtin_altivec_vpkuhum vec_vpkuhum
7548 #ifdef __LITTLE_ENDIAN__
7549 return (vector
signed char)
vec_perm(
7551 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
7552 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
7554 return (vector
signed char)
vec_perm(
7556 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
7557 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
7563 #ifdef __LITTLE_ENDIAN__
7564 return (vector
unsigned char)
vec_perm(
7566 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
7567 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
7569 return (vector
unsigned char)
vec_perm(
7571 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
7572 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
7578 #ifdef __LITTLE_ENDIAN__
7581 (vector
unsigned char)(0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
7582 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
7586 (vector
unsigned char)(0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
7587 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
7593 #define __builtin_altivec_vpkuwum vec_vpkuwum
7597 #ifdef __LITTLE_ENDIAN__
7600 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
7601 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
7605 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
7606 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7612 #ifdef __LITTLE_ENDIAN__
7613 return (vector
unsigned short)
vec_perm(
7615 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
7616 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
7618 return (vector
unsigned short)
vec_perm(
7620 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
7621 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7627 #ifdef __LITTLE_ENDIAN__
7628 return (vector
bool short)
vec_perm(
7630 (vector
unsigned char)(0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
7631 0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
7633 return (vector
bool short)
vec_perm(
7635 (vector
unsigned char)(0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
7636 0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
7642 #ifdef __POWER8_VECTOR__
7643 #define __builtin_altivec_vpkudum vec_vpkudum
7645 static __inline__ vector
int __ATTRS_o_ai vec_vpkudum(vector
long long __a,
7646 vector
long long __b) {
7647 #ifdef __LITTLE_ENDIAN__
7650 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7651 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7655 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7656 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7661 vec_vpkudum(vector
unsigned long long __a, vector
unsigned long long __b) {
7662 #ifdef __LITTLE_ENDIAN__
7663 return (vector
unsigned int)
vec_perm(
7665 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7666 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7668 return (vector
unsigned int)
vec_perm(
7670 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7671 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7676 vec_vpkudum(vector
bool long long __a, vector
bool long long __b) {
7677 #ifdef __LITTLE_ENDIAN__
7679 (vector
long long)
__a, (vector
long long)
__b,
7680 (vector
unsigned char)(0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
7681 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B));
7684 (vector
long long)
__a, (vector
long long)
__b,
7685 (vector
unsigned char)(0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
7686 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F));
7693 static __inline__ vector pixel
__attribute__((__always_inline__))
7694 vec_packpx(vector
unsigned int __a, vector
unsigned int __b) {
7695 #ifdef __LITTLE_ENDIAN__
7696 return (vector pixel)__builtin_altivec_vpkpx(
__b,
__a);
7698 return (vector pixel)__builtin_altivec_vpkpx(
__a,
__b);
7704 static __inline__ vector pixel
__attribute__((__always_inline__))
7705 vec_vpkpx(vector
unsigned int __a, vector
unsigned int __b) {
7706 #ifdef __LITTLE_ENDIAN__
7707 return (vector pixel)__builtin_altivec_vpkpx(
__b,
__a);
7709 return (vector pixel)__builtin_altivec_vpkpx(
__a,
__b);
7717 #ifdef __LITTLE_ENDIAN__
7718 return __builtin_altivec_vpkshss(
__b,
__a);
7720 return __builtin_altivec_vpkshss(
__a,
__b);
7726 #ifdef __LITTLE_ENDIAN__
7727 return __builtin_altivec_vpkuhus(
__b,
__a);
7729 return __builtin_altivec_vpkuhus(
__a,
__b);
7735 #ifdef __LITTLE_ENDIAN__
7736 return __builtin_altivec_vpkswss(
__b,
__a);
7738 return __builtin_altivec_vpkswss(
__a,
__b);
7744 #ifdef __LITTLE_ENDIAN__
7745 return __builtin_altivec_vpkuwus(
__b,
__a);
7747 return __builtin_altivec_vpkuwus(
__a,
__b);
7751 #ifdef __POWER8_VECTOR__
7753 vector
long long __b) {
7754 #ifdef __LITTLE_ENDIAN__
7755 return __builtin_altivec_vpksdss(
__b,
__a);
7757 return __builtin_altivec_vpksdss(
__a,
__b);
7762 vec_packs(vector
unsigned long long __a, vector
unsigned long long __b) {
7763 #ifdef __LITTLE_ENDIAN__
7764 return __builtin_altivec_vpkudus(
__b,
__a);
7766 return __builtin_altivec_vpkudus(
__a,
__b);
7773 static __inline__ vector
signed char __attribute__((__always_inline__))
7774 vec_vpkshss(vector
short __a, vector
short __b) {
7775 #ifdef __LITTLE_ENDIAN__
7776 return __builtin_altivec_vpkshss(
__b,
__a);
7778 return __builtin_altivec_vpkshss(
__a,
__b);
7784 #ifdef __POWER8_VECTOR__
7785 static __inline__ vector
int __ATTRS_o_ai vec_vpksdss(vector
long long __a,
7786 vector
long long __b) {
7787 #ifdef __LITTLE_ENDIAN__
7788 return __builtin_altivec_vpksdss(
__b,
__a);
7790 return __builtin_altivec_vpksdss(
__a,
__b);
7797 static __inline__ vector
unsigned char __attribute__((__always_inline__))
7798 vec_vpkuhus(vector
unsigned short __a, vector
unsigned short __b) {
7799 #ifdef __LITTLE_ENDIAN__
7800 return __builtin_altivec_vpkuhus(
__b,
__a);
7802 return __builtin_altivec_vpkuhus(
__a,
__b);
7808 #ifdef __POWER8_VECTOR__
7809 static __inline__ vector
unsigned int __attribute__((__always_inline__))
7810 vec_vpkudus(vector
unsigned long long __a, vector
unsigned long long __b) {
7811 #ifdef __LITTLE_ENDIAN__
7812 return __builtin_altivec_vpkudus(
__b,
__a);
7814 return __builtin_altivec_vpkudus(
__a,
__b);
7821 static __inline__ vector
signed short __attribute__((__always_inline__))
7822 vec_vpkswss(vector
int __a, vector
int __b) {
7823 #ifdef __LITTLE_ENDIAN__
7824 return __builtin_altivec_vpkswss(
__b,
__a);
7826 return __builtin_altivec_vpkswss(
__a,
__b);
7832 static __inline__ vector
unsigned short __attribute__((__always_inline__))
7833 vec_vpkuwus(vector
unsigned int __a, vector
unsigned int __b) {
7834 #ifdef __LITTLE_ENDIAN__
7835 return __builtin_altivec_vpkuwus(
__b,
__a);
7837 return __builtin_altivec_vpkuwus(
__a,
__b);
7845 #ifdef __LITTLE_ENDIAN__
7846 return __builtin_altivec_vpkshus(
__b,
__a);
7848 return __builtin_altivec_vpkshus(
__a,
__b);
7854 #ifdef __LITTLE_ENDIAN__
7855 return __builtin_altivec_vpkuhus(
__b,
__a);
7857 return __builtin_altivec_vpkuhus(
__a,
__b);
7863 #ifdef __LITTLE_ENDIAN__
7864 return __builtin_altivec_vpkswus(
__b,
__a);
7866 return __builtin_altivec_vpkswus(
__a,
__b);
7872 #ifdef __LITTLE_ENDIAN__
7873 return __builtin_altivec_vpkuwus(
__b,
__a);
7875 return __builtin_altivec_vpkuwus(
__a,
__b);
7879 #ifdef __POWER8_VECTOR__
7882 #ifdef __LITTLE_ENDIAN__
7883 return __builtin_altivec_vpksdus(
__b,
__a);
7885 return __builtin_altivec_vpksdus(
__a,
__b);
7891 #ifdef __LITTLE_ENDIAN__
7892 return __builtin_altivec_vpkudus(
__b,
__a);
7894 return __builtin_altivec_vpkudus(
__a,
__b);
7903 #ifdef __LITTLE_ENDIAN__
7904 return __builtin_altivec_vpkshus(
__b,
__a);
7906 return __builtin_altivec_vpkshus(
__a,
__b);
7912 #ifdef __LITTLE_ENDIAN__
7913 return __builtin_altivec_vpkuhus(
__b,
__a);
7915 return __builtin_altivec_vpkuhus(
__a,
__b);
7923 #ifdef __LITTLE_ENDIAN__
7924 return __builtin_altivec_vpkswus(
__b,
__a);
7926 return __builtin_altivec_vpkswus(
__a,
__b);
7932 #ifdef __LITTLE_ENDIAN__
7933 return __builtin_altivec_vpkuwus(
__b,
__a);
7935 return __builtin_altivec_vpkuwus(
__a,
__b);
7941 #ifdef __POWER8_VECTOR__
7943 vec_vpksdus(vector
long long __a, vector
long long __b) {
7944 #ifdef __LITTLE_ENDIAN__
7945 return __builtin_altivec_vpksdus(
__b,
__a);
7947 return __builtin_altivec_vpksdus(
__a,
__b);
7963 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
7964 #ifdef __LITTLE_ENDIAN__
7965 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7966 255, 255, 255, 255, 255, 255, 255, 255};
7968 return (vector
signed char)__builtin_altivec_vperm_4si((vector
int)
__b,
7969 (vector
int)
__a, __d);
7971 return (vector
signed char)__builtin_altivec_vperm_4si((vector
int)
__a,
7978 vector
unsigned char __c) {
7979 #ifdef __LITTLE_ENDIAN__
7980 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7981 255, 255, 255, 255, 255, 255, 255, 255};
7983 return (vector
unsigned char)__builtin_altivec_vperm_4si(
7984 (vector
int)
__b, (vector
int)
__a, __d);
7986 return (vector
unsigned char)__builtin_altivec_vperm_4si(
7993 #ifdef __LITTLE_ENDIAN__
7994 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
7995 255, 255, 255, 255, 255, 255, 255, 255};
7997 return (vector
bool char)__builtin_altivec_vperm_4si((vector
int)
__b,
7998 (vector
int)
__a, __d);
8000 return (vector
bool char)__builtin_altivec_vperm_4si((vector
int)
__a,
8006 vector
signed short __b,
8007 vector
unsigned char __c) {
8008 #ifdef __LITTLE_ENDIAN__
8009 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8010 255, 255, 255, 255, 255, 255, 255, 255};
8012 return (vector
signed short)__builtin_altivec_vperm_4si((vector
int)
__b,
8013 (vector
int)
__a, __d);
8015 return (vector
signed short)__builtin_altivec_vperm_4si((vector
int)
__a,
8022 vector
unsigned char __c) {
8023 #ifdef __LITTLE_ENDIAN__
8024 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8025 255, 255, 255, 255, 255, 255, 255, 255};
8027 return (vector
unsigned short)__builtin_altivec_vperm_4si(
8028 (vector
int)
__b, (vector
int)
__a, __d);
8030 return (vector
unsigned short)__builtin_altivec_vperm_4si(
8036 vector
bool short __a, vector
bool short __b, vector
unsigned char __c) {
8037 #ifdef __LITTLE_ENDIAN__
8038 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8039 255, 255, 255, 255, 255, 255, 255, 255};
8041 return (vector
bool short)__builtin_altivec_vperm_4si((vector
int)
__b,
8042 (vector
int)
__a, __d);
8044 return (vector
bool short)__builtin_altivec_vperm_4si((vector
int)
__a,
8051 vector
unsigned char __c) {
8052 #ifdef __LITTLE_ENDIAN__
8053 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8054 255, 255, 255, 255, 255, 255, 255, 255};
8056 return (vector pixel)__builtin_altivec_vperm_4si((vector
int)
__b,
8057 (vector
int)
__a, __d);
8059 return (vector pixel)__builtin_altivec_vperm_4si((vector
int)
__a,
8065 vector
signed int __b,
8066 vector
unsigned char __c) {
8067 #ifdef __LITTLE_ENDIAN__
8068 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8069 255, 255, 255, 255, 255, 255, 255, 255};
8071 return (vector
signed int)__builtin_altivec_vperm_4si(
__b,
__a, __d);
8073 return (vector
signed int)__builtin_altivec_vperm_4si(
__a,
__b,
__c);
8079 vector
unsigned char __c) {
8080 #ifdef __LITTLE_ENDIAN__
8081 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8082 255, 255, 255, 255, 255, 255, 255, 255};
8084 return (vector
unsigned int)__builtin_altivec_vperm_4si((vector
int)
__b,
8085 (vector
int)
__a, __d);
8087 return (vector
unsigned int)__builtin_altivec_vperm_4si((vector
int)
__a,
8094 #ifdef __LITTLE_ENDIAN__
8095 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8096 255, 255, 255, 255, 255, 255, 255, 255};
8098 return (vector
bool int)__builtin_altivec_vperm_4si((vector
int)
__b,
8099 (vector
int)
__a, __d);
8101 return (vector
bool int)__builtin_altivec_vperm_4si((vector
int)
__a,
8108 vector
unsigned char __c) {
8109 #ifdef __LITTLE_ENDIAN__
8110 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8111 255, 255, 255, 255, 255, 255, 255, 255};
8113 return (vector
float)__builtin_altivec_vperm_4si((vector
int)
__b,
8114 (vector
int)
__a, __d);
8116 return (vector
float)__builtin_altivec_vperm_4si((vector
int)
__a,
8123 vec_perm(vector
signed long long __a, vector
signed long long __b,
8124 vector
unsigned char __c) {
8125 #ifdef __LITTLE_ENDIAN__
8126 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8127 255, 255, 255, 255, 255, 255, 255, 255};
8129 return (vector
signed long long)__builtin_altivec_vperm_4si(
8130 (vector
int)
__b, (vector
int)
__a, __d);
8132 return (vector
signed long long)__builtin_altivec_vperm_4si(
8137 static __inline__ vector
unsigned long long __ATTRS_o_ai
8138 vec_perm(vector
unsigned long long __a, vector
unsigned long long __b,
8139 vector
unsigned char __c) {
8140 #ifdef __LITTLE_ENDIAN__
8141 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8142 255, 255, 255, 255, 255, 255, 255, 255};
8144 return (vector
unsigned long long)__builtin_altivec_vperm_4si(
8145 (vector
int)
__b, (vector
int)
__a, __d);
8147 return (vector
unsigned long long)__builtin_altivec_vperm_4si(
8154 vector
unsigned char __c) {
8155 #ifdef __LITTLE_ENDIAN__
8156 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8157 255, 255, 255, 255, 255, 255, 255, 255};
8159 return (vector
bool long long)__builtin_altivec_vperm_4si(
8160 (vector
int)
__b, (vector
int)
__a, __d);
8162 return (vector
bool long long)__builtin_altivec_vperm_4si(
8169 #ifdef __LITTLE_ENDIAN__
8170 vector
unsigned char __d = {255, 255, 255, 255, 255, 255, 255, 255,
8171 255, 255, 255, 255, 255, 255, 255, 255};
8173 return (vector
double)__builtin_altivec_vperm_4si((vector
int)
__b,
8174 (vector
int)
__a, __d);
8176 return (vector
double)__builtin_altivec_vperm_4si((vector
int)
__a,
8185 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
8191 vector
unsigned char __c) {
8196 vector
bool char __a, vector
bool char __b, vector
unsigned char __c) {
8207 vector
unsigned char __c) {
8212 vector
bool short __a, vector
bool short __b, vector
unsigned char __c) {
8223 vector
unsigned char __c) {
8229 vector
unsigned char __c) {
8245 vector
long long __a, vector
long long __b, vector
unsigned char __c) {
8249 static __inline__ vector
unsigned long long __ATTRS_o_ai
8250 vec_vperm(vector
unsigned long long __a, vector
unsigned long long __b,
8251 vector
unsigned char __c) {
8265 return __builtin_vsx_xvresp(
__a);
8267 return __builtin_altivec_vrefp(
__a);
8273 return __builtin_vsx_xvredp(
__a);
8279 static __inline__ vector
float __attribute__((__always_inline__))
8280 vec_vrefp(vector
float __a) {
8281 return __builtin_altivec_vrefp(
__a);
8288 return (vector
signed char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
8293 return (vector
unsigned char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
8297 vector
unsigned short __b) {
8298 return __builtin_altivec_vrlh(
__a,
__b);
8303 return (vector
unsigned short)__builtin_altivec_vrlh((vector
short)
__a,
__b);
8307 vector
unsigned int __b) {
8308 return __builtin_altivec_vrlw(
__a,
__b);
8313 return (vector
unsigned int)__builtin_altivec_vrlw((vector
int)
__a,
__b);
8316 #ifdef __POWER8_VECTOR__
8318 vec_rl(vector
signed long long __a, vector
unsigned long long __b) {
8319 return __builtin_altivec_vrld(
__a,
__b);
8322 static __inline__ vector
unsigned long long __ATTRS_o_ai
8323 vec_rl(vector
unsigned long long __a, vector
unsigned long long __b) {
8324 return (vector
unsigned long long)__builtin_altivec_vrld(
8325 (vector
long long)
__a,
__b);
8329 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
8331 vec_rl(vector
signed __int128
__a, vector
unsigned __int128
__b) {
8332 return (vector
signed __int128)(((vector
unsigned __int128)
__b
8333 << (vector
unsigned __int128)
__a) |
8334 ((vector
unsigned __int128)
__b >>
8336 sizeof(vector
unsigned __int128)) -
8337 (vector
unsigned __int128)
__a)));
8340 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
8341 vec_rl(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
8342 return (
__b <<
__a)|(
__b >> ((__CHAR_BIT__ *
sizeof(vector
unsigned __int128)) -
__a));
8347 #ifdef __POWER9_VECTOR__
8349 vec_rlmi(vector
unsigned int __a, vector
unsigned int __b,
8350 vector
unsigned int __c) {
8351 return __builtin_altivec_vrlwmi(
__a,
__c,
__b);
8354 static __inline__ vector
unsigned long long __ATTRS_o_ai
8355 vec_rlmi(vector
unsigned long long __a, vector
unsigned long long __b,
8356 vector
unsigned long long __c) {
8357 return __builtin_altivec_vrldmi(
__a,
__c,
__b);
8361 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
8362 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
8363 vec_rlmi(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
8364 vector
unsigned __int128
__c) {
8365 return __builtin_altivec_vrlqmi(
__a,
__c,
__b);
8369 vec_rlmi(vector
signed __int128
__a, vector
signed __int128
__b,
8370 vector
signed __int128
__c) {
8371 return (vector
signed __int128)__builtin_altivec_vrlqmi(
8372 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__c,
8373 (vector
unsigned __int128)
__b);
8378 #ifdef __POWER9_VECTOR__
8380 vec_rlnm(vector
unsigned int __a, vector
unsigned int __b,
8381 vector
unsigned int __c) {
8382 vector
unsigned int OneByte = { 0x8, 0x8, 0x8, 0x8 };
8383 return __builtin_altivec_vrlwnm(
__a, ((
__c << OneByte) |
__b));
8386 static __inline__ vector
unsigned long long __ATTRS_o_ai
8387 vec_rlnm(vector
unsigned long long __a, vector
unsigned long long __b,
8388 vector
unsigned long long __c) {
8389 vector
unsigned long long OneByte = { 0x8, 0x8 };
8390 return __builtin_altivec_vrldnm(
__a, ((
__c << OneByte) |
__b));
8394 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
8395 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
8396 vec_rlnm(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
8397 vector
unsigned __int128
__c) {
8399 vector
unsigned char TmpB = (vector
unsigned char)
__b;
8400 vector
unsigned char TmpC = (vector
unsigned char)
__c;
8401 vector
unsigned char MaskAndShift =
8402 #ifdef __LITTLE_ENDIAN__
8403 __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, -1, -1, -1, 16, 0,
8404 1, -1, -1, -1, -1, -1);
8406 __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, 31, 30, 15, -1,
8407 -1, -1, -1, -1, -1, -1, -1);
8409 return __builtin_altivec_vrlqnm(
__a, (vector
unsigned __int128) MaskAndShift);
8413 vec_rlnm(vector
signed __int128
__a, vector
signed __int128
__b,
8414 vector
signed __int128
__c) {
8416 vector
unsigned char TmpB = (vector
unsigned char)
__b;
8417 vector
unsigned char TmpC = (vector
unsigned char)
__c;
8418 vector
unsigned char MaskAndShift =
8419 #ifdef __LITTLE_ENDIAN__
8420 __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, -1, -1, -1, 16, 0,
8421 1, -1, -1, -1, -1, -1);
8423 __builtin_shufflevector(TmpB, TmpC, -1, -1, -1, -1, -1, 31, 30, 15, -1,
8424 -1, -1, -1, -1, -1, -1, -1);
8426 return (vector
signed __int128)__builtin_altivec_vrlqnm(
8427 (vector
unsigned __int128)
__a, (vector
unsigned __int128)MaskAndShift);
8435 return (vector
signed char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
8440 return (vector
unsigned char)__builtin_altivec_vrlb((vector
char)
__a,
__b);
8447 return __builtin_altivec_vrlh(
__a,
__b);
8452 return (vector
unsigned short)__builtin_altivec_vrlh((vector
short)
__a,
__b);
8458 vector
unsigned int __b) {
8459 return __builtin_altivec_vrlw(
__a,
__b);
8464 return (vector
unsigned int)__builtin_altivec_vrlw((vector
int)
__a,
__b);
8470 return __builtin_altivec_vrfin(
__a);
8474 #ifdef __XL_COMPAT_ALTIVEC__
8475 static __inline__ vector
double __ATTRS_o_ai vec_rint(vector
double __a);
8477 double __fpscr = __builtin_readflm();
8478 __builtin_setrnd(0);
8479 vector
double __rounded = vec_rint(
__a);
8480 __builtin_setflm(__fpscr);
8485 return __builtin_vsx_xvrdpi(
__a);
8491 static __inline__ vector
float __ATTRS_o_ai vec_rint(vector
float __a) {
8492 return __builtin_vsx_xvrspic(
__a);
8495 static __inline__ vector
double __ATTRS_o_ai vec_rint(vector
double __a) {
8496 return __builtin_vsx_xvrdpic(
__a);
8501 static __inline__ vector
float __ATTRS_o_ai vec_roundc(vector
float __a) {
8502 return __builtin_vsx_xvrspic(
__a);
8505 static __inline__ vector
double __ATTRS_o_ai vec_roundc(vector
double __a) {
8506 return __builtin_vsx_xvrdpic(
__a);
8511 static __inline__ vector
float __ATTRS_o_ai vec_nearbyint(vector
float __a) {
8512 return __builtin_vsx_xvrspi(
__a);
8515 static __inline__ vector
double __ATTRS_o_ai vec_nearbyint(vector
double __a) {
8516 return __builtin_vsx_xvrdpi(
__a);
8522 static __inline__ vector
float __attribute__((__always_inline__))
8523 vec_vrfin(vector
float __a) {
8524 return __builtin_altivec_vrfin(
__a);
8530 static __inline__ vector
float __ATTRS_o_ai vec_sqrt(vector
float __a) {
8531 return __builtin_vsx_xvsqrtsp(
__a);
8534 static __inline__ vector
double __ATTRS_o_ai vec_sqrt(vector
double __a) {
8535 return __builtin_vsx_xvsqrtdp(
__a);
8543 return __builtin_vsx_xvrsqrtesp(
__a);
8545 return __builtin_altivec_vrsqrtefp(
__a);
8551 return __builtin_vsx_xvrsqrtedp(
__a);
8556 return __builtin_ppc_rsqrtf(
__a);
8561 return __builtin_ppc_rsqrtd(
__a);
8567 static __inline__ __vector
float __attribute__((__always_inline__))
8568 vec_vrsqrtefp(vector
float __a) {
8569 return __builtin_altivec_vrsqrtefp(
__a);
8575 static __inline__
int __ATTRS_o_ai vec_test_swsqrt(vector
double __a) {
8576 return __builtin_vsx_xvtsqrtdp(
__a);
8579 static __inline__
int __ATTRS_o_ai vec_test_swsqrts(vector
float __a) {
8580 return __builtin_vsx_xvtsqrtsp(
__a);
8586 #define __builtin_altivec_vsel_4si vec_sel
8589 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
8590 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
8595 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
8600 vector
unsigned char __c) {
8605 vector
unsigned char __a, vector
unsigned char __b, vector
bool char __c) {
8606 return (
__a & ~(vector
unsigned char)
__c) | (
__b & (vector
unsigned char)
__c);
8611 return (
__a & ~(vector
bool char)
__c) | (
__b & (vector
bool char)
__c);
8615 vector
bool char __b,
8616 vector
bool char __c) {
8622 vector
unsigned short __c) {
8623 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
8628 vector
bool short __c) {
8629 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
8634 vector
unsigned short __c) {
8640 vector
bool short __c) {
8641 return (
__a & ~(vector
unsigned short)
__c) |
8642 (
__b & (vector
unsigned short)
__c);
8646 vector
bool short __a, vector
bool short __b, vector
unsigned short __c) {
8647 return (
__a & ~(vector
bool short)
__c) | (
__b & (vector
bool short)
__c);
8657 vector
unsigned int __c) {
8663 vector
bool int __c) {
8668 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned int __c) {
8674 return (
__a & ~(vector
unsigned int)
__c) | (
__b & (vector
unsigned int)
__c);
8683 vector
bool int __b,
8684 vector
bool int __c) {
8690 vector
unsigned int __c) {
8691 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
8693 return (vector
float)__res;
8698 vector
bool int __c) {
8699 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
8701 return (vector
float)__res;
8707 vector
long long __res = ((vector
long long)
__a & ~(vector
long long)
__c) |
8708 ((vector
long long)
__b & (vector
long long)
__c);
8709 return (vector
double)__res;
8713 vec_sel(vector
double __a, vector
double __b, vector
unsigned long long __c) {
8714 vector
long long __res = ((vector
long long)
__a & ~(vector
long long)
__c) |
8715 ((vector
long long)
__b & (vector
long long)
__c);
8716 return (vector
double)__res;
8720 vec_sel(vector
bool long long __a, vector
bool long long __b,
8721 vector
bool long long __c) {
8726 vec_sel(vector
bool long long __a, vector
bool long long __b,
8727 vector
unsigned long long __c) {
8728 return (
__a & ~(vector
bool long long)
__c) |
8729 (
__b & (vector
bool long long)
__c);
8733 vec_sel(vector
signed long long __a, vector
signed long long __b,
8734 vector
bool long long __c) {
8735 return (
__a & ~(vector
signed long long)
__c) |
8736 (
__b & (vector
signed long long)
__c);
8740 vec_sel(vector
signed long long __a, vector
signed long long __b,
8741 vector
unsigned long long __c) {
8742 return (
__a & ~(vector
signed long long)
__c) |
8743 (
__b & (vector
signed long long)
__c);
8746 static __inline__ vector
unsigned long long __ATTRS_o_ai
8747 vec_sel(vector
unsigned long long __a, vector
unsigned long long __b,
8748 vector
bool long long __c) {
8749 return (
__a & ~(vector
unsigned long long)
__c) |
8750 (
__b & (vector
unsigned long long)
__c);
8753 static __inline__ vector
unsigned long long __ATTRS_o_ai
8754 vec_sel(vector
unsigned long long __a, vector
unsigned long long __b,
8755 vector
unsigned long long __c) {
8763 vector
signed char __a, vector
signed char __b, vector
unsigned char __c) {
8764 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
8769 return (
__a & ~(vector
signed char)
__c) | (
__b & (vector
signed char)
__c);
8774 vector
unsigned char __c) {
8779 vector
unsigned char __a, vector
unsigned char __b, vector
bool char __c) {
8780 return (
__a & ~(vector
unsigned char)
__c) | (
__b & (vector
unsigned char)
__c);
8785 return (
__a & ~(vector
bool char)
__c) | (
__b & (vector
bool char)
__c);
8789 vector
bool char __b,
8790 vector
bool char __c) {
8796 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
8801 vector
bool short __c) {
8802 return (
__a & ~(vector
short)
__c) | (
__b & (vector short)
__c);
8807 vector
unsigned short __c) {
8813 vector
bool short __c) {
8814 return (
__a & ~(vector
unsigned short)
__c) |
8815 (
__b & (vector
unsigned short)
__c);
8819 vector
bool short __a, vector
bool short __b, vector
unsigned short __c) {
8820 return (
__a & ~(vector
bool short)
__c) | (
__b & (vector
bool short)
__c);
8830 vector
unsigned int __c) {
8836 vector
bool int __c) {
8841 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned int __c) {
8846 vector
unsigned int __a, vector
unsigned int __b, vector
bool int __c) {
8847 return (
__a & ~(vector
unsigned int)
__c) | (
__b & (vector
unsigned int)
__c);
8856 vector
bool int __b,
8857 vector
bool int __c) {
8863 vector
unsigned int __c) {
8864 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
8866 return (vector
float)__res;
8871 vector
bool int __c) {
8872 vector
int __res = ((vector
int)
__a & ~(vector
int)
__c) |
8874 return (vector
float)__res;
8884 (vector
unsigned char)(
sizeof(
unsigned char) * __CHAR_BIT__));
8889 return (vector
signed char)
vec_sl((vector
unsigned char)
__a,
__b);
8894 return __a << (
__b % (vector
unsigned short)(
sizeof(
unsigned short) *
8899 vector
unsigned short __b) {
8900 return (vector
short)
vec_sl((vector
unsigned short)
__a,
__b);
8906 (vector
unsigned int)(
sizeof(
unsigned int) * __CHAR_BIT__));
8910 vector
unsigned int __b) {
8911 return (vector
int)
vec_sl((vector
unsigned int)
__a,
__b);
8914 #ifdef __POWER8_VECTOR__
8915 static __inline__ vector
unsigned long long __ATTRS_o_ai
8916 vec_sl(vector
unsigned long long __a, vector
unsigned long long __b) {
8917 return __a << (
__b % (vector
unsigned long long)(
sizeof(
unsigned long long) *
8922 vec_sl(vector
long long __a, vector
unsigned long long __b) {
8923 return (vector
long long)
vec_sl((vector
unsigned long long)
__a,
__b);
8925 #elif defined(__VSX__)
8928 static __inline__ vector
unsigned long long __ATTRS_o_ai
8929 vec_sl(vector
unsigned long long __a, vector
unsigned long long __b) {
8930 __b %= (vector
unsigned long long)(
sizeof(
unsigned long long) * __CHAR_BIT__);
8935 vector
signed long long __rightelt =
8936 (vector
signed long long)__builtin_altivec_vslo((vector
signed int)
__a,
8938 #ifdef __LITTLE_ENDIAN__
8939 __rightelt = (vector
signed long long)__builtin_altivec_vsl(
8940 (vector
signed int)__rightelt,
8943 __rightelt = (vector
signed long long)__builtin_altivec_vsl(
8944 (vector
signed int)__rightelt,
8947 __a = __builtin_shufflevector(
__a,
__a, 1, 0);
8948 __b = __builtin_shufflevector(
__b,
__b, 1, 0);
8949 vector
signed long long __leftelt =
8950 (vector
signed long long)__builtin_altivec_vslo((vector
signed int)
__a,
8952 #ifdef __LITTLE_ENDIAN__
8953 __leftelt = (vector
signed long long)__builtin_altivec_vsl(
8954 (vector
signed int)__leftelt,
8956 return (vector
unsigned long long)__builtin_shufflevector(__rightelt,
8959 __leftelt = (vector
signed long long)__builtin_altivec_vsl(
8960 (vector
signed int)__leftelt,
8962 return (vector
unsigned long long)__builtin_shufflevector(__leftelt,
8968 vec_sl(vector
long long __a, vector
unsigned long long __b) {
8969 return (vector
long long)
vec_sl((vector
unsigned long long)
__a,
__b);
8975 #define __builtin_altivec_vslb vec_vslb
8989 #define __builtin_altivec_vslh vec_vslh
9003 #define __builtin_altivec_vslw vec_vslw
9006 vector
unsigned int __b) {
9017 #define __builtin_altivec_vsldoi_4si vec_sld
9020 vector
signed char __a, vector
signed char __b,
unsigned const int __c) {
9021 unsigned char __d =
__c & 0x0F;
9022 #ifdef __LITTLE_ENDIAN__
9024 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9025 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9026 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9027 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9031 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9032 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9033 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9039 unsigned const int __c) {
9040 unsigned char __d =
__c & 0x0F;
9041 #ifdef __LITTLE_ENDIAN__
9043 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9044 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9045 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9046 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9050 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9051 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9052 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9058 unsigned char __d =
__c & 0x0F;
9059 #ifdef __LITTLE_ENDIAN__
9061 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9062 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9063 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9064 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9068 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9069 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9070 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9075 vector
signed short __a, vector
signed short __b,
unsigned const int __c) {
9076 unsigned char __d =
__c & 0x0F;
9077 #ifdef __LITTLE_ENDIAN__
9079 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9080 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9081 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9082 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9086 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9087 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9088 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9094 unsigned const int __c) {
9095 unsigned char __d =
__c & 0x0F;
9096 #ifdef __LITTLE_ENDIAN__
9098 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9099 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9100 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9101 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9105 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9106 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9107 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9113 unsigned char __d =
__c & 0x0F;
9114 #ifdef __LITTLE_ENDIAN__
9116 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9117 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9118 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9119 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9123 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9124 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9125 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9131 unsigned const int __c) {
9132 unsigned char __d =
__c & 0x0F;
9133 #ifdef __LITTLE_ENDIAN__
9135 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9136 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9137 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9138 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9142 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9143 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9144 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9150 unsigned char __d =
__c & 0x0F;
9151 #ifdef __LITTLE_ENDIAN__
9153 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9154 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9155 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9156 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9160 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9161 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9162 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9167 vector
unsigned int __a, vector
unsigned int __b,
unsigned const int __c) {
9168 unsigned char __d =
__c & 0x0F;
9169 #ifdef __LITTLE_ENDIAN__
9171 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9172 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9173 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9174 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9178 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9179 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9180 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9185 vector
bool int __b,
9186 unsigned const int __c) {
9187 unsigned char __d =
__c & 0x0F;
9188 #ifdef __LITTLE_ENDIAN__
9190 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9191 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9192 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9193 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9197 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9198 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9199 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9205 unsigned const int __c) {
9206 unsigned char __d =
__c & 0x0F;
9207 #ifdef __LITTLE_ENDIAN__
9209 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9210 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9211 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9212 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9216 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9217 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9218 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9224 vec_sld(vector
bool long long __a, vector
bool long long __b,
9225 unsigned const int __c) {
9226 unsigned char __d =
__c & 0x0F;
9227 #ifdef __LITTLE_ENDIAN__
9229 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9230 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9231 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9232 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9236 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9237 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9238 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9243 vec_sld(vector
signed long long __a, vector
signed long long __b,
9244 unsigned const int __c) {
9245 unsigned char __d =
__c & 0x0F;
9246 #ifdef __LITTLE_ENDIAN__
9248 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9249 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9250 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9251 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9255 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9256 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9257 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9261 static __inline__ vector
unsigned long long __ATTRS_o_ai
9262 vec_sld(vector
unsigned long long __a, vector
unsigned long long __b,
9263 unsigned const int __c) {
9264 unsigned char __d =
__c & 0x0F;
9265 #ifdef __LITTLE_ENDIAN__
9267 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9268 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9269 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9270 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9274 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9275 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9276 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9282 unsigned const int __c) {
9283 unsigned char __d =
__c & 0x0F;
9284 #ifdef __LITTLE_ENDIAN__
9286 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9287 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9288 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9289 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9293 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9294 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9295 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9302 vector
signed char __a, vector
signed char __b,
unsigned const int __c) {
9308 unsigned const int __c) {
9313 vector
signed short __a, vector
signed short __b,
unsigned const int __c) {
9319 unsigned const int __c) {
9329 vector
unsigned int __a, vector
unsigned int __b,
unsigned const int __c) {
9334 vector
float __a, vector
float __b,
unsigned const int __c) {
9340 vec_sldw(vector
signed long long __a, vector
signed long long __b,
9341 unsigned const int __c) {
9345 static __inline__ vector
unsigned long long __ATTRS_o_ai
9346 vec_sldw(vector
unsigned long long __a, vector
unsigned long long __b,
9347 unsigned const int __c) {
9352 vector
double __a, vector
double __b,
unsigned const int __c) {
9357 #ifdef __POWER9_VECTOR__
9360 vec_slv(vector
unsigned char __a, vector
unsigned char __b) {
9361 return __builtin_altivec_vslv(
__a,
__b);
9366 vec_srv(vector
unsigned char __a, vector
unsigned char __b) {
9367 return __builtin_altivec_vsrv(
__a,
__b);
9375 unsigned char __d =
__c & 0x0F;
9376 #ifdef __LITTLE_ENDIAN__
9378 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9379 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9380 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9381 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9385 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9386 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9387 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9392 vector
unsigned char __a, vector
unsigned char __b,
unsigned char __c) {
9393 unsigned char __d =
__c & 0x0F;
9394 #ifdef __LITTLE_ENDIAN__
9396 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9397 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9398 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9399 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9403 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9404 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9405 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9411 unsigned char __c) {
9412 unsigned char __d =
__c & 0x0F;
9413 #ifdef __LITTLE_ENDIAN__
9415 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9416 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9417 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9418 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9422 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9423 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9424 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9429 vector
unsigned short __a, vector
unsigned short __b,
unsigned char __c) {
9430 unsigned char __d =
__c & 0x0F;
9431 #ifdef __LITTLE_ENDIAN__
9433 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9434 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9435 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9436 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9440 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9441 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9442 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9448 unsigned char __c) {
9449 unsigned char __d =
__c & 0x0F;
9450 #ifdef __LITTLE_ENDIAN__
9452 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9453 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9454 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9455 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9459 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9460 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9461 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9467 unsigned char __c) {
9468 unsigned char __d =
__c & 0x0F;
9469 #ifdef __LITTLE_ENDIAN__
9471 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9472 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9473 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9474 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9478 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9479 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9480 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9485 vector
unsigned int __a, vector
unsigned int __b,
unsigned char __c) {
9486 unsigned char __d =
__c & 0x0F;
9487 #ifdef __LITTLE_ENDIAN__
9489 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9490 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9491 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9492 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9496 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9497 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9498 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9504 unsigned char __c) {
9505 unsigned char __d =
__c & 0x0F;
9506 #ifdef __LITTLE_ENDIAN__
9508 __b,
__a, (vector
unsigned char)(16 - __d, 17 - __d, 18 - __d, 19 - __d,
9509 20 - __d, 21 - __d, 22 - __d, 23 - __d,
9510 24 - __d, 25 - __d, 26 - __d, 27 - __d,
9511 28 - __d, 29 - __d, 30 - __d, 31 - __d));
9515 (vector
unsigned char)(__d, __d + 1, __d + 2, __d + 3, __d + 4, __d + 5,
9516 __d + 6, __d + 7, __d + 8, __d + 9, __d + 10,
9517 __d + 11, __d + 12, __d + 13, __d + 14, __d + 15));
9525 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
9531 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
9537 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
9543 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
9549 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
9555 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
9561 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
9567 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
9573 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
9578 vector
unsigned char __b) {
9579 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9583 vector
unsigned short __b) {
9584 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9588 vector
unsigned int __b) {
9589 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9594 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
9600 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
9606 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
9612 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
9618 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
9624 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
9629 vector
unsigned char __b) {
9630 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9634 vector
unsigned short __b) {
9635 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9639 vector
unsigned int __b) {
9640 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9644 vector
unsigned char __b) {
9645 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
9649 vector
unsigned short __b) {
9650 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
9654 vector
unsigned int __b) {
9655 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
9660 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9666 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9672 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9678 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9684 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9690 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9696 vec_sll(vector
signed long long __a, vector
unsigned char __b) {
9697 return (vector
signed long long)__builtin_altivec_vsl((vector
int)
__a,
9701 static __inline__ vector
unsigned long long __ATTRS_o_ai
9702 vec_sll(vector
unsigned long long __a, vector
unsigned char __b) {
9703 return (vector
unsigned long long)__builtin_altivec_vsl((vector
int)
__a,
9712 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
9718 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
9724 return (vector
signed char)__builtin_altivec_vsl((vector
int)
__a,
9730 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
9736 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
9742 return (vector
unsigned char)__builtin_altivec_vsl((vector
int)
__a,
9748 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
9754 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
9760 return (vector
bool char)__builtin_altivec_vsl((vector
int)
__a,
9765 vector
unsigned char __b) {
9766 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9770 vector
unsigned short __b) {
9771 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9775 vector
unsigned int __b) {
9776 return (vector
short)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9781 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
9787 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
9793 return (vector
unsigned short)__builtin_altivec_vsl((vector
int)
__a,
9799 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
9805 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
9811 return (vector
bool short)__builtin_altivec_vsl((vector
int)
__a,
9816 vector
unsigned char __b) {
9817 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9821 vector
unsigned short __b) {
9822 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9826 vector
unsigned int __b) {
9827 return (vector pixel)__builtin_altivec_vsl((vector
int)
__a, (vector
int)
__b);
9831 vector
unsigned char __b) {
9832 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
9836 vector
unsigned short __b) {
9837 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
9841 vector
unsigned int __b) {
9842 return (vector
int)__builtin_altivec_vsl(
__a, (vector
int)
__b);
9847 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9853 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9859 return (vector
unsigned int)__builtin_altivec_vsl((vector
int)
__a,
9865 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9871 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9877 return (vector
bool int)__builtin_altivec_vsl((vector
int)
__a,
9885 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
9891 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
9897 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
9903 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
9908 vector
signed char __b) {
9909 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9913 vector
unsigned char __b) {
9914 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9919 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
9925 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
9930 vector
signed char __b) {
9931 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9935 vector
unsigned char __b) {
9936 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9940 vector
signed char __b) {
9941 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
9945 vector
unsigned char __b) {
9946 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
9951 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
9957 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
9962 vector
signed char __b) {
9963 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9967 vector
unsigned char __b) {
9968 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
9973 vec_slo(vector
signed long long __a, vector
signed char __b) {
9974 return (vector
signed long long)__builtin_altivec_vslo((vector
int)
__a,
9979 vec_slo(vector
signed long long __a, vector
unsigned char __b) {
9980 return (vector
signed long long)__builtin_altivec_vslo((vector
int)
__a,
9984 static __inline__ vector
unsigned long long __ATTRS_o_ai
9985 vec_slo(vector
unsigned long long __a, vector
signed char __b) {
9986 return (vector
unsigned long long)__builtin_altivec_vslo((vector
int)
__a,
9990 static __inline__ vector
unsigned long long __ATTRS_o_ai
9991 vec_slo(vector
unsigned long long __a, vector
unsigned char __b) {
9992 return (vector
unsigned long long)__builtin_altivec_vslo((vector
int)
__a,
10001 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
10007 return (vector
signed char)__builtin_altivec_vslo((vector
int)
__a,
10013 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
10019 return (vector
unsigned char)__builtin_altivec_vslo((vector
int)
__a,
10024 vector
signed char __b) {
10025 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
10029 vector
unsigned char __b) {
10030 return (vector
short)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
10035 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
10041 return (vector
unsigned short)__builtin_altivec_vslo((vector
int)
__a,
10046 vector
signed char __b) {
10047 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
10051 vector
unsigned char __b) {
10052 return (vector pixel)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
10056 vector
signed char __b) {
10057 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
10061 vector
unsigned char __b) {
10062 return (vector
int)__builtin_altivec_vslo(
__a, (vector
int)
__b);
10067 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
10073 return (vector
unsigned int)__builtin_altivec_vslo((vector
int)
__a,
10078 vector
signed char __b) {
10079 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
10083 vector
unsigned char __b) {
10084 return (vector
float)__builtin_altivec_vslo((vector
int)
__a, (vector
int)
__b);
10106 unsigned char b0 = (
__b & 0x07) * 2;
10107 unsigned char b1 = b0 + 1;
10109 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
10110 b0, b1, b0, b1, b0, b1));
10115 unsigned char b0 = (
__b & 0x07) * 2;
10116 unsigned char b1 = b0 + 1;
10118 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
10119 b0, b1, b0, b1, b0, b1));
10124 unsigned char b0 = (
__b & 0x07) * 2;
10125 unsigned char b1 = b0 + 1;
10127 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
10128 b0, b1, b0, b1, b0, b1));
10132 unsigned const int __b) {
10133 unsigned char b0 = (
__b & 0x07) * 2;
10134 unsigned char b1 = b0 + 1;
10136 (vector
unsigned char)(b0, b1, b0, b1, b0, b1, b0, b1, b0, b1,
10137 b0, b1, b0, b1, b0, b1));
10142 unsigned char b0 = (
__b & 0x03) * 4;
10143 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
10145 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
10146 b2, b3, b0, b1, b2, b3));
10151 unsigned char b0 = (
__b & 0x03) * 4;
10152 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
10154 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
10155 b2, b3, b0, b1, b2, b3));
10160 unsigned char b0 = (
__b & 0x03) * 4;
10161 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
10163 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
10164 b2, b3, b0, b1, b2, b3));
10168 unsigned const int __b) {
10169 unsigned char b0 = (
__b & 0x03) * 4;
10170 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3;
10172 (vector
unsigned char)(b0, b1, b2, b3, b0, b1, b2, b3, b0, b1,
10173 b2, b3, b0, b1, b2, b3));
10178 unsigned const int __b) {
10179 unsigned char b0 = (
__b & 0x01) * 8;
10180 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
10181 b6 = b0 + 6, b7 = b0 + 7;
10183 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
10184 b2, b3, b4, b5, b6, b7));
10188 unsigned char b0 = (
__b & 0x01) * 8;
10189 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
10190 b6 = b0 + 6, b7 = b0 + 7;
10192 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
10193 b2, b3, b4, b5, b6, b7));
10195 static __inline__ vector
signed long long __ATTRS_o_ai
10197 unsigned char b0 = (
__b & 0x01) * 8;
10198 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
10199 b6 = b0 + 6, b7 = b0 + 7;
10201 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
10202 b2, b3, b4, b5, b6, b7));
10204 static __inline__ vector
unsigned long long __ATTRS_o_ai
10206 unsigned char b0 = (
__b & 0x01) * 8;
10207 unsigned char b1 = b0 + 1, b2 = b0 + 2, b3 = b0 + 3, b4 = b0 + 4, b5 = b0 + 5,
10208 b6 = b0 + 6, b7 = b0 + 7;
10210 (vector
unsigned char)(b0, b1, b2, b3, b4, b5, b6, b7, b0, b1,
10211 b2, b3, b4, b5, b6, b7));
10217 #define __builtin_altivec_vspltb vec_vspltb
10230 unsigned char __b) {
10236 #define __builtin_altivec_vsplth vec_vsplth
10239 unsigned char __b) {
10241 unsigned char b1 =
__b + 1;
10243 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
10250 unsigned char b1 =
__b + 1;
10252 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
10259 unsigned char b1 =
__b + 1;
10261 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
10266 unsigned char __b) {
10268 unsigned char b1 =
__b + 1;
10270 (vector
unsigned char)(
__b, b1,
__b, b1,
__b, b1,
__b, b1,
10276 #define __builtin_altivec_vspltw vec_vspltw
10279 unsigned char __b) {
10281 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
10283 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
10284 b1, b2, b3,
__b, b1, b2, b3));
10290 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
10292 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
10293 b1, b2, b3,
__b, b1, b2, b3));
10297 unsigned char __b) {
10299 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
10301 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
10302 b1, b2, b3,
__b, b1, b2, b3));
10306 unsigned char __b) {
10308 unsigned char b1 =
__b + 1, b2 =
__b + 2, b3 =
__b + 3;
10310 (vector
unsigned char)(
__b, b1, b2, b3,
__b, b1, b2, b3,
__b,
10311 b1, b2, b3,
__b, b1, b2, b3));
10316 #define __builtin_altivec_vspltisb vec_splat_s8
10321 return (vector
signed char)(
__a);
10329 return (vector
signed char)(
__a);
10334 #define __builtin_altivec_vspltish vec_splat_s16
10338 return (vector
short)(
__a);
10345 return (vector
short)(
__a);
10350 #define __builtin_altivec_vspltisw vec_splat_s32
10354 return (vector
int)(
__a);
10361 return (vector
int)(
__a);
10369 return (vector
unsigned char)(
__a);
10377 return (vector
unsigned short)(
__a);
10385 return (vector
unsigned int)(
__a);
10395 (
__b % (vector
unsigned char)(
sizeof(
unsigned char) * __CHAR_BIT__));
10400 return (vector
signed char)
vec_sr((vector
unsigned char)
__a,
__b);
10406 (
__b % (vector
unsigned short)(
sizeof(
unsigned short) * __CHAR_BIT__));
10410 vector
unsigned short __b) {
10411 return (vector
short)
vec_sr((vector
unsigned short)
__a,
__b);
10417 (
__b % (vector
unsigned int)(
sizeof(
unsigned int) * __CHAR_BIT__));
10421 vector
unsigned int __b) {
10422 return (vector
int)
vec_sr((vector
unsigned int)
__a,
__b);
10425 #ifdef __POWER8_VECTOR__
10426 static __inline__ vector
unsigned long long __ATTRS_o_ai
10427 vec_sr(vector
unsigned long long __a, vector
unsigned long long __b) {
10428 return __a >> (
__b % (vector
unsigned long long)(
sizeof(
unsigned long long) *
10433 vec_sr(vector
long long __a, vector
unsigned long long __b) {
10434 return (vector
long long)
vec_sr((vector
unsigned long long)
__a,
__b);
10436 #elif defined(__VSX__)
10437 static __inline__ vector
unsigned long long __ATTRS_o_ai
10438 vec_sr(vector
unsigned long long __a, vector
unsigned long long __b) {
10439 __b %= (vector
unsigned long long)(
sizeof(
unsigned long long) * __CHAR_BIT__);
10445 vector
unsigned long long __swapshift =
10446 __builtin_shufflevector(
__b,
__b, 1, 0);
10447 vector
unsigned long long __leftelt =
10448 (vector
unsigned long long)__builtin_altivec_vsro(
10449 (vector
signed int)
__a, (vector
signed int)__swapshift);
10450 #ifdef __LITTLE_ENDIAN__
10451 __leftelt = (vector
unsigned long long)__builtin_altivec_vsr(
10452 (vector
signed int)__leftelt,
10453 (vector
signed int)
vec_vspltb((vector
unsigned char)__swapshift, 0));
10455 __leftelt = (vector
unsigned long long)__builtin_altivec_vsr(
10456 (vector
signed int)__leftelt,
10457 (vector
signed int)
vec_vspltb((vector
unsigned char)__swapshift, 15));
10459 __a = __builtin_shufflevector(
__a,
__a, 1, 0);
10460 vector
unsigned long long __rightelt =
10461 (vector
unsigned long long)__builtin_altivec_vsro((vector
signed int)
__a,
10462 (vector
signed int)
__b);
10463 #ifdef __LITTLE_ENDIAN__
10464 __rightelt = (vector
unsigned long long)__builtin_altivec_vsr(
10465 (vector
signed int)__rightelt,
10467 return __builtin_shufflevector(__rightelt, __leftelt, 1, 3);
10469 __rightelt = (vector
unsigned long long)__builtin_altivec_vsr(
10470 (vector
signed int)__rightelt,
10472 return __builtin_shufflevector(__leftelt, __rightelt, 0, 2);
10477 vec_sr(vector
long long __a, vector
unsigned long long __b) {
10478 return (vector
long long)
vec_sr((vector
unsigned long long)
__a,
__b);
10484 #define __builtin_altivec_vsrb vec_vsrb
10498 #define __builtin_altivec_vsrh vec_vsrh
10512 #define __builtin_altivec_vsrw vec_vsrw
10515 vector
unsigned int __b) {
10528 return (vector
signed char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
10533 return (vector
unsigned char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
10537 vector
unsigned short __b) {
10538 return __builtin_altivec_vsrah(
__a, (vector
unsigned short)
__b);
10543 return (vector
unsigned short)__builtin_altivec_vsrah((vector
short)
__a,
__b);
10547 vector
unsigned int __b) {
10548 return __builtin_altivec_vsraw(
__a,
__b);
10553 return (vector
unsigned int)__builtin_altivec_vsraw((vector
int)
__a,
__b);
10556 #ifdef __POWER8_VECTOR__
10557 static __inline__ vector
signed long long __ATTRS_o_ai
10558 vec_sra(vector
signed long long __a, vector
unsigned long long __b) {
10562 static __inline__ vector
unsigned long long __ATTRS_o_ai
10563 vec_sra(vector
unsigned long long __a, vector
unsigned long long __b) {
10564 return (vector
unsigned long long)((vector
signed long long)
__a >>
__b);
10566 #elif defined(__VSX__)
10567 static __inline__ vector
signed long long __ATTRS_o_ai
10568 vec_sra(vector
signed long long __a, vector
unsigned long long __b) {
10569 __b %= (vector
unsigned long long)(
sizeof(
unsigned long long) * __CHAR_BIT__);
10573 static __inline__ vector
unsigned long long __ATTRS_o_ai
10574 vec_sra(vector
unsigned long long __a, vector
unsigned long long __b) {
10575 __b %= (vector
unsigned long long)(
sizeof(
unsigned long long) * __CHAR_BIT__);
10576 return (vector
unsigned long long)((vector
signed long long)
__a >>
__b);
10584 return (vector
signed char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
10589 return (vector
unsigned char)__builtin_altivec_vsrab((vector
char)
__a,
__b);
10596 return __builtin_altivec_vsrah(
__a, (vector
unsigned short)
__b);
10601 return (vector
unsigned short)__builtin_altivec_vsrah((vector
short)
__a,
__b);
10607 vector
unsigned int __b) {
10608 return __builtin_altivec_vsraw(
__a,
__b);
10613 return (vector
unsigned int)__builtin_altivec_vsraw((vector
int)
__a,
__b);
10620 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
10626 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
10632 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
10638 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
10644 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
10650 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
10656 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
10662 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
10668 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
10673 vector
unsigned char __b) {
10674 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10678 vector
unsigned short __b) {
10679 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10683 vector
unsigned int __b) {
10684 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10689 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
10695 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
10701 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
10707 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10713 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10719 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10724 vector
unsigned char __b) {
10725 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10729 vector
unsigned short __b) {
10730 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10734 vector
unsigned int __b) {
10735 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10739 vector
unsigned char __b) {
10740 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10744 vector
unsigned short __b) {
10745 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10749 vector
unsigned int __b) {
10750 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10755 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10761 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10767 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10773 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10779 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10785 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10790 static __inline__ vector
signed long long __ATTRS_o_ai
10791 vec_srl(vector
signed long long __a, vector
unsigned char __b) {
10792 return (vector
signed long long)__builtin_altivec_vsr((vector
int)
__a,
10796 static __inline__ vector
unsigned long long __ATTRS_o_ai
10797 vec_srl(vector
unsigned long long __a, vector
unsigned char __b) {
10798 return (vector
unsigned long long)__builtin_altivec_vsr((vector
int)
__a,
10807 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
10813 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
10819 return (vector
signed char)__builtin_altivec_vsr((vector
int)
__a,
10825 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
10831 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
10837 return (vector
unsigned char)__builtin_altivec_vsr((vector
int)
__a,
10843 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
10849 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
10855 return (vector
bool char)__builtin_altivec_vsr((vector
int)
__a,
10860 vector
unsigned char __b) {
10861 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10865 vector
unsigned short __b) {
10866 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10870 vector
unsigned int __b) {
10871 return (vector
short)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10876 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
10882 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
10888 return (vector
unsigned short)__builtin_altivec_vsr((vector
int)
__a,
10894 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10900 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10906 return (vector
bool short)__builtin_altivec_vsr((vector
int)
__a,
10911 vector
unsigned char __b) {
10912 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10916 vector
unsigned short __b) {
10917 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10921 vector
unsigned int __b) {
10922 return (vector pixel)__builtin_altivec_vsr((vector
int)
__a, (vector
int)
__b);
10926 vector
unsigned char __b) {
10927 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10931 vector
unsigned short __b) {
10932 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10936 vector
unsigned int __b) {
10937 return (vector
int)__builtin_altivec_vsr(
__a, (vector
int)
__b);
10942 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10948 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10954 return (vector
unsigned int)__builtin_altivec_vsr((vector
int)
__a,
10960 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10966 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10972 return (vector
bool int)__builtin_altivec_vsr((vector
int)
__a,
10980 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
10986 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
10992 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
10998 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
11003 vector
signed char __b) {
11004 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11008 vector
unsigned char __b) {
11009 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11014 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
11020 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
11025 vector
signed char __b) {
11026 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11030 vector
unsigned char __b) {
11031 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11035 vector
signed char __b) {
11036 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
11040 vector
unsigned char __b) {
11041 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
11046 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
11052 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
11057 vector
signed char __b) {
11058 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11062 vector
unsigned char __b) {
11063 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11067 static __inline__ vector
signed long long __ATTRS_o_ai
11068 vec_sro(vector
signed long long __a, vector
signed char __b) {
11069 return (vector
signed long long)__builtin_altivec_vsro((vector
int)
__a,
11073 static __inline__ vector
signed long long __ATTRS_o_ai
11074 vec_sro(vector
signed long long __a, vector
unsigned char __b) {
11075 return (vector
signed long long)__builtin_altivec_vsro((vector
int)
__a,
11079 static __inline__ vector
unsigned long long __ATTRS_o_ai
11080 vec_sro(vector
unsigned long long __a, vector
signed char __b) {
11081 return (vector
unsigned long long)__builtin_altivec_vsro((vector
int)
__a,
11085 static __inline__ vector
unsigned long long __ATTRS_o_ai
11086 vec_sro(vector
unsigned long long __a, vector
unsigned char __b) {
11087 return (vector
unsigned long long)__builtin_altivec_vsro((vector
int)
__a,
11096 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
11102 return (vector
signed char)__builtin_altivec_vsro((vector
int)
__a,
11108 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
11114 return (vector
unsigned char)__builtin_altivec_vsro((vector
int)
__a,
11119 vector
signed char __b) {
11120 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11124 vector
unsigned char __b) {
11125 return (vector
short)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11130 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
11136 return (vector
unsigned short)__builtin_altivec_vsro((vector
int)
__a,
11141 vector
signed char __b) {
11142 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11146 vector
unsigned char __b) {
11147 return (vector pixel)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11151 vector
signed char __b) {
11152 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
11156 vector
unsigned char __b) {
11157 return (vector
int)__builtin_altivec_vsro(
__a, (vector
int)
__b);
11162 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
11168 return (vector
unsigned int)__builtin_altivec_vsro((vector
int)
__a,
11173 vector
signed char __b) {
11174 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11178 vector
unsigned char __b) {
11179 return (vector
float)__builtin_altivec_vsro((vector
int)
__a, (vector
int)
__b);
11185 vector
signed char *
__c) {
11186 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11190 signed char *
__c) {
11191 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11195 vector
unsigned char *
__c) {
11196 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11200 unsigned char *
__c) {
11201 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11205 signed char *
__c) {
11206 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11210 unsigned char *
__c) {
11211 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11215 vector
bool char *
__c) {
11216 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11220 vector
short *
__c) {
11221 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11226 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11230 vector
unsigned short *
__c) {
11231 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11235 unsigned short *
__c) {
11236 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11241 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11245 unsigned short *
__c) {
11246 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11250 vector
bool short *
__c) {
11251 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11256 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11260 unsigned short *
__c) {
11261 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11265 vector pixel *
__c) {
11266 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11279 vector
unsigned int *
__c) {
11280 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11284 unsigned int *
__c) {
11285 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11290 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11294 unsigned int *
__c) {
11295 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11299 vector
bool int *
__c) {
11300 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11304 vector
float *
__c) {
11305 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11310 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11316 vector
signed char *
__c) {
11317 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11321 signed char *
__c) {
11322 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11326 vector
unsigned char *
__c) {
11327 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11331 unsigned char *
__c) {
11332 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11336 signed char *
__c) {
11337 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11341 unsigned char *
__c) {
11342 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11346 vector
bool char *
__c) {
11347 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11351 vector
short *
__c) {
11352 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11357 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11361 vector
unsigned short *
__c) {
11362 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11366 unsigned short *
__c) {
11367 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11372 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11376 unsigned short *
__c) {
11377 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11381 vector
bool short *
__c) {
11382 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11387 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11391 unsigned short *
__c) {
11392 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11396 vector pixel *
__c) {
11397 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11411 vector
unsigned int *
__c) {
11412 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11416 unsigned int *
__c) {
11417 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11422 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11426 unsigned int *
__c) {
11427 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11431 vector
bool int *
__c) {
11432 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11436 vector
float *
__c) {
11437 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11442 __builtin_altivec_stvx((vector
int)
__a,
__b,
__c);
11448 signed char *
__c) {
11449 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11453 unsigned char *
__c) {
11454 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11458 signed char *
__c) {
11459 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11463 unsigned char *
__c) {
11464 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11469 __builtin_altivec_stvehx(
__a,
__b,
__c);
11473 unsigned short *
__c) {
11474 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11479 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11483 unsigned short *
__c) {
11484 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11489 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11493 unsigned short *
__c) {
11494 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11498 __builtin_altivec_stvewx(
__a,
__b,
__c);
11502 unsigned int *
__c) {
11503 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11508 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11512 unsigned int *
__c) {
11513 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11518 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11524 signed char *
__c) {
11525 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11529 long __b,
unsigned char *
__c) {
11530 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11534 signed char *
__c) {
11535 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11539 unsigned char *
__c) {
11540 __builtin_altivec_stvebx((vector
char)
__a,
__b,
__c);
11547 __builtin_altivec_stvehx(
__a,
__b,
__c);
11551 long __b,
unsigned short *
__c) {
11552 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11557 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11561 unsigned short *
__c) {
11562 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11567 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11571 unsigned short *
__c) {
11572 __builtin_altivec_stvehx((vector
short)
__a,
__b,
__c);
11579 __builtin_altivec_stvewx(
__a,
__b,
__c);
11583 unsigned int *
__c) {
11584 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11589 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11593 unsigned int *
__c) {
11594 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11599 __builtin_altivec_stvewx((vector
int)
__a,
__b,
__c);
11605 vector
signed char *
__c) {
11606 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11610 signed char *
__c) {
11611 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11615 vector
unsigned char *
__c) {
11616 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11620 unsigned char *
__c) {
11621 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11625 signed char *
__c) {
11626 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11630 unsigned char *
__c) {
11631 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11635 vector
bool char *
__c) {
11636 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11640 vector
short *
__c) {
11641 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11646 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11650 vector
unsigned short *
__c) {
11651 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11655 unsigned short *
__c) {
11656 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11661 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11665 unsigned short *
__c) {
11666 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11670 vector
bool short *
__c) {
11671 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11676 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11680 unsigned short *
__c) {
11681 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11685 vector pixel *
__c) {
11686 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11691 __builtin_altivec_stvxl(
__a,
__b,
__c);
11695 __builtin_altivec_stvxl(
__a,
__b,
__c);
11699 vector
unsigned int *
__c) {
11700 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11704 unsigned int *
__c) {
11705 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11710 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11714 unsigned int *
__c) {
11715 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11719 vector
bool int *
__c) {
11720 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11724 vector
float *
__c) {
11725 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11730 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11736 vector
signed char *
__c) {
11737 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11741 signed char *
__c) {
11742 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11746 vector
unsigned char *
__c) {
11747 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11751 unsigned char *
__c) {
11752 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11756 signed char *
__c) {
11757 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11761 unsigned char *
__c) {
11762 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11766 vector
bool char *
__c) {
11767 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11771 vector
short *
__c) {
11772 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11777 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11782 vector
unsigned short *
__c) {
11783 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11787 int __b,
unsigned short *
__c) {
11788 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11793 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11797 unsigned short *
__c) {
11798 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11802 vector
bool short *
__c) {
11803 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11808 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11812 unsigned short *
__c) {
11813 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11817 vector pixel *
__c) {
11818 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11823 __builtin_altivec_stvxl(
__a,
__b,
__c);
11828 __builtin_altivec_stvxl(
__a,
__b,
__c);
11832 vector
unsigned int *
__c) {
11833 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11837 unsigned int *
__c) {
11838 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11843 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11847 unsigned int *
__c) {
11848 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11852 vector
bool int *
__c) {
11853 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11857 vector
float *
__c) {
11858 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11863 __builtin_altivec_stvxl((vector
int)
__a,
__b,
__c);
11875 return (vector
signed char)
__a -
__b;
11880 return __a - (vector
signed char)
__b;
11890 return (vector
unsigned char)
__a -
__b;
11895 return __a - (vector
unsigned char)
__b;
11899 vector
short __b) {
11904 vector
short __b) {
11905 return (vector
short)
__a -
__b;
11909 vector
bool short __b) {
11910 return __a - (vector short)
__b;
11920 return (vector
unsigned short)
__a -
__b;
11925 return __a - (vector
unsigned short)
__b;
11935 return (vector
int)
__a -
__b;
11939 vector
bool int __b) {
11950 return (vector
unsigned int)
__a -
__b;
11958 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
11959 defined(__SIZEOF_INT128__)
11961 vec_sub(vector
signed __int128
__a, vector
signed __int128
__b) {
11965 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
11966 vec_sub(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
11973 static __inline__ vector
signed long long __ATTRS_o_ai
11974 vec_sub(vector
signed long long __a, vector
signed long long __b) {
11978 static __inline__ vector
unsigned long long __ATTRS_o_ai
11979 vec_sub(vector
unsigned long long __a, vector
unsigned long long __b) {
11984 vector
double __b) {
11990 vector
float __b) {
11996 #define __builtin_altivec_vsububm vec_vsububm
12005 return (vector
signed char)
__a -
__b;
12010 return __a - (vector
signed char)
__b;
12020 return (vector
unsigned char)
__a -
__b;
12025 return __a - (vector
unsigned char)
__b;
12030 #define __builtin_altivec_vsubuhm vec_vsubuhm
12033 vector
short __b) {
12038 vector
short __b) {
12039 return (vector
short)
__a -
__b;
12043 vector
bool short __b) {
12044 return __a - (vector short)
__b;
12054 return (vector
unsigned short)
__a -
__b;
12059 return __a - (vector
unsigned short)
__b;
12064 #define __builtin_altivec_vsubuwm vec_vsubuwm
12073 return (vector
int)
__a -
__b;
12077 vector
bool int __b) {
12088 return (vector
unsigned int)
__a -
__b;
12098 #define __builtin_altivec_vsubfp vec_vsubfp
12100 static __inline__ vector
float __attribute__((__always_inline__))
12101 vec_vsubfp(vector
float __a, vector
float __b) {
12109 return (vector
signed int)__builtin_altivec_vsubcuw((vector
unsigned int)
__a,
12110 (vector
unsigned int)
__b);
12115 return __builtin_altivec_vsubcuw(
__a,
__b);
12118 #ifdef __POWER8_VECTOR__
12119 #ifdef __SIZEOF_INT128__
12120 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12121 vec_subc(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
12122 return __builtin_altivec_vsubcuq(
__a,
__b);
12126 vec_subc(vector
signed __int128
__a, vector
signed __int128
__b) {
12127 return (vector
signed __int128)__builtin_altivec_vsubcuq(
12128 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
12132 static __inline__ vector
unsigned char __attribute__((__always_inline__))
12133 vec_subc_u128(vector
unsigned char __a, vector
unsigned char __b) {
12134 return (vector
unsigned char)__builtin_altivec_vsubcuq_c(
12135 (vector
unsigned char)
__a, (vector
unsigned char)
__b);
12141 static __inline__ vector
unsigned int __attribute__((__always_inline__))
12142 vec_vsubcuw(vector
unsigned int __a, vector
unsigned int __b) {
12143 return __builtin_altivec_vsubcuw(
__a,
__b);
12150 return __builtin_altivec_vsubsbs(
__a,
__b);
12155 return __builtin_altivec_vsubsbs((vector
signed char)
__a,
__b);
12160 return __builtin_altivec_vsubsbs(
__a, (vector
signed char)
__b);
12165 return __builtin_altivec_vsububs(
__a,
__b);
12170 return __builtin_altivec_vsububs((vector
unsigned char)
__a,
__b);
12175 return __builtin_altivec_vsububs(
__a, (vector
unsigned char)
__b);
12179 vector
short __b) {
12180 return __builtin_altivec_vsubshs(
__a,
__b);
12184 vector
short __b) {
12185 return __builtin_altivec_vsubshs((vector
short)
__a,
__b);
12189 vector
bool short __b) {
12190 return __builtin_altivec_vsubshs(
__a, (vector
short)
__b);
12195 return __builtin_altivec_vsubuhs(
__a,
__b);
12200 return __builtin_altivec_vsubuhs((vector
unsigned short)
__a,
__b);
12205 return __builtin_altivec_vsubuhs(
__a, (vector
unsigned short)
__b);
12210 return __builtin_altivec_vsubsws(
__a,
__b);
12215 return __builtin_altivec_vsubsws((vector
int)
__a,
__b);
12219 vector
bool int __b) {
12220 return __builtin_altivec_vsubsws(
__a, (vector
int)
__b);
12225 return __builtin_altivec_vsubuws(
__a,
__b);
12230 return __builtin_altivec_vsubuws((vector
unsigned int)
__a,
__b);
12235 return __builtin_altivec_vsubuws(
__a, (vector
unsigned int)
__b);
12242 return __builtin_altivec_vsubsbs(
__a,
__b);
12247 return __builtin_altivec_vsubsbs((vector
signed char)
__a,
__b);
12252 return __builtin_altivec_vsubsbs(
__a, (vector
signed char)
__b);
12259 return __builtin_altivec_vsububs(
__a,
__b);
12264 return __builtin_altivec_vsububs((vector
unsigned char)
__a,
__b);
12269 return __builtin_altivec_vsububs(
__a, (vector
unsigned char)
__b);
12275 vector
short __b) {
12276 return __builtin_altivec_vsubshs(
__a,
__b);
12280 vector
short __b) {
12281 return __builtin_altivec_vsubshs((vector
short)
__a,
__b);
12285 vector
bool short __b) {
12286 return __builtin_altivec_vsubshs(
__a, (vector
short)
__b);
12293 return __builtin_altivec_vsubuhs(
__a,
__b);
12298 return __builtin_altivec_vsubuhs((vector
unsigned short)
__a,
__b);
12303 return __builtin_altivec_vsubuhs(
__a, (vector
unsigned short)
__b);
12310 return __builtin_altivec_vsubsws(
__a,
__b);
12315 return __builtin_altivec_vsubsws((vector
int)
__a,
__b);
12319 vector
bool int __b) {
12320 return __builtin_altivec_vsubsws(
__a, (vector
int)
__b);
12327 return __builtin_altivec_vsubuws(
__a,
__b);
12332 return __builtin_altivec_vsubuws((vector
unsigned int)
__a,
__b);
12337 return __builtin_altivec_vsubuws(
__a, (vector
unsigned int)
__b);
12340 #ifdef __POWER8_VECTOR__
12343 #ifdef __SIZEOF_INT128__
12345 vec_vsubuqm(vector
signed __int128
__a, vector
signed __int128
__b) {
12349 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12350 vec_vsubuqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
12355 static __inline__ vector
unsigned char __attribute__((__always_inline__))
12356 vec_sub_u128(vector
unsigned char __a, vector
unsigned char __b) {
12357 return (vector
unsigned char)__builtin_altivec_vsubuqm(
__a,
__b);
12362 #ifdef __SIZEOF_INT128__
12364 vec_vsubeuqm(vector
signed __int128
__a, vector
signed __int128
__b,
12365 vector
signed __int128
__c) {
12366 return (vector
signed __int128)__builtin_altivec_vsubeuqm(
12367 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
12368 (vector
unsigned __int128)
__c);
12371 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12372 vec_vsubeuqm(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
12373 vector
unsigned __int128
__c) {
12374 return __builtin_altivec_vsubeuqm(
__a,
__b,
__c);
12378 vec_sube(vector
signed __int128
__a, vector
signed __int128
__b,
12379 vector
signed __int128
__c) {
12380 return (vector
signed __int128)__builtin_altivec_vsubeuqm(
12381 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
12382 (vector
unsigned __int128)
__c);
12385 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12386 vec_sube(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
12387 vector
unsigned __int128
__c) {
12388 return __builtin_altivec_vsubeuqm(
__a,
__b,
__c);
12392 static __inline__ vector
unsigned char __attribute__((__always_inline__))
12393 vec_sube_u128(vector
unsigned char __a, vector
unsigned char __b,
12394 vector
unsigned char __c) {
12395 return (vector
unsigned char)__builtin_altivec_vsubeuqm_c(
12396 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
12397 (vector
unsigned char)
__c);
12402 #ifdef __SIZEOF_INT128__
12404 vec_vsubcuq(vector
signed __int128
__a, vector
signed __int128
__b) {
12405 return (vector
signed __int128)__builtin_altivec_vsubcuq(
12406 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b);
12409 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12410 vec_vsubcuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
12411 return __builtin_altivec_vsubcuq(
__a,
__b);
12417 vec_vsubecuq(vector
signed __int128
__a, vector
signed __int128
__b,
12418 vector
signed __int128
__c) {
12419 return (vector
signed __int128)__builtin_altivec_vsubecuq(
12420 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
12421 (vector
unsigned __int128)
__c);
12424 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12425 vec_vsubecuq(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
12426 vector
unsigned __int128
__c) {
12427 return __builtin_altivec_vsubecuq(
__a,
__b,
__c);
12431 #ifdef __powerpc64__
12433 vec_subec(vector
signed int __a, vector
signed int __b,
12434 vector
signed int __c) {
12439 vec_subec(vector
unsigned int __a, vector
unsigned int __b,
12440 vector
unsigned int __c) {
12445 #ifdef __SIZEOF_INT128__
12447 vec_subec(vector
signed __int128
__a, vector
signed __int128
__b,
12448 vector
signed __int128
__c) {
12449 return (vector
signed __int128)__builtin_altivec_vsubecuq(
12450 (vector
unsigned __int128)
__a, (vector
unsigned __int128)
__b,
12451 (vector
unsigned __int128)
__c);
12454 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
12455 vec_subec(vector
unsigned __int128
__a, vector
unsigned __int128
__b,
12456 vector
unsigned __int128
__c) {
12457 return __builtin_altivec_vsubecuq(
__a,
__b,
__c);
12461 static __inline__ vector
unsigned char __attribute__((__always_inline__))
12462 vec_subec_u128(vector
unsigned char __a, vector
unsigned char __b,
12463 vector
unsigned char __c) {
12464 return (vector
unsigned char)__builtin_altivec_vsubecuq_c(
12465 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
12466 (vector
unsigned char)
__c);
12472 vector
signed int __c) {
12473 vector
signed int __mask = {1, 1, 1, 1};
12474 vector
signed int __carry =
__c & __mask;
12480 vector
unsigned int __c) {
12481 vector
unsigned int __mask = {1, 1, 1, 1};
12482 vector
unsigned int __carry =
__c & __mask;
12489 return __builtin_altivec_vsum4sbs(
__a,
__b);
12494 return __builtin_altivec_vsum4ubs(
__a,
__b);
12499 return __builtin_altivec_vsum4shs(
__a,
__b);
12504 static __inline__ vector
int __attribute__((__always_inline__))
12505 vec_vsum4sbs(vector
signed char __a, vector
int __b) {
12506 return __builtin_altivec_vsum4sbs(
__a,
__b);
12511 static __inline__ vector
unsigned int __attribute__((__always_inline__))
12512 vec_vsum4ubs(vector
unsigned char __a, vector
unsigned int __b) {
12513 return __builtin_altivec_vsum4ubs(
__a,
__b);
12518 static __inline__ vector
int __attribute__((__always_inline__))
12519 vec_vsum4shs(vector
signed short __a, vector
int __b) {
12520 return __builtin_altivec_vsum4shs(
__a,
__b);
12531 static __inline__ vector
signed int __attribute__((__always_inline__))
12532 vec_sum2s(vector
int __a, vector
int __b) {
12533 #ifdef __LITTLE_ENDIAN__
12535 __b,
__b, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
12537 __c = __builtin_altivec_vsum2sws(
__a,
__c);
12538 return (vector
signed int)
vec_perm(
12539 __c,
__c, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
12542 return __builtin_altivec_vsum2sws(
__a,
__b);
12548 static __inline__ vector
signed int __attribute__((__always_inline__))
12549 vec_vsum2sws(vector
int __a, vector
int __b) {
12550 #ifdef __LITTLE_ENDIAN__
12552 __b,
__b, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
12554 __c = __builtin_altivec_vsum2sws(
__a,
__c);
12555 return (vector
signed int)
vec_perm(
12556 __c,
__c, (vector
unsigned char)(4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15,
12559 return __builtin_altivec_vsum2sws(
__a,
__b);
12571 static __inline__ vector
signed int __attribute__((__always_inline__))
12572 vec_sums(vector
signed int __a, vector
signed int __b) {
12573 #ifdef __LITTLE_ENDIAN__
12575 __b = __builtin_altivec_vsumsws(
__a,
__b);
12576 return (vector
signed int)(0, 0, 0,
__b[0]);
12578 return __builtin_altivec_vsumsws(
__a,
__b);
12584 static __inline__ vector
signed int __attribute__((__always_inline__))
12585 vec_vsumsws(vector
signed int __a, vector
signed int __b) {
12586 #ifdef __LITTLE_ENDIAN__
12588 __b = __builtin_altivec_vsumsws(
__a,
__b);
12589 return (vector
signed int)(0, 0, 0,
__b[0]);
12591 return __builtin_altivec_vsumsws(
__a,
__b);
12599 return __builtin_vsx_xvrspiz(
__a);
12601 return __builtin_altivec_vrfiz(
__a);
12607 return __builtin_vsx_xvrdpiz(
__a);
12624 static __inline__ vector
float __attribute__((__always_inline__))
12625 vec_vrfiz(vector
float __a) {
12626 return __builtin_altivec_vrfiz(
__a);
12633 #ifdef __LITTLE_ENDIAN__
12634 #define vec_vupkhpx(__a) __builtin_altivec_vupklpx((vector short)(__a))
12635 #define vec_vupklpx(__a) __builtin_altivec_vupkhpx((vector short)(__a))
12637 #define vec_vupkhpx(__a) __builtin_altivec_vupkhpx((vector short)(__a))
12638 #define vec_vupklpx(__a) __builtin_altivec_vupklpx((vector short)(__a))
12643 #ifdef __LITTLE_ENDIAN__
12644 return __builtin_altivec_vupklsb((vector
char)
__a);
12646 return __builtin_altivec_vupkhsb((vector
char)
__a);
12652 #ifdef __LITTLE_ENDIAN__
12653 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
12655 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
12660 #ifdef __LITTLE_ENDIAN__
12661 return __builtin_altivec_vupklsh(
__a);
12663 return __builtin_altivec_vupkhsh(
__a);
12669 #ifdef __LITTLE_ENDIAN__
12670 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
12672 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
12678 #ifdef __LITTLE_ENDIAN__
12679 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
12681 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
12685 #ifdef __POWER8_VECTOR__
12687 #ifdef __LITTLE_ENDIAN__
12688 return __builtin_altivec_vupklsw(
__a);
12690 return __builtin_altivec_vupkhsw(
__a);
12696 #ifdef __LITTLE_ENDIAN__
12697 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
12699 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
12705 return (vector
double)(
__a[0],
__a[1]);
12713 #ifdef __LITTLE_ENDIAN__
12714 return __builtin_altivec_vupklsb((vector
char)
__a);
12716 return __builtin_altivec_vupkhsb((vector
char)
__a);
12722 #ifdef __LITTLE_ENDIAN__
12723 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
12725 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
12732 #ifdef __LITTLE_ENDIAN__
12733 return __builtin_altivec_vupklsh(
__a);
12735 return __builtin_altivec_vupkhsh(
__a);
12741 #ifdef __LITTLE_ENDIAN__
12742 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
12744 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
12750 #ifdef __LITTLE_ENDIAN__
12751 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
12753 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
12759 #ifdef __POWER8_VECTOR__
12760 static __inline__ vector
long long __ATTRS_o_ai vec_vupkhsw(vector
int __a) {
12761 #ifdef __LITTLE_ENDIAN__
12762 return __builtin_altivec_vupklsw(
__a);
12764 return __builtin_altivec_vupkhsw(
__a);
12769 vec_vupkhsw(vector
bool int __a) {
12770 #ifdef __LITTLE_ENDIAN__
12771 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
12773 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
12782 #ifdef __LITTLE_ENDIAN__
12783 return __builtin_altivec_vupkhsb((vector
char)
__a);
12785 return __builtin_altivec_vupklsb((vector
char)
__a);
12791 #ifdef __LITTLE_ENDIAN__
12792 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
12794 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
12799 #ifdef __LITTLE_ENDIAN__
12800 return __builtin_altivec_vupkhsh(
__a);
12802 return __builtin_altivec_vupklsh(
__a);
12808 #ifdef __LITTLE_ENDIAN__
12809 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
12811 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
12817 #ifdef __LITTLE_ENDIAN__
12818 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
12820 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
12824 #ifdef __POWER8_VECTOR__
12826 #ifdef __LITTLE_ENDIAN__
12827 return __builtin_altivec_vupkhsw(
__a);
12829 return __builtin_altivec_vupklsw(
__a);
12835 #ifdef __LITTLE_ENDIAN__
12836 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
12838 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
12844 return (vector
double)(
__a[2],
__a[3]);
12852 #ifdef __LITTLE_ENDIAN__
12853 return __builtin_altivec_vupkhsb((vector
char)
__a);
12855 return __builtin_altivec_vupklsb((vector
char)
__a);
12861 #ifdef __LITTLE_ENDIAN__
12862 return (vector
bool short)__builtin_altivec_vupkhsb((vector
char)
__a);
12864 return (vector
bool short)__builtin_altivec_vupklsb((vector
char)
__a);
12871 #ifdef __LITTLE_ENDIAN__
12872 return __builtin_altivec_vupkhsh(
__a);
12874 return __builtin_altivec_vupklsh(
__a);
12880 #ifdef __LITTLE_ENDIAN__
12881 return (vector
bool int)__builtin_altivec_vupkhsh((vector
short)
__a);
12883 return (vector
bool int)__builtin_altivec_vupklsh((vector
short)
__a);
12889 #ifdef __LITTLE_ENDIAN__
12890 return (vector
unsigned int)__builtin_altivec_vupkhpx((vector
short)
__a);
12892 return (vector
unsigned int)__builtin_altivec_vupklpx((vector
short)
__a);
12898 #ifdef __POWER8_VECTOR__
12899 static __inline__ vector
long long __ATTRS_o_ai vec_vupklsw(vector
int __a) {
12900 #ifdef __LITTLE_ENDIAN__
12901 return __builtin_altivec_vupkhsw(
__a);
12903 return __builtin_altivec_vupklsw(
__a);
12908 vec_vupklsw(vector
bool int __a) {
12909 #ifdef __LITTLE_ENDIAN__
12910 return (vector
bool long long)__builtin_altivec_vupkhsw((vector
int)
__a);
12912 return (vector
bool long long)__builtin_altivec_vupklsw((vector
int)
__a);
12922 vec_vsx_ld(
int __a,
const vector
bool int *
__b) {
12923 return (vector
bool int)__builtin_vsx_lxvw4x(
__a,
__b);
12927 vec_vsx_ld(
int __a,
const vector
signed int *
__b) {
12928 return (vector
signed int)__builtin_vsx_lxvw4x(
__a,
__b);
12932 vec_vsx_ld(
int __a,
const signed int *
__b) {
12933 return (vector
signed int)__builtin_vsx_lxvw4x(
__a,
__b);
12937 vec_vsx_ld(
int __a,
const vector
unsigned int *
__b) {
12938 return (vector
unsigned int)__builtin_vsx_lxvw4x(
__a,
__b);
12942 vec_vsx_ld(
int __a,
const unsigned int *
__b) {
12943 return (vector
unsigned int)__builtin_vsx_lxvw4x(
__a,
__b);
12947 vec_vsx_ld(
int __a,
const vector
float *
__b) {
12948 return (vector
float)__builtin_vsx_lxvw4x(
__a,
__b);
12952 const float *
__b) {
12953 return (vector
float)__builtin_vsx_lxvw4x(
__a,
__b);
12956 static __inline__ vector
signed long long __ATTRS_o_ai
12957 vec_vsx_ld(
int __a,
const vector
signed long long *
__b) {
12958 return (vector
signed long long)__builtin_vsx_lxvd2x(
__a,
__b);
12961 static __inline__ vector
unsigned long long __ATTRS_o_ai
12962 vec_vsx_ld(
int __a,
const vector
unsigned long long *
__b) {
12963 return (vector
unsigned long long)__builtin_vsx_lxvd2x(
__a,
__b);
12967 vec_vsx_ld(
int __a,
const vector
double *
__b) {
12968 return (vector
double)__builtin_vsx_lxvd2x(
__a,
__b);
12972 vec_vsx_ld(
int __a,
const double *
__b) {
12973 return (vector
double)__builtin_vsx_lxvd2x(
__a,
__b);
12977 vec_vsx_ld(
int __a,
const vector
bool short *
__b) {
12978 return (vector
bool short)__builtin_vsx_lxvw4x(
__a,
__b);
12982 vec_vsx_ld(
int __a,
const vector
signed short *
__b) {
12983 return (vector
signed short)__builtin_vsx_lxvw4x(
__a,
__b);
12987 vec_vsx_ld(
int __a,
const signed short *
__b) {
12988 return (vector
signed short)__builtin_vsx_lxvw4x(
__a,
__b);
12992 vec_vsx_ld(
int __a,
const vector
unsigned short *
__b) {
12993 return (vector
unsigned short)__builtin_vsx_lxvw4x(
__a,
__b);
12997 vec_vsx_ld(
int __a,
const unsigned short *
__b) {
12998 return (vector
unsigned short)__builtin_vsx_lxvw4x(
__a,
__b);
13002 vec_vsx_ld(
int __a,
const vector
bool char *
__b) {
13003 return (vector
bool char)__builtin_vsx_lxvw4x(
__a,
__b);
13007 vec_vsx_ld(
int __a,
const vector
signed char *
__b) {
13008 return (vector
signed char)__builtin_vsx_lxvw4x(
__a,
__b);
13012 vec_vsx_ld(
int __a,
const signed char *
__b) {
13013 return (vector
signed char)__builtin_vsx_lxvw4x(
__a,
__b);
13017 vec_vsx_ld(
int __a,
const vector
unsigned char *
__b) {
13018 return (vector
unsigned char)__builtin_vsx_lxvw4x(
__a,
__b);
13022 vec_vsx_ld(
int __a,
const unsigned char *
__b) {
13023 return (vector
unsigned char)__builtin_vsx_lxvw4x(
__a,
__b);
13033 vector
bool int *
__c) {
13034 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13039 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13043 unsigned int *
__c) {
13044 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13048 vector
signed int *
__c) {
13049 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13054 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13058 vector
unsigned int *
__c) {
13059 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13063 unsigned int *
__c) {
13064 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13068 vector
float *
__c) {
13069 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13074 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13077 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
signed long long __a,
13079 vector
signed long long *
__c) {
13080 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
13083 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned long long __a,
13085 vector
unsigned long long *
__c) {
13086 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
13090 vector
double *
__c) {
13091 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
13096 __builtin_vsx_stxvd2x((vector
double)
__a,
__b,
__c);
13100 vector
bool short *
__c) {
13101 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13105 signed short *
__c) {
13106 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13110 unsigned short *
__c) {
13111 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13114 vector
signed short *
__c) {
13115 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13119 signed short *
__c) {
13120 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13123 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned short __a,
13125 vector
unsigned short *
__c) {
13126 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13129 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned short __a,
13130 int __b,
unsigned short *
__c) {
13131 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13135 vector
bool char *
__c) {
13136 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13140 signed char *
__c) {
13141 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13145 unsigned char *
__c) {
13146 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13150 vector
signed char *
__c) {
13151 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13155 signed char *
__c) {
13156 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13159 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned char __a,
13161 vector
unsigned char *
__c) {
13162 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13165 static __inline__
void __ATTRS_o_ai vec_vsx_st(vector
unsigned char __a,
13166 int __b,
unsigned char *
__c) {
13167 __builtin_vsx_stxvw4x((vector
int)
__a,
__b,
__c);
13173 #define vec_xxpermdi __builtin_vsx_xxpermdi
13174 #define vec_xxsldwi __builtin_vsx_xxsldwi
13175 #define vec_permi(__a, __b, __c) \
13176 _Generic((__a), vector signed long long \
13177 : __builtin_shufflevector((__a), (__b), (((__c) >> 1) & 0x1), \
13178 (((__c)&0x1) + 2)), \
13179 vector unsigned long long \
13180 : __builtin_shufflevector((__a), (__b), (((__c) >> 1) & 0x1), \
13181 (((__c)&0x1) + 2)), \
13183 : __builtin_shufflevector((__a), (__b), (((__c) >> 1) & 0x1), \
13184 (((__c)&0x1) + 2)))
13189 #define __builtin_altivec_vxor vec_xor
13198 return (vector
signed char)
__a ^
__b;
13203 return __a ^ (vector
signed char)
__b;
13213 return (vector
unsigned char)
__a ^
__b;
13218 return __a ^ (vector
unsigned char)
__b;
13222 vector
bool char __b) {
13227 vector
short __b) {
13232 vector
short __b) {
13233 return (vector
short)
__a ^
__b;
13237 vector
bool short __b) {
13238 return __a ^ (vector short)
__b;
13248 return (vector
unsigned short)
__a ^
__b;
13253 return __a ^ (vector
unsigned short)
__b;
13268 return (vector
int)
__a ^
__b;
13272 vector
bool int __b) {
13283 return (vector
unsigned int)
__a ^
__b;
13292 vector
bool int __b) {
13297 vector
float __b) {
13298 vector
unsigned int __res =
13299 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
13300 return (vector
float)__res;
13304 vector
float __b) {
13305 vector
unsigned int __res =
13306 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
13307 return (vector
float)__res;
13311 vector
bool int __b) {
13312 vector
unsigned int __res =
13313 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
13314 return (vector
float)__res;
13318 static __inline__ vector
signed long long __ATTRS_o_ai
13319 vec_xor(vector
signed long long __a, vector
signed long long __b) {
13323 static __inline__ vector
signed long long __ATTRS_o_ai
13324 vec_xor(vector
bool long long __a, vector
signed long long __b) {
13325 return (vector
signed long long)
__a ^
__b;
13328 static __inline__ vector
signed long long __ATTRS_o_ai
13329 vec_xor(vector
signed long long __a, vector
bool long long __b) {
13330 return __a ^ (vector
signed long long)
__b;
13333 static __inline__ vector
unsigned long long __ATTRS_o_ai
13334 vec_xor(vector
unsigned long long __a, vector
unsigned long long __b) {
13338 static __inline__ vector
unsigned long long __ATTRS_o_ai
13339 vec_xor(vector
bool long long __a, vector
unsigned long long __b) {
13340 return (vector
unsigned long long)
__a ^
__b;
13343 static __inline__ vector
unsigned long long __ATTRS_o_ai
13344 vec_xor(vector
unsigned long long __a, vector
bool long long __b) {
13345 return __a ^ (vector
unsigned long long)
__b;
13349 vec_xor(vector
bool long long __a, vector
bool long long __b) {
13354 vector
double __b) {
13355 return (vector
double)((vector
unsigned long long)
__a ^
13356 (vector
unsigned long long)
__b);
13361 return (vector
double)((vector
unsigned long long)
__a ^
13362 (vector
unsigned long long)
__b);
13366 vector
double __b) {
13367 return (vector
double)((vector
unsigned long long)
__a ^
13368 (vector
unsigned long long)
__b);
13381 return (vector
signed char)
__a ^
__b;
13386 return __a ^ (vector
signed char)
__b;
13396 return (vector
unsigned char)
__a ^
__b;
13401 return __a ^ (vector
unsigned char)
__b;
13405 vector
bool char __b) {
13410 vector
short __b) {
13415 vector
short __b) {
13416 return (vector
short)
__a ^
__b;
13420 vector
bool short __b) {
13421 return __a ^ (vector short)
__b;
13431 return (vector
unsigned short)
__a ^
__b;
13436 return __a ^ (vector
unsigned short)
__b;
13451 return (vector
int)
__a ^
__b;
13455 vector
bool int __b) {
13466 return (vector
unsigned int)
__a ^
__b;
13475 vector
bool int __b) {
13480 vector
float __b) {
13481 vector
unsigned int __res =
13482 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
13483 return (vector
float)__res;
13487 vector
float __b) {
13488 vector
unsigned int __res =
13489 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
13490 return (vector
float)__res;
13494 vector
bool int __b) {
13495 vector
unsigned int __res =
13496 (vector
unsigned int)
__a ^ (vector
unsigned int)
__b;
13497 return (vector
float)__res;
13501 static __inline__ vector
signed long long __ATTRS_o_ai
13502 vec_vxor(vector
signed long long __a, vector
signed long long __b) {
13506 static __inline__ vector
signed long long __ATTRS_o_ai
13507 vec_vxor(vector
bool long long __a, vector
signed long long __b) {
13508 return (vector
signed long long)
__a ^
__b;
13511 static __inline__ vector
signed long long __ATTRS_o_ai
13512 vec_vxor(vector
signed long long __a, vector
bool long long __b) {
13513 return __a ^ (vector
signed long long)
__b;
13516 static __inline__ vector
unsigned long long __ATTRS_o_ai
13517 vec_vxor(vector
unsigned long long __a, vector
unsigned long long __b) {
13521 static __inline__ vector
unsigned long long __ATTRS_o_ai
13522 vec_vxor(vector
bool long long __a, vector
unsigned long long __b) {
13523 return (vector
unsigned long long)
__a ^
__b;
13526 static __inline__ vector
unsigned long long __ATTRS_o_ai
13527 vec_vxor(vector
unsigned long long __a, vector
bool long long __b) {
13528 return __a ^ (vector
unsigned long long)
__b;
13532 vec_vxor(vector
bool long long __a, vector
bool long long __b) {
13613 #ifdef __POWER9_VECTOR__
13615 #define vec_insert4b __builtin_vsx_insertword
13616 #define vec_extract4b __builtin_vsx_extractuword
13621 vec_extract_exp(vector
float __a) {
13622 return __builtin_vsx_xvxexpsp(
__a);
13625 static __inline__ vector
unsigned long long __ATTRS_o_ai
13626 vec_extract_exp(vector
double __a) {
13627 return __builtin_vsx_xvxexpdp(
__a);
13633 vec_extract_sig(vector
float __a) {
13634 return __builtin_vsx_xvxsigsp(
__a);
13637 static __inline__ vector
unsigned long long __ATTRS_o_ai
13638 vec_extract_sig (vector
double __a) {
13639 return __builtin_vsx_xvxsigdp(
__a);
13643 vec_extract_fp32_from_shorth(vector
unsigned short __a) {
13644 vector
unsigned short __b =
13645 #ifdef __LITTLE_ENDIAN__
13646 __builtin_shufflevector(
__a,
__a, 0, -1, 1, -1, 2, -1, 3, -1);
13648 __builtin_shufflevector(
__a,
__a, -1, 0, -1, 1, -1, 2, -1, 3);
13650 return __builtin_vsx_xvcvhpsp(
__b);
13654 vec_extract_fp32_from_shortl(vector
unsigned short __a) {
13655 vector
unsigned short __b =
13656 #ifdef __LITTLE_ENDIAN__
13657 __builtin_shufflevector(
__a,
__a, 4, -1, 5, -1, 6, -1, 7, -1);
13659 __builtin_shufflevector(
__a,
__a, -1, 4, -1, 5, -1, 6, -1, 7);
13661 return __builtin_vsx_xvcvhpsp(
__b);
13680 vector
bool char __b,
13717 vector
bool int __b,
13724 static __inline__ vector
signed long long __ATTRS_o_ai
13730 static __inline__ vector
unsigned long long __ATTRS_o_ai
13789 const short *
__b) {
13794 const vector
short *
__b) {
13818 const vector pixel *
__b) {
13828 const vector
int *
__b) {
13852 const float *
__b) {
13857 const vector
float *
__b) {
13895 const short *
__b) {
13900 const vector
short *
__b) {
13924 const vector pixel *
__b) {
13934 const vector
int *
__b) {
13958 const float *
__b) {
13963 vector
float *
__b) {
14001 const short *
__b) {
14006 const vector
short *
__b) {
14030 const vector pixel *
__b) {
14040 const vector
int *
__b) {
14064 const float *
__b) {
14069 const vector
float *
__b) {
14107 const short *
__b) {
14112 const vector
short *
__b) {
14136 const vector pixel *
__b) {
14146 const vector
int *
__b) {
14170 const float *
__b) {
14175 const vector
float *
__b) {
14183 signed char *
__c) {
14189 vector
signed char *
__c) {
14196 unsigned char *
__c) {
14202 vector
unsigned char *
__c) {
14209 vector
bool char *
__c) {
14222 vector
short *
__c) {
14229 int __b,
unsigned short *
__c) {
14236 vector
unsigned short *
__c) {
14243 vector
bool short *
__c) {
14250 vector pixel *
__c) {
14270 unsigned int *
__c) {
14276 vector
unsigned int *
__c) {
14283 vector
bool int *
__c) {
14290 vector
float *
__c) {
14299 signed char *
__c) {
14305 vector
signed char *
__c) {
14312 int __b,
unsigned char *
__c) {
14319 vector
unsigned char *
__c) {
14326 vector
bool char *
__c) {
14339 vector
short *
__c) {
14346 int __b,
unsigned short *
__c) {
14353 vector
unsigned short *
__c) {
14360 vector
bool short *
__c) {
14367 vector pixel *
__c) {
14387 unsigned int *
__c) {
14393 vector
unsigned int *
__c) {
14400 vector
bool int *
__c) {
14407 vector
float *
__c) {
14416 signed char *
__c) {
14422 vector
signed char *
__c) {
14429 unsigned char *
__c) {
14435 vector
unsigned char *
__c) {
14442 vector
bool char *
__c) {
14455 vector
short *
__c) {
14462 int __b,
unsigned short *
__c) {
14469 vector
unsigned short *
__c) {
14476 vector
bool short *
__c) {
14483 vector pixel *
__c) {
14503 unsigned int *
__c) {
14509 vector
unsigned int *
__c) {
14516 vector
bool int *
__c) {
14523 vector
float *
__c) {
14532 signed char *
__c) {
14538 vector
signed char *
__c) {
14545 int __b,
unsigned char *
__c) {
14552 vector
unsigned char *
__c) {
14559 vector
bool char *
__c) {
14572 vector
short *
__c) {
14579 int __b,
unsigned short *
__c) {
14586 vector
unsigned short *
__c) {
14593 vector
bool short *
__c) {
14600 vector pixel *
__c) {
14620 unsigned int *
__c) {
14626 vector
unsigned int *
__c) {
14633 vector
bool int *
__c) {
14640 vector
float *
__c) {
14650 const vector
signed char __zero = (vector
signed char)0;
14651 vector
signed char __res =
14652 __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1,
14653 -1, -1, -1, -1, -1, -1, -1, -1);
14660 const vector
unsigned char __zero = (vector
unsigned char)(0);
14661 vector
unsigned char __res =
14662 __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1,
14663 -1, -1, -1, -1, -1, -1, -1, -1);
14669 const vector
short __zero = (vector short)(0);
14670 vector
short __res =
14671 __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1);
14678 const vector
unsigned short __zero = (vector
unsigned short)(0);
14679 vector
unsigned short __res =
14680 __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1, -1, -1, -1, -1);
14686 const vector
int __zero = (vector
int)(0);
14687 vector
int __res = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
14694 const vector
unsigned int __zero = (vector
unsigned int)(0);
14695 vector
unsigned int __res =
14696 __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
14702 const vector
float __zero = (vector
float)(0);
14703 vector
float __res = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
14710 const vector
double __zero = (vector
double)(0);
14711 vector
double __res = __builtin_shufflevector(__zero, __zero, -1, -1);
14716 static __inline__ vector
signed long long __ATTRS_o_ai
14718 const vector
signed long long __zero = (vector
signed long long)(0);
14719 vector
signed long long __res =
14720 __builtin_shufflevector(__zero, __zero, -1, -1);
14725 static __inline__ vector
unsigned long long __ATTRS_o_ai
14727 const vector
unsigned long long __zero = (vector
unsigned long long)(0);
14728 vector
unsigned long long __res =
14729 __builtin_shufflevector(__zero, __zero, -1, -1);
14738 return (vector
signed char)(
__a);
14743 return (vector
unsigned char)(
__a);
14747 return (vector
short)(
__a);
14752 return (vector
unsigned short)(
__a);
14756 return (vector
int)(
__a);
14761 return (vector
unsigned int)(
__a);
14765 static __inline__ vector
signed long long __ATTRS_o_ai
14767 return (vector
signed long long)(
__a);
14770 static __inline__ vector
unsigned long long __ATTRS_o_ai
14772 return (vector
unsigned long long)(
__a);
14775 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
14776 defined(__SIZEOF_INT128__)
14779 return (vector
signed __int128)(
__a);
14782 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
14784 return (vector
unsigned __int128)(
__a);
14790 return (vector
double)(
__a);
14795 return (vector
float)(
__a);
14803 vector
signed char __b) {
14804 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14809 vector
bool char __b) {
14810 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14815 vector
unsigned char __b) {
14816 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14821 vector
bool char __b) {
14822 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14827 vector
signed char __b) {
14828 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14833 vector
unsigned char __b) {
14834 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14839 vector
bool char __b) {
14840 return __builtin_altivec_vcmpequb_p(
__CR6_LT, (vector
char)
__a,
14845 vector
short __b) {
14850 vector
bool short __b) {
14851 return __builtin_altivec_vcmpequh_p(
__CR6_LT,
__a, (vector
short)
__b);
14855 vector
unsigned short __b) {
14856 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
14857 (vector
short)
__b);
14861 vector
bool short __b) {
14862 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
14863 (vector
short)
__b);
14867 vector
short __b) {
14868 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
14869 (vector
short)
__b);
14873 vector
unsigned short __b) {
14874 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
14875 (vector
short)
__b);
14879 vector
bool short __b) {
14880 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
14881 (vector
short)
__b);
14885 vector pixel
__b) {
14886 return __builtin_altivec_vcmpequh_p(
__CR6_LT, (vector
short)
__a,
14887 (vector
short)
__b);
14895 vector
bool int __b) {
14896 return __builtin_altivec_vcmpequw_p(
__CR6_LT,
__a, (vector
int)
__b);
14900 vector
unsigned int __b) {
14901 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
14906 vector
bool int __b) {
14907 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
14913 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
14918 vector
unsigned int __b) {
14919 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
14924 vector
bool int __b) {
14925 return __builtin_altivec_vcmpequw_p(
__CR6_LT, (vector
int)
__a,
14931 vector
signed long long __b) {
14932 #ifdef __POWER8_VECTOR__
14942 vector
bool long long __b) {
14943 return vec_all_eq((vector
signed long long)
__a, (vector
signed long long)
__b);
14947 vector
unsigned long long __b) {
14948 return vec_all_eq((vector
signed long long)
__a, (vector
signed long long)
__b);
14952 vector
bool long long __b) {
14953 return vec_all_eq((vector
signed long long)
__a, (vector
signed long long)
__b);
14957 vector
long long __b) {
14958 return vec_all_eq((vector
signed long long)
__a, (vector
signed long long)
__b);
14962 vector
unsigned long long __b) {
14963 return vec_all_eq((vector
signed long long)
__a, (vector
signed long long)
__b);
14967 vector
bool long long __b) {
14968 return vec_all_eq((vector
signed long long)
__a, (vector
signed long long)
__b);
14973 vector
float __b) {
14983 vector
double __b) {
14988 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
14990 vector
signed __int128
__b) {
14991 return __builtin_altivec_vcmpequq_p(
__CR6_LT, (vector
unsigned __int128)
__a,
14992 (vector
signed __int128)
__b);
14996 vector
unsigned __int128
__b) {
14997 return __builtin_altivec_vcmpequq_p(
__CR6_LT,
__a,
14998 (vector
signed __int128)
__b);
15002 vector
bool __int128
__b) {
15003 return __builtin_altivec_vcmpequq_p(
__CR6_LT, (vector
unsigned __int128)
__a,
15004 (vector
signed __int128)
__b);
15011 vector
signed char __b) {
15016 vector
bool char __b) {
15017 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ, (vector
signed char)
__b,
__a);
15021 vector
unsigned char __b) {
15026 vector
bool char __b) {
15027 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__b,
__a);
15031 vector
signed char __b) {
15032 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ,
__b, (vector
signed char)
__a);
15036 vector
unsigned char __b) {
15037 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ,
__b, (vector
unsigned char)
__a);
15041 vector
bool char __b) {
15042 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__b,
15043 (vector
unsigned char)
__a);
15047 vector
short __b) {
15052 vector
bool short __b) {
15053 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ, (vector
short)
__b,
__a);
15057 vector
unsigned short __b) {
15062 vector
bool short __b) {
15063 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__b,
15068 vector
short __b) {
15069 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ,
__b, (vector
signed short)
__a);
15073 vector
unsigned short __b) {
15074 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ,
__b,
15075 (vector
unsigned short)
__a);
15079 vector
bool short __b) {
15080 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__b,
15081 (vector
unsigned short)
__a);
15089 vector
bool int __b) {
15090 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ, (vector
int)
__b,
__a);
15094 vector
unsigned int __b) {
15099 vector
bool int __b) {
15100 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__b,
__a);
15105 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ,
__b, (vector
signed int)
__a);
15109 vector
unsigned int __b) {
15110 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ,
__b, (vector
unsigned int)
__a);
15114 vector
bool int __b) {
15115 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__b,
15116 (vector
unsigned int)
__a);
15121 vector
signed long long __b) {
15125 vector
bool long long __b) {
15126 return __builtin_altivec_vcmpgtsd_p(
__CR6_EQ, (vector
signed long long)
__b,
15131 vector
unsigned long long __b) {
15136 vector
bool long long __b) {
15137 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__b,
15142 vector
signed long long __b) {
15143 return __builtin_altivec_vcmpgtsd_p(
__CR6_EQ,
__b,
15144 (vector
signed long long)
__a);
15148 vector
unsigned long long __b) {
15149 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ,
__b,
15150 (vector
unsigned long long)
__a);
15154 vector
bool long long __b) {
15155 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__b,
15156 (vector
unsigned long long)
__a);
15161 vector
float __b) {
15171 vector
double __b) {
15176 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
15178 vector
signed __int128
__b) {
15183 vector
unsigned __int128
__b) {
15191 vector
signed char __b) {
15196 vector
bool char __b) {
15197 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT,
__a, (vector
signed char)
__b);
15201 vector
unsigned char __b) {
15206 vector
bool char __b) {
15207 return __builtin_altivec_vcmpgtub_p(
__CR6_LT,
__a, (vector
unsigned char)
__b);
15211 vector
signed char __b) {
15212 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT, (vector
signed char)
__a,
__b);
15216 vector
unsigned char __b) {
15217 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__a,
__b);
15221 vector
bool char __b) {
15222 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__a,
15223 (vector
unsigned char)
__b);
15227 vector
short __b) {
15232 vector
bool short __b) {
15233 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT,
__a, (vector
short)
__b);
15237 vector
unsigned short __b) {
15242 vector
bool short __b) {
15243 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT,
__a,
15244 (vector
unsigned short)
__b);
15248 vector
short __b) {
15249 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT, (vector
signed short)
__a,
__b);
15253 vector
unsigned short __b) {
15254 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__a,
15259 vector
bool short __b) {
15260 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__a,
15261 (vector
unsigned short)
__b);
15269 vector
bool int __b) {
15270 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT,
__a, (vector
int)
__b);
15274 vector
unsigned int __b) {
15279 vector
bool int __b) {
15280 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT,
__a, (vector
unsigned int)
__b);
15285 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT, (vector
signed int)
__a,
__b);
15289 vector
unsigned int __b) {
15290 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__a,
__b);
15294 vector
bool int __b) {
15295 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__a,
15296 (vector
unsigned int)
__b);
15301 vector
signed long long __b) {
15305 vector
bool long long __b) {
15306 return __builtin_altivec_vcmpgtsd_p(
__CR6_LT,
__a,
15307 (vector
signed long long)
__b);
15311 vector
unsigned long long __b) {
15316 vector
bool long long __b) {
15317 return __builtin_altivec_vcmpgtud_p(
__CR6_LT,
__a,
15318 (vector
unsigned long long)
__b);
15322 vector
signed long long __b) {
15323 return __builtin_altivec_vcmpgtsd_p(
__CR6_LT, (vector
signed long long)
__a,
15328 vector
unsigned long long __b) {
15329 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__a,
15334 vector
bool long long __b) {
15335 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__a,
15336 (vector
unsigned long long)
__b);
15341 vector
float __b) {
15351 vector
double __b) {
15356 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
15358 vector
signed __int128
__b) {
15363 vector
unsigned __int128
__b) {
15371 vec_all_in(vector
float __a, vector
float __b) {
15378 vector
signed char __b) {
15383 vector
bool char __b) {
15384 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ,
__a, (vector
signed char)
__b);
15388 vector
unsigned char __b) {
15393 vector
bool char __b) {
15394 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ,
__a, (vector
unsigned char)
__b);
15398 vector
signed char __b) {
15399 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ, (vector
signed char)
__a,
__b);
15403 vector
unsigned char __b) {
15404 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__a,
__b);
15408 vector
bool char __b) {
15409 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ, (vector
unsigned char)
__a,
15410 (vector
unsigned char)
__b);
15414 vector
short __b) {
15419 vector
bool short __b) {
15420 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ,
__a, (vector
short)
__b);
15424 vector
unsigned short __b) {
15429 vector
bool short __b) {
15430 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ,
__a,
15431 (vector
unsigned short)
__b);
15435 vector
short __b) {
15436 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ, (vector
signed short)
__a,
__b);
15440 vector
unsigned short __b) {
15441 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__a,
15446 vector
bool short __b) {
15447 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ, (vector
unsigned short)
__a,
15448 (vector
unsigned short)
__b);
15456 vector
bool int __b) {
15457 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ,
__a, (vector
int)
__b);
15461 vector
unsigned int __b) {
15466 vector
bool int __b) {
15467 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ,
__a, (vector
unsigned int)
__b);
15472 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ, (vector
signed int)
__a,
__b);
15476 vector
unsigned int __b) {
15477 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__a,
__b);
15481 vector
bool int __b) {
15482 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ, (vector
unsigned int)
__a,
15483 (vector
unsigned int)
__b);
15488 vector
signed long long __b) {
15493 vector
unsigned long long __b) {
15498 vector
bool long long __b) {
15499 return __builtin_altivec_vcmpgtsd_p(
__CR6_EQ,
__a,
15500 (vector
signed long long)
__b);
15504 vector
bool long long __b) {
15505 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ,
__a,
15506 (vector
unsigned long long)
__b);
15510 vector
signed long long __b) {
15511 return __builtin_altivec_vcmpgtsd_p(
__CR6_EQ, (vector
signed long long)
__a,
15516 vector
unsigned long long __b) {
15517 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__a,
15522 vector
bool long long __b) {
15523 return __builtin_altivec_vcmpgtud_p(
__CR6_EQ, (vector
unsigned long long)
__a,
15524 (vector
unsigned long long)
__b);
15529 vector
float __b) {
15539 vector
double __b) {
15544 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
15546 vector
signed __int128
__b) {
15551 vector
unsigned __int128
__b) {
15559 vector
signed char __b) {
15564 vector
bool char __b) {
15565 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT, (vector
signed char)
__b,
__a);
15569 vector
unsigned char __b) {
15574 vector
bool char __b) {
15575 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__b,
__a);
15579 vector
signed char __b) {
15580 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT,
__b, (vector
signed char)
__a);
15584 vector
unsigned char __b) {
15585 return __builtin_altivec_vcmpgtub_p(
__CR6_LT,
__b, (vector
unsigned char)
__a);
15589 vector
bool char __b) {
15590 return __builtin_altivec_vcmpgtub_p(
__CR6_LT, (vector
unsigned char)
__b,
15591 (vector
unsigned char)
__a);
15595 vector
short __b) {
15600 vector
bool short __b) {
15601 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT, (vector
short)
__b,
__a);
15605 vector
unsigned short __b) {
15610 vector
bool short __b) {
15611 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__b,
15616 vector
short __b) {
15617 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT,
__b, (vector
signed short)
__a);
15621 vector
unsigned short __b) {
15622 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT,
__b,
15623 (vector
unsigned short)
__a);
15627 vector
bool short __b) {
15628 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT, (vector
unsigned short)
__b,
15629 (vector
unsigned short)
__a);
15637 vector
bool int __b) {
15638 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT, (vector
int)
__b,
__a);
15642 vector
unsigned int __b) {
15647 vector
bool int __b) {
15648 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__b,
__a);
15653 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT,
__b, (vector
signed int)
__a);
15657 vector
unsigned int __b) {
15658 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT,
__b, (vector
unsigned int)
__a);
15662 vector
bool int __b) {
15663 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT, (vector
unsigned int)
__b,
15664 (vector
unsigned int)
__a);
15669 vector
signed long long __b) {
15674 vector
unsigned long long __b) {
15679 vector
bool long long __b) {
15680 return __builtin_altivec_vcmpgtsd_p(
__CR6_LT, (vector
signed long long)
__b,
15685 vector
bool long long __b) {
15686 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__b,
15691 vector
signed long long __b) {
15692 return __builtin_altivec_vcmpgtsd_p(
__CR6_LT,
__b,
15693 (vector
signed long long)
__a);
15697 vector
unsigned long long __b) {
15698 return __builtin_altivec_vcmpgtud_p(
__CR6_LT,
__b,
15699 (vector
unsigned long long)
__a);
15703 vector
bool long long __b) {
15704 return __builtin_altivec_vcmpgtud_p(
__CR6_LT, (vector
unsigned long long)
__b,
15705 (vector
unsigned long long)
__a);
15710 vector
float __b) {
15720 vector
double __b) {
15725 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
15727 vector
signed __int128
__b) {
15732 vector
unsigned __int128
__b) {
15756 vector
signed char __b) {
15757 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15762 vector
bool char __b) {
15763 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15768 vector
unsigned char __b) {
15769 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15774 vector
bool char __b) {
15775 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15780 vector
signed char __b) {
15781 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15786 vector
unsigned char __b) {
15787 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15792 vector
bool char __b) {
15793 return __builtin_altivec_vcmpequb_p(
__CR6_EQ, (vector
char)
__a,
15798 vector
short __b) {
15803 vector
bool short __b) {
15804 return __builtin_altivec_vcmpequh_p(
__CR6_EQ,
__a, (vector
short)
__b);
15808 vector
unsigned short __b) {
15809 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
15810 (vector
short)
__b);
15814 vector
bool short __b) {
15815 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
15816 (vector
short)
__b);
15820 vector
short __b) {
15821 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
15822 (vector
short)
__b);
15826 vector
unsigned short __b) {
15827 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
15828 (vector
short)
__b);
15832 vector
bool short __b) {
15833 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
15834 (vector
short)
__b);
15838 vector pixel
__b) {
15839 return __builtin_altivec_vcmpequh_p(
__CR6_EQ, (vector
short)
__a,
15840 (vector
short)
__b);
15848 vector
bool int __b) {
15849 return __builtin_altivec_vcmpequw_p(
__CR6_EQ,
__a, (vector
int)
__b);
15853 vector
unsigned int __b) {
15854 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
15859 vector
bool int __b) {
15860 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
15866 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
15871 vector
unsigned int __b) {
15872 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
15877 vector
bool int __b) {
15878 return __builtin_altivec_vcmpequw_p(
__CR6_EQ, (vector
int)
__a,
15884 vector
signed long long __b) {
15889 vector
unsigned long long __b) {
15890 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
long long)
__a,
15891 (vector
long long)
__b);
15895 vector
bool long long __b) {
15896 return __builtin_altivec_vcmpequd_p(
__CR6_EQ,
__a,
15897 (vector
signed long long)
__b);
15901 vector
bool long long __b) {
15902 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
15903 (vector
signed long long)
__b);
15907 vector
signed long long __b) {
15908 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
15909 (vector
signed long long)
__b);
15913 vector
unsigned long long __b) {
15914 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
15915 (vector
signed long long)
__b);
15919 vector
bool long long __b) {
15920 return __builtin_altivec_vcmpequd_p(
__CR6_EQ, (vector
signed long long)
__a,
15921 (vector
signed long long)
__b);
15926 vector
float __b) {
15936 vector
double __b) {
15941 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
15943 vector
signed __int128
__b) {
15944 return __builtin_altivec_vcmpequq_p(
__CR6_EQ, (vector
unsigned __int128)
__a,
15949 vector
unsigned __int128
__b) {
15950 return __builtin_altivec_vcmpequq_p(
__CR6_EQ,
__a,
15951 (vector
signed __int128)
__b);
15955 vector
bool __int128
__b) {
15956 return __builtin_altivec_vcmpequq_p(
__CR6_EQ, (vector
unsigned __int128)
__a,
15957 (vector
signed __int128)
__b);
15964 vector
float __b) {
15974 vector
double __b) {
15982 vector
float __b) {
15992 vector
double __b) {
16010 vector
double __b) {
16028 vector
double __b) {
16053 vector
signed char __b) {
16059 vector
bool char __b) {
16065 vector
unsigned char __b) {
16071 vector
bool char __b) {
16077 vector
signed char __b) {
16083 vector
unsigned char __b) {
16089 vector
bool char __b) {
16095 vector
short __b) {
16100 vector
bool short __b) {
16105 vector
unsigned short __b) {
16107 (vector
short)
__b);
16111 vector
bool short __b) {
16113 (vector
short)
__b);
16117 vector
short __b) {
16119 (vector
short)
__b);
16123 vector
unsigned short __b) {
16125 (vector
short)
__b);
16129 vector
bool short __b) {
16131 (vector
short)
__b);
16135 vector pixel
__b) {
16137 (vector
short)
__b);
16145 vector
bool int __b) {
16150 vector
unsigned int __b) {
16156 vector
bool int __b) {
16168 vector
unsigned int __b) {
16174 vector
bool int __b) {
16181 vector
signed long long __b) {
16186 vector
unsigned long long __b) {
16187 return __builtin_altivec_vcmpequd_p(
__CR6_EQ_REV, (vector
long long)
__a,
16188 (vector
long long)
__b);
16192 vector
bool long long __b) {
16194 (vector
signed long long)
__b);
16198 vector
bool long long __b) {
16199 return __builtin_altivec_vcmpequd_p(
16204 vector
signed long long __b) {
16205 return __builtin_altivec_vcmpequd_p(
16210 vector
unsigned long long __b) {
16211 return __builtin_altivec_vcmpequd_p(
16216 vector
bool long long __b) {
16217 return __builtin_altivec_vcmpequd_p(
16223 vector
float __b) {
16233 vector
double __b) {
16238 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
16240 vector
signed __int128
__b) {
16242 (vector
unsigned __int128)
__a,
__b);
16246 vector
unsigned __int128
__b) {
16248 (vector
signed __int128)
__b);
16252 vector
bool __int128
__b) {
16253 return __builtin_altivec_vcmpequq_p(
16261 vector
signed char __b) {
16266 vector
bool char __b) {
16267 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT_REV, (vector
signed char)
__b,
16272 vector
unsigned char __b) {
16277 vector
bool char __b) {
16278 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__b,
16283 vector
signed char __b) {
16285 (vector
signed char)
__a);
16289 vector
unsigned char __b) {
16291 (vector
unsigned char)
__a);
16295 vector
bool char __b) {
16296 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__b,
16297 (vector
unsigned char)
__a);
16301 vector
short __b) {
16306 vector
bool short __b) {
16311 vector
unsigned short __b) {
16316 vector
bool short __b) {
16317 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__b,
16322 vector
short __b) {
16324 (vector
signed short)
__a);
16328 vector
unsigned short __b) {
16330 (vector
unsigned short)
__a);
16334 vector
bool short __b) {
16335 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__b,
16336 (vector
unsigned short)
__a);
16344 vector
bool int __b) {
16349 vector
unsigned int __b) {
16354 vector
bool int __b) {
16355 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__b,
16362 (vector
signed int)
__a);
16366 vector
unsigned int __b) {
16368 (vector
unsigned int)
__a);
16372 vector
bool int __b) {
16373 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__b,
16374 (vector
unsigned int)
__a);
16379 vector
signed long long __b) {
16384 vector
unsigned long long __b) {
16389 vector
bool long long __b) {
16391 (vector
signed long long)
__b,
__a);
16395 vector
bool long long __b) {
16397 (vector
unsigned long long)
__b,
__a);
16401 vector
signed long long __b) {
16403 (vector
signed long long)
__a);
16407 vector
unsigned long long __b) {
16409 (vector
unsigned long long)
__a);
16413 vector
bool long long __b) {
16415 (vector
unsigned long long)
__b,
16416 (vector
unsigned long long)
__a);
16421 vector
float __b) {
16431 vector
double __b) {
16436 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
16438 vector
signed __int128
__b) {
16443 vector
unsigned __int128
__b) {
16451 vector
signed char __b) {
16456 vector
bool char __b) {
16458 (vector
signed char)
__b);
16462 vector
unsigned char __b) {
16467 vector
bool char __b) {
16469 (vector
unsigned char)
__b);
16473 vector
signed char __b) {
16474 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ_REV, (vector
signed char)
__a,
16479 vector
unsigned char __b) {
16480 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__a,
16485 vector
bool char __b) {
16486 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__a,
16487 (vector
unsigned char)
__b);
16491 vector
short __b) {
16496 vector
bool short __b) {
16501 vector
unsigned short __b) {
16506 vector
bool short __b) {
16508 (vector
unsigned short)
__b);
16512 vector
short __b) {
16513 return __builtin_altivec_vcmpgtsh_p(
__CR6_EQ_REV, (vector
signed short)
__a,
16518 vector
unsigned short __b) {
16519 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__a,
16524 vector
bool short __b) {
16525 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__a,
16526 (vector
unsigned short)
__b);
16534 vector
bool int __b) {
16539 vector
unsigned int __b) {
16544 vector
bool int __b) {
16546 (vector
unsigned int)
__b);
16551 return __builtin_altivec_vcmpgtsw_p(
__CR6_EQ_REV, (vector
signed int)
__a,
16556 vector
unsigned int __b) {
16557 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__a,
16562 vector
bool int __b) {
16563 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__a,
16564 (vector
unsigned int)
__b);
16569 vector
signed long long __b) {
16574 vector
unsigned long long __b) {
16579 vector
bool long long __b) {
16581 (vector
signed long long)
__b);
16585 vector
bool long long __b) {
16587 (vector
unsigned long long)
__b);
16591 vector
signed long long __b) {
16593 (vector
signed long long)
__a,
__b);
16597 vector
unsigned long long __b) {
16599 (vector
unsigned long long)
__a,
__b);
16603 vector
bool long long __b) {
16605 (vector
unsigned long long)
__a,
16606 (vector
unsigned long long)
__b);
16611 vector
float __b) {
16621 vector
double __b) {
16626 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
16628 vector
signed __int128
__b) {
16633 vector
unsigned __int128
__b) {
16641 vector
signed char __b) {
16646 vector
bool char __b) {
16648 (vector
signed char)
__b);
16652 vector
unsigned char __b) {
16657 vector
bool char __b) {
16659 (vector
unsigned char)
__b);
16663 vector
signed char __b) {
16664 return __builtin_altivec_vcmpgtsb_p(
__CR6_LT_REV, (vector
signed char)
__a,
16669 vector
unsigned char __b) {
16670 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__a,
16675 vector
bool char __b) {
16676 return __builtin_altivec_vcmpgtub_p(
__CR6_LT_REV, (vector
unsigned char)
__a,
16677 (vector
unsigned char)
__b);
16681 vector
short __b) {
16686 vector
bool short __b) {
16691 vector
unsigned short __b) {
16696 vector
bool short __b) {
16698 (vector
unsigned short)
__b);
16702 vector
short __b) {
16703 return __builtin_altivec_vcmpgtsh_p(
__CR6_LT_REV, (vector
signed short)
__a,
16708 vector
unsigned short __b) {
16709 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__a,
16714 vector
bool short __b) {
16715 return __builtin_altivec_vcmpgtuh_p(
__CR6_LT_REV, (vector
unsigned short)
__a,
16716 (vector
unsigned short)
__b);
16724 vector
bool int __b) {
16729 vector
unsigned int __b) {
16734 vector
bool int __b) {
16736 (vector
unsigned int)
__b);
16741 return __builtin_altivec_vcmpgtsw_p(
__CR6_LT_REV, (vector
signed int)
__a,
16746 vector
unsigned int __b) {
16747 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__a,
16752 vector
bool int __b) {
16753 return __builtin_altivec_vcmpgtuw_p(
__CR6_LT_REV, (vector
unsigned int)
__a,
16754 (vector
unsigned int)
__b);
16759 vector
signed long long __b) {
16764 vector
unsigned long long __b) {
16769 vector
bool long long __b) {
16771 (vector
signed long long)
__b);
16775 vector
bool long long __b) {
16777 (vector
unsigned long long)
__b);
16781 vector
signed long long __b) {
16783 (vector
signed long long)
__a,
__b);
16787 vector
unsigned long long __b) {
16789 (vector
unsigned long long)
__a,
__b);
16793 vector
bool long long __b) {
16795 (vector
unsigned long long)
__a,
16796 (vector
unsigned long long)
__b);
16801 vector
float __b) {
16811 vector
double __b) {
16816 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
16818 vector
signed __int128
__b) {
16823 vector
unsigned __int128
__b) {
16831 vector
signed char __b) {
16836 vector
bool char __b) {
16837 return __builtin_altivec_vcmpgtsb_p(
__CR6_EQ_REV, (vector
signed char)
__b,
16842 vector
unsigned char __b) {
16847 vector
bool char __b) {
16848 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__b,
16853 vector
signed char __b) {
16855 (vector
signed char)
__a);
16859 vector
unsigned char __b) {
16861 (vector
unsigned char)
__a);
16865 vector
bool char __b) {
16866 return __builtin_altivec_vcmpgtub_p(
__CR6_EQ_REV, (vector
unsigned char)
__b,
16867 (vector
unsigned char)
__a);
16871 vector
short __b) {
16876 vector
bool short __b) {
16881 vector
unsigned short __b) {
16886 vector
bool short __b) {
16887 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__b,
16892 vector
short __b) {
16894 (vector
signed short)
__a);
16898 vector
unsigned short __b) {
16900 (vector
unsigned short)
__a);
16904 vector
bool short __b) {
16905 return __builtin_altivec_vcmpgtuh_p(
__CR6_EQ_REV, (vector
unsigned short)
__b,
16906 (vector
unsigned short)
__a);
16914 vector
bool int __b) {
16919 vector
unsigned int __b) {
16924 vector
bool int __b) {
16925 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__b,
16932 (vector
signed int)
__a);
16936 vector
unsigned int __b) {
16938 (vector
unsigned int)
__a);
16942 vector
bool int __b) {
16943 return __builtin_altivec_vcmpgtuw_p(
__CR6_EQ_REV, (vector
unsigned int)
__b,
16944 (vector
unsigned int)
__a);
16949 vector
signed long long __b) {
16954 vector
unsigned long long __b) {
16959 vector
bool long long __b) {
16961 (vector
signed long long)
__b,
__a);
16965 vector
bool long long __b) {
16967 (vector
unsigned long long)
__b,
__a);
16971 vector
signed long long __b) {
16973 (vector
signed long long)
__a);
16977 vector
unsigned long long __b) {
16979 (vector
unsigned long long)
__a);
16983 vector
bool long long __b) {
16985 (vector
unsigned long long)
__b,
16986 (vector
unsigned long long)
__a);
16991 vector
float __b) {
17001 vector
double __b) {
17006 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
17008 vector
signed __int128
__b) {
17013 vector
unsigned __int128
__b) {
17036 vector
signed char __b) {
17042 vector
bool char __b) {
17048 vector
unsigned char __b) {
17054 vector
bool char __b) {
17060 vector
signed char __b) {
17066 vector
unsigned char __b) {
17072 vector
bool char __b) {
17078 vector
short __b) {
17083 vector
bool short __b) {
17088 vector
unsigned short __b) {
17090 (vector
short)
__b);
17094 vector
bool short __b) {
17096 (vector
short)
__b);
17100 vector
short __b) {
17102 (vector
short)
__b);
17106 vector
unsigned short __b) {
17108 (vector
short)
__b);
17112 vector
bool short __b) {
17114 (vector
short)
__b);
17118 vector pixel
__b) {
17120 (vector
short)
__b);
17128 vector
bool int __b) {
17133 vector
unsigned int __b) {
17139 vector
bool int __b) {
17151 vector
unsigned int __b) {
17157 vector
bool int __b) {
17164 vector
signed long long __b) {
17165 #ifdef __POWER8_VECTOR__
17175 vector
unsigned long long __b) {
17176 return vec_any_ne((vector
signed long long)
__a, (vector
signed long long)
__b);
17180 vector
bool long long __b) {
17181 return vec_any_ne((vector
signed long long)
__a, (vector
signed long long)
__b);
17185 vector
bool long long __b) {
17186 return vec_any_ne((vector
signed long long)
__a, (vector
signed long long)
__b);
17190 vector
signed long long __b) {
17191 return vec_any_ne((vector
signed long long)
__a, (vector
signed long long)
__b);
17195 vector
unsigned long long __b) {
17196 return vec_any_ne((vector
signed long long)
__a, (vector
signed long long)
__b);
17200 vector
bool long long __b) {
17201 return vec_any_ne((vector
signed long long)
__a, (vector
signed long long)
__b);
17206 vector
float __b) {
17216 vector
double __b) {
17221 #if defined(__POWER10_VECTOR__) && defined(__SIZEOF_INT128__)
17223 vector
signed __int128
__b) {
17225 (vector
unsigned __int128)
__a,
__b);
17229 vector
unsigned __int128
__b) {
17231 (vector
signed __int128)
__b);
17235 vector
bool __int128
__b) {
17236 return __builtin_altivec_vcmpequq_p(
17244 vector
float __b) {
17254 vector
double __b) {
17262 vector
float __b) {
17272 vector
double __b) {
17280 vector
float __b) {
17290 vector
double __b) {
17298 vector
float __b) {
17308 vector
double __b) {
17332 vec_any_out(vector
float __a, vector
float __b) {
17350 #define vec_sbox_be __builtin_altivec_crypto_vsbox
17351 #define vec_cipher_be __builtin_altivec_crypto_vcipher
17352 #define vec_cipherlast_be __builtin_altivec_crypto_vcipherlast
17353 #define vec_ncipher_be __builtin_altivec_crypto_vncipher
17354 #define vec_ncipherlast_be __builtin_altivec_crypto_vncipherlast
17357 static __inline__ vector
unsigned char __attribute__((__always_inline__))
17358 __builtin_crypto_vsbox(vector
unsigned char __a) {
17359 return __builtin_altivec_crypto_vsbox(
__a);
17362 static __inline__ vector
unsigned char __attribute__((__always_inline__))
17363 __builtin_crypto_vcipher(vector
unsigned char __a,
17364 vector
unsigned char __b) {
17365 return __builtin_altivec_crypto_vcipher(
__a,
__b);
17368 static __inline__ vector
unsigned char __attribute__((__always_inline__))
17369 __builtin_crypto_vcipherlast(vector
unsigned char __a,
17370 vector
unsigned char __b) {
17371 return __builtin_altivec_crypto_vcipherlast(
__a,
__b);
17374 static __inline__ vector
unsigned char __attribute__((__always_inline__))
17375 __builtin_crypto_vncipher(vector
unsigned char __a,
17376 vector
unsigned char __b) {
17377 return __builtin_altivec_crypto_vncipher(
__a,
__b);
17380 static __inline__ vector
unsigned char __attribute__((__always_inline__))
17381 __builtin_crypto_vncipherlast(vector
unsigned char __a,
17382 vector
unsigned char __b) {
17383 return __builtin_altivec_crypto_vncipherlast(
__a,
__b);
17387 #define __builtin_crypto_vshasigmad __builtin_altivec_crypto_vshasigmad
17388 #define __builtin_crypto_vshasigmaw __builtin_altivec_crypto_vshasigmaw
17390 #define vec_shasigma_be(X, Y, Z) \
17391 _Generic((X), vector unsigned int \
17392 : __builtin_crypto_vshasigmaw, vector unsigned long long \
17393 : __builtin_crypto_vshasigmad)((X), (Y), (Z))
17396 #ifdef __POWER8_VECTOR__
17398 vec_permxor(vector
bool char __a, vector
bool char __b,
17399 vector
bool char __c) {
17400 return (vector
bool char)__builtin_altivec_crypto_vpermxor(
17401 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
17402 (vector
unsigned char)
__c);
17406 vec_permxor(vector
signed char __a, vector
signed char __b,
17407 vector
signed char __c) {
17408 return (vector
signed char)__builtin_altivec_crypto_vpermxor(
17409 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
17410 (vector
unsigned char)
__c);
17414 vec_permxor(vector
unsigned char __a, vector
unsigned char __b,
17415 vector
unsigned char __c) {
17416 return __builtin_altivec_crypto_vpermxor(
__a,
__b,
__c);
17420 __builtin_crypto_vpermxor(vector
unsigned char __a, vector
unsigned char __b,
17421 vector
unsigned char __c) {
17422 return __builtin_altivec_crypto_vpermxor(
__a,
__b,
__c);
17426 __builtin_crypto_vpermxor(vector
unsigned short __a, vector
unsigned short __b,
17427 vector
unsigned short __c) {
17428 return (vector
unsigned short)__builtin_altivec_crypto_vpermxor(
17429 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
17430 (vector
unsigned char)
__c);
17433 static __inline__ vector
unsigned int __ATTRS_o_ai __builtin_crypto_vpermxor(
17434 vector
unsigned int __a, vector
unsigned int __b, vector
unsigned int __c) {
17435 return (vector
unsigned int)__builtin_altivec_crypto_vpermxor(
17436 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
17437 (vector
unsigned char)
__c);
17440 static __inline__ vector
unsigned long long __ATTRS_o_ai
17441 __builtin_crypto_vpermxor(vector
unsigned long long __a,
17442 vector
unsigned long long __b,
17443 vector
unsigned long long __c) {
17444 return (vector
unsigned long long)__builtin_altivec_crypto_vpermxor(
17445 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
17446 (vector
unsigned char)
__c);
17450 __builtin_crypto_vpmsumb(vector
unsigned char __a, vector
unsigned char __b) {
17451 return __builtin_altivec_crypto_vpmsumb(
__a,
__b);
17455 __builtin_crypto_vpmsumb(vector
unsigned short __a, vector
unsigned short __b) {
17456 return __builtin_altivec_crypto_vpmsumh(
__a,
__b);
17460 __builtin_crypto_vpmsumb(vector
unsigned int __a, vector
unsigned int __b) {
17461 return __builtin_altivec_crypto_vpmsumw(
__a,
__b);
17464 static __inline__ vector
unsigned long long __ATTRS_o_ai
17465 __builtin_crypto_vpmsumb(vector
unsigned long long __a,
17466 vector
unsigned long long __b) {
17467 return __builtin_altivec_crypto_vpmsumd(
__a,
__b);
17471 vec_vgbbd(vector
signed char __a) {
17472 return (vector
signed char)__builtin_altivec_vgbbd((vector
unsigned char)
__a);
17475 #define vec_pmsum_be __builtin_crypto_vpmsumb
17476 #define vec_gb __builtin_altivec_vgbbd
17479 vec_vgbbd(vector
unsigned char __a) {
17480 return __builtin_altivec_vgbbd(
__a);
17483 static __inline__ vector
signed long long __ATTRS_o_ai
17484 vec_gbb(vector
signed long long __a) {
17485 return (vector
signed long long)__builtin_altivec_vgbbd(
17486 (vector
unsigned char)
__a);
17489 static __inline__ vector
unsigned long long __ATTRS_o_ai
17490 vec_gbb(vector
unsigned long long __a) {
17491 return (vector
unsigned long long)__builtin_altivec_vgbbd(
17492 (vector
unsigned char)
__a);
17496 vec_vbpermq(vector
signed char __a, vector
signed char __b) {
17497 return (vector
long long)__builtin_altivec_vbpermq((vector
unsigned char)
__a,
17498 (vector
unsigned char)
__b);
17502 vec_vbpermq(vector
unsigned char __a, vector
unsigned char __b) {
17503 return (vector
long long)__builtin_altivec_vbpermq(
__a,
__b);
17506 #if defined(__powerpc64__) && defined(__SIZEOF_INT128__)
17507 static __inline__ vector
unsigned long long __ATTRS_o_ai
17508 vec_bperm(vector
unsigned __int128
__a, vector
unsigned char __b) {
17509 return __builtin_altivec_vbpermq((vector
unsigned char)
__a,
17510 (vector
unsigned char)
__b);
17514 vec_bperm(vector
unsigned char __a, vector
unsigned char __b) {
17515 return (vector
unsigned char)__builtin_altivec_vbpermq(
__a,
__b);
17518 #ifdef __POWER9_VECTOR__
17519 static __inline__ vector
unsigned long long __ATTRS_o_ai
17520 vec_bperm(vector
unsigned long long __a, vector
unsigned char __b) {
17521 return __builtin_altivec_vbpermd(
__a,
__b);
17529 return __builtin_shufflevector(
__a,
__a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
17534 return __builtin_shufflevector(
__a,
__a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
17540 return __builtin_shufflevector(
__a,
__a, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6,
17545 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
17549 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
17554 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
17558 return __builtin_shufflevector(
__a,
__a, 7, 6, 5, 4, 3, 2, 1, 0);
17563 return __builtin_shufflevector(
__a,
__a, 7, 6, 5, 4, 3, 2, 1, 0);
17568 return __builtin_shufflevector(
__a,
__a, 7, 6, 5, 4, 3, 2, 1, 0);
17572 return __builtin_shufflevector(
__a,
__a, 3, 2, 1, 0);
17578 return __builtin_shufflevector(
__a,
__a, 1, 0);
17583 return __builtin_shufflevector(
__a,
__a, 1, 0);
17588 return __builtin_shufflevector(
__a,
__a, 1, 0);
17592 return __builtin_shufflevector(
__a,
__a, 1, 0);
17614 vector
unsigned char __indices =
17615 { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
17621 vector
unsigned char __indices =
17622 { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
17628 vector
unsigned char __indices =
17629 { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 };
17635 vector
unsigned char __indices =
17636 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
17642 vector
unsigned char __indices =
17643 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
17649 vector
unsigned char __indices =
17650 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
17656 vector
unsigned char __indices =
17657 { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 };
17664 vector
unsigned char __indices =
17665 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
17669 static __inline__ vector
signed long long __ATTRS_o_ai
17671 vector
unsigned char __indices =
17672 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
17676 static __inline__ vector
unsigned long long __ATTRS_o_ai
17678 vector
unsigned char __indices =
17679 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
17685 vector
unsigned char __indices =
17686 { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 };
17691 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
17692 defined(__SIZEOF_INT128__)
17695 vector
unsigned char __indices =
17696 { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
17697 return (vector
signed __int128)
vec_perm((vector
signed int)
__a,
17698 (vector
signed int)
__a,
17702 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
17704 vector
unsigned char __indices =
17705 { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
17706 return (vector
unsigned __int128)
vec_perm((vector
signed int)
__a,
17707 (vector
signed int)
__a,
17714 #define vec_xld2 vec_xl
17715 #define vec_xlw4 vec_xl
17725 const signed char *__ptr) {
17726 return *(unaligned_vec_schar *)(__ptr + __offset);
17731 return *(unaligned_vec_uchar*)(__ptr + __offset);
17736 signed char *__addr = (
signed char *)__ptr + __offset;
17737 return *(unaligned_vec_sshort *)__addr;
17742 signed char *__addr = (
signed char *)__ptr + __offset;
17743 return *(unaligned_vec_ushort *)__addr;
17747 const signed int *__ptr) {
17748 signed char *__addr = (
signed char *)__ptr + __offset;
17749 return *(unaligned_vec_sint *)__addr;
17754 signed char *__addr = (
signed char *)__ptr + __offset;
17755 return *(unaligned_vec_uint *)__addr;
17759 const float *__ptr) {
17760 signed char *__addr = (
signed char *)__ptr + __offset;
17761 return *(unaligned_vec_float *)__addr;
17771 signed char *__addr = (
signed char *)__ptr + __offset;
17772 return *(unaligned_vec_sll *)__addr;
17777 signed char *__addr = (
signed char *)__ptr + __offset;
17778 return *(unaligned_vec_ull *)__addr;
17782 const double *__ptr) {
17783 signed char *__addr = (
signed char *)__ptr + __offset;
17784 return *(unaligned_vec_double *)__addr;
17788 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
17789 defined(__SIZEOF_INT128__)
17791 typedef vector
unsigned __int128 unaligned_vec_ui128
17795 signed char *__addr = (
signed char *)__ptr + __offset;
17796 return *(unaligned_vec_si128 *)__addr;
17801 signed char *__addr = (
signed char *)__ptr + __offset;
17802 return *(unaligned_vec_ui128 *)__addr;
17808 #ifdef __LITTLE_ENDIAN__
17811 vector
signed char __vec = (vector
signed char)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17812 return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
17813 13, 12, 11, 10, 9, 8);
17818 vector
unsigned char __vec = (vector
unsigned char)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17819 return __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
17820 13, 12, 11, 10, 9, 8);
17825 vector
signed short __vec = (vector
signed short)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17826 return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
17831 vector
unsigned short __vec = (vector
unsigned short)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17832 return __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
17836 vec_xl_be(
signed long long __offset,
const signed int *__ptr) {
17837 return (vector
signed int)__builtin_vsx_lxvw4x_be(__offset, __ptr);
17841 vec_xl_be(
signed long long __offset,
const unsigned int *__ptr) {
17842 return (vector
unsigned int)__builtin_vsx_lxvw4x_be(__offset, __ptr);
17846 vec_xl_be(
signed long long __offset,
const float *__ptr) {
17847 return (vector
float)__builtin_vsx_lxvw4x_be(__offset, __ptr);
17851 static __inline__ vector
signed long long __ATTRS_o_ai
17852 vec_xl_be(
signed long long __offset,
const signed long long *__ptr) {
17853 return (vector
signed long long)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17856 static __inline__ vector
unsigned long long __ATTRS_o_ai
17857 vec_xl_be(
signed long long __offset,
const unsigned long long *__ptr) {
17858 return (vector
unsigned long long)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17862 vec_xl_be(
signed long long __offset,
const double *__ptr) {
17863 return (vector
double)__builtin_vsx_lxvd2x_be(__offset, __ptr);
17867 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
17868 defined(__SIZEOF_INT128__)
17870 vec_xl_be(
signed long long __offset,
const signed __int128 *__ptr) {
17871 return vec_xl(__offset, __ptr);
17874 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
17875 vec_xl_be(
signed long long __offset,
const unsigned __int128 *__ptr) {
17876 return vec_xl(__offset, __ptr);
17880 #define vec_xl_be vec_xl
17883 #if defined(__POWER10_VECTOR__) && defined(__VSX__) && \
17884 defined(__SIZEOF_INT128__)
17889 vec_xl_sext(
ptrdiff_t __offset,
const signed char *__pointer) {
17890 return (vector
signed __int128)*(__pointer + __offset);
17894 vec_xl_sext(
ptrdiff_t __offset,
const signed short *__pointer) {
17895 return (vector
signed __int128)*(__pointer + __offset);
17899 vec_xl_sext(
ptrdiff_t __offset,
const signed int *__pointer) {
17900 return (vector
signed __int128)*(__pointer + __offset);
17904 vec_xl_sext(
ptrdiff_t __offset,
const signed long long *__pointer) {
17905 return (vector
signed __int128)*(__pointer + __offset);
17910 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
17911 vec_xl_zext(
ptrdiff_t __offset,
const unsigned char *__pointer) {
17912 return (vector
unsigned __int128)*(__pointer + __offset);
17915 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
17916 vec_xl_zext(
ptrdiff_t __offset,
const unsigned short *__pointer) {
17917 return (vector
unsigned __int128)*(__pointer + __offset);
17920 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
17921 vec_xl_zext(
ptrdiff_t __offset,
const unsigned int *__pointer) {
17922 return (vector
unsigned __int128)*(__pointer + __offset);
17925 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
17926 vec_xl_zext(
ptrdiff_t __offset,
const unsigned long long *__pointer) {
17927 return (vector
unsigned __int128)*(__pointer + __offset);
17934 static __inline__ vector
signed long long __ATTRS_o_ai
17935 vec_xlds(
ptrdiff_t __offset,
const signed long long *__ptr) {
17936 signed long long *__addr = (
signed long long*)((
signed char *)__ptr + __offset);
17937 return (vector
signed long long) *__addr;
17940 static __inline__ vector
unsigned long long __ATTRS_o_ai
17941 vec_xlds(
ptrdiff_t __offset,
const unsigned long long *__ptr) {
17942 unsigned long long *__addr = (
unsigned long long *)((
signed char *)__ptr + __offset);
17943 return (unaligned_vec_ull) *__addr;
17947 const double *__ptr) {
17948 double *__addr = (
double*)((
signed char *)__ptr + __offset);
17949 return (unaligned_vec_double) *__addr;
17954 vec_load_splats(
signed long long __offset,
const signed int *__ptr) {
17955 signed int *__addr = (
signed int*)((
signed char *)__ptr + __offset);
17956 return (vector
signed int)*__addr;
17960 vec_load_splats(
unsigned long long __offset,
const signed int *__ptr) {
17961 signed int *__addr = (
signed int*)((
signed char *)__ptr + __offset);
17962 return (vector
signed int)*__addr;
17966 vec_load_splats(
signed long long __offset,
const unsigned int *__ptr) {
17967 unsigned int *__addr = (
unsigned int*)((
signed char *)__ptr + __offset);
17968 return (vector
unsigned int)*__addr;
17972 vec_load_splats(
unsigned long long __offset,
const unsigned int *__ptr) {
17973 unsigned int *__addr = (
unsigned int*)((
signed char *)__ptr + __offset);
17974 return (vector
unsigned int)*__addr;
17978 vec_load_splats(
signed long long __offset,
const float *__ptr) {
17979 float *__addr = (
float*)((
signed char *)__ptr + __offset);
17980 return (vector
float)*__addr;
17984 vec_load_splats(
unsigned long long __offset,
const float *__ptr) {
17985 float *__addr = (
float*)((
signed char *)__ptr + __offset);
17986 return (vector
float)*__addr;
17992 #define vec_xstd2 vec_xst
17993 #define vec_xstw4 vec_xst
17996 *(unaligned_vec_schar *)(__ptr + __offset) = __vec;
18001 *(unaligned_vec_uchar *)(__ptr + __offset) = __vec;
18006 signed char *__addr = (
signed char *)__ptr + __offset;
18007 *(unaligned_vec_sshort *)__addr = __vec;
18012 unsigned short *__ptr) {
18013 signed char *__addr = (
signed char *)__ptr + __offset;
18014 *(unaligned_vec_ushort *)__addr = __vec;
18018 ptrdiff_t __offset,
signed int *__ptr) {
18019 signed char *__addr = (
signed char *)__ptr + __offset;
18020 *(unaligned_vec_sint *)__addr = __vec;
18025 signed char *__addr = (
signed char *)__ptr + __offset;
18026 *(unaligned_vec_uint *)__addr = __vec;
18031 signed char *__addr = (
signed char *)__ptr + __offset;
18032 *(unaligned_vec_float *)__addr = __vec;
18038 signed long long *__ptr) {
18039 signed char *__addr = (
signed char *)__ptr + __offset;
18040 *(unaligned_vec_sll *)__addr = __vec;
18045 unsigned long long *__ptr) {
18046 signed char *__addr = (
signed char *)__ptr + __offset;
18047 *(unaligned_vec_ull *)__addr = __vec;
18052 signed char *__addr = (
signed char *)__ptr + __offset;
18053 *(unaligned_vec_double *)__addr = __vec;
18057 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
18058 defined(__SIZEOF_INT128__)
18061 signed __int128 *__ptr) {
18062 signed char *__addr = (
signed char *)__ptr + __offset;
18063 *(unaligned_vec_si128 *)__addr = __vec;
18068 unsigned __int128 *__ptr) {
18069 signed char *__addr = (
signed char *)__ptr + __offset;
18070 *(unaligned_vec_ui128 *)__addr = __vec;
18076 #if defined(__POWER10_VECTOR__) && defined(__VSX__) && \
18077 defined(__SIZEOF_INT128__)
18078 static inline __ATTRS_o_ai void vec_xst_trunc(vector
signed __int128 __vec,
18080 signed char *__ptr) {
18081 *(__ptr + __offset) = (
signed char)__vec[0];
18084 static inline __ATTRS_o_ai void vec_xst_trunc(vector
unsigned __int128 __vec,
18086 unsigned char *__ptr) {
18087 *(__ptr + __offset) = (
unsigned char)__vec[0];
18090 static inline __ATTRS_o_ai void vec_xst_trunc(vector
signed __int128 __vec,
18092 signed short *__ptr) {
18093 *(__ptr + __offset) = (
signed short)__vec[0];
18096 static inline __ATTRS_o_ai void vec_xst_trunc(vector
unsigned __int128 __vec,
18098 unsigned short *__ptr) {
18099 *(__ptr + __offset) = (
unsigned short)__vec[0];
18102 static inline __ATTRS_o_ai void vec_xst_trunc(vector
signed __int128 __vec,
18104 signed int *__ptr) {
18105 *(__ptr + __offset) = (
signed int)__vec[0];
18108 static inline __ATTRS_o_ai void vec_xst_trunc(vector
unsigned __int128 __vec,
18110 unsigned int *__ptr) {
18111 *(__ptr + __offset) = (
unsigned int)__vec[0];
18114 static inline __ATTRS_o_ai void vec_xst_trunc(vector
signed __int128 __vec,
18116 signed long long *__ptr) {
18117 *(__ptr + __offset) = (
signed long long)__vec[0];
18120 static inline __ATTRS_o_ai void vec_xst_trunc(vector
unsigned __int128 __vec,
18122 unsigned long long *__ptr) {
18123 *(__ptr + __offset) = (
unsigned long long)__vec[0];
18129 #ifdef __LITTLE_ENDIAN__
18131 signed long long __offset,
18132 signed char *__ptr) {
18133 vector
signed char __tmp =
18134 __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
18135 13, 12, 11, 10, 9, 8);
18136 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
18137 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
18141 signed long long __offset,
18142 unsigned char *__ptr) {
18143 vector
unsigned char __tmp =
18144 __builtin_shufflevector(__vec, __vec, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14,
18145 13, 12, 11, 10, 9, 8);
18146 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
18147 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
18151 signed long long __offset,
18152 signed short *__ptr) {
18153 vector
signed short __tmp =
18154 __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
18155 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
18156 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
18160 signed long long __offset,
18161 unsigned short *__ptr) {
18162 vector
unsigned short __tmp =
18163 __builtin_shufflevector(__vec, __vec, 3, 2, 1, 0, 7, 6, 5, 4);
18164 typedef __attribute__((vector_size(
sizeof(__tmp))))
double __vector_double;
18165 __builtin_vsx_stxvd2x_be((__vector_double)__tmp, __offset, __ptr);
18169 signed long long __offset,
18170 signed int *__ptr) {
18171 __builtin_vsx_stxvw4x_be(__vec, __offset, __ptr);
18175 signed long long __offset,
18176 unsigned int *__ptr) {
18177 __builtin_vsx_stxvw4x_be((vector
int)__vec, __offset, __ptr);
18181 signed long long __offset,
18183 __builtin_vsx_stxvw4x_be((vector
int)__vec, __offset, __ptr);
18188 signed long long __offset,
18189 signed long long *__ptr) {
18190 __builtin_vsx_stxvd2x_be((vector
double)__vec, __offset, __ptr);
18194 signed long long __offset,
18195 unsigned long long *__ptr) {
18196 __builtin_vsx_stxvd2x_be((vector
double)__vec, __offset, __ptr);
18200 signed long long __offset,
18202 __builtin_vsx_stxvd2x_be((vector
double)__vec, __offset, __ptr);
18206 #if defined(__POWER8_VECTOR__) && defined(__powerpc64__) && \
18207 defined(__SIZEOF_INT128__)
18209 signed long long __offset,
18210 signed __int128 *__ptr) {
18211 vec_xst(__vec, __offset, __ptr);
18215 signed long long __offset,
18216 unsigned __int128 *__ptr) {
18217 vec_xst(__vec, __offset, __ptr);
18221 #define vec_xst_be vec_xst
18224 #ifdef __POWER9_VECTOR__
18225 #define vec_test_data_class(__a, __b) \
18227 (__a), vector float \
18228 : (vector bool int)__builtin_vsx_xvtstdcsp((vector float)(__a), (__b)), \
18230 : (vector bool long long)__builtin_vsx_xvtstdcdp((vector double)(__a), \
18275 #ifdef __POWER8_VECTOR__
18277 return __builtin_altivec_vminsd(
__a, -
__a);
18282 return __builtin_altivec_vminsw(
__a, -
__a);
18286 return __builtin_altivec_vminsh(
__a, -
__a);
18290 return __builtin_altivec_vminsb(
__a, -
__a);
18294 vector
float __b) {
18295 return __builtin_ppc_recipdivf(
__a,
__b);
18300 vector
double __b) {
18301 return __builtin_ppc_recipdivd(
__a,
__b);
18305 #ifdef __POWER10_VECTOR__
18310 vec_extractm(vector
unsigned char __a) {
18311 return __builtin_altivec_vextractbm(
__a);
18315 vec_extractm(vector
unsigned short __a) {
18316 return __builtin_altivec_vextracthm(
__a);
18320 vec_extractm(vector
unsigned int __a) {
18321 return __builtin_altivec_vextractwm(
__a);
18325 vec_extractm(vector
unsigned long long __a) {
18326 return __builtin_altivec_vextractdm(
__a);
18329 #ifdef __SIZEOF_INT128__
18331 vec_extractm(vector
unsigned __int128
__a) {
18332 return __builtin_altivec_vextractqm(
__a);
18339 vec_expandm(vector
unsigned char __a) {
18340 return __builtin_altivec_vexpandbm(
__a);
18344 vec_expandm(vector
unsigned short __a) {
18345 return __builtin_altivec_vexpandhm(
__a);
18349 vec_expandm(vector
unsigned int __a) {
18350 return __builtin_altivec_vexpandwm(
__a);
18353 static __inline__ vector
unsigned long long __ATTRS_o_ai
18354 vec_expandm(vector
unsigned long long __a) {
18355 return __builtin_altivec_vexpanddm(
__a);
18358 #ifdef __SIZEOF_INT128__
18359 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
18360 vec_expandm(vector
unsigned __int128
__a) {
18361 return __builtin_altivec_vexpandqm(
__a);
18367 #define vec_cntm(__a, __mp) \
18368 _Generic((__a), vector unsigned char \
18369 : __builtin_altivec_vcntmbb((vector unsigned char)(__a), \
18370 (unsigned char)(__mp)), \
18371 vector unsigned short \
18372 : __builtin_altivec_vcntmbh((vector unsigned short)(__a), \
18373 (unsigned char)(__mp)), \
18374 vector unsigned int \
18375 : __builtin_altivec_vcntmbw((vector unsigned int)(__a), \
18376 (unsigned char)(__mp)), \
18377 vector unsigned long long \
18378 : __builtin_altivec_vcntmbd((vector unsigned long long)(__a), \
18379 (unsigned char)(__mp)))
18384 vec_genbm(
unsigned long long __bm) {
18385 return __builtin_altivec_mtvsrbm(__bm);
18389 vec_genhm(
unsigned long long __bm) {
18390 return __builtin_altivec_mtvsrhm(__bm);
18394 vec_genwm(
unsigned long long __bm) {
18395 return __builtin_altivec_mtvsrwm(__bm);
18398 static __inline__ vector
unsigned long long __ATTRS_o_ai
18399 vec_gendm(
unsigned long long __bm) {
18400 return __builtin_altivec_mtvsrdm(__bm);
18403 #ifdef __SIZEOF_INT128__
18404 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
18405 vec_genqm(
unsigned long long __bm) {
18406 return __builtin_altivec_mtvsrqm(__bm);
18412 static __inline__ vector
unsigned long long __ATTRS_o_ai
18413 vec_pdep(vector
unsigned long long __a, vector
unsigned long long __b) {
18414 return __builtin_altivec_vpdepd(
__a,
__b);
18419 static __inline__ vector
unsigned long long __ATTRS_o_ai
18420 vec_pext(vector
unsigned long long __a, vector
unsigned long long __b) {
18421 return __builtin_altivec_vpextd(
__a,
__b);
18426 static __inline__ vector
unsigned long long __ATTRS_o_ai
18427 vec_cfuge(vector
unsigned long long __a, vector
unsigned long long __b) {
18428 return __builtin_altivec_vcfuged(
__a,
__b);
18433 #define vec_gnb(__a, __b) __builtin_altivec_vgnb(__a, __b)
18437 #ifdef __SIZEOF_INT128__
18438 #define vec_ternarylogic(__a, __b, __c, __imm) \
18439 _Generic((__a), vector unsigned char \
18440 : (vector unsigned char)__builtin_vsx_xxeval( \
18441 (vector unsigned long long)(__a), \
18442 (vector unsigned long long)(__b), \
18443 (vector unsigned long long)(__c), (__imm)), \
18444 vector unsigned short \
18445 : (vector unsigned short)__builtin_vsx_xxeval( \
18446 (vector unsigned long long)(__a), \
18447 (vector unsigned long long)(__b), \
18448 (vector unsigned long long)(__c), (__imm)), \
18449 vector unsigned int \
18450 : (vector unsigned int)__builtin_vsx_xxeval( \
18451 (vector unsigned long long)(__a), \
18452 (vector unsigned long long)(__b), \
18453 (vector unsigned long long)(__c), (__imm)), \
18454 vector unsigned long long \
18455 : (vector unsigned long long)__builtin_vsx_xxeval( \
18456 (vector unsigned long long)(__a), \
18457 (vector unsigned long long)(__b), \
18458 (vector unsigned long long)(__c), (__imm)), \
18459 vector unsigned __int128 \
18460 : (vector unsigned __int128)__builtin_vsx_xxeval( \
18461 (vector unsigned long long)(__a), \
18462 (vector unsigned long long)(__b), \
18463 (vector unsigned long long)(__c), (__imm)))
18465 #define vec_ternarylogic(__a, __b, __c, __imm) \
18466 _Generic((__a), vector unsigned char \
18467 : (vector unsigned char)__builtin_vsx_xxeval( \
18468 (vector unsigned long long)(__a), \
18469 (vector unsigned long long)(__b), \
18470 (vector unsigned long long)(__c), (__imm)), \
18471 vector unsigned short \
18472 : (vector unsigned short)__builtin_vsx_xxeval( \
18473 (vector unsigned long long)(__a), \
18474 (vector unsigned long long)(__b), \
18475 (vector unsigned long long)(__c), (__imm)), \
18476 vector unsigned int \
18477 : (vector unsigned int)__builtin_vsx_xxeval( \
18478 (vector unsigned long long)(__a), \
18479 (vector unsigned long long)(__b), \
18480 (vector unsigned long long)(__c), (__imm)), \
18481 vector unsigned long long \
18482 : (vector unsigned long long)__builtin_vsx_xxeval( \
18483 (vector unsigned long long)(__a), \
18484 (vector unsigned long long)(__b), \
18485 (vector unsigned long long)(__c), (__imm)))
18492 #define vec_genpcvm(__a, __imm) \
18494 (__a), vector unsigned char \
18495 : __builtin_vsx_xxgenpcvbm((vector unsigned char)(__a), (int)(__imm)), \
18496 vector unsigned short \
18497 : __builtin_vsx_xxgenpcvhm((vector unsigned short)(__a), (int)(__imm)), \
18498 vector unsigned int \
18499 : __builtin_vsx_xxgenpcvwm((vector unsigned int)(__a), (int)(__imm)), \
18500 vector unsigned long long \
18501 : __builtin_vsx_xxgenpcvdm((vector unsigned long long)(__a), \
18508 vec_clr_first(vector
signed char __a,
unsigned int __n) {
18509 #ifdef __LITTLE_ENDIAN__
18510 return (vector
signed char)__builtin_altivec_vclrrb((vector
unsigned char)
__a,
18513 return (vector
signed char)__builtin_altivec_vclrlb((vector
unsigned char)
__a,
18519 vec_clr_first(vector
unsigned char __a,
unsigned int __n) {
18520 #ifdef __LITTLE_ENDIAN__
18521 return (vector
unsigned char)__builtin_altivec_vclrrb(
18522 (vector
unsigned char)
__a, __n);
18524 return (vector
unsigned char)__builtin_altivec_vclrlb(
18525 (vector
unsigned char)
__a, __n);
18532 vec_clr_last(vector
signed char __a,
unsigned int __n) {
18533 #ifdef __LITTLE_ENDIAN__
18534 return (vector
signed char)__builtin_altivec_vclrlb((vector
unsigned char)
__a,
18537 return (vector
signed char)__builtin_altivec_vclrrb((vector
unsigned char)
__a,
18543 vec_clr_last(vector
unsigned char __a,
unsigned int __n) {
18544 #ifdef __LITTLE_ENDIAN__
18545 return (vector
unsigned char)__builtin_altivec_vclrlb(
18546 (vector
unsigned char)
__a, __n);
18548 return (vector
unsigned char)__builtin_altivec_vclrrb(
18549 (vector
unsigned char)
__a, __n);
18555 static __inline__ vector
unsigned long long __ATTRS_o_ai
18556 vec_cntlzm(vector
unsigned long long __a, vector
unsigned long long __b) {
18557 return __builtin_altivec_vclzdm(
__a,
__b);
18562 static __inline__ vector
unsigned long long __ATTRS_o_ai
18563 vec_cnttzm(vector
unsigned long long __a, vector
unsigned long long __b) {
18564 return __builtin_altivec_vctzdm(
__a,
__b);
18570 vec_mod(vector
signed int __a, vector
signed int __b) {
18575 vec_mod(vector
unsigned int __a, vector
unsigned int __b) {
18579 static __inline__ vector
signed long long __ATTRS_o_ai
18580 vec_mod(vector
signed long long __a, vector
signed long long __b) {
18584 static __inline__ vector
unsigned long long __ATTRS_o_ai
18585 vec_mod(vector
unsigned long long __a, vector
unsigned long long __b) {
18589 #ifdef __SIZEOF_INT128__
18591 vec_mod(vector
signed __int128
__a, vector
signed __int128
__b) {
18595 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
18596 vec_mod(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
18602 #define vec_sldb(__a, __b, __c) \
18604 (__a), vector unsigned char \
18605 : (vector unsigned char)__builtin_altivec_vsldbi( \
18606 (vector unsigned char)__a, (vector unsigned char)__b, \
18608 vector signed char \
18609 : (vector signed char)__builtin_altivec_vsldbi( \
18610 (vector unsigned char)__a, (vector unsigned char)__b, \
18612 vector unsigned short \
18613 : (vector unsigned short)__builtin_altivec_vsldbi( \
18614 (vector unsigned char)__a, (vector unsigned char)__b, \
18616 vector signed short \
18617 : (vector signed short)__builtin_altivec_vsldbi( \
18618 (vector unsigned char)__a, (vector unsigned char)__b, \
18620 vector unsigned int \
18621 : (vector unsigned int)__builtin_altivec_vsldbi( \
18622 (vector unsigned char)__a, (vector unsigned char)__b, \
18624 vector signed int \
18625 : (vector signed int)__builtin_altivec_vsldbi((vector unsigned char)__a, \
18626 (vector unsigned char)__b, \
18628 vector unsigned long long \
18629 : (vector unsigned long long)__builtin_altivec_vsldbi( \
18630 (vector unsigned char)__a, (vector unsigned char)__b, \
18632 vector signed long long \
18633 : (vector signed long long)__builtin_altivec_vsldbi( \
18634 (vector unsigned char)__a, (vector unsigned char)__b, (__c & 0x7)))
18637 #define vec_srdb(__a, __b, __c) \
18639 (__a), vector unsigned char \
18640 : (vector unsigned char)__builtin_altivec_vsrdbi( \
18641 (vector unsigned char)__a, (vector unsigned char)__b, \
18643 vector signed char \
18644 : (vector signed char)__builtin_altivec_vsrdbi( \
18645 (vector unsigned char)__a, (vector unsigned char)__b, \
18647 vector unsigned short \
18648 : (vector unsigned short)__builtin_altivec_vsrdbi( \
18649 (vector unsigned char)__a, (vector unsigned char)__b, \
18651 vector signed short \
18652 : (vector signed short)__builtin_altivec_vsrdbi( \
18653 (vector unsigned char)__a, (vector unsigned char)__b, \
18655 vector unsigned int \
18656 : (vector unsigned int)__builtin_altivec_vsrdbi( \
18657 (vector unsigned char)__a, (vector unsigned char)__b, \
18659 vector signed int \
18660 : (vector signed int)__builtin_altivec_vsrdbi((vector unsigned char)__a, \
18661 (vector unsigned char)__b, \
18663 vector unsigned long long \
18664 : (vector unsigned long long)__builtin_altivec_vsrdbi( \
18665 (vector unsigned char)__a, (vector unsigned char)__b, \
18667 vector signed long long \
18668 : (vector signed long long)__builtin_altivec_vsrdbi( \
18669 (vector unsigned char)__a, (vector unsigned char)__b, (__c & 0x7)))
18674 vec_insertl(
unsigned char __a, vector
unsigned char __b,
unsigned int __c) {
18675 #ifdef __LITTLE_ENDIAN__
18676 return __builtin_altivec_vinsbrx(
__b,
__c,
__a);
18678 return __builtin_altivec_vinsblx(
__b,
__c,
__a);
18683 vec_insertl(
unsigned short __a, vector
unsigned short __b,
unsigned int __c) {
18684 #ifdef __LITTLE_ENDIAN__
18685 return __builtin_altivec_vinshrx(
__b,
__c,
__a);
18687 return __builtin_altivec_vinshlx(
__b,
__c,
__a);
18692 vec_insertl(
unsigned int __a, vector
unsigned int __b,
unsigned int __c) {
18693 #ifdef __LITTLE_ENDIAN__
18694 return __builtin_altivec_vinswrx(
__b,
__c,
__a);
18696 return __builtin_altivec_vinswlx(
__b,
__c,
__a);
18700 static __inline__ vector
unsigned long long __ATTRS_o_ai
18701 vec_insertl(
unsigned long long __a, vector
unsigned long long __b,
18702 unsigned int __c) {
18703 #ifdef __LITTLE_ENDIAN__
18704 return __builtin_altivec_vinsdrx(
__b,
__c,
__a);
18706 return __builtin_altivec_vinsdlx(
__b,
__c,
__a);
18711 vec_insertl(vector
unsigned char __a, vector
unsigned char __b,
18712 unsigned int __c) {
18713 #ifdef __LITTLE_ENDIAN__
18714 return __builtin_altivec_vinsbvrx(
__b,
__c,
__a);
18716 return __builtin_altivec_vinsbvlx(
__b,
__c,
__a);
18721 vec_insertl(vector
unsigned short __a, vector
unsigned short __b,
18722 unsigned int __c) {
18723 #ifdef __LITTLE_ENDIAN__
18724 return __builtin_altivec_vinshvrx(
__b,
__c,
__a);
18726 return __builtin_altivec_vinshvlx(
__b,
__c,
__a);
18731 vec_insertl(vector
unsigned int __a, vector
unsigned int __b,
18732 unsigned int __c) {
18733 #ifdef __LITTLE_ENDIAN__
18734 return __builtin_altivec_vinswvrx(
__b,
__c,
__a);
18736 return __builtin_altivec_vinswvlx(
__b,
__c,
__a);
18743 vec_inserth(
unsigned char __a, vector
unsigned char __b,
unsigned int __c) {
18744 #ifdef __LITTLE_ENDIAN__
18745 return __builtin_altivec_vinsblx(
__b,
__c,
__a);
18747 return __builtin_altivec_vinsbrx(
__b,
__c,
__a);
18752 vec_inserth(
unsigned short __a, vector
unsigned short __b,
unsigned int __c) {
18753 #ifdef __LITTLE_ENDIAN__
18754 return __builtin_altivec_vinshlx(
__b,
__c,
__a);
18756 return __builtin_altivec_vinshrx(
__b,
__c,
__a);
18761 vec_inserth(
unsigned int __a, vector
unsigned int __b,
unsigned int __c) {
18762 #ifdef __LITTLE_ENDIAN__
18763 return __builtin_altivec_vinswlx(
__b,
__c,
__a);
18765 return __builtin_altivec_vinswrx(
__b,
__c,
__a);
18769 static __inline__ vector
unsigned long long __ATTRS_o_ai
18770 vec_inserth(
unsigned long long __a, vector
unsigned long long __b,
18771 unsigned int __c) {
18772 #ifdef __LITTLE_ENDIAN__
18773 return __builtin_altivec_vinsdlx(
__b,
__c,
__a);
18775 return __builtin_altivec_vinsdrx(
__b,
__c,
__a);
18780 vec_inserth(vector
unsigned char __a, vector
unsigned char __b,
18781 unsigned int __c) {
18782 #ifdef __LITTLE_ENDIAN__
18783 return __builtin_altivec_vinsbvlx(
__b,
__c,
__a);
18785 return __builtin_altivec_vinsbvrx(
__b,
__c,
__a);
18790 vec_inserth(vector
unsigned short __a, vector
unsigned short __b,
18791 unsigned int __c) {
18792 #ifdef __LITTLE_ENDIAN__
18793 return __builtin_altivec_vinshvlx(
__b,
__c,
__a);
18795 return __builtin_altivec_vinshvrx(
__b,
__c,
__a);
18800 vec_inserth(vector
unsigned int __a, vector
unsigned int __b,
18801 unsigned int __c) {
18802 #ifdef __LITTLE_ENDIAN__
18803 return __builtin_altivec_vinswvlx(
__b,
__c,
__a);
18805 return __builtin_altivec_vinswvrx(
__b,
__c,
__a);
18811 static __inline__ vector
unsigned long long __ATTRS_o_ai vec_extractl(
18812 vector
unsigned char __a, vector
unsigned char __b,
unsigned int __c) {
18813 #ifdef __LITTLE_ENDIAN__
18814 return __builtin_altivec_vextdubvrx(
__a,
__b,
__c);
18816 vector
unsigned long long __ret = __builtin_altivec_vextdubvlx(
__a,
__b,
__c);
18817 return vec_sld(__ret, __ret, 8);
18821 static __inline__ vector
unsigned long long __ATTRS_o_ai vec_extractl(
18822 vector
unsigned short __a, vector
unsigned short __b,
unsigned int __c) {
18823 #ifdef __LITTLE_ENDIAN__
18824 return __builtin_altivec_vextduhvrx(
__a,
__b,
__c);
18826 vector
unsigned long long __ret = __builtin_altivec_vextduhvlx(
__a,
__b,
__c);
18827 return vec_sld(__ret, __ret, 8);
18831 static __inline__ vector
unsigned long long __ATTRS_o_ai vec_extractl(
18832 vector
unsigned int __a, vector
unsigned int __b,
unsigned int __c) {
18833 #ifdef __LITTLE_ENDIAN__
18834 return __builtin_altivec_vextduwvrx(
__a,
__b,
__c);
18836 vector
unsigned long long __ret = __builtin_altivec_vextduwvlx(
__a,
__b,
__c);
18837 return vec_sld(__ret, __ret, 8);
18841 static __inline__ vector
unsigned long long __ATTRS_o_ai
18842 vec_extractl(vector
unsigned long long __a, vector
unsigned long long __b,
18843 unsigned int __c) {
18844 #ifdef __LITTLE_ENDIAN__
18845 return __builtin_altivec_vextddvrx(
__a,
__b,
__c);
18847 vector
unsigned long long __ret = __builtin_altivec_vextddvlx(
__a,
__b,
__c);
18848 return vec_sld(__ret, __ret, 8);
18854 static __inline__ vector
unsigned long long __ATTRS_o_ai vec_extracth(
18855 vector
unsigned char __a, vector
unsigned char __b,
unsigned int __c) {
18856 #ifdef __LITTLE_ENDIAN__
18857 return __builtin_altivec_vextdubvlx(
__a,
__b,
__c);
18859 vector
unsigned long long __ret = __builtin_altivec_vextdubvrx(
__a,
__b,
__c);
18860 return vec_sld(__ret, __ret, 8);
18864 static __inline__ vector
unsigned long long __ATTRS_o_ai vec_extracth(
18865 vector
unsigned short __a, vector
unsigned short __b,
unsigned int __c) {
18866 #ifdef __LITTLE_ENDIAN__
18867 return __builtin_altivec_vextduhvlx(
__a,
__b,
__c);
18869 vector
unsigned long long __ret = __builtin_altivec_vextduhvrx(
__a,
__b,
__c);
18870 return vec_sld(__ret, __ret, 8);
18874 static __inline__ vector
unsigned long long __ATTRS_o_ai vec_extracth(
18875 vector
unsigned int __a, vector
unsigned int __b,
unsigned int __c) {
18876 #ifdef __LITTLE_ENDIAN__
18877 return __builtin_altivec_vextduwvlx(
__a,
__b,
__c);
18879 vector
unsigned long long __ret = __builtin_altivec_vextduwvrx(
__a,
__b,
__c);
18880 return vec_sld(__ret, __ret, 8);
18884 static __inline__ vector
unsigned long long __ATTRS_o_ai
18885 vec_extracth(vector
unsigned long long __a, vector
unsigned long long __b,
18886 unsigned int __c) {
18887 #ifdef __LITTLE_ENDIAN__
18888 return __builtin_altivec_vextddvlx(
__a,
__b,
__c);
18890 vector
unsigned long long __ret = __builtin_altivec_vextddvrx(
__a,
__b,
__c);
18891 return vec_sld(__ret, __ret, 8);
18898 #define vec_permx(__a, __b, __c, __d) \
18900 (__a), vector unsigned char \
18901 : (vector unsigned char)__builtin_vsx_xxpermx( \
18902 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18903 vector signed char \
18904 : (vector signed char)__builtin_vsx_xxpermx( \
18905 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18906 vector unsigned short \
18907 : (vector unsigned short)__builtin_vsx_xxpermx( \
18908 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18909 vector signed short \
18910 : (vector signed short)__builtin_vsx_xxpermx( \
18911 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18912 vector unsigned int \
18913 : (vector unsigned int)__builtin_vsx_xxpermx( \
18914 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18915 vector signed int \
18916 : (vector signed int)__builtin_vsx_xxpermx( \
18917 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18918 vector unsigned long long \
18919 : (vector unsigned long long)__builtin_vsx_xxpermx( \
18920 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18921 vector signed long long \
18922 : (vector signed long long)__builtin_vsx_xxpermx( \
18923 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18925 : (vector float)__builtin_vsx_xxpermx( \
18926 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d), \
18928 : (vector double)__builtin_vsx_xxpermx( \
18929 (vector unsigned char)__a, (vector unsigned char)__b, __c, __d))
18934 vec_blendv(vector
signed char __a, vector
signed char __b,
18935 vector
unsigned char __c) {
18936 return (vector
signed char)__builtin_vsx_xxblendvb(
18937 (vector
unsigned char)
__a, (vector
unsigned char)
__b,
__c);
18941 vec_blendv(vector
unsigned char __a, vector
unsigned char __b,
18942 vector
unsigned char __c) {
18943 return __builtin_vsx_xxblendvb(
__a,
__b,
__c);
18947 vec_blendv(vector
signed short __a, vector
signed short __b,
18948 vector
unsigned short __c) {
18949 return (vector
signed short)__builtin_vsx_xxblendvh(
18950 (vector
unsigned short)
__a, (vector
unsigned short)
__b,
__c);
18954 vec_blendv(vector
unsigned short __a, vector
unsigned short __b,
18955 vector
unsigned short __c) {
18956 return __builtin_vsx_xxblendvh(
__a,
__b,
__c);
18960 vec_blendv(vector
signed int __a, vector
signed int __b,
18961 vector
unsigned int __c) {
18962 return (vector
signed int)__builtin_vsx_xxblendvw(
18963 (vector
unsigned int)
__a, (vector
unsigned int)
__b,
__c);
18967 vec_blendv(vector
unsigned int __a, vector
unsigned int __b,
18968 vector
unsigned int __c) {
18969 return __builtin_vsx_xxblendvw(
__a,
__b,
__c);
18972 static __inline__ vector
signed long long __ATTRS_o_ai
18973 vec_blendv(vector
signed long long __a, vector
signed long long __b,
18974 vector
unsigned long long __c) {
18975 return (vector
signed long long)__builtin_vsx_xxblendvd(
18976 (vector
unsigned long long)
__a, (vector
unsigned long long)
__b,
__c);
18979 static __inline__ vector
unsigned long long __ATTRS_o_ai
18980 vec_blendv(vector
unsigned long long __a, vector
unsigned long long __b,
18981 vector
unsigned long long __c) {
18982 return (vector
unsigned long long)__builtin_vsx_xxblendvd(
__a,
__b,
__c);
18986 vec_blendv(vector
float __a, vector
float __b, vector
unsigned int __c) {
18987 return (vector
float)__builtin_vsx_xxblendvw((vector
unsigned int)
__a,
18988 (vector
unsigned int)
__b,
__c);
18992 vec_blendv(vector
double __a, vector
double __b,
18993 vector
unsigned long long __c) {
18994 return (vector
double)__builtin_vsx_xxblendvd(
18995 (vector
unsigned long long)
__a, (vector
unsigned long long)
__b,
__c);
18998 #define vec_replace_unaligned(__a, __b, __c) \
18999 _Generic((__a), vector signed int \
19000 : __builtin_altivec_vinsw((vector unsigned char)__a, \
19001 (unsigned int)__b, __c), \
19002 vector unsigned int \
19003 : __builtin_altivec_vinsw((vector unsigned char)__a, \
19004 (unsigned int)__b, __c), \
19005 vector unsigned long long \
19006 : __builtin_altivec_vinsd((vector unsigned char)__a, \
19007 (unsigned long long)__b, __c), \
19008 vector signed long long \
19009 : __builtin_altivec_vinsd((vector unsigned char)__a, \
19010 (unsigned long long)__b, __c), \
19012 : __builtin_altivec_vinsw((vector unsigned char)__a, \
19013 (unsigned int)__b, __c), \
19015 : __builtin_altivec_vinsd((vector unsigned char)__a, \
19016 (unsigned long long)__b, __c))
19018 #define vec_replace_elt(__a, __b, __c) \
19019 _Generic((__a), vector signed int \
19020 : (vector signed int)__builtin_altivec_vinsw_elt( \
19021 (vector unsigned char)__a, (unsigned int)__b, __c), \
19022 vector unsigned int \
19023 : (vector unsigned int)__builtin_altivec_vinsw_elt( \
19024 (vector unsigned char)__a, (unsigned int)__b, __c), \
19025 vector unsigned long long \
19026 : (vector unsigned long long)__builtin_altivec_vinsd_elt( \
19027 (vector unsigned char)__a, (unsigned long long)__b, __c), \
19028 vector signed long long \
19029 : (vector signed long long)__builtin_altivec_vinsd_elt( \
19030 (vector unsigned char)__a, (unsigned long long)__b, __c), \
19032 : (vector float)__builtin_altivec_vinsw_elt( \
19033 (vector unsigned char)__a, (unsigned int)__b, __c), \
19035 : (vector double)__builtin_altivec_vinsd_elt( \
19036 (vector unsigned char)__a, (unsigned long long)__b, __c))
19040 #define vec_splati(__a) \
19041 _Generic((__a), signed int \
19042 : ((vector signed int)__a), unsigned int \
19043 : ((vector unsigned int)__a), float \
19044 : ((vector float)__a))
19048 static __inline__ vector
double __ATTRS_o_ai vec_splatid(
const float __a) {
19049 return ((vector
double)((
double)
__a));
19054 static __inline__ vector
signed int __ATTRS_o_ai vec_splati_ins(
19055 vector
signed int __a,
const unsigned int __b,
const signed int __c) {
19056 const unsigned int __d =
__b & 0x01;
19057 #ifdef __LITTLE_ENDIAN__
19067 static __inline__ vector
unsigned int __ATTRS_o_ai vec_splati_ins(
19068 vector
unsigned int __a,
const unsigned int __b,
const unsigned int __c) {
19069 const unsigned int __d =
__b & 0x01;
19070 #ifdef __LITTLE_ENDIAN__
19081 vec_splati_ins(vector
float __a,
const unsigned int __b,
const float __c) {
19082 const unsigned int __d =
__b & 0x01;
19083 #ifdef __LITTLE_ENDIAN__
19096 vec_test_lsbb_all_ones(vector
unsigned char __a) {
19097 return __builtin_vsx_xvtlsbb(
__a, 1);
19103 vec_test_lsbb_all_zeros(vector
unsigned char __a) {
19104 return __builtin_vsx_xvtlsbb(
__a, 0);
19111 vec_stril(vector
unsigned char __a) {
19112 #ifdef __LITTLE_ENDIAN__
19113 return (vector
unsigned char)__builtin_altivec_vstribr(
19114 (vector
unsigned char)
__a);
19116 return (vector
unsigned char)__builtin_altivec_vstribl(
19117 (vector
unsigned char)
__a);
19122 vec_stril(vector
signed char __a) {
19123 #ifdef __LITTLE_ENDIAN__
19124 return (vector
signed char)__builtin_altivec_vstribr(
19125 (vector
unsigned char)
__a);
19127 return (vector
signed char)__builtin_altivec_vstribl(
19128 (vector
unsigned char)
__a);
19133 vec_stril(vector
unsigned short __a) {
19134 #ifdef __LITTLE_ENDIAN__
19135 return (vector
unsigned short)__builtin_altivec_vstrihr(
19136 (vector
signed short)
__a);
19138 return (vector
unsigned short)__builtin_altivec_vstrihl(
19139 (vector
signed short)
__a);
19144 vec_stril(vector
signed short __a) {
19145 #ifdef __LITTLE_ENDIAN__
19146 return __builtin_altivec_vstrihr(
__a);
19148 return __builtin_altivec_vstrihl(
__a);
19154 static __inline__
int __ATTRS_o_ai vec_stril_p(vector
unsigned char __a) {
19155 #ifdef __LITTLE_ENDIAN__
19156 return __builtin_altivec_vstribr_p(
__CR6_EQ, (vector
unsigned char)
__a);
19158 return __builtin_altivec_vstribl_p(
__CR6_EQ, (vector
unsigned char)
__a);
19162 static __inline__
int __ATTRS_o_ai vec_stril_p(vector
signed char __a) {
19163 #ifdef __LITTLE_ENDIAN__
19164 return __builtin_altivec_vstribr_p(
__CR6_EQ, (vector
unsigned char)
__a);
19166 return __builtin_altivec_vstribl_p(
__CR6_EQ, (vector
unsigned char)
__a);
19170 static __inline__
int __ATTRS_o_ai vec_stril_p(vector
unsigned short __a) {
19171 #ifdef __LITTLE_ENDIAN__
19172 return __builtin_altivec_vstrihr_p(
__CR6_EQ, (vector
signed short)
__a);
19174 return __builtin_altivec_vstrihl_p(
__CR6_EQ, (vector
signed short)
__a);
19178 static __inline__
int __ATTRS_o_ai vec_stril_p(vector
signed short __a) {
19179 #ifdef __LITTLE_ENDIAN__
19180 return __builtin_altivec_vstrihr_p(
__CR6_EQ,
__a);
19182 return __builtin_altivec_vstrihl_p(
__CR6_EQ,
__a);
19189 vec_strir(vector
unsigned char __a) {
19190 #ifdef __LITTLE_ENDIAN__
19191 return (vector
unsigned char)__builtin_altivec_vstribl(
19192 (vector
unsigned char)
__a);
19194 return (vector
unsigned char)__builtin_altivec_vstribr(
19195 (vector
unsigned char)
__a);
19200 vec_strir(vector
signed char __a) {
19201 #ifdef __LITTLE_ENDIAN__
19202 return (vector
signed char)__builtin_altivec_vstribl(
19203 (vector
unsigned char)
__a);
19205 return (vector
signed char)__builtin_altivec_vstribr(
19206 (vector
unsigned char)
__a);
19211 vec_strir(vector
unsigned short __a) {
19212 #ifdef __LITTLE_ENDIAN__
19213 return (vector
unsigned short)__builtin_altivec_vstrihl(
19214 (vector
signed short)
__a);
19216 return (vector
unsigned short)__builtin_altivec_vstrihr(
19217 (vector
signed short)
__a);
19222 vec_strir(vector
signed short __a) {
19223 #ifdef __LITTLE_ENDIAN__
19224 return __builtin_altivec_vstrihl(
__a);
19226 return __builtin_altivec_vstrihr(
__a);
19232 static __inline__
int __ATTRS_o_ai vec_strir_p(vector
unsigned char __a) {
19233 #ifdef __LITTLE_ENDIAN__
19234 return __builtin_altivec_vstribl_p(
__CR6_EQ, (vector
unsigned char)
__a);
19236 return __builtin_altivec_vstribr_p(
__CR6_EQ, (vector
unsigned char)
__a);
19240 static __inline__
int __ATTRS_o_ai vec_strir_p(vector
signed char __a) {
19241 #ifdef __LITTLE_ENDIAN__
19242 return __builtin_altivec_vstribl_p(
__CR6_EQ, (vector
unsigned char)
__a);
19244 return __builtin_altivec_vstribr_p(
__CR6_EQ, (vector
unsigned char)
__a);
19248 static __inline__
int __ATTRS_o_ai vec_strir_p(vector
unsigned short __a) {
19249 #ifdef __LITTLE_ENDIAN__
19250 return __builtin_altivec_vstrihl_p(
__CR6_EQ, (vector
signed short)
__a);
19252 return __builtin_altivec_vstrihr_p(
__CR6_EQ, (vector
signed short)
__a);
19256 static __inline__
int __ATTRS_o_ai vec_strir_p(vector
signed short __a) {
19257 #ifdef __LITTLE_ENDIAN__
19258 return __builtin_altivec_vstrihl_p(
__CR6_EQ,
__a);
19260 return __builtin_altivec_vstrihr_p(
__CR6_EQ,
__a);
19266 #ifdef __SIZEOF_INT128__
19267 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
19268 vec_sl(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
19269 return __a << (
__b % (vector
unsigned __int128)(
sizeof(
unsigned __int128) *
19274 vec_sl(vector
signed __int128
__a, vector
unsigned __int128
__b) {
19275 return __a << (
__b % (vector
unsigned __int128)(
sizeof(
unsigned __int128) *
19279 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
19280 vec_sr(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
19281 return __a >> (
__b % (vector
unsigned __int128)(
sizeof(
unsigned __int128) *
19286 vec_sr(vector
signed __int128
__a, vector
unsigned __int128
__b) {
19288 vector
signed __int128)(((vector
unsigned __int128)
__a) >>
19290 (vector
unsigned __int128)(
sizeof(
19291 unsigned __int128) *
19295 static __inline__ vector
unsigned __int128
__ATTRS_o_ai
19296 vec_sra(vector
unsigned __int128
__a, vector
unsigned __int128
__b) {
19298 vector
unsigned __int128)(((vector
signed __int128)
__a) >>
19300 (vector
unsigned __int128)(
sizeof(
19301 unsigned __int128) *
19306 vec_sra(vector
signed __int128
__a, vector
unsigned __int128
__b) {
19307 return __a >> (
__b % (vector
unsigned __int128)(
sizeof(
unsigned __int128) *
19314 #ifdef __POWER8_VECTOR__
19315 #define __bcdadd(__a, __b, __ps) __builtin_ppc_bcdadd((__a), (__b), (__ps))
19316 #define __bcdsub(__a, __b, __ps) __builtin_ppc_bcdsub((__a), (__b), (__ps))
19318 static __inline__
long __bcdadd_ofl(vector
unsigned char __a,
19319 vector
unsigned char __b) {
19323 static __inline__
long __bcdsub_ofl(vector
unsigned char __a,
19324 vector
unsigned char __b) {
19328 static __inline__
long __bcd_invalid(vector
unsigned char __a) {
19332 static __inline__
long __bcdcmpeq(vector
unsigned char __a,
19333 vector
unsigned char __b) {
19337 static __inline__
long __bcdcmplt(vector
unsigned char __a,
19338 vector
unsigned char __b) {
19342 static __inline__
long __bcdcmpgt(vector
unsigned char __a,
19343 vector
unsigned char __b) {
19347 static __inline__
long __bcdcmple(vector
unsigned char __a,
19348 vector
unsigned char __b) {
19352 static __inline__
long __bcdcmpge(vector
unsigned char __a,
19353 vector
unsigned char __b) {
19359 #undef __ATTRS_o_ai
__PTRDIFF_TYPE__ ptrdiff_t
static __inline__ vector int __ATTRS_o_ai vec_vsubsws(vector int __a, vector int __b)
static __inline__ vector int __ATTRS_o_ai vec_lvewx(long __a, const 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__ void __ATTRS_o_ai vec_stvx(vector signed char __a, long __b, vector signed char *__c)
static __inline__ vector short __ATTRS_o_ai vec_vmaxsh(vector short __a, vector short __b)
static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a, signed int __b)
static __inline__ vector signed char __ATTRS_o_ai vec_sra(vector signed char __a, vector unsigned char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lvx(long __a, const vector signed char *__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__ void __ATTRS_o_ai vec_stvehx(vector short __a, long __b, short *__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__ int __ATTRS_o_ai vec_any_ngt(vector float __a, vector float __b)
static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, vector signed char __b)
static __inline__ vector signed char __ATTRS_o_ai vec_lde(long __a, const signed char *__b)
static __inline__ void __ATTRS_o_ai vec_stvlxl(vector signed char __a, int __b, signed char *__c)
static __ATTRS_o_ai vector signed char vec_xl(ptrdiff_t __offset, const signed char *__ptr)
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__ int __ATTRS_o_ai vec_any_nge(vector float __a, vector float __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 float vector float __b
static __inline__ vector unsigned char __ATTRS_o_ai vec_lvsr(int __a, const signed char *__b)
static vector float __ATTRS_o_ai vec_recipdiv(vector float __a, vector float __b)
static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a, vector short __b)
static __inline__ vector signed char __ATTRS_o_ai vec_ld(long __a, const vector signed char *__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 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_any_nan(vector float __a)
static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, vector signed char __b)
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__ void __ATTRS_o_ai vec_st(vector signed char __a, long __b, vector signed char *__c)
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 __ATTRS_o_ai void vec_xst(vector signed char __vec, ptrdiff_t __offset, signed char *__ptr)
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 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__ 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_lvxl(long __a, const vector signed char *__b)
static __inline__ vector signed char __ATTRS_o_ai vec_vmaxsb(vector signed char __a, vector signed char __b)
static __inline__ int __ATTRS_o_ai vec_any_numeric(vector float __a)
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_lvebx(long __a, const signed char *__b)
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__ void __ATTRS_o_ai vec_ste(vector signed char __a, long __b, signed char *__c)
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__ vector signed char __ATTRS_o_ai vec_vmrghb(vector signed char __a, vector signed char __b)
static __inline__ vector float __ATTRS_o_ai vec_roundp(vector float __a)
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__ void __ATTRS_o_ai vec_stvewx(vector int __a, long __b, int *__c)
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__ int __ATTRS_o_ai vec_all_numeric(vector float __a)
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 signed char __ATTRS_o_ai vec_ldl(long __a, const vector signed char *__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 vector float __ATTRS_o_ai vec_rsqrt(vector float __a)
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 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 __inline__ vector short __ATTRS_o_ai vec_lvehx(long __a, const short *__b)
static __inline__ void __ATTRS_o_ai vec_stvebx(vector signed char __a, long __b, signed char *__c)
static __inline__ vector int __ATTRS_o_ai vec_vaddsws(vector int __a, vector int __b)
static __inline__ int __ATTRS_o_ai vec_any_nlt(vector float __a, vector float __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_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__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, vector signed char __b)
static __inline__ vector float __ATTRS_o_ai vec_roundm(vector float __a)
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__ int __ATTRS_o_ai vec_all_nle(vector float __a, vector float __b)
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__ int __ATTRS_o_ai vec_all_nlt(vector float __a, vector float __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_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 __inline__ vector float __ATTRS_o_ai vec_roundz(vector float __a)
static __inline__ int __ATTRS_o_ai vec_any_nle(vector float __a, vector float __b)
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
constexpr bool aligned(uintptr_t Value)