This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
altivec.h: major cleanups
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: geoffk at redhat dot com, dje at watson dot ibm dot com
- Date: Thu, 16 May 2002 10:19:01 +1000
- Subject: altivec.h: major cleanups
these are major cleanups to altivec.h to get the motorola altivec testsuite
working. besides, the usual typo fixings, there are a few interesting
fixes:
- you can't just pass any pointer to the functions requiring
a specific pointer type (vector int *, int *, unsigned int *,
etc). so we have much tighter typechecking.
- now you can use modifiers such as static, volatile, etc
on the functions accepting pointers.
- there were a few predicate typos, and we were getting the
wrong bits out of CR6.
- long and int are equivalent throughout (vector long, vector int).
and many more small fixes.
all of it seems pretty obvious to me, but i'll wait for an OK since
it is a fairly big patch.
ok for mainline?
2002-05-15 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/altivec.h: Cleanups for tighter typechecking.
Cleanups for accepting modifiers on pointers.
Fix predicate typos.
Allow long pointers as well as int pointers.
Index: config/rs6000/altivec.h
===================================================================
RCS file: /cvs/uberbaum/gcc/config/rs6000/altivec.h,v
retrieving revision 1.19
diff -c -p -r1.19 altivec.h
*** config/rs6000/altivec.h 1 May 2002 06:52:28 -0000 1.19
--- config/rs6000/altivec.h 16 May 2002 00:11:10 -0000
*************** extern int __altivec_link_error_invalid_
*** 122,134 ****
inlined. */
inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline));
inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline));
inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline));
inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline));
inline void vec_dss (const char) __attribute__ ((always_inline));
! inline void vec_dst (void *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (void *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (void *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (void *, int, const char) __attribute__ ((always_inline));
inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline));
inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline));
inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline));
--- 122,201 ----
inlined. */
inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline));
inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline));
+ inline vector float vec_vcfsx (vector signed int a1, const char a2) __attribute__ ((always_inline));
+ inline vector float vec_vcfux (vector unsigned int a1, const char a2) __attribute__ ((always_inline));
inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline));
inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline));
inline void vec_dss (const char) __attribute__ ((always_inline));
!
! inline void vec_dst (vector unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (vector signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (vector unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (vector signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (vector unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (vector signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (vector float *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (unsigned long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (signed long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dst (float *, int, const char) __attribute__ ((always_inline));
!
! inline void vec_dstst (vector unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (vector signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (vector unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (vector signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (vector unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (vector signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (vector float *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (unsigned long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (signed long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstst (float *, int, const char) __attribute__ ((always_inline));
!
! inline void vec_dststt (vector unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (vector signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (vector unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (vector signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (vector unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (vector signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (vector float *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (unsigned long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (signed long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dststt (float *, int, const char) __attribute__ ((always_inline));
!
! inline void vec_dstt (vector unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (vector signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (vector unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (vector signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (vector unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (vector signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (vector float *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (unsigned char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (signed char *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (unsigned short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (signed short *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (unsigned int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (signed int *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (unsigned long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (signed long *, int, const char) __attribute__ ((always_inline));
! inline void vec_dstt (float *, int, const char) __attribute__ ((always_inline));
!
inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline));
inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline));
inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline));
*************** inline vector signed int vec_splat_s32 (
*** 149,154 ****
--- 216,228 ----
inline vector unsigned char vec_splat_u8 (const char) __attribute__ ((always_inline));
inline vector unsigned short vec_splat_u16 (const char) __attribute__ ((always_inline));
inline vector unsigned int vec_splat_u32 (const char) __attribute__ ((always_inline));
+ inline vector float vec_vspltw (vector float a1, const char a2) __attribute__ ((always_inline));
+ inline vector signed int vec_vspltw (vector signed int a1, const char a2) __attribute__ ((always_inline));
+ inline vector unsigned int vec_vspltw (vector unsigned int a1, const char a2) __attribute__ ((always_inline));
+ inline vector signed short vec_vsplth (vector signed short a1, const char a2) __attribute__ ((always_inline));
+ inline vector unsigned short vec_vsplth (vector unsigned short a1, const char a2) __attribute__ ((always_inline));
+ inline vector signed char vec_vspltb (vector signed char a1, const char a2) __attribute__ ((always_inline));
+ inline vector unsigned char vec_vspltb (vector unsigned char a1, const char a2) __attribute__ ((always_inline));
/* vec_abs */
*************** vec_dssall ()
*** 1132,1138 ****
/* vec_dst */
inline void
! vec_dst (void *a1, int a2, const char a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
--- 1206,1302 ----
/* vec_dst */
inline void
! vec_dst (vector unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (vector signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (vector unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (vector signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (vector unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (vector signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (vector float *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (unsigned long *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (signed long *a1, int a2, const char a3)
! {
! __builtin_altivec_dst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dst (float *a1, int a2, const char a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
*************** vec_dst (void *a1, int a2, const char a3
*** 1140,1146 ****
/* vec_dstst */
inline void
! vec_dstst (void *a1, int a2, const char a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
--- 1304,1400 ----
/* vec_dstst */
inline void
! vec_dstst (vector unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (vector signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (vector unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (vector signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (vector unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (vector signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (vector float *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (unsigned long *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (signed long *a1, int a2, const char a3)
! {
! __builtin_altivec_dstst ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstst (float *a1, int a2, const char a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
*************** vec_dstst (void *a1, int a2, const char
*** 1148,1154 ****
/* vec_dststt */
inline void
! vec_dststt (void *a1, int a2, const char a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
--- 1402,1498 ----
/* vec_dststt */
inline void
! vec_dststt (vector unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (vector signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (vector unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (vector signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (vector unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (vector signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (vector float *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (unsigned long *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (signed long *a1, int a2, const char a3)
! {
! __builtin_altivec_dststt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dststt (float *a1, int a2, const char a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
*************** vec_dststt (void *a1, int a2, const char
*** 1156,1162 ****
/* vec_dstt */
inline void
! vec_dstt (void *a1, int a2, const char a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
--- 1500,1596 ----
/* vec_dstt */
inline void
! vec_dstt (vector unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (vector signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (vector unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (vector signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (vector unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (vector signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (vector float *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (unsigned char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (signed char *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (unsigned short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (signed short *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (unsigned int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (signed int *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (unsigned long *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (signed long *a1, int a2, const char a3)
! {
! __builtin_altivec_dstt ((void *) a1, a2, a3);
! }
!
! inline void
! vec_dstt (float *a1, int a2, const char a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
*************** vec_lvsl (int a1, signed int *a2)
*** 1536,1541 ****
--- 1970,1987 ----
}
inline vector unsigned char
+ vec_lvsl (int a1, unsigned long *a2)
+ {
+ return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ }
+
+ inline vector unsigned char
+ vec_lvsl (int a1, signed long *a2)
+ {
+ return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ }
+
+ inline vector unsigned char
vec_lvsl (int a1, float *a2)
{
return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
*************** vec_lvsr (int a1, signed int *a2)
*** 1580,1585 ****
--- 2026,2043 ----
}
inline vector unsigned char
+ vec_lvsr (int a1, unsigned long *a2)
+ {
+ return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ }
+
+ inline vector unsigned char
+ vec_lvsr (int a1, signed long *a2)
+ {
+ return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ }
+
+ inline vector unsigned char
vec_lvsr (int a1, float *a2)
{
return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
*************** vec_all_ge (vector signed int a1, vector
*** 4692,4698 ****
inline int
vec_all_ge (vector float a1, vector float a2)
{
! return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2);
}
/* vec_all_gt */
--- 5150,5156 ----
inline int
vec_all_ge (vector float a1, vector float a2)
{
! return __builtin_altivec_vcmpgefp_p (__CR6_LT, a1, a2);
}
/* vec_all_gt */
*************** vec_any_le (vector signed int a1, vector
*** 5388,5394 ****
inline int
vec_any_le (vector float a1, vector float a2)
{
! return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1);
}
/* vec_any_lt */
--- 5846,5852 ----
inline int
vec_any_le (vector float a1, vector float a2)
{
! return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a2, a1);
}
/* vec_any_lt */
*************** __ch (__bin_args_eq (vector unsigned int
*** 6087,6103 ****
((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
__ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \
((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
! __altivec_link_error_invalid_argument ()))
#define vec_vcfsx(a1, a2) \
__ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \
((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
! __altivec_link_error_invalid_argument ())
#define vec_vcfux(a1, a2) \
__ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \
((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
! __altivec_link_error_invalid_argument ())
#define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2))
--- 6545,6569 ----
((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
__ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \
((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
! __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \
! ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
! __ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \
! ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
! __altivec_link_error_invalid_argument ()))))
#define vec_vcfsx(a1, a2) \
__ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \
((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
! __ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \
! ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
! __altivec_link_error_invalid_argument ()))
#define vec_vcfux(a1, a2) \
__ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \
((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
! __ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \
! ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
! __altivec_link_error_invalid_argument ()))
#define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2))
*************** __ch (__bin_args_eq (vector unsigned int
*** 6107,6347 ****
#define vec_dssall() __builtin_altivec_dssall ()
! #define vec_dst(a1, a2, a3) __builtin_altivec_dst ((a1), (a2), (a3))
!
! #define vec_dstst(a1, a2, a3) __builtin_altivec_dstst ((a1), (a2), (a3))
!
! #define vec_dststt(a1, a2, a3) __builtin_altivec_dststt ((a1), (a2), (a3))
!
! #define vec_dstt(a1, a2, a3) __builtin_altivec_dstt ((a1), (a2), (a3))
#define vec_expte(a1) __builtin_altivec_vexptefp ((a1))
#define vec_floor(a1) __builtin_altivec_vrfim (a1)
#define vec_ld(a, b) \
! __ch (__un_args_eq (vector unsigned char *, (b)), \
! ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned char [], (b)), \
((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned char *, (b)), \
((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned char [], (b)), \
! ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed char *, (b)), \
! ((vector signed char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed char [], (b)), \
! ((vector signed char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed char *, (b)), \
((vector signed char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed char [], (b)), \
((vector signed char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned short *, (b)), \
((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned short [], (b)), \
((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned short *, (b)), \
! ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned short [], (b)), \
! ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed short *, (b)), \
! ((vector signed short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed short [], (b)), \
((vector signed short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed short *, (b)), \
((vector signed short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed short [], (b)), \
! ((vector signed short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned int *, (b)), \
! ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned int [], (b)), \
! ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned int *, (b)), \
! ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned int [], (b)), \
((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned long *, (b)), \
((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned long [], (b)), \
((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed int *, (b)), \
! ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed int [], (b)), \
! ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed int *, (b)), \
! ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed int [], (b)), \
((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed long *, (b)), \
((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed long [], (b)), \
((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector float *, (b)), \
((vector float) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector float [], (b)), \
((vector float) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (float *, (b)), \
! ((vector float) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (float [], (b)), \
! ((vector float) __builtin_altivec_lvx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))))))))))))))))))))))))))))))
#define vec_lde(a, b) \
! __ch (__un_args_eq (unsigned char *, (b)), \
! ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (unsigned char [], (b)), \
((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (signed char *, (b)), \
((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (signed char [], (b)), \
! ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (unsigned short *, (b)), \
! ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (unsigned short [], (b)), \
((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (signed short *, (b)), \
! ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (signed short [], (b)), \
((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (unsigned long *, (b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned long [], (b)), \
! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed long *, (b)), \
! ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed long [], (b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned int *, (b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned int [], (b)), \
! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed int *, (b)), \
! ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed int [], (b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (float *, (b)), \
((vector float) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (float [], (b)), \
! ((vector float) __builtin_altivec_lvewx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))))))))))))))))
#define vec_lvewx(a, b) \
! __ch (__un_args_eq (unsigned int *, (b)), \
! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned int [], (b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed int *, (b)), \
! ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed int [], (b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned long *, (b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned long [], (b)), \
! ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed long *, (b)), \
! ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed long [], (b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (float *, (b)), \
! ((vector float) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (float [], (b)), \
((vector float) __builtin_altivec_lvewx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))))))))
#define vec_lvehx(a, b) \
! __ch (__un_args_eq (unsigned short *, (b)), \
((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (unsigned short [], (b)), \
! ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (signed short *, (b)), \
! ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (signed short [], (b)), \
((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))
#define vec_lvebx(a, b) \
! __ch (__un_args_eq (unsigned char *, (b)), \
! ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (unsigned char [], (b)), \
((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (signed char *, (b)), \
((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (signed char [], (b)), \
! ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))
#define vec_ldl(a, b) \
! __ch (__un_args_eq (vector unsigned char *, (b)), \
! ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned char [], (b)), \
! ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned char *, (b)), \
((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned char [], (b)), \
((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed char *, (b)), \
((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed char [], (b)), \
((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed char *, (b)), \
! ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed char [], (b)), \
! ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned short *, (b)), \
! ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned short [], (b)), \
((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned short *, (b)), \
((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned short [], (b)), \
! ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed short *, (b)), \
! ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed short [], (b)), \
! ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed short *, (b)), \
((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed short [], (b)), \
((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned int *, (b)), \
((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned int [], (b)), \
((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned int *, (b)), \
((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned int [], (b)), \
! ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned long *, (b)), \
! ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned long [], (b)), \
! ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed int *, (b)), \
! ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed int [], (b)), \
((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed int *, (b)), \
((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed int [], (b)), \
((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed long *, (b)), \
! ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed long [], (b)), \
! ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector float *, (b)), \
! ((vector float) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector float [], (b)), \
((vector float) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (float *, (b)), \
((vector float) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (float [], (b)), \
! ((vector float) __builtin_altivec_lvxl ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))))))))))))))))))))))))))))))
#define vec_loge(a1) __builtin_altivec_vlogefp ((a1))
! #define vec_lvsl(a1, a2) ((vector unsigned char) __builtin_altivec_lvsl ((a1), (a2)))
!
! #define vec_lvsr(a1, a2) ((vector unsigned char) __builtin_altivec_lvsr ((a1), (a2)))
#define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3)))
--- 6573,6883 ----
#define vec_dssall() __builtin_altivec_dssall ()
! #define vec_dst(a1, a2, a3) \
! __ch (__un_args_eq (vector unsigned char, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed char, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned short, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed short, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned int, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed int, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector float, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned char, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed char, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned short, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed short, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned int, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed int, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned long, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed long, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (float, *(a1)), \
! __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
! __altivec_link_error_invalid_argument ()))))))))))))))))
!
! #define vec_dstst(a1, a2, a3) \
! __ch (__un_args_eq (vector unsigned char, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed char, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned short, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed short, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned int, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed int, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector float, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned char, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed char, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned short, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed short, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned int, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed int, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned long, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed long, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (float, *(a1)), \
! __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
! __altivec_link_error_invalid_argument ()))))))))))))))))
!
! #define vec_dststt(a1, a2, a3) \
! __ch (__un_args_eq (vector unsigned char, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed char, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned short, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed short, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned int, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed int, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector float, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned char, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed char, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned short, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed short, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned int, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed int, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned long, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed long, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (float, *(a1)), \
! __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
! __altivec_link_error_invalid_argument ()))))))))))))))))
!
! #define vec_dstt(a1, a2, a3) \
! __ch (__un_args_eq (vector unsigned char, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed char, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned short, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed short, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector unsigned int, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector signed int, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (vector float, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned char, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed char, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned short, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed short, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned int, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed int, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (unsigned long, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (signed long, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __ch (__un_args_eq (float, *(a1)), \
! __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
! __altivec_link_error_invalid_argument ()))))))))))))))))
#define vec_expte(a1) __builtin_altivec_vexptefp ((a1))
#define vec_floor(a1) __builtin_altivec_vrfim (a1)
#define vec_ld(a, b) \
! __ch (__un_args_eq (vector unsigned char, *(b)), \
((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned char, *(b)), \
((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed char, *(b)), \
((vector signed char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed char, *(b)), \
((vector signed char) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned short, *(b)), \
((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned short, *(b)), \
((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed short, *(b)), \
((vector signed short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed short, *(b)), \
((vector signed short) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector unsigned int, *(b)), \
((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned int, *(b)), \
((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (unsigned long, *(b)), \
((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector signed int, *(b)), \
((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed int, *(b)), \
((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (signed long, *(b)), \
((vector signed int) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (vector float, *(b)), \
((vector float) __builtin_altivec_lvx ((a), (b))), \
! __ch (__un_args_eq (float, *(b)), \
((vector float) __builtin_altivec_lvx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))))))))))))))
#define vec_lde(a, b) \
! __ch (__un_args_eq (unsigned char, *(b)), \
((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (signed char, *(b)), \
((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (unsigned short, *(b)), \
((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (signed short, *(b)), \
((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (unsigned long, *(b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed long, *(b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned int, *(b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed int, *(b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (float, *(b)), \
((vector float) __builtin_altivec_lvewx ((a), (b))), \
! __altivec_link_error_invalid_argument ())))))))))
#define vec_lvewx(a, b) \
! __ch (__un_args_eq (unsigned int, *(b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed int, *(b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (unsigned long, *(b)), \
((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (signed long, *(b)), \
((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
! __ch (__un_args_eq (float, *(b)), \
((vector float) __builtin_altivec_lvewx ((a), (b))), \
! __altivec_link_error_invalid_argument ())))))
#define vec_lvehx(a, b) \
! __ch (__un_args_eq (unsigned short, *(b)), \
((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
! __ch (__un_args_eq (signed short, *(b)), \
((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))
#define vec_lvebx(a, b) \
! __ch (__un_args_eq (unsigned char, *(b)), \
((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
! __ch (__un_args_eq (signed char, *(b)), \
((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
! __altivec_link_error_invalid_argument ()))
#define vec_ldl(a, b) \
! __ch (__un_args_eq (vector unsigned char, *(b)), \
((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned char, *(b)), \
((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed char, *(b)), \
((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed char, *(b)), \
((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned short, *(b)), \
((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned short, *(b)), \
((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed short, *(b)), \
((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed short, *(b)), \
((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector unsigned int, *(b)), \
((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned int, *(b)), \
((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (unsigned long, *(b)), \
((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector signed int, *(b)), \
((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed int, *(b)), \
((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (signed long, *(b)), \
((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (vector float, *(b)), \
((vector float) __builtin_altivec_lvxl ((a), (b))), \
! __ch (__un_args_eq (float, *(b)), \
((vector float) __builtin_altivec_lvxl ((a), (b))), \
! __altivec_link_error_invalid_argument ()))))))))))))))))
#define vec_loge(a1) __builtin_altivec_vlogefp ((a1))
! #define vec_lvsl(a1, a2) \
! __ch (__un_args_eq (unsigned char, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed char, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (unsigned short, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed short, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (unsigned int, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed int, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (unsigned long, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed long, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __ch (__un_args_eq (float, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
! __altivec_link_error_invalid_argument ())))))))))
!
! #define vec_lvsr(a1, a2) \
! __ch (__un_args_eq (unsigned char, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed char, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (unsigned short, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed short, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (unsigned int, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed int, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (unsigned long, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (signed long, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __ch (__un_args_eq (float, *(a2)), \
! ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
! __altivec_link_error_invalid_argument ())))))))))
#define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3)))
*************** __altivec_link_error_invalid_argument ()
*** 6985,7003 ****
#define vec_sld(a1, a2, a3) \
__ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \
((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \
((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \
((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \
((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \
((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \
((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \
((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
! __altivec_link_error_invalid_argument ())))))))
#define vec_sll(a1, a2) \
__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
--- 7521,7553 ----
#define vec_sld(a1, a2, a3) \
__ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \
((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
+ __ch (__tern_args_eq (vector float, (a1), vector float, (a2), unsigned int, (a3)), \
+ ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \
((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
+ __ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), unsigned int, (a3)), \
+ ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \
((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
+ __ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), unsigned int, (a3)), \
+ ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \
((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
+ __ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), unsigned int, (a3)), \
+ ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \
((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
+ __ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), unsigned int, (a3)), \
+ ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \
((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
+ __ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), unsigned int, (a3)), \
+ ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \
((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
! __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), unsigned int, (a3)), \
! ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
! __altivec_link_error_invalid_argument ()))))))))))))))
#define vec_sll(a1, a2) \
__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
*************** __ch (__bin_args_eq (vector unsigned cha
*** 7072,7113 ****
#define vec_splat(a1, a2) \
__ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \
((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \
((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \
((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \
((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \
((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \
((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \
((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ())))))))
#define vec_vspltw(a1, a2) \
__ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \
((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \
((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \
((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ())))
#define vec_vsplth(a1, a2) \
__ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \
((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \
((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ()))
#define vec_vspltb(a1, a2) \
__ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \
((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \
((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ()))
#define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1))
--- 7622,7691 ----
#define vec_splat(a1, a2) \
__ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \
((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \
+ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \
((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \
+ ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \
((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \
+ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \
((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \
+ ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \
((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \
+ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \
((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \
+ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \
((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
! __ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \
! ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ()))))))))))))))
#define vec_vspltw(a1, a2) \
__ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \
((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \
+ ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \
((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \
+ ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \
((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
! __ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \
! ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ()))))))
#define vec_vsplth(a1, a2) \
__ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \
((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \
+ ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \
((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
! __ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \
! ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ()))))
#define vec_vspltb(a1, a2) \
__ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \
((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
+ __ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \
+ ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
__ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \
((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
! __ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \
! ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
! __altivec_link_error_invalid_argument ()))))
#define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1))
*************** __ch (__bin_args_eq (vector unsigned int
*** 7634,7640 ****
__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
__builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
! __builtin_altivec_vcmpgefp_p (__CR6_EQ, (vector float) (a1), (vector float) (a2)), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_all_gt(a1, a2) \
--- 8212,8218 ----
__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
__builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
! __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_all_gt(a1, a2) \