aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000-builtin.def
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2017-06-07 17:22:33 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2017-06-07 17:22:33 +0200
commite075a6ccbf3d92136e918661bb8dde5add99c9a2 (patch)
tree9c4d5fe2631b03066e4687da20b6832dbe1f87d6 /gcc/config/rs6000/rs6000-builtin.def
parentbeaca945bb589e4f4219f66069e96e4c83a0e0a8 (diff)
downloadgcc-e075a6ccbf3d92136e918661bb8dde5add99c9a2.zip
gcc-e075a6ccbf3d92136e918661bb8dde5add99c9a2.tar.gz
gcc-e075a6ccbf3d92136e918661bb8dde5add99c9a2.tar.bz2
rs6000: Remove TARGET_SPE and TARGET_SPE_ABI and friends
* config/rs6000/rs6000-common.c (rs6000_handle_option): Remove SPE ABI handling. * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2. (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3, paired_divv2sf3): Similar. * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI, SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify. * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S. Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X. Rename the paired_* instruction patterns. * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not define __SPE__. * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete. * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S. (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size, spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with PAIRED_VECTOR_MODE. (struct machine_function): Delete field spe_insn_chain_scanned_p. (spe_func_has_64bit_regs_p): Delete. (spe_expand_predicate_builtin): Delete. (spe_expand_evsel_builtin): Delete. (TARGET_DWARF_REGISTER_SPAN): Do not define. (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define. (invalid_e500_subreg): Delete. (rs6000_legitimize_address): Always force_reg op2 as well, for paired single memory accesses. (rs6000_member_type_forces_blk): Delete. (rs6000_spe_function_arg): Delete. (rs6000_expand_unop_builtin): Delete SPE handling. (rs6000_expand_binop_builtin): Ditto. (spe_expand_stv_builtin): Delete. (bdesc_2arg_spe): Delete. (spe_expand_builtin): Delete. (spe_expand_predicate_builtin): Delete. (spe_expand_evsel_builtin): Delete. (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling. (spe_init_builtins): Delete. (spe_func_has_64bit_regs_p): Delete. (savres_routine_name): Delete "info" parameter. Adjust callers. (rs6000_emit_stack_reset): Ditto. (rs6000_dwarf_register_span): Delete. * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE, UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P, SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S): Delete. * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO): Delete. * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete. * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE. * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3, mulv2sf3, divv2sf3): Delete expanders. From-SVN: r248980
Diffstat (limited to 'gcc/config/rs6000/rs6000-builtin.def')
-rw-r--r--gcc/config/rs6000/rs6000-builtin.def313
1 files changed, 6 insertions, 307 deletions
diff --git a/gcc/config/rs6000/rs6000-builtin.def b/gcc/config/rs6000/rs6000-builtin.def
index de6b2cc..241c439 100644
--- a/gcc/config/rs6000/rs6000-builtin.def
+++ b/gcc/config/rs6000/rs6000-builtin.def
@@ -30,11 +30,9 @@
RS6000_BUILTIN_3 -- 3 arg builtins
RS6000_BUILTIN_A -- ABS builtins
RS6000_BUILTIN_D -- DST builtins
- RS6000_BUILTIN_E -- SPE EVSEL builtins.
RS6000_BUILTIN_H -- HTM builtins
RS6000_BUILTIN_P -- Altivec, VSX, ISA 2.07 vector predicate builtins
RS6000_BUILTIN_Q -- Paired floating point VSX predicate builtins
- RS6000_BUILTIN_S -- SPE predicate builtins
RS6000_BUILTIN_X -- special builtins
Each of the above macros takes 4 arguments:
@@ -68,10 +66,6 @@
#error "RS6000_BUILTIN_D is not defined."
#endif
-#ifndef RS6000_BUILTIN_E
- #error "RS6000_BUILTIN_E is not defined."
-#endif
-
#ifndef RS6000_BUILTIN_H
#error "RS6000_BUILTIN_H is not defined."
#endif
@@ -84,10 +78,6 @@
#error "RS6000_BUILTIN_Q is not defined."
#endif
-#ifndef RS6000_BUILTIN_S
- #error "RS6000_BUILTIN_S is not defined."
-#endif
-
#ifndef RS6000_BUILTIN_X
#error "RS6000_BUILTIN_X is not defined."
#endif
@@ -551,55 +541,6 @@
| RS6000_BTC_VOID), \
CODE_FOR_ ## ICODE) /* ICODE */
-/* SPE convenience macros. */
-#define BU_SPE_1(ENUM, NAME, ATTR, ICODE) \
- RS6000_BUILTIN_1 (SPE_BUILTIN_ ## ENUM, /* ENUM */ \
- "__builtin_spe_" NAME, /* NAME */ \
- RS6000_BTM_SPE, /* MASK */ \
- (RS6000_BTC_ ## ATTR /* ATTR */ \
- | RS6000_BTC_UNARY), \
- CODE_FOR_ ## ICODE) /* ICODE */
-
-#define BU_SPE_2(ENUM, NAME, ATTR, ICODE) \
- RS6000_BUILTIN_2 (SPE_BUILTIN_ ## ENUM, /* ENUM */ \
- "__builtin_spe_" NAME, /* NAME */ \
- RS6000_BTM_SPE, /* MASK */ \
- (RS6000_BTC_ ## ATTR /* ATTR */ \
- | RS6000_BTC_BINARY), \
- CODE_FOR_ ## ICODE) /* ICODE */
-
-#define BU_SPE_3(ENUM, NAME, ATTR, ICODE) \
- RS6000_BUILTIN_3 (SPE_BUILTIN_ ## ENUM, /* ENUM */ \
- "__builtin_spe_" NAME, /* NAME */ \
- RS6000_BTM_SPE, /* MASK */ \
- (RS6000_BTC_ ## ATTR /* ATTR */ \
- | RS6000_BTC_TERNARY), \
- CODE_FOR_ ## ICODE) /* ICODE */
-
-#define BU_SPE_E(ENUM, NAME, ATTR, ICODE) \
- RS6000_BUILTIN_E (SPE_BUILTIN_ ## ENUM, /* ENUM */ \
- "__builtin_spe_" NAME, /* NAME */ \
- RS6000_BTM_SPE, /* MASK */ \
- (RS6000_BTC_ ## ATTR /* ATTR */ \
- | RS6000_BTC_EVSEL), \
- CODE_FOR_ ## ICODE) /* ICODE */
-
-#define BU_SPE_P(ENUM, NAME, ATTR, ICODE) \
- RS6000_BUILTIN_S (SPE_BUILTIN_ ## ENUM, /* ENUM */ \
- "__builtin_spe_" NAME, /* NAME */ \
- RS6000_BTM_SPE, /* MASK */ \
- (RS6000_BTC_ ## ATTR /* ATTR */ \
- | RS6000_BTC_PREDICATE), \
- CODE_FOR_ ## ICODE) /* ICODE */
-
-#define BU_SPE_X(ENUM, NAME, ATTR) \
- RS6000_BUILTIN_X (SPE_BUILTIN_ ## ENUM, /* ENUM */ \
- "__builtin_spe_" NAME, /* NAME */ \
- RS6000_BTM_SPE, /* MASK */ \
- (RS6000_BTC_ ## ATTR /* ATTR */ \
- | RS6000_BTC_SPECIAL), \
- CODE_FOR_nothing) /* ICODE */
-
/* Paired floating point convenience macros. */
#define BU_PAIRED_1(ENUM, NAME, ATTR, ICODE) \
RS6000_BUILTIN_1 (PAIRED_BUILTIN_ ## ENUM, /* ENUM */ \
@@ -2370,10 +2311,10 @@ BU_PAIRED_3 (SUM1, "sum1", FP, paired_sum1)
BU_PAIRED_3 (SELV2SF4, "selv2sf4", CONST, selv2sf4)
/* 2 argument paired floating point builtins. */
-BU_PAIRED_2 (DIVV2SF3, "divv2sf3", FP, paired_divv2sf3)
-BU_PAIRED_2 (ADDV2SF3, "addv2sf3", FP, paired_addv2sf3)
-BU_PAIRED_2 (SUBV2SF3, "subv2sf3", FP, paired_subv2sf3)
-BU_PAIRED_2 (MULV2SF3, "mulv2sf3", FP, paired_mulv2sf3)
+BU_PAIRED_2 (DIVV2SF3, "divv2sf3", FP, divv2sf3)
+BU_PAIRED_2 (ADDV2SF3, "addv2sf3", FP, addv2sf3)
+BU_PAIRED_2 (SUBV2SF3, "subv2sf3", FP, subv2sf3)
+BU_PAIRED_2 (MULV2SF3, "mulv2sf3", FP, mulv2sf3)
BU_PAIRED_2 (MULS0, "muls0", FP, paired_muls0)
BU_PAIRED_2 (MULS1, "muls1", FP, paired_muls1)
BU_PAIRED_2 (MERGE00, "merge00", CONST, paired_merge00)
@@ -2382,9 +2323,9 @@ BU_PAIRED_2 (MERGE10, "merge10", CONST, paired_merge10)
BU_PAIRED_2 (MERGE11, "merge11", CONST, paired_merge11)
/* 1 argument paired floating point builtin functions. */
-BU_PAIRED_1 (ABSV2SF2, "absv2sf2", CONST, paired_absv2sf2)
+BU_PAIRED_1 (ABSV2SF2, "absv2sf2", CONST, absv2sf2)
BU_PAIRED_1 (NABSV2SF2, "nabsv2sf2", CONST, nabsv2sf2)
-BU_PAIRED_1 (NEGV2SF2, "negv2sf2", CONST, paired_negv2sf2)
+BU_PAIRED_1 (NEGV2SF2, "negv2sf2", CONST, negv2sf2)
BU_PAIRED_1 (SQRTV2SF2, "sqrtv2sf2", FP, sqrtv2sf2)
BU_PAIRED_1 (RESV2SF, "resv2sf2", FP, resv2sf2)
@@ -2396,248 +2337,6 @@ BU_PAIRED_X (LX, "lx", MISC)
BU_PAIRED_P (CMPU0, "cmpu0", CONST, paired_cmpu0)
BU_PAIRED_P (CMPU1, "cmpu1", CONST, paired_cmpu1)
-/* PowerPC E500 builtins (SPE). */
-
-BU_SPE_2 (EVADDW, "evaddw", MISC, addv2si3)
-BU_SPE_2 (EVAND, "evand", MISC, andv2si3)
-BU_SPE_2 (EVANDC, "evandc", MISC, spe_evandc)
-BU_SPE_2 (EVDIVWS, "evdivws", MISC, divv2si3)
-BU_SPE_2 (EVDIVWU, "evdivwu", MISC, spe_evdivwu)
-BU_SPE_2 (EVEQV, "eveqv", MISC, spe_eveqv)
-BU_SPE_2 (EVFSADD, "evfsadd", MISC, spe_evfsadd)
-BU_SPE_2 (EVFSDIV, "evfsdiv", MISC, spe_evfsdiv)
-BU_SPE_2 (EVFSMUL, "evfsmul", MISC, spe_evfsmul)
-BU_SPE_2 (EVFSSUB, "evfssub", MISC, spe_evfssub)
-BU_SPE_2 (EVMERGEHI, "evmergehi", MISC, spe_evmergehi)
-BU_SPE_2 (EVMERGEHILO, "evmergehilo", MISC, spe_evmergehilo)
-BU_SPE_2 (EVMERGELO, "evmergelo", MISC, spe_evmergelo)
-BU_SPE_2 (EVMERGELOHI, "evmergelohi", MISC, spe_evmergelohi)
-BU_SPE_2 (EVMHEGSMFAA, "evmhegsmfaa", MISC, spe_evmhegsmfaa)
-BU_SPE_2 (EVMHEGSMFAN, "evmhegsmfan", MISC, spe_evmhegsmfan)
-BU_SPE_2 (EVMHEGSMIAA, "evmhegsmiaa", MISC, spe_evmhegsmiaa)
-BU_SPE_2 (EVMHEGSMIAN, "evmhegsmian", MISC, spe_evmhegsmian)
-BU_SPE_2 (EVMHEGUMIAA, "evmhegumiaa", MISC, spe_evmhegumiaa)
-BU_SPE_2 (EVMHEGUMIAN, "evmhegumian", MISC, spe_evmhegumian)
-BU_SPE_2 (EVMHESMF, "evmhesmf", MISC, spe_evmhesmf)
-BU_SPE_2 (EVMHESMFA, "evmhesmfa", MISC, spe_evmhesmfa)
-BU_SPE_2 (EVMHESMFAAW, "evmhesmfaaw", MISC, spe_evmhesmfaaw)
-BU_SPE_2 (EVMHESMFANW, "evmhesmfanw", MISC, spe_evmhesmfanw)
-BU_SPE_2 (EVMHESMI, "evmhesmi", MISC, spe_evmhesmi)
-BU_SPE_2 (EVMHESMIA, "evmhesmia", MISC, spe_evmhesmia)
-BU_SPE_2 (EVMHESMIAAW, "evmhesmiaaw", MISC, spe_evmhesmiaaw)
-BU_SPE_2 (EVMHESMIANW, "evmhesmianw", MISC, spe_evmhesmianw)
-BU_SPE_2 (EVMHESSF, "evmhessf", MISC, spe_evmhessf)
-BU_SPE_2 (EVMHESSFA, "evmhessfa", MISC, spe_evmhessfa)
-BU_SPE_2 (EVMHESSFAAW, "evmhessfaaw", MISC, spe_evmhessfaaw)
-BU_SPE_2 (EVMHESSFANW, "evmhessfanw", MISC, spe_evmhessfanw)
-BU_SPE_2 (EVMHESSIAAW, "evmhessiaaw", MISC, spe_evmhessiaaw)
-BU_SPE_2 (EVMHESSIANW, "evmhessianw", MISC, spe_evmhessianw)
-BU_SPE_2 (EVMHEUMI, "evmheumi", MISC, spe_evmheumi)
-BU_SPE_2 (EVMHEUMIA, "evmheumia", MISC, spe_evmheumia)
-BU_SPE_2 (EVMHEUMIAAW, "evmheumiaaw", MISC, spe_evmheumiaaw)
-BU_SPE_2 (EVMHEUMIANW, "evmheumianw", MISC, spe_evmheumianw)
-BU_SPE_2 (EVMHEUSIAAW, "evmheusiaaw", MISC, spe_evmheusiaaw)
-BU_SPE_2 (EVMHEUSIANW, "evmheusianw", MISC, spe_evmheusianw)
-BU_SPE_2 (EVMHOGSMFAA, "evmhogsmfaa", MISC, spe_evmhogsmfaa)
-BU_SPE_2 (EVMHOGSMFAN, "evmhogsmfan", MISC, spe_evmhogsmfan)
-BU_SPE_2 (EVMHOGSMIAA, "evmhogsmiaa", MISC, spe_evmhogsmiaa)
-BU_SPE_2 (EVMHOGSMIAN, "evmhogsmian", MISC, spe_evmhogsmian)
-BU_SPE_2 (EVMHOGUMIAA, "evmhogumiaa", MISC, spe_evmhogumiaa)
-BU_SPE_2 (EVMHOGUMIAN, "evmhogumian", MISC, spe_evmhogumian)
-BU_SPE_2 (EVMHOSMF, "evmhosmf", MISC, spe_evmhosmf)
-BU_SPE_2 (EVMHOSMFA, "evmhosmfa", MISC, spe_evmhosmfa)
-BU_SPE_2 (EVMHOSMFAAW, "evmhosmfaaw", MISC, spe_evmhosmfaaw)
-BU_SPE_2 (EVMHOSMFANW, "evmhosmfanw", MISC, spe_evmhosmfanw)
-BU_SPE_2 (EVMHOSMI, "evmhosmi", MISC, spe_evmhosmi)
-BU_SPE_2 (EVMHOSMIA, "evmhosmia", MISC, spe_evmhosmia)
-BU_SPE_2 (EVMHOSMIAAW, "evmhosmiaaw", MISC, spe_evmhosmiaaw)
-BU_SPE_2 (EVMHOSMIANW, "evmhosmianw", MISC, spe_evmhosmianw)
-BU_SPE_2 (EVMHOSSF, "evmhossf", MISC, spe_evmhossf)
-BU_SPE_2 (EVMHOSSFA, "evmhossfa", MISC, spe_evmhossfa)
-BU_SPE_2 (EVMHOSSFAAW, "evmhossfaaw", MISC, spe_evmhossfaaw)
-BU_SPE_2 (EVMHOSSFANW, "evmhossfanw", MISC, spe_evmhossfanw)
-BU_SPE_2 (EVMHOSSIAAW, "evmhossiaaw", MISC, spe_evmhossiaaw)
-BU_SPE_2 (EVMHOSSIANW, "evmhossianw", MISC, spe_evmhossianw)
-BU_SPE_2 (EVMHOUMI, "evmhoumi", MISC, spe_evmhoumi)
-BU_SPE_2 (EVMHOUMIA, "evmhoumia", MISC, spe_evmhoumia)
-BU_SPE_2 (EVMHOUMIAAW, "evmhoumiaaw", MISC, spe_evmhoumiaaw)
-BU_SPE_2 (EVMHOUMIANW, "evmhoumianw", MISC, spe_evmhoumianw)
-BU_SPE_2 (EVMHOUSIAAW, "evmhousiaaw", MISC, spe_evmhousiaaw)
-BU_SPE_2 (EVMHOUSIANW, "evmhousianw", MISC, spe_evmhousianw)
-BU_SPE_2 (EVMWHSMF, "evmwhsmf", MISC, spe_evmwhsmf)
-BU_SPE_2 (EVMWHSMFA, "evmwhsmfa", MISC, spe_evmwhsmfa)
-BU_SPE_2 (EVMWHSMI, "evmwhsmi", MISC, spe_evmwhsmi)
-BU_SPE_2 (EVMWHSMIA, "evmwhsmia", MISC, spe_evmwhsmia)
-BU_SPE_2 (EVMWHSSF, "evmwhssf", MISC, spe_evmwhssf)
-BU_SPE_2 (EVMWHSSFA, "evmwhssfa", MISC, spe_evmwhssfa)
-BU_SPE_2 (EVMWHUMI, "evmwhumi", MISC, spe_evmwhumi)
-BU_SPE_2 (EVMWHUMIA, "evmwhumia", MISC, spe_evmwhumia)
-BU_SPE_2 (EVMWLSMIAAW, "evmwlsmiaaw", MISC, spe_evmwlsmiaaw)
-BU_SPE_2 (EVMWLSMIANW, "evmwlsmianw", MISC, spe_evmwlsmianw)
-BU_SPE_2 (EVMWLSSIAAW, "evmwlssiaaw", MISC, spe_evmwlssiaaw)
-BU_SPE_2 (EVMWLSSIANW, "evmwlssianw", MISC, spe_evmwlssianw)
-BU_SPE_2 (EVMWLUMI, "evmwlumi", MISC, spe_evmwlumi)
-BU_SPE_2 (EVMWLUMIA, "evmwlumia", MISC, spe_evmwlumia)
-BU_SPE_2 (EVMWLUMIAAW, "evmwlumiaaw", MISC, spe_evmwlumiaaw)
-BU_SPE_2 (EVMWLUMIANW, "evmwlumianw", MISC, spe_evmwlumianw)
-BU_SPE_2 (EVMWLUSIAAW, "evmwlusiaaw", MISC, spe_evmwlusiaaw)
-BU_SPE_2 (EVMWLUSIANW, "evmwlusianw", MISC, spe_evmwlusianw)
-BU_SPE_2 (EVMWSMF, "evmwsmf", MISC, spe_evmwsmf)
-BU_SPE_2 (EVMWSMFA, "evmwsmfa", MISC, spe_evmwsmfa)
-BU_SPE_2 (EVMWSMFAA, "evmwsmfaa", MISC, spe_evmwsmfaa)
-BU_SPE_2 (EVMWSMFAN, "evmwsmfan", MISC, spe_evmwsmfan)
-BU_SPE_2 (EVMWSMI, "evmwsmi", MISC, spe_evmwsmi)
-BU_SPE_2 (EVMWSMIA, "evmwsmia", MISC, spe_evmwsmia)
-BU_SPE_2 (EVMWSMIAA, "evmwsmiaa", MISC, spe_evmwsmiaa)
-BU_SPE_2 (EVMWSMIAN, "evmwsmian", MISC, spe_evmwsmian)
-BU_SPE_2 (EVMWSSF, "evmwssf", MISC, spe_evmwssf)
-BU_SPE_2 (EVMWSSFA, "evmwssfa", MISC, spe_evmwssfa)
-BU_SPE_2 (EVMWSSFAA, "evmwssfaa", MISC, spe_evmwssfaa)
-BU_SPE_2 (EVMWSSFAN, "evmwssfan", MISC, spe_evmwssfan)
-BU_SPE_2 (EVMWUMI, "evmwumi", MISC, spe_evmwumi)
-BU_SPE_2 (EVMWUMIA, "evmwumia", MISC, spe_evmwumia)
-BU_SPE_2 (EVMWUMIAA, "evmwumiaa", MISC, spe_evmwumiaa)
-BU_SPE_2 (EVMWUMIAN, "evmwumian", MISC, spe_evmwumian)
-BU_SPE_2 (EVNAND, "evnand", MISC, spe_evnand)
-BU_SPE_2 (EVNOR, "evnor", MISC, spe_evnor)
-BU_SPE_2 (EVOR, "evor", MISC, spe_evor)
-BU_SPE_2 (EVORC, "evorc", MISC, spe_evorc)
-BU_SPE_2 (EVRLW, "evrlw", MISC, spe_evrlw)
-BU_SPE_2 (EVSLW, "evslw", MISC, spe_evslw)
-BU_SPE_2 (EVSRWS, "evsrws", MISC, spe_evsrws)
-BU_SPE_2 (EVSRWU, "evsrwu", MISC, spe_evsrwu)
-BU_SPE_2 (EVSUBFW, "evsubfw", MISC, subv2si3)
-
-/* SPE binary operations expecting a 5-bit unsigned literal. */
-BU_SPE_2 (EVADDIW, "evaddiw", MISC, spe_evaddiw)
-
-BU_SPE_2 (EVRLWI, "evrlwi", MISC, spe_evrlwi)
-BU_SPE_2 (EVSLWI, "evslwi", MISC, spe_evslwi)
-BU_SPE_2 (EVSRWIS, "evsrwis", MISC, spe_evsrwis)
-BU_SPE_2 (EVSRWIU, "evsrwiu", MISC, spe_evsrwiu)
-BU_SPE_2 (EVSUBIFW, "evsubifw", MISC, spe_evsubifw)
-BU_SPE_2 (EVMWHSSFAA, "evmwhssfaa", MISC, spe_evmwhssfaa)
-BU_SPE_2 (EVMWHSSMAA, "evmwhssmaa", MISC, spe_evmwhssmaa)
-BU_SPE_2 (EVMWHSMFAA, "evmwhsmfaa", MISC, spe_evmwhsmfaa)
-BU_SPE_2 (EVMWHSMIAA, "evmwhsmiaa", MISC, spe_evmwhsmiaa)
-BU_SPE_2 (EVMWHUSIAA, "evmwhusiaa", MISC, spe_evmwhusiaa)
-BU_SPE_2 (EVMWHUMIAA, "evmwhumiaa", MISC, spe_evmwhumiaa)
-BU_SPE_2 (EVMWHSSFAN, "evmwhssfan", MISC, spe_evmwhssfan)
-BU_SPE_2 (EVMWHSSIAN, "evmwhssian", MISC, spe_evmwhssian)
-BU_SPE_2 (EVMWHSMFAN, "evmwhsmfan", MISC, spe_evmwhsmfan)
-BU_SPE_2 (EVMWHSMIAN, "evmwhsmian", MISC, spe_evmwhsmian)
-BU_SPE_2 (EVMWHUSIAN, "evmwhusian", MISC, spe_evmwhusian)
-BU_SPE_2 (EVMWHUMIAN, "evmwhumian", MISC, spe_evmwhumian)
-BU_SPE_2 (EVMWHGSSFAA, "evmwhgssfaa", MISC, spe_evmwhgssfaa)
-BU_SPE_2 (EVMWHGSMFAA, "evmwhgsmfaa", MISC, spe_evmwhgsmfaa)
-BU_SPE_2 (EVMWHGSMIAA, "evmwhgsmiaa", MISC, spe_evmwhgsmiaa)
-BU_SPE_2 (EVMWHGUMIAA, "evmwhgumiaa", MISC, spe_evmwhgumiaa)
-BU_SPE_2 (EVMWHGSSFAN, "evmwhgssfan", MISC, spe_evmwhgssfan)
-BU_SPE_2 (EVMWHGSMFAN, "evmwhgsmfan", MISC, spe_evmwhgsmfan)
-BU_SPE_2 (EVMWHGSMIAN, "evmwhgsmian", MISC, spe_evmwhgsmian)
-BU_SPE_2 (EVMWHGUMIAN, "evmwhgumian", MISC, spe_evmwhgumian)
-BU_SPE_2 (BRINC, "brinc", MISC, spe_brinc)
-BU_SPE_2 (EVXOR, "evxor", MISC, xorv2si3)
-
-/* SPE predicate builtins. */
-BU_SPE_P (EVCMPEQ, "evcmpeq", MISC, spe_evcmpeq)
-BU_SPE_P (EVCMPGTS, "evcmpgts", MISC, spe_evcmpgts)
-BU_SPE_P (EVCMPGTU, "evcmpgtu", MISC, spe_evcmpgtu)
-BU_SPE_P (EVCMPLTS, "evcmplts", MISC, spe_evcmplts)
-BU_SPE_P (EVCMPLTU, "evcmpltu", MISC, spe_evcmpltu)
-BU_SPE_P (EVFSCMPEQ, "evfscmpeq", MISC, spe_evfscmpeq)
-BU_SPE_P (EVFSCMPGT, "evfscmpgt", MISC, spe_evfscmpgt)
-BU_SPE_P (EVFSCMPLT, "evfscmplt", MISC, spe_evfscmplt)
-BU_SPE_P (EVFSTSTEQ, "evfststeq", MISC, spe_evfststeq)
-BU_SPE_P (EVFSTSTGT, "evfststgt", MISC, spe_evfststgt)
-BU_SPE_P (EVFSTSTLT, "evfststlt", MISC, spe_evfststlt)
-
-/* SPE evsel builtins. */
-BU_SPE_E (EVSEL_CMPGTS, "evsel_gts", MISC, spe_evcmpgts)
-BU_SPE_E (EVSEL_CMPGTU, "evsel_gtu", MISC, spe_evcmpgtu)
-BU_SPE_E (EVSEL_CMPLTS, "evsel_lts", MISC, spe_evcmplts)
-BU_SPE_E (EVSEL_CMPLTU, "evsel_ltu", MISC, spe_evcmpltu)
-BU_SPE_E (EVSEL_CMPEQ, "evsel_eq", MISC, spe_evcmpeq)
-BU_SPE_E (EVSEL_FSCMPGT, "evsel_fsgt", MISC, spe_evfscmpgt)
-BU_SPE_E (EVSEL_FSCMPLT, "evsel_fslt", MISC, spe_evfscmplt)
-BU_SPE_E (EVSEL_FSCMPEQ, "evsel_fseq", MISC, spe_evfscmpeq)
-BU_SPE_E (EVSEL_FSTSTGT, "evsel_fststgt", MISC, spe_evfststgt)
-BU_SPE_E (EVSEL_FSTSTLT, "evsel_fststlt", MISC, spe_evfststlt)
-BU_SPE_E (EVSEL_FSTSTEQ, "evsel_fststeq", MISC, spe_evfststeq)
-
-BU_SPE_1 (EVABS, "evabs", CONST, absv2si2)
-BU_SPE_1 (EVADDSMIAAW, "evaddsmiaaw", CONST, spe_evaddsmiaaw)
-BU_SPE_1 (EVADDSSIAAW, "evaddssiaaw", CONST, spe_evaddssiaaw)
-BU_SPE_1 (EVADDUMIAAW, "evaddumiaaw", CONST, spe_evaddumiaaw)
-BU_SPE_1 (EVADDUSIAAW, "evaddusiaaw", CONST, spe_evaddusiaaw)
-BU_SPE_1 (EVCNTLSW, "evcntlsw", CONST, spe_evcntlsw)
-BU_SPE_1 (EVCNTLZW, "evcntlzw", CONST, spe_evcntlzw)
-BU_SPE_1 (EVEXTSB, "evextsb", CONST, spe_evextsb)
-BU_SPE_1 (EVEXTSH, "evextsh", CONST, spe_evextsh)
-BU_SPE_1 (EVFSABS, "evfsabs", CONST, spe_evfsabs)
-BU_SPE_1 (EVFSCFSF, "evfscfsf", CONST, spe_evfscfsf)
-BU_SPE_1 (EVFSCFSI, "evfscfsi", CONST, spe_evfscfsi)
-BU_SPE_1 (EVFSCFUF, "evfscfuf", CONST, spe_evfscfuf)
-BU_SPE_1 (EVFSCFUI, "evfscfui", CONST, spe_evfscfui)
-BU_SPE_1 (EVFSCTSF, "evfsctsf", CONST, spe_evfsctsf)
-BU_SPE_1 (EVFSCTSI, "evfsctsi", CONST, spe_evfsctsi)
-BU_SPE_1 (EVFSCTSIZ, "evfsctsiz", CONST, spe_evfsctsiz)
-BU_SPE_1 (EVFSCTUF, "evfsctuf", CONST, spe_evfsctuf)
-BU_SPE_1 (EVFSCTUI, "evfsctui", CONST, spe_evfsctui)
-BU_SPE_1 (EVFSCTUIZ, "evfsctuiz", CONST, spe_evfsctuiz)
-BU_SPE_1 (EVFSNABS, "evfsnabs", CONST, spe_evfsnabs)
-BU_SPE_1 (EVFSNEG, "evfsneg", CONST, spe_evfsneg)
-BU_SPE_1 (EVMRA, "evmra", CONST, spe_evmra)
-BU_SPE_1 (EVNEG, "evneg", CONST, negv2si2)
-BU_SPE_1 (EVRNDW, "evrndw", CONST, spe_evrndw)
-BU_SPE_1 (EVSUBFSMIAAW, "evsubfsmiaaw", CONST, spe_evsubfsmiaaw)
-BU_SPE_1 (EVSUBFSSIAAW, "evsubfssiaaw", CONST, spe_evsubfssiaaw)
-BU_SPE_1 (EVSUBFUMIAAW, "evsubfumiaaw", CONST, spe_evsubfumiaaw)
-BU_SPE_1 (EVSUBFUSIAAW, "evsubfusiaaw", CONST, spe_evsubfusiaaw)
-
-/* SPE builtins that are handled as special cases. */
-BU_SPE_X (EVLDD, "evldd", MISC)
-BU_SPE_X (EVLDDX, "evlddx", MISC)
-BU_SPE_X (EVLDH, "evldh", MISC)
-BU_SPE_X (EVLDHX, "evldhx", MISC)
-BU_SPE_X (EVLDW, "evldw", MISC)
-BU_SPE_X (EVLDWX, "evldwx", MISC)
-BU_SPE_X (EVLHHESPLAT, "evlhhesplat", MISC)
-BU_SPE_X (EVLHHESPLATX, "evlhhesplatx", MISC)
-BU_SPE_X (EVLHHOSSPLAT, "evlhhossplat", MISC)
-BU_SPE_X (EVLHHOSSPLATX, "evlhhossplatx", MISC)
-BU_SPE_X (EVLHHOUSPLAT, "evlhhousplat", MISC)
-BU_SPE_X (EVLHHOUSPLATX, "evlhhousplatx", MISC)
-BU_SPE_X (EVLWHE, "evlwhe", MISC)
-BU_SPE_X (EVLWHEX, "evlwhex", MISC)
-BU_SPE_X (EVLWHOS, "evlwhos", MISC)
-BU_SPE_X (EVLWHOSX, "evlwhosx", MISC)
-BU_SPE_X (EVLWHOU, "evlwhou", MISC)
-BU_SPE_X (EVLWHOUX, "evlwhoux", MISC)
-BU_SPE_X (EVLWHSPLAT, "evlwhsplat", MISC)
-BU_SPE_X (EVLWHSPLATX, "evlwhsplatx", MISC)
-BU_SPE_X (EVLWWSPLAT, "evlwwsplat", MISC)
-BU_SPE_X (EVLWWSPLATX, "evlwwsplatx", MISC)
-BU_SPE_X (EVSPLATFI, "evsplatfi", MISC)
-BU_SPE_X (EVSPLATI, "evsplati", MISC)
-BU_SPE_X (EVSTDD, "evstdd", MISC)
-BU_SPE_X (EVSTDDX, "evstddx", MISC)
-BU_SPE_X (EVSTDH, "evstdh", MISC)
-BU_SPE_X (EVSTDHX, "evstdhx", MISC)
-BU_SPE_X (EVSTDW, "evstdw", MISC)
-BU_SPE_X (EVSTDWX, "evstdwx", MISC)
-BU_SPE_X (EVSTWHE, "evstwhe", MISC)
-BU_SPE_X (EVSTWHEX, "evstwhex", MISC)
-BU_SPE_X (EVSTWHO, "evstwho", MISC)
-BU_SPE_X (EVSTWHOX, "evstwhox", MISC)
-BU_SPE_X (EVSTWWE, "evstwwe", MISC)
-BU_SPE_X (EVSTWWEX, "evstwwex", MISC)
-BU_SPE_X (EVSTWWO, "evstwwo", MISC)
-BU_SPE_X (EVSTWWOX, "evstwwox", MISC)
-BU_SPE_X (MFSPEFSCR, "mfspefscr", MISC)
-BU_SPE_X (MTSPEFSCR, "mtspefscr", MISC)
-
-
/* Power7 builtins, that aren't VSX instructions. */
BU_SPECIAL_X (POWER7_BUILTIN_BPERMD, "__builtin_bpermd", RS6000_BTM_POPCNTD,
RS6000_BTC_CONST)