summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config/rs6000
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2005-06-03 03:28:44 +0000
committerkan <kan@FreeBSD.org>2005-06-03 03:28:44 +0000
commit2156e40a831a8e0ab68e4bc091c2940bf46ca6df (patch)
treef0dc8ad34f9fcaf27052e24e893a4284b5fee6e9 /contrib/gcc/config/rs6000
parent0a20abcc95340c9d2bb59421bac84eca4fb43b0c (diff)
downloadFreeBSD-src-2156e40a831a8e0ab68e4bc091c2940bf46ca6df.zip
FreeBSD-src-2156e40a831a8e0ab68e4bc091c2940bf46ca6df.tar.gz
Gcc 3.4.4 release.
Diffstat (limited to 'contrib/gcc/config/rs6000')
-rw-r--r--contrib/gcc/config/rs6000/aix.h18
-rw-r--r--contrib/gcc/config/rs6000/aix41.h4
-rw-r--r--contrib/gcc/config/rs6000/aix43.h5
-rw-r--r--contrib/gcc/config/rs6000/aix52.h4
-rw-r--r--contrib/gcc/config/rs6000/altivec.h11868
-rw-r--r--contrib/gcc/config/rs6000/altivec.md4
-rw-r--r--contrib/gcc/config/rs6000/beos.h12
-rw-r--r--contrib/gcc/config/rs6000/darwin-ldouble-shared.c2
-rw-r--r--contrib/gcc/config/rs6000/darwin-ldouble.c39
-rw-r--r--contrib/gcc/config/rs6000/darwin.h7
-rw-r--r--contrib/gcc/config/rs6000/eabi.asm2
-rw-r--r--contrib/gcc/config/rs6000/libgcc-ppc64.ver10
-rw-r--r--contrib/gcc/config/rs6000/linux-unwind.h322
-rw-r--r--contrib/gcc/config/rs6000/linux.h98
-rw-r--r--contrib/gcc/config/rs6000/linux64.h195
-rw-r--r--contrib/gcc/config/rs6000/rs6000-c.c14
-rw-r--r--contrib/gcc/config/rs6000/rs6000-protos.h2
-rw-r--r--contrib/gcc/config/rs6000/rs6000.c781
-rw-r--r--contrib/gcc/config/rs6000/rs6000.h16
-rw-r--r--contrib/gcc/config/rs6000/rs6000.md212
-rw-r--r--contrib/gcc/config/rs6000/rtems.h21
-rw-r--r--contrib/gcc/config/rs6000/spe.h19
-rw-r--r--contrib/gcc/config/rs6000/spe.md4
-rw-r--r--contrib/gcc/config/rs6000/sysv4.h9
-rw-r--r--contrib/gcc/config/rs6000/t-aix435
-rw-r--r--contrib/gcc/config/rs6000/t-aix525
-rw-r--r--contrib/gcc/config/rs6000/t-linux645
-rw-r--r--contrib/gcc/config/rs6000/t-newas3
-rw-r--r--contrib/gcc/config/rs6000/t-rtems1
29 files changed, 8570 insertions, 5117 deletions
diff --git a/contrib/gcc/config/rs6000/aix.h b/contrib/gcc/config/rs6000/aix.h
index f189407..b14107f 100644
--- a/contrib/gcc/config/rs6000/aix.h
+++ b/contrib/gcc/config/rs6000/aix.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for IBM RS/6000 POWER running AIX.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -175,15 +175,15 @@
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Enable AIX XL compiler calling convention breakage compatibility. */
-#undef TARGET_XL_CALL
-#define MASK_XL_CALL 0x40000000
-#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
+#undef TARGET_XL_COMPAT
+#define MASK_XL_COMPAT 0x40000000
+#define TARGET_XL_COMPAT (target_flags & MASK_XL_COMPAT)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
- {"xl-call", MASK_XL_CALL, \
- N_("Always pass floating-point arguments in memory") }, \
- {"no-xl-call", - MASK_XL_CALL, \
- N_("Don't always pass floating-point arguments in memory") }, \
+ {"xl-compat", MASK_XL_COMPAT, \
+ N_("Conform more closely to IBM XLC semantics") }, \
+ {"no-xl-compat", - MASK_XL_COMPAT, \
+ N_("Default GCC semantics that differ from IBM XLC") }, \
SUBSUBTARGET_SWITCHES
#define SUBSUBTARGET_SWITCHES
@@ -209,7 +209,7 @@
code that does the save/restore is generated by the linker, so
we have no good way to determine at compile time what to do. */
-#ifdef __powerpc64__
+#ifdef __64BIT__
#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \
do { \
if ((FS)->regs.reg[2].how == REG_UNSAVED) \
diff --git a/contrib/gcc/config/rs6000/aix41.h b/contrib/gcc/config/rs6000/aix41.h
index 373c10c..542f928 100644
--- a/contrib/gcc/config/rs6000/aix41.h
+++ b/contrib/gcc/config/rs6000/aix41.h
@@ -98,3 +98,7 @@
#undef RS6000_CALL_GLUE
#define RS6000_CALL_GLUE "{cror 31,31,31|nop}"
+/* The IBM AIX 4.x assembler doesn't support forward references in
+ .set directives. We handle this by deferring the output of .set
+ directives to the end of the compilation unit. */
+#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true
diff --git a/contrib/gcc/config/rs6000/aix43.h b/contrib/gcc/config/rs6000/aix43.h
index a76e694..50bd304 100644
--- a/contrib/gcc/config/rs6000/aix43.h
+++ b/contrib/gcc/config/rs6000/aix43.h
@@ -187,3 +187,8 @@ do { \
#undef LD_INIT_SWITCH
#define LD_INIT_SWITCH "-binitfini"
+
+/* The IBM AIX 4.x assembler doesn't support forward references in
+ .set directives. We handle this by deferring the output of .set
+ directives to the end of the compilation unit. */
+#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true
diff --git a/contrib/gcc/config/rs6000/aix52.h b/contrib/gcc/config/rs6000/aix52.h
index c066650..6f12619 100644
--- a/contrib/gcc/config/rs6000/aix52.h
+++ b/contrib/gcc/config/rs6000/aix52.h
@@ -193,3 +193,7 @@ do { \
#undef TARGET_C99_FUNCTIONS
#define TARGET_C99_FUNCTIONS 1
+#ifndef _AIX52
+extern long long int atoll(const char *);
+#endif
+
diff --git a/contrib/gcc/config/rs6000/altivec.h b/contrib/gcc/config/rs6000/altivec.h
index 04d120d..779b428 100644
--- a/contrib/gcc/config/rs6000/altivec.h
+++ b/contrib/gcc/config/rs6000/altivec.h
@@ -32,46 +32,29 @@
#ifndef _ALTIVEC_H
#define _ALTIVEC_H 1
-/* Required by Motorola specs. */
-#define __VEC__ 10206
-
-#ifndef __ALTIVEC__
-#define __ALTIVEC__ 1
+#if !defined(__VEC__) || !defined(__ALTIVEC__)
+#error Use the "-maltivec" flag to enable PowerPC AltiVec support
#endif
-#define __vector __attribute__((vector_size(16)))
+/* If __APPLE_ALTIVEC__ is defined, the compiler supports 'vector',
+ 'pixel' and 'bool' as context-sensitive AltiVec keywords (in
+ non-AltiVec contexts, they revert to their original meanings,
+ if any), so we do not need to define them as macros. */
-/* You are allowed to undef this for C++ compatibility. */
+#if !defined(__APPLE_ALTIVEC__)
+/* You are allowed to undef these for C++ compatibility. */
#define vector __vector
+#define pixel __pixel
+#define bool __bool
+#endif
-#define bool signed
-#define pixel unsigned short
-#define __pixel unsigned short
-
-/* Dummy prototype. */
-extern int __altivec_link_error_invalid_argument ();
-
-/* Helper macros. */
+/* Condition register codes for AltiVec predicates. */
#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)))
-
-#define __un_args_eq(xtype, x) \
- __builtin_types_compatible_p (xtype, typeof (x))
-
-#define __tern_args_eq(xtype, x, ytype, y, ztype, z) \
- (__builtin_types_compatible_p (xtype, typeof (x)) \
- && __builtin_types_compatible_p (ytype, typeof (y)) \
- && __builtin_types_compatible_p (ztype, typeof (z)))
-
-#define __ch(x, y, z) __builtin_choose_expr (x, y, z)
-
/* These are easy... Same exact arguments. */
#define vec_vaddcuw vec_addc
@@ -122,1077 +105,1434 @@ extern "C++" {
/* Prototypes for builtins that take literals and must always be
inlined. */
-inline vector float vec_ctf (vector unsigned int, const char) __attribute__ ((always_inline));
-inline vector float vec_ctf (vector signed int, const char) __attribute__ ((always_inline));
-inline vector float vec_vcfsx (vector signed int a1, const char a2) __attribute__ ((always_inline));
-inline vector float vec_vcfux (vector unsigned int a1, const char a2) __attribute__ ((always_inline));
-inline vector signed int vec_cts (vector float, const char) __attribute__ ((always_inline));
-inline vector unsigned int vec_ctu (vector float, const char) __attribute__ ((always_inline));
-inline void vec_dss (const char) __attribute__ ((always_inline));
-
-inline void vec_dst (vector unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (vector signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (vector unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (vector signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (vector unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (vector signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (vector float *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (unsigned long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (signed long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dst (float *, int, const char) __attribute__ ((always_inline));
-
-inline void vec_dstst (vector unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (vector signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (vector unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (vector signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (vector unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (vector signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (vector float *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (unsigned long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (signed long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstst (float *, int, const char) __attribute__ ((always_inline));
-
-inline void vec_dststt (vector unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (vector signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (vector unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (vector signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (vector unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (vector signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (vector float *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (unsigned long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (signed long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dststt (float *, int, const char) __attribute__ ((always_inline));
-
-inline void vec_dstt (vector unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (vector signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (vector unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (vector signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (vector unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (vector signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (vector float *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (unsigned char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (signed char *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (unsigned short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (signed short *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (unsigned int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (signed int *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (unsigned long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (signed long *, int, const char) __attribute__ ((always_inline));
-inline void vec_dstt (float *, int, const char) __attribute__ ((always_inline));
-
-inline vector float vec_sld (vector float, vector float, const char) __attribute__ ((always_inline));
-inline vector signed int vec_sld (vector signed int, vector signed int, const char) __attribute__ ((always_inline));
-inline vector unsigned int vec_sld (vector unsigned int, vector unsigned int, const char) __attribute__ ((always_inline));
-inline vector signed short vec_sld (vector signed short, vector signed short, const char) __attribute__ ((always_inline));
-inline vector unsigned short vec_sld (vector unsigned short, vector unsigned short, const char) __attribute__ ((always_inline));
-inline vector signed char vec_sld (vector signed char, vector signed char, const char) __attribute__ ((always_inline));
-inline vector unsigned char vec_sld (vector unsigned char, vector unsigned char, const char) __attribute__ ((always_inline));
-inline vector signed char vec_splat (vector signed char, const char) __attribute__ ((always_inline));
-inline vector unsigned char vec_splat (vector unsigned char, const char) __attribute__ ((always_inline));
-inline vector signed short vec_splat (vector signed short, const char) __attribute__ ((always_inline));
-inline vector unsigned short vec_splat (vector unsigned short, const char) __attribute__ ((always_inline));
-inline vector float vec_splat (vector float, const char) __attribute__ ((always_inline));
-inline vector signed int vec_splat (vector signed int, const char) __attribute__ ((always_inline));
-inline vector unsigned int vec_splat (vector unsigned int, const char) __attribute__ ((always_inline));
-inline vector signed char vec_splat_s8 (const char) __attribute__ ((always_inline));
-inline vector signed short vec_splat_s16 (const char) __attribute__ ((always_inline));
-inline vector signed int vec_splat_s32 (const char) __attribute__ ((always_inline));
-inline vector unsigned char vec_splat_u8 (const char) __attribute__ ((always_inline));
-inline vector unsigned short vec_splat_u16 (const char) __attribute__ ((always_inline));
-inline vector unsigned int vec_splat_u32 (const char) __attribute__ ((always_inline));
-inline vector float vec_vspltw (vector float a1, const char a2) __attribute__ ((always_inline));
-inline vector signed int vec_vspltw (vector signed int a1, const char a2) __attribute__ ((always_inline));
-inline vector unsigned int vec_vspltw (vector unsigned int a1, const char a2) __attribute__ ((always_inline));
-inline vector signed short vec_vsplth (vector signed short a1, const char a2) __attribute__ ((always_inline));
-inline vector unsigned short vec_vsplth (vector unsigned short a1, const char a2) __attribute__ ((always_inline));
-inline vector signed char vec_vspltb (vector signed char a1, const char a2) __attribute__ ((always_inline));
-inline vector unsigned char vec_vspltb (vector unsigned char a1, const char a2) __attribute__ ((always_inline));
+inline __vector float vec_ctf (__vector unsigned int, const int) __attribute__ ((always_inline));
+inline __vector float vec_ctf (__vector signed int, const int) __attribute__ ((always_inline));
+inline __vector float vec_vcfsx (__vector signed int a1, const int a2) __attribute__ ((always_inline));
+inline __vector float vec_vcfux (__vector unsigned int a1, const int a2) __attribute__ ((always_inline));
+inline __vector signed int vec_cts (__vector float, const int) __attribute__ ((always_inline));
+inline __vector unsigned int vec_ctu (__vector float, const int) __attribute__ ((always_inline));
+inline void vec_dss (const int) __attribute__ ((always_inline));
+
+inline void vec_dst (const __vector unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector __bool char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector signed short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector __bool short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector __pixel *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector signed int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector __bool int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const __vector float *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const unsigned long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dst (const float *, int, const int) __attribute__ ((always_inline));
+
+inline void vec_dstst (const __vector unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector __bool char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector signed short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector __bool short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector __pixel *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector signed int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector __bool int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const __vector float *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const unsigned long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstst (const float *, int, const int) __attribute__ ((always_inline));
+
+inline void vec_dststt (const __vector unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector __bool char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector signed short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector __bool short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector __pixel *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector signed int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector __bool int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const __vector float *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const unsigned long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dststt (const float *, int, const int) __attribute__ ((always_inline));
+
+inline void vec_dstt (const __vector unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector __bool char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector signed short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector __bool short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector __pixel *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector signed int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector __bool int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const __vector float *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const unsigned char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const signed char *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const unsigned short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const short *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const unsigned int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const int *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const unsigned long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const long *, int, const int) __attribute__ ((always_inline));
+inline void vec_dstt (const float *, int, const int) __attribute__ ((always_inline));
+
+inline __vector float vec_sld (__vector float, __vector float, const int) __attribute__ ((always_inline));
+inline __vector signed int vec_sld (__vector signed int, __vector signed int, const int) __attribute__ ((always_inline));
+inline __vector unsigned int vec_sld (__vector unsigned int, __vector unsigned int, const int) __attribute__ ((always_inline));
+inline __vector __bool int vec_sld (__vector __bool int, __vector __bool int, const int) __attribute__ ((always_inline));
+inline __vector signed short vec_sld (__vector signed short, __vector signed short, const int) __attribute__ ((always_inline));
+inline __vector unsigned short vec_sld (__vector unsigned short, __vector unsigned short, const int) __attribute__ ((always_inline));
+inline __vector __bool short vec_sld (__vector __bool short, __vector __bool short, const int) __attribute__ ((always_inline));
+inline __vector __pixel vec_sld (__vector __pixel, __vector __pixel, const int) __attribute__ ((always_inline));
+inline __vector signed char vec_sld (__vector signed char, __vector signed char, const int) __attribute__ ((always_inline));
+inline __vector unsigned char vec_sld (__vector unsigned char, __vector unsigned char, const int) __attribute__ ((always_inline));
+inline __vector __bool char vec_sld (__vector __bool char, __vector __bool char, const int) __attribute__ ((always_inline));
+inline __vector signed char vec_splat (__vector signed char, const int) __attribute__ ((always_inline));
+inline __vector unsigned char vec_splat (__vector unsigned char, const int) __attribute__ ((always_inline));
+inline __vector __bool char vec_splat (__vector __bool char, const int) __attribute__ ((always_inline));
+inline __vector signed short vec_splat (__vector signed short, const int) __attribute__ ((always_inline));
+inline __vector unsigned short vec_splat (__vector unsigned short, const int) __attribute__ ((always_inline));
+inline __vector __bool short vec_splat (__vector __bool short, const int) __attribute__ ((always_inline));
+inline __vector __pixel vec_splat (__vector __pixel, const int) __attribute__ ((always_inline));
+inline __vector float vec_splat (__vector float, const int) __attribute__ ((always_inline));
+inline __vector signed int vec_splat (__vector signed int, const int) __attribute__ ((always_inline));
+inline __vector unsigned int vec_splat (__vector unsigned int, const int) __attribute__ ((always_inline));
+inline __vector __bool int vec_splat (__vector __bool int, const int) __attribute__ ((always_inline));
+inline __vector signed char vec_splat_s8 (const int) __attribute__ ((always_inline));
+inline __vector signed short vec_splat_s16 (const int) __attribute__ ((always_inline));
+inline __vector signed int vec_splat_s32 (const int) __attribute__ ((always_inline));
+inline __vector unsigned char vec_splat_u8 (const int) __attribute__ ((always_inline));
+inline __vector unsigned short vec_splat_u16 (const int) __attribute__ ((always_inline));
+inline __vector unsigned int vec_splat_u32 (const int) __attribute__ ((always_inline));
+inline __vector float vec_vspltw (__vector float a1, const int a2) __attribute__ ((always_inline));
+inline __vector __bool int vec_vspltw (__vector __bool int a1, const int a2) __attribute__ ((always_inline));
+inline __vector signed int vec_vspltw (__vector signed int a1, const int a2) __attribute__ ((always_inline));
+inline __vector unsigned int vec_vspltw (__vector unsigned int a1, const int a2) __attribute__ ((always_inline));
+inline __vector __bool short vec_vsplth (__vector __bool short a1, const int a2) __attribute__ ((always_inline));
+inline __vector signed short vec_vsplth (__vector signed short a1, const int a2) __attribute__ ((always_inline));
+inline __vector unsigned short vec_vsplth (__vector unsigned short a1, const int a2) __attribute__ ((always_inline));
+inline __vector __pixel vec_vsplth (__vector __pixel a1, const int a2) __attribute__ ((always_inline));
+inline __vector __bool char vec_vspltb (__vector __bool char a1, const int a2) __attribute__ ((always_inline));
+inline __vector signed char vec_vspltb (__vector signed char a1, const int a2) __attribute__ ((always_inline));
+inline __vector unsigned char vec_vspltb (__vector unsigned char a1, const int a2) __attribute__ ((always_inline));
+
+/* vec_step */
+
+template<typename _Tp>
+struct __vec_step_help
+{
+ // All proper __vector types will specialize _S_elem.
+};
+
+template<>
+struct __vec_step_help<__vector signed short>
+{
+ static const int _S_elem = 8;
+};
+
+template<>
+struct __vec_step_help<__vector unsigned short>
+{
+ static const int _S_elem = 8;
+};
+
+template<>
+struct __vec_step_help<__vector __bool short>
+{
+ static const int _S_elem = 8;
+};
+
+template<>
+struct __vec_step_help<__vector __pixel>
+{
+ static const int _S_elem = 8;
+};
+
+template<>
+struct __vec_step_help<__vector signed int>
+{
+ static const int _S_elem = 4;
+};
+
+template<>
+struct __vec_step_help<__vector unsigned int>
+{
+ static const int _S_elem = 4;
+};
+
+template<>
+struct __vec_step_help<__vector __bool int>
+{
+ static const int _S_elem = 4;
+};
+
+template<>
+struct __vec_step_help<__vector unsigned char>
+{
+ static const int _S_elem = 16;
+};
+
+template<>
+struct __vec_step_help<__vector signed char>
+{
+ static const int _S_elem = 16;
+};
+
+template<>
+struct __vec_step_help<__vector __bool char>
+{
+ static const int _S_elem = 16;
+};
+
+template<>
+struct __vec_step_help<__vector float>
+{
+ static const int _S_elem = 4;
+};
+
+#define vec_step(t) __vec_step_help<typeof(t)>::_S_elem
/* vec_abs */
-inline vector signed char
-vec_abs (vector signed char a1)
+inline __vector signed char
+vec_abs (__vector signed char a1)
{
return __builtin_altivec_abs_v16qi (a1);
}
-inline vector signed short
-vec_abs (vector signed short a1)
+inline __vector signed short
+vec_abs (__vector signed short a1)
{
return __builtin_altivec_abs_v8hi (a1);
}
-inline vector signed int
-vec_abs (vector signed int a1)
+inline __vector signed int
+vec_abs (__vector signed int a1)
{
return __builtin_altivec_abs_v4si (a1);
}
-inline vector float
-vec_abs (vector float a1)
+inline __vector float
+vec_abs (__vector float a1)
{
return __builtin_altivec_abs_v4sf (a1);
}
/* vec_abss */
-inline vector signed char
-vec_abss (vector signed char a1)
+inline __vector signed char
+vec_abss (__vector signed char a1)
{
return __builtin_altivec_abss_v16qi (a1);
}
-inline vector signed short
-vec_abss (vector signed short a1)
+inline __vector signed short
+vec_abss (__vector signed short a1)
{
return __builtin_altivec_abss_v8hi (a1);
}
-inline vector signed int
-vec_abss (vector signed int a1)
+inline __vector signed int
+vec_abss (__vector signed int a1)
{
return __builtin_altivec_abss_v4si (a1);
}
/* vec_add */
-inline vector signed char
-vec_add (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_add (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_add (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+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 __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector unsigned char
+vec_add (__vector unsigned char a1, __vector __bool char a2)
+{
+ return (__vector unsigned 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 unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed short
+vec_add (__vector __bool short a1, __vector signed short a2)
{
- return (vector signed char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_add (vector signed char a1, vector unsigned char a2)
+inline __vector signed short
+vec_add (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_add (vector unsigned char a1, vector signed char a2)
+inline __vector signed short
+vec_add (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_add (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned short
+vec_add (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed short
-vec_add (vector signed short a1, vector signed short a2)
+inline __vector unsigned short
+vec_add (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_add (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector signed int
+vec_add (__vector __bool int a1, __vector signed int a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned short
-vec_add (vector unsigned short a1, vector unsigned short a2)
+inline __vector signed int
+vec_add (__vector signed int a1, __vector __bool int a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed int
-vec_add (vector signed int a1, vector signed int 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);
+ 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)
+inline __vector unsigned int
+vec_add (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_add (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_add (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_add (vector float a1, vector float a2)
+inline __vector float
+vec_add (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2);
+ return (__vector float) __builtin_altivec_vaddfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vaddfp */
-inline vector float
-vec_vaddfp (vector float a1, vector float a2)
+inline __vector float
+vec_vaddfp (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vaddfp ((vector float) a1, (vector float) a2);
+ return (__vector float) __builtin_altivec_vaddfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vadduwm */
-inline vector signed int
-vec_vadduwm (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vadduwm (__vector __bool int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vadduwm ((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_vadduwm (vector signed int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vadduwm (__vector signed int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduwm ((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_vadduwm (vector unsigned int a1, vector signed int a2)
+inline __vector signed int
+vec_vadduwm (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduwm ((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_vadduwm (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vadduwm (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_vadduwm (__vector unsigned int a1, __vector __bool int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_vadduwm (__vector unsigned int a1, __vector unsigned int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vadduhm */
-inline vector signed short
-vec_vadduhm (vector signed short a1, vector signed short a2)
+inline __vector signed short
+vec_vadduhm (__vector __bool short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vadduhm ((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_vadduhm (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_vadduhm (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhm ((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_vadduhm (vector unsigned short a1, vector signed short a2)
+inline __vector signed short
+vec_vadduhm (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhm ((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_vadduhm (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vadduhm (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector unsigned short
+vec_vadduhm (__vector unsigned short a1, __vector __bool short a2)
+{
+ return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector unsigned short
+vec_vadduhm (__vector unsigned short a1, __vector unsigned short a2)
+{
+ return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vaddubm */
-inline vector signed char
-vec_vaddubm (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vaddubm (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vaddubm (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vaddubm (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vaddubm ((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_vaddubm (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vaddubm (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vaddubm (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_vaddubm (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vaddubm (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vaddubm (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_addc */
-inline vector unsigned int
-vec_addc (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_addc (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_adds (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector unsigned char
+vec_adds (__vector unsigned char a1, __vector __bool char a2)
+{
+ return (__vector unsigned 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 unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_adds (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_adds (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddsbs ((__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 __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_adds (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned short
+vec_adds (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_adds (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned short
+vec_adds (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed char
-vec_adds (vector signed char a1, vector signed char a2)
+inline __vector signed short
+vec_adds (__vector __bool short a1, __vector signed short a2)
{
- return (vector signed char) __builtin_altivec_vaddsbs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_adds (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_adds (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhs ((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 short
-vec_adds (vector unsigned short a1, vector signed short a2)
+inline __vector signed short
+vec_adds (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhs ((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 short
-vec_adds (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned int
+vec_adds (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed short
-vec_adds (vector signed short a1, vector signed short a2)
+inline __vector unsigned int
+vec_adds (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector signed short) __builtin_altivec_vaddshs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_adds (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_adds (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector signed int
+vec_adds (__vector __bool int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_adds (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed int
+vec_adds (__vector signed int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed int
-vec_adds (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);
+ return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vaddsws */
-inline vector signed int
-vec_vaddsws (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vaddsws (__vector __bool int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vaddsws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vaddsws (__vector signed int a1, __vector __bool int a2)
+{
+ return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vaddsws (__vector signed int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vadduws */
-inline vector unsigned int
-vec_vadduws (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vadduws (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vadduws (vector unsigned int a1, vector signed int a2)
+inline __vector unsigned int
+vec_vadduws (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vadduws (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vadduws (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vadduws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vaddshs */
-inline vector signed short
-vec_vaddshs (vector signed short a1, vector signed short a2)
+
+inline __vector signed short
+vec_vaddshs (__vector __bool short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vaddshs (__vector signed short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vaddshs ((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 signed short
+vec_vaddshs (__vector signed short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vadduhs */
-inline vector unsigned short
-vec_vadduhs (vector signed short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vadduhs (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vadduhs (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_vadduhs (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vadduhs (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vadduhs (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vaddsbs */
-inline vector signed char
-vec_vaddsbs (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vaddsbs (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vaddsbs (__vector signed char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vaddsbs ((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 signed char
+vec_vaddsbs (__vector signed char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vaddubs */
-inline vector unsigned char
-vec_vaddubs (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vaddubs (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vaddubs (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_vaddubs (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vaddubs (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vaddubs (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_and */
-inline vector float
-vec_and (vector float a1, vector float a2)
+inline __vector float
+vec_and (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_and (vector float a1, vector signed int a2)
+inline __vector float
+vec_and (__vector float a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_and (vector signed int a1, vector float a2)
+inline __vector float
+vec_and (__vector __bool int a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector float) __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)
+inline __vector __bool int
+vec_and (__vector __bool int a1, __vector __bool int a2)
{
- return (vector signed int) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+inline __vector signed int
+vec_and (__vector __bool int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vand ((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 unsigned int a1, vector signed int a2)
+inline __vector signed int
+vec_and (__vector signed int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vand ((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 unsigned int a1, vector unsigned int a2)
+inline __vector signed int
+vec_and (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vand ((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 signed short
-vec_and (vector signed short a1, vector signed short a2)
+inline __vector unsigned int
+vec_and (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector signed short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_and (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_and (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector __bool short
+vec_and (__vector __bool short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector signed short
+vec_and (__vector __bool short a1, __vector signed short a2)
{
- return (vector signed char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_and (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_and (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_and (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vand ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned short
+vec_and (__vector unsigned short a1, __vector __bool short a2)
+{
+ return (__vector unsigned short) __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 unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed char
+vec_and (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_and (__vector __bool char a1, __vector __bool char a2)
+{
+ return (__vector __bool char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed char
+vec_and (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __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 char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned char
+vec_and (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned char
+vec_and (__vector unsigned char a1, __vector __bool char a2)
+{
+ return (__vector unsigned char) __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 unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_andc */
-inline vector float
-vec_andc (vector float a1, vector float a2)
+inline __vector float
+vec_andc (__vector float a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector float
+vec_andc (__vector float a1, __vector __bool int a2)
+{
+ return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector float
+vec_andc (__vector __bool int a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool int
+vec_andc (__vector __bool int a1, __vector __bool int a2)
+{
+ return (__vector __bool int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_andc (__vector __bool int a1, __vector signed int 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 __bool int 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 __bool int a1, __vector unsigned int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_andc (__vector unsigned int a1, __vector __bool int a2)
+{
+ return (__vector unsigned 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 float) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_andc (vector float a1, vector signed int a2)
+inline __vector __bool short
+vec_andc (__vector __bool short a1, __vector __bool short a2)
{
- return (vector float) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_andc (vector signed int a1, vector float a2)
+inline __vector signed short
+vec_andc (__vector __bool short a1, __vector signed short a2)
{
- return (vector float) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_andc (__vector signed short a1, __vector __bool short a2)
{
- return (vector signed int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_andc (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_andc (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_andc (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned int) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_andc (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector signed char
+vec_andc (__vector __bool char a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector __bool char
+vec_andc (__vector __bool char a1, __vector __bool char a2)
{
- return (vector unsigned short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool char) __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)
+inline __vector signed char
+vec_andc (__vector signed char a1, __vector __bool char a2)
{
- return (vector unsigned short) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector signed char
+vec_andc (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector unsigned char
+vec_andc (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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)
+inline __vector unsigned char
+vec_andc (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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)
+inline __vector unsigned char
+vec_andc (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vandc ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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)
+inline __vector unsigned char
+vec_avg (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vavgub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_avg (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vavguh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_avg (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vavguw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+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);
+ return (__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vavgsw */
-inline vector signed int
-vec_vavgsw (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vavgsw (__vector signed int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vavgsw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vavguw */
-inline vector unsigned int
-vec_vavguw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vavguw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vavguw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vavgsh */
-inline vector signed short
-vec_vavgsh (vector signed short a1, vector signed short a2)
+inline __vector signed short
+vec_vavgsh (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vavgsh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vavguh */
-inline vector unsigned short
-vec_vavguh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vavguh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vavguh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vavgsb */
-inline vector signed char
-vec_vavgsb (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vavgsb (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vavgsb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vavgub */
-inline vector unsigned char
-vec_vavgub (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vavgub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vavgub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_ceil */
-inline vector float
-vec_ceil (vector float a1)
+inline __vector float
+vec_ceil (__vector float a1)
{
- return (vector float) __builtin_altivec_vrfip ((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)
+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);
+ 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed int
-vec_cmpeq (vector float a1, vector float a2)
+inline __vector __bool int
+vec_cmpeq (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpeqfp ((vector float) a1, (vector float) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vcmpeqfp */
-inline vector signed int
-vec_vcmpeqfp (vector float a1, vector float a2)
+inline __vector __bool int
+vec_vcmpeqfp (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpeqfp ((vector float) a1, (vector float) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vcmpequw */
-inline vector signed int
-vec_vcmpequw (vector signed int a1, vector signed int a2)
+inline __vector __bool int
+vec_vcmpequw (__vector signed int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed int
-vec_vcmpequw (vector unsigned int a1, vector unsigned int a2)
+inline __vector __bool int
+vec_vcmpequw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vcmpequw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vcmpequh */
-inline vector signed short
-vec_vcmpequh (vector signed short a1, vector signed short a2)
+inline __vector __bool short
+vec_vcmpequh (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed short
-vec_vcmpequh (vector unsigned short a1, vector unsigned short a2)
+inline __vector __bool short
+vec_vcmpequh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vcmpequh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vcmpequb */
-inline vector signed char
-vec_vcmpequb (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_vcmpequb (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector signed char
-vec_vcmpequb (vector unsigned char a1, vector unsigned char a2)
+inline __vector __bool char
+vec_vcmpequb (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vcmpequb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_cmpge */
-inline vector signed int
-vec_cmpge (vector float a1, vector float a2)
+inline __vector __bool int
+vec_cmpge (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgefp ((vector float) a1, (vector float) a2);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector __bool 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);
+ return (__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed int
-vec_cmpgt (vector float a1, vector float a2)
+inline __vector __bool int
+vec_cmpgt (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vcmpgtfp */
-inline vector signed int
-vec_vcmpgtfp (vector float a1, vector float a2)
+inline __vector __bool int
+vec_vcmpgtfp (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vcmpgtsw */
-inline vector signed int
-vec_vcmpgtsw (vector signed int a1, vector signed int a2)
+inline __vector __bool int
+vec_vcmpgtsw (__vector signed int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vcmpgtuw */
-inline vector signed int
-vec_vcmpgtuw (vector unsigned int a1, vector unsigned int a2)
+inline __vector __bool int
+vec_vcmpgtuw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vcmpgtsh */
-inline vector signed short
-vec_cmpgtsh (vector signed short a1, vector signed short a2)
+inline __vector __bool short
+vec_vcmpgtsh (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vcmpgtuh */
-inline vector signed short
-vec_vcmpgtuh (vector unsigned short a1, vector unsigned short a2)
+inline __vector __bool short
+vec_vcmpgtuh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vcmpgtsb */
-inline vector signed char
-vec_vcmpgtsb (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_vcmpgtsb (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vcmpgtub */
-inline vector signed char
-vec_vcmpgtub (vector unsigned char a1, vector unsigned char a2)
+inline __vector __bool char
+vec_vcmpgtub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_cmple */
-inline vector signed int
-vec_cmple (vector float a1, vector float a2)
+inline __vector __bool int
+vec_cmple (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgefp ((vector float) a2, (vector float) a1);
+ return (__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) a2, (__vector float) a1);
}
/* vec_cmplt */
-inline vector signed char
-vec_cmplt (vector unsigned char a1, vector unsigned char a2)
+inline __vector __bool char
+vec_cmplt (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a2, (vector signed char) a1);
+ return (__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a2, (__vector signed char) a1);
}
-inline vector signed char
-vec_cmplt (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_cmplt (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a2, (vector signed char) a1);
+ return (__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a2, (__vector signed char) a1);
}
-inline vector signed short
-vec_cmplt (vector unsigned short a1, vector unsigned short a2)
+inline __vector __bool short
+vec_cmplt (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a2, (vector signed short) a1);
+ return (__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a2, (__vector signed short) a1);
}
-inline vector signed short
-vec_cmplt (vector signed short a1, vector signed short a2)
+inline __vector __bool short
+vec_cmplt (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a2, (vector signed short) a1);
+ return (__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a2, (__vector signed short) a1);
}
-inline vector signed int
-vec_cmplt (vector unsigned int a1, vector unsigned int a2)
+inline __vector __bool int
+vec_cmplt (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a2, (vector signed int) a1);
+ return (__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a2, (__vector signed int) a1);
}
-inline vector signed int
-vec_cmplt (vector signed int a1, vector signed int a2)
+inline __vector __bool int
+vec_cmplt (__vector signed int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a2, (vector signed int) a1);
+ return (__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a2, (__vector signed int) a1);
}
-inline vector signed int
-vec_cmplt (vector float a1, vector float a2)
+inline __vector __bool int
+vec_cmplt (__vector float a1, __vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a2, (vector float) a1);
+ return (__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) a2, (__vector float) a1);
}
/* vec_ctf */
-inline vector float
-vec_ctf (vector unsigned int a1, const char a2)
+inline __vector float
+vec_ctf (__vector unsigned int a1, const int a2)
{
- return (vector float) __builtin_altivec_vcfux ((vector signed int) a1, a2);
+ return (__vector float) __builtin_altivec_vcfux ((__vector signed int) a1, a2);
}
-inline vector float
-vec_ctf (vector signed int a1, const char a2)
+inline __vector float
+vec_ctf (__vector signed int a1, const int a2)
{
- return (vector float) __builtin_altivec_vcfsx ((vector signed int) a1, a2);
+ return (__vector float) __builtin_altivec_vcfsx ((__vector signed int) a1, a2);
}
/* vec_vcfsx */
-inline vector float
-vec_vcfsx (vector signed int a1, const char a2)
+inline __vector float
+vec_vcfsx (__vector signed int a1, const int a2)
{
- return (vector float) __builtin_altivec_vcfsx ((vector signed int) a1, a2);
+ return (__vector float) __builtin_altivec_vcfsx ((__vector signed int) a1, a2);
}
/* vec_vcfux */
-inline vector float
-vec_vcfux (vector unsigned int a1, const char a2)
+inline __vector float
+vec_vcfux (__vector unsigned int a1, const int a2)
{
- return (vector float) __builtin_altivec_vcfux ((vector signed int) a1, a2);
+ return (__vector float) __builtin_altivec_vcfux ((__vector signed int) a1, a2);
}
/* vec_cts */
-inline vector signed int
-vec_cts (vector float a1, const char a2)
+inline __vector signed int
+vec_cts (__vector float a1, const int a2)
{
- return (vector signed int) __builtin_altivec_vctsxs ((vector float) a1, a2);
+ return (__vector signed int) __builtin_altivec_vctsxs ((__vector float) a1, a2);
}
/* vec_ctu */
-inline vector unsigned int
-vec_ctu (vector float a1, const char a2)
+inline __vector unsigned int
+vec_ctu (__vector float a1, const int a2)
{
- return (vector unsigned int) __builtin_altivec_vctuxs ((vector float) a1, a2);
+ return (__vector unsigned int) __builtin_altivec_vctuxs ((__vector float) a1, a2);
}
/* vec_dss */
inline void
-vec_dss (const char a1)
+vec_dss (const int a1)
{
__builtin_altivec_dss (a1);
}
@@ -1208,97 +1548,121 @@ vec_dssall (void)
/* vec_dst */
inline void
-vec_dst (vector unsigned char *a1, int a2, const char a3)
+vec_dst (const __vector unsigned char *a1, int a2, const int a3)
+{
+ __builtin_altivec_dst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dst (const __vector signed char *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (vector signed char *a1, int a2, const char a3)
+vec_dst (const __vector __bool char *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (vector unsigned short *a1, int a2, const char a3)
+vec_dst (const __vector unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (vector signed short *a1, int a2, const char a3)
+vec_dst (const __vector signed short *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (vector unsigned int *a1, int a2, const char a3)
+vec_dst (const __vector __bool short *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (vector signed int *a1, int a2, const char a3)
+vec_dst (const __vector __pixel *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (vector float *a1, int a2, const char a3)
+vec_dst (const __vector unsigned int *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (unsigned char *a1, int a2, const char a3)
+vec_dst (const __vector signed int *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (signed char *a1, int a2, const char a3)
+vec_dst (const __vector __bool int *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (unsigned short *a1, int a2, const char a3)
+vec_dst (const __vector float *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (signed short *a1, int a2, const char a3)
+vec_dst (const unsigned char *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (unsigned int *a1, int a2, const char a3)
+vec_dst (const signed char *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (signed int *a1, int a2, const char a3)
+vec_dst (const unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (unsigned long *a1, int a2, const char a3)
+vec_dst (const short *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (signed long *a1, int a2, const char a3)
+vec_dst (const unsigned int *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
inline void
-vec_dst (float *a1, int a2, const char a3)
+vec_dst (const int *a1, int a2, const int a3)
+{
+ __builtin_altivec_dst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dst (const unsigned long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dst (const long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dst (const float *a1, int a2, const int a3)
{
__builtin_altivec_dst ((void *) a1, a2, a3);
}
@@ -1306,97 +1670,121 @@ vec_dst (float *a1, int a2, const char a3)
/* vec_dstst */
inline void
-vec_dstst (vector unsigned char *a1, int a2, const char a3)
+vec_dstst (const __vector unsigned char *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstst (const __vector signed char *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstst (const __vector __bool char *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (vector signed char *a1, int a2, const char a3)
+vec_dstst (const __vector unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (vector unsigned short *a1, int a2, const char a3)
+vec_dstst (const __vector signed short *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (vector signed short *a1, int a2, const char a3)
+vec_dstst (const __vector __bool short *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (vector unsigned int *a1, int a2, const char a3)
+vec_dstst (const __vector __pixel *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (vector signed int *a1, int a2, const char a3)
+vec_dstst (const __vector unsigned int *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (vector float *a1, int a2, const char a3)
+vec_dstst (const __vector signed int *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (unsigned char *a1, int a2, const char a3)
+vec_dstst (const __vector __bool int *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (signed char *a1, int a2, const char a3)
+vec_dstst (const __vector float *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (unsigned short *a1, int a2, const char a3)
+vec_dstst (const unsigned char *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (signed short *a1, int a2, const char a3)
+vec_dstst (const signed char *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (unsigned int *a1, int a2, const char a3)
+vec_dstst (const unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (signed int *a1, int a2, const char a3)
+vec_dstst (const short *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (unsigned long *a1, int a2, const char a3)
+vec_dstst (const unsigned int *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (signed long *a1, int a2, const char a3)
+vec_dstst (const int *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
inline void
-vec_dstst (float *a1, int a2, const char a3)
+vec_dstst (const unsigned long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstst (const long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstst ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstst (const float *a1, int a2, const int a3)
{
__builtin_altivec_dstst ((void *) a1, a2, a3);
}
@@ -1404,97 +1792,121 @@ vec_dstst (float *a1, int a2, const char a3)
/* vec_dststt */
inline void
-vec_dststt (vector unsigned char *a1, int a2, const char a3)
+vec_dststt (const __vector unsigned char *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (vector signed char *a1, int a2, const char a3)
+vec_dststt (const __vector signed char *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (vector unsigned short *a1, int a2, const char a3)
+vec_dststt (const __vector __bool char *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (vector signed short *a1, int a2, const char a3)
+vec_dststt (const __vector unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (vector unsigned int *a1, int a2, const char a3)
+vec_dststt (const __vector signed short *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (vector signed int *a1, int a2, const char a3)
+vec_dststt (const __vector __bool short *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (vector float *a1, int a2, const char a3)
+vec_dststt (const __vector __pixel *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (unsigned char *a1, int a2, const char a3)
+vec_dststt (const __vector unsigned int *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (signed char *a1, int a2, const char a3)
+vec_dststt (const __vector signed int *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (unsigned short *a1, int a2, const char a3)
+vec_dststt (const __vector __bool int *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (signed short *a1, int a2, const char a3)
+vec_dststt (const __vector float *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (unsigned int *a1, int a2, const char a3)
+vec_dststt (const unsigned char *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (signed int *a1, int a2, const char a3)
+vec_dststt (const signed char *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (unsigned long *a1, int a2, const char a3)
+vec_dststt (const unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (signed long *a1, int a2, const char a3)
+vec_dststt (const short *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
inline void
-vec_dststt (float *a1, int a2, const char a3)
+vec_dststt (const unsigned int *a1, int a2, const int a3)
+{
+ __builtin_altivec_dststt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dststt (const int *a1, int a2, const int a3)
+{
+ __builtin_altivec_dststt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dststt (const unsigned long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dststt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dststt (const long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dststt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dststt (const float *a1, int a2, const int a3)
{
__builtin_altivec_dststt ((void *) a1, a2, a3);
}
@@ -1502,3561 +1914,4931 @@ vec_dststt (float *a1, int a2, const char a3)
/* vec_dstt */
inline void
-vec_dstt (vector unsigned char *a1, int a2, const char a3)
+vec_dstt (const __vector unsigned char *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (vector signed char *a1, int a2, const char a3)
+vec_dstt (const __vector signed char *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (vector unsigned short *a1, int a2, const char a3)
+vec_dstt (const __vector __bool char *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (vector signed short *a1, int a2, const char a3)
+vec_dstt (const __vector unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (vector unsigned int *a1, int a2, const char a3)
+vec_dstt (const __vector signed short *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (vector signed int *a1, int a2, const char a3)
+vec_dstt (const __vector __bool short *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (vector float *a1, int a2, const char a3)
+vec_dstt (const __vector __pixel *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (unsigned char *a1, int a2, const char a3)
+vec_dstt (const __vector unsigned int *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (signed char *a1, int a2, const char a3)
+vec_dstt (const __vector signed int *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (unsigned short *a1, int a2, const char a3)
+vec_dstt (const __vector __bool int *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (signed short *a1, int a2, const char a3)
+vec_dstt (const __vector float *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (unsigned int *a1, int a2, const char a3)
+vec_dstt (const unsigned char *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (signed int *a1, int a2, const char a3)
+vec_dstt (const signed char *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (unsigned long *a1, int a2, const char a3)
+vec_dstt (const unsigned short *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (signed long *a1, int a2, const char a3)
+vec_dstt (const short *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
inline void
-vec_dstt (float *a1, int a2, const char a3)
+vec_dstt (const unsigned int *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstt (const int *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstt (const unsigned long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstt (const long *a1, int a2, const int a3)
+{
+ __builtin_altivec_dstt ((void *) a1, a2, a3);
+}
+
+inline void
+vec_dstt (const float *a1, int a2, const int a3)
{
__builtin_altivec_dstt ((void *) a1, a2, a3);
}
/* vec_expte */
-inline vector float
-vec_expte (vector float a1)
+inline __vector float
+vec_expte (__vector float a1)
{
- return (vector float) __builtin_altivec_vexptefp ((vector float) a1);
+ return (__vector float) __builtin_altivec_vexptefp ((__vector float) a1);
}
/* vec_floor */
-inline vector float
-vec_floor (vector float a1)
+inline __vector float
+vec_floor (__vector float a1)
{
- return (vector float) __builtin_altivec_vrfim ((vector float) a1);
+ return (__vector float) __builtin_altivec_vrfim ((__vector float) a1);
}
/* vec_ld */
-inline vector float
-vec_ld (int a1, vector float *a2)
+inline __vector float
+vec_ld (int a1, const __vector float *a2)
+{
+ return (__vector float) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline __vector float
+vec_ld (int a1, const float *a2)
+{
+ return (__vector float) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline __vector __bool int
+vec_ld (int a1, const __vector __bool int *a2)
{
- return (vector float) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector __bool int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector float
-vec_ld (int a1, float *a2)
+inline __vector signed int
+vec_ld (int a1, const __vector signed int *a2)
{
- return (vector float) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed int
-vec_ld (int a1, vector signed int *a2)
+inline __vector signed int
+vec_ld (int a1, const int *a2)
{
- return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed int
-vec_ld (int a1, signed int *a2)
+inline __vector signed int
+vec_ld (int a1, const long *a2)
{
- return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed int
-vec_ld (int a1, signed long *a2)
+inline __vector unsigned int
+vec_ld (int a1, const __vector unsigned int *a2)
{
- return (vector signed int) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned int
-vec_ld (int a1, vector unsigned int *a2)
+inline __vector unsigned int
+vec_ld (int a1, const unsigned int *a2)
{
- return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned int
-vec_ld (int a1, unsigned int *a2)
+inline __vector unsigned int
+vec_ld (int a1, const unsigned long *a2)
{
- return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned int
-vec_ld (int a1, unsigned long *a2)
+inline __vector __bool short
+vec_ld (int a1, const __vector __bool short *a2)
{
- return (vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector __bool short) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed short
-vec_ld (int a1, vector signed short *a2)
+inline __vector __pixel
+vec_ld (int a1, const __vector __pixel *a2)
{
- return (vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector __pixel) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed short
-vec_ld (int a1, signed short *a2)
+inline __vector signed short
+vec_ld (int a1, const __vector signed short *a2)
{
- return (vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned short
-vec_ld (int a1, vector unsigned short *a2)
+inline __vector signed short
+vec_ld (int a1, const short *a2)
{
- return (vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed short) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned short
-vec_ld (int a1, unsigned short *a2)
+inline __vector unsigned short
+vec_ld (int a1, const __vector unsigned short *a2)
{
- return (vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed char
-vec_ld (int a1, vector signed char *a2)
+inline __vector unsigned short
+vec_ld (int a1, const unsigned short *a2)
{
- return (vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector signed char
-vec_ld (int a1, signed char *a2)
+inline __vector __bool char
+vec_ld (int a1, const __vector __bool char *a2)
{
- return (vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector __bool char) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned char
-vec_ld (int a1, vector unsigned char *a2)
+inline __vector signed char
+vec_ld (int a1, const __vector signed char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
}
-inline vector unsigned char
-vec_ld (int a1, unsigned char *a2)
+inline __vector signed char
+vec_ld (int a1, const signed char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
+ return (__vector signed char) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline __vector unsigned char
+vec_ld (int a1, const __vector unsigned char *a2)
+{
+ return (__vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
+}
+
+inline __vector unsigned char
+vec_ld (int a1, const unsigned char *a2)
+{
+ return (__vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2);
}
/* vec_lde */
-inline vector signed char
-vec_lde (int a1, signed char *a2)
+inline __vector signed char
+vec_lde (int a1, const signed char *a2)
{
- return (vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
+ return (__vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lde (int a1, unsigned char *a2)
+inline __vector unsigned char
+vec_lde (int a1, const unsigned char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
}
-inline vector signed short
-vec_lde (int a1, signed short *a2)
+inline __vector signed short
+vec_lde (int a1, const short *a2)
{
- return (vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
+ return (__vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
}
-inline vector unsigned short
-vec_lde (int a1, unsigned short *a2)
+inline __vector unsigned short
+vec_lde (int a1, const unsigned short *a2)
{
- return (vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
+ return (__vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
}
-inline vector float
-vec_lde (int a1, float *a2)
+inline __vector float
+vec_lde (int a1, const float *a2)
{
- return (vector float) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector float) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector signed int
-vec_lde (int a1, signed int *a2)
+inline __vector signed int
+vec_lde (int a1, const int *a2)
{
- return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector unsigned int
-vec_lde (int a1, unsigned int *a2)
+inline __vector unsigned int
+vec_lde (int a1, const unsigned int *a2)
{
- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector signed int
-vec_lde (int a1, signed long *a2)
+inline __vector signed int
+vec_lde (int a1, const long *a2)
{
- return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector unsigned int
-vec_lde (int a1, unsigned long *a2)
+inline __vector unsigned int
+vec_lde (int a1, const unsigned long *a2)
{
- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
}
/* vec_lvewx */
-inline vector float
+inline __vector float
vec_lvewx (int a1, float *a2)
{
- return (vector float) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector float) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector signed int
-vec_lvewx (int a1, signed int *a2)
+inline __vector signed int
+vec_lvewx (int a1, int *a2)
{
- return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector unsigned int
+inline __vector unsigned int
vec_lvewx (int a1, unsigned int *a2)
{
- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector signed int
-vec_lvewx (int a1, signed long *a2)
+inline __vector signed int
+vec_lvewx (int a1, long *a2)
{
- return (vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2);
}
-inline vector unsigned int
+inline __vector unsigned int
vec_lvewx (int a1, unsigned long *a2)
{
- return (vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2);
}
/* vec_lvehx */
-inline vector signed short
-vec_lvehx (int a1, signed short *a2)
+inline __vector signed short
+vec_lvehx (int a1, short *a2)
{
- return (vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
+ return (__vector signed short) __builtin_altivec_lvehx (a1, (void *) a2);
}
-inline vector unsigned short
+inline __vector unsigned short
vec_lvehx (int a1, unsigned short *a2)
{
- return (vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
+ return (__vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2);
}
/* vec_lvebx */
-inline vector signed char
+inline __vector signed char
vec_lvebx (int a1, signed char *a2)
{
- return (vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
+ return (__vector signed char) __builtin_altivec_lvebx (a1, (void *) a2);
}
-inline vector unsigned char
+inline __vector unsigned char
vec_lvebx (int a1, unsigned char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2);
}
/* vec_ldl */
-inline vector float
-vec_ldl (int a1, vector float *a2)
+inline __vector float
+vec_ldl (int a1, const __vector float *a2)
+{
+ return (__vector float) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline __vector float
+vec_ldl (int a1, const float *a2)
+{
+ return (__vector float) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline __vector __bool int
+vec_ldl (int a1, const __vector __bool int *a2)
+{
+ return (__vector __bool int) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline __vector signed int
+vec_ldl (int a1, const __vector signed int *a2)
{
- return (vector float) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector float
-vec_ldl (int a1, float *a2)
+inline __vector signed int
+vec_ldl (int a1, const int *a2)
{
- return (vector float) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed int
-vec_ldl (int a1, vector signed int *a2)
+inline __vector signed int
+vec_ldl (int a1, const long *a2)
{
- return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed int
-vec_ldl (int a1, signed int *a2)
+inline __vector unsigned int
+vec_ldl (int a1, const __vector unsigned int *a2)
{
- return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed int
-vec_ldl (int a1, signed long *a2)
+inline __vector unsigned int
+vec_ldl (int a1, const unsigned int *a2)
{
- return (vector signed int) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned int
-vec_ldl (int a1, vector unsigned int *a2)
+inline __vector unsigned int
+vec_ldl (int a1, const unsigned long *a2)
{
- return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned int
-vec_ldl (int a1, unsigned int *a2)
+inline __vector __bool short
+vec_ldl (int a1, const __vector __bool short *a2)
{
- return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector __bool short) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned int
-vec_ldl (int a1, unsigned long *a2)
+inline __vector __pixel
+vec_ldl (int a1, const __vector __pixel *a2)
{
- return (vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector __pixel) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed short
-vec_ldl (int a1, vector signed short *a2)
+inline __vector signed short
+vec_ldl (int a1, const __vector signed short *a2)
{
- return (vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed short
-vec_ldl (int a1, signed short *a2)
+inline __vector signed short
+vec_ldl (int a1, const short *a2)
{
- return (vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed short) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned short
-vec_ldl (int a1, vector unsigned short *a2)
+inline __vector unsigned short
+vec_ldl (int a1, const __vector unsigned short *a2)
{
- return (vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned short
-vec_ldl (int a1, unsigned short *a2)
+inline __vector unsigned short
+vec_ldl (int a1, const unsigned short *a2)
{
- return (vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed char
-vec_ldl (int a1, vector signed char *a2)
+inline __vector __bool char
+vec_ldl (int a1, const __vector __bool char *a2)
{
- return (vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector __bool char) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector signed char
-vec_ldl (int a1, signed char *a2)
+inline __vector signed char
+vec_ldl (int a1, const __vector signed char *a2)
{
- return (vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_ldl (int a1, vector unsigned char *a2)
+inline __vector signed char
+vec_ldl (int a1, const signed char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector signed char) __builtin_altivec_lvxl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_ldl (int a1, unsigned char *a2)
+inline __vector unsigned char
+vec_ldl (int a1, const __vector unsigned char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
+}
+
+inline __vector unsigned char
+vec_ldl (int a1, const unsigned char *a2)
+{
+ return (__vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2);
}
/* vec_loge */
-inline vector float
-vec_loge (vector float a1)
+inline __vector float
+vec_loge (__vector float a1)
{
- return (vector float) __builtin_altivec_vlogefp ((vector float) a1);
+ return (__vector float) __builtin_altivec_vlogefp ((__vector float) a1);
}
/* vec_lvsl */
-inline vector unsigned char
-vec_lvsl (int a1, unsigned char *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile unsigned char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, signed char *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile signed char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, unsigned short *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile unsigned short *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, signed short *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile short *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, unsigned int *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile unsigned int *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, signed int *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile int *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, unsigned long *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile unsigned long *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, signed long *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile long *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsl (int a1, float *a2)
+inline __vector unsigned char
+vec_lvsl (int a1, const volatile float *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2);
}
/* vec_lvsr */
-inline vector unsigned char
-vec_lvsr (int a1, unsigned char *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile unsigned char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, signed char *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile signed char *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, unsigned short *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile unsigned short *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, signed short *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile short *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, unsigned int *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile unsigned int *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, signed int *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile int *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, unsigned long *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile unsigned long *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, signed long *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile long *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
-inline vector unsigned char
-vec_lvsr (int a1, float *a2)
+inline __vector unsigned char
+vec_lvsr (int a1, const volatile float *a2)
{
- return (vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
+ return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2);
}
/* vec_madd */
-inline vector float
-vec_madd (vector float a1, vector float a2, vector float a3)
+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);
+ 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)
+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);
+ 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)
+inline __vector unsigned char
+vec_max (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector unsigned char
+vec_max (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_max (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector signed char
+vec_max (__vector __bool char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vmaxub ((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 signed char
-vec_max (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_max (__vector signed char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vmaxsb ((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)
+inline __vector signed char
+vec_max (__vector signed char a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned short
-vec_max (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_max (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_max (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_max (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vmaxsh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_max (vector signed int a1, vector unsigned int a2)
+inline __vector signed short
+vec_max (__vector __bool short a1, __vector signed short a2)
{
- return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_max (vector unsigned int a1, vector signed int a2)
+inline __vector signed short
+vec_max (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_max (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed short
+vec_max (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed int
-vec_max (vector signed int a1, vector signed int a2)
+inline __vector unsigned int
+vec_max (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vmaxsw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_max (vector float a1, vector float a2)
+inline __vector unsigned int
+vec_max (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vmaxfp ((vector float) a1, (vector float) a2);
+ return (__vector unsigned 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 unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_max (__vector __bool int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_max (__vector signed int a1, __vector __bool int a2)
+{
+ return (__vector signed int) __builtin_altivec_vmaxsw ((__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_vmaxfp */
-inline vector float
-vec_vmaxfp (vector float a1, vector float a2)
+inline __vector float
+vec_vmaxfp (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vmaxfp ((vector float) a1, (vector float) a2);
+ return (__vector float) __builtin_altivec_vmaxfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vmaxsw */
-inline vector signed int
-vec_vmaxsw (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vmaxsw (__vector __bool int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vmaxsw (__vector signed int a1, __vector __bool int a2)
{
- return (vector signed int) __builtin_altivec_vmaxsw ((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 signed int
+vec_vmaxsw (__vector signed int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vmaxuw */
-inline vector unsigned int
-vec_vmaxuw (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vmaxuw (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vmaxuw (vector unsigned int a1, vector signed int a2)
+inline __vector unsigned int
+vec_vmaxuw (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vmaxuw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vmaxuw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vmaxsh */
-inline vector signed short
-vec_vmaxsh (vector signed short a1, vector signed short a2)
+inline __vector signed short
+vec_vmaxsh (__vector __bool short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vmaxsh ((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 signed short
+vec_vmaxsh (__vector signed short a1, __vector __bool short a2)
+{
+ return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vmaxsh (__vector signed short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmaxuh */
-inline vector unsigned short
-vec_vmaxuh (vector signed short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vmaxuh (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vmaxuh (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_vmaxuh (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vmaxuh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vmaxuh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmaxsb */
-inline vector signed char
-vec_vmaxsb (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vmaxsb (__vector __bool char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vmaxsb ((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 signed char
+vec_vmaxsb (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vmaxsb (__vector signed char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vmaxub */
-inline vector unsigned char
-vec_vmaxub (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vmaxub (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vmaxub (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_vmaxub (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vmaxub (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vmaxub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_mergeh */
-inline vector signed char
-vec_mergeh (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_mergeh (__vector __bool char a1, __vector __bool char a2)
+{
+ return (__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+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 unsigned char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector __bool short
+vec_mergeh (__vector __bool short a1, __vector __bool short a2)
+{
+ return (__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector __pixel
+vec_mergeh (__vector __pixel a1, __vector __pixel a2)
{
- return (vector signed char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_mergeh (vector unsigned char a1, vector unsigned char a2)
+inline __vector signed short
+vec_mergeh (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed short
-vec_mergeh (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);
+ return (__vector unsigned 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)
+inline __vector float
+vec_mergeh (__vector float a1, __vector float a2)
{
- return (vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector float) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_mergeh (vector float a1, vector float a2)
+inline __vector __bool int
+vec_mergeh (__vector __bool int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_mergeh (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vmrghw */
-inline vector float
-vec_vmrghw (vector float a1, vector float a2)
+inline __vector float
+vec_vmrghw (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector float) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector signed int
-vec_vmrghw (vector signed int a1, vector signed int a2)
+inline __vector __bool int
+vec_vmrghw (__vector __bool int a1, __vector __bool int a2)
{
- return (vector signed int) __builtin_altivec_vmrghw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vmrghw (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vmrghw (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vmrghw ((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_vmrghw (__vector unsigned int a1, __vector unsigned int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vmrghh */
-inline vector signed short
-vec_vmrghh (vector signed short a1, vector signed short a2)
+inline __vector __bool short
+vec_vmrghh (__vector __bool short a1, __vector __bool short a2)
+{
+ return (__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vmrghh (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vmrghh ((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_vmrghh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vmrghh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector __pixel
+vec_vmrghh (__vector __pixel a1, __vector __pixel a2)
+{
+ return (__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmrghb */
-inline vector signed char
-vec_vmrghb (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_vmrghb (__vector __bool char a1, __vector __bool char a2)
+{
+ return (__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vmrghb (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vmrghb ((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_vmrghb (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vmrghb (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_mergel */
-inline vector signed char
-vec_mergel (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_mergel (__vector __bool char a1, __vector __bool char a2)
+{
+ return (__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+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 unsigned char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector __bool short
+vec_mergel (__vector __bool short a1, __vector __bool short a2)
+{
+ return (__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector __pixel
+vec_mergel (__vector __pixel a1, __vector __pixel a2)
{
- return (vector signed char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned char
-vec_mergel (vector unsigned char a1, vector unsigned char a2)
+inline __vector signed short
+vec_mergel (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed short
-vec_mergel (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);
+ return (__vector unsigned 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)
+inline __vector float
+vec_mergel (__vector float a1, __vector float a2)
{
- return (vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector float) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_mergel (vector float a1, vector float a2)
+inline __vector __bool int
+vec_mergel (__vector __bool int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_mergel (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vmrglw */
-inline vector float
-vec_vmrglw (vector float a1, vector float a2)
+inline __vector float
+vec_vmrglw (__vector float a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vmrglw (__vector signed int a1, __vector signed int a2)
{
- return (vector float) __builtin_altivec_vmrglw ((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 signed int
-vec_vmrglw (vector signed int a1, vector signed int a2)
+inline __vector unsigned int
+vec_vmrglw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vmrglw (vector unsigned int a1, vector unsigned int a2)
+inline __vector __bool int
+vec_vmrglw (__vector __bool int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vmrglh */
-inline vector signed short
-vec_vmrglh (vector signed short a1, vector signed short a2)
+inline __vector __bool short
+vec_vmrglh (__vector __bool short a1, __vector __bool short a2)
+{
+ return (__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vmrglh (__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_vmrglh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vmrglh (vector unsigned short a1, vector unsigned short a2)
+inline __vector __pixel
+vec_vmrglh (__vector __pixel a1, __vector __pixel a2)
{
- return (vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmrglb */
-inline vector signed char
-vec_vmrglb (vector signed char a1, vector signed char a2)
+inline __vector __bool char
+vec_vmrglb (__vector __bool char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vmrglb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vmrglb (vector unsigned char a1, vector unsigned char a2)
+inline __vector signed char
+vec_vmrglb (__vector signed char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vmrglb ((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_vmrglb (__vector unsigned char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_mfvscr */
-inline vector unsigned short
+inline __vector unsigned short
vec_mfvscr (void)
{
- return (vector unsigned short) __builtin_altivec_mfvscr ();
+ return (__vector unsigned short) __builtin_altivec_mfvscr ();
}
/* vec_min */
-inline vector unsigned char
-vec_min (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_min (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector unsigned char
+vec_min (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_min (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector signed char
+vec_min (__vector __bool char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vminub ((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 signed char
-vec_min (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_min (__vector signed char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vminsb ((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)
+inline __vector signed char
+vec_min (__vector signed char a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned short
-vec_min (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_min (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_min (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_min (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vminsh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_min (vector signed int a1, vector unsigned int a2)
+inline __vector signed short
+vec_min (__vector __bool short a1, __vector signed short a2)
{
- return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_min (vector unsigned int a1, vector signed int a2)
+inline __vector signed short
+vec_min (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_min (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed short
+vec_min (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed int
-vec_min (vector signed int a1, vector signed int a2)
+inline __vector unsigned int
+vec_min (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vminsw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_min (vector float a1, vector float a2)
+inline __vector unsigned int
+vec_min (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vminfp ((vector float) a1, (vector float) a2);
+ return (__vector unsigned 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 unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_min (__vector __bool int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_min (__vector signed int a1, __vector __bool int a2)
+{
+ return (__vector signed int) __builtin_altivec_vminsw ((__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_vminfp */
-inline vector float
-vec_vminfp (vector float a1, vector float a2)
+inline __vector float
+vec_vminfp (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vminfp ((vector float) a1, (vector float) a2);
+ return (__vector float) __builtin_altivec_vminfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vminsw */
-inline vector signed int
-vec_vminsw (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vminsw (__vector __bool int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vminsw (__vector signed int a1, __vector __bool int a2)
{
- return (vector signed int) __builtin_altivec_vminsw ((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 signed int
+vec_vminsw (__vector signed int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vminuw */
-inline vector unsigned int
-vec_vminuw (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vminuw (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vminuw (vector unsigned int a1, vector signed int a2)
+inline __vector unsigned int
+vec_vminuw (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vminuw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vminuw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vminuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vminsh */
-inline vector signed short
-vec_vminsh (vector signed short a1, vector signed short a2)
+inline __vector signed short
+vec_vminsh (__vector __bool short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vminsh (__vector signed short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vminsh ((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 signed short
+vec_vminsh (__vector signed short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vminuh */
-inline vector unsigned short
-vec_vminuh (vector signed short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vminuh (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vminuh (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_vminuh (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vminuh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vminuh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vminuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vminsb */
-inline vector signed char
-vec_vminsb (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vminsb (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vminsb (__vector signed char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vminsb ((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 signed char
+vec_vminsb (__vector signed char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vminub */
-inline vector unsigned char
-vec_vminub (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vminub (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vminub (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_vminub (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vminub (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vminub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vminub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_mladd */
-inline vector signed short
-vec_mladd (vector signed short a1, vector signed short a2, vector signed short a3)
+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);
+ 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)
+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);
+ 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_mladd (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned short a3)
{
- return (vector unsigned short) __builtin_altivec_vmladduhm ((vector signed short) a1, (vector signed short) a2, (vector signed short) a3);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_msum (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_msum (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+ return (__vector unsigned 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)
+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);
+ return (__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
}
/* vec_vmsumshm */
-inline vector signed int
-vec_vmsumshm (vector signed short a1, vector signed short a2, vector signed int a3)
+inline __vector signed int
+vec_vmsumshm (__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);
+ return (__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
}
/* vec_vmsumuhm */
-inline vector unsigned int
-vec_vmsumuhm (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
+inline __vector unsigned int
+vec_vmsumuhm (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+ return (__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
}
/* vec_vmsummbm */
-inline vector signed int
-vec_vmsummbm (vector signed char a1, vector unsigned char a2, vector signed int a3)
+inline __vector signed int
+vec_vmsummbm (__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);
+ return (__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3);
}
/* vec_vmsumubm */
-inline vector unsigned int
-vec_vmsumubm (vector unsigned char a1, vector unsigned char a2, vector unsigned int a3)
+inline __vector unsigned int
+vec_vmsumubm (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) a1, (vector signed char) a2, (vector signed int) a3);
+ return (__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) a1, (__vector signed char) 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)
+inline __vector unsigned int
+vec_msums (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+ return (__vector unsigned 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)
+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);
+ return (__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
}
/* vec_vmsumshs */
-inline vector signed int
-vec_vmsumshs (vector signed short a1, vector signed short a2, vector signed int a3)
+inline __vector signed int
+vec_vmsumshs (__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);
+ return (__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
}
/* vec_vmsumuhs */
-inline vector unsigned int
-vec_vmsumuhs (vector unsigned short a1, vector unsigned short a2, vector unsigned int a3)
+inline __vector unsigned int
+vec_vmsumuhs (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) a1, (vector signed short) a2, (vector signed int) a3);
+ return (__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3);
}
/* vec_mtvscr */
inline void
-vec_mtvscr (vector signed int a1)
+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 __bool int a1)
{
- __builtin_altivec_mtvscr ((vector signed int) a1);
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
}
inline void
-vec_mtvscr (vector unsigned int a1)
+vec_mtvscr (__vector signed short a1)
{
- __builtin_altivec_mtvscr ((vector signed int) a1);
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
}
inline void
-vec_mtvscr (vector signed short a1)
+vec_mtvscr (__vector unsigned short a1)
{
- __builtin_altivec_mtvscr ((vector signed int) a1);
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
}
inline void
-vec_mtvscr (vector unsigned short a1)
+vec_mtvscr (__vector __bool short a1)
{
- __builtin_altivec_mtvscr ((vector signed int) a1);
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
}
inline void
-vec_mtvscr (vector signed char a1)
+vec_mtvscr (__vector __pixel a1)
{
- __builtin_altivec_mtvscr ((vector signed int) a1);
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
}
inline void
-vec_mtvscr (vector unsigned char a1)
+vec_mtvscr (__vector signed char a1)
{
- __builtin_altivec_mtvscr ((vector signed int) a1);
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (__vector unsigned char a1)
+{
+ __builtin_altivec_mtvscr ((__vector signed int) a1);
+}
+
+inline void
+vec_mtvscr (__vector __bool 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)
+inline __vector unsigned short
+vec_mule (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_mule (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ return (__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmulesh */
-inline vector signed int
-vec_vmulesh (vector signed short a1, vector signed short a2)
+inline __vector signed int
+vec_vmulesh (__vector signed short a1, __vector signed short a2)
{
- return (vector signed int) __builtin_altivec_vmulesh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmuleuh */
-inline vector unsigned int
-vec_vmuleuh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned int
+vec_vmuleuh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+/* vec_vmulesb */
+
+inline __vector signed short
+vec_vmulesb (__vector signed char a1, __vector signed char a2)
+{
+ return (__vector signed short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vmuleub */
-inline vector unsigned short
-vec_vmuleub (vector unsigned char a1, vector unsigned char a2)
+
+inline __vector unsigned short
+vec_vmuleub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_mulo */
-inline vector unsigned short
-vec_mulo (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned short
+vec_mulo (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_mulo (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ return (__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmulosh */
-inline vector signed int
-vec_vmulosh (vector signed short a1, vector signed short a2)
+inline __vector signed int
+vec_vmulosh (__vector signed short a1, __vector signed short a2)
{
- return (vector signed int) __builtin_altivec_vmulosh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmulouh */
-inline vector unsigned int
-vec_vmulouh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned int
+vec_vmulouh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vmulosb */
-inline vector signed short
-vec_vmulosb (vector signed char a1, vector signed char a2)
+inline __vector signed short
+vec_vmulosb (__vector signed char a1, __vector signed char a2)
{
- return (vector signed short) __builtin_altivec_vmulosb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vmuloub */
-inline vector unsigned short
-vec_vmuloub (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned short
+vec_vmuloub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_nmsub */
-inline vector float
-vec_nmsub (vector float a1, vector float a2, vector float a3)
+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);
+ 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)
+inline __vector float
+vec_nor (__vector float a1, __vector float a2)
+{
+ return (__vector float) __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 unsigned int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool int
+vec_nor (__vector __bool int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+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);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_nor (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector __bool short
+vec_nor (__vector __bool short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector signed char
+vec_nor (__vector signed char a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector unsigned char
+vec_nor (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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)
+inline __vector __bool char
+vec_nor (__vector __bool char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vnor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_or */
-inline vector float
-vec_or (vector float a1, vector float a2)
+inline __vector float
+vec_or (__vector float a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector float
+vec_or (__vector float a1, __vector __bool int a2)
+{
+ return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector float
+vec_or (__vector __bool int a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool int
+vec_or (__vector __bool int a1, __vector __bool int a2)
+{
+ return (__vector __bool int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_or (__vector __bool int a1, __vector signed int a2)
{
- return (vector float) __builtin_altivec_vor ((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 float
-vec_or (vector float a1, vector signed int a2)
+inline __vector signed int
+vec_or (__vector signed int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vor ((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 float
-vec_or (vector signed int a1, vector float a2)
+inline __vector signed int
+vec_or (__vector signed int a1, __vector signed int a2)
{
- return (vector float) __builtin_altivec_vor ((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 signed int
-vec_or (vector signed int a1, vector signed int a2)
+inline __vector unsigned int
+vec_or (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_or (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_or (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector __bool short
+vec_or (__vector __bool short a1, __vector __bool short a2)
{
- return (vector unsigned int) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector signed short
+vec_or (__vector __bool short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_or (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_or (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_or (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_or (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector signed char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_or (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector signed char
+vec_or (__vector __bool char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector __bool char
+vec_or (__vector __bool char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed char
+vec_or (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __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 char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned char
+vec_or (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned char
+vec_or (__vector unsigned char a1, __vector __bool char a2)
+{
+ return (__vector unsigned char) __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 unsigned char) __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)
+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);
+ 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)
+inline __vector unsigned char
+vec_pack (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector __bool char
+vec_pack (__vector __bool short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_pack (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed short
+vec_pack (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkuwum ((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 unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool short
+vec_pack (__vector __bool int a1, __vector __bool int a2)
+{
+ return (__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkuwum */
-inline vector signed short
-vec_vpkuwum (vector signed int a1, vector signed int a2)
+inline __vector __bool short
+vec_vpkuwum (__vector __bool int a1, __vector __bool int a2)
+{
+ return (__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed short
+vec_vpkuwum (__vector signed int a1, __vector signed int a2)
{
- return (vector signed short) __builtin_altivec_vpkuwum ((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_vpkuwum (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned short
+vec_vpkuwum (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkuhum */
-inline vector signed char
-vec_vpkuhum (vector signed short a1, vector signed short a2)
+inline __vector __bool char
+vec_vpkuhum (__vector __bool short a1, __vector __bool short a2)
+{
+ return (__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed char
+vec_vpkuhum (__vector signed short a1, __vector signed short a2)
{
- return (vector signed char) __builtin_altivec_vpkuhum ((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_vpkuhum (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned char
+vec_vpkuhum (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_packpx */
-inline vector unsigned short
-vec_packpx (vector unsigned int a1, vector unsigned int a2)
+inline __vector __pixel
+vec_packpx (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector unsigned char
+vec_packs (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_packs (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+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);
+ return (__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkswss */
-inline vector signed short
-vec_vpkswss (vector signed int a1, vector signed int a2)
+inline __vector signed short
+vec_vpkswss (__vector signed int a1, __vector signed int a2)
{
- return (vector signed short) __builtin_altivec_vpkswss ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkuwus */
-inline vector unsigned short
-vec_vpkuwus (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned short
+vec_vpkuwus (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkshss */
-inline vector signed char
-vec_vpkshss (vector signed short a1, vector signed short a2)
+inline __vector signed char
+vec_vpkshss (__vector signed short a1, __vector signed short a2)
{
- return (vector signed char) __builtin_altivec_vpkshss ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vpkuhus */
-inline vector unsigned char
-vec_vpkuhus (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned char
+vec_vpkuhus (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_packsu */
-inline vector unsigned char
-vec_packsu (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned char
+vec_packsu (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_packsu (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_packsu (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_packsu (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkswus */
-inline vector unsigned short
-vec_vpkswus (vector signed int a1, vector signed int a2)
+inline __vector unsigned short
+vec_vpkswus (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vpkshus */
-inline vector unsigned char
-vec_vpkshus (vector signed short a1, vector signed short a2)
+inline __vector unsigned char
+vec_vpkshus (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_perm */
-inline vector float
-vec_perm (vector float a1, vector float a2, vector unsigned char a3)
+inline __vector float
+vec_perm (__vector float a1, __vector float a2, __vector unsigned char a3)
+{
+ return (__vector float) __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 float) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+ return (__vector unsigned 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)
+inline __vector __bool int
+vec_perm (__vector __bool int a1, __vector __bool 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);
+ return (__vector __bool 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)
+inline __vector signed short
+vec_perm (__vector signed short a1, __vector signed short a2, __vector unsigned char a3)
{
- return (vector unsigned int) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_perm (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned char a3)
{
- return (vector signed short) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+ return (__vector unsigned short) __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)
+inline __vector __bool short
+vec_perm (__vector __bool short a1, __vector __bool short a2, __vector unsigned char a3)
{
- return (vector unsigned short) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+ return (__vector __bool short) __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)
+inline __vector __pixel
+vec_perm (__vector __pixel a1, __vector __pixel a2, __vector unsigned char a3)
{
- return (vector signed char) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+ return (__vector __pixel) __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)
+inline __vector signed char
+vec_perm (__vector signed char a1, __vector signed char a2, __vector unsigned char a3)
{
- return (vector unsigned char) __builtin_altivec_vperm_4si ((vector signed int) a1, (vector signed int) a2, (vector signed char) a3);
+ return (__vector signed char) __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 unsigned char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3);
+}
+
+inline __vector __bool char
+vec_perm (__vector __bool char a1, __vector __bool char a2, __vector unsigned char a3)
+{
+ return (__vector __bool char) __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)
+inline __vector float
+vec_re (__vector float a1)
{
- return (vector float) __builtin_altivec_vrefp ((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)
+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);
+ 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)
+inline __vector unsigned char
+vec_rl (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_rl (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_rl (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vrlw */
-inline vector signed int
-vec_vrlw (vector signed int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vrlw (__vector signed int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vrlw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vrlw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vrlw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vrlh */
-inline vector signed short
-vec_vrlh (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_vrlh (__vector signed short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vrlh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vrlh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vrlh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vrlb */
-inline vector signed char
-vec_vrlb (vector signed char a1, vector unsigned char a2)
+inline __vector signed char
+vec_vrlb (__vector signed char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vrlb (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vrlb (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vrlb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_round */
-inline vector float
-vec_round (vector float a1)
+inline __vector float
+vec_round (__vector float a1)
{
- return (vector float) __builtin_altivec_vrfin ((vector float) a1);
+ return (__vector float) __builtin_altivec_vrfin ((__vector float) a1);
}
/* vec_rsqrte */
-inline vector float
-vec_rsqrte (vector float a1)
+inline __vector float
+vec_rsqrte (__vector float a1)
{
- return (vector float) __builtin_altivec_vrsqrtefp ((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)
+inline __vector float
+vec_sel (__vector float a1, __vector float a2, __vector __bool int a3)
+{
+ return (__vector float) __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 float) __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 __bool int a3)
{
- return (vector float) __builtin_altivec_vsel_4si ((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 float
-vec_sel (vector float a1, vector float a2, vector unsigned int a3)
+inline __vector signed int
+vec_sel (__vector signed int a1, __vector signed int a2, __vector unsigned int a3)
{
- return (vector float) __builtin_altivec_vsel_4si ((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 signed int a3)
+inline __vector unsigned int
+vec_sel (__vector unsigned int a1, __vector unsigned int a2, __vector __bool int a3)
{
- return (vector signed int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector unsigned 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)
+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);
+ return (__vector unsigned 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)
+inline __vector __bool int
+vec_sel (__vector __bool int a1, __vector __bool int a2, __vector __bool int a3)
{
- return (vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector __bool 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)
+inline __vector __bool int
+vec_sel (__vector __bool int a1, __vector __bool int a2, __vector unsigned int a3)
{
- return (vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector __bool 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)
+inline __vector signed short
+vec_sel (__vector signed short a1, __vector signed short a2, __vector __bool short a3)
{
- return (vector signed short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_sel (__vector signed short a1, __vector signed short a2, __vector unsigned short a3)
{
- return (vector signed short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_sel (__vector unsigned short a1, __vector unsigned short a2, __vector __bool short a3)
{
- return (vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_sel (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned short a3)
{
- return (vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector unsigned short) __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)
+inline __vector __bool short
+vec_sel (__vector __bool short a1, __vector __bool short a2, __vector __bool short a3)
{
- return (vector signed char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector __bool short) __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)
+inline __vector __bool short
+vec_sel (__vector __bool short a1, __vector __bool short a2, __vector unsigned short a3)
{
- return (vector signed char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector __bool short) __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)
+inline __vector signed char
+vec_sel (__vector signed char a1, __vector signed char a2, __vector __bool char a3)
{
- return (vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector signed char) __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)
+inline __vector signed char
+vec_sel (__vector signed char a1, __vector signed char a2, __vector unsigned char a3)
{
- return (vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) a1, (vector signed int) a2, (vector signed int) a3);
+ return (__vector signed char) __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 __bool char a3)
+{
+ return (__vector unsigned char) __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 unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
+}
+
+inline __vector __bool char
+vec_sel (__vector __bool char a1, __vector __bool char a2, __vector __bool char a3)
+{
+ return (__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3);
+}
+
+inline __vector __bool char
+vec_sel (__vector __bool char a1, __vector __bool char a2, __vector unsigned char a3)
+{
+ return (__vector __bool char) __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)
+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);
+ 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)
+inline __vector unsigned char
+vec_sl (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_sl (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_sl (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vslw */
-inline vector signed int
-vec_vslw (vector signed int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vslw (__vector signed int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vslw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vslw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vslw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vslh */
-inline vector signed short
-vec_vslh (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_vslh (__vector signed short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vslh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vslh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vslh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vslb */
-inline vector signed char
-vec_vslb (vector signed char a1, vector unsigned char a2)
+inline __vector signed char
+vec_vslb (__vector signed char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vslb (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vslb (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vslb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_sld */
-inline vector float
-vec_sld (vector float a1, vector float a2, const char a3)
+inline __vector float
+vec_sld (__vector float a1, __vector float a2, const int a3)
+{
+ return (__vector float) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
+}
+
+inline __vector signed int
+vec_sld (__vector signed int a1, __vector signed int a2, const int a3)
+{
+ return (__vector signed int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
+}
+
+inline __vector unsigned int
+vec_sld (__vector unsigned int a1, __vector unsigned int a2, const int a3)
+{
+ return (__vector unsigned int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
+}
+
+inline __vector __bool int
+vec_sld (__vector __bool int a1, __vector __bool int a2, const int a3)
+{
+ return (__vector __bool int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
+}
+
+inline __vector signed short
+vec_sld (__vector signed short a1, __vector signed short a2, const int a3)
{
- return (vector float) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector signed short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
-inline vector signed int
-vec_sld (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, const int a3)
{
- return (vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector unsigned short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
-inline vector unsigned int
-vec_sld (vector unsigned int a1, vector unsigned int a2, const char a3)
+inline __vector __bool short
+vec_sld (__vector __bool short a1, __vector __bool short a2, const int a3)
{
- return (vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector __bool short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
-inline vector signed short
-vec_sld (vector signed short a1, vector signed short a2, const char a3)
+inline __vector __pixel
+vec_sld (__vector __pixel a1, __vector __pixel a2, const int a3)
{
- return (vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector __pixel) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
-inline vector unsigned short
-vec_sld (vector unsigned short a1, vector unsigned short a2, const char a3)
+inline __vector signed char
+vec_sld (__vector signed char a1, __vector signed char a2, const int a3)
{
- return (vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector signed char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
-inline vector signed char
-vec_sld (vector signed char a1, vector signed char a2, const char a3)
+inline __vector unsigned char
+vec_sld (__vector unsigned char a1, __vector unsigned char a2, const int a3)
{
- return (vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector unsigned char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
-inline vector unsigned char
-vec_sld (vector unsigned char a1, vector unsigned char a2, const char a3)
+inline __vector __bool char
+vec_sld (__vector __bool char a1, __vector __bool char a2, const int a3)
{
- return (vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) a1, (vector signed int) a2, a3);
+ return (__vector __bool char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3);
}
/* vec_sll */
-inline vector signed int
-vec_sll (vector signed int a1, vector unsigned int a2)
+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 unsigned 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 unsigned 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 unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool int
+vec_sll (__vector __bool int a1, __vector unsigned int a2)
+{
+ return (__vector __bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool int
+vec_sll (__vector __bool int a1, __vector unsigned short a2)
{
- return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+inline __vector __bool int
+vec_sll (__vector __bool int a1, __vector unsigned char a2)
{
- return (vector signed int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+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);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_sll (__vector signed short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_sll (__vector signed short a1, __vector unsigned char a2)
{
- return (vector unsigned int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_sll (__vector unsigned short a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_sll (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_sll (__vector unsigned short a1, __vector unsigned char a2)
{
- return (vector signed short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector __bool short
+vec_sll (__vector __bool short a1, __vector unsigned int a2)
{
- return (vector signed short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector __bool short
+vec_sll (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector __bool short
+vec_sll (__vector __bool short a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector __pixel
+vec_sll (__vector __pixel a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector __pixel
+vec_sll (__vector __pixel a1, __vector unsigned short a2)
{
- return (vector signed char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector __pixel
+vec_sll (__vector __pixel a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector signed char
+vec_sll (__vector signed char a1, __vector unsigned int a2)
{
- return (vector signed char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector signed char
+vec_sll (__vector signed char a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector signed char
+vec_sll (__vector signed char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector unsigned char
+vec_sll (__vector unsigned char a1, __vector unsigned int a2)
{
- return (vector unsigned char) __builtin_altivec_vsl ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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 unsigned char) __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 unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_sll (__vector __bool char a1, __vector unsigned int a2)
+{
+ return (__vector __bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_sll (__vector __bool char a1, __vector unsigned short a2)
+{
+ return (__vector __bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_sll (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector __bool char) __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)
+inline __vector float
+vec_slo (__vector float a1, __vector signed char a2)
+{
+ return (__vector float) __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 float) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector float) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_slo (vector float a1, vector unsigned char a2)
+inline __vector signed int
+vec_slo (__vector signed int a1, __vector signed char a2)
{
- return (vector float) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) 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)
+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);
+ 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)
+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);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_slo (__vector unsigned int a1, __vector unsigned char a2)
{
- return (vector unsigned int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector signed short
+vec_slo (__vector signed short a1, __vector signed char a2)
{
- return (vector unsigned int) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_slo (__vector signed short a1, __vector unsigned char a2)
{
- return (vector signed short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_slo (__vector unsigned short a1, __vector signed char a2)
{
- return (vector signed short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_slo (__vector unsigned short a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector __pixel
+vec_slo (__vector __pixel a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector __pixel
+vec_slo (__vector __pixel a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector signed char
+vec_slo (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector signed char
+vec_slo (__vector signed char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector unsigned char
+vec_slo (__vector unsigned char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vslo ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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 unsigned char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_splat */
-inline vector signed char
-vec_splat (vector signed char a1, const char a2)
+inline __vector signed char
+vec_splat (__vector signed char a1, const int a2)
{
- return (vector signed char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
+ return (__vector signed char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
}
-inline vector unsigned char
-vec_splat (vector unsigned char a1, const char a2)
+inline __vector unsigned char
+vec_splat (__vector unsigned char a1, const int a2)
{
- return (vector unsigned char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
+ return (__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
}
-inline vector signed short
-vec_splat (vector signed short a1, const char a2)
+inline __vector __bool char
+vec_splat (__vector __bool char a1, const int a2)
{
- return (vector signed short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
+ return (__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
}
-inline vector unsigned short
-vec_splat (vector unsigned short a1, const char a2)
+inline __vector signed short
+vec_splat (__vector signed short a1, const int a2)
{
- return (vector unsigned short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
+ return (__vector signed short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
}
-inline vector float
-vec_splat (vector float a1, const char a2)
+inline __vector unsigned short
+vec_splat (__vector unsigned short a1, const int a2)
{
- return (vector float) __builtin_altivec_vspltw ((vector signed int) a1, a2);
+ return (__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
}
-inline vector signed int
-vec_splat (vector signed int a1, const char a2)
+inline __vector __bool short
+vec_splat (__vector __bool short a1, const int a2)
{
- return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
+ return (__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
}
-inline vector unsigned int
-vec_splat (vector unsigned int a1, const char a2)
+inline __vector __pixel
+vec_splat (__vector __pixel a1, const int a2)
{
- return (vector unsigned int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
+ return (__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
+}
+
+inline __vector float
+vec_splat (__vector float a1, const int a2)
+{
+ return (__vector float) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
+}
+
+inline __vector signed int
+vec_splat (__vector signed int a1, const int a2)
+{
+ return (__vector signed int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
+}
+
+inline __vector unsigned int
+vec_splat (__vector unsigned int a1, const int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
+}
+
+inline __vector __bool int
+vec_splat (__vector __bool int a1, const int a2)
+{
+ return (__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
}
/* vec_vspltw */
-inline vector float
-vec_vspltw (vector float a1, const char a2)
+inline __vector float
+vec_vspltw (__vector float a1, const int a2)
{
- return (vector float) __builtin_altivec_vspltw ((vector signed int) a1, a2);
+ return (__vector float) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
}
-inline vector signed int
-vec_vspltw (vector signed int a1, const char a2)
+inline __vector signed int
+vec_vspltw (__vector signed int a1, const int a2)
{
- return (vector signed int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
+ return (__vector signed int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
}
-inline vector unsigned int
-vec_vspltw (vector unsigned int a1, const char a2)
+inline __vector unsigned int
+vec_vspltw (__vector unsigned int a1, const int a2)
{
- return (vector unsigned int) __builtin_altivec_vspltw ((vector signed int) a1, a2);
+ return (__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
+}
+
+inline __vector __bool int
+vec_vspltw (__vector __bool int a1, const int a2)
+{
+ return (__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) a1, a2);
}
/* vec_vsplth */
-inline vector signed short
-vec_vsplth (vector signed short a1, const char a2)
+inline __vector __bool short
+vec_vsplth (__vector __bool short a1, const int a2)
+{
+ return (__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
+}
+
+inline __vector signed short
+vec_vsplth (__vector signed short a1, const int a2)
{
- return (vector signed short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
+ return (__vector signed short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
}
-inline vector unsigned short
-vec_vsplth (vector unsigned short a1, const char a2)
+inline __vector unsigned short
+vec_vsplth (__vector unsigned short a1, const int a2)
{
- return (vector unsigned short) __builtin_altivec_vsplth ((vector signed short) a1, a2);
+ return (__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
+}
+
+inline __vector __pixel
+vec_vsplth (__vector __pixel a1, const int a2)
+{
+ return (__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) a1, a2);
}
/* vec_vspltb */
-inline vector signed char
-vec_vspltb (vector signed char a1, const char a2)
+inline __vector signed char
+vec_vspltb (__vector signed char a1, const int a2)
{
- return (vector signed char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
+ return (__vector signed char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
}
-inline vector unsigned char
-vec_vspltb (vector unsigned char a1, const char a2)
+inline __vector unsigned char
+vec_vspltb (__vector unsigned char a1, const int a2)
{
- return (vector unsigned char) __builtin_altivec_vspltb ((vector signed char) a1, a2);
+ return (__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
+}
+
+inline __vector __bool char
+vec_vspltb (__vector __bool char a1, const int a2)
+{
+ return (__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) a1, a2);
}
/* vec_splat_s8 */
-inline vector signed char
-vec_splat_s8 (const char a1)
+inline __vector signed char
+vec_splat_s8 (const int a1)
{
- return (vector signed char) __builtin_altivec_vspltisb (a1);
+ return (__vector signed char) __builtin_altivec_vspltisb (a1);
}
/* vec_splat_s16 */
-inline vector signed short
-vec_splat_s16 (const char a1)
+inline __vector signed short
+vec_splat_s16 (const int a1)
{
- return (vector signed short) __builtin_altivec_vspltish (a1);
+ return (__vector signed short) __builtin_altivec_vspltish (a1);
}
/* vec_splat_s32 */
-inline vector signed int
-vec_splat_s32 (const char a1)
+inline __vector signed int
+vec_splat_s32 (const int a1)
{
- return (vector signed int) __builtin_altivec_vspltisw (a1);
+ return (__vector signed int) __builtin_altivec_vspltisw (a1);
}
/* vec_splat_u8 */
-inline vector unsigned char
-vec_splat_u8 (const char a1)
+inline __vector unsigned char
+vec_splat_u8 (const int a1)
{
- return (vector unsigned char) __builtin_altivec_vspltisb (a1);
+ return (__vector unsigned char) __builtin_altivec_vspltisb (a1);
}
/* vec_splat_u16 */
-inline vector unsigned short
-vec_splat_u16 (const char a1)
+inline __vector unsigned short
+vec_splat_u16 (const int a1)
{
- return (vector unsigned short) __builtin_altivec_vspltish (a1);
+ return (__vector unsigned short) __builtin_altivec_vspltish (a1);
}
/* vec_splat_u32 */
-inline vector unsigned int
-vec_splat_u32 (const char a1)
+inline __vector unsigned int
+vec_splat_u32 (const int a1)
{
- return (vector unsigned int) __builtin_altivec_vspltisw (a1);
+ return (__vector unsigned int) __builtin_altivec_vspltisw (a1);
}
/* vec_sr */
-inline vector signed char
-vec_sr (vector signed char a1, vector unsigned char a2)
+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);
+ 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)
+inline __vector unsigned char
+vec_sr (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_sr (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_sr (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsrw */
-inline vector signed int
-vec_vsrw (vector signed int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vsrw (__vector signed int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vsrw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vsrw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsrw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsrh */
-inline vector signed short
-vec_vsrh (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_vsrh (__vector signed short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vsrh (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vsrh (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsrh ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vsrb */
-inline vector signed char
-vec_vsrb (vector signed char a1, vector unsigned char a2)
+inline __vector signed char
+vec_vsrb (__vector signed char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vsrb (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vsrb (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsrb ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_sra */
-inline vector signed char
-vec_sra (vector signed char a1, vector unsigned char a2)
+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);
+ 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)
+inline __vector unsigned char
+vec_sra (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned short
+vec_sra (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_sra (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsraw */
-inline vector signed int
-vec_vsraw (vector signed int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vsraw (__vector signed int a1, __vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vsraw (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vsraw (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsraw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsrah */
-inline vector signed short
-vec_vsrah (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_vsrah (__vector signed short a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vsrah (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vsrah (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsrah ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vsrab */
-inline vector signed char
-vec_vsrab (vector signed char a1, vector unsigned char a2)
+inline __vector signed char
+vec_vsrab (__vector signed char a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
+ return (__vector signed char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vsrab (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vsrab (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsrab ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_srl */
-inline vector signed int
-vec_srl (vector signed int a1, vector unsigned int a2)
+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);
+ 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)
+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);
+ 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)
+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);
+ 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)
+inline __vector unsigned int
+vec_srl (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_srl (__vector unsigned int a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_srl (__vector unsigned int a1, __vector unsigned char a2)
{
- return (vector unsigned int) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector __bool int
+vec_srl (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector signed short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+inline __vector __bool int
+vec_srl (__vector __bool int a1, __vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+inline __vector __bool int
+vec_srl (__vector __bool int a1, __vector unsigned char a2)
{
- return (vector signed short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool 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)
+inline __vector signed short
+vec_srl (__vector signed short a1, __vector unsigned int a2)
{
- return (vector unsigned short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_srl (__vector signed short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_srl (__vector signed short a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_srl (__vector unsigned short a1, __vector unsigned int a2)
{
- return (vector signed char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_srl (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector signed char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_srl (__vector unsigned short a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector __bool short
+vec_srl (__vector __bool short a1, __vector unsigned int a2)
{
- return (vector unsigned char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector __bool short
+vec_srl (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector __bool short
+vec_srl (__vector __bool short a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsr ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __pixel
+vec_srl (__vector __pixel a1, __vector unsigned int a2)
+{
+ return (__vector __pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __pixel
+vec_srl (__vector __pixel a1, __vector unsigned short a2)
+{
+ return (__vector __pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __pixel
+vec_srl (__vector __pixel a1, __vector unsigned char a2)
+{
+ return (__vector __pixel) __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 char) __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 char) __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 char) __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 unsigned char) __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 unsigned char) __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 unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_srl (__vector __bool char a1, __vector unsigned int a2)
+{
+ return (__vector __bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_srl (__vector __bool char a1, __vector unsigned short a2)
+{
+ return (__vector __bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_srl (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector __bool char) __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)
+inline __vector float
+vec_sro (__vector float a1, __vector signed char a2)
+{
+ return (__vector float) __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 float) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector float) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_sro (vector float a1, vector unsigned char a2)
+inline __vector signed int
+vec_sro (__vector signed int a1, __vector signed char a2)
{
- return (vector float) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) 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)
+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);
+ 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)
+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);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_sro (__vector unsigned int a1, __vector unsigned char a2)
{
- return (vector unsigned int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector signed short
+vec_sro (__vector signed short a1, __vector signed char a2)
{
- return (vector unsigned int) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_sro (__vector signed short a1, __vector unsigned char a2)
{
- return (vector signed short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_sro (__vector unsigned short a1, __vector signed char a2)
{
- return (vector signed short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_sro (__vector unsigned short a1, __vector unsigned char a2)
{
- return (vector unsigned short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector __pixel
+vec_sro (__vector __pixel a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector __pixel
+vec_sro (__vector __pixel a1, __vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __pixel) __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)
+inline __vector signed char
+vec_sro (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector signed char
+vec_sro (__vector signed char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __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)
+inline __vector unsigned char
+vec_sro (__vector unsigned char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vsro ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned char) __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 unsigned char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_st */
inline void
-vec_st (vector float a1, int a2, void *a3)
+vec_st (__vector float a1, int a2, __vector float *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector float a1, int a2, float *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector signed int a1, int a2, __vector signed int *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector signed int a1, int a2, int *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector unsigned int a1, int a2, __vector unsigned int *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector unsigned int a1, int a2, unsigned int *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool int a1, int a2, __vector __bool int *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool int a1, int a2, unsigned int *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool int a1, int a2, int *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, 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)
+vec_st (__vector signed short a1, int a2, __vector signed short *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, 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)
+vec_st (__vector signed short a1, int a2, short *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, 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)
+vec_st (__vector unsigned short a1, int a2, __vector unsigned short *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, 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)
+vec_st (__vector unsigned short a1, int a2, unsigned short *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, 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)
+vec_st (__vector __bool short a1, int a2, __vector __bool short *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, 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)
+vec_st (__vector __bool short a1, int a2, unsigned short *a3)
{
- __builtin_altivec_stvx ((vector signed int) a1, a2, (void *) a3);
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __pixel a1, int a2, __vector __pixel *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __pixel a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __pixel a1, int a2, short *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool short a1, int a2, short *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector signed char a1, int a2, __vector signed char *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector signed char a1, int a2, signed char *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector unsigned char a1, int a2, __vector unsigned char *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector unsigned char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool char a1, int a2, __vector __bool char *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_st (__vector __bool char a1, int a2, signed char *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)
+vec_ste (__vector signed char a1, int a2, signed char *a3)
+{
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector unsigned char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector __bool char a1, int a2, signed char *a3)
+{
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector __bool char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector signed short a1, int a2, short *a3)
+{
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector unsigned short a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector __bool short a1, int a2, short *a3)
{
- __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
}
inline void
-vec_ste (vector unsigned char a1, int a2, void *a3)
+vec_ste (__vector __bool short a1, int a2, unsigned short *a3)
{
- __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
}
inline void
-vec_ste (vector signed short a1, int a2, void *a3)
+vec_ste (__vector __pixel a1, int a2, short *a3)
{
- __builtin_altivec_stvehx ((vector signed short) a1, 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)
+vec_ste (__vector __pixel a1, int a2, unsigned short *a3)
{
- __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
}
inline void
-vec_ste (vector float a1, int a2, void *a3)
+vec_ste (__vector float a1, int a2, float *a3)
{
- __builtin_altivec_stvewx ((vector signed int) a1, 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)
+vec_ste (__vector signed int a1, int a2, int *a3)
{
- __builtin_altivec_stvewx ((vector signed int) a1, 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)
+vec_ste (__vector unsigned int a1, int a2, unsigned int *a3)
{
- __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector __bool int a1, int a2, int *a3)
+{
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_ste (__vector __bool int a1, int a2, unsigned int *a3)
+{
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
}
/* vec_stvewx */
inline void
-vec_stvewx (vector float a1, int a2, void *a3)
+vec_stvewx (__vector float a1, int a2, float *a3)
+{
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvewx (__vector signed int a1, int a2, int *a3)
{
- __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
}
inline void
-vec_stvewx (vector signed int a1, int a2, void *a3)
+vec_stvewx (__vector unsigned int a1, int a2, unsigned int *a3)
{
- __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
}
inline void
-vec_stvewx (vector unsigned int a1, int a2, void *a3)
+vec_stvewx (__vector __bool int a1, int a2, int *a3)
{
- __builtin_altivec_stvewx ((vector signed int) a1, a2, (void *) a3);
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvewx (__vector __bool int a1, int a2, unsigned int *a3)
+{
+ __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3);
}
/* vec_stvehx */
inline void
-vec_stvehx (vector signed short a1, int a2, void *a3)
+vec_stvehx (__vector signed short a1, int a2, short *a3)
{
- __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
}
inline void
-vec_stvehx (vector unsigned short a1, int a2, void *a3)
+vec_stvehx (__vector unsigned short a1, int a2, unsigned short *a3)
{
- __builtin_altivec_stvehx ((vector signed short) a1, a2, (void *) a3);
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvehx (__vector __bool short a1, int a2, short *a3)
+{
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvehx (__vector __bool short a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvehx (__vector __pixel a1, int a2, short *a3)
+{
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvehx (__vector __pixel a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3);
}
/* vec_stvebx */
inline void
-vec_stvebx (vector signed char a1, int a2, void *a3)
+vec_stvebx (__vector signed char a1, int a2, signed char *a3)
+{
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvebx (__vector unsigned char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stvebx (__vector __bool char a1, int a2, signed char *a3)
{
- __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
}
inline void
-vec_stvebx (vector unsigned char a1, int a2, void *a3)
+vec_stvebx (__vector __bool char a1, int a2, unsigned char *a3)
{
- __builtin_altivec_stvebx ((vector signed char) a1, a2, (void *) a3);
+ __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3);
}
/* vec_stl */
inline void
-vec_stl (vector float a1, int a2, void *a3)
+vec_stl (__vector float a1, int a2, __vector float *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, 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)
+vec_stl (__vector float a1, int a2, float *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, 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)
+vec_stl (__vector signed int a1, int a2, __vector signed int *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, 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)
+vec_stl (__vector signed int a1, int a2, int *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, 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)
+vec_stl (__vector unsigned int a1, int a2, __vector unsigned int *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, 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)
+vec_stl (__vector unsigned int a1, int a2, unsigned int *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, 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)
+vec_stl (__vector __bool int a1, int a2, __vector __bool int *a3)
{
- __builtin_altivec_stvxl ((vector signed int) a1, a2, (void *) a3);
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool int a1, int a2, unsigned int *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool int a1, int a2, int *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector signed short a1, int a2, __vector signed short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector signed short a1, int a2, short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector unsigned short a1, int a2, __vector unsigned short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector unsigned short a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool short a1, int a2, __vector __bool short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool short a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool short a1, int a2, short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __pixel a1, int a2, __vector __pixel *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __pixel a1, int a2, unsigned short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __pixel a1, int a2, short *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector signed char a1, int a2, __vector signed char *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector signed char a1, int a2, signed char *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector unsigned char a1, int a2, __vector unsigned char *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector unsigned char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool char a1, int a2, __vector __bool char *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool char a1, int a2, unsigned char *a3)
+{
+ __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3);
+}
+
+inline void
+vec_stl (__vector __bool char a1, int a2, signed char *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)
+inline __vector signed char
+vec_sub (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_sub (__vector signed char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vsububm ((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)
+inline __vector signed char
+vec_sub (__vector signed char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububm ((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 unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_sub (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_sub (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_sub (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector signed short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned short
-vec_sub (vector signed short a1, vector unsigned short a2)
+inline __vector signed short
+vec_sub (__vector __bool short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhm ((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 unsigned short a1, vector signed short a2)
+inline __vector signed short
+vec_sub (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhm ((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 unsigned short a1, vector unsigned short a2)
+inline __vector signed short
+vec_sub (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhm ((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 signed int
-vec_sub (vector signed int a1, vector signed int a2)
+inline __vector unsigned short
+vec_sub (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector signed int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_sub (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned short
+vec_sub (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_sub (vector unsigned int a1, vector signed int a2)
+inline __vector unsigned short
+vec_sub (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_sub (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed int
+vec_sub (__vector __bool int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuwm ((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 float
-vec_sub (vector float a1, vector float a2)
+inline __vector signed int
+vec_sub (__vector signed int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vsubfp ((vector float) a1, (vector float) a2);
+ return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) 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 __bool int a1, __vector unsigned int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_sub (__vector unsigned int a1, __vector __bool int a2)
+{
+ return (__vector unsigned 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 unsigned 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_vsubfp */
-inline vector float
-vec_vsubfp (vector float a1, vector float a2)
+inline __vector float
+vec_vsubfp (__vector float a1, __vector float a2)
{
- return (vector float) __builtin_altivec_vsubfp ((vector float) a1, (vector float) a2);
+ return (__vector float) __builtin_altivec_vsubfp ((__vector float) a1, (__vector float) a2);
}
/* vec_vsubuwm */
-inline vector signed int
-vec_vsubuwm (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vsubuwm (__vector __bool int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vsubuwm ((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_vsubuwm (vector signed int a1, vector unsigned int a2)
+inline __vector signed int
+vec_vsubuwm (__vector signed int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuwm ((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_vsubuwm (vector unsigned int a1, vector signed int a2)
+inline __vector signed int
+vec_vsubuwm (__vector signed int a1, __vector signed int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuwm ((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_vsubuwm (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vsubuwm (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_vsubuwm (__vector unsigned int a1, __vector __bool int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_vsubuwm (__vector unsigned int a1, __vector unsigned int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsubuhm */
-inline vector signed short
-vec_vsubuhm (vector signed short a1, vector signed short a2)
+inline __vector signed short
+vec_vsubuhm (__vector __bool short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vsubuhm (__vector signed short a1, __vector __bool short a2)
+{
+ return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vsubuhm (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vsubuhm ((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_vsubuhm (vector signed short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vsubuhm (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vsubuhm (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_vsubuhm (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vsubuhm (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vsubuhm (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vsububm */
-inline vector signed char
-vec_vsububm (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vsububm (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vsububm (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vsububm (__vector signed char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vsububm ((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_vsububm (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vsububm (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vsububm (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_vsububm (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vsububm (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vsububm (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububm ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_subc */
-inline vector unsigned int
-vec_subc (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_subc (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_subs (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_subs (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned char
+vec_subs (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned 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)
+inline __vector signed char
+vec_subs (__vector __bool char a1, __vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vsubsbs ((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)
+inline __vector signed char
+vec_subs (__vector signed char a1, __vector __bool char a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned short
-vec_subs (vector unsigned short a1, vector signed short a2)
+inline __vector signed char
+vec_subs (__vector signed char a1, __vector signed char a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned short
-vec_subs (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_subs (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned short
+vec_subs (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_subs (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned short
+vec_subs (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_subs (vector unsigned int a1, vector signed int a2)
+inline __vector signed short
+vec_subs (__vector __bool short a1, __vector signed short a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned int
-vec_subs (vector unsigned int a1, vector unsigned int a2)
+inline __vector signed short
+vec_subs (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector signed int
-vec_subs (vector signed int a1, vector signed int a2)
+inline __vector signed short
+vec_subs (__vector signed short a1, __vector signed short a2)
{
- return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector unsigned int
+vec_subs (__vector __bool int a1, __vector unsigned int a2)
+{
+ return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned int
+vec_subs (__vector unsigned int a1, __vector __bool int a2)
+{
+ return (__vector unsigned 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 unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_subs (__vector __bool int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_subs (__vector signed int a1, __vector __bool int a2)
+{
+ return (__vector signed int) __builtin_altivec_vsubsws ((__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_vsubsws */
-inline vector signed int
-vec_vsubsws (vector signed int a1, vector signed int a2)
+inline __vector signed int
+vec_vsubsws (__vector __bool int a1, __vector signed int a2)
+{
+ return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vsubsws (__vector signed int a1, __vector __bool int a2)
+{
+ return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed int
+vec_vsubsws (__vector signed int a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vsubsws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsubuws */
-inline vector unsigned int
-vec_vsubuws (vector signed int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vsubuws (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vsubuws (vector unsigned int a1, vector signed int a2)
+inline __vector unsigned int
+vec_vsubuws (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector unsigned int
-vec_vsubuws (vector unsigned int a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vsubuws (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2);
}
/* vec_vsubshs */
-inline vector signed short
-vec_vsubshs (vector signed short a1, vector signed short a2)
+inline __vector signed short
+vec_vsubshs (__vector __bool short a1, __vector signed short a2)
+{
+ return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vsubshs (__vector signed short a1, __vector __bool short a2)
+{
+ return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
+}
+
+inline __vector signed short
+vec_vsubshs (__vector signed short a1, __vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vsubshs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vsubuhs */
-inline vector unsigned short
-vec_vsubuhs (vector signed short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vsubuhs (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vsubuhs (vector unsigned short a1, vector signed short a2)
+inline __vector unsigned short
+vec_vsubuhs (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
}
-inline vector unsigned short
-vec_vsubuhs (vector unsigned short a1, vector unsigned short a2)
+inline __vector unsigned short
+vec_vsubuhs (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) a1, (vector signed short) a2);
+ return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2);
}
/* vec_vsubsbs */
-inline vector signed char
-vec_vsubsbs (vector signed char a1, vector signed char a2)
+inline __vector signed char
+vec_vsubsbs (__vector __bool char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
+}
+
+inline __vector signed char
+vec_vsubsbs (__vector signed char a1, __vector __bool char a2)
{
- return (vector signed char) __builtin_altivec_vsubsbs ((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 signed char
+vec_vsubsbs (__vector signed char a1, __vector signed char a2)
+{
+ return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_vsububs */
-inline vector unsigned char
-vec_vsububs (vector signed char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vsububs (__vector __bool char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vsububs (vector unsigned char a1, vector signed char a2)
+inline __vector unsigned char
+vec_vsububs (__vector unsigned char a1, __vector __bool char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
}
-inline vector unsigned char
-vec_vsububs (vector unsigned char a1, vector unsigned char a2)
+inline __vector unsigned char
+vec_vsububs (__vector unsigned char a1, __vector unsigned char a2)
{
- return (vector unsigned char) __builtin_altivec_vsububs ((vector signed char) a1, (vector signed char) a2);
+ return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2);
}
/* vec_sum4s */
-inline vector unsigned int
-vec_sum4s (vector unsigned char a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_sum4s (__vector unsigned char a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+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);
+ 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)
+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);
+ return (__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) a1, (__vector signed int) a2);
}
/* vec_vsum4shs */
-inline vector signed int
-vec_vsum4shss (vector signed short a1, vector signed int a2)
+inline __vector signed int
+vec_vsum4shs (__vector signed short a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vsum4shs ((vector signed short) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) a1, (__vector signed int) a2);
}
/* vec_vsum4sbs */
-inline vector signed int
-vec_vsum4sbs (vector signed char a1, vector signed int a2)
+inline __vector signed int
+vec_vsum4sbs (__vector signed char a1, __vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) a1, (vector signed int) a2);
+ return (__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) a1, (__vector signed int) a2);
}
/* vec_vsum4ubs */
-inline vector unsigned int
-vec_vsum4ubs (vector unsigned char a1, vector unsigned int a2)
+inline __vector unsigned int
+vec_vsum4ubs (__vector unsigned char a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) a1, (vector signed int) a2);
+ return (__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) a1, (__vector signed int) a2);
}
/* vec_sum2s */
-inline vector signed int
-vec_sum2s (vector signed int a1, vector signed int a2)
+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);
+ 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)
+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);
+ 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)
+inline __vector float
+vec_trunc (__vector float a1)
{
- return (vector float) __builtin_altivec_vrfiz ((vector float) a1);
+ return (__vector float) __builtin_altivec_vrfiz ((__vector float) a1);
}
/* vec_unpackh */
-inline vector signed short
-vec_unpackh (vector signed char a1)
+inline __vector signed short
+vec_unpackh (__vector signed char a1)
+{
+ return (__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
+}
+
+inline __vector __bool short
+vec_unpackh (__vector __bool char a1)
{
- return (vector signed short) __builtin_altivec_vupkhsb ((vector signed char) a1);
+ return (__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
}
-inline vector signed int
-vec_unpackh (vector signed short a1)
+inline __vector signed int
+vec_unpackh (__vector signed short a1)
{
- return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
+ return (__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
}
-inline vector unsigned int
-vec_unpackh (vector unsigned short a1)
+inline __vector __bool int
+vec_unpackh (__vector __bool short a1)
{
- return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
+ return (__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
+}
+
+inline __vector unsigned int
+vec_unpackh (__vector __pixel a1)
+{
+ return (__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) a1);
}
/* vec_vupkhsh */
-inline vector signed int
-vec_vupkhsh (vector signed short a1)
+inline __vector __bool int
+vec_vupkhsh (__vector __bool short a1)
{
- return (vector signed int) __builtin_altivec_vupkhsh ((vector signed short) a1);
+ return (__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
+}
+
+inline __vector signed int
+vec_vupkhsh (__vector signed short a1)
+{
+ return (__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) a1);
}
/* vec_vupkhpx */
-inline vector unsigned int
-vec_vupkhpx (vector unsigned short a1)
+inline __vector unsigned int
+vec_vupkhpx (__vector __pixel a1)
{
- return (vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) a1);
+ return (__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) a1);
}
/* vec_vupkhsb */
-inline vector signed short
-vec_vupkhsb (vector signed char a1)
+inline __vector __bool short
+vec_vupkhsb (__vector __bool char a1)
{
- return (vector signed short) __builtin_altivec_vupkhsb ((vector signed char) a1);
+ return (__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
+}
+
+inline __vector signed short
+vec_vupkhsb (__vector signed char a1)
+{
+ return (__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) a1);
}
/* vec_unpackl */
-inline vector signed short
-vec_unpackl (vector signed char a1)
+inline __vector signed short
+vec_unpackl (__vector signed char a1)
+{
+ return (__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) a1);
+}
+
+inline __vector __bool short
+vec_unpackl (__vector __bool char a1)
+{
+ return (__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) a1);
+}
+
+inline __vector unsigned int
+vec_unpackl (__vector __pixel a1)
{
- return (vector signed short) __builtin_altivec_vupklsb ((vector signed char) a1);
+ return (__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) a1);
}
-inline vector unsigned int
-vec_unpackl (vector unsigned short a1)
+inline __vector signed int
+vec_unpackl (__vector signed short a1)
{
- return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
+ return (__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) a1);
}
-inline vector signed int
-vec_unpackl (vector signed short a1)
+inline __vector __bool int
+vec_unpackl (__vector __bool short a1)
{
- return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
+ return (__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) a1);
}
/* vec_vupklpx */
-inline vector unsigned int
-vec_vupklpx (vector unsigned short a1)
+inline __vector unsigned int
+vec_vupklpx (__vector __pixel a1)
{
- return (vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) a1);
+ return (__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) a1);
}
/* vec_upklsh */
-inline vector signed int
-vec_vupklsh (vector signed short a1)
+inline __vector __bool int
+vec_vupklsh (__vector __bool short a1)
+{
+ return (__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) a1);
+}
+
+inline __vector signed int
+vec_vupklsh (__vector signed short a1)
{
- return (vector signed int) __builtin_altivec_vupklsh ((vector signed short) a1);
+ return (__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) a1);
}
/* vec_vupklsb */
-inline vector signed short
-vec_vupklsb (vector signed char a1)
+inline __vector __bool short
+vec_vupklsb (__vector __bool char a1)
{
- return (vector signed short) __builtin_altivec_vupklsb ((vector signed char) a1);
+ return (__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) a1);
+}
+
+inline __vector signed short
+vec_vupklsb (__vector signed char a1)
+{
+ return (__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) a1);
}
/* vec_xor */
-inline vector float
-vec_xor (vector float a1, vector float a2)
+inline __vector float
+vec_xor (__vector float a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector float
+vec_xor (__vector float a1, __vector __bool int a2)
+{
+ return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector float
+vec_xor (__vector __bool int a1, __vector float a2)
+{
+ return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool int
+vec_xor (__vector __bool int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
}
-inline vector float
-vec_xor (vector float a1, vector signed int a2)
+inline __vector signed int
+vec_xor (__vector __bool int a1, __vector signed int a2)
{
- return (vector float) __builtin_altivec_vxor ((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 float
-vec_xor (vector signed int a1, vector float a2)
+inline __vector signed int
+vec_xor (__vector signed int a1, __vector __bool int a2)
{
- return (vector float) __builtin_altivec_vxor ((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 signed int
-vec_xor (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);
+ 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)
+inline __vector unsigned int
+vec_xor (__vector __bool int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_xor (__vector unsigned int a1, __vector __bool int a2)
{
- return (vector unsigned int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector unsigned int
+vec_xor (__vector unsigned int a1, __vector unsigned int a2)
{
- return (vector unsigned int) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned 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)
+inline __vector __bool short
+vec_xor (__vector __bool short a1, __vector __bool short a2)
{
- return (vector signed short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector __bool short) __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)
+inline __vector signed short
+vec_xor (__vector __bool short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_xor (__vector signed short a1, __vector __bool short a2)
{
- return (vector unsigned short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector signed short
+vec_xor (__vector signed short a1, __vector signed short a2)
{
- return (vector unsigned short) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed short) __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)
+inline __vector unsigned short
+vec_xor (__vector __bool short a1, __vector unsigned short a2)
{
- return (vector signed char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_xor (__vector unsigned short a1, __vector __bool short a2)
{
- return (vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector unsigned short
+vec_xor (__vector unsigned short a1, __vector unsigned short a2)
{
- return (vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector unsigned short) __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)
+inline __vector signed char
+vec_xor (__vector __bool char a1, __vector signed char a2)
{
- return (vector unsigned char) __builtin_altivec_vxor ((vector signed int) a1, (vector signed int) a2);
+ return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector __bool char
+vec_xor (__vector __bool char a1, __vector __bool char a2)
+{
+ return (__vector __bool char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector signed char
+vec_xor (__vector signed char a1, __vector __bool char a2)
+{
+ return (__vector signed char) __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 char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned char
+vec_xor (__vector __bool char a1, __vector unsigned char a2)
+{
+ return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline __vector unsigned char
+vec_xor (__vector unsigned char a1, __vector __bool char a2)
+{
+ return (__vector unsigned char) __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 unsigned char) __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)
+vec_all_eq (__vector signed char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, (vector signed char) a2);
+ return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, (__vector signed char) a2);
}
inline int
-vec_all_eq (vector signed char a1, vector signed char a2)
+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)
+vec_all_eq (__vector unsigned char a1, __vector __bool 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);
+ 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)
+vec_all_eq (__vector __bool char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_LT, (vector signed 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 signed short a1, vector unsigned short a2)
+vec_all_eq (__vector __bool char a1, __vector unsigned char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) 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 signed short a2)
+vec_all_eq (__vector __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_LT, (vector signed short) a1, (vector signed short) a2);
+ return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2);
}
inline int
-vec_all_eq (vector unsigned short a1, vector signed short a2)
+vec_all_eq (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_LT, (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 unsigned short a2)
+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);
+ 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)
+vec_all_eq (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) 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 signed int a2)
+vec_all_eq (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_eq (vector unsigned int a1, vector signed int a2)
+vec_all_eq (__vector __bool short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_eq (vector unsigned int a1, vector unsigned int a2)
+vec_all_eq (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_eq (vector float a1, vector float a2)
+vec_all_eq (__vector __bool 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 __pixel a1, __vector __pixel 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 __bool 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 __bool 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 __bool int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline int
+vec_all_eq (__vector __bool 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 __bool 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 float a1, __vector float a2)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a2);
}
@@ -5064,79 +6846,115 @@ vec_all_eq (vector float a1, vector float a2)
/* vec_all_ge */
inline int
-vec_all_ge (vector signed char a1, vector unsigned char a2)
+vec_all_ge (__vector __bool 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 __bool 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 __bool 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 char a1, __vector __bool char a2)
+{
+ return __builtin_altivec_vcmpgtsb_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_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1);
}
inline int
-vec_all_ge (vector unsigned char a1, vector signed char a2)
+vec_all_ge (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_ge (vector unsigned char a1, vector unsigned char a2)
+vec_all_ge (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_ge (vector signed char a1, vector signed char a2)
+vec_all_ge (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a2, (vector signed char) a1);
+ 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 unsigned short a2)
+vec_all_ge (__vector signed short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_ge (vector unsigned short a1, vector signed short a2)
+vec_all_ge (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_ge (vector unsigned short a1, vector unsigned short a2)
+vec_all_ge (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_ge (vector signed short a1, vector signed short a2)
+vec_all_ge (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (vector signed short) a2, (vector signed short) a1);
+ 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 unsigned int a2)
+vec_all_ge (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+ 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)
+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);
+ 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)
+vec_all_ge (__vector __bool int a1, __vector signed int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+ return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1);
}
inline int
-vec_all_ge (vector signed int a1, vector signed int a2)
+vec_all_ge (__vector signed int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) a2, (vector signed int) a1);
+ 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)
+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_LT, a1, a2);
}
@@ -5144,79 +6962,115 @@ vec_all_ge (vector float a1, vector float a2)
/* vec_all_gt */
inline int
-vec_all_gt (vector signed char a1, vector unsigned char a2)
+vec_all_gt (__vector __bool 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 __bool 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);
+ 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)
+vec_all_gt (__vector __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT, (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 unsigned char a1, vector unsigned char a2)
+vec_all_gt (__vector signed char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT, (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 char a1, vector signed char a2)
+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);
+ 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)
+vec_all_gt (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed 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 signed short a2)
+vec_all_gt (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed 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)
+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);
+ 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)
+vec_all_gt (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (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)
+vec_all_gt (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_gt (vector unsigned int a1, vector signed int a2)
+vec_all_gt (__vector signed short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_gt (vector unsigned int a1, vector unsigned int a2)
+vec_all_gt (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed 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 signed int a1, vector signed int a2)
+vec_all_gt (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed 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 float a1, vector float a2)
+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 __bool 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 signed int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpgtsw_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);
}
@@ -5224,7 +7078,7 @@ vec_all_gt (vector float a1, vector float a2)
/* vec_all_in */
inline int
-vec_all_in (vector float a1, vector float a2)
+vec_all_in (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2);
}
@@ -5232,79 +7086,115 @@ vec_all_in (vector float a1, vector float a2)
/* vec_all_le */
inline int
-vec_all_le (vector signed char a1, vector unsigned char a2)
+vec_all_le (__vector __bool 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 __bool 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 __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (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 unsigned char a1, vector signed char a2)
+vec_all_le (__vector signed char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (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 unsigned char a1, vector unsigned char a2)
+vec_all_le (__vector signed char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (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 char a1, vector signed char a2)
+vec_all_le (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (vector signed char) a1, (vector signed char) 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 unsigned short a2)
+vec_all_le (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (vector signed 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 signed short a2)
+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);
+ 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)
+vec_all_le (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (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 short a1, vector signed short a2)
+vec_all_le (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (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)
+vec_all_le (__vector signed short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_le (vector unsigned int a1, vector signed int a2)
+vec_all_le (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed 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)
+vec_all_le (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (vector signed 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 signed int a1, vector signed int a2)
+vec_all_le (__vector unsigned int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed 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 float a1, vector float a2)
+vec_all_le (__vector __bool 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 signed int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpgtsw_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);
}
@@ -5312,79 +7202,115 @@ vec_all_le (vector float a1, vector float a2)
/* vec_all_lt */
inline int
-vec_all_lt (vector signed char a1, vector unsigned char a2)
+vec_all_lt (__vector __bool 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 __bool 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 __bool 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 char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
}
inline int
-vec_all_lt (vector unsigned char a1, vector signed char a2)
+vec_all_lt (__vector signed char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1);
}
inline int
-vec_all_lt (vector unsigned char a1, vector unsigned char a2)
+vec_all_lt (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_lt (vector signed char a1, vector signed char a2)
+vec_all_lt (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (vector signed char) a2, (vector signed char) a1);
+ 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 unsigned short a2)
+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);
+ 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)
+vec_all_lt (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_lt (vector unsigned short a1, vector unsigned short a2)
+vec_all_lt (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_all_lt (vector signed short a1, vector signed short a2)
+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);
+ 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)
+vec_all_lt (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+ 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)
+vec_all_lt (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+ 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)
+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);
+ 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)
+vec_all_lt (__vector __bool int a1, __vector signed int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) a2, (vector signed int) a1);
+ 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)
+vec_all_lt (__vector signed int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpgtsw_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);
}
@@ -5392,7 +7318,7 @@ vec_all_lt (vector float a1, vector float a2)
/* vec_all_nan */
inline int
-vec_all_nan (vector float a1)
+vec_all_nan (__vector float a1)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1);
}
@@ -5400,79 +7326,139 @@ vec_all_nan (vector float a1)
/* vec_all_ne */
inline int
-vec_all_ne (vector signed char a1, vector unsigned char a2)
+vec_all_ne (__vector signed char a1, __vector __bool 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);
+ 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)
+vec_all_ne (__vector unsigned char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_EQ, (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)
+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);
+ 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)
+vec_all_ne (__vector __bool char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_EQ, (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 signed short a1, vector unsigned short a2)
+vec_all_ne (__vector __bool char a1, __vector unsigned char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) 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 signed short a2)
+vec_all_ne (__vector __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_EQ, (vector signed short) a1, (vector signed short) a2);
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2);
}
inline int
-vec_all_ne (vector unsigned short a1, vector signed short a2)
+vec_all_ne (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_EQ, (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 unsigned short a2)
+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);
+ 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)
+vec_all_ne (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) 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 signed int a2)
+vec_all_ne (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_ne (vector unsigned int a1, vector signed int a2)
+vec_all_ne (__vector __bool short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_ne (vector unsigned int a1, vector unsigned int a2)
+vec_all_ne (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_all_ne (vector float a1, vector float a2)
+vec_all_ne (__vector __bool 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 __pixel a1, __vector __pixel 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 __bool 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 __bool 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 __bool int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline int
+vec_all_ne (__vector __bool 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 __bool 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 float a1, __vector float a2)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a2);
}
@@ -5480,7 +7466,7 @@ vec_all_ne (vector float a1, vector float a2)
/* vec_all_nge */
inline int
-vec_all_nge (vector float a1, vector float a2)
+vec_all_nge (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2);
}
@@ -5488,7 +7474,7 @@ vec_all_nge (vector float a1, vector float a2)
/* vec_all_ngt */
inline int
-vec_all_ngt (vector float a1, vector float a2)
+vec_all_ngt (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a1, a2);
}
@@ -5496,7 +7482,7 @@ vec_all_ngt (vector float a1, vector float a2)
/* vec_all_nle */
inline int
-vec_all_nle (vector float a1, vector float a2)
+vec_all_nle (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a2, a1);
}
@@ -5504,7 +7490,7 @@ vec_all_nle (vector float a1, vector float a2)
/* vec_all_nlt */
inline int
-vec_all_nlt (vector float a1, vector float a2)
+vec_all_nlt (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a2, a1);
}
@@ -5512,7 +7498,7 @@ vec_all_nlt (vector float a1, vector float a2)
/* vec_all_numeric */
inline int
-vec_all_numeric (vector float a1)
+vec_all_numeric (__vector float a1)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a1);
}
@@ -5520,79 +7506,139 @@ vec_all_numeric (vector float a1)
/* vec_any_eq */
inline int
-vec_any_eq (vector signed char a1, vector unsigned char a2)
+vec_any_eq (__vector signed char a1, __vector __bool 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);
+ 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)
+vec_any_eq (__vector unsigned char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (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)
+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);
+ 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)
+vec_any_eq (__vector __bool char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (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 signed short a1, vector unsigned short a2)
+vec_any_eq (__vector __bool char a1, __vector unsigned char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) 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 signed short a2)
+vec_any_eq (__vector __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+ return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
}
inline int
-vec_any_eq (vector unsigned short a1, vector signed short a2)
+vec_any_eq (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (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 unsigned short a2)
+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);
+ 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)
+vec_any_eq (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) 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 signed int a2)
+vec_any_eq (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_eq (vector unsigned int a1, vector signed int a2)
+vec_any_eq (__vector __bool short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_eq (vector unsigned int a1, vector unsigned int a2)
+vec_any_eq (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_eq (vector float a1, vector float a2)
+vec_any_eq (__vector __bool 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 __pixel a1, __vector __pixel 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 __bool 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 __bool 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 __bool int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline int
+vec_any_eq (__vector __bool 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 __bool 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 float a1, __vector float a2)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a2);
}
@@ -5600,79 +7646,115 @@ vec_any_eq (vector float a1, vector float a2)
/* vec_any_ge */
inline int
-vec_any_ge (vector signed char a1, vector unsigned char a2)
+vec_any_ge (__vector signed char a1, __vector __bool 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 __bool 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 __bool 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 __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+ 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)
+vec_any_ge (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_any_ge (vector unsigned char a1, vector unsigned char a2)
+vec_any_ge (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_any_ge (vector signed char a1, vector signed char a2)
+vec_any_ge (__vector signed short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_any_ge (vector signed short a1, vector unsigned short a2)
+vec_any_ge (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_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)
+vec_any_ge (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+ 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)
+vec_any_ge (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+ 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)
+vec_any_ge (__vector signed int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a2, (vector signed short) a1);
+ 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 unsigned int a2)
+vec_any_ge (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+ 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)
+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);
+ 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)
+vec_any_ge (__vector signed int a1, __vector signed int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+ return __builtin_altivec_vcmpgtsw_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)
+vec_any_ge (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (vector signed int) a2, (vector signed int) a1);
+ return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1);
}
inline int
-vec_any_ge (vector float a1, vector float a2)
+vec_any_ge (__vector __bool 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 float a1, __vector float a2)
{
return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a1, a2);
}
@@ -5680,79 +7762,115 @@ vec_any_ge (vector float a1, vector float a2)
/* vec_any_gt */
inline int
-vec_any_gt (vector signed char a1, vector unsigned char a2)
+vec_any_gt (__vector __bool char a1, __vector unsigned char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed 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 signed char a2)
+vec_any_gt (__vector unsigned char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed 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)
+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);
+ 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)
+vec_any_gt (__vector __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (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)
+vec_any_gt (__vector signed char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
}
inline int
-vec_any_gt (vector unsigned short a1, vector signed short a2)
+vec_any_gt (__vector signed char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a1, (vector signed short) a2);
+ return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2);
}
inline int
-vec_any_gt (vector unsigned short a1, vector unsigned short a2)
+vec_any_gt (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed 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 signed short a1, vector signed short a2)
+vec_any_gt (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (vector signed 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 signed int a1, vector unsigned int a2)
+vec_any_gt (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_gt (vector unsigned int a1, vector signed int a2)
+vec_any_gt (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_gt (vector unsigned int a1, vector unsigned int a2)
+vec_any_gt (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) 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 signed int a2)
+vec_any_gt (__vector signed short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_gt (vector float a1, vector float a2)
+vec_any_gt (__vector __bool 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 __bool 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 __bool 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 signed int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpgtsw_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);
}
@@ -5760,79 +7878,115 @@ vec_any_gt (vector float a1, vector float a2)
/* vec_any_le */
inline int
-vec_any_le (vector signed char a1, vector unsigned char a2)
+vec_any_le (__vector __bool 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 __bool 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 __bool 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 char a1, __vector __bool 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 char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (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 unsigned char a1, vector signed char a2)
+vec_any_le (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_le (vector unsigned char a1, vector unsigned char a2)
+vec_any_le (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) a2);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_le (vector signed char a1, vector signed char a2)
+vec_any_le (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (vector signed char) a1, (vector signed char) 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 unsigned short a2)
+vec_any_le (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (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 unsigned short a1, vector signed short a2)
+vec_any_le (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (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 unsigned short a1, vector unsigned short a2)
+vec_any_le (__vector signed short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (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 short a1, vector signed short a2)
+vec_any_le (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) 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 unsigned int a2)
+vec_any_le (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (vector signed 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 signed int a2)
+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);
+ 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)
+vec_any_le (__vector __bool int a1, __vector signed int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (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 signed int a1, vector signed int a2)
+vec_any_le (__vector signed int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (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)
+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_EQ_REV, a2, a1);
}
@@ -5840,79 +7994,115 @@ vec_any_le (vector float a1, vector float a2)
/* vec_any_lt */
inline int
-vec_any_lt (vector signed char a1, vector unsigned char a2)
+vec_any_lt (__vector __bool 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 __bool 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 __bool 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 char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtsb_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)
+vec_any_lt (__vector signed char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtsb_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)
+vec_any_lt (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+ return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1);
}
inline int
-vec_any_lt (vector signed char a1, vector signed char a2)
+vec_any_lt (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (vector signed char) a2, (vector signed char) a1);
+ 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 unsigned short a2)
+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);
+ 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)
+vec_any_lt (__vector __bool short a1, __vector signed short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_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)
+vec_any_lt (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (vector signed short) a2, (vector signed short) a1);
+ return __builtin_altivec_vcmpgtsh_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)
+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);
+ 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)
+vec_any_lt (__vector __bool int a1, __vector unsigned int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+ 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)
+vec_any_lt (__vector unsigned int a1, __vector __bool int a2)
{
- return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+ 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)
+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);
+ 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)
+vec_any_lt (__vector __bool int a1, __vector signed int a2)
{
- return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (vector signed int) a2, (vector signed int) a1);
+ 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)
+vec_any_lt (__vector signed int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpgtsw_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);
}
@@ -5920,7 +8110,7 @@ vec_any_lt (vector float a1, vector float a2)
/* vec_any_nan */
inline int
-vec_any_nan (vector float a1)
+vec_any_nan (__vector float a1)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a1);
}
@@ -5928,79 +8118,139 @@ vec_any_nan (vector float a1)
/* vec_any_ne */
inline int
-vec_any_ne (vector signed char a1, vector unsigned char a2)
+vec_any_ne (__vector signed char a1, __vector __bool 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);
+ 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)
+vec_any_ne (__vector unsigned char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (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)
+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);
+ 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)
+vec_any_ne (__vector __bool char a1, __vector __bool char a2)
{
- return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (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 signed short a1, vector unsigned short a2)
+vec_any_ne (__vector __bool char a1, __vector unsigned char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) 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 signed short a2)
+vec_any_ne (__vector __bool char a1, __vector signed char a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (vector signed short) a1, (vector signed short) a2);
+ return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2);
}
inline int
-vec_any_ne (vector unsigned short a1, vector signed short a2)
+vec_any_ne (__vector signed short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (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 unsigned short a2)
+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);
+ 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)
+vec_any_ne (__vector unsigned short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) 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 signed int a2)
+vec_any_ne (__vector unsigned short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_ne (vector unsigned int a1, vector signed int a2)
+vec_any_ne (__vector __bool short a1, __vector __bool short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_ne (vector unsigned int a1, vector unsigned int a2)
+vec_any_ne (__vector __bool short a1, __vector unsigned short a2)
{
- return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (vector signed int) a1, (vector signed int) a2);
+ return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2);
}
inline int
-vec_any_ne (vector float a1, vector float a2)
+vec_any_ne (__vector __bool 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 __pixel a1, __vector __pixel 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 __bool 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 __bool 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 __bool int a1, __vector __bool int a2)
+{
+ return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2);
+}
+
+inline int
+vec_any_ne (__vector __bool 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 __bool 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 float a1, __vector float a2)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a2);
}
@@ -6008,7 +8258,7 @@ vec_any_ne (vector float a1, vector float a2)
/* vec_any_nge */
inline int
-vec_any_nge (vector float a1, vector float a2)
+vec_any_nge (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a1, a2);
}
@@ -6016,7 +8266,7 @@ vec_any_nge (vector float a1, vector float a2)
/* vec_any_ngt */
inline int
-vec_any_ngt (vector float a1, vector float a2)
+vec_any_ngt (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a1, a2);
}
@@ -6024,7 +8274,7 @@ vec_any_ngt (vector float a1, vector float a2)
/* vec_any_nle */
inline int
-vec_any_nle (vector float a1, vector float a2)
+vec_any_nle (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1);
}
@@ -6032,7 +8282,7 @@ vec_any_nle (vector float a1, vector float a2)
/* vec_any_nlt */
inline int
-vec_any_nlt (vector float a1, vector float a2)
+vec_any_nlt (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a2, a1);
}
@@ -6040,7 +8290,7 @@ vec_any_nlt (vector float a1, vector float a2)
/* vec_any_numeric */
inline int
-vec_any_numeric (vector float a1)
+vec_any_numeric (__vector float a1)
{
return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a1);
}
@@ -6048,2480 +8298,3208 @@ vec_any_numeric (vector float a1)
/* vec_any_out */
inline int
-vec_any_out (vector float a1, vector float a2)
+vec_any_out (__vector float a1, __vector float a2)
{
return __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, a1, a2);
}
-/* vec_step */
-
-template<typename _Tp>
-struct __vec_step_help
-{
- // All proper vector types will specialize _S_elem.
-};
-
-template<>
-struct __vec_step_help<vector signed short>
-{
- static const int _S_elem = 8;
-};
+} /* extern "C++" */
-template<>
-struct __vec_step_help<vector unsigned short>
-{
- static const int _S_elem = 8;
-};
-
-template<>
-struct __vec_step_help<vector signed int>
-{
- static const int _S_elem = 4;
-};
-
-template<>
-struct __vec_step_help<vector unsigned int>
-{
- static const int _S_elem = 4;
-};
+#else /* not C++ */
-template<>
-struct __vec_step_help<vector unsigned char>
-{
- static const int _S_elem = 16;
-};
+/* "... and so I think no man in a century will suffer as greatly as
+ you will." */
-template<>
-struct __vec_step_help<vector signed char>
-{
- static const int _S_elem = 16;
-};
+/* Helper macros. */
-template<>
-struct __vec_step_help<vector float>
-{
- static const int _S_elem = 4;
-};
+#define __un_args_eq(xtype, x) \
+ __builtin_types_compatible_p (xtype, typeof (x))
-#define vec_step(t) __vec_step_help<typeof(t)>::_S_elem
+#define __bin_args_eq(xtype, x, ytype, y) \
+ (__builtin_types_compatible_p (xtype, typeof (x)) \
+ && __builtin_types_compatible_p (ytype, typeof (y)))
-}//extern "C++"
+#define __tern_args_eq(xtype, x, ytype, y, ztype, z) \
+ (__builtin_types_compatible_p (xtype, typeof (x)) \
+ && __builtin_types_compatible_p (ytype, typeof (y)) \
+ && __builtin_types_compatible_p (ztype, typeof (z)))
-#else /* not C++ */
+#define __ch(x, y, z) __builtin_choose_expr (x, y, z)
-/* "... 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 (typeof (t), __vector signed int), 4, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector unsigned int), 4, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector __bool int), 4, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector signed short), 8, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector unsigned short), 8, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector __bool short), 8, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector __pixel), 8, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector signed char), 16, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector unsigned char), 16, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector __bool char), 16, \
+ __ch (__builtin_types_compatible_p (typeof (t), __vector float), 4, \
+ __builtin_altivec_compiletime_error ("vec_step"))))))))))))
#define vec_abs(a) \
- __ch (__un_args_eq (vector signed char, (a)), \
- ((vector signed char) __builtin_altivec_abs_v16qi ((vector signed char) (a))), \
- __ch (__un_args_eq (vector signed short, (a)), \
- ((vector signed short) __builtin_altivec_abs_v8hi ((vector signed short) (a))), \
- __ch (__un_args_eq (vector signed int, (a)), \
- ((vector signed int) __builtin_altivec_abs_v4si ((vector signed int) (a))), \
- __ch (__un_args_eq (vector float, (a)), \
- ((vector float) __builtin_altivec_abs_v4sf ((vector float) (a))), \
- __altivec_link_error_invalid_argument ()))))
+ __ch (__un_args_eq (__vector signed char, (a)), \
+ ((__vector signed char) __builtin_altivec_abs_v16qi ((__vector signed char) (a))), \
+ __ch (__un_args_eq (__vector signed short, (a)), \
+ ((__vector signed short) __builtin_altivec_abs_v8hi ((__vector signed short) (a))), \
+ __ch (__un_args_eq (__vector signed int, (a)), \
+ ((__vector signed int) __builtin_altivec_abs_v4si ((__vector signed int) (a))), \
+ __ch (__un_args_eq (__vector float, (a)), \
+ ((__vector float) __builtin_altivec_abs_v4sf ((__vector float) (a))), \
+ __builtin_altivec_compiletime_error ("vec_abs")))))
#define vec_abss(a) \
- __ch (__un_args_eq (vector signed char, (a)), \
- ((vector signed char) __builtin_altivec_abss_v16qi ((vector signed char) (a))), \
- __ch (__un_args_eq (vector signed short, (a)), \
- ((vector signed short) __builtin_altivec_abss_v8hi ((vector signed short) (a))), \
- __ch (__un_args_eq (vector signed int, (a)), \
- ((vector signed int) __builtin_altivec_abss_v4si ((vector signed int) (a))), \
- __altivec_link_error_invalid_argument ())))
-
-#define vec_step(t) \
- __ch (__builtin_types_compatible_p (typeof (t), vector signed int), 4, \
- __ch (__builtin_types_compatible_p (typeof (t), vector unsigned int), 4, \
- __ch (__builtin_types_compatible_p (typeof (t), vector signed short), 8, \
- __ch (__builtin_types_compatible_p (typeof (t), vector unsigned short), 8, \
- __ch (__builtin_types_compatible_p (typeof (t), vector signed char), 16, \
- __ch (__builtin_types_compatible_p (typeof (t), vector unsigned char), 16, \
- __ch (__builtin_types_compatible_p (typeof (t), vector float), 4, \
- __altivec_link_error_invalid_argument ())))))))
+ __ch (__un_args_eq (__vector signed char, (a)), \
+ ((__vector signed char) __builtin_altivec_abss_v16qi ((__vector signed char) (a))), \
+ __ch (__un_args_eq (__vector signed short, (a)), \
+ ((__vector signed short) __builtin_altivec_abss_v8hi ((__vector signed short) (a))), \
+ __ch (__un_args_eq (__vector signed int, (a)), \
+ ((__vector signed int) __builtin_altivec_abss_v4si ((__vector signed int) (a))), \
+ __builtin_altivec_compiletime_error ("vec_abss"))))
#define vec_vaddubm(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vaddubm")))))))
#define vec_vadduhm(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vadduhm")))))))
#define vec_vadduwm(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vadduwm ((__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_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vadduwm")))))))
#define vec_vaddfp(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vaddfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vaddfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vaddfp"))
#define vec_add(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vaddfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vadduwm ((__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_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vaddfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_add"))))))))))))))))))))
#define vec_addc(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vaddcuw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vaddcuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_addc"))
#define vec_adds(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vaddsbs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vaddshs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduws ((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_vaddsws ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vaddsws ((__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_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_adds")))))))))))))))))))
#define vec_vaddsws(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vaddsws ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vaddsws ((__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_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vaddsws"))))
#define vec_vadduws(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vadduws ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vadduws"))))
#define vec_vaddshs(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vaddshs ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vaddshs"))))
#define vec_vadduhs(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vadduhs ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vadduhs"))))
#define vec_vaddsbs(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vaddsbs ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vaddsbs"))))
#define vec_vaddubs(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vaddubs ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vaddubs"))))
#define vec_and(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector signed int, (a2)), \
- ((vector float) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vand ((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_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vand ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \
+ ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vand ((__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_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_and")))))))))))))))))))))))))
#define vec_andc(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector unsigned int, (a2)), \
- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector signed int, (a2)), \
- ((vector float) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vandc ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \
+ ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vandc ((__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_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_andc")))))))))))))))))))))))))
#define vec_avg(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vavgub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vavgsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vavguh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vavgsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vavguw ((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_vavgsw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vavguw ((__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_vavgsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_avg")))))))
#define vec_vavgsw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vavgsw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vavgsw"))
#define vec_vavguw(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vavguw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vavguw"))
#define vec_vavgsh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vavgsh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vavgsh"))
#define vec_vavguh(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vavguh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vavguh"))
#define vec_vavgsb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vavgsb ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vavgsb"))
#define vec_vavgub(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vavgub ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vavgub"))
-#define vec_ceil(a1) __builtin_altivec_vrfip ((a1))
+#define vec_ceil(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vrfip ((__vector float) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_ceil"))
-#define vec_cmpb(a1, a2) __builtin_altivec_vcmpbfp ((a1), (a2))
+#define vec_cmpb(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector signed int) __builtin_altivec_vcmpbfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_cmpb"))
#define vec_cmpeq(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpequw ((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 ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpeqfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_cmpeq"))))))))
#define vec_vcmpeqfp(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpeqfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpeqfp"))
#define vec_vcmpequw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpequw ((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 ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpequw")))
#define vec_vcmpequh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpequh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpequh")))
#define vec_vcmpequb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpequb ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpequb")))
-#define vec_cmpge(a1, a2) (vector signed int) __builtin_altivec_vcmpgefp ((a1), (a2))
+#define vec_cmpge(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_cmpge"))
#define vec_cmpgt(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtuw ((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 ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_cmpgt"))))))))
#define vec_vcmpgtfp(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtfp"))
#define vec_vcmpgtsw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtsw"))
#define vec_vcmpgtuw(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtuw"))
#define vec_vcmpgtsh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtsh"))
#define vec_vcmpgtuh(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtuh"))
#define vec_vcmpgtsb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtsb"))
#define vec_vcmpgtub(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
- __altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcmpgtub"))
-#define vec_cmple(a1, a2) __builtin_altivec_vcmpgefp ((a2), (a1))
+#define vec_cmple(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) (a2), (__vector float) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_cmple"))
#define vec_cmplt(a2, a1) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtuw ((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 ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector signed int) __builtin_altivec_vcmpgtfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_cmplt"))))))))
#define vec_ctf(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \
- ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \
- ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \
- ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \
- ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__un_args_eq (__vector unsigned int, (a1)), \
+ ((__vector float) __builtin_altivec_vcfux ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector signed int, (a1)), \
+ ((__vector float) __builtin_altivec_vcfsx ((__vector signed int) (a1), (const int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_ctf")))
#define vec_vcfsx(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), int, (a2)), \
- ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), unsigned int, (a2)), \
- ((vector float) __builtin_altivec_vcfsx ((vector signed int) (a1), (const char) (a2))), \
- __altivec_link_error_invalid_argument ()))
+__ch (__un_args_eq (__vector signed int, (a1)), \
+ ((__vector float) __builtin_altivec_vcfsx ((__vector signed int) (a1), (const int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcfsx"))
#define vec_vcfux(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), int, (a2)), \
- ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), unsigned int, (a2)), \
- ((vector float) __builtin_altivec_vcfux ((vector signed int) (a1), (const char) (a2))), \
- __altivec_link_error_invalid_argument ()))
+__ch (__un_args_eq (__vector unsigned int, (a1)), \
+ ((__vector float) __builtin_altivec_vcfux ((__vector signed int) (a1), (const int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_vcfux"))
-#define vec_cts(a1, a2) __builtin_altivec_vctsxs ((a1), (a2))
+#define vec_cts(a1, a2) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector signed int) __builtin_altivec_vctsxs ((__vector float) (a1), (const int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_cts"))
-#define vec_ctu(a1, a2) (vector unsigned int) __builtin_altivec_vctuxs ((a1), (a2))
+#define vec_ctu(a1, a2) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vctuxs ((__vector float) (a1), (const int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_ctu"))
-#define vec_dss(a1) __builtin_altivec_dss ((a1))
+#define vec_dss(a1) __builtin_altivec_dss ((const int) (a1));
#define vec_dssall() __builtin_altivec_dssall ()
#define vec_dst(a1, a2, a3) \
-__ch (__un_args_eq (vector unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned char, *(a1)), \
+ __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector signed char, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed char, *(a1)), \
+__ch (__un_args_eq (const __vector __bool char, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned short, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned short, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed short, *(a1)), \
+__ch (__un_args_eq (const __vector signed short, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned int, *(a1)), \
+__ch (__un_args_eq (const __vector __bool short, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed int, *(a1)), \
+__ch (__un_args_eq (const __vector __pixel, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector float, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned int, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector signed int, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed char, *(a1)), \
+__ch (__un_args_eq (const __vector __bool int, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned short, *(a1)), \
+__ch (__un_args_eq (const __vector float, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed short, *(a1)), \
+__ch (__un_args_eq (const unsigned char, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned int, *(a1)), \
+__ch (__un_args_eq (const signed char, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed int, *(a1)), \
+__ch (__un_args_eq (const unsigned short, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned long, *(a1)), \
+__ch (__un_args_eq (const short, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed long, *(a1)), \
+__ch (__un_args_eq (const unsigned int, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (float, *(a1)), \
+__ch (__un_args_eq (const int, *(a1)), \
__builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
- __altivec_link_error_invalid_argument ()))))))))))))))))
+__ch (__un_args_eq (const unsigned long, *(a1)), \
+ __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const long, *(a1)), \
+ __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const float, *(a1)), \
+ __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \
+ __builtin_altivec_compiletime_error ("vec_dst")))))))))))))))))))))
#define vec_dstst(a1, a2, a3) \
-__ch (__un_args_eq (vector unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned char, *(a1)), \
+ __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector signed char, *(a1)), \
+ __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector __bool char, *(a1)), \
+ __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector unsigned short, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed char, *(a1)), \
+__ch (__un_args_eq (const __vector signed short, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned short, *(a1)), \
+__ch (__un_args_eq (const __vector __bool short, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed short, *(a1)), \
+__ch (__un_args_eq (const __vector __pixel, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned int, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned int, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed int, *(a1)), \
+__ch (__un_args_eq (const __vector signed int, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector float, *(a1)), \
+__ch (__un_args_eq (const __vector __bool int, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector float, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed char, *(a1)), \
+__ch (__un_args_eq (const unsigned char, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned short, *(a1)), \
+__ch (__un_args_eq (const signed char, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed short, *(a1)), \
+__ch (__un_args_eq (const unsigned short, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned int, *(a1)), \
+__ch (__un_args_eq (const short, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed int, *(a1)), \
+__ch (__un_args_eq (const unsigned int, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned long, *(a1)), \
+__ch (__un_args_eq (const int, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed long, *(a1)), \
+__ch (__un_args_eq (const unsigned long, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (float, *(a1)), \
+__ch (__un_args_eq (const long, *(a1)), \
__builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
- __altivec_link_error_invalid_argument ()))))))))))))))))
+__ch (__un_args_eq (const float, *(a1)), \
+ __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \
+ __builtin_altivec_compiletime_error ("vec_dstst")))))))))))))))))))))
#define vec_dststt(a1, a2, a3) \
-__ch (__un_args_eq (vector unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned char, *(a1)), \
+ __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector signed char, *(a1)), \
+ __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector __bool char, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed char, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned short, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned short, *(a1)), \
+__ch (__un_args_eq (const __vector signed short, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed short, *(a1)), \
+__ch (__un_args_eq (const __vector __bool short, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned int, *(a1)), \
+__ch (__un_args_eq (const __vector __pixel, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed int, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned int, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector float, *(a1)), \
+__ch (__un_args_eq (const __vector signed int, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector __bool int, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed char, *(a1)), \
+__ch (__un_args_eq (const __vector float, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned short, *(a1)), \
+__ch (__un_args_eq (const unsigned char, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed short, *(a1)), \
+__ch (__un_args_eq (const signed char, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned int, *(a1)), \
+__ch (__un_args_eq (const unsigned short, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed int, *(a1)), \
+__ch (__un_args_eq (const short, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned long, *(a1)), \
+__ch (__un_args_eq (const unsigned int, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed long, *(a1)), \
+__ch (__un_args_eq (const int, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (float, *(a1)), \
+__ch (__un_args_eq (const unsigned long, *(a1)), \
__builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
- __altivec_link_error_invalid_argument ()))))))))))))))))
+__ch (__un_args_eq (const long, *(a1)), \
+ __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const float, *(a1)), \
+ __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \
+ __builtin_altivec_compiletime_error ("vec_dststt")))))))))))))))))))))
#define vec_dstt(a1, a2, a3) \
-__ch (__un_args_eq (vector unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned char, *(a1)), \
+ __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const __vector signed char, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed char, *(a1)), \
+__ch (__un_args_eq (const __vector __bool char, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned short, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned short, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed short, *(a1)), \
+__ch (__un_args_eq (const __vector signed short, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector unsigned int, *(a1)), \
+__ch (__un_args_eq (const __vector __bool short, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector signed int, *(a1)), \
+__ch (__un_args_eq (const __vector __pixel, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (vector float, *(a1)), \
+__ch (__un_args_eq (const __vector unsigned int, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned char, *(a1)), \
+__ch (__un_args_eq (const __vector signed int, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed char, *(a1)), \
+__ch (__un_args_eq (const __vector __bool int, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned short, *(a1)), \
+__ch (__un_args_eq (const __vector float, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed short, *(a1)), \
+__ch (__un_args_eq (const unsigned char, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned int, *(a1)), \
+__ch (__un_args_eq (const signed char, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed int, *(a1)), \
+__ch (__un_args_eq (const unsigned short, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (unsigned long, *(a1)), \
+__ch (__un_args_eq (const short, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (signed long, *(a1)), \
+__ch (__un_args_eq (const unsigned int, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
-__ch (__un_args_eq (float, *(a1)), \
+__ch (__un_args_eq (const int, *(a1)), \
__builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
- __altivec_link_error_invalid_argument ()))))))))))))))))
+__ch (__un_args_eq (const unsigned long, *(a1)), \
+ __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const long, *(a1)), \
+ __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
+__ch (__un_args_eq (const float, *(a1)), \
+ __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \
+ __builtin_altivec_compiletime_error ("vec_dstt")))))))))))))))))))))
-#define vec_expte(a1) __builtin_altivec_vexptefp ((a1))
+#define vec_expte(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vexptefp ((__vector float) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_expte"))
-#define vec_floor(a1) __builtin_altivec_vrfim (a1)
+#define vec_floor(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vrfim ((__vector float) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_floor"))
#define vec_ld(a, b) \
-__ch (__un_args_eq (vector unsigned char, *(b)), \
- ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (unsigned char, *(b)), \
- ((vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (vector signed char, *(b)), \
- ((vector signed char) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (signed char, *(b)), \
- ((vector signed char) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (vector unsigned short, *(b)), \
- ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (unsigned short, *(b)), \
- ((vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (vector signed short, *(b)), \
- ((vector signed short) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (signed short, *(b)), \
- ((vector signed short) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (vector unsigned int, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (unsigned int, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (unsigned long, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (vector signed int, *(b)), \
- ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (signed int, *(b)), \
- ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (signed long, *(b)), \
- ((vector signed int) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (vector float, *(b)), \
- ((vector float) __builtin_altivec_lvx ((a), (b))), \
-__ch (__un_args_eq (float, *(b)), \
- ((vector float) __builtin_altivec_lvx ((a), (b))), \
-__altivec_link_error_invalid_argument ()))))))))))))))))
+__ch (__un_args_eq (const __vector unsigned char, *(b)), \
+ ((__vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const unsigned char, *(b)), \
+ ((__vector unsigned char) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector signed char, *(b)), \
+ ((__vector signed char) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const signed char, *(b)), \
+ ((__vector signed char) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector __bool char, *(b)), \
+ ((__vector __bool char) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector unsigned short, *(b)), \
+ ((__vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const unsigned short, *(b)), \
+ ((__vector unsigned short) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector signed short, *(b)), \
+ ((__vector signed short) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const short, *(b)), \
+ ((__vector signed short) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector __bool short, *(b)), \
+ ((__vector __bool short) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector __pixel, *(b)), \
+ ((__vector __pixel) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector unsigned int, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const unsigned int, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const unsigned long, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector signed int, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const int, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const long, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector __bool int, *(b)), \
+ ((__vector __bool int) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const __vector float, *(b)), \
+ ((__vector float) __builtin_altivec_lvx ((a), (b))), \
+__ch (__un_args_eq (const float, *(b)), \
+ ((__vector float) __builtin_altivec_lvx ((a), (b))), \
+__builtin_altivec_compiletime_error ("vec_ld")))))))))))))))))))))
#define vec_lde(a, b) \
-__ch (__un_args_eq (unsigned char, *(b)), \
- ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
-__ch (__un_args_eq (signed char, *(b)), \
- ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
-__ch (__un_args_eq (unsigned short, *(b)), \
- ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
-__ch (__un_args_eq (signed short, *(b)), \
- ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
-__ch (__un_args_eq (unsigned long, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
-__ch (__un_args_eq (signed long, *(b)), \
- ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
-__ch (__un_args_eq (unsigned int, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
-__ch (__un_args_eq (signed int, *(b)), \
- ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
-__ch (__un_args_eq (float, *(b)), \
- ((vector float) __builtin_altivec_lvewx ((a), (b))), \
-__altivec_link_error_invalid_argument ())))))))))
+__ch (__un_args_eq (const unsigned char, *(b)), \
+ ((__vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
+__ch (__un_args_eq (const signed char, *(b)), \
+ ((__vector signed char) __builtin_altivec_lvebx ((a), (b))), \
+__ch (__un_args_eq (const unsigned short, *(b)), \
+ ((__vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
+__ch (__un_args_eq (const short, *(b)), \
+ ((__vector signed short) __builtin_altivec_lvehx ((a), (b))), \
+__ch (__un_args_eq (const unsigned long, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
+__ch (__un_args_eq (const long, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
+__ch (__un_args_eq (const unsigned int, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
+__ch (__un_args_eq (const int, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
+__ch (__un_args_eq (const float, *(b)), \
+ ((__vector float) __builtin_altivec_lvewx ((a), (b))), \
+__builtin_altivec_compiletime_error ("vec_lde"))))))))))
#define vec_lvewx(a, b) \
__ch (__un_args_eq (unsigned int, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
+ ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
__ch (__un_args_eq (signed int, *(b)), \
- ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
+ ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
__ch (__un_args_eq (unsigned long, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
+ ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \
__ch (__un_args_eq (signed long, *(b)), \
- ((vector signed int) __builtin_altivec_lvewx ((a), (b))), \
+ ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \
__ch (__un_args_eq (float, *(b)), \
- ((vector float) __builtin_altivec_lvewx ((a), (b))), \
-__altivec_link_error_invalid_argument ())))))
+ ((__vector float) __builtin_altivec_lvewx ((a), (b))), \
+__builtin_altivec_compiletime_error ("vec_lvewx"))))))
#define vec_lvehx(a, b) \
__ch (__un_args_eq (unsigned short, *(b)), \
- ((vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
+ ((__vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \
__ch (__un_args_eq (signed short, *(b)), \
- ((vector signed short) __builtin_altivec_lvehx ((a), (b))), \
-__altivec_link_error_invalid_argument ()))
+ ((__vector signed short) __builtin_altivec_lvehx ((a), (b))), \
+__builtin_altivec_compiletime_error ("vec_lvehx")))
#define vec_lvebx(a, b) \
__ch (__un_args_eq (unsigned char, *(b)), \
- ((vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
+ ((__vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \
__ch (__un_args_eq (signed char, *(b)), \
- ((vector signed char) __builtin_altivec_lvebx ((a), (b))), \
-__altivec_link_error_invalid_argument ()))
+ ((__vector signed char) __builtin_altivec_lvebx ((a), (b))), \
+__builtin_altivec_compiletime_error ("vec_lvebx")))
#define vec_ldl(a, b) \
-__ch (__un_args_eq (vector unsigned char, *(b)), \
- ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (unsigned char, *(b)), \
- ((vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (vector signed char, *(b)), \
- ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (signed char, *(b)), \
- ((vector signed char) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (vector unsigned short, *(b)), \
- ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (unsigned short, *(b)), \
- ((vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (vector signed short, *(b)), \
- ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (signed short, *(b)), \
- ((vector signed short) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (vector unsigned int, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (unsigned int, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (unsigned long, *(b)), \
- ((vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (vector signed int, *(b)), \
- ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (signed int, *(b)), \
- ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (signed long, *(b)), \
- ((vector signed int) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (vector float, *(b)), \
- ((vector float) __builtin_altivec_lvxl ((a), (b))), \
-__ch (__un_args_eq (float, *(b)), \
- ((vector float) __builtin_altivec_lvxl ((a), (b))), \
-__altivec_link_error_invalid_argument ()))))))))))))))))
-
-#define vec_loge(a1) __builtin_altivec_vlogefp ((a1))
+__ch (__un_args_eq (const __vector unsigned char, *(b)), \
+ ((__vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const unsigned char, *(b)), \
+ ((__vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector signed char, *(b)), \
+ ((__vector signed char) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const signed char, *(b)), \
+ ((__vector signed char) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector __bool char, *(b)), \
+ ((__vector __bool char) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector unsigned short, *(b)), \
+ ((__vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const unsigned short, *(b)), \
+ ((__vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector signed short, *(b)), \
+ ((__vector signed short) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const short, *(b)), \
+ ((__vector signed short) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector __bool short, *(b)), \
+ ((__vector __bool short) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector __pixel, *(b)), \
+ ((__vector __pixel) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector unsigned int, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const unsigned int, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const unsigned long, *(b)), \
+ ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector signed int, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const int, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const long, *(b)), \
+ ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector __bool int, *(b)), \
+ ((__vector __bool int) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const __vector float, *(b)), \
+ ((__vector float) __builtin_altivec_lvxl ((a), (b))), \
+__ch (__un_args_eq (const float, *(b)), \
+ ((__vector float) __builtin_altivec_lvxl ((a), (b))), \
+__builtin_altivec_compiletime_error ("vec_ldl")))))))))))))))))))))
+
+#define vec_loge(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vlogefp ((__vector float) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_loge"))
#define vec_lvsl(a1, a2) \
-__ch (__un_args_eq (unsigned char, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed char, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (unsigned short, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed short, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (unsigned int, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed int, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (unsigned long, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed long, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__ch (__un_args_eq (float, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
-__altivec_link_error_invalid_argument ())))))))))
+__ch (__un_args_eq (const volatile unsigned char, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed char, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile unsigned short, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed short, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile unsigned int, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed int, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile unsigned long, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed long, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile float, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \
+__builtin_altivec_compiletime_error ("vec_lvsl"))))))))))
#define vec_lvsr(a1, a2) \
-__ch (__un_args_eq (unsigned char, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed char, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (unsigned short, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed short, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (unsigned int, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed int, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (unsigned long, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (signed long, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__ch (__un_args_eq (float, *(a2)), \
- ((vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
-__altivec_link_error_invalid_argument ())))))))))
-
-#define vec_madd(a1, a2, a3) (__builtin_altivec_vmaddfp ((a1), (a2), (a3)))
-
-#define vec_madds(a1, a2, a3) __builtin_altivec_vmhaddshs ((a1), (a2), (a3))
+__ch (__un_args_eq (const volatile unsigned char, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed char, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile unsigned short, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed short, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile unsigned int, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed int, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile unsigned long, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile signed long, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__ch (__un_args_eq (const volatile float, *(a2)), \
+ ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \
+__builtin_altivec_compiletime_error ("vec_lvsr"))))))))))
+
+#define vec_madd(a1, a2, a3) \
+__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector float, (a3)), \
+ ((__vector float) __builtin_altivec_vmaddfp ((a1), (a2), (a3))), \
+__builtin_altivec_compiletime_error ("vec_madd"))
+
+#define vec_madds(a1, a2, a3) \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vmhaddshs ((a1), (a2), (a3))), \
+__builtin_altivec_compiletime_error ("vec_madds"))
#define vec_max(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vmaxsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vmaxsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmaxuw ((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_vmaxsw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vmaxfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vmaxsw ((__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_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vmaxfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_max"))))))))))))))))))))
#define vec_vmaxfp(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vmaxfp ((vector float) (a1), (vector float) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vmaxfp ((__vector float) (a1), (__vector float) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxfp"))
#define vec_vmaxsw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vmaxsw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vmaxsw ((__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_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxsw"))))
#define vec_vmaxuw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmaxuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxuw"))))
#define vec_vmaxsh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vmaxsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxsh"))))
#define vec_vmaxuh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmaxuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxuh"))))
#define vec_vmaxsb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vmaxsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxsb"))))
#define vec_vmaxub(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmaxub ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmaxub"))))
#define vec_mergeh(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vmrghw ((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_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vmrghw ((__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_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_mergeh"))))))))))))
#define vec_vmrghw(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vmrghw ((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_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmrghw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vmrghw ((__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_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmrghw")))))
#define vec_vmrghh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmrghh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmrghh")))))
#define vec_vmrghb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmrghb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmrghb"))))
#define vec_mergel(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vmrglw ((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_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vmrglw ((__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_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_mergel"))))))))))))
#define vec_vmrglw(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vmrglw ((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_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vmrglw ((__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_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmrglw")))))
#define vec_vmrglh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmrglh")))))
#define vec_vmrglb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmrglb"))))
-#define vec_mfvscr() (((vector unsigned short) __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 char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vminsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vminsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vminuw ((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_vminsw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vminfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vminsw ((__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_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vminfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_min"))))))))))))))))))))
#define vec_vminfp(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vminfp ((vector float) (a1), (vector float) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vminfp ((__vector float) (a1), (__vector float) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vminfp"))
#define vec_vminsw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vminsw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vminsw ((__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_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vminsw"))))
#define vec_vminuw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vminuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vminuw"))))
#define vec_vminsh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vminsh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vminsh"))))
#define vec_vminuh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vminuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vminuh"))))
#define vec_vminsb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vminsb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_minsb"))))
#define vec_vminub(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vminub ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vminub"))))
#define vec_mladd(a1, a2, a3) \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed short, (a3)), \
- ((vector signed short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector unsigned short, (a2), vector unsigned short, (a3)), \
- ((vector signed short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector signed short, (a2), vector signed short, (a3)), \
- ((vector signed short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned short, (a3)), \
- ((vector unsigned short) __builtin_altivec_vmladduhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed short) (a3))), \
- __altivec_link_error_invalid_argument ()))))
-
-#define vec_mradds(a1, a2, a3) __builtin_altivec_vmhraddshs ((a1), (a2), (a3))
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \
+ ((__vector unsigned short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_mladd")))))
+
+#define vec_mradds(a1, a2, a3) \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vmhraddshs ((a1), (a2), (a3))), \
+__builtin_altivec_compiletime_error ("vec_mradds"))
#define vec_msum(a1, a2, a3) \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed char, (a1), vector unsigned char, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vmsumshm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed char, (a1), __vector unsigned char, (a2), __vector signed int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_msum")))))
#define vec_vmsumshm(a1, a2, a3) \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vmsumshm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
-__altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+__builtin_altivec_compiletime_error ("vec_vmsumshm"))
#define vec_vmsumuhm(a1, a2, a3) \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vmsumuhm ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
-__altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+__builtin_altivec_compiletime_error ("vec_vmsumuhm"))
#define vec_vmsummbm(a1, a2, a3) \
-__ch (__tern_args_eq (vector signed char, (a1), vector unsigned char, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vmsummbm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
-__altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector signed char, (a1), __vector unsigned char, (a2), __vector signed int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
+__builtin_altivec_compiletime_error ("vec_vmsummbm"))
#define vec_vmsumubm(a1, a2, a3) \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vmsumubm ((vector signed char) (a1), (vector signed char) (a2), (vector signed int) (a3))), \
-__altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \
+__builtin_altivec_compiletime_error ("vec_vmsummbm"))
#define vec_msums(a1, a2, a3) \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vmsumshs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
- __altivec_link_error_invalid_argument ()))
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_msums")))
#define vec_vmsumshs(a1, a2, a3) \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vmsumshs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
-__altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+__builtin_altivec_compiletime_error ("vec_vmsumshs"))
#define vec_vmsumuhs(a1, a2, a3) \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vmsumuhs ((vector signed short) (a1), (vector signed short) (a2), (vector signed int) (a3))), \
-__altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \
+__builtin_altivec_compiletime_error ("vec_vmsumuhs"))
#define vec_mtvscr(a1) \
-__ch (__un_args_eq (vector signed int, (a1)), \
- __builtin_altivec_mtvscr ((vector signed int) (a1)), \
-__ch (__un_args_eq (vector unsigned int, (a1)), \
- __builtin_altivec_mtvscr ((vector signed int) (a1)), \
-__ch (__un_args_eq (vector signed short, (a1)), \
- __builtin_altivec_mtvscr ((vector signed int) (a1)), \
-__ch (__un_args_eq (vector unsigned short, (a1)), \
- __builtin_altivec_mtvscr ((vector signed int) (a1)), \
-__ch (__un_args_eq (vector signed char, (a1)), \
- __builtin_altivec_mtvscr ((vector signed int) (a1)), \
-__ch (__un_args_eq (vector unsigned char, (a1)), \
- __builtin_altivec_mtvscr ((vector signed int) (a1)), \
- __altivec_link_error_invalid_argument ()))))))
+__ch (__un_args_eq (__vector signed int, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector unsigned int, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector __bool int, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector unsigned short, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector unsigned char, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ __builtin_altivec_mtvscr ((__vector signed int) (a1)), \
+ __builtin_altivec_compiletime_error ("vec_mtvscr")))))))))))
#define vec_mule(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed short) __builtin_altivec_vmulesb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmuleuh ((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_vmulesh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmuleuh ((__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_vmulesh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_mule")))))
#define vec_vmulesh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed int) __builtin_altivec_vmulesh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmulesh"))
#define vec_vmuleuh(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmuleuh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmuleuh"))
#define vec_vmulesb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed short) __builtin_altivec_vmulesb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmulesb"))
#define vec_vmuleub(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmuleub ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmuleub"))
#define vec_mulo(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmulouh ((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_vmulosh ((vector signed short) (a1), (vector signed short) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmulouh ((__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_vmulosh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_mulo")))))
#define vec_vmulosh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed int) __builtin_altivec_vmulosh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmulosh"))
#define vec_vmulouh(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned int) __builtin_altivec_vmulouh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmulouh"))
#define vec_vmulosb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed short) __builtin_altivec_vmulosb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmulosb"))
#define vec_vmuloub(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vmuloub ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vmuloub"))
#define vec_nmsub(a1, a2, a3) \
-__ch (__tern_args_eq (vector float, ((a1)), vector float, ((a2)) , vector float, ((a3))), \
- ((vector float) __builtin_altivec_vnmsubfp ((vector float) ((a1)), (vector float) ((a2)), (vector float)((a3)))), \
- __altivec_link_error_invalid_argument ())
+__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector float, (a3)), \
+ ((__vector float) __builtin_altivec_vnmsubfp ((__vector float) (a1), (__vector float) (a2), (__vector float) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_nmsub"))
#define vec_nor(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vnor ((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_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vnor ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vnor ((__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_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_nor")))))))))))
#define vec_or(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector signed int, (a2)), \
- ((vector float) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vor ((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_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vor ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \
+ ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vor ((__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_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_or")))))))))))))))))))))))))
#define vec_pack(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_pack")))))))
#define vec_vpkuwum(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkuwum ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkuwum"))))
#define vec_vpkuhum(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkuhum ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkuhum"))))
#define vec_packpx(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- (vector unsigned short) __builtin_altivec_vpkpx ((vector signed int) (a1), (vector signed int) (a2)), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vpkpx ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_packpx"))
#define vec_packs(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed char) __builtin_altivec_vpkshss ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed short) __builtin_altivec_vpkswss ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_packs")))))
#define vec_vpkswss(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed short) __builtin_altivec_vpkswss ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkswss"))
#define vec_vpkuwus(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkuwus"))
#define vec_vpkshss(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed char) __builtin_altivec_vpkshss ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkshss"))
#define vec_vpkuhus(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkuhus"))
#define vec_packsu(a1, a2) \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkuhus ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkuwus ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_packsu")))))
#define vec_vpkswus(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vpkswus ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkswus"))
#define vec_vpkshus(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vpkshus ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vpkshus"))
#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)), \
- ((vector signed int) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
-__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), vector unsigned char, (a3)), \
- ((vector unsigned int) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector unsigned char, (a3)), \
- ((vector signed short) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned char, (a3)), \
- ((vector unsigned short) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
-__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), vector unsigned char, (a3)), \
- ((vector signed char) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned char, (a3)), \
- ((vector unsigned char) __builtin_altivec_vperm_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed char) (a3))), \
- __altivec_link_error_invalid_argument ())))))))
-
-#define vec_re(a1) __builtin_altivec_vrefp ((a1))
+__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)), \
+ ((__vector signed int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector unsigned char, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector __bool int, (a1), __vector __bool int, (a2), __vector unsigned char, (a3)), \
+ ((__vector __bool int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector unsigned char, (a3)), \
+ ((__vector signed short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned char, (a3)), \
+ ((__vector unsigned short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector __bool short, (a1), __vector __bool short, (a2), __vector unsigned char, (a3)), \
+ ((__vector __bool short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector __pixel, (a1), __vector __pixel, (a2), __vector unsigned char, (a3)), \
+ ((__vector __pixel) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector unsigned char, (a3)), \
+ ((__vector signed char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned char, (a3)), \
+ ((__vector unsigned char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+__ch (__tern_args_eq (__vector __bool char, (a1), __vector __bool char, (a2), __vector unsigned char, (a3)), \
+ ((__vector __bool char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_perm"))))))))))))
+
+#define vec_re(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vrefp ((__vector float) (a1))), \
+__builtin_altivec_compiletime_error ("vec_re"))
#define vec_rl(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vrlh ((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_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vrlh ((__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_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_rl")))))))
#define vec_vrlw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vrlw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vrlw")))
#define vec_vrlh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vrlh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vrlh")))
#define vec_vrlb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vrlb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))
-
-#define vec_round(a1) __builtin_altivec_vrfin ((a1))
-
-#define vec_rsqrte(a1) __builtin_altivec_vrsqrtefp ((a1))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vrlb")))
+
+#define vec_round(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vrfin ((__vector float) (a1))), \
+__builtin_altivec_compiletime_error ("vec_round"))
+
+#define vec_rsqrte(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vrsqrtefp ((__vector float) (a1))), \
+__builtin_altivec_compiletime_error ("vec_rsqrte"))
#define vec_sel(a1, a2, a3) \
-__ch (__tern_args_eq (vector float, (a1), vector float, (a2), vector signed int, (a3)), \
- ((vector float) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector float, (a1), vector float, (a2), vector unsigned int, (a3)), \
- ((vector float) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), vector signed int, (a3)), \
- ((vector signed int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), vector unsigned int, (a3)), \
- ((vector signed int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), vector signed int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), vector unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector signed short, (a3)), \
- ((vector signed short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), vector unsigned short, (a3)), \
- ((vector signed short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector signed short, (a3)), \
- ((vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), vector unsigned short, (a3)), \
- ((vector unsigned short) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), vector signed char, (a3)), \
- ((vector signed char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), vector unsigned char, (a3)), \
- ((vector signed char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector signed char, (a3)), \
- ((vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), vector unsigned char, (a3)), \
- ((vector unsigned char) __builtin_altivec_vsel_4si ((vector signed int) (a1), (vector signed int) (a2), (vector signed int) (a3))), \
- __altivec_link_error_invalid_argument ()))))))))))))))
+__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector __bool int, (a3)), \
+ ((__vector float) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector unsigned int, (a3)), \
+ ((__vector float) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector __bool int, (a1), __vector __bool int, (a2), __vector __bool int, (a3)), \
+ ((__vector __bool int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector __bool int, (a1), __vector __bool int, (a2), __vector unsigned int, (a3)), \
+ ((__vector __bool int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector __bool int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector unsigned int, (a3)), \
+ ((__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector __bool int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector unsigned int, (a3)), \
+ ((__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector __bool short, (a1), __vector __bool short, (a2), __vector __bool short, (a3)), \
+ ((__vector __bool short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector __bool short, (a1), __vector __bool short, (a2), __vector unsigned short, (a3)), \
+ ((__vector __bool short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector __bool short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector unsigned short, (a3)), \
+ ((__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector __bool short, (a3)), \
+ ((__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \
+ ((__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector __bool char, (a1), __vector __bool char, (a2), __vector __bool char, (a3)), \
+ ((__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector __bool char, (a1), __vector __bool char, (a2), __vector unsigned char, (a3)), \
+ ((__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector __bool char, (a3)), \
+ ((__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector unsigned char, (a3)), \
+ ((__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector __bool char, (a3)), \
+ ((__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned char, (a3)), \
+ ((__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_sel")))))))))))))))))))))
#define vec_sl(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vslh ((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_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vslh ((__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_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sl")))))))
#define vec_vslw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vslw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vslw")))
#define vec_vslh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vslh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vslh")))
#define vec_vslb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vslb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vslb")))
#define vec_sld(a1, a2, a3) \
-__ch (__tern_args_eq (vector float, (a1), vector float, (a2), int, (a3)), \
- ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector float, (a1), vector float, (a2), unsigned int, (a3)), \
- ((vector float) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), int, (a3)), \
- ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector signed int, (a1), vector signed int, (a2), unsigned int, (a3)), \
- ((vector signed int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector unsigned int, (a1), vector unsigned int, (a2), unsigned int, (a3)), \
- ((vector unsigned int) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), int, (a3)), \
- ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector signed short, (a1), vector signed short, (a2), unsigned int, (a3)), \
- ((vector signed short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), int, (a3)), \
- ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector unsigned short, (a1), vector unsigned short, (a2), unsigned int, (a3)), \
- ((vector unsigned short) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), int, (a3)), \
- ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector signed char, (a1), vector signed char, (a2), unsigned int, (a3)), \
- ((vector signed char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), int, (a3)), \
- ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
-__ch (__tern_args_eq (vector unsigned char, (a1), vector unsigned char, (a2), unsigned int, (a3)), \
- ((vector unsigned char) __builtin_altivec_vsldoi_4si ((vector signed int) (a1), (vector signed int) (a2), (const char) (a3))), \
- __altivec_link_error_invalid_argument ()))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \
+ __builtin_altivec_compiletime_error ("vec_sld"))))))))))))
#define vec_sll(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned short, (a2)), \
- ((vector signed int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
- ((vector signed int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned short, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned int, (a2)), \
- ((vector signed short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
- ((vector signed short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned int, (a2)), \
- ((vector signed char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned short, (a2)), \
- ((vector signed char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsl ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))))))))))))))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned int, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned short, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sll")))))))))))))))))))))))))))))))
#define vec_slo(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector signed char, (a2)), \
- ((vector float) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector unsigned char, (a2)), \
- ((vector float) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed char, (a2)), \
- ((vector signed int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
- ((vector signed int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed char, (a2)), \
- ((vector unsigned int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
- ((vector unsigned int) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed char, (a2)), \
- ((vector signed short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
- ((vector signed short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vslo ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector signed char, (a2)), \
+ ((__vector float) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector unsigned char, (a2)), \
+ ((__vector float) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed char, (a2)), \
+ ((__vector signed int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector signed char, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector signed char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector signed char, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector signed char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_slo")))))))))))))))))
#define vec_splat(a1, a2) \
-__ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \
- ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \
- ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \
- ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \
- ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \
- ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \
- ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \
- ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \
- ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \
- ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \
- ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
- __altivec_link_error_invalid_argument ()))))))))))))))
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ ((__vector signed char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector unsigned char, (a1)), \
+ ((__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ ((__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ ((__vector signed short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector unsigned short, (a1)), \
+ ((__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ ((__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ ((__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector signed int, (a1)), \
+ ((__vector signed int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector unsigned int, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector __bool int, (a1)), \
+ ((__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_splat"))))))))))))
#define vec_vspltw(a1, a2) \
-__ch (__bin_args_eq (vector float, ((a1)), int, ((a2))), \
- ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector float, ((a1)), unsigned int, ((a2))), \
- ((vector float) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), int, ((a2))), \
- ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), unsigned int, ((a2))), \
- ((vector signed int) __builtin_altivec_vspltw ((vector signed int) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), unsigned int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vspltw ((vector signed int) (a1), (const char) ((a2)))), \
-__altivec_link_error_invalid_argument ()))))))
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector __bool int, (a1)), \
+ ((__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector signed int, (a1)), \
+ ((__vector signed int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector unsigned int, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vspltw")))))
#define vec_vsplth(a1, a2) \
-__ch (__bin_args_eq (vector signed short, ((a1)), int, ((a2))), \
- ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed short, ((a1)), unsigned int, ((a2))), \
- ((vector signed short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), int, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), unsigned int, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vsplth ((vector signed short) ((a1)), (const char) ((a2)))), \
-__altivec_link_error_invalid_argument ()))))
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ ((__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ ((__vector signed short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector unsigned short, (a1)), \
+ ((__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ ((__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsplth")))))
#define vec_vspltb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, ((a1)), int, ((a2))), \
- ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector signed char, ((a1)), unsigned int, ((a2))), \
- ((vector signed char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), int, ((a2))), \
- ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), unsigned int, ((a2))), \
- ((vector unsigned char) __builtin_altivec_vspltb ((vector signed char) ((a1)), (const char) ((a2)))), \
-__altivec_link_error_invalid_argument ()))))
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ ((__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ ((__vector signed char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
+__ch (__un_args_eq (__vector unsigned char, (a1)), \
+ ((__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vspltb"))))
-#define vec_splat_s8(a1) __builtin_altivec_vspltisb ((a1))
+#define vec_splat_s8(a1) ((__vector signed char) __builtin_altivec_vspltisb (a1))
-#define vec_splat_s16(a1) __builtin_altivec_vspltish ((a1))
+#define vec_splat_s16(a1) ((__vector signed short) __builtin_altivec_vspltish (a1))
-#define vec_splat_s32(a1) __builtin_altivec_vspltisw ((a1))
+#define vec_splat_s32(a1) ((__vector signed int) __builtin_altivec_vspltisw (a1))
-#define vec_splat_u8(a1) ((vector unsigned char) __builtin_altivec_vspltisb ((a1)))
+#define vec_splat_u8(a1) ((__vector unsigned char) __builtin_altivec_vspltisb (a1))
-#define vec_splat_u16(a1) ((vector unsigned short) __builtin_altivec_vspltish ((a1)))
+#define vec_splat_u16(a1) ((__vector unsigned short) __builtin_altivec_vspltish (a1))
-#define vec_splat_u32(a1) ((vector unsigned int) __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 signed char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsrh ((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_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsrh ((__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_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sr")))))))
#define vec_vsrw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsrw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsrw")))
#define vec_vsrh(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsrh ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsrh")))
#define vec_vsrb(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsrb ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsrb")))
#define vec_sra(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsrah ((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_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsrah ((__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_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sra")))))))
#define vec_vsraw(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsraw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsraw")))
#define vec_vsrah(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsrah ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsrah")))
#define vec_vsrab(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsrab ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsrab")))
#define vec_srl(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector signed int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned short, (a2)), \
- ((vector signed int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
- ((vector signed int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned short, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned int, (a2)), \
- ((vector signed short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector signed short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
- ((vector signed short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned int, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned int, (a2)), \
- ((vector signed char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned short, (a2)), \
- ((vector signed char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned short, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsr ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))))))))))))))
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned int, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned short, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned int, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned short, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned int, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned short, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_srl")))))))))))))))))))))))))))))))
#define vec_sro(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector signed char, (a2)), \
- ((vector float) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector unsigned char, (a2)), \
- ((vector float) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed char, (a2)), \
- ((vector signed int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned char, (a2)), \
- ((vector signed int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed char, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned char, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed char, (a2)), \
- ((vector signed short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned char, (a2)), \
- ((vector signed short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned char, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector signed char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsro ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector signed char, (a2)), \
+ ((__vector float) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector unsigned char, (a2)), \
+ ((__vector float) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed char, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector signed char, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector signed char, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \
+ ((__vector __pixel) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector signed char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector signed char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sro")))))))))))))))))
#define vec_st(a1, a2, a3) \
- __builtin_altivec_stvx ((vector signed int) (a1), (a2), (a3))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), unsigned char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed char, (a1), signed char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), unsigned char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), signed char, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), unsigned short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed short, (a1), short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), unsigned short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), unsigned short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), short, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), unsigned int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed int, (a1), int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), unsigned int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), int, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector float, (a1), float, *(a3)), \
+ __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__builtin_altivec_compiletime_error ("vec_st")))))))))))))))))))))))))))
#define vec_stl(a1, a2, a3) \
- __builtin_altivec_stvxl ((vector signed int) (a1), (a2), (a3))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), unsigned char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed char, (a1), signed char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), unsigned char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), signed char, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), unsigned short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed short, (a1), short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), unsigned short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), unsigned short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), short, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), unsigned int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector signed int, (a1), int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), unsigned int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), int, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__ch (__bin_args_eq (__vector float, (a1), float, *(a3)), \
+ __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \
+__builtin_altivec_compiletime_error ("vec_stl")))))))))))))))))))))))))))
#define vec_ste(a, b, c) \
-__ch (__un_args_eq (vector unsigned char, (a)), \
- __builtin_altivec_stvebx ((vector signed char) (a), (b), (c)), \
-__ch (__un_args_eq (vector signed char, (a)), \
- __builtin_altivec_stvebx ((vector signed char) (a), (b), (c)), \
-__ch (__un_args_eq (vector unsigned short, (a)), \
- __builtin_altivec_stvehx ((vector signed short) (a), (b), (c)), \
-__ch (__un_args_eq (vector signed short, (a)), \
- __builtin_altivec_stvehx ((vector signed short) (a), (b), (c)), \
-__ch (__un_args_eq (vector unsigned int, (a)), \
- __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
-__ch (__un_args_eq (vector signed int, (a)), \
- __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
-__ch (__un_args_eq (vector float, (a)), \
- __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
- __altivec_link_error_invalid_argument ())))))))
+__ch (__bin_args_eq (__vector unsigned char, (a), unsigned char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector signed char, (a), signed char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __bool char, (a), unsigned char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __bool char, (a), signed char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector unsigned short, (a), unsigned short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector signed short, (a), short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __bool short, (a), unsigned short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __bool short, (a), short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __pixel, (a), unsigned short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __pixel, (a), short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector unsigned int, (a), unsigned int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector signed int, (a), int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __bool int, (a), unsigned int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector __bool int, (a), int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
+__ch (__bin_args_eq (__vector float, (a), float, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \
+ __builtin_altivec_compiletime_error ("vec_ste"))))))))))))))))
#define vec_stvewx(a, b, c) \
-__ch (__un_args_eq (vector unsigned int, (a)), \
- __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
-__ch (__un_args_eq (vector signed int, (a)), \
- __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
-__ch (__un_args_eq (vector float, (a)), \
- __builtin_altivec_stvewx ((vector signed int) (a), (b), (c)), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector unsigned int, (a), unsigned int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector signed int, (a), int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __bool int, (a), unsigned int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __bool int, (a), int, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector float, (a), float, *(c)), \
+ __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \
+__builtin_altivec_compiletime_error ("vec_stvewx"))))))
#define vec_stvehx(a, b, c) \
-__ch (__un_args_eq (vector unsigned short, (a)), \
- __builtin_altivec_stvehx ((vector signed short) (a), (b), (c)), \
-__ch (__un_args_eq (vector signed short, (a)), \
- __builtin_altivec_stvehx ((vector signed short) (a), (b), (c)), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector unsigned short, (a), unsigned short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector signed short, (a), short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __bool short, (a), unsigned short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __bool short, (a), short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __pixel, (a), unsigned short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __pixel, (a), short, *(c)), \
+ __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \
+__builtin_altivec_compiletime_error ("vec_stvehx")))))))
#define vec_stvebx(a, b, c) \
-__ch (__un_args_eq (vector unsigned char, (a)), \
- __builtin_altivec_stvebx ((vector signed char) (a), (b), (c)), \
-__ch (__un_args_eq (vector signed char, (a)), \
- __builtin_altivec_stvebx ((vector signed char) (a), (b), (c)), \
-__altivec_link_error_invalid_argument ()))
+__ch (__bin_args_eq (__vector unsigned char, (a), unsigned char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector signed char, (a), signed char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __bool char, (a), unsigned char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
+__ch (__bin_args_eq (__vector __bool char, (a), signed char, *(c)), \
+ __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \
+__builtin_altivec_compiletime_error ("vec_stvebx")))))
#define vec_sub(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vsubfp ((vector float) (a1), (vector float) (a2))), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubuwm ((__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_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vsubfp ((__vector float) (a1), (__vector float) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sub"))))))))))))))))))))
#define vec_vsubfp(a1, a2) \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- ((vector float) __builtin_altivec_vsubfp ((vector float) (a1), (vector float) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vsubfp ((__vector float) (a1), (__vector float) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubfp"))
#define vec_vsubuwm(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuwm ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubuwm ((__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_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubuwm")))))))
#define vec_vsubuhm(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhm ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubuhm")))))))
#define vec_vsububm(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububm ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ()))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsububm")))))))
#define vec_subc(a1, a2) \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubcuw ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubcuw ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_subc"))
#define vec_subs(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vsubsbs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vsubshs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuws ((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_vsubsws ((vector signed int) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ()))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubsws ((__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_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_subs")))))))))))))))))))
#define vec_vsubsws(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsubsws ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsubsws ((__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_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubsws"))))
#define vec_vsubuws(a1, a2) \
-__ch (__bin_args_eq (vector signed int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector signed int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsubuws ((vector signed int) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubuws"))))
#define vec_vsubshs(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \
- ((vector signed short) __builtin_altivec_vsubshs ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubshs"))))
#define vec_vsubuhs(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector signed short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \
- ((vector unsigned short) __builtin_altivec_vsubuhs ((vector signed short) (a1), (vector signed short) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubuhs"))))
#define vec_vsubsbs(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
- ((vector signed char) __builtin_altivec_vsubsbs ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsubsbs"))))
#define vec_vsububs(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector signed char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
- ((vector unsigned char) __builtin_altivec_vsububs ((vector signed char) (a1), (vector signed char) (a2))), \
-__altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsububs"))))
#define vec_sum4s(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) (a1), (vector signed int) (a2))), \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsum4shs ((vector signed short) (a1), (vector signed int) (a2))), \
- __altivec_link_error_invalid_argument ())))
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_sum4s"))))
#define vec_vsum4shs(a1, a2) \
-__ch (__bin_args_eq (vector signed short, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsum4shs ((vector signed short) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsum4shs"))
#define vec_vsum4sbs(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector signed int, (a2)), \
- ((vector signed int) __builtin_altivec_vsum4sbs ((vector signed char) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsum4sbs"))
#define vec_vsum4ubs(a1, a2) \
-__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned int, (a2)), \
- ((vector unsigned int) __builtin_altivec_vsum4ubs ((vector signed char) (a1), (vector signed int) (a2))), \
-__altivec_link_error_invalid_argument ())
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_vsum4ubs"))
-#define vec_sum2s(a1, a2) __builtin_altivec_vsum2sws ((a1), (a2))
+#define vec_sum2s(a1, a2) \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsum2sws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_sum2s"))
-#define vec_sums(a1, a2) __builtin_altivec_vsumsws ((a1), (a2))
+#define vec_sums(a1, a2) \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vsumsws ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__builtin_altivec_compiletime_error ("vec_sums"))
-#define vec_trunc(a1) __builtin_altivec_vrfiz ((a1))
+#define vec_trunc(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ ((__vector float) __builtin_altivec_vrfiz ((__vector float) (a1))), \
+__builtin_altivec_compiletime_error ("vec_trunc"))
#define vec_unpackh(a1) \
-__ch (__un_args_eq (vector signed char, (a1)), \
- ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
-__ch (__un_args_eq (vector unsigned short, (a1)), \
- ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
-__ch (__un_args_eq (vector signed short, (a1)), \
- ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
- __altivec_link_error_invalid_argument ())))
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ ((__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ ((__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) (a1))), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ ((__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ ((__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_unpackh"))))))
#define vec_vupkhsh(a1) \
-__ch (__un_args_eq (vector signed short, (a1)), \
- ((vector signed int) __builtin_altivec_vupkhsh ((vector signed short) (a1))), \
-__altivec_link_error_invalid_argument ())
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ ((__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ ((__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \
+__builtin_altivec_compiletime_error ("vec_vupkhsh")))
#define vec_vupkhpx(a1) \
-__ch (__un_args_eq (vector unsigned short, (a1)), \
- ((vector unsigned int) __builtin_altivec_vupkhpx ((vector signed short) (a1))), \
-__altivec_link_error_invalid_argument ())
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) (a1))), \
+__builtin_altivec_compiletime_error ("vec_vupkhpx"))
#define vec_vupkhsb(a1) \
-__ch (__un_args_eq (vector signed char, (a1)), \
- ((vector signed short) __builtin_altivec_vupkhsb ((vector signed char) (a1))), \
-__altivec_link_error_invalid_argument ())
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ ((__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ ((__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \
+__builtin_altivec_compiletime_error ("vec_vupkhsb")))
#define vec_unpackl(a1) \
-__ch (__un_args_eq (vector signed char, (a1)), \
- ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
-__ch (__un_args_eq (vector unsigned short, (a1)), \
- ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
-__ch (__un_args_eq (vector signed short, (a1)), \
- ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
- __altivec_link_error_invalid_argument ())))
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ ((__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ ((__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) (a1))), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ ((__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ ((__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
+ __builtin_altivec_compiletime_error ("vec_unpackl"))))))
#define vec_vupklsh(a1) \
-__ch (__un_args_eq (vector signed short, (a1)), \
- ((vector signed int) __builtin_altivec_vupklsh ((vector signed short) (a1))), \
-__altivec_link_error_invalid_argument ())
+__ch (__un_args_eq (__vector __bool short, (a1)), \
+ ((__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
+__ch (__un_args_eq (__vector signed short, (a1)), \
+ ((__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \
+__builtin_altivec_compiletime_error ("vec_vupklsh")))
#define vec_vupklpx(a1) \
-__ch (__un_args_eq (vector unsigned short, (a1)), \
- ((vector unsigned int) __builtin_altivec_vupklpx ((vector signed short) (a1))), \
-__altivec_link_error_invalid_argument ())
+__ch (__un_args_eq (__vector __pixel, (a1)), \
+ ((__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) (a1))), \
+__builtin_altivec_compiletime_error ("vec_vupklpx"))
#define vec_vupklsb(a1) \
-__ch (__un_args_eq (vector signed char, (a1)), \
- ((vector signed short) __builtin_altivec_vupklsb ((vector signed char) (a1))), \
-__altivec_link_error_invalid_argument ())
+__ch (__un_args_eq (__vector __bool char, (a1)), \
+ ((__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
+__ch (__un_args_eq (__vector signed char, (a1)), \
+ ((__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \
+__builtin_altivec_compiletime_error ("vec_vupklsb")))
#define vec_xor(a1, a2) \
-__ch (__bin_args_eq (vector float, ((a1)), vector float, ((a2))), \
- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector float, ((a1)), vector unsigned int, ((a2))), \
- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), vector float, ((a2))), \
- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), vector float, ((a2))), \
- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector float, ((a1)), vector signed int, ((a2))), \
- ((vector float) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), vector signed int, ((a2))), \
- ((vector signed int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed int, ((a1)), vector unsigned int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), vector signed int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned int, ((a1)), vector unsigned int, ((a2))), \
- ((vector unsigned int) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
- ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed short, ((a1)), vector signed short, ((a2))), \
- ((vector signed short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed short, ((a1)), vector unsigned short, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), vector signed short, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned short, ((a1)), vector unsigned short, ((a2))), \
- ((vector unsigned short) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), vector unsigned char, ((a2))), \
- ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((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)))), \
-__ch (__bin_args_eq (vector signed char, ((a1)), vector signed char, ((a2))), \
- ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), vector unsigned char, ((a2))), \
- ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector signed char, ((a1)), vector unsigned char, ((a2))), \
- ((vector signed char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
-__ch (__bin_args_eq (vector unsigned char, ((a1)), vector signed char, ((a2))), \
- ((vector unsigned char) __builtin_altivec_vxor ((vector signed int) ((a1)), (vector signed int) ((a2)))), \
- __altivec_link_error_invalid_argument ())))))))))))))))))))))))
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \
+ ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \
+ ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \
+ ((__vector __bool int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \
+ ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ ((__vector __bool short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \
+ ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \
+ ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ ((__vector __bool char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \
+ ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \
+ ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \
+ __builtin_altivec_compiletime_error ("vec_xor")))))))))))))))))))))))))
/* Predicates. */
#define vec_all_eq(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpequw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- __builtin_altivec_vcmpeqfp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_eq"))))))))))))))))))))))))
#define vec_all_ge(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a2), (vector signed int) (a1)), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a1), (vector float) (a2)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_ge"))))))))))))))))))))
#define vec_all_gt(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a1), (vector signed int) (a2)), \
-__ch (__bin_args_eq (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 (__CR6_EQ, (a1), (a2))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_gt"))))))))))))))))))))
+
+#define vec_all_in(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpbfp_p (__CR6_EQ, (a1), (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_in"))
#define vec_all_le(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
-__ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
- __builtin_altivec_vcmpgefp_p (__CR6_LT, (vector float) (a2), (vector float) (a1)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_LT, (__vector float) (a2), (__vector float) (a1)), \
+ __builtin_altivec_compiletime_error ("vec_all_le"))))))))))))))))))))
#define vec_all_lt(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgtsw_p (__CR6_LT, (vector signed int) (a2), (vector signed int) (a1)), \
-__ch (__bin_args_eq (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 (__CR6_EQ, (a1), (a1))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_LT, (__vector float) (a2), (__vector float) (a1)), \
+ __builtin_altivec_compiletime_error ("vec_all_lt"))))))))))))))))))))
+
+#define vec_all_nan(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (a1), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_all_nan"))
#define vec_all_ne(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpequw_p (__CR6_EQ, (vector signed int) (a1), (vector signed int) (a2)), \
-__ch (__bin_args_eq (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 (__CR6_EQ, (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 (__CR6_EQ, (a2), (a1))
-
-#define vec_all_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a2), (a1))
-
-#define vec_all_numeric(a1) __builtin_altivec_vcmpeqfp_p (__CR6_LT, (a1), (a1))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_ne"))))))))))))))))))))))))
+
+#define vec_all_nge(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a1), (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_nge"))
+
+#define vec_all_ngt(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a1), (a2)), \
+ __builtin_altivec_compiletime_error ("vec_all_ngt"))
+
+#define vec_all_nle(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a2), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_all_nle"))
+
+#define vec_all_nlt(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a2), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_all_nlt"))
+
+#define vec_all_numeric(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_LT, (a1), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_all_numeric"))
#define vec_any_eq(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (vector float) (a1), (vector float) (a2)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_eq"))))))))))))))))))))))))
#define vec_any_ge(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (vector float) (a1), (vector float) (a2)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_ge"))))))))))))))))))))
#define vec_any_gt(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (vector float) (a1), (vector float) (a2)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_gt"))))))))))))))))))))
#define vec_any_le(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (vector float) (a2), (vector float) (a1)), \
- __altivec_link_error_invalid_argument ())))))))))))))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (__vector float) (a2), (__vector float) (a1)), \
+ __builtin_altivec_compiletime_error ("vec_any_le"))))))))))))))))))))
#define vec_any_lt(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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 (__CR6_LT_REV, a1, a1)
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \
+__ch (__bin_args_eq (__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 __bool short, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \
+__ch (__bin_args_eq (__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 __bool int, (a1), __vector unsigned 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 __bool 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)), \
+ __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__vector __bool 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 signed int, (a1), __vector __bool int, (a2)), \
+ __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \
+__ch (__bin_args_eq (__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)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (__vector float) (a2), (__vector float) (a1)), \
+ __builtin_altivec_compiletime_error ("vec_any_lt"))))))))))))))))))))
+
+#define vec_any_nan(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (a1), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_any_nan"))
#define vec_any_ne(a1, a2) \
-__ch (__bin_args_eq (vector signed char, (a1), vector unsigned 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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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)), \
- __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 (__CR6_LT_REV, (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 (__CR6_LT_REV, (a2), (a1))
-
-#define vec_any_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a2), (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 (__CR6_EQ_REV, (a1), (a2))
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \
+ __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \
+ __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool 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 __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \
+__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool 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)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (__vector float) (a1), (__vector float) (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_ne"))))))))))))))))))))))))
+
+#define vec_any_nge(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a1), (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_nge"))
+
+#define vec_any_ngt(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a1), (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_ngt"))
+
+#define vec_any_nle(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a2), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_any_nle"))
+
+#define vec_any_nlt(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a2), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_any_nlt"))
+
+#define vec_any_numeric(a1) \
+__ch (__un_args_eq (__vector float, (a1)), \
+ __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (a1), (a1)), \
+ __builtin_altivec_compiletime_error ("vec_any_numeric"))
+
+#define vec_any_out(a1, a2) \
+__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
+ __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, (a1), (a2)), \
+ __builtin_altivec_compiletime_error ("vec_any_out"))
#endif /* __cplusplus */
diff --git a/contrib/gcc/config/rs6000/altivec.md b/contrib/gcc/config/rs6000/altivec.md
index db341cb..505a573 100644
--- a/contrib/gcc/config/rs6000/altivec.md
+++ b/contrib/gcc/config/rs6000/altivec.md
@@ -594,9 +594,9 @@
;; Fused multiply subtract
(define_insn "altivec_vnmsubfp"
[(set (match_operand:V4SF 0 "register_operand" "=v")
- (minus:V4SF (mult:V4SF (match_operand:V4SF 1 "register_operand" "v")
+ (neg:V4SF (minus:V4SF (mult:V4SF (match_operand:V4SF 1 "register_operand" "v")
(match_operand:V4SF 2 "register_operand" "v"))
- (match_operand:V4SF 3 "register_operand" "v")))]
+ (match_operand:V4SF 3 "register_operand" "v"))))]
"TARGET_ALTIVEC"
"vnmsubfp %0,%1,%2,%3"
[(set_attr "type" "vecfloat")])
diff --git a/contrib/gcc/config/rs6000/beos.h b/contrib/gcc/config/rs6000/beos.h
index 1ce36bf..a9e88ac 100644
--- a/contrib/gcc/config/rs6000/beos.h
+++ b/contrib/gcc/config/rs6000/beos.h
@@ -23,18 +23,6 @@
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (BeOS/PowerPC)");
-/* Enable AIX XL compiler calling convention breakage compatibility. */
-#define MASK_XL_CALL 0x40000000
-#define TARGET_XL_CALL (target_flags & MASK_XL_CALL)
-#undef SUBTARGET_SWITCHES
-#define SUBTARGET_SWITCHES \
- {"xl-call", MASK_XL_CALL, \
- N_("Always pass floating-point arguments in memory") }, \
- {"no-xl-call", - MASK_XL_CALL, \
- N_("Don't always pass floating-point arguments in memory") }, \
- {"threads", 0}, \
- {"pe", 0},
-
#undef ASM_SPEC
#define ASM_SPEC "-u %(asm_cpu)"
diff --git a/contrib/gcc/config/rs6000/darwin-ldouble-shared.c b/contrib/gcc/config/rs6000/darwin-ldouble-shared.c
new file mode 100644
index 0000000..8ceea0a
--- /dev/null
+++ b/contrib/gcc/config/rs6000/darwin-ldouble-shared.c
@@ -0,0 +1,2 @@
+#define IN_LIBGCC2_S 1
+#include "darwin-ldouble.c"
diff --git a/contrib/gcc/config/rs6000/darwin-ldouble.c b/contrib/gcc/config/rs6000/darwin-ldouble.c
index 3174ebb..210f2d6 100644
--- a/contrib/gcc/config/rs6000/darwin-ldouble.c
+++ b/contrib/gcc/config/rs6000/darwin-ldouble.c
@@ -1,5 +1,5 @@
/* 128-bit long double support routines for Darwin.
- Copyright (C) 1993, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -48,7 +48,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
This code currently assumes big-endian. */
-#if !_SOFT_FLOAT && (defined (__MACH__) || defined (__powerpc64__))
+#if !_SOFT_FLOAT && (defined (__MACH__) || defined (__powerpc64__) || defined (_AIX))
#define fabs(x) __builtin_fabs(x)
@@ -58,10 +58,27 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
but GCC currently generates poor code when a union is used to turn
a long double into a pair of doubles. */
-extern long double _xlqadd (double, double, double, double);
-extern long double _xlqsub (double, double, double, double);
-extern long double _xlqmul (double, double, double, double);
-extern long double _xlqdiv (double, double, double, double);
+extern long double __gcc_qadd (double, double, double, double);
+extern long double __gcc_qsub (double, double, double, double);
+extern long double __gcc_qmul (double, double, double, double);
+extern long double __gcc_qdiv (double, double, double, double);
+
+#if defined __ELF__ && defined IN_LIBGCC2_S
+/* Provide definitions of the old symbol names to statisfy apps and
+ shared libs built against an older libgcc. To access the _xlq
+ symbols an explicit version reference is needed, so these won't
+ satisfy an unadorned reference like _xlqadd. If dot symbols are
+ not needed, the assembler will remove the aliases from the symbol
+ table. */
+__asm__ (".symver __gcc_qadd,_xlqadd@GCC_3.4\n\t"
+ ".symver __gcc_qsub,_xlqsub@GCC_3.4\n\t"
+ ".symver __gcc_qmul,_xlqmul@GCC_3.4\n\t"
+ ".symver __gcc_qdiv,_xlqdiv@GCC_3.4\n\t"
+ ".symver .__gcc_qadd,._xlqadd@GCC_3.4\n\t"
+ ".symver .__gcc_qsub,._xlqsub@GCC_3.4\n\t"
+ ".symver .__gcc_qmul,._xlqmul@GCC_3.4\n\t"
+ ".symver .__gcc_qdiv,._xlqdiv@GCC_3.4");
+#endif
typedef union
{
@@ -73,7 +90,7 @@ static const double FPKINF = 1.0/0.0;
/* Add two 'long double' values and return the result. */
long double
-_xlqadd (double a, double b, double c, double d)
+__gcc_qadd (double a, double b, double c, double d)
{
longDblUnion z;
double t, tau, u, FPR_zero, FPR_PosInf;
@@ -132,13 +149,13 @@ _xlqadd (double a, double b, double c, double d)
}
long double
-_xlqsub (double a, double b, double c, double d)
+__gcc_qsub (double a, double b, double c, double d)
{
- return _xlqadd (a, b, -c, -d);
+ return __gcc_qadd (a, b, -c, -d);
}
long double
-_xlqmul (double a, double b, double c, double d)
+__gcc_qmul (double a, double b, double c, double d)
{
longDblUnion z;
double t, tau, u, v, w, FPR_zero, FPR_PosInf;
@@ -169,7 +186,7 @@ _xlqmul (double a, double b, double c, double d)
}
long double
-_xlqdiv (double a, double b, double c, double d)
+__gcc_qdiv (double a, double b, double c, double d)
{
longDblUnion z;
double s, sigma, t, tau, u, v, w, FPR_zero, FPR_PosInf;
diff --git a/contrib/gcc/config/rs6000/darwin.h b/contrib/gcc/config/rs6000/darwin.h
index 62ed74c..cae8bac 100644
--- a/contrib/gcc/config/rs6000/darwin.h
+++ b/contrib/gcc/config/rs6000/darwin.h
@@ -111,6 +111,13 @@ do { \
#define SUBTARGET_EXTRA_SPECS \
{ "darwin_arch", "ppc" },
+/* The "-faltivec" option should have been called "-maltivec" all along. */
+#define SUBTARGET_OPTION_TRANSLATE_TABLE \
+ { "-faltivec", "-maltivec -include altivec.h" }, \
+ { "-fno-altivec", "-mno-altivec" }, \
+ { "-Waltivec-long-deprecated", "-mwarn-altivec-long" }, \
+ { "-Wno-altivec-long-deprecated", "-mno-warn-altivec-long" }
+
/* Make both r2 and r3 available for allocation. */
#define FIXED_R2 0
#define FIXED_R13 0
diff --git a/contrib/gcc/config/rs6000/eabi.asm b/contrib/gcc/config/rs6000/eabi.asm
index 058f9b9..c7876bc 100644
--- a/contrib/gcc/config/rs6000/eabi.asm
+++ b/contrib/gcc/config/rs6000/eabi.asm
@@ -252,7 +252,7 @@ FUNC_START(__eabi_convert)
.Lcvt:
lwzu 6,4(3) /* pointer to convert */
- cmpi 0,6,0
+ cmpwi 0,6,0
beq- .Lcvt2 /* if pointer is null, don't convert */
add 6,6,12 /* convert pointer */
diff --git a/contrib/gcc/config/rs6000/libgcc-ppc64.ver b/contrib/gcc/config/rs6000/libgcc-ppc64.ver
index 116d5e7..b27b4b4 100644
--- a/contrib/gcc/config/rs6000/libgcc-ppc64.ver
+++ b/contrib/gcc/config/rs6000/libgcc-ppc64.ver
@@ -1,7 +1,7 @@
-GCC_3.4 {
+GCC_3.4.4 {
# long double support
- _xlqadd
- _xlqsub
- _xlqmul
- _xlqdiv
+ __gcc_qadd
+ __gcc_qsub
+ __gcc_qmul
+ __gcc_qdiv
}
diff --git a/contrib/gcc/config/rs6000/linux-unwind.h b/contrib/gcc/config/rs6000/linux-unwind.h
new file mode 100644
index 0000000..842fd10
--- /dev/null
+++ b/contrib/gcc/config/rs6000/linux-unwind.h
@@ -0,0 +1,322 @@
+/* DWARF2 EH unwinding support for PowerPC and PowerPC64 Linux.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ In addition to the permissions in the GNU General Public License,
+ the Free Software Foundation gives you unlimited permission to link
+ the compiled version of this file with other programs, and to
+ distribute those programs without any restriction coming from the
+ use of this file. (The General Public License restrictions do
+ apply in other respects; for example, they cover modification of
+ the file, and distribution when not linked into another program.)
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA. */
+
+/* This file defines our own versions of various kernel and user
+ structs, so that system headers are not needed, which otherwise
+ can make bootstrapping a new toolchain difficult. Do not use
+ these structs elsewhere; Many fields are missing, particularly
+ from the end of the structures. */
+
+struct gcc_vregs
+{
+ __attribute__ ((vector_size (16))) int vr[32];
+#ifdef __powerpc64__
+ unsigned int pad1[3];
+ unsigned int vscr;
+ unsigned int vsave;
+ unsigned int pad2[3];
+#else
+ unsigned int vsave;
+ unsigned int pad[2];
+ unsigned int vscr;
+#endif
+};
+
+struct gcc_regs
+{
+ unsigned long gpr[32];
+ unsigned long nip;
+ unsigned long msr;
+ unsigned long orig_gpr3;
+ unsigned long ctr;
+ unsigned long link;
+ unsigned long xer;
+ unsigned long ccr;
+ unsigned long softe;
+ unsigned long trap;
+ unsigned long dar;
+ unsigned long dsisr;
+ unsigned long result;
+ unsigned long pad1[4];
+ double fpr[32];
+ unsigned int pad2;
+ unsigned int fpscr;
+#ifdef __powerpc64__
+ struct gcc_vregs *vp;
+#else
+ unsigned int pad3[2];
+#endif
+ struct gcc_vregs vregs;
+};
+
+struct gcc_ucontext
+{
+#ifdef __powerpc64__
+ unsigned long pad[28];
+#else
+ unsigned long pad[12];
+#endif
+ struct gcc_regs *regs;
+ struct gcc_regs rsave;
+};
+
+#ifdef __powerpc64__
+
+enum { SIGNAL_FRAMESIZE = 128 };
+
+/* If the current unwind info (FS) does not contain explicit info
+ saving R2, then we have to do a minor amount of code reading to
+ figure out if it was saved. The big problem here is that the
+ code that does the save/restore is generated by the linker, so
+ we have no good way to determine at compile time what to do. */
+
+#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \
+ do { \
+ if ((FS)->regs.reg[2].how == REG_UNSAVED) \
+ { \
+ unsigned int *insn \
+ = (unsigned int *) \
+ _Unwind_GetGR ((CTX), LINK_REGISTER_REGNUM); \
+ if (*insn == 0xE8410028) \
+ _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \
+ } \
+ } while (0)
+
+/* If PC is at a sigreturn trampoline, return a pointer to the
+ regs. Otherwise return NULL. */
+
+#define PPC_LINUX_GET_REGS(CONTEXT) \
+({ \
+ const unsigned char *pc = (CONTEXT)->ra; \
+ struct gcc_regs *regs = NULL; \
+ \
+ /* addi r1, r1, 128; li r0, 0x0077; sc (sigreturn) */ \
+ /* addi r1, r1, 128; li r0, 0x00AC; sc (rt_sigreturn) */ \
+ if (*(unsigned int *) (pc + 0) != 0x38210000 + SIGNAL_FRAMESIZE \
+ || *(unsigned int *) (pc + 8) != 0x44000002) \
+ ; \
+ else if (*(unsigned int *) (pc + 4) == 0x38000077) \
+ { \
+ struct sigframe { \
+ char gap[SIGNAL_FRAMESIZE]; \
+ unsigned long pad[7]; \
+ struct gcc_regs *regs; \
+ } *frame = (struct sigframe *) (CONTEXT)->cfa; \
+ regs = frame->regs; \
+ } \
+ else if (*(unsigned int *) (pc + 4) == 0x380000AC) \
+ { \
+ /* This works for 2.4 kernels, but not for 2.6 kernels with vdso \
+ because pc isn't pointing into the stack. Can be removed when \
+ no one is running 2.4.19 or 2.4.20, the first two ppc64 \
+ kernels released. */ \
+ struct rt_sigframe_24 { \
+ int tramp[6]; \
+ void *pinfo; \
+ struct gcc_ucontext *puc; \
+ } *frame24 = (struct rt_sigframe_24 *) pc; \
+ \
+ /* Test for magic value in *puc of vdso. */ \
+ if ((long) frame24->puc != -21 * 8) \
+ regs = frame24->puc->regs; \
+ else \
+ { \
+ /* This works for 2.4.21 and later kernels. */ \
+ struct rt_sigframe { \
+ char gap[SIGNAL_FRAMESIZE]; \
+ struct gcc_ucontext uc; \
+ unsigned long pad[2]; \
+ int tramp[6]; \
+ void *pinfo; \
+ struct gcc_ucontext *puc; \
+ } *frame = (struct rt_sigframe *) (CONTEXT)->cfa; \
+ regs = frame->uc.regs; \
+ } \
+ } \
+ regs; \
+})
+
+#define LINUX_HWCAP_DEFAULT 0xc0000000
+
+#define PPC_LINUX_VREGS(REGS) (REGS)->vp
+
+#else /* !__powerpc64__ */
+
+enum { SIGNAL_FRAMESIZE = 64 };
+
+#define PPC_LINUX_GET_REGS(CONTEXT) \
+({ \
+ const unsigned char *pc = (CONTEXT)->ra; \
+ struct gcc_regs *regs = NULL; \
+ \
+ /* li r0, 0x7777; sc (sigreturn old) */ \
+ /* li r0, 0x0077; sc (sigreturn new) */ \
+ /* li r0, 0x6666; sc (rt_sigreturn old) */ \
+ /* li r0, 0x00AC; sc (rt_sigreturn new) */ \
+ if (*(unsigned int *) (pc + 4) != 0x44000002) \
+ ; \
+ else if (*(unsigned int *) (pc + 0) == 0x38007777 \
+ || *(unsigned int *) (pc + 0) == 0x38000077) \
+ { \
+ struct sigframe { \
+ char gap[SIGNAL_FRAMESIZE]; \
+ unsigned long pad[7]; \
+ struct gcc_regs *regs; \
+ } *frame = (struct sigframe *) (CONTEXT)->cfa; \
+ regs = frame->regs; \
+ } \
+ else if (*(unsigned int *) (pc + 0) == 0x38006666 \
+ || *(unsigned int *) (pc + 0) == 0x380000AC) \
+ { \
+ struct rt_sigframe { \
+ char gap[SIGNAL_FRAMESIZE + 16]; \
+ char siginfo[128]; \
+ struct gcc_ucontext uc; \
+ } *frame = (struct rt_sigframe *) (CONTEXT)->cfa; \
+ regs = frame->uc.regs; \
+ } \
+ regs; \
+})
+
+#define LINUX_HWCAP_DEFAULT 0x80000000
+
+#define PPC_LINUX_VREGS(REGS) &(REGS)->vregs
+
+#endif
+
+/* Do code reading to identify a signal frame, and set the frame
+ state data appropriately. See unwind-dw2.c for the structs. */
+
+#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
+ do { \
+ static long hwcap = 0; \
+ struct gcc_regs *regs = PPC_LINUX_GET_REGS (CONTEXT); \
+ long new_cfa; \
+ int i; \
+ \
+ if (regs == NULL) \
+ break; \
+ \
+ new_cfa = regs->gpr[STACK_POINTER_REGNUM]; \
+ (FS)->cfa_how = CFA_REG_OFFSET; \
+ (FS)->cfa_reg = STACK_POINTER_REGNUM; \
+ (FS)->cfa_offset = new_cfa - (long) (CONTEXT)->cfa; \
+ \
+ for (i = 0; i < 32; i++) \
+ if (i != STACK_POINTER_REGNUM) \
+ { \
+ (FS)->regs.reg[i].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[i].loc.offset \
+ = (long) &regs->gpr[i] - new_cfa; \
+ } \
+ \
+ (FS)->regs.reg[CR2_REGNO].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[CR2_REGNO].loc.offset \
+ = (long) &regs->ccr - new_cfa; \
+ \
+ (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \
+ = (long) &regs->link - new_cfa; \
+ \
+ (FS)->regs.reg[ARG_POINTER_REGNUM].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[ARG_POINTER_REGNUM].loc.offset \
+ = (long) &regs->nip - new_cfa; \
+ (FS)->retaddr_column = ARG_POINTER_REGNUM; \
+ \
+ if (hwcap == 0) \
+ { \
+ /* __libc_stack_end holds the original stack passed to a \
+ process. */ \
+ extern long *__libc_stack_end; \
+ long argc; \
+ char **argv; \
+ char **envp; \
+ struct auxv \
+ { \
+ long a_type; \
+ long a_val; \
+ } *auxp; \
+ \
+ /* The Linux kernel puts argc first on the stack. */ \
+ argc = __libc_stack_end[0]; \
+ /* Followed by argv, NULL terminated. */ \
+ argv = (char **) __libc_stack_end + 1; \
+ /* Followed by environment string pointers, NULL terminated. */ \
+ envp = argv + argc + 1; \
+ while (*envp++) \
+ continue; \
+ /* Followed by the aux vector, zero terminated. */ \
+ for (auxp = (struct auxv *) envp; auxp->a_type != 0; ++auxp) \
+ if (auxp->a_type == 16) \
+ { \
+ hwcap = auxp->a_val; \
+ break; \
+ } \
+ \
+ /* These will already be set if we found AT_HWCAP. A non-zero \
+ value stops us looking again if for some reason we couldn't \
+ find AT_HWCAP. */ \
+ hwcap |= LINUX_HWCAP_DEFAULT; \
+ } \
+ \
+ /* If we have a FPU... */ \
+ if (hwcap & 0x08000000) \
+ for (i = 0; i < 32; i++) \
+ { \
+ (FS)->regs.reg[i + 32].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[i + 32].loc.offset \
+ = (long) &regs->fpr[i] - new_cfa; \
+ } \
+ \
+ /* If we have a VMX unit... */ \
+ if (hwcap & 0x10000000) \
+ { \
+ struct gcc_vregs *vregs; \
+ vregs = PPC_LINUX_VREGS (regs); \
+ if (regs->msr & (1 << 25)) \
+ { \
+ for (i = 0; i < 32; i++) \
+ { \
+ (FS)->regs.reg[i + FIRST_ALTIVEC_REGNO].how \
+ = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[i + FIRST_ALTIVEC_REGNO].loc.offset \
+ = (long) &vregs[i] - new_cfa; \
+ } \
+ \
+ (FS)->regs.reg[VSCR_REGNO].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[VSCR_REGNO].loc.offset \
+ = (long) &vregs->vscr - new_cfa; \
+ } \
+ \
+ (FS)->regs.reg[VRSAVE_REGNO].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[VRSAVE_REGNO].loc.offset \
+ = (long) &vregs->vsave - new_cfa; \
+ } \
+ \
+ goto SUCCESS; \
+ } while (0)
diff --git a/contrib/gcc/config/rs6000/linux.h b/contrib/gcc/config/rs6000/linux.h
index 009ac66..84cdeed 100644
--- a/contrib/gcc/config/rs6000/linux.h
+++ b/contrib/gcc/config/rs6000/linux.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for PowerPC machines running Linux.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Contributed by Michael Meissner (meissner@cygnus.com).
@@ -24,6 +24,14 @@
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
+/* Linux doesn't support saving and restoring 64-bit regs in a 32-bit
+ process. */
+#define OS_MISSING_POWERPC64 1
+
+/* glibc has float and long double forms of math functions. */
+#undef TARGET_C99_FUNCTIONS
+#define TARGET_C99_FUNCTIONS 1
+
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -86,94 +94,16 @@
#undef TARGET_64BIT
#define TARGET_64BIT 0
-/* We don't need to generate entries in .fixup. */
+/* We don't need to generate entries in .fixup, except when
+ -mrelocatable or -mrelocatable-lib is given. */
#undef RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP \
+ (target_flags & target_flags_explicit & MASK_RELOCATABLE)
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
#define TARGET_HAS_F_SETLKW
-/* Do code reading to identify a signal frame, and set the frame
- state data appropriately. See unwind-dw2.c for the structs. */
-
#ifdef IN_LIBGCC2
-#include <signal.h>
-
-/* During the 2.5 kernel series the kernel ucontext was changed, but
- the new layout is compatible with the old one, so we just define
- and use the old one here for simplicity and compatibility. */
-
-struct kernel_old_ucontext {
- unsigned long uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- struct sigcontext_struct uc_mcontext;
- sigset_t uc_sigmask;
-};
-
-enum { SIGNAL_FRAMESIZE = 64 };
+#include "config/rs6000/linux-unwind.h"
#endif
-
-#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
- do { \
- unsigned char *pc_ = (CONTEXT)->ra; \
- struct sigcontext *sc_; \
- long new_cfa_; \
- int i_; \
- \
- /* li r0, 0x7777; sc (sigreturn old) */ \
- /* li r0, 0x0077; sc (sigreturn new) */ \
- /* li r0, 0x6666; sc (rt_sigreturn old) */ \
- /* li r0, 0x00AC; sc (rt_sigreturn new) */ \
- if (*(unsigned int *) (pc_+4) != 0x44000002) \
- break; \
- if (*(unsigned int *) (pc_+0) == 0x38007777 \
- || *(unsigned int *) (pc_+0) == 0x38000077) \
- { \
- struct sigframe { \
- char gap[SIGNAL_FRAMESIZE]; \
- struct sigcontext sigctx; \
- } *rt_ = (CONTEXT)->cfa; \
- sc_ = &rt_->sigctx; \
- } \
- else if (*(unsigned int *) (pc_+0) == 0x38006666 \
- || *(unsigned int *) (pc_+0) == 0x380000AC) \
- { \
- struct rt_sigframe { \
- char gap[SIGNAL_FRAMESIZE]; \
- unsigned long _unused[2]; \
- struct siginfo *pinfo; \
- void *puc; \
- struct siginfo info; \
- struct kernel_old_ucontext uc; \
- } *rt_ = (CONTEXT)->cfa; \
- sc_ = &rt_->uc.uc_mcontext; \
- } \
- else \
- break; \
- \
- new_cfa_ = sc_->regs->gpr[STACK_POINTER_REGNUM]; \
- (FS)->cfa_how = CFA_REG_OFFSET; \
- (FS)->cfa_reg = STACK_POINTER_REGNUM; \
- (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \
- \
- for (i_ = 0; i_ < 32; i_++) \
- if (i_ != STACK_POINTER_REGNUM) \
- { \
- (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[i_].loc.offset \
- = (long)&(sc_->regs->gpr[i_]) - new_cfa_; \
- } \
- \
- (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \
- = (long)&(sc_->regs->link) - new_cfa_; \
- \
- (FS)->regs.reg[CR0_REGNO].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[CR0_REGNO].loc.offset \
- = (long)&(sc_->regs->nip) - new_cfa_; \
- (FS)->retaddr_column = CR0_REGNO; \
- goto SUCCESS; \
- } while (0)
-
-#define OS_MISSING_POWERPC64 1
diff --git a/contrib/gcc/config/rs6000/linux64.h b/contrib/gcc/config/rs6000/linux64.h
index 4fe4199..013e23a 100644
--- a/contrib/gcc/config/rs6000/linux64.h
+++ b/contrib/gcc/config/rs6000/linux64.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for 64 bit PowerPC linux.
- Copyright (C) 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GCC.
@@ -53,8 +53,11 @@
#undef PROCESSOR_DEFAULT64
#define PROCESSOR_DEFAULT64 PROCESSOR_PPC630
-#undef TARGET_RELOCATABLE
-#define TARGET_RELOCATABLE (!TARGET_64BIT && (target_flags & MASK_RELOCATABLE))
+/* We don't need to generate entries in .fixup, except when
+ -mrelocatable or -mrelocatable-lib is given. */
+#undef RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP \
+ (target_flags & target_flags_explicit & MASK_RELOCATABLE)
#undef RS6000_ABI_NAME
#define RS6000_ABI_NAME (TARGET_64BIT ? "aixdesc" : "sysv")
@@ -188,6 +191,8 @@
#define TARGET_EABI 0
#undef TARGET_PROTOTYPE
#define TARGET_PROTOTYPE 0
+#undef RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP 0
#endif
@@ -212,9 +217,6 @@
#define PROFILE_HOOK(LABEL) \
do { if (TARGET_64BIT) output_profile_hook (LABEL); } while (0)
-/* We don't need to generate entries in .fixup. */
-#undef RELOCATABLE_NEEDS_FIXUP
-
/* PowerPC64 Linux word-aligns FP doubles when -malign-power is given. */
#undef ADJUST_FIELD_ALIGN
#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \
@@ -287,6 +289,14 @@
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
+/* Linux doesn't support saving and restoring 64-bit regs in a 32-bit
+ process. */
+#define OS_MISSING_POWERPC64 !TARGET_64BIT
+
+/* glibc has float and long double forms of math functions. */
+#undef TARGET_C99_FUNCTIONS
+#define TARGET_C99_FUNCTIONS 1
+
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -541,182 +551,13 @@ while (0)
#undef DRAFT_V4_STRUCT_RET
#define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+#define TARGET_ASM_FILE_END rs6000_elf_end_indicate_exec_stack
#define TARGET_HAS_F_SETLKW
#define LINK_GCC_C_SEQUENCE_SPEC \
"%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
-/* Do code reading to identify a signal frame, and set the frame
- state data appropriately. See unwind-dw2.c for the structs. */
-
#ifdef IN_LIBGCC2
-#include <signal.h>
-#ifdef __powerpc64__
-#include <sys/ucontext.h>
-
-enum { SIGNAL_FRAMESIZE = 128 };
-
-#else
-
-/* During the 2.5 kernel series the kernel ucontext was changed, but
- the new layout is compatible with the old one, so we just define
- and use the old one here for simplicity and compatibility. */
-
-struct kernel_old_ucontext {
- unsigned long uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- struct sigcontext_struct uc_mcontext;
- sigset_t uc_sigmask;
-};
-enum { SIGNAL_FRAMESIZE = 64 };
+#include "config/rs6000/linux-unwind.h"
#endif
-
-#endif
-
-#ifdef __powerpc64__
-
-/* If the current unwind info (FS) does not contain explicit info
- saving R2, then we have to do a minor amount of code reading to
- figure out if it was saved. The big problem here is that the
- code that does the save/restore is generated by the linker, so
- we have no good way to determine at compile time what to do. */
-
-#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \
- do { \
- if ((FS)->regs.reg[2].how == REG_UNSAVED) \
- { \
- unsigned int *insn \
- = (unsigned int *) \
- _Unwind_GetGR ((CTX), LINK_REGISTER_REGNUM); \
- if (*insn == 0xE8410028) \
- _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \
- } \
- } while (0)
-
-#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
- do { \
- unsigned char *pc_ = (CONTEXT)->ra; \
- struct sigcontext *sc_; \
- long new_cfa_; \
- int i_; \
- \
- /* addi r1, r1, 128; li r0, 0x0077; sc (sigreturn) */ \
- /* addi r1, r1, 128; li r0, 0x00AC; sc (rt_sigreturn) */ \
- if (*(unsigned int *) (pc_+0) != 0x38210000 + SIGNAL_FRAMESIZE \
- || *(unsigned int *) (pc_+8) != 0x44000002) \
- break; \
- if (*(unsigned int *) (pc_+4) == 0x38000077) \
- { \
- struct sigframe { \
- char gap[SIGNAL_FRAMESIZE]; \
- struct sigcontext sigctx; \
- } *rt_ = (CONTEXT)->cfa; \
- sc_ = &rt_->sigctx; \
- } \
- else if (*(unsigned int *) (pc_+4) == 0x380000AC) \
- { \
- struct rt_sigframe { \
- int tramp[6]; \
- struct siginfo *pinfo; \
- struct ucontext *puc; \
- } *rt_ = (struct rt_sigframe *) pc_; \
- sc_ = &rt_->puc->uc_mcontext; \
- } \
- else \
- break; \
- \
- new_cfa_ = sc_->regs->gpr[STACK_POINTER_REGNUM]; \
- (FS)->cfa_how = CFA_REG_OFFSET; \
- (FS)->cfa_reg = STACK_POINTER_REGNUM; \
- (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \
- \
- for (i_ = 0; i_ < 32; i_++) \
- if (i_ != STACK_POINTER_REGNUM) \
- { \
- (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[i_].loc.offset \
- = (long)&(sc_->regs->gpr[i_]) - new_cfa_; \
- } \
- \
- (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \
- = (long)&(sc_->regs->link) - new_cfa_; \
- \
- (FS)->regs.reg[ARG_POINTER_REGNUM].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[ARG_POINTER_REGNUM].loc.offset \
- = (long)&(sc_->regs->nip) - new_cfa_; \
- (FS)->retaddr_column = ARG_POINTER_REGNUM; \
- goto SUCCESS; \
- } while (0)
-
-#else
-
-#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
- do { \
- unsigned char *pc_ = (CONTEXT)->ra; \
- struct sigcontext *sc_; \
- long new_cfa_; \
- int i_; \
- \
- /* li r0, 0x7777; sc (sigreturn old) */ \
- /* li r0, 0x0077; sc (sigreturn new) */ \
- /* li r0, 0x6666; sc (rt_sigreturn old) */ \
- /* li r0, 0x00AC; sc (rt_sigreturn new) */ \
- if (*(unsigned int *) (pc_+4) != 0x44000002) \
- break; \
- if (*(unsigned int *) (pc_+0) == 0x38007777 \
- || *(unsigned int *) (pc_+0) == 0x38000077) \
- { \
- struct sigframe { \
- char gap[SIGNAL_FRAMESIZE]; \
- struct sigcontext sigctx; \
- } *rt_ = (CONTEXT)->cfa; \
- sc_ = &rt_->sigctx; \
- } \
- else if (*(unsigned int *) (pc_+0) == 0x38006666 \
- || *(unsigned int *) (pc_+0) == 0x380000AC) \
- { \
- struct rt_sigframe { \
- char gap[SIGNAL_FRAMESIZE]; \
- unsigned long _unused[2]; \
- struct siginfo *pinfo; \
- void *puc; \
- struct siginfo info; \
- struct kernel_old_ucontext uc; \
- } *rt_ = (CONTEXT)->cfa; \
- sc_ = &rt_->uc.uc_mcontext; \
- } \
- else \
- break; \
- \
- new_cfa_ = sc_->regs->gpr[STACK_POINTER_REGNUM]; \
- (FS)->cfa_how = CFA_REG_OFFSET; \
- (FS)->cfa_reg = STACK_POINTER_REGNUM; \
- (FS)->cfa_offset = new_cfa_ - (long) (CONTEXT)->cfa; \
- \
- for (i_ = 0; i_ < 32; i_++) \
- if (i_ != STACK_POINTER_REGNUM) \
- { \
- (FS)->regs.reg[i_].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[i_].loc.offset \
- = (long)&(sc_->regs->gpr[i_]) - new_cfa_; \
- } \
- \
- (FS)->regs.reg[LINK_REGISTER_REGNUM].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \
- = (long)&(sc_->regs->link) - new_cfa_; \
- \
- (FS)->regs.reg[CR0_REGNO].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[CR0_REGNO].loc.offset \
- = (long)&(sc_->regs->nip) - new_cfa_; \
- (FS)->retaddr_column = CR0_REGNO; \
- goto SUCCESS; \
- } while (0)
-
-#endif
-
-
-#define OS_MISSING_POWERPC64 !TARGET_64BIT
diff --git a/contrib/gcc/config/rs6000/rs6000-c.c b/contrib/gcc/config/rs6000/rs6000-c.c
index a47afee..13d0ca6 100644
--- a/contrib/gcc/config/rs6000/rs6000-c.c
+++ b/contrib/gcc/config/rs6000/rs6000-c.c
@@ -62,13 +62,13 @@ rs6000_pragma_longcall (cpp_reader *pfile ATTRIBUTE_UNUSED)
if (c_lex (&x) != CPP_CLOSE_PAREN)
SYNTAX_ERROR ("missing close paren");
- if (n != integer_zero_node && n != integer_one_node)
+ if (!integer_zerop (n) && !integer_onep (n))
SYNTAX_ERROR ("number must be 0 or 1");
if (c_lex (&x) != CPP_EOF)
warning ("junk at end of #pragma longcall");
- rs6000_default_long_calls = (n == integer_one_node);
+ rs6000_default_long_calls = integer_onep (n);
}
/* Handle defining many CPP flags based on TARGET_xxx. As a general
@@ -92,7 +92,15 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfile)
if (! TARGET_POWER && ! TARGET_POWER2 && ! TARGET_POWERPC)
builtin_define ("_ARCH_COM");
if (TARGET_ALTIVEC)
- builtin_define ("__ALTIVEC__");
+ {
+ builtin_define ("__ALTIVEC__");
+ builtin_define ("__VEC__=10206");
+
+ /* Define the AltiVec syntactic elements. */
+ builtin_define ("__vector=__attribute__((altivec(vector__)))");
+ builtin_define ("__pixel=__attribute__((altivec(pixel__))) unsigned short");
+ builtin_define ("__bool=__attribute__((altivec(bool__))) unsigned");
+ }
if (TARGET_SPE)
builtin_define ("__SPE__");
if (TARGET_SOFT_FLOAT)
diff --git a/contrib/gcc/config/rs6000/rs6000-protos.h b/contrib/gcc/config/rs6000/rs6000-protos.h
index acac75a..3d17162 100644
--- a/contrib/gcc/config/rs6000/rs6000-protos.h
+++ b/contrib/gcc/config/rs6000/rs6000-protos.h
@@ -116,7 +116,7 @@ extern enum rtx_code rs6000_reverse_condition (enum machine_mode,
extern void rs6000_emit_sCOND (enum rtx_code, rtx);
extern void rs6000_emit_cbranch (enum rtx_code, rtx);
extern char * output_cbranch (rtx, const char *, int, rtx);
-extern char * output_e500_flip_gt_bit (rtx, rtx);
+extern char * output_e500_flip_eq_bit (rtx, rtx);
extern rtx rs6000_emit_set_const (rtx, enum machine_mode, rtx, int);
extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx);
extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx);
diff --git a/contrib/gcc/config/rs6000/rs6000.c b/contrib/gcc/config/rs6000/rs6000.c
index 33f47ce..1ffd4da 100644
--- a/contrib/gcc/config/rs6000/rs6000.c
+++ b/contrib/gcc/config/rs6000/rs6000.c
@@ -1,6 +1,6 @@
/* Subroutines used for code generation on IBM RS/6000.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC.
@@ -220,6 +220,20 @@ static GTY(()) tree opaque_V2SI_type_node;
static GTY(()) tree opaque_V2SF_type_node;
static GTY(()) tree opaque_p_V2SI_type_node;
+/* AltiVec requires a few more basic types in addition to the vector
+ types already defined in tree.c. */
+static GTY(()) tree bool_char_type_node; /* __bool char */
+static GTY(()) tree bool_short_type_node; /* __bool short */
+static GTY(()) tree bool_int_type_node; /* __bool int */
+static GTY(()) tree pixel_type_node; /* __pixel */
+static GTY(()) tree bool_V16QI_type_node; /* __vector __bool char */
+static GTY(()) tree bool_V8HI_type_node; /* __vector __bool short */
+static GTY(()) tree bool_V4SI_type_node; /* __vector __bool int */
+static GTY(()) tree pixel_V8HI_type_node; /* __vector __pixel */
+
+int rs6000_warn_altivec_long = 1; /* On by default. */
+const char *rs6000_warn_altivec_long_switch;
+
const char *rs6000_traceback_name;
static enum {
traceback_default = 0,
@@ -238,7 +252,8 @@ static GTY(()) int rs6000_sr_alias_set;
/* Call distance, overridden by -mlongcall and #pragma longcall(1).
The only place that looks at this is rs6000_set_default_type_attributes;
everywhere else should rely on the presence or absence of a longcall
- attribute on the function declaration. */
+ attribute on the function declaration. Exception: init_cumulative_args
+ looks at it too, for libcalls. */
int rs6000_default_long_calls;
const char *rs6000_longcall_switch;
@@ -290,6 +305,8 @@ static void rs6000_assemble_visibility (tree, int);
#endif
static int rs6000_ra_ever_killed (void);
static tree rs6000_handle_longcall_attribute (tree *, tree, tree, int, bool *);
+static tree rs6000_handle_altivec_attribute (tree *, tree, tree, int, bool *);
+static const char *rs6000_mangle_fundamental_type (tree);
extern const struct attribute_spec rs6000_attribute_table[];
static void rs6000_set_default_type_attributes (tree);
static void rs6000_output_function_prologue (FILE *, HOST_WIDE_INT);
@@ -303,6 +320,7 @@ static void rs6000_file_start (void);
static unsigned int rs6000_elf_section_type_flags (tree, const char *, int);
static void rs6000_elf_asm_out_constructor (rtx, int);
static void rs6000_elf_asm_out_destructor (rtx, int);
+static void rs6000_elf_end_indicate_exec_stack (void) ATTRIBUTE_UNUSED;
static void rs6000_elf_select_section (tree, int, unsigned HOST_WIDE_INT);
static void rs6000_elf_unique_section (tree, int);
static void rs6000_elf_select_rtx_section (enum machine_mode, rtx,
@@ -398,8 +416,7 @@ static int rs6000_get_some_local_dynamic_name_1 (rtx *, void *);
static rtx rs6000_complex_function_value (enum machine_mode);
static rtx rs6000_spe_function_arg (CUMULATIVE_ARGS *,
enum machine_mode, tree);
-static rtx rs6000_mixed_function_arg (CUMULATIVE_ARGS *,
- enum machine_mode, tree, int);
+static rtx rs6000_mixed_function_arg (enum machine_mode, tree, int);
static void rs6000_move_block_from_reg (int regno, rtx x, int nregs);
static void setup_incoming_varargs (CUMULATIVE_ARGS *,
enum machine_mode, tree,
@@ -565,6 +582,9 @@ static const char alt_reg_names[][8] =
#undef TARGET_EXPAND_BUILTIN
#define TARGET_EXPAND_BUILTIN rs6000_expand_builtin
+#undef TARGET_MANGLE_FUNDAMENTAL_TYPE
+#define TARGET_MANGLE_FUNDAMENTAL_TYPE rs6000_mangle_fundamental_type
+
#undef TARGET_INIT_LIBFUNCS
#define TARGET_INIT_LIBFUNCS rs6000_init_libfuncs
@@ -735,9 +755,8 @@ rs6000_override_options (const char *default_cpu)
set_masks &= ~MASK_ALTIVEC;
#endif
- /* Don't override these by the processor default if given explicitly. */
- set_masks &= ~(target_flags_explicit
- & (MASK_MULTIPLE | MASK_STRING | MASK_SOFT_FLOAT));
+ /* Don't override by the processor default if given explicitly. */
+ set_masks &= ~target_flags_explicit;
/* Identify the processor type. */
rs6000_select[0].string = default_cpu;
@@ -923,6 +942,17 @@ rs6000_override_options (const char *default_cpu)
rs6000_default_long_calls = (base[0] != 'n');
}
+ /* Handle -m(no-)warn-altivec-long similarly. */
+ if (rs6000_warn_altivec_long_switch)
+ {
+ const char *base = rs6000_warn_altivec_long_switch;
+ while (base[-1] != 'm') base--;
+
+ if (*rs6000_warn_altivec_long_switch != '\0')
+ error ("invalid option `%s'", base);
+ rs6000_warn_altivec_long = (base[0] != 'n');
+ }
+
/* Handle -mprioritize-restricted-insns option. */
rs6000_sched_restricted_insns_priority
= (rs6000_sched_groups ? 1 : 0);
@@ -2972,13 +3002,9 @@ rs6000_legitimize_tls_address (rtx addr, enum tls_model model)
rs6000_emit_move (got, gsym, Pmode);
else
{
- char buf[30];
- static int tls_got_labelno = 0;
- rtx tempLR, lab, tmp3, mem;
+ rtx tempLR, tmp3, mem;
rtx first, last;
- ASM_GENERATE_INTERNAL_LABEL (buf, "LTLS", tls_got_labelno++);
- lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
tempLR = gen_reg_rtx (Pmode);
tmp1 = gen_reg_rtx (Pmode);
tmp2 = gen_reg_rtx (Pmode);
@@ -2986,8 +3012,7 @@ rs6000_legitimize_tls_address (rtx addr, enum tls_model model)
mem = gen_rtx_MEM (Pmode, tmp1);
RTX_UNCHANGING_P (mem) = 1;
- first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, lab,
- gsym));
+ first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym));
emit_move_insn (tmp1, tempLR);
emit_move_insn (tmp2, mem);
emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
@@ -3942,10 +3967,11 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
cum->nargs_prototype = n_named_args;
/* Check for a longcall attribute. */
- if (fntype
- && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype))
- && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype)))
- cum->call_cookie = CALL_LONG;
+ if ((!fntype && rs6000_default_long_calls)
+ || (fntype
+ && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype))
+ && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype))))
+ cum->call_cookie |= CALL_LONG;
if (TARGET_DEBUG_ARG)
{
@@ -4258,105 +4284,49 @@ rs6000_spe_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
/* Determine where to place an argument in 64-bit mode with 32-bit ABI. */
static rtx
-rs6000_mixed_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- tree type, int align_words)
-{
- if (mode == DFmode)
- {
- /* -mpowerpc64 with 32bit ABI splits up a DFmode argument
- in vararg list into zero, one or two GPRs */
- if (align_words >= GP_ARG_NUM_REG)
- return gen_rtx_PARALLEL (DFmode,
- gen_rtvec (2,
- gen_rtx_EXPR_LIST (VOIDmode,
- NULL_RTX, const0_rtx),
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (mode,
- cum->fregno),
- const0_rtx)));
- else if (align_words + rs6000_arg_size (mode, type)
- > GP_ARG_NUM_REG)
- /* If this is partially on the stack, then we only
- include the portion actually in registers here. */
- return gen_rtx_PARALLEL (DFmode,
- gen_rtvec (2,
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words),
- const0_rtx),
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (mode,
- cum->fregno),
- const0_rtx)));
-
- /* split a DFmode arg into two GPRs */
- return gen_rtx_PARALLEL (DFmode,
- gen_rtvec (3,
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words),
- const0_rtx),
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words + 1),
- GEN_INT (4)),
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (mode, cum->fregno),
- const0_rtx)));
- }
- /* -mpowerpc64 with 32bit ABI splits up a DImode argument into one
- or two GPRs */
- else if (mode == DImode)
+rs6000_mixed_function_arg (enum machine_mode mode, tree type, int align_words)
+{
+ int n_units;
+ int i, k;
+ rtx rvec[GP_ARG_NUM_REG + 1];
+
+ if (align_words >= GP_ARG_NUM_REG)
+ return NULL_RTX;
+
+ n_units = rs6000_arg_size (mode, type);
+
+ /* Optimize the simple case where the arg fits in one gpr, except in
+ the case of BLKmode due to assign_parms assuming that registers are
+ BITS_PER_WORD wide. */
+ if (n_units == 0
+ || (n_units == 1 && mode != BLKmode))
+ return gen_rtx_REG (mode, GP_ARG_MIN_REG + align_words);
+
+ k = 0;
+ if (align_words + n_units > GP_ARG_NUM_REG)
+ /* Not all of the arg fits in gprs. Say that it goes in memory too,
+ using a magic NULL_RTX component.
+ FIXME: This is not strictly correct. Only some of the arg
+ belongs in memory, not all of it. However, there isn't any way
+ to do this currently, apart from building rtx descriptions for
+ the pieces of memory we want stored. Due to bugs in the generic
+ code we can't use the normal function_arg_partial_nregs scheme
+ with the PARALLEL arg description we emit here.
+ In any case, the code to store the whole arg to memory is often
+ more efficient than code to store pieces, and we know that space
+ is available in the right place for the whole arg. */
+ rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, NULL_RTX, const0_rtx);
+
+ i = 0;
+ do
{
- if (align_words < GP_ARG_NUM_REG - 1)
- return gen_rtx_PARALLEL (DImode,
- gen_rtvec (2,
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words),
- const0_rtx),
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words + 1),
- GEN_INT (4))));
- else if (align_words == GP_ARG_NUM_REG - 1)
- return gen_rtx_PARALLEL (DImode,
- gen_rtvec (2,
- gen_rtx_EXPR_LIST (VOIDmode,
- NULL_RTX, const0_rtx),
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words),
- const0_rtx)));
- }
- else if (mode == BLKmode && align_words <= (GP_ARG_NUM_REG - 1))
- {
- int k;
- int size = int_size_in_bytes (type);
- int no_units = ((size - 1) / 4) + 1;
- int max_no_words = GP_ARG_NUM_REG - align_words;
- int rtlvec_len = no_units < max_no_words ? no_units : max_no_words;
- rtx *rtlvec = (rtx *) alloca (rtlvec_len * sizeof (rtx));
-
- memset ((char *) rtlvec, 0, rtlvec_len * sizeof (rtx));
-
- for (k=0; k < rtlvec_len; k++)
- rtlvec[k] = gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_REG (SImode,
- GP_ARG_MIN_REG
- + align_words + k),
- k == 0 ? const0_rtx : GEN_INT (k*4));
-
- return gen_rtx_PARALLEL (BLKmode, gen_rtvec_v (k, rtlvec));
- }
+ rtx r = gen_rtx_REG (SImode, GP_ARG_MIN_REG + align_words);
+ rtx off = GEN_INT (i++ * 4);
+ rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, r, off);
+ }
+ while (++align_words < GP_ARG_NUM_REG && --n_units != 0);
- return NULL_RTX;
+ return gen_rtx_PARALLEL (mode, gen_rtvec_v (k, rvec));
}
/* Determine where to put an argument to a function.
@@ -4451,8 +4421,8 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
{
/* Vector parameters to varargs functions under AIX or Darwin
get passed in memory and possibly also in GPRs. */
- int align, align_words;
- enum machine_mode part_mode = mode;
+ int align, align_words, n_words;
+ enum machine_mode part_mode;
/* Vector parameters must be 16-byte aligned. This places them at
2 mod 4 in terms of words in 32-bit mode, since the parameter
@@ -4468,15 +4438,19 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
/* Out of registers? Memory, then. */
if (align_words >= GP_ARG_NUM_REG)
return NULL_RTX;
-
+
+ if (TARGET_32BIT && TARGET_POWERPC64)
+ return rs6000_mixed_function_arg (mode, type, align_words);
+
/* The vector value goes in GPRs. Only the part of the
value in GPRs is reported here. */
- if (align_words + CLASS_MAX_NREGS (mode, GENERAL_REGS)
- > GP_ARG_NUM_REG)
+ part_mode = mode;
+ n_words = rs6000_arg_size (mode, type);
+ if (align_words + n_words > GP_ARG_NUM_REG)
/* Fortunately, there are only two possibilities, the value
is either wholly in GPRs or half in GPRs and half not. */
part_mode = DImode;
-
+
return gen_rtx_REG (part_mode, GP_ARG_MIN_REG + align_words);
}
}
@@ -4504,10 +4478,13 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
gregno += (1 - gregno) & 1;
/* Multi-reg args are not split between registers and stack. */
- if (gregno + n_words - 1 <= GP_ARG_MAX_REG)
- return gen_rtx_REG (mode, gregno);
- else
+ if (gregno + n_words - 1 > GP_ARG_MAX_REG)
return NULL_RTX;
+
+ if (TARGET_32BIT && TARGET_POWERPC64)
+ return rs6000_mixed_function_arg (mode, type,
+ gregno - GP_ARG_MIN_REG);
+ return gen_rtx_REG (mode, gregno);
}
}
else
@@ -4517,75 +4494,82 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
if (USE_FP_FOR_ARG_P (cum, mode, type))
{
- rtx fpr[2];
- rtx *r;
+ rtx rvec[GP_ARG_NUM_REG + 1];
+ rtx r;
+ int k;
bool needs_psave;
enum machine_mode fmode = mode;
- int n;
unsigned long n_fpreg = (GET_MODE_SIZE (mode) + 7) >> 3;
if (cum->fregno + n_fpreg > FP_ARG_MAX_REG + 1)
{
- /* Long double split over regs and memory. */
- if (fmode == TFmode)
- fmode = DFmode;
-
/* Currently, we only ever need one reg here because complex
doubles are split. */
- if (cum->fregno != FP_ARG_MAX_REG - 1)
+ if (cum->fregno != FP_ARG_MAX_REG || fmode != TFmode)
abort ();
+
+ /* Long double split over regs and memory. */
+ fmode = DFmode;
}
- fpr[1] = gen_rtx_REG (fmode, cum->fregno);
/* Do we also need to pass this arg in the parameter save
area? */
needs_psave = (type
&& (cum->nargs_prototype <= 0
|| (DEFAULT_ABI == ABI_AIX
- && TARGET_XL_CALL
+ && TARGET_XL_COMPAT
&& align_words >= GP_ARG_NUM_REG)));
if (!needs_psave && mode == fmode)
- return fpr[1];
-
- if (TARGET_32BIT && TARGET_POWERPC64
- && mode == DFmode && cum->stdarg)
- return rs6000_mixed_function_arg (cum, mode, type, align_words);
-
- /* Describe where this piece goes. */
- r = fpr + 1;
- *r = gen_rtx_EXPR_LIST (VOIDmode, *r, const0_rtx);
- n = 1;
+ return gen_rtx_REG (fmode, cum->fregno);
+ k = 0;
if (needs_psave)
{
- /* Now describe the part that goes in gprs or the stack.
+ /* Describe the part that goes in gprs or the stack.
This piece must come first, before the fprs. */
- rtx reg = NULL_RTX;
if (align_words < GP_ARG_NUM_REG)
{
unsigned long n_words = rs6000_arg_size (mode, type);
- enum machine_mode rmode = mode;
-
- if (align_words + n_words > GP_ARG_NUM_REG)
- /* If this is partially on the stack, then we only
- include the portion actually in registers here.
- We know this can only be one register because
- complex doubles are splt. */
- rmode = Pmode;
- reg = gen_rtx_REG (rmode, GP_ARG_MIN_REG + align_words);
+
+ if (align_words + n_words > GP_ARG_NUM_REG
+ || (TARGET_32BIT && TARGET_POWERPC64))
+ {
+ /* If this is partially on the stack, then we only
+ include the portion actually in registers here. */
+ enum machine_mode rmode = TARGET_32BIT ? SImode : DImode;
+ rtx off;
+ do
+ {
+ r = gen_rtx_REG (rmode,
+ GP_ARG_MIN_REG + align_words);
+ off = GEN_INT (k * GET_MODE_SIZE (rmode));
+ rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, r, off);
+ }
+ while (++align_words < GP_ARG_NUM_REG && --n_words != 0);
+ }
+ else
+ {
+ /* The whole arg fits in gprs. */
+ r = gen_rtx_REG (mode, GP_ARG_MIN_REG + align_words);
+ rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, r, const0_rtx);
+ }
}
- *--r = gen_rtx_EXPR_LIST (VOIDmode, reg, const0_rtx);
- ++n;
+ else
+ /* It's entirely in memory. */
+ rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, NULL_RTX, const0_rtx);
}
- return gen_rtx_PARALLEL (mode, gen_rtvec_v (n, r));
+ /* Describe where this piece goes in the fprs. */
+ r = gen_rtx_REG (fmode, cum->fregno);
+ rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, r, const0_rtx);
+
+ return gen_rtx_PARALLEL (mode, gen_rtvec_v (k, rvec));
}
else if (align_words < GP_ARG_NUM_REG)
{
- if (TARGET_32BIT && TARGET_POWERPC64
- && (mode == DImode || mode == BLKmode))
- return rs6000_mixed_function_arg (cum, mode, type, align_words);
+ if (TARGET_32BIT && TARGET_POWERPC64)
+ return rs6000_mixed_function_arg (mode, type, align_words);
return gen_rtx_REG (mode, GP_ARG_MIN_REG + align_words);
}
@@ -4594,15 +4578,20 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
}
}
-/* For an arg passed partly in registers and partly in memory,
- this is the number of registers used.
- For args passed entirely in registers or entirely in memory, zero. */
+/* For an arg passed partly in registers and partly in memory, this is
+ the number of registers used. For args passed entirely in registers
+ or entirely in memory, zero. When an arg is described by a PARALLEL,
+ perhaps using more than one register type, this function returns the
+ number of registers used by the first element of the PARALLEL. */
int
function_arg_partial_nregs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
tree type, int named)
{
int ret = 0;
+ int align;
+ int parm_offset;
+ int align_words;
if (DEFAULT_ABI == ABI_V4)
return 0;
@@ -4611,17 +4600,29 @@ function_arg_partial_nregs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
&& cum->nargs_prototype >= 0)
return 0;
- if (USE_FP_FOR_ARG_P (cum, mode, type))
+ align = function_arg_boundary (mode, type) / PARM_BOUNDARY - 1;
+ parm_offset = TARGET_32BIT ? 2 : 0;
+ align_words = cum->words + ((parm_offset - cum->words) & align);
+
+ if (USE_FP_FOR_ARG_P (cum, mode, type)
+ /* If we are passing this arg in gprs as well, then this function
+ should return the number of gprs (or memory) partially passed,
+ *not* the number of fprs. */
+ && !(type
+ && (cum->nargs_prototype <= 0
+ || (DEFAULT_ABI == ABI_AIX
+ && TARGET_XL_COMPAT
+ && align_words >= GP_ARG_NUM_REG))))
{
if (cum->fregno + ((GET_MODE_SIZE (mode) + 7) >> 3) > FP_ARG_MAX_REG + 1)
- ret = FP_ARG_MAX_REG - cum->fregno;
+ ret = FP_ARG_MAX_REG + 1 - cum->fregno;
else if (cum->nargs_prototype >= 0)
return 0;
}
- if (cum->words < GP_ARG_NUM_REG
- && GP_ARG_NUM_REG < cum->words + rs6000_arg_size (mode, type))
- ret = GP_ARG_NUM_REG - cum->words;
+ if (align_words < GP_ARG_NUM_REG
+ && GP_ARG_NUM_REG < align_words + rs6000_arg_size (mode, type))
+ ret = GP_ARG_NUM_REG - align_words;
if (ret != 0 && TARGET_DEBUG_ARG)
fprintf (stderr, "function_arg_partial_nregs: %d\n", ret);
@@ -4776,6 +4777,7 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
{
mem = gen_rtx_MEM (DFmode, plus_constant (save_area, off));
set_mem_alias_set (mem, set);
+ set_mem_align (mem, GET_MODE_ALIGNMENT (DFmode));
emit_move_insn (mem, gen_rtx_REG (DFmode, fregno));
fregno++;
off += 8;
@@ -5695,6 +5697,7 @@ rs6000_expand_binop_builtin (enum insn_code icode, tree arglist, rtx target)
|| icode == CODE_FOR_spe_evsrwiu)
{
/* Only allow 5-bit unsigned literals. */
+ STRIP_NOPS (arg1);
if (TREE_CODE (arg1) != INTEGER_CST
|| TREE_INT_CST_LOW (arg1) & ~0x1f)
{
@@ -6120,6 +6123,8 @@ altivec_expand_dst_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
|| arg2 == error_mark_node)
return const0_rtx;
+ *expandedp = true;
+ STRIP_NOPS (arg2);
if (TREE_CODE (arg2) != INTEGER_CST
|| TREE_INT_CST_LOW (arg2) & ~0x3)
{
@@ -6136,7 +6141,6 @@ altivec_expand_dst_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
if (pat != 0)
emit_insn (pat);
- *expandedp = true;
return NULL_RTX;
}
@@ -6226,6 +6230,7 @@ altivec_expand_builtin (tree exp, rtx target, bool *expandedp)
case ALTIVEC_BUILTIN_DSS:
icode = CODE_FOR_altivec_dss;
arg0 = TREE_VALUE (arglist);
+ STRIP_NOPS (arg0);
op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
mode0 = insn_data[icode].operand[0].mode;
@@ -6245,6 +6250,15 @@ altivec_expand_builtin (tree exp, rtx target, bool *expandedp)
emit_insn (gen_altivec_dss (op0));
return NULL_RTX;
+
+ case ALTIVEC_BUILTIN_COMPILETIME_ERROR:
+ arg0 = TREE_VALUE (arglist);
+ while (TREE_CODE (arg0) == NOP_EXPR || TREE_CODE (arg0) == ADDR_EXPR)
+ arg0 = TREE_OPERAND (arg0, 0);
+ error ("invalid parameter combination for `%s' AltiVec intrinsic",
+ TREE_STRING_POINTER (arg0));
+
+ return const0_rtx;
}
/* Expand abs* operations. */
@@ -6684,6 +6698,73 @@ rs6000_init_builtins (void)
opaque_V2SF_type_node = copy_node (V2SF_type_node);
opaque_p_V2SI_type_node = build_pointer_type (opaque_V2SI_type_node);
+ /* The 'vector bool ...' types must be kept distinct from 'vector unsigned ...'
+ types, especially in C++ land. Similarly, 'vector pixel' is distinct from+ 'vector unsigned short'. */
+
+ bool_char_type_node = copy_node (unsigned_intQI_type_node);
+ TYPE_MAIN_VARIANT (bool_char_type_node) = bool_char_type_node;
+ bool_short_type_node = copy_node (unsigned_intHI_type_node);
+ TYPE_MAIN_VARIANT (bool_short_type_node) = bool_short_type_node;
+ bool_int_type_node = copy_node (unsigned_intSI_type_node);
+ TYPE_MAIN_VARIANT (bool_int_type_node) = bool_int_type_node;
+ pixel_type_node = copy_node (unsigned_intHI_type_node);
+ TYPE_MAIN_VARIANT (pixel_type_node) = pixel_type_node;
+
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__bool char"),
+ bool_char_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__bool short"),
+ bool_short_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__bool int"),
+ bool_int_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__pixel"),
+ pixel_type_node));
+
+ bool_V16QI_type_node = make_vector (V16QImode, bool_char_type_node, 1);
+ bool_V8HI_type_node = make_vector (V8HImode, bool_short_type_node, 1);
+ bool_V4SI_type_node = make_vector (V4SImode, bool_int_type_node, 1);
+ pixel_V8HI_type_node = make_vector (V8HImode, pixel_type_node, 1);
+
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector unsigned char"),
+ unsigned_V16QI_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector signed char"),
+ V16QI_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector __bool char"),
+ bool_V16QI_type_node));
+
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector unsigned short"),
+ unsigned_V8HI_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector signed short"),
+ V8HI_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector __bool short"),
+ bool_V8HI_type_node));
+
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector unsigned int"),
+ unsigned_V4SI_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector signed int"),
+ V4SI_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector __bool int"),
+ bool_V4SI_type_node));
+
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector float"),
+ V4SF_type_node));
+ (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
+ get_identifier ("__vector __pixel"),
+ pixel_V8HI_type_node));
+
if (TARGET_SPE)
spe_init_builtins ();
if (TARGET_ALTIVEC)
@@ -6989,8 +7070,8 @@ altivec_init_builtins (void)
= build_function_type (V8HI_type_node, void_list_node);
tree void_ftype_void
= build_function_type (void_type_node, void_list_node);
- tree void_ftype_qi
- = build_function_type_list (void_type_node, char_type_node, NULL_TREE);
+ tree void_ftype_int
+ = build_function_type_list (void_type_node, integer_type_node, NULL_TREE);
tree v16qi_ftype_long_pcvoid
= build_function_type_list (V16QI_type_node,
@@ -7034,10 +7115,13 @@ altivec_init_builtins (void)
= build_function_type_list (V16QI_type_node, V16QI_type_node, NULL_TREE);
tree v4sf_ftype_v4sf
= build_function_type_list (V4SF_type_node, V4SF_type_node, NULL_TREE);
- tree void_ftype_pcvoid_int_char
+ tree void_ftype_pcvoid_int_int
= build_function_type_list (void_type_node,
pcvoid_type_node, integer_type_node,
- char_type_node, NULL_TREE);
+ integer_type_node, NULL_TREE);
+ tree int_ftype_pcchar
+ = build_function_type_list (integer_type_node,
+ pcchar_type_node, NULL_TREE);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_ld_internal_4sf", v4sf_ftype_pcfloat,
ALTIVEC_BUILTIN_LD_INTERNAL_4sf);
@@ -7058,7 +7142,7 @@ altivec_init_builtins (void)
def_builtin (MASK_ALTIVEC, "__builtin_altivec_mtvscr", void_ftype_v4si, ALTIVEC_BUILTIN_MTVSCR);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_mfvscr", v8hi_ftype_void, ALTIVEC_BUILTIN_MFVSCR);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_dssall", void_ftype_void, ALTIVEC_BUILTIN_DSSALL);
- def_builtin (MASK_ALTIVEC, "__builtin_altivec_dss", void_ftype_qi, ALTIVEC_BUILTIN_DSS);
+ def_builtin (MASK_ALTIVEC, "__builtin_altivec_dss", void_ftype_int, ALTIVEC_BUILTIN_DSS);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_lvsl", v16qi_ftype_long_pcvoid, ALTIVEC_BUILTIN_LVSL);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_lvsr", v16qi_ftype_long_pcvoid, ALTIVEC_BUILTIN_LVSR);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_lvebx", v16qi_ftype_long_pcvoid, ALTIVEC_BUILTIN_LVEBX);
@@ -7072,10 +7156,14 @@ altivec_init_builtins (void)
def_builtin (MASK_ALTIVEC, "__builtin_altivec_stvebx", void_ftype_v16qi_long_pvoid, ALTIVEC_BUILTIN_STVEBX);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_stvehx", void_ftype_v8hi_long_pvoid, ALTIVEC_BUILTIN_STVEHX);
+ /* See altivec.h for usage of "__builtin_altivec_compiletime_error". */
+ def_builtin (MASK_ALTIVEC, "__builtin_altivec_compiletime_error", int_ftype_pcchar,
+ ALTIVEC_BUILTIN_COMPILETIME_ERROR);
+
/* Add the DST variants. */
d = (struct builtin_description *) bdesc_dst;
for (i = 0; i < ARRAY_SIZE (bdesc_dst); i++, d++)
- def_builtin (d->mask, d->name, void_ftype_pcvoid_int_char, d->code);
+ def_builtin (d->mask, d->name, void_ftype_pcvoid_int_int, d->code);
/* Initialize the predicates. */
dp = (struct builtin_description_predicates *) bdesc_altivec_preds;
@@ -7160,12 +7248,12 @@ rs6000_common_init_builtins (void)
= build_function_type_list (V16QI_type_node,
V16QI_type_node, V16QI_type_node,
V16QI_type_node, NULL_TREE);
- tree v4si_ftype_char
- = build_function_type_list (V4SI_type_node, char_type_node, NULL_TREE);
- tree v8hi_ftype_char
- = build_function_type_list (V8HI_type_node, char_type_node, NULL_TREE);
- tree v16qi_ftype_char
- = build_function_type_list (V16QI_type_node, char_type_node, NULL_TREE);
+ tree v4si_ftype_int
+ = build_function_type_list (V4SI_type_node, integer_type_node, NULL_TREE);
+ tree v8hi_ftype_int
+ = build_function_type_list (V8HI_type_node, integer_type_node, NULL_TREE);
+ tree v16qi_ftype_int
+ = build_function_type_list (V16QI_type_node, integer_type_node, NULL_TREE);
tree v8hi_ftype_v16qi
= build_function_type_list (V8HI_type_node, V16QI_type_node, NULL_TREE);
tree v4sf_ftype_v4sf
@@ -7223,37 +7311,37 @@ rs6000_common_init_builtins (void)
tree v4si_ftype_v4si_v4si
= build_function_type_list (V4SI_type_node,
V4SI_type_node, V4SI_type_node, NULL_TREE);
- tree v4sf_ftype_v4si_char
+ tree v4sf_ftype_v4si_int
= build_function_type_list (V4SF_type_node,
- V4SI_type_node, char_type_node, NULL_TREE);
- tree v4si_ftype_v4sf_char
+ V4SI_type_node, integer_type_node, NULL_TREE);
+ tree v4si_ftype_v4sf_int
= build_function_type_list (V4SI_type_node,
- V4SF_type_node, char_type_node, NULL_TREE);
- tree v4si_ftype_v4si_char
+ V4SF_type_node, integer_type_node, NULL_TREE);
+ tree v4si_ftype_v4si_int
= build_function_type_list (V4SI_type_node,
- V4SI_type_node, char_type_node, NULL_TREE);
- tree v8hi_ftype_v8hi_char
+ V4SI_type_node, integer_type_node, NULL_TREE);
+ tree v8hi_ftype_v8hi_int
= build_function_type_list (V8HI_type_node,
- V8HI_type_node, char_type_node, NULL_TREE);
- tree v16qi_ftype_v16qi_char
+ V8HI_type_node, integer_type_node, NULL_TREE);
+ tree v16qi_ftype_v16qi_int
= build_function_type_list (V16QI_type_node,
- V16QI_type_node, char_type_node, NULL_TREE);
- tree v16qi_ftype_v16qi_v16qi_char
+ V16QI_type_node, integer_type_node, NULL_TREE);
+ tree v16qi_ftype_v16qi_v16qi_int
= build_function_type_list (V16QI_type_node,
V16QI_type_node, V16QI_type_node,
- char_type_node, NULL_TREE);
- tree v8hi_ftype_v8hi_v8hi_char
+ integer_type_node, NULL_TREE);
+ tree v8hi_ftype_v8hi_v8hi_int
= build_function_type_list (V8HI_type_node,
V8HI_type_node, V8HI_type_node,
- char_type_node, NULL_TREE);
- tree v4si_ftype_v4si_v4si_char
+ integer_type_node, NULL_TREE);
+ tree v4si_ftype_v4si_v4si_int
= build_function_type_list (V4SI_type_node,
V4SI_type_node, V4SI_type_node,
- char_type_node, NULL_TREE);
- tree v4sf_ftype_v4sf_v4sf_char
+ integer_type_node, NULL_TREE);
+ tree v4sf_ftype_v4sf_v4sf_int
= build_function_type_list (V4SF_type_node,
V4SF_type_node, V4SF_type_node,
- char_type_node, NULL_TREE);
+ integer_type_node, NULL_TREE);
tree v4sf_ftype_v4sf_v4sf
= build_function_type_list (V4SF_type_node,
V4SF_type_node, V4SF_type_node, NULL_TREE);
@@ -7396,22 +7484,22 @@ rs6000_common_init_builtins (void)
/* vchar, vchar, vchar, 4 bit literal. */
else if (mode0 == V16QImode && mode1 == mode0 && mode2 == mode0
&& mode3 == QImode)
- type = v16qi_ftype_v16qi_v16qi_char;
+ type = v16qi_ftype_v16qi_v16qi_int;
/* vshort, vshort, vshort, 4 bit literal. */
else if (mode0 == V8HImode && mode1 == mode0 && mode2 == mode0
&& mode3 == QImode)
- type = v8hi_ftype_v8hi_v8hi_char;
+ type = v8hi_ftype_v8hi_v8hi_int;
/* vint, vint, vint, 4 bit literal. */
else if (mode0 == V4SImode && mode1 == mode0 && mode2 == mode0
&& mode3 == QImode)
- type = v4si_ftype_v4si_v4si_char;
+ type = v4si_ftype_v4si_v4si_int;
/* vfloat, vfloat, vfloat, 4 bit literal. */
else if (mode0 == V4SFmode && mode1 == mode0 && mode2 == mode0
&& mode3 == QImode)
- type = v4sf_ftype_v4sf_v4sf_char;
+ type = v4sf_ftype_v4sf_v4sf_int;
else
abort ();
@@ -7500,23 +7588,23 @@ rs6000_common_init_builtins (void)
/* vint, vint, 5 bit literal. */
else if (mode0 == V4SImode && mode1 == V4SImode && mode2 == QImode)
- type = v4si_ftype_v4si_char;
+ type = v4si_ftype_v4si_int;
/* vshort, vshort, 5 bit literal. */
else if (mode0 == V8HImode && mode1 == V8HImode && mode2 == QImode)
- type = v8hi_ftype_v8hi_char;
+ type = v8hi_ftype_v8hi_int;
/* vchar, vchar, 5 bit literal. */
else if (mode0 == V16QImode && mode1 == V16QImode && mode2 == QImode)
- type = v16qi_ftype_v16qi_char;
+ type = v16qi_ftype_v16qi_int;
/* vfloat, vint, 5 bit literal. */
else if (mode0 == V4SFmode && mode1 == V4SImode && mode2 == QImode)
- type = v4sf_ftype_v4si_char;
+ type = v4sf_ftype_v4si_int;
/* vint, vfloat, 5 bit literal. */
else if (mode0 == V4SImode && mode1 == V4SFmode && mode2 == QImode)
- type = v4si_ftype_v4sf_char;
+ type = v4si_ftype_v4sf_int;
else if (mode0 == V2SImode && mode1 == SImode && mode2 == SImode)
type = v2si_ftype_int_int;
@@ -7569,11 +7657,11 @@ rs6000_common_init_builtins (void)
mode1 = insn_data[d->icode].operand[1].mode;
if (mode0 == V4SImode && mode1 == QImode)
- type = v4si_ftype_char;
+ type = v4si_ftype_int;
else if (mode0 == V8HImode && mode1 == QImode)
- type = v8hi_ftype_char;
+ type = v8hi_ftype_int;
else if (mode0 == V16QImode && mode1 == QImode)
- type = v16qi_ftype_char;
+ type = v16qi_ftype_int;
else if (mode0 == V4SFmode && mode1 == V4SFmode)
type = v4sf_ftype_v4sf;
else if (mode0 == V8HImode && mode1 == V16QImode)
@@ -7614,11 +7702,21 @@ rs6000_init_libfuncs (void)
set_conv_libfunc (ufix_optab, SImode, TFmode, "_quitrunc");
}
- /* Standard AIX/Darwin/64-bit SVR4 quad floating point routines. */
- set_optab_libfunc (add_optab, TFmode, "_xlqadd");
- set_optab_libfunc (sub_optab, TFmode, "_xlqsub");
- set_optab_libfunc (smul_optab, TFmode, "_xlqmul");
- set_optab_libfunc (sdiv_optab, TFmode, "_xlqdiv");
+ /* AIX/Darwin/64-bit Linux quad floating point routines. */
+ if (!TARGET_XL_COMPAT)
+ {
+ set_optab_libfunc (add_optab, TFmode, "__gcc_qadd");
+ set_optab_libfunc (sub_optab, TFmode, "__gcc_qsub");
+ set_optab_libfunc (smul_optab, TFmode, "__gcc_qmul");
+ set_optab_libfunc (sdiv_optab, TFmode, "__gcc_qdiv");
+ }
+ else
+ {
+ set_optab_libfunc (add_optab, TFmode, "_xlqadd");
+ set_optab_libfunc (sub_optab, TFmode, "_xlqsub");
+ set_optab_libfunc (smul_optab, TFmode, "_xlqmul");
+ set_optab_libfunc (sdiv_optab, TFmode, "_xlqdiv");
+ }
}
else
{
@@ -8982,12 +9080,12 @@ print_operand (FILE *file, rtx x, int code)
return;
case 'D':
- /* Like 'J' but get to the GT bit. */
+ /* Like 'J' but get to the EQ bit. */
if (GET_CODE (x) != REG)
abort ();
- /* Bit 1 is GT bit. */
- i = 4 * (REGNO (x) - CR0_REGNO) + 1;
+ /* Bit 1 is EQ bit. */
+ i = 4 * (REGNO (x) - CR0_REGNO) + 2;
/* If we want bit 31, write a shift count of zero, not 32. */
fprintf (file, "%d", i == 31 ? 0 : i + 1);
@@ -9182,12 +9280,12 @@ print_operand (FILE *file, rtx x, int code)
case 'P':
/* The operand must be an indirect memory reference. The result
- is the register number. */
+ is the register name. */
if (GET_CODE (x) != MEM || GET_CODE (XEXP (x, 0)) != REG
|| REGNO (XEXP (x, 0)) >= 32)
output_operand_lossage ("invalid %%P value");
else
- fprintf (file, "%d", REGNO (XEXP (x, 0)));
+ fprintf (file, "%s", reg_names[REGNO (XEXP (x, 0))]);
return;
case 'q':
@@ -9659,7 +9757,7 @@ rs6000_assemble_integer (rtx x, unsigned int size, int aligned_p)
{
#ifdef RELOCATABLE_NEEDS_FIXUP
/* Special handling for SI values. */
- if (size == 4 && aligned_p)
+ if (RELOCATABLE_NEEDS_FIXUP && size == 4 && aligned_p)
{
extern int in_toc_section (void);
static int recurse = 0;
@@ -9858,10 +9956,34 @@ rs6000_generate_compare (enum rtx_code code)
emit_insn (cmp);
}
else
- emit_insn (gen_rtx_SET (VOIDmode, compare_result,
- gen_rtx_COMPARE (comp_mode,
- rs6000_compare_op0,
- rs6000_compare_op1)));
+ {
+ /* Generate XLC-compatible TFmode compare as PARALLEL with extra
+ CLOBBERs to match cmptf_internal2 pattern. */
+ if (comp_mode == CCFPmode && TARGET_XL_COMPAT
+ && GET_MODE (rs6000_compare_op0) == TFmode
+ && (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
+ && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128)
+ emit_insn (gen_rtx_PARALLEL (VOIDmode,
+ gen_rtvec (9,
+ gen_rtx_SET (VOIDmode,
+ compare_result,
+ gen_rtx_COMPARE (comp_mode,
+ rs6000_compare_op0,
+ rs6000_compare_op1)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)),
+ gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (DFmode)))));
+ else
+ emit_insn (gen_rtx_SET (VOIDmode, compare_result,
+ gen_rtx_COMPARE (comp_mode,
+ rs6000_compare_op0,
+ rs6000_compare_op1)));
+ }
/* Some kinds of FP comparisons need an OR operation;
under flag_finite_math_only we don't bother. */
@@ -9929,9 +10051,9 @@ rs6000_emit_sCOND (enum rtx_code code, rtx result)
abort ();
if (cond_code == NE)
- emit_insn (gen_e500_flip_gt_bit (t, t));
+ emit_insn (gen_e500_flip_eq_bit (t, t));
- emit_insn (gen_move_from_CR_gt_bit (result, t));
+ emit_insn (gen_move_from_CR_eq_bit (result, t));
return;
}
@@ -10112,9 +10234,9 @@ output_cbranch (rtx op, const char *label, int reversed, rtx insn)
return string;
}
-/* Return the string to flip the GT bit on a CR. */
+/* Return the string to flip the EQ bit on a CR. */
char *
-output_e500_flip_gt_bit (rtx dst, rtx src)
+output_e500_flip_eq_bit (rtx dst, rtx src)
{
static char string[64];
int a, b;
@@ -10123,9 +10245,9 @@ output_e500_flip_gt_bit (rtx dst, rtx src)
|| GET_CODE (src) != REG || ! CR_REGNO_P (REGNO (src)))
abort ();
- /* GT bit. */
- a = 4 * (REGNO (dst) - CR0_REGNO) + 1;
- b = 4 * (REGNO (src) - CR0_REGNO) + 1;
+ /* EQ bit. */
+ a = 4 * (REGNO (dst) - CR0_REGNO) + 2;
+ b = 4 * (REGNO (src) - CR0_REGNO) + 2;
sprintf (string, "crnot %d,%d", a, b);
return string;
@@ -10435,22 +10557,27 @@ rs6000_split_multireg_move (rtx dst, rtx src)
: gen_adddi3 (breg, breg, delta_rtx));
src = gen_rtx_MEM (mode, breg);
}
+ else if (! offsettable_memref_p (src))
+ {
+ rtx newsrc, basereg;
+ basereg = gen_rtx_REG (Pmode, reg);
+ emit_insn (gen_rtx_SET (VOIDmode, basereg, XEXP (src, 0)));
+ newsrc = gen_rtx_MEM (GET_MODE (src), basereg);
+ MEM_COPY_ATTRIBUTES (newsrc, src);
+ src = newsrc;
+ }
- /* We have now address involving an base register only.
- If we use one of the registers to address memory,
- we have change that register last. */
-
- breg = (GET_CODE (XEXP (src, 0)) == PLUS
- ? XEXP (XEXP (src, 0), 0)
- : XEXP (src, 0));
-
- if (!REG_P (breg))
- abort();
+ breg = XEXP (src, 0);
+ if (GET_CODE (breg) == PLUS || GET_CODE (breg) == LO_SUM)
+ breg = XEXP (breg, 0);
- if (REGNO (breg) >= REGNO (dst)
+ /* If the base register we are using to address memory is
+ also a destination reg, then change that register last. */
+ if (REG_P (breg)
+ && REGNO (breg) >= REGNO (dst)
&& REGNO (breg) < REGNO (dst) + nregs)
j = REGNO (breg) - REGNO (dst);
- }
+ }
if (GET_CODE (dst) == MEM && INT_REGNO_P (reg))
{
@@ -10482,6 +10609,8 @@ rs6000_split_multireg_move (rtx dst, rtx src)
: gen_adddi3 (breg, breg, delta_rtx));
dst = gen_rtx_MEM (mode, breg);
}
+ else if (! offsettable_memref_p (dst))
+ abort ();
}
for (i = 0; i < nregs; i++)
@@ -10491,7 +10620,7 @@ rs6000_split_multireg_move (rtx dst, rtx src)
if (j == nregs)
j = 0;
- /* If compiler already emited move of first word by
+ /* If compiler already emitted move of first word by
store with update, no need to do anything. */
if (j == 0 && used_update)
continue;
@@ -10523,7 +10652,8 @@ first_reg_to_save (void)
&& (! call_used_regs[first_reg]
|| (first_reg == RS6000_PIC_OFFSET_TABLE_REGNUM
&& ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
- || (DEFAULT_ABI == ABI_DARWIN && flag_pic)))))
+ || (DEFAULT_ABI == ABI_DARWIN && flag_pic)
+ || (TARGET_TOC && TARGET_MINIMAL_TOC)))))
break;
#if TARGET_MACHO
@@ -10719,6 +10849,7 @@ rs6000_stack_info (void)
rs6000_stack_t *info_ptr = &info;
int reg_size = TARGET_32BIT ? 4 : 8;
int ehrd_size;
+ int save_align;
HOST_WIDE_INT non_fixed_size;
/* Zero all fields portably. */
@@ -10936,6 +11067,7 @@ rs6000_stack_info (void)
break;
}
+ save_align = (TARGET_ALTIVEC_ABI || DEFAULT_ABI == ABI_DARWIN) ? 16 : 8;
info_ptr->save_size = RS6000_ALIGN (info_ptr->fp_size
+ info_ptr->gp_size
+ info_ptr->altivec_size
@@ -10947,8 +11079,7 @@ rs6000_stack_info (void)
+ info_ptr->lr_size
+ info_ptr->vrsave_size
+ info_ptr->toc_size,
- (TARGET_ALTIVEC_ABI || ABI_DARWIN)
- ? 16 : 8);
+ save_align);
non_fixed_size = (info_ptr->vars_size
+ info_ptr->parm_size
@@ -11342,7 +11473,6 @@ rs6000_emit_load_toc_table (int fromprolog)
rtx temp0 = (fromprolog
? gen_rtx_REG (Pmode, 0)
: gen_reg_rtx (Pmode));
- rtx symF;
/* possibly create the toc section */
if (! toc_initialized)
@@ -11353,7 +11483,7 @@ rs6000_emit_load_toc_table (int fromprolog)
if (fromprolog)
{
- rtx symL;
+ rtx symF, symL;
ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno);
symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
@@ -11371,14 +11501,9 @@ rs6000_emit_load_toc_table (int fromprolog)
else
{
rtx tocsym;
- static int reload_toc_labelno = 0;
tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name);
-
- ASM_GENERATE_INTERNAL_LABEL (buf, "LCG", reload_toc_labelno++);
- symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
-
- emit_insn (gen_load_toc_v4_PIC_1b (tempLR, symF, tocsym));
+ emit_insn (gen_load_toc_v4_PIC_1b (tempLR, tocsym));
emit_move_insn (dest, tempLR);
emit_move_insn (temp0, gen_rtx_MEM (Pmode, dest));
}
@@ -12007,8 +12132,10 @@ rs6000_emit_prologue (void)
rtx reg, mem, vrsave;
int offset;
- /* Get VRSAVE onto a GPR. */
- reg = gen_rtx_REG (SImode, 12);
+ /* Get VRSAVE onto a GPR. Note that ABI_V4 might be using r12
+ as frame_reg_rtx and r11 as the static chain pointer for
+ nested functions. */
+ reg = gen_rtx_REG (SImode, 0);
vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO);
if (TARGET_MACHO)
emit_insn (gen_get_vrsave_internal (reg));
@@ -12117,7 +12244,10 @@ rs6000_emit_prologue (void)
int i;
for (i = 0; i < 32 - info->first_gp_reg_save; i++)
if ((regs_ever_live[info->first_gp_reg_save+i]
- && ! call_used_regs[info->first_gp_reg_save+i])
+ && (! call_used_regs[info->first_gp_reg_save+i]
+ || (i+info->first_gp_reg_save
+ == RS6000_PIC_OFFSET_TABLE_REGNUM
+ && TARGET_TOC && TARGET_MINIMAL_TOC)))
|| (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
&& ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
|| (DEFAULT_ABI == ABI_DARWIN && flag_pic))))
@@ -12566,7 +12696,9 @@ rs6000_emit_epilogue (int sibcall)
else
for (i = 0; i < 32 - info->first_gp_reg_save; i++)
if ((regs_ever_live[info->first_gp_reg_save+i]
- && ! call_used_regs[info->first_gp_reg_save+i])
+ && (! call_used_regs[info->first_gp_reg_save+i]
+ || (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
+ && TARGET_TOC && TARGET_MINIMAL_TOC)))
|| (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
&& ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
|| (DEFAULT_ABI == ABI_DARWIN && flag_pic))))
@@ -14845,11 +14977,117 @@ rs6000_initialize_trampoline (rtx addr, rtx fnaddr, rtx cxt)
const struct attribute_spec rs6000_attribute_table[] =
{
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
+ { "altivec", 1, 1, false, true, false, rs6000_handle_altivec_attribute },
{ "longcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute },
{ "shortcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute },
{ NULL, 0, 0, false, false, false, NULL }
};
+/* Handle the "altivec" attribute. The attribute may have
+ arguments as follows:
+
+ __attribute__((altivec(vector__)))
+ __attribute__((altivec(pixel__))) (always followed by 'unsigned short')
+ __attribute__((altivec(bool__))) (always followed by 'unsigned')
+
+ and may appear more than once (e.g., 'vector bool char') in a
+ given declaration. */
+
+static tree
+rs6000_handle_altivec_attribute (tree *node, tree name, tree args,
+ int flags ATTRIBUTE_UNUSED,
+ bool *no_add_attrs)
+{
+ tree type = *node, result = NULL_TREE;
+ enum machine_mode mode;
+ int unsigned_p;
+ char altivec_type
+ = ((args && TREE_CODE (args) == TREE_LIST && TREE_VALUE (args)
+ && TREE_CODE (TREE_VALUE (args)) == IDENTIFIER_NODE)
+ ? *IDENTIFIER_POINTER (TREE_VALUE (args))
+ : '?');
+
+ while (POINTER_TYPE_P (type)
+ || TREE_CODE (type) == FUNCTION_TYPE
+ || TREE_CODE (type) == METHOD_TYPE
+ || TREE_CODE (type) == ARRAY_TYPE)
+ type = TREE_TYPE (type);
+
+ mode = TYPE_MODE (type);
+
+ if (rs6000_warn_altivec_long
+ && (type == long_unsigned_type_node || type == long_integer_type_node))
+ warning ("use of 'long' in AltiVec types is deprecated; use 'int'");
+
+ switch (altivec_type)
+ {
+ case 'v':
+ unsigned_p = TREE_UNSIGNED (type);
+ switch (mode)
+ {
+ case SImode:
+ result = (unsigned_p ? unsigned_V4SI_type_node : V4SI_type_node);
+ break;
+ case HImode:
+ result = (unsigned_p ? unsigned_V8HI_type_node : V8HI_type_node);
+ break;
+ case QImode:
+ result = (unsigned_p ? unsigned_V16QI_type_node : V16QI_type_node);
+ break;
+ case SFmode: result = V4SF_type_node; break;
+ /* If the user says 'vector int bool', we may be handed the 'bool'
+ attribute _before_ the 'vector' attribute, and so select the proper
+ type in the 'b' case below. */
+ case V4SImode: case V8HImode: case V16QImode: result = type;
+ default: break;
+ }
+ break;
+ case 'b':
+ switch (mode)
+ {
+ case SImode: case V4SImode: result = bool_V4SI_type_node; break;
+ case HImode: case V8HImode: result = bool_V8HI_type_node; break;
+ case QImode: case V16QImode: result = bool_V16QI_type_node;
+ default: break;
+ }
+ break;
+ case 'p':
+ switch (mode)
+ {
+ case V8HImode: result = pixel_V8HI_type_node;
+ default: break;
+ }
+ default: break;
+ }
+
+ if (result && result != type && TYPE_READONLY (type))
+ result = build_qualified_type (result, TYPE_QUAL_CONST);
+
+ *no_add_attrs = true; /* No need to hang on to the attribute. */
+
+ if (!result)
+ warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
+ else
+ *node = reconstruct_complex_type (*node, result);
+
+ return NULL_TREE;
+}
+
+/* AltiVec defines four built-in scalar types that serve as vector
+ elements; we must teach the compiler how to mangle them. */
+
+static const char *
+rs6000_mangle_fundamental_type (tree type)
+{
+ if (type == bool_char_type_node) return "U6__boolc";
+ if (type == bool_short_type_node) return "U6__bools";
+ if (type == pixel_type_node) return "u7__pixel";
+ if (type == bool_int_type_node) return "U6__booli";
+
+ /* For all other types, use normal C++ mangling. */
+ return NULL;
+}
+
/* Handle a "longcall" or "shortcall" attribute; arguments as in
struct attribute_spec.handler. */
@@ -14998,6 +15236,18 @@ rs6000_elf_in_small_data_p (tree decl)
if (rs6000_sdata == SDATA_NONE)
return false;
+ /* We want to merge strings, so we never consider them small data. */
+ if (TREE_CODE (decl) == STRING_CST)
+ return false;
+
+ /* Functions are never in the small data area. */
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ return false;
+
+ /* Thread-local vars can't go in the small data area. */
+ if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl))
+ return false;
+
if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl))
{
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (decl));
@@ -15539,6 +15789,13 @@ rs6000_elf_declare_function_name (FILE *file, const char *name, tree decl)
}
ASM_OUTPUT_LABEL (file, name);
}
+
+static void
+rs6000_elf_end_indicate_exec_stack (void)
+{
+ if (TARGET_32BIT)
+ file_end_indicate_exec_stack ();
+}
#endif
#if TARGET_XCOFF
diff --git a/contrib/gcc/config/rs6000/rs6000.h b/contrib/gcc/config/rs6000/rs6000.h
index d3a66dd..f1ad896 100644
--- a/contrib/gcc/config/rs6000/rs6000.h
+++ b/contrib/gcc/config/rs6000/rs6000.h
@@ -258,7 +258,7 @@ extern int target_flags;
#define TARGET_POWERPC64 (target_flags & MASK_POWERPC64)
#endif
-#define TARGET_XL_CALL 0
+#define TARGET_XL_COMPAT 0
/* Run-time compilation parameters selecting different hardware subsets.
@@ -464,6 +464,9 @@ enum group_termination
{"longcall", &rs6000_longcall_switch, \
N_("Avoid all range limits on call instructions"), 0}, \
{"no-longcall", &rs6000_longcall_switch, "", 0}, \
+ {"warn-altivec-long", &rs6000_warn_altivec_long_switch, \
+ N_("Warn about deprecated 'vector long ...' AltiVec type usage"), 0}, \
+ {"no-warn-altivec-long", &rs6000_warn_altivec_long_switch, "", 0}, \
{"sched-costly-dep=", &rs6000_sched_costly_dep_str, \
N_("Determine which dependences between insns are considered costly"), 0}, \
{"insert-sched-nops=", &rs6000_sched_insert_nops_str, \
@@ -532,6 +535,9 @@ extern enum rs6000_dependence_cost rs6000_sched_costly_dep;
extern const char *rs6000_sched_insert_nops_str;
extern enum rs6000_nop_insertion rs6000_sched_insert_nops;
+extern int rs6000_warn_altivec_long;
+extern const char *rs6000_warn_altivec_long_switch;
+
/* Alignment options for fields in structures for sub-targets following
AIX-like ABI.
ALIGN_POWER word-aligns FP doubles (default AIX ABI).
@@ -1165,6 +1171,9 @@ extern enum rs6000_nop_insertion rs6000_sched_insert_nops;
= fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] \
= call_used_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] \
= call_really_used_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] = 1; \
+ if (TARGET_TOC && TARGET_MINIMAL_TOC) \
+ fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] \
+ = call_used_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] = 1; \
if (TARGET_ALTIVEC) \
global_regs[VSCR_REGNO] = 1; \
if (TARGET_SPE) \
@@ -2918,9 +2927,10 @@ enum rs6000_builtins
ALTIVEC_BUILTIN_ABS_V4SI,
ALTIVEC_BUILTIN_ABS_V4SF,
ALTIVEC_BUILTIN_ABS_V8HI,
- ALTIVEC_BUILTIN_ABS_V16QI
+ ALTIVEC_BUILTIN_ABS_V16QI,
+ ALTIVEC_BUILTIN_COMPILETIME_ERROR,
/* SPE builtins. */
- , SPE_BUILTIN_EVADDW,
+ SPE_BUILTIN_EVADDW,
SPE_BUILTIN_EVAND,
SPE_BUILTIN_EVANDC,
SPE_BUILTIN_EVDIVWS,
diff --git a/contrib/gcc/config/rs6000/rs6000.md b/contrib/gcc/config/rs6000/rs6000.md
index 0fc4c04..3b062ce 100644
--- a/contrib/gcc/config/rs6000/rs6000.md
+++ b/contrib/gcc/config/rs6000/rs6000.md
@@ -1,6 +1,6 @@
;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler
;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
;; This file is part of GCC.
@@ -50,7 +50,7 @@
(UNSPEC_TLSGOTTPREL 28)
(UNSPEC_TLSTLS 29)
(UNSPEC_FIX_TRUNC_TF 30) ; fadd, rounding towards zero
- (UNSPEC_MV_CR_GT 31) ; move_from_CR_gt_bit
+ (UNSPEC_MV_CR_EQ 31) ; move_from_CR_eq_bit
])
;;
@@ -2404,61 +2404,6 @@
}"
[(set_attr "length" "8")])
-(define_insn_and_split "*andsi3_internal7"
- [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
- (compare:CC (and:SI (match_operand:SI 0 "gpc_reg_operand" "r,r")
- (match_operand:SI 1 "mask_operand_wrap" "i,i"))
- (const_int 0)))
- (clobber (match_scratch:SI 3 "=r,r"))]
- "TARGET_POWERPC64"
- "#"
- "TARGET_POWERPC64"
- [(parallel [(set (match_dup 2)
- (compare:CC (and:SI (rotate:SI (match_dup 0) (match_dup 4))
- (match_dup 5))
- (const_int 0)))
- (clobber (match_dup 3))])]
- "
-{
- int mb = extract_MB (operands[1]);
- int me = extract_ME (operands[1]);
- operands[4] = GEN_INT (me + 1);
- operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb)));
-}"
- [(set_attr "type" "delayed_compare,compare")
- (set_attr "length" "4,8")])
-
-(define_insn_and_split "*andsi3_internal8"
- [(set (match_operand:CC 3 "cc_reg_operand" "=x,??y")
- (compare:CC (and:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
- (match_operand:SI 2 "mask_operand_wrap" "i,i"))
- (const_int 0)))
- (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
- (and:SI (match_dup 1)
- (match_dup 2)))]
- "TARGET_POWERPC64"
- "#"
- "TARGET_POWERPC64"
- [(parallel [(set (match_dup 3)
- (compare:CC (and:SI (rotate:SI (match_dup 1) (match_dup 4))
- (match_dup 5))
- (const_int 0)))
- (set (match_dup 0)
- (and:SI (rotate:SI (match_dup 1) (match_dup 4))
- (match_dup 5)))])
- (set (match_dup 0)
- (rotate:SI (match_dup 0) (match_dup 6)))]
- "
-{
- int mb = extract_MB (operands[2]);
- int me = extract_ME (operands[2]);
- operands[4] = GEN_INT (me + 1);
- operands[6] = GEN_INT (32 - (me + 1));
- operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb)));
-}"
- [(set_attr "type" "delayed_compare,compare")
- (set_attr "length" "8,12")])
-
(define_expand "iorsi3"
[(set (match_operand:SI 0 "gpc_reg_operand" "")
(ior:SI (match_operand:SI 1 "gpc_reg_operand" "")
@@ -5245,16 +5190,18 @@
(define_expand "floatdisf2"
[(set (match_operand:SF 0 "gpc_reg_operand" "")
(float:SF (match_operand:DI 1 "gpc_reg_operand" "")))]
- "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS"
+ "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
"
{
+ rtx val = operands[1];
if (!flag_unsafe_math_optimizations)
{
rtx label = gen_label_rtx ();
- emit_insn (gen_floatdisf2_internal2 (operands[1], label));
+ val = gen_reg_rtx (DImode);
+ emit_insn (gen_floatdisf2_internal2 (val, operands[1], label));
emit_label (label);
}
- emit_insn (gen_floatdisf2_internal1 (operands[0], operands[1]));
+ emit_insn (gen_floatdisf2_internal1 (operands[0], val));
DONE;
}")
@@ -5279,30 +5226,31 @@
;; by a bit that won't be lost at that stage, but is below the SFmode
;; rounding position.
(define_expand "floatdisf2_internal2"
- [(parallel [(set (match_dup 4)
- (compare:CC (and:DI (match_operand:DI 0 "" "")
- (const_int 2047))
- (const_int 0)))
- (set (match_dup 2) (and:DI (match_dup 0) (const_int 2047)))
- (clobber (match_scratch:CC 7 ""))])
- (set (match_dup 3) (ashiftrt:DI (match_dup 0) (const_int 53)))
- (set (match_dup 3) (plus:DI (match_dup 3) (const_int 1)))
- (set (pc) (if_then_else (eq (match_dup 4) (const_int 0))
- (label_ref (match_operand:DI 1 "" ""))
- (pc)))
- (set (match_dup 5) (compare:CCUNS (match_dup 3) (const_int 2)))
- (set (pc) (if_then_else (ltu (match_dup 5) (const_int 0))
- (label_ref (match_dup 1))
+ [(set (match_dup 3) (ashiftrt:DI (match_operand:DI 1 "" "")
+ (const_int 53)))
+ (parallel [(set (match_operand:DI 0 "" "") (and:DI (match_dup 1)
+ (const_int 2047)))
+ (clobber (scratch:CC))])
+ (set (match_dup 3) (plus:DI (match_dup 3)
+ (const_int 1)))
+ (set (match_dup 0) (plus:DI (match_dup 0)
+ (const_int 2047)))
+ (set (match_dup 4) (compare:CCUNS (match_dup 3)
+ (const_int 3)))
+ (set (match_dup 0) (ior:DI (match_dup 0)
+ (match_dup 1)))
+ (parallel [(set (match_dup 0) (and:DI (match_dup 0)
+ (const_int -2048)))
+ (clobber (scratch:CC))])
+ (set (pc) (if_then_else (geu (match_dup 4) (const_int 0))
+ (label_ref (match_operand:DI 2 "" ""))
(pc)))
- (set (match_dup 0) (xor:DI (match_dup 0) (match_dup 2)))
- (set (match_dup 0) (ior:DI (match_dup 0) (const_int 2048)))]
- "TARGET_64BIT && TARGET_HARD_FLOAT && TARGET_FPRS"
+ (set (match_dup 0) (match_dup 1))]
+ "TARGET_POWERPC64 && TARGET_HARD_FLOAT && TARGET_FPRS"
"
{
- operands[2] = gen_reg_rtx (DImode);
operands[3] = gen_reg_rtx (DImode);
- operands[4] = gen_reg_rtx (CCmode);
- operands[5] = gen_reg_rtx (CCUNSmode);
+ operands[4] = gen_reg_rtx (CCUNSmode);
}")
;; Define the DImode operations that can be done in a small number
@@ -8311,14 +8259,36 @@
DONE;
})
-(define_insn "trunctfdf2"
+(define_expand "trunctfdf2"
+ [(set (match_operand:DF 0 "gpc_reg_operand" "")
+ (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "")))]
+ "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
+ && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
+ "")
+
+(define_insn_and_split "trunctfdf2_internal1"
+ [(set (match_operand:DF 0 "gpc_reg_operand" "=f,?f")
+ (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "0,f")))]
+ "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && !TARGET_XL_COMPAT
+ && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
+ "@
+ #
+ fmr %0,%1"
+ "&& reload_completed && REGNO (operands[0]) == REGNO (operands[1])"
+ [(const_int 0)]
+{
+ emit_note (NOTE_INSN_DELETED);
+ DONE;
+}
+ [(set_attr "type" "fp")])
+
+(define_insn "trunctfdf2_internal2"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f")
(float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))]
- "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
+ "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_XL_COMPAT
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
"fadd %0,%1,%L1"
- [(set_attr "type" "fp")
- (set_attr "length" "4")])
+ [(set_attr "type" "fp")])
(define_insn_and_split "trunctfsf2"
[(set (match_operand:SF 0 "gpc_reg_operand" "=f")
@@ -10081,11 +10051,10 @@
(define_insn "load_toc_v4_PIC_1b"
[(set (match_operand:SI 0 "register_operand" "=l")
- (match_operand:SI 1 "immediate_operand" "s"))
- (use (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")]
+ (unspec:SI [(match_operand:SI 1 "immediate_operand" "s")]
UNSPEC_TOCPTR))]
"TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2"
- "bcl 20,31,%1+4\\n%1:\\n\\t.long %2-%1"
+ "bcl 20,31,$+8\\n\\t.long %1-$"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -11349,11 +11318,72 @@
[(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
(compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f")
(match_operand:TF 2 "gpc_reg_operand" "f")))]
- "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
+ "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && !TARGET_XL_COMPAT
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
"fcmpu %0,%1,%2\;bne %0,$+8\;fcmpu %0,%L1,%L2"
[(set_attr "type" "fpcompare")
(set_attr "length" "12")])
+
+(define_insn_and_split "*cmptf_internal2"
+ [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
+ (compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f")
+ (match_operand:TF 2 "gpc_reg_operand" "f")))
+ (clobber (match_scratch:DF 3 "=f"))
+ (clobber (match_scratch:DF 4 "=f"))
+ (clobber (match_scratch:DF 5 "=f"))
+ (clobber (match_scratch:DF 6 "=f"))
+ (clobber (match_scratch:DF 7 "=f"))
+ (clobber (match_scratch:DF 8 "=f"))
+ (clobber (match_scratch:DF 9 "=f"))
+ (clobber (match_scratch:DF 10 "=f"))]
+ "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_XL_COMPAT
+ && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 3) (match_dup 13))
+ (set (match_dup 4) (match_dup 14))
+ (set (match_dup 9) (abs:DF (match_dup 5)))
+ (set (match_dup 0) (compare:CCFP (match_dup 9) (match_dup 3)))
+ (set (pc) (if_then_else (ne (match_dup 0) (const_int 0))
+ (label_ref (match_dup 11))
+ (pc)))
+ (set (match_dup 0) (compare:CCFP (match_dup 5) (match_dup 7)))
+ (set (pc) (label_ref (match_dup 12)))
+ (match_dup 11)
+ (set (match_dup 10) (minus:DF (match_dup 5) (match_dup 7)))
+ (set (match_dup 9) (minus:DF (match_dup 6) (match_dup 8)))
+ (set (match_dup 9) (plus:DF (match_dup 10) (match_dup 9)))
+ (set (match_dup 0) (compare:CCFP (match_dup 7) (match_dup 4)))
+ (match_dup 12)]
+{
+ REAL_VALUE_TYPE rv;
+ const int lo_word = FLOAT_WORDS_BIG_ENDIAN ? GET_MODE_SIZE (DFmode) : 0;
+ const int hi_word = FLOAT_WORDS_BIG_ENDIAN ? 0 : GET_MODE_SIZE (DFmode);
+
+ operands[5] = simplify_gen_subreg (DFmode, operands[1], TFmode, hi_word);
+ operands[6] = simplify_gen_subreg (DFmode, operands[1], TFmode, lo_word);
+ operands[7] = simplify_gen_subreg (DFmode, operands[2], TFmode, hi_word);
+ operands[8] = simplify_gen_subreg (DFmode, operands[2], TFmode, lo_word);
+ operands[11] = gen_label_rtx ();
+ operands[12] = gen_label_rtx ();
+ real_inf (&rv);
+ operands[13] = force_const_mem (DFmode,
+ CONST_DOUBLE_FROM_REAL_VALUE (rv, DFmode));
+ operands[14] = force_const_mem (DFmode,
+ CONST_DOUBLE_FROM_REAL_VALUE (dconst0,
+ DFmode));
+ if (TARGET_TOC)
+ {
+ operands[13] = gen_rtx_MEM (DFmode,
+ create_TOC_reference (XEXP (operands[13], 0)));
+ operands[14] = gen_rtx_MEM (DFmode,
+ create_TOC_reference (XEXP (operands[14], 0)));
+ set_mem_alias_set (operands[13], get_TOC_alias_set ());
+ set_mem_alias_set (operands[14], get_TOC_alias_set ());
+ RTX_UNCHANGING_P (operands[13]) = 1;
+ RTX_UNCHANGING_P (operands[14]) = 1;
+ }
+})
;; Now we have the scc insns. We can do some combinations because of the
;; way the machine works.
@@ -11376,10 +11406,10 @@
(const_string "mfcr")))
(set_attr "length" "12")])
-;; Same as above, but get the GT bit.
-(define_insn "move_from_CR_gt_bit"
+;; Same as above, but get the EQ bit.
+(define_insn "move_from_CR_eq_bit"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (unspec:SI [(match_operand 1 "cc_reg_operand" "y")] UNSPEC_MV_CR_GT))]
+ (unspec:SI [(match_operand 1 "cc_reg_operand" "y")] UNSPEC_MV_CR_EQ))]
"TARGET_E500"
"mfcr %0\;{rlinm|rlwinm} %0,%0,%D1,1"
[(set_attr "type" "mfcr")
diff --git a/contrib/gcc/config/rs6000/rtems.h b/contrib/gcc/config/rs6000/rtems.h
index 0245269..d83e1eb 100644
--- a/contrib/gcc/config/rs6000/rtems.h
+++ b/contrib/gcc/config/rs6000/rtems.h
@@ -1,5 +1,6 @@
/* Definitions for rtems targeting a PowerPC using elf.
- Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2005
+ Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
This file is part of GCC.
@@ -27,6 +28,7 @@
{ \
builtin_define_std ("PPC"); \
builtin_define ("__rtems__"); \
+ builtin_define ("__USE_INIT_FINI__"); \
builtin_assert ("system=rtems"); \
builtin_assert ("cpu=powerpc"); \
builtin_assert ("machine=powerpc"); \
@@ -36,3 +38,20 @@
#undef CPP_OS_DEFAULT_SPEC
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"
+
+#define CPP_OS_RTEMS_SPEC "\
+%{!mcpu*: %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\
+%{mcpu=403: %{!Dppc*: %{!Dmpc*: -Dppc403} } } \
+%{mcpu=505: %{!Dppc*: %{!Dmpc*: -Dmpc505} } } \
+%{mcpu=601: %{!Dppc*: %{!Dmpc*: -Dppc601} } } \
+%{mcpu=602: %{!Dppc*: %{!Dmpc*: -Dppc602} } } \
+%{mcpu=603: %{!Dppc*: %{!Dmpc*: -Dppc603} } } \
+%{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \
+%{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \
+%{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \
+%{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \
+%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } }"
+
+#undef SUBSUBTARGET_EXTRA_SPECS
+#define SUBSUBTARGET_EXTRA_SPECS \
+ { "cpp_os_rtems", CPP_OS_RTEMS_SPEC }
diff --git a/contrib/gcc/config/rs6000/spe.h b/contrib/gcc/config/rs6000/spe.h
index 1676516..878fc72 100644
--- a/contrib/gcc/config/rs6000/spe.h
+++ b/contrib/gcc/config/rs6000/spe.h
@@ -1088,4 +1088,23 @@ __ev_set_spefscr_frmc (int rnd)
__builtin_spe_mtspefscr (i);
}
+/* The SPE PIM says these are declared in <spe.h>, although they are
+ not provided by GCC: they must be taken from a separate
+ library. */
+extern short int atosfix16 (const char *);
+extern int atosfix32 (const char *);
+extern long long atosfix64 (const char *);
+
+extern unsigned short atoufix16 (const char *);
+extern unsigned int atoufix32 (const char *);
+extern unsigned long long atoufix64 (const char *);
+
+extern short int strtosfix16 (const char *, char **);
+extern int strtosfix32 (const char *, char **);
+extern long long strtosfix64 (const char *, char **);
+
+extern unsigned short int strtoufix16 (const char *, char **);
+extern unsigned int strtoufix32 (const char *, char **);
+extern unsigned long long strtoufix64 (const char *, char **);
+
#endif /* _SPE_H */
diff --git a/contrib/gcc/config/rs6000/spe.md b/contrib/gcc/config/rs6000/spe.md
index 5eb6302..306accd 100644
--- a/contrib/gcc/config/rs6000/spe.md
+++ b/contrib/gcc/config/rs6000/spe.md
@@ -2458,14 +2458,14 @@
;; FP comparison stuff.
;; Flip the GT bit.
-(define_insn "e500_flip_gt_bit"
+(define_insn "e500_flip_eq_bit"
[(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
(unspec:CCFP
[(match_operand:CCFP 1 "cc_reg_operand" "y")] 999))]
"!TARGET_FPRS && TARGET_HARD_FLOAT"
"*
{
- return output_e500_flip_gt_bit (operands[0], operands[1]);
+ return output_e500_flip_eq_bit (operands[0], operands[1]);
}"
[(set_attr "type" "cr_logical")])
diff --git a/contrib/gcc/config/rs6000/sysv4.h b/contrib/gcc/config/rs6000/sysv4.h
index ea149f0..57af869 100644
--- a/contrib/gcc/config/rs6000/sysv4.h
+++ b/contrib/gcc/config/rs6000/sysv4.h
@@ -1086,7 +1086,7 @@ extern int fixuplabelno;
#define LINK_START_FREEBSD_SPEC ""
#define LINK_OS_FREEBSD_SPEC "\
- %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
+ %{p:%nconsider using `-pg' instead of `-p' with gprof(1)} \
%{Wl,*:%*} \
%{v:-V} \
%{assert*} %{R*} %{rpath*} %{defsym*} \
@@ -1115,8 +1115,9 @@ extern int fixuplabelno;
%{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
#endif
-#define ENDFILE_LINUX_SPEC "%{!shared:crtend.o%s} %{shared:crtendS.o%s} \
-%{mnewlib: ecrtn.o%s} %{!mnewlib: crtn.o%s}"
+#define ENDFILE_LINUX_SPEC "\
+%{shared|pie:crtendS.o%s;:crtend.o%s} \
+%{mnewlib:ecrtn.o%s;:crtn.o%s}"
#define LINK_START_LINUX_SPEC ""
@@ -1358,4 +1359,4 @@ ncrtn.o%s"
#define DOUBLE_INT_ASM_OP "\t.quad\t"
/* Generate entries in .fixup for relocatable addresses. */
-#define RELOCATABLE_NEEDS_FIXUP
+#define RELOCATABLE_NEEDS_FIXUP 1
diff --git a/contrib/gcc/config/rs6000/t-aix43 b/contrib/gcc/config/rs6000/t-aix43
index a716209..8c2592f 100644
--- a/contrib/gcc/config/rs6000/t-aix43
+++ b/contrib/gcc/config/rs6000/t-aix43
@@ -58,9 +58,12 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/
SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
SHLIB_NM_FLAGS = -Bpg -X32_64
+# GCC 128-bit long double support routines.
+LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c
+
# Either 32-bit and 64-bit objects in archives.
AR_FLAGS_FOR_TARGET = -X32_64
diff --git a/contrib/gcc/config/rs6000/t-aix52 b/contrib/gcc/config/rs6000/t-aix52
index bddcdb1..839bd0a 100644
--- a/contrib/gcc/config/rs6000/t-aix52
+++ b/contrib/gcc/config/rs6000/t-aix52
@@ -39,9 +39,12 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/
SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
SHLIB_NM_FLAGS = -Bpg -X32_64
+# GCC 128-bit long double support routines.
+LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c
+
# Either 32-bit and 64-bit objects in archives.
AR_FLAGS_FOR_TARGET = -X32_64
diff --git a/contrib/gcc/config/rs6000/t-linux64 b/contrib/gcc/config/rs6000/t-linux64
index 77ba93e..6d1e6f4 100644
--- a/contrib/gcc/config/rs6000/t-linux64
+++ b/contrib/gcc/config/rs6000/t-linux64
@@ -1,8 +1,9 @@
#rs6000/t-linux64
-LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \
- $(srcdir)/config/rs6000/darwin-ldouble.c
+LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c
+LIB2FUNCS_STATIC_EXTRA = eabi.S $(srcdir)/config/rs6000/darwin-ldouble.c
+LIB2FUNCS_SHARED_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble-shared.c
TARGET_LIBGCC2_CFLAGS = -mno-minimal-toc -fPIC -specs=bispecs
diff --git a/contrib/gcc/config/rs6000/t-newas b/contrib/gcc/config/rs6000/t-newas
index a26ce39..d5d03a1 100644
--- a/contrib/gcc/config/rs6000/t-newas
+++ b/contrib/gcc/config/rs6000/t-newas
@@ -27,6 +27,9 @@ MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT) \
mcpu?powerpc=mpowerpc-gpopt \
mcpu?powerpc=mpowerpc-gfxopt
+# GCC 128-bit long double support routines.
+LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c
+
# Aix 3.2.x needs milli.exp for -mcpu=common
EXTRA_PARTS = milli.exp
milli.exp: $(srcdir)/config/rs6000/milli.exp
diff --git a/contrib/gcc/config/rs6000/t-rtems b/contrib/gcc/config/rs6000/t-rtems
index 364a22d..05d9a26 100644
--- a/contrib/gcc/config/rs6000/t-rtems
+++ b/contrib/gcc/config/rs6000/t-rtems
@@ -33,6 +33,7 @@ MULTILIB_MATCHES = ${MULTILIB_MATCHES_ENDIAN} \
# Cpu-variants supporting new exception processing only
MULTILIB_NEW_EXCEPTIONS_ONLY = \
+*mcpu=505*/*D_OLD_EXCEPTIONS* \
*mcpu=604*/*D_OLD_EXCEPTIONS* \
*mcpu=750*/*D_OLD_EXCEPTIONS* \
*mcpu=821*/*D_OLD_EXCEPTIONS* \
OpenPOWER on IntegriCloud