diff options
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index b47e7623a2e..d197766c772 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -260,6 +260,22 @@ enum optab_index OTI_vec_shr, /* Extract specified elements from vectors, for vector load. */ OTI_vec_realign_load, + /* Widening multiplication. + The high/low part of the resulting vector of products is returned. */ + OTI_vec_widen_umult_hi, + OTI_vec_widen_umult_lo, + OTI_vec_widen_smult_hi, + OTI_vec_widen_smult_lo, + /* Extract and widen the high/low part of a vector of signed/unsigned + elements. */ + OTI_vec_unpacks_hi, + OTI_vec_unpacks_lo, + OTI_vec_unpacku_hi, + OTI_vec_unpacku_lo, + /* Narrow (demote) and merge the elements of two vectors. */ + OTI_vec_pack_mod, + OTI_vec_pack_usat, + OTI_vec_pack_ssat, /* Perform a raise to the power of integer. */ OTI_powi, @@ -385,7 +401,18 @@ extern GTY(()) optab optab_table[OTI_MAX]; #define vec_shl_optab (optab_table[OTI_vec_shl]) #define vec_shr_optab (optab_table[OTI_vec_shr]) #define vec_realign_load_optab (optab_table[OTI_vec_realign_load]) - +#define vec_widen_umult_hi_optab (optab_table[OTI_vec_widen_umult_hi]) +#define vec_widen_umult_lo_optab (optab_table[OTI_vec_widen_umult_lo]) +#define vec_widen_smult_hi_optab (optab_table[OTI_vec_widen_smult_hi]) +#define vec_widen_smult_lo_optab (optab_table[OTI_vec_widen_smult_lo]) +#define vec_unpacks_hi_optab (optab_table[OTI_vec_unpacks_hi]) +#define vec_unpacku_hi_optab (optab_table[OTI_vec_unpacku_hi]) +#define vec_unpacks_lo_optab (optab_table[OTI_vec_unpacks_lo]) +#define vec_unpacku_lo_optab (optab_table[OTI_vec_unpacku_lo]) +#define vec_pack_mod_optab (optab_table[OTI_vec_pack_mod]) +#define vec_pack_ssat_optab (optab_table[OTI_vec_pack_ssat]) +#define vec_pack_usat_optab (optab_table[OTI_vec_pack_usat]) + #define powi_optab (optab_table[OTI_powi]) /* Conversion optabs have their own table and indexes. */ |