This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

altivec.h cleanups for gcc3.1 branch


hello.

this is just a backport of all the altivec.h changes into the 3.1
branch.

mark said this was ok to go into 3.1?

ok?

2002-05-01  Aldy Hernandez  <aldyh@redhat.com>

        * config/rs6000/altivec.h: Cleanups.  Fix typos.

Index: altivec.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/altivec.h,v
retrieving revision 1.12.2.6
diff -c -p -r1.12.2.6 altivec.h
*** altivec.h	24 Apr 2002 10:59:40 -0000	1.12.2.6
--- altivec.h	17 May 2002 06:16:40 -0000
*************** Boston, MA 02111-1307, USA.  */
*** 45,52 ****
  #define vector __vector
  
  #define bool signed
! #define pixel short
! #define __pixel short
  
  /* Dummy prototype.  */
  extern int __altivec_link_error_invalid_argument ();
--- 45,52 ----
  #define vector __vector
  
  #define bool signed
! #define pixel unsigned short
! #define __pixel unsigned short
  
  /* Dummy prototype.  */
  extern int __altivec_link_error_invalid_argument ();
*************** 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_ld (int a1, signed int *a2)
*** 1203,1208 ****
--- 1637,1648 ----
    return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
  }
  
+ inline vector signed int
+ vec_ld (int a1, signed long *a2)
+ {
+   return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
+ }
+ 
  inline vector unsigned int
  vec_ld (int a1, vector unsigned int *a2)
  {
*************** vec_ld (int a1, unsigned int *a2)
*** 1215,1220 ****
--- 1655,1666 ----
    return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
  }
  
+ inline vector unsigned int
+ vec_ld (int a1, unsigned long *a2)
+ {
+   return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
+ }
+ 
  inline vector signed short
  vec_ld (int a1, vector signed short *a2)
  {
*************** vec_lde (int a1, unsigned int *a2)
*** 1307,1312 ****
--- 1753,1770 ----
    return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
  }
  
+ inline vector signed int
+ vec_lde (int a1, signed long *a2)
+ {
+   return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+ }
+ 
+ inline vector unsigned int
+ vec_lde (int a1, unsigned long *a2)
+ {
+   return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+ }
+ 
  /* vec_lvewx */
  
  inline vector float
*************** vec_lvewx (int a1, unsigned int *a2)
*** 1327,1332 ****
--- 1785,1802 ----
    return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
  }
  
+ inline vector signed int
+ vec_lvewx (int a1, signed long *a2)
+ {
+   return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+ }
+ 
+ inline vector unsigned int
+ vec_lvewx (int a1, unsigned long *a2)
+ {
+   return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+ }
+ 
  /* vec_lvehx */
  
  inline vector signed short
*************** vec_ldl (int a1, signed int *a2)
*** 1381,1386 ****
--- 1851,1862 ----
    return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
  }
  
+ inline vector signed int
+ vec_ldl (int a1, signed long *a2)
+ {
+   return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
+ }
+ 
  inline vector unsigned int
  vec_ldl (int a1, vector unsigned int *a2)
  {
*************** vec_ldl (int a1, unsigned int *a2)
*** 1393,1398 ****
--- 1869,1880 ----
    return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
  }
  
+ inline vector unsigned int
+ vec_ldl (int a1, unsigned long *a2)
+ {
+   return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
+ }
+ 
  inline vector signed short
  vec_ldl (int a1, vector signed short *a2)
  {
*************** vec_lvsl (int a1, signed int *a2)
*** 1488,1493 ****
--- 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)
*** 1532,1537 ****
--- 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_vpkuhum (vector unsigned short a1, v
*** 2557,2566 ****
  
  /* vec_packpx */
  
! inline vector signed short
  vec_packpx (vector unsigned int a1, vector unsigned int a2)
  {
!   return (vector signed short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2);
  }
  
  /* vec_packs */
--- 3063,3072 ----
  
  /* vec_packpx */
  
! inline vector unsigned short
  vec_packpx (vector unsigned int a1, vector unsigned int a2)
  {
!   return (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2);
  }
  
  /* vec_packs */
*************** vec_unpackh (vector signed short a1)
*** 4321,4326 ****
--- 4827,4838 ----
    return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
  }
  
+ inline vector unsigned int
+ vec_unpackh (vector unsigned short a1)
+ {
+   return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
+ }
+ 
  /* vec_vupkhsh */
  
  inline vector signed int
*************** vec_vupkhsh (vector signed short a1)
*** 4332,4338 ****
  /* vec_vupkhpx */
  
  inline vector unsigned int
! vec_vupkhpx (vector signed short a1)
  {
    return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
  }
--- 4844,4850 ----
  /* vec_vupkhpx */
  
  inline vector unsigned int
! vec_vupkhpx (vector unsigned short a1)
  {
    return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
  }
*************** vec_unpackl (vector signed char a1)
*** 4354,4360 ****
  }
  
  inline vector unsigned int
! vec_vupklpx (vector signed short a1)
  {
    return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
  }
--- 4866,4872 ----
  }
  
  inline vector unsigned int
! vec_unpackl (vector unsigned short a1)
  {
    return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
  }
*************** vec_unpackl (vector signed short a1)
*** 4365,4370 ****
--- 4877,4890 ----
    return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
  }
  
+ /* vec_vupklpx */
+ 
+ inline vector unsigned int
+ vec_vupklpx (vector unsigned short a1)
+ {
+   return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
+ }
+ 
  /* vec_upklsh */
  
  inline vector signed int
*************** vec_all_ge (vector signed int a1, vector
*** 4630,4636 ****
  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
*** 5326,5332 ****
  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 */
*************** struct __vec_step_help<vector float>
*** 5595,5601 ****
    static const int _S_elem = 4;
  };
  
! #define vec_step(t)  __vec_step_help<t>::_S_elem
  
  #else /* not C++ */
  
--- 6115,6121 ----
    static const int _S_elem = 4;
  };
  
! #define vec_step(t)  __vec_step_help<typeof(t)>::_S_elem
  
  #else /* not C++ */
  
*************** struct __vec_step_help<vector float>
*** 5623,5635 ****
    __altivec_link_error_invalid_argument ())))
  
  #define vec_step(t) \
!   __ch (__builtin_types_compatible_p (t, vector signed int), 4,		\
!   __ch (__builtin_types_compatible_p (t, vector unsigned int), 4,	\
!   __ch (__builtin_types_compatible_p (t, vector signed short), 8,	\
!   __ch (__builtin_types_compatible_p (t, vector unsigned short), 8,	\
!   __ch (__builtin_types_compatible_p (t, vector signed char), 16,	\
!   __ch (__builtin_types_compatible_p (t, vector unsigned char), 16,	\
!   __ch (__builtin_types_compatible_p (t, vector float), 4,		\
    __altivec_link_error_invalid_argument ())))))))
  
  #define vec_vaddubm(a1, a2) \
--- 6143,6155 ----
    __altivec_link_error_invalid_argument ())))
  
  #define vec_step(t) \
!   __ch (__builtin_types_compatible_p (typeof (t), vector signed int), 4,      \
!   __ch (__builtin_types_compatible_p (typeof (t), vector unsigned int), 4,    \
!   __ch (__builtin_types_compatible_p (typeof (t), vector signed short), 8,    \
!   __ch (__builtin_types_compatible_p (typeof (t), vector unsigned short), 8,  \
!   __ch (__builtin_types_compatible_p (typeof (t), vector signed char), 16,    \
!   __ch (__builtin_types_compatible_p (typeof (t), vector unsigned char), 16,  \
!   __ch (__builtin_types_compatible_p (typeof (t), vector float), 4,           \
    __altivec_link_error_invalid_argument ())))))))
  
  #define vec_vaddubm(a1, a2) \
*************** __ch (__bin_args_eq (vector float, (a1),
*** 5813,5820 ****
        ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \
        ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
!       ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
        ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
--- 6333,6342 ----
        ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \
        ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
! __ch (__bin_args_eq (vector signed int, (a1), vector float, (a2)), \
!       ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
! __ch (__bin_args_eq (vector float, (a1), vector signed int, (a2)), \
!       ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
        ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
*************** __ch (__bin_args_eq (vector unsigned int
*** 5826,5834 ****
  __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
        ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
!       ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
!       ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
        ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
--- 6348,6356 ----
  __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
        ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
!       ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
!       ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
        ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
*************** __ch (__bin_args_eq (vector signed char,
*** 5851,5857 ****
        ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
        ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
!     __altivec_link_error_invalid_argument ()))))))))))))))))))))))
  
  #define vec_avg(a1, a2) \
  __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
--- 6373,6379 ----
        ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
  __ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
        ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
!     __altivec_link_error_invalid_argument ())))))))))))))))))))))))
  
  #define vec_avg(a1, a2) \
  __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
*************** __ch (__bin_args_eq (vector unsigned int
*** 6023,6039 ****
        ((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
*** 6043,6251 ****
  
  #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 (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 (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 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 (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 (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 (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)))
  
*************** __ch (__tern_args_eq (vector signed char
*** 6524,6530 ****
        ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
  __altivec_link_error_invalid_argument ())
  
! #define vec_msumubm(a1, a2, a3) \
  __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \
        ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
  __altivec_link_error_invalid_argument ())
--- 7156,7162 ----
        ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
  __altivec_link_error_invalid_argument ())
  
! #define vec_vmsumubm(a1, a2, a3) \
  __ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \
        ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
  __altivec_link_error_invalid_argument ())
*************** __ch (__bin_args_eq (vector unsigned sho
*** 6613,6619 ****
        ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \
  __altivec_link_error_invalid_argument ())
  
! #define vec_mulosb(a1, a2) \
  __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
        ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \
  __altivec_link_error_invalid_argument ())
--- 7245,7251 ----
        ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \
  __altivec_link_error_invalid_argument ())
  
! #define vec_vmulosb(a1, a2) \
  __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
        ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \
  __altivec_link_error_invalid_argument ())
*************** __ch (__bin_args_eq (vector unsigned sho
*** 6703,6709 ****
        ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
  __altivec_link_error_invalid_argument ()))
  
! #define vec_packpx(a1, a2) __builtin_altivec_vpkpx ((a1), (a2))
  
  #define vec_packs(a1, a2) \
  __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
--- 7335,7344 ----
        ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
  __altivec_link_error_invalid_argument ()))
  
! #define vec_packpx(a1, a2) \
! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
!   (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) (a1), (vector signed int) (a2)), \
! __altivec_link_error_invalid_argument ())
  
  #define vec_packs(a1, a2) \
  __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
*************** __altivec_link_error_invalid_argument ()
*** 6886,6904 ****
  #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
*** 6973,7014 ****
  #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 cha
*** 7277,7283 ****
        ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
  __altivec_link_error_invalid_argument ()))))
  
! #define vec_subc(a1, a2) ((vector unsigned int) __builtin_altivec_vsubcuw ((vector unsigned int) (a1), (vector unsigned int) (a2)))
  
  #define vec_subs(a1, a2) \
  __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
--- 7954,7963 ----
        ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
  __altivec_link_error_invalid_argument ()))))
  
! #define vec_subc(a1, a2) \
! __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
!   ((vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) (a1), (vector signed int) (a2))), \
! __altivec_link_error_invalid_argument ())
  
  #define vec_subs(a1, a2) \
  __ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
*************** __altivec_link_error_invalid_argument ()
*** 7381,7387 ****
  #define vec_unpackh(a1) \
  __ch (__un_args_eq (vector signed char, (a1)), \
        ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
! __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
  __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
--- 8061,8067 ----
  #define vec_unpackh(a1) \
  __ch (__un_args_eq (vector signed char, (a1)), \
        ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
! __ch (__un_args_eq (vector unsigned short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
  __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
*************** __ch (__un_args_eq (vector signed short,
*** 7393,7399 ****
  __altivec_link_error_invalid_argument ())
  
  #define vec_vupkhpx(a1) \
! __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
  __altivec_link_error_invalid_argument ())
  
--- 8073,8079 ----
  __altivec_link_error_invalid_argument ())
  
  #define vec_vupkhpx(a1) \
! __ch (__un_args_eq (vector unsigned short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
  __altivec_link_error_invalid_argument ())
  
*************** __altivec_link_error_invalid_argument ()
*** 7405,7411 ****
  #define vec_unpackl(a1) \
  __ch (__un_args_eq (vector signed char, (a1)), \
        ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
! __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
  __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
--- 8085,8091 ----
  #define vec_unpackl(a1) \
  __ch (__un_args_eq (vector signed char, (a1)), \
        ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
! __ch (__un_args_eq (vector unsigned short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
  __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
*************** __ch (__un_args_eq (vector signed short,
*** 7417,7423 ****
  __altivec_link_error_invalid_argument ())
  
  #define vec_vupklpx(a1) \
! __ch (__un_args_eq (vector signed short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
  __altivec_link_error_invalid_argument ())
  
--- 8097,8103 ----
  __altivec_link_error_invalid_argument ())
  
  #define vec_vupklpx(a1) \
! __ch (__un_args_eq (vector unsigned short, (a1)), \
        ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
  __altivec_link_error_invalid_argument ())
  
*************** __ch (__bin_args_eq (vector float, ((a1)
*** 7433,7442 ****
        ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \
        ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \
        ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
- __ch (__bin_args_eq (vector unsigned int, ((a1)), vector unsigned int, ((a2))), \
-       ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \
        ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \
--- 8113,8124 ----
        ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \
        ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
+ __ch (__bin_args_eq (vector signed int, ((a1)), vector float, ((a2))), \
+       ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
+ __ch (__bin_args_eq (vector float, ((a1)), vector signed int, ((a2))), \
+       ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \
        ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \
        ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \
*************** __ch (__bin_args_eq (vector unsigned int
*** 7446,7454 ****
  __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
        ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \
!       ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \
!       ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
        ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \
--- 8128,8136 ----
  __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
        ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \
!       ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \
!       ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
        ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \
*************** __ch (__bin_args_eq (vector unsigned cha
*** 7470,7477 ****
  __ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \
        ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \
!       ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
!     __altivec_link_error_invalid_argument ()))))))))))))))))))))))
  
  /* Predicates.  */
  
--- 8152,8159 ----
  __ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \
        ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
  __ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \
!       ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
!     __altivec_link_error_invalid_argument ())))))))))))))))))))))))
  
  /* Predicates.  */
  
*************** __ch (__bin_args_eq (vector unsigned int
*** 7530,7536 ****
  __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) \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]