On Tue, Nov 20, 2018 at 10:07:35AM -0800, Michael Eager wrote:
> The internal RTL should not be dictating what the target arch can or 
> cannot implement.  Reload should insert any needed conversions, 
> especially ones which narrow the size.

Well, that depends.  A zero_extract of mem is only defined for byte_mode,
just like SET is only defined for VOIDmode (on the SET itself, not its
args).  Because this is guaranteed, nothing in GCC ever needs to check
this.  That is the theory of course; in reality quite a few targets have
used other modes for the mem in a zero_extract, and this seems to have
mostly worked.

As another example, closer by, an extract length of 0 is not allowed
either, for zero_extract.  And this *did* cause problems recently.

Why was it documented as requiring byte mode?  Was this changed, just
the documentation was not updated?


Segher

Reply via email to