This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, rtl-optimization]: Fix PR rtl-optimization/33846, ICE in trunc_int_for_mode, at explow.c:55
- From: "Uros Bizjak" <ubizjak at gmail dot com>
- To: "Eric Botcazou" <ebotcazou at libertysurf dot fr>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 22 Oct 2007 12:52:07 +0200
- Subject: Re: [PATCH, rtl-optimization]: Fix PR rtl-optimization/33846, ICE in trunc_int_for_mode, at explow.c:55
On 10/22/07, Eric Botcazou <ebotcazou@libertysurf.fr> wrote:
> > The fix is simply to pass inner mode of the vector mode to the
> > trunc_int_for_mode when shift-by-constant-scalar-value RTX is
> > processed. I have checked that the loop is still vecotrized (and
> > expected result is produced).
> No, I think that
>
> GET_CODE (XEXP (varop, 1)) == CONST_INT
>
> should have avoided the problem. Where does the CONST_INT come from?
The combiner creates:
(set (reg:V4SI 106)
(ashiftrt:V4SI (xor:V4SI (reg:V4SI 102)
(const_int -1 [0xffffffff]))
(const_int 31 [0x1f])))
and -1 is passed with V4SImode to trunc_int_for_mode.
Uros.