diff options
Diffstat (limited to 'gcc/config/rs6000/rs6000-builtin.def')
-rw-r--r-- | gcc/config/rs6000/rs6000-builtin.def | 23 |
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. */ |