summaryrefslogtreecommitdiff
path: root/gcc/optabs.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/optabs.h')
-rw-r--r--gcc/optabs.h29
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. */