This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch] Ad PR 56064: Extend fixed_from_double_int input
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Georg-Johann Lay <avr at gjlay dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 8 Feb 2013 12:15:38 +0100
- Subject: Re: [Patch] Ad PR 56064: Extend fixed_from_double_int input
- References: <5113D13A.8050300@gjlay.de>
On Thu, Feb 7, 2013 at 5:07 PM, Georg-Johann Lay <avr@gjlay.de> wrote:
> This patch solves a problem with VIEW_CONVERT_EXPR folding for fixed_cst and
> that use fixed-value.c:fixed_from_double_int.
>
> The patch sign/zero extends the double_int input according to the requested
> fixed-point mode.
>
> The patch bootstraps on x86-linux-gnu and passes testsuite on avr-unknown one.
>
> Without this patch, the new test case fails because when a SAmode is
> constructed in fold-const.c:native_interpret_fixed(), the MSBs are not set
> according to the sign of the value.
>
> However, functions dealing with fixed-point constants use all bits of the
> underlying double_int, not only those covered by the mode mask.
>
> Moreover, some sanity checking is added for to the incoming machine mode.
>
> Ok for trunk?
So bits not within the mode-size of FIXED_VALUE_TYPEs mode are not
ignored but required to be sign-/zero-extended. As it is using double-ints
as representation that might make sense.
Thus ok.
Thanks,
Richard.
> gcc/
> PR tree-optimization/56064
> * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
> bits according to mode.
> * fixed-value.h (fixed_from_double_int)
> (const_fixed_from_double_int): Adjust comments.
>
> gcc/testsuite/
> PR tree-optimization/56064
> * gcc.dg/fixed-point/view-convert-2.c: New test.
>
>