This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/70944] [7 Regression] ICE in immed_wide_int_const, at emit-rtl.c:606 with -O3
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 May 2016 10:19:01 +0000
- Subject: [Bug rtl-optimization/70944] [7 Regression] ICE in immed_wide_int_const, at emit-rtl.c:606 with -O3
- Auto-submitted: auto-generated
- References: <bug-70944-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70944
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I'd say we really don't want vector mode ZERO_EXTRACTs/SIGN_EXTRACTs, so
perhaps
make_extraction could give up in that case, maybe:
/* Never narrow an object, since that might not be safe. */
if (mode != VOIDmode
&& GET_MODE_SIZE (extraction_mode) < GET_MODE_SIZE (mode))
extraction_mode = mode;
and inside of if just do
{
/* Avoid vector mode extractions. */
if (VECTOR_MODE_P (mode))
return NULL_RTX;
extraction_mode = mode;
}
Or should we punt even earlier?