> FWIW I agree this is the right approach, although I can't approve it.
> The assert above is guarding code that deals with a very general case,
> including some unusual combinations, so I don't think it would be a
> good idea to try to remove it entirely.
Yes, but the patch is a bit of kludge since it short-circuits the meat of the
function:
/* 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);
gcc_assert ((nregs_xmode % nregs_ymode) == 0);
So what would it take to do things properly here, i.e. relax the conditions
and adjust downstream?
--
Eric Botcazou