This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/36444] [4.4 Regression] ICE in gen_lowpart_general with -O1 with vector registers
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Aug 2008 21:19:57 -0000
- Subject: [Bug middle-end/36444] [4.4 Regression] ICE in gen_lowpart_general with -O1 with vector registers
- References: <bug-36444-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from pinskia at gcc dot gnu dot org 2008-08-28 21:19 -------
(In reply to comment #4)
> (In reply to comment #1)
> > Fix for at least PowerPC (we should be trying to get the correct sized vector
> > mode):
> > Index: expmed.c
> > ===================================================================
> > --- expmed.c (revision 2510)
> > +++ expmed.c (working copy)
> > @@ -1129,7 +1129,7 @@ extract_bit_field (rtx str_rtx, unsigned
> > new_mode = MIN_MODE_VECTOR_INT;
> >
> > for (; new_mode != VOIDmode ; new_mode = GET_MODE_WIDER_MODE (new_mode))
> > - if (GET_MODE_NUNITS (new_mode) == nunits
> > + if (GET_MODE_SIZE (new_mode) == GET_MODE_SIZE (new_mode)
>
> I may have missed something. Is this always true?
Try replacing one of the new_mode with GET_MODE (op0) :).
-- Pinski
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36444