From patchwork Wed Jun 27 22:16:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Add MULT_HIGHPART_EXPR Date: Wed, 27 Jun 2012 12:16:12 -0000 From: Richard Henderson X-Patchwork-Id: 167754 Message-Id: <4FEB862C.2050904@redhat.com> To: Steven Bosscher Cc: gcc-patches@gcc.gnu.org On 06/27/2012 02:42 PM, Steven Bosscher wrote: > Maybe also a bit in doc/generic.texi? Or is this not supposed to be > exposed to the front ends? I can't imagine it being terribly useful to front ends, but there's certainly nothing that ought to prevent it. How's this? r~ diff --git a/gcc/doc/generic.texi b/gcc/doc/generic.texi index e99366f..c48b663 100644 --- a/gcc/doc/generic.texi +++ b/gcc/doc/generic.texi @@ -1235,6 +1235,7 @@ the byte offset of the field, but should not be used directly; call @tindex PLUS_EXPR @tindex MINUS_EXPR @tindex MULT_EXPR +@tindex MULT_HIGHPART_EXPR @tindex RDIV_EXPR @tindex TRUNC_DIV_EXPR @tindex FLOOR_DIV_EXPR @@ -1433,6 +1434,11 @@ one operand is of floating type and the other is of integral type. The behavior of these operations on signed arithmetic overflow is controlled by the @code{flag_wrapv} and @code{flag_trapv} variables. +@item MULT_HIGHPART_EXPR +This node represents the ``high-part'' of a widening multiplication. +For an integral type with @var{b} bits of precision, the result is +the most significant @var{b} bits of the full @math{2@var{b}} product. + @item RDIV_EXPR This node represents a floating point division operation.