#define __vector __attribute__((vector_size(16)))
-/* Dummy prototype. */
-extern void __altivec_link_error_invalid_argument ();
-
/* You are allowed to undef this for C++ compatability. */
#define vector __vector
+#define pixel short
+
+/* Dummy prototype. */
+extern int __altivec_link_error_invalid_argument ();
+
/* Helper macros. */
+#define __CR6_EQ 0
+#define __CR6_EQ_REV 1
+#define __CR6_LT 2
+#define __CR6_LT_REV 3
+
#define __bin_args_eq(xtype, x, ytype, y) \
(__builtin_types_compatible_p (xtype, typeof (x)) \
&& __builtin_types_compatible_p (ytype, typeof (y)))
#ifdef __cplusplus
-/* C++ stuff here. */
-
+/* vec_add */
+
+inline vector signed char
+vec_add (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_add (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_add (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_add (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_add (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_add (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_add (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_add (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_add (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_add (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_add (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_add (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_add (vector float a1, vector float a2)
+{
+ return (vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_addc */
+
+inline vector unsigned int
+vec_addc (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vaddcuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_adds */
+
+inline vector unsigned char
+vec_adds (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_adds (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_adds (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_adds (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vaddsbs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned short
+vec_adds (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_adds (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_adds (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_adds (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vaddshs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned int
+vec_adds (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_adds (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_adds (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_adds (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vaddsws ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_and */
+
+inline vector float
+vec_and (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_and (vector float a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_and (vector signed int a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_and (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_and (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_and (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_and (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_and (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_and (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_and (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_and (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_and (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_and (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_and (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_and (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_andc */
+
+inline vector float
+vec_andc (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_andc (vector float a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_andc (vector signed int a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_andc (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_andc (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_andc (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_andc (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_andc (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_andc (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_andc (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_andc (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_andc (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_andc (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_andc (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_andc (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_avg */
+
+inline vector unsigned char
+vec_avg (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vavgub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_avg (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vavgsb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned short
+vec_avg (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vavguh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_avg (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vavgsh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned int
+vec_avg (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vavguw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_avg (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vavgsw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_ceil */
+
+inline vector float
+vec_ceil (vector float a1)
+{
+ return (vector float) __builtin_altivec_vrfip ((vector float) a1);
+}
+
+/* vec_cmpb */
+
+inline vector signed int
+vec_cmpb (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpbfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_cmpeq */
+
+inline vector signed char
+vec_cmpeq (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_cmpeq (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_cmpeq (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_cmpeq (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_cmpeq (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_cmpeq (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_cmpeq (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpeqfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_cmpge */
+
+inline vector signed int
+vec_cmpge (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgefp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_cmpgt */
+
+inline vector signed char
+vec_cmpgt (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_cmpgt (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_cmpgt (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_cmpgt (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_cmpgt (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_cmpgt (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_cmpgt (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_cmple */
+
+inline vector signed int
+vec_cmple (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgefp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_cmplt */
+
+inline vector signed char
+vec_cmplt (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_cmplt (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_cmplt (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_cmplt (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_cmplt (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_cmplt (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_cmplt (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_ctf */
+
+inline vector float
+vec_ctf (vector unsigned int a1, int a2)
+{
+ return (vector float) __builtin_altivec_vcfux ((vector signed int) a1, (const char) a2);
+}
+
+inline vector float
+vec_ctf (vector signed int a1, int a2)
+{
+ return (vector float) __builtin_altivec_vcfsx ((vector signed int) a1, (const char) a2);
+}
+
+/* vec_cts */
+
+inline vector signed int
+vec_cts (vector float a1, int a2)
+{
+ return (vector signed int) __builtin_altivec_vctsxs ((vector float) a1, (const char) a2);
+}
+
+/* vec_ctu */
+
+inline vector unsigned int
+vec_ctu (vector float a1, int a2)
+{
+ return (vector signed int) __builtin_altivec_vctuxs ((vector float) a1, (const char) a2);
+}
+
+/* vec_dss */
+
+inline void
+vec_dss (int a1)
+{
+ __builtin_altivec_dss ((const char) a1);
+}
+
+/* vec_dssall */
+
+inline void
+vec_dssall ()
+{
+ __builtin_altivec_dssall ();
+}
+
+/* vec_dst */
+
+inline void
+vec_dst (void *a1, int a2, int a3)
+{
+ __builtin_altivec_dst ((void *) a1, a2, (const char) a3);
+}
+
+/* vec_dstst */
+
+inline void
+vec_dstst (void *a1, int a2, int a3)
+{
+ __builtin_altivec_dstst ((void *) a1, a2, (const char) a3);
+}
+
+/* vec_dststt */
+
+inline void
+vec_dststt (void *a1, int a2, int a3)
+{
+ __builtin_altivec_dststt ((void *) a1, a2, (const char) a3);
+}
+
+/* vec_dstt */
+
+inline void
+vec_dstt (void *a1, int a2, int a3)
+{
+ __builtin_altivec_dstt ((void *) a1, a2, (const char) a3);
+}
+
+/* vec_expte */
+
+inline vector float
+vec_expte (vector float a1)
+{
+ return (vector float) __builtin_altivec_vexptefp ((vector float) a1);
+}
+
+/* vec_floor */
+
+inline vector float
+vec_floor (vector float a1)
+{
+ return (vector float) __builtin_altivec_vrfim ((vector float) a1);
+}
+
+/* vec_ld */
+
+inline vector float
+vec_ld (int a1, vector float *a2)
+{
+ return (vector float) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline vector signed int
+vec_ld (int a1, vector signed int *a2)
+{
+ return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline vector unsigned int
+vec_ld (int a1, vector unsigned int *a2)
+{
+ return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline vector signed short
+vec_ld (int a1, vector signed short *a2)
+{
+ return (vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline vector unsigned short
+vec_ld (int a1, vector unsigned short *a2)
+{
+ return (vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline vector signed char
+vec_ld (int a1, vector signed char *a2)
+{
+ return (vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline vector unsigned char
+vec_ld (int a1, vector unsigned char *a2)
+{
+ return (vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+/* vec_lde */
+
+inline vector signed char
+vec_lde (int a1, vector signed char *a2)
+{
+ return (vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
+}
+
+inline vector unsigned char
+vec_lde (int a1, vector unsigned char *a2)
+{
+ return (vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
+}
+
+inline vector signed short
+vec_lde (int a1, vector signed short *a2)
+{
+ return (vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
+}
+
+inline vector unsigned short
+vec_lde (int a1, vector unsigned short *a2)
+{
+ return (vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
+}
+
+inline vector float
+vec_lde (int a1, vector float *a2)
+{
+ return (vector float) __builtin_altivec_lvewx (a1, (void *) a2);
+}
+
+inline vector signed int
+vec_lde (int a1, vector signed int *a2)
+{
+ return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+}
+
+inline vector unsigned int
+vec_lde (int a1, vector unsigned int *a2)
+{
+ return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+}
+
+/* vec_ldl */
+
+inline vector float
+vec_ldl (int a1, vector float *a2)
+{
+ return (vector float) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline vector signed int
+vec_ldl (int a1, vector signed int *a2)
+{
+ return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline vector unsigned int
+vec_ldl (int a1, vector unsigned int *a2)
+{
+ return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline vector signed short
+vec_ldl (int a1, vector signed short *a2)
+{
+ return (vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline vector unsigned short
+vec_ldl (int a1, vector unsigned short *a2)
+{
+ return (vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline vector signed char
+vec_ldl (int a1, vector signed char *a2)
+{
+ return (vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline vector unsigned char
+vec_ldl (int a1, vector unsigned char *a2)
+{
+ return (vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+/* vec_loge */
+
+inline vector float
+vec_loge (vector float a1)
+{
+ return (vector float) __builtin_altivec_vlogefp ((vector float) a1);
+}
+
+/* vec_lvsl */
+
+inline vector unsigned char
+vec_lvsl (int a1, vector unsigned char *a2)
+{
+ return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+}
+
+/* vec_lvsr */
+
+inline vector unsigned char
+vec_lvsr (int a1, vector unsigned char *a2)
+{
+ return (vector signed char) __builtin_altivec_lvsr (a1, (void *) a2);
+}
+
+/* vec_madd */
+
+inline vector float
+vec_madd (vector float a1, vector float a2, vector float a3)
+{
+ return (vector float) __builtin_altivec_vmaddfp ((vector float) a1, (vector float) a2, (vector float) a3);
+}
+
+/* vec_madds */
+
+inline vector signed short
+vec_madds (vector signed short a1, vector signed short a2, vector signed short a3)
+{
+ return (vector signed short) __builtin_altivec_vmhaddshs ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+}
+
+/* vec_max */
+
+inline vector unsigned char
+vec_max (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_max (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_max (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_max (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vmaxsb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned short
+vec_max (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_max (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_max (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_max (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vmaxsh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned int
+vec_max (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_max (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_max (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_max (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vmaxsw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_max (vector float a1, vector float a2)
+{
+ return (vector float) __builtin_altivec_vmaxfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_mergeh */
+
+inline vector signed char
+vec_mergeh (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_mergeh (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_mergeh (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_mergeh (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector float
+vec_mergeh (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_mergeh (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_mergeh (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_mergel */
+
+inline vector signed char
+vec_mergel (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_mergel (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_mergel (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_mergel (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector float
+vec_mergel (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_mergel (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_mergel (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_mfvscr */
+
+inline vector unsigned short
+vec_mfvscr ()
+{
+ return (vector signed short) __builtin_altivec_mfvscr ();
+}
+
+/* vec_min */
+
+inline vector unsigned char
+vec_min (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_min (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_min (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_min (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vminsb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned short
+vec_min (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_min (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_min (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_min (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vminsh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned int
+vec_min (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_min (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_min (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_min (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vminsw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_min (vector float a1, vector float a2)
+{
+ return (vector float) __builtin_altivec_vminfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_mladd */
+
+inline vector signed short
+vec_mladd (vector signed short a1, vector signed short a2, vector signed short a3)
+{
+ return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+}
+
+inline vector signed short
+vec_mladd (vector signed short a1, vector unsigned short a2, vector unsigned short a3)
+{
+ return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+}
+
+inline vector signed short
+vec_mladd (vector unsigned short a1, vector signed short a2, vector signed short a3)
+{
+ return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+}
+
+inline vector unsigned short
+vec_mladd (vector unsigned short a1, vector unsigned short a2, vector unsigned short a3)
+{
+ return (vector signed short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+}
+
+/* vec_mradds */
+
+inline vector signed short
+vec_mradds (vector signed short a1, vector signed short a2, vector signed short a3)
+{
+ return (vector signed short) __builtin_altivec_vmhraddshs ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+}
+
+/* vec_msum */
+
+inline vector unsigned int
+vec_msum (vector unsigned char a1, vector unsigned char a2, vector unsigned int a3)
+{
+ return (vector signed int) __builtin_altivec_vmsumubm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
+}
+
+inline vector signed int
+vec_msum (vector signed char a1, vector unsigned char a2, vector signed int a3)
+{
+ return (vector signed int) __builtin_altivec_vmsummbm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
+}
+
+inline vector unsigned int
+vec_msum (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
+{
+ return (vector signed int) __builtin_altivec_vmsumuhm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+}
+
+inline vector signed int
+vec_msum (vector signed short a1, vector signed short a2, vector signed int a3)
+{
+ return (vector signed int) __builtin_altivec_vmsumshm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+}
+
+/* vec_msums */
+
+inline vector unsigned int
+vec_msums (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
+{
+ return (vector signed int) __builtin_altivec_vmsumuhs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+}
+
+inline vector signed int
+vec_msums (vector signed short a1, vector signed short a2, vector signed int a3)
+{
+ return (vector signed int) __builtin_altivec_vmsumshs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+}
+
+/* vec_mtvscr */
+
+inline void
+vec_mtvscr (vector signed int a1)
+{
+ __builtin_altivec_mtvscr ((vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (vector unsigned int a1)
+{
+ __builtin_altivec_mtvscr ((vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (vector signed short a1)
+{
+ __builtin_altivec_mtvscr ((vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (vector unsigned short a1)
+{
+ __builtin_altivec_mtvscr ((vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (vector signed char a1)
+{
+ __builtin_altivec_mtvscr ((vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (vector unsigned char a1)
+{
+ __builtin_altivec_mtvscr ((vector signed int) a1);
+}
+
+/* vec_mule */
+
+inline vector unsigned short
+vec_mule (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed short) __builtin_altivec_vmuleub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_mule (vector signed char a1, vector signed char a2)
+{
+ return (vector signed short) __builtin_altivec_vmulesb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned int
+vec_mule (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vmuleuh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_mule (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vmulesh ((vector signed short) a1, (vector signed short) a2);
+}
+
+/* vec_mulo */
+
+inline vector unsigned short
+vec_mulo (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed short) __builtin_altivec_vmuloub ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_mulo (vector signed char a1, vector signed char a2)
+{
+ return (vector signed short) __builtin_altivec_vmulosb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned int
+vec_mulo (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vmulouh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_mulo (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vmulosh ((vector signed short) a1, (vector signed short) a2);
+}
+
+/* vec_nmsub */
+
+inline vector float
+vec_nmsub (vector float a1, vector float a2, vector float a3)
+{
+ return (vector float) __builtin_altivec_vnmsubfp ((vector float) a1, (vector float) a2, (vector float) a3);
+}
+
+/* vec_nor */
+
+inline vector float
+vec_nor (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_nor (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_nor (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_nor (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_nor (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_nor (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_nor (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_or */
+
+inline vector float
+vec_or (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_or (vector float a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_or (vector signed int a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_or (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_or (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_or (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_or (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_or (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_or (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_or (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_or (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_or (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_or (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_or (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_or (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_pack */
+
+inline vector signed char
+vec_pack (vector signed short a1, vector signed short a2)
+{
+ return (vector signed char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned char
+vec_pack (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_pack (vector signed int a1, vector signed int a2)
+{
+ return (vector signed short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_pack (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* 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 */
+
+inline vector unsigned char
+vec_packs (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed char
+vec_packs (vector signed short a1, vector signed short a2)
+{
+ return (vector signed char) __builtin_altivec_vpkshss ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_packs (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_packs (vector signed int a1, vector signed int a2)
+{
+ return (vector signed short) __builtin_altivec_vpkswss ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_packsu */
+
+inline vector unsigned char
+vec_packsu (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned char
+vec_packsu (vector signed short a1, vector signed short a2)
+{
+ return (vector signed char) __builtin_altivec_vpkshus ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_packsu (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_packsu (vector signed int a1, vector signed int a2)
+{
+ return (vector signed short) __builtin_altivec_vpkswus ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_perm */
+
+inline vector float
+vec_perm (vector float a1, vector float a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+inline vector signed int
+vec_perm (vector signed int a1, vector signed int a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+inline vector unsigned int
+vec_perm (vector unsigned int a1, vector unsigned int a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+inline vector signed short
+vec_perm (vector signed short a1, vector signed short a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+inline vector unsigned short
+vec_perm (vector unsigned short a1, vector unsigned short a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+inline vector signed char
+vec_perm (vector signed char a1, vector signed char a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+inline vector unsigned char
+vec_perm (vector unsigned char a1, vector unsigned char a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+}
+
+/* vec_re */
+
+inline vector float
+vec_re (vector float a1)
+{
+ return (vector float) __builtin_altivec_vrefp ((vector float) a1);
+}
+
+/* vec_rl */
+
+inline vector signed char
+vec_rl (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_rl (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_rl (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_rl (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_rl (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_rl (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_round */
+
+inline vector float
+vec_round (vector float a1)
+{
+ return (vector float) __builtin_altivec_vrfin ((vector float) a1);
+}
+
+/* vec_rsqrte */
+
+inline vector float
+vec_rsqrte (vector float a1)
+{
+ return (vector float) __builtin_altivec_vrsqrtefp ((vector float) a1);
+}
+
+/* vec_sel */
+
+inline vector float
+vec_sel (vector float a1, vector float a2, vector signed int a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector float
+vec_sel (vector float a1, vector float a2, vector unsigned int a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector signed int
+vec_sel (vector signed int a1, vector signed int a2, vector signed int a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector signed int
+vec_sel (vector signed int a1, vector signed int a2, vector unsigned int a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector unsigned int
+vec_sel (vector unsigned int a1, vector unsigned int a2, vector signed int a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector unsigned int
+vec_sel (vector unsigned int a1, vector unsigned int a2, vector unsigned int a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector signed short
+vec_sel (vector signed short a1, vector signed short a2, vector signed short a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector signed short
+vec_sel (vector signed short a1, vector signed short a2, vector unsigned short a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector unsigned short
+vec_sel (vector unsigned short a1, vector unsigned short a2, vector signed short a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector unsigned short
+vec_sel (vector unsigned short a1, vector unsigned short a2, vector unsigned short a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector signed char
+vec_sel (vector signed char a1, vector signed char a2, vector signed char a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector signed char
+vec_sel (vector signed char a1, vector signed char a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector unsigned char
+vec_sel (vector unsigned char a1, vector unsigned char a2, vector signed char a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+inline vector unsigned char
+vec_sel (vector unsigned char a1, vector unsigned char a2, vector unsigned char a3)
+{
+ return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+}
+
+/* vec_sl */
+
+inline vector signed char
+vec_sl (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_sl (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_sl (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_sl (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_sl (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sl (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_sld */
+
+inline vector float
+vec_sld (vector float a1, vector float a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+inline vector signed int
+vec_sld (vector signed int a1, vector signed int a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+inline vector unsigned int
+vec_sld (vector unsigned int a1, vector unsigned int a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+inline vector signed short
+vec_sld (vector signed short a1, vector signed short a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+inline vector unsigned short
+vec_sld (vector unsigned short a1, vector unsigned short a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+inline vector signed char
+vec_sld (vector signed char a1, vector signed char a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+inline vector unsigned char
+vec_sld (vector unsigned char a1, vector unsigned char a2, int a3)
+{
+ return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, (const char) a3);
+}
+
+/* vec_sll */
+
+inline vector signed int
+vec_sll (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_sll (vector signed int a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_sll (vector signed int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sll (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sll (vector unsigned int a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sll (vector unsigned int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_sll (vector signed short a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_sll (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_sll (vector signed short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_sll (vector unsigned short a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_sll (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_sll (vector unsigned short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_sll (vector signed char a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_sll (vector signed char a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_sll (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_sll (vector unsigned char a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_sll (vector unsigned char a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_sll (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_slo */
+
+inline vector float
+vec_slo (vector float a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_slo (vector float a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_slo (vector signed int a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_slo (vector signed int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_slo (vector unsigned int a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_slo (vector unsigned int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_slo (vector signed short a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_slo (vector signed short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_slo (vector unsigned short a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_slo (vector unsigned short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_slo (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_slo (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_slo (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_slo (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_splat */
+
+inline vector signed char
+vec_splat (vector signed char a1, int a2)
+{
+ return (vector signed char) __builtin_altivec_vspltb ((vector signed char) a1, (const char) a2);
+}
+
+inline vector unsigned char
+vec_splat (vector unsigned char a1, int a2)
+{
+ return (vector signed char) __builtin_altivec_vspltb ((vector signed char) a1, (const char) a2);
+}
+
+inline vector signed short
+vec_splat (vector signed short a1, int a2)
+{
+ return (vector signed short) __builtin_altivec_vsplth ((vector signed short) a1, (const char) a2);
+}
+
+inline vector unsigned short
+vec_splat (vector unsigned short a1, int a2)
+{
+ return (vector signed short) __builtin_altivec_vsplth ((vector signed short) a1, (const char) a2);
+}
+
+inline vector float
+vec_splat (vector float a1, int a2)
+{
+ return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, (const char) a2);
+}
+
+inline vector signed int
+vec_splat (vector signed int a1, int a2)
+{
+ return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, (const char) a2);
+}
+
+inline vector unsigned int
+vec_splat (vector unsigned int a1, int a2)
+{
+ return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, (const char) a2);
+}
+
+/* vec_splat_s8 */
+
+inline vector signed char
+vec_splat_s8 (int a1)
+{
+ return (vector signed char) __builtin_altivec_vspltisb ((const char) a1);
+}
+
+/* vec_splat_s16 */
+
+inline vector signed short
+vec_splat_s16 (int a1)
+{
+ return (vector signed short) __builtin_altivec_vspltish ((const char) a1);
+}
+
+/* vec_splat_s32 */
+
+inline vector signed int
+vec_splat_s32 (int a1)
+{
+ return (vector signed int) __builtin_altivec_vspltisw ((const char) a1);
+}
+
+/* vec_splat_u8 */
+
+inline vector unsigned char
+vec_splat_u8 (int a1)
+{
+ return (vector signed char) __builtin_altivec_vspltisb ((const char) a1);
+}
+
+/* vec_splat_u16 */
+
+inline vector unsigned short
+vec_splat_u16 (int a1)
+{
+ return (vector signed short) __builtin_altivec_vspltish ((const char) a1);
+}
+
+/* vec_splat_u32 */
+
+inline vector unsigned int
+vec_splat_u32 (int a1)
+{
+ return (vector signed int) __builtin_altivec_vspltisw ((const char) a1);
+}
+
+/* vec_sr */
+
+inline vector signed char
+vec_sr (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_sr (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_sr (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_sr (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_sr (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sr (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_sra */
+
+inline vector signed char
+vec_sra (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_sra (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_sra (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_sra (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_sra (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sra (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_srl */
+
+inline vector signed int
+vec_srl (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_srl (vector signed int a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_srl (vector signed int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_srl (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_srl (vector unsigned int a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_srl (vector unsigned int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_srl (vector signed short a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_srl (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_srl (vector signed short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_srl (vector unsigned short a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_srl (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_srl (vector unsigned short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_srl (vector signed char a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_srl (vector signed char a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_srl (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_srl (vector unsigned char a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_srl (vector unsigned char a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_srl (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_sro */
+
+inline vector float
+vec_sro (vector float a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_sro (vector float a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_sro (vector signed int a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_sro (vector signed int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sro (vector unsigned int a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sro (vector unsigned int a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_sro (vector signed short a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_sro (vector signed short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_sro (vector unsigned short a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_sro (vector unsigned short a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_sro (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_sro (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_sro (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_sro (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_st */
+
+inline void
+vec_st (vector float a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (vector signed int a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (vector unsigned int a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (vector signed short a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (vector unsigned short a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (vector signed char a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (vector unsigned char a1, int a2, void *a3)
+{
+ __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+}
+
+/* vec_ste */
+
+inline void
+vec_ste (vector signed char a1, int a2, void *a3)
+{
+ __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (vector unsigned char a1, int a2, void *a3)
+{
+ __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (vector signed short a1, int a2, void *a3)
+{
+ __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (vector unsigned short a1, int a2, void *a3)
+{
+ __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (vector float a1, int a2, void *a3)
+{
+ __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (vector signed int a1, int a2, void *a3)
+{
+ __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (vector unsigned int a1, int a2, void *a3)
+{
+ __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+}
+
+/* vec_stl */
+
+inline void
+vec_stl (vector float a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (vector signed int a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (vector unsigned int a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (vector signed short a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (vector unsigned short a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (vector signed char a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (vector unsigned char a1, int a2, void *a3)
+{
+ __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+}
+
+/* vec_sub */
+
+inline vector signed char
+vec_sub (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_sub (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_sub (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_sub (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed short
+vec_sub (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_sub (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_sub (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_sub (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed int
+vec_sub (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sub (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sub (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_sub (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_sub (vector float a1, vector float a2)
+{
+ return (vector float) __builtin_altivec_vsubfp ((vector float) a1, (vector float) a2);
+}
+
+/* vec_subc */
+
+inline vector unsigned int
+vec_subc (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubcuw ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_subs */
+
+inline vector unsigned char
+vec_subs (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_subs (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned char
+vec_subs (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector signed char
+vec_subs (vector signed char a1, vector signed char a2)
+{
+ return (vector signed char) __builtin_altivec_vsubsbs ((vector signed char) a1, (vector signed char) a2);
+}
+
+inline vector unsigned short
+vec_subs (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_subs (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned short
+vec_subs (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector signed short
+vec_subs (vector signed short a1, vector signed short a2)
+{
+ return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
+}
+
+inline vector unsigned int
+vec_subs (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_subs (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_subs (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_subs (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_sum4s */
+
+inline vector unsigned int
+vec_sum4s (vector unsigned char a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vsum4ubs ((vector signed char) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_sum4s (vector signed char a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_sum4s (vector signed short a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsum4shs ((vector signed short) a1, (vector signed int) a2);
+}
+
+/* vec_sum2s */
+
+inline vector signed int
+vec_sum2s (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsum2sws ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_sums */
+
+inline vector signed int
+vec_sums (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vsumsws ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_trunc */
+
+inline vector float
+vec_trunc (vector float a1)
+{
+ return (vector float) __builtin_altivec_vrfiz ((vector float) a1);
+}
+
+/* vec_unpackh */
+
+inline vector signed short
+vec_unpackh (vector signed char a1)
+{
+ return (vector signed short) __builtin_altivec_vupkhsb ((vector signed char) a1);
+}
+
+inline vector signed int
+vec_unpackh (vector signed short a1)
+{
+ return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
+}
+
+/* vec_unpackl */
+
+inline vector signed short
+vec_unpackl (vector signed char a1)
+{
+ return (vector signed short) __builtin_altivec_vupklsb ((vector signed char) a1);
+}
+
+inline vector signed int
+vec_unpackl (vector signed short a1)
+{
+ return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
+}
+
+/* vec_xor */
+
+inline vector float
+vec_xor (vector float a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_xor (vector float a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector float
+vec_xor (vector signed int a1, vector float a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed int
+vec_xor (vector signed int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_xor (vector signed int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_xor (vector unsigned int a1, vector signed int a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned int
+vec_xor (vector unsigned int a1, vector unsigned int a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed short
+vec_xor (vector signed short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_xor (vector signed short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_xor (vector unsigned short a1, vector signed short a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned short
+vec_xor (vector unsigned short a1, vector unsigned short a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector signed char
+vec_xor (vector signed char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_xor (vector signed char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_xor (vector unsigned char a1, vector signed char a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+inline vector unsigned char
+vec_xor (vector unsigned char a1, vector unsigned char a2)
+{
+ return (vector signed int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+}
+
+/* vec_all_eq */
+
+inline int
+vec_all_eq (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, a2);
+}
+
+inline int
+vec_all_eq (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, a2);
+}
+
+inline int
+vec_all_eq (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_eq (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_eq (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_eq (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_eq (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_eq (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_eq (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_eq (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_eq (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_eq (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_eq (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a2);
+}
+
+/* vec_all_ge */
+
+inline int
+vec_all_ge (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_ge (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_ge (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_ge (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_ge (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_ge (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_ge (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_ge (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_ge (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_ge (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_ge (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_ge (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_ge (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2);
+}
+
+/* vec_all_gt */
+
+inline int
+vec_all_gt (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_gt (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_gt (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_gt (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_gt (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_gt (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_gt (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_gt (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_gt (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_gt (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_gt (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_gt (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_gt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a1, a2);
+}
+
+/* vec_all_in */
+
+inline int
+vec_all_in (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2);
+}
+
+/* vec_all_le */
+
+inline int
+vec_all_le (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_le (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_le (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_le (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_le (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_le (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_le (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_le (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_le (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_le (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_le (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_le (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_le (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_LT, a2, a1);
+}
+
+/* vec_all_lt */
+
+inline int
+vec_all_lt (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_lt (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_lt (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_lt (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_all_lt (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_lt (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_lt (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_lt (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_all_lt (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_lt (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_lt (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_lt (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_all_lt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a2, a1);
+}
+
+/* vec_all_nan */
+
+inline int
+vec_all_nan (vector float a1)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1);
+}
+
+/* vec_all_ne */
+
+inline int
+vec_all_ne (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_ne (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_ne (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_ne (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_all_ne (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_ne (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_ne (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_ne (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_all_ne (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_ne (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_ne (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_ne (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_all_ne (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a2);
+}
+
+/* vec_all_nge */
+
+inline int
+vec_all_nge (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2);
+}
+
+/* vec_all_ngt */
+
+inline int
+vec_all_ngt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a1, a2);
+}
+
+/* vec_all_nle */
+
+inline int
+vec_all_nle (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a2, a1);
+}
+
+/* vec_all_nlt */
+
+inline int
+vec_all_nlt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a2, a1);
+}
+
+/* vec_all_numeric */
+
+inline int
+vec_all_numeric (vector float a1)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1);
+}
+
+/* vec_any_eq */
+
+inline int
+vec_any_eq (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_eq (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_eq (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_eq (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_eq (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_eq (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_eq (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_eq (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_eq (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_eq (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_eq (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_eq (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_eq (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a2);
+}
+
+/* vec_any_ge */
+
+inline int
+vec_any_ge (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_ge (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_ge (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_ge (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_ge (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_ge (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_ge (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_ge (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_ge (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_ge (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_ge (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_ge (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_ge (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a1, a2);
+}
+
+/* vec_any_gt */
+
+inline int
+vec_any_gt (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_gt (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_gt (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_gt (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_gt (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_gt (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_gt (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_gt (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_gt (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_gt (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_gt (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_gt (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_gt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a1, a2);
+}
+
+/* vec_any_le */
+
+inline int
+vec_any_le (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_le (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_le (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_le (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_le (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_le (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_le (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_le (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_le (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_le (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_le (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_le (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_le (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1);
+}
+
+/* vec_any_lt */
+
+inline int
+vec_any_lt (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_lt (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_lt (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_lt (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+}
+
+inline int
+vec_any_lt (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_lt (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_lt (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_lt (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
+}
+
+inline int
+vec_any_lt (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_lt (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_lt (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_lt (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+}
+
+inline int
+vec_any_lt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a2, a1);
+}
+
+/* vec_any_nan */
+
+inline int
+vec_any_nan (vector float a1)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a1);
+}
+
+/* vec_any_ne */
+
+inline int
+vec_any_ne (vector signed char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_ne (vector signed char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_ne (vector unsigned char a1, vector signed char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_ne (vector unsigned char a1, vector unsigned char a2)
+{
+ return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+}
+
+inline int
+vec_any_ne (vector signed short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_ne (vector signed short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_ne (vector unsigned short a1, vector signed short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_ne (vector unsigned short a1, vector unsigned short a2)
+{
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+}
+
+inline int
+vec_any_ne (vector signed int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_ne (vector signed int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_ne (vector unsigned int a1, vector signed int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_ne (vector unsigned int a1, vector unsigned int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+}
+
+inline int
+vec_any_ne (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a2);
+}
+
+/* vec_any_nge */
+
+inline int
+vec_any_nge (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a1, a2);
+}
+
+/* vec_any_ngt */
+
+inline int
+vec_any_ngt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a1, a2);
+}
+
+/* vec_any_nle */
+
+inline int
+vec_any_nle (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1);
+}
+
+/* vec_any_nlt */
+
+inline int
+vec_any_nlt (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a2, a1);
+}
+
+/* vec_any_numeric */
+
+inline int
+vec_any_numeric (vector float a1)
+{
+ return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a1);
+}
+
+/* vec_any_out */
+
+inline int
+vec_any_out (vector float a1, vector float a2)
+{
+ return __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, a1, a2);
+}
#else /* not C++ */
-/* Hairy macros that implement the AltiVec high-level programming
- interface for C. */
+/* "... and so I think no man in a century will suffer as greatly as
+ you will." */
+
+#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_add(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
(vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_addc(a1, a2) __builtin_altivec_vaddcuw (a1, a2)
+#define vec_addc(a1, a2) (vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) a1, (vector signed int) a2)
#define vec_adds(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
__altivec_link_error_invalid_argument ())))))))
#define vec_ctf(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, a1, const char, 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 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_loge(a1) __builtin_altivec_vlogefp (a1)
-#define vec_lvsl(a1, a2) __builtin_altivec_lvsl (a1, a2)
+#define vec_lvsl(a1, a2) (vector unsigned char) __builtin_altivec_lvsl (a1, a2)
-#define vec_lvsr(a1, a2) __builtin_altivec_lvsr (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)
(vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2), \
__altivec_link_error_invalid_argument ())))))))
-#define vec_mfvscr() __builtin_altivec_mfvscr ()
+#define vec_mfvscr (vector unsigned short) __builtin_altivec_mfvscr ()
#define vec_min(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
(vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) a1, (vector signed int) a2), \
__altivec_link_error_invalid_argument ()))))
-#define vec_perm(a1, a2, a3, a4) \
+#define vec_perm(a1, a2, a3) \
__ch (__tern_args_eq (vector float, a1, vector float, a2, vector unsigned char, a3), \
(vector float) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3), \
__ch (__tern_args_eq (vector signed int, a1, vector signed int, a2, vector unsigned char, a3), \
__altivec_link_error_invalid_argument ()))))))
#define vec_sld(a1, a2, a3) \
-__ch (__tern_args_eq (vector float, a1, vector float, a2, const char, 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, 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, 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, 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, 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, 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, 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 ())))))))
__altivec_link_error_invalid_argument ()))))))))))))))
#define vec_splat(a1, a2) \
-__ch (__bin_args_eq (vector signed char, a1, const char, 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, 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, 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, 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, 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, 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, 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_splat_s32(a1) __builtin_altivec_vspltisw (a1)
-#define vec_splat_u8(a1) __builtin_altivec_vspltisb (a1)
+#define vec_splat_u8(a1) (vector unsigned char) __builtin_altivec_vspltisb (a1)
-#define vec_splat_u16(a1) __builtin_altivec_vspltish (a1)
+#define vec_splat_u16(a1) (vector unsigned short) __builtin_altivec_vspltish (a1)
-#define vec_splat_u32(a1) __builtin_altivec_vspltisw (a1)
+#define vec_splat_u32(a1) (vector unsigned int) __builtin_altivec_vspltisw (a1)
#define vec_sr(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
(vector float) __builtin_altivec_vsubfp ((vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_subc(a1, a2) __builtin_altivec_vsubcuw (a1, a2)
+#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), \
(vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2), \
__altivec_link_error_invalid_argument ())))))))))))))))
+/* Predicates. */
+
#define vec_all_eq(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (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_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpeqfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_LT, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_all_ge(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsw_p ((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), \
- (vector signed int) __builtin_altivec_vcmpgefp_p ((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) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (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_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgtfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_LT, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_all_in(a1, a2) __builtin_altivec_vcmpbfp_p (a1, a2)
+#define vec_all_in(a1, a2) __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2)
#define vec_all_le(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (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_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgefp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) a2, (vector float) a1), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_all_lt(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgtfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_LT, (vector float) a2, (vector float) a1), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_all_nan(a1) __builtin_altivec_vcmpeqfp_p (a1)
+#define vec_all_nan(a1) __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1)
#define vec_all_ne(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (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_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpeqfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_all_nge(a1, a2) __builtin_altivec_vcmpgefp_p (a1, a2)
+#define vec_all_nge(a1, a2) __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2)
-#define vec_all_ngt(a1, a2) __builtin_altivec_vcmpgtfp_p (a1, a2)
+#define vec_all_ngt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a1, a2)
-#define vec_all_nle(a1, a2) __builtin_altivec_vcmpgefp_p (a1, a2)
+#define vec_all_nle(a1, a2) __builtin_altivec_vcmpgefp_p (__CR6_EQ, a2, a1)
-#define vec_all_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (a1, a2)
+#define vec_all_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a2, a1)
-#define vec_all_numeric(a1) __builtin_altivec_vcmpeqfp_p (a1)
+#define vec_all_numeric(a1) __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1)
#define vec_any_eq(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (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_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpeqfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_any_ge(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgefp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_any_gt(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (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_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgtfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_any_le(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (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_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgefp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (vector float) a2, (vector float) a1), \
__altivec_link_error_invalid_argument ())))))))))))))
#define vec_any_lt(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtub_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtuw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector signed int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpgtsw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpgtfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (vector float) a2, (vector float) a1), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_any_nan(a1) __builtin_altivec_vcmpeqfp_p (a1)
+#define vec_any_nan(a1) __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a1)
#define vec_any_ne(a1, a2) \
__ch (__bin_args_eq (vector signed char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector signed char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector unsigned char, a1, vector unsigned char, a2), \
- (vector signed int) __builtin_altivec_vcmpequb_p ((vector signed char) a1, (vector signed char) a2), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector signed short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector unsigned short, a1, vector unsigned short, a2), \
- (vector signed int) __builtin_altivec_vcmpequh_p ((vector signed short) a1, (vector signed short) a2), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2), \
__ch (__bin_args_eq (vector signed int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (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_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector signed int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector unsigned int, a1, vector unsigned int, a2), \
- (vector signed int) __builtin_altivec_vcmpequw_p ((vector signed int) a1, (vector signed int) a2), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2), \
__ch (__bin_args_eq (vector float, a1, vector float, a2), \
- (vector signed int) __builtin_altivec_vcmpeqfp_p ((vector float) a1, (vector float) a2), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (vector float) a1, (vector float) a2), \
__altivec_link_error_invalid_argument ())))))))))))))
-#define vec_any_nge(a1, a2) __builtin_altivec_vcmpgefp_p (a1, a2)
+#define vec_any_nge(a1, a2) __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a1, a2)
-#define vec_any_ngt(a1, a2) __builtin_altivec_vcmpgtfp_p (a1, a2)
+#define vec_any_ngt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a1, a2)
-#define vec_any_nle(a1, a2) __builtin_altivec_vcmpgefp_p (a1, a2)
+#define vec_any_nle(a1, a2) __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1)
-#define vec_any_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (a1, a2)
+#define vec_any_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a2, a1)
-#define vec_any_numeric(a1) __builtin_altivec_vcmpeqfp_p (a1)
+#define vec_any_numeric(a1) __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a1)
-#define vec_any_out(a1, a2) __builtin_altivec_vcmpbfp_p (a1, a2)
+#define vec_any_out(a1, a2) __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, a1, a2)
#endif /* __cplusplus */