On Mon, Apr 4, 2016 at 3:33 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Mon, Apr 04, 2016 at 03:27:23PM +0200, Richard Biener wrote: >> It ICEs in >> >> /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.target/i386/pr37870.c:19:1: >> internal compiler error: in subreg_get_info, at rtlanal.c:3695 >> 0xddee5a subreg_get_info(unsigned int, machine_mode, unsigned int, >> machine_mode, subreg_info*) >> /space/rguenther/src/svn/trunk/gcc/rtlanal.c:3695 >> 0xddf12b simplify_subreg_regno(unsigned int, machine_mode, unsigned int, >> machine_mode) >> /space/rguenther/src/svn/trunk/gcc/rtlanal.c:3808 >> 0xd8bc7a simplifiable_subregs(subreg_shape const&) >> /space/rguenther/src/svn/trunk/gcc/reginfo.c:1234 >> 0xd8be1d record_subregs_of_mode >> /space/rguenther/src/svn/trunk/gcc/reginfo.c:1294 >> 0xd8c246 init_subregs_of_mode() >> /space/rguenther/src/svn/trunk/gcc/reginfo.c:1348 >> 0xc1a55c init_costs >> /space/rguenther/src/svn/trunk/gcc/ira-costs.c:2187 >> >> which is >> >> /* This should always pass, otherwise we don't know how to verify >> the constraint. These conditions may be relaxed but >> subreg_regno_offset would need to be redesigned. */ >> gcc_assert ((GET_MODE_SIZE (xmode) % GET_MODE_SIZE (ymode)) == 0); > > So perhaps either validate_subreg should check the same thing, or > the extraction could check this. > Anyway, I don't have anything against removing that hunk from > extract_bit_field_1 for GCC7.
Now committed. Richard. > Jakub