summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000-builtin.def
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/rs6000/rs6000-builtin.def')
-rw-r--r--gcc/config/rs6000/rs6000-builtin.def23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000-builtin.def b/gcc/config/rs6000/rs6000-builtin.def
index 4b06323a07f..7ff8db5dccc 100644
--- a/gcc/config/rs6000/rs6000-builtin.def
+++ b/gcc/config/rs6000/rs6000-builtin.def
@@ -28,6 +28,7 @@
RS6000_BUILTIN_1 -- 1 arg builtins
RS6000_BUILTIN_2 -- 2 arg builtins
RS6000_BUILTIN_3 -- 3 arg builtins
+ RS6000_BUILTIN_4 -- 4 arg builtins
RS6000_BUILTIN_A -- ABS builtins
RS6000_BUILTIN_D -- DST builtins
RS6000_BUILTIN_H -- HTM builtins
@@ -57,6 +58,10 @@
#error "RS6000_BUILTIN_3 is not defined."
#endif
+#ifndef RS6000_BUILTIN_4
+ #error "RS6000_BUILTIN_4 is not defined."
+#endif
+
#ifndef RS6000_BUILTIN_A
#error "RS6000_BUILTIN_A is not defined."
#endif
@@ -969,6 +974,14 @@
| RS6000_BTC_TERNARY), \
CODE_FOR_ ## ICODE) /* ICODE */
+#define BU_FUTURE_V_4(ENUM, NAME, ATTR, ICODE) \
+ RS6000_BUILTIN_4 (FUTURE_BUILTIN_ ## ENUM, /* ENUM */ \
+ "__builtin_altivec_" NAME, /* NAME */ \
+ RS6000_BTM_FUTURE, /* MASK */ \
+ (RS6000_BTC_ ## ATTR /* ATTR */ \
+ | RS6000_BTC_QUATERNARY), \
+ CODE_FOR_ ## ICODE) /* ICODE */
+
#define BU_FUTURE_OVERLOAD_1(ENUM, NAME) \
RS6000_BUILTIN_1 (FUTURE_BUILTIN_VEC_ ## ENUM, /* ENUM */ \
"__builtin_vec_" NAME, /* NAME */ \
@@ -993,6 +1006,14 @@
| RS6000_BTC_TERNARY), \
CODE_FOR_nothing) /* ICODE */
+#define BU_FUTURE_OVERLOAD_4(ENUM, NAME) \
+ RS6000_BUILTIN_4 (FUTURE_BUILTIN_VEC_ ## ENUM, /* ENUM */ \
+ "__builtin_vec_" NAME, /* NAME */ \
+ RS6000_BTM_FUTURE, /* MASK */ \
+ (RS6000_BTC_OVERLOADED /* ATTR */ \
+ | RS6000_BTC_QUATERNARY), \
+ CODE_FOR_nothing) /* ICODE */
+
/* Miscellaneous (non-vector) builtins for instructions which may be
added at some point in the future. */
@@ -2589,11 +2610,13 @@ BU_FUTURE_V_2 (VCTZDM, "vctzdm", CONST, vctzdm)
BU_FUTURE_V_2 (VPDEPD, "vpdepd", CONST, vpdepd)
BU_FUTURE_V_2 (VPEXTD, "vpextd", CONST, vpextd)
BU_FUTURE_V_2 (VGNB, "vgnb", CONST, vgnb)
+BU_FUTURE_V_4 (XXEVAL, "xxeval", CONST, xxeval)
/* Future architecture overloaded vector built-ins. */
BU_FUTURE_OVERLOAD_2 (CLRL, "clrl")
BU_FUTURE_OVERLOAD_2 (CLRR, "clrr")
BU_FUTURE_OVERLOAD_2 (GNB, "gnb")
+BU_FUTURE_OVERLOAD_4 (XXEVAL, "xxeval")
/* 1 argument crypto functions. */