https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106101

--- Comment #16 from Andreas Krebbel <krebbel at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #15)
> (In reply to Andreas Krebbel from comment #14)
> > > So you are suggesting that every strict_low_part after reload can just be
> > > removed?  If that is true, should we not just do exactly that then?
> > 
> > I think we have 3 options:
> > (1) Prevent reload from removing SUBREGs in STRICT_LOW_PARTs.
> > (2) Remove the STRICT_LOW_PART when resolving the inner SUBREG
> > (3) Define what a (STRICT_LOW_PART (reg:mode x)) means. 
...
> > (3) E.g. it means that the bits of hardreg x in its hardware mode (the mode
> > for UNITS_PER_WORD) which are not covered by MODE are not touched by the 
> > SET.
> 
> But say you have (strict_low_part (subreg:HI (reg:SI) 0)) and the hardware
> is 64-bit.  That only means the low 32 bits of the reg aren't clobbered, the
> high 32 bits are fair game.  That does not agree with your proposed
> semantics.

In that case I would have expected reload to turn this into 
(strict_low_part (reg:HI xx))
already.

Reply via email to