> 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

Reply via email to