diff options
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r-- | gcc/optabs.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/optabs.h b/gcc/optabs.h index 2495fedef0b..91afce35a96 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -236,7 +236,8 @@ enum optab_index OTI_reduc_umax, OTI_reduc_smin, OTI_reduc_umin, - OTI_reduc_plus, + OTI_reduc_splus, + OTI_reduc_uplus, /* Set specified field of vector operand. */ OTI_vec_set, @@ -244,6 +245,9 @@ enum optab_index OTI_vec_extract, /* Initialize vector operand. */ OTI_vec_init, + /* Whole vector shift. The shift amount is in bits. */ + OTI_vec_shl, + OTI_vec_shr, /* Extract specified elements from vectors, for vector load. */ OTI_vec_realign_load, @@ -358,11 +362,14 @@ extern GTY(()) optab optab_table[OTI_MAX]; #define reduc_umax_optab (optab_table[OTI_reduc_umax]) #define reduc_smin_optab (optab_table[OTI_reduc_smin]) #define reduc_umin_optab (optab_table[OTI_reduc_umin]) -#define reduc_plus_optab (optab_table[OTI_reduc_plus]) +#define reduc_splus_optab (optab_table[OTI_reduc_splus]) +#define reduc_uplus_optab (optab_table[OTI_reduc_uplus]) #define vec_set_optab (optab_table[OTI_vec_set]) #define vec_extract_optab (optab_table[OTI_vec_extract]) #define vec_init_optab (optab_table[OTI_vec_init]) +#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 powi_optab (optab_table[OTI_powi]) @@ -575,4 +582,7 @@ bool expand_vec_cond_expr_p (tree, enum machine_mode); /* Generate code for VEC_COND_EXPR. */ extern rtx expand_vec_cond_expr (tree, rtx); +/* Generate code for VEC_LSHIFT_EXPR and VEC_RSHIFT_EXPR. */ +extern rtx expand_vec_shift_expr (tree, rtx); + #endif /* GCC_OPTABS_H */ |