summaryrefslogtreecommitdiff
path: root/gcc/tree.def
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2012-06-27 14:30:51 -0700
committerRichard Henderson <rth@gcc.gnu.org>2012-06-27 14:30:51 -0700
commit98449720f700d3460a6756f48c4870f3e9a3a6fd (patch)
tree0ff9298f4b499b29ab5996ba2f0360c7401e22d1 /gcc/tree.def
parentff4d1662c887e1c43fde5d14c7835210d3a37063 (diff)
downloadgcc-98449720f700d3460a6756f48c4870f3e9a3a6fd.tar.gz
Add MULT_HIGHPART_EXPR
* tree.def (MULT_HIGHPART_EXPR): New. * cfgexpand.c (expand_debug_expr): Ignore it. * expr.c (expand_expr_real_2): Handle it. * fold-const.c (int_const_binop_1): Likewise. * optabs.c (optab_for_tree_code): Likewise. * tree-cfg.c (verify_gimple_assign_binary): Likewise. * tree-inline.c (estimate_operator_cost): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. (op_code_prio, op_symbol_code): Likewise. * tree.c (commutative_tree_code): Likewise. Also handle WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR. From-SVN: r189027
Diffstat (limited to 'gcc/tree.def')
-rw-r--r--gcc/tree.def4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree.def b/gcc/tree.def
index 8a3007cd47b..b0d4aead470 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -639,6 +639,10 @@ DEFTREECODE (MULT_EXPR, "mult_expr", tcc_binary, 2)
second operand is an integer of type sizetype. */
DEFTREECODE (POINTER_PLUS_EXPR, "pointer_plus_expr", tcc_binary, 2)
+/* Highpart multiplication. For an integral type with precision B,
+ returns bits [2B-1, B] of the full 2*B product. */
+DEFTREECODE (MULT_HIGHPART_EXPR, "mult_highpart_expr", tcc_binary, 2)
+
/* Division for integer result that rounds the quotient toward zero. */
DEFTREECODE (TRUNC_DIV_EXPR, "trunc_div_expr", tcc_binary, 2)