On Mon, Sep 14, 2020 at 09:46:11AM +0200, Richard Biener wrote: > On Fri, Sep 11, 2020 at 4:18 PM Segher Boessenkool > <seg...@kernel.crashing.org> wrote: > > Until 2014 (and documented just days ago ;-) ) all bits of a partial > > integer mode were considered unknown. > > All bits or all bits outside of its precision? I hope the latter ;)
All bits. Many things in GCC still follow that older definition, btw. > > I have looked at a lot of it in > > our code the past weeks, and we still treat it like that in most places. Oh I said that already, heh. > > We now see bootstrap problems if we use POImode in some contexts (that's > > this PR96791). POImode can only live in pairs of VSX registers; taking > > a subreg of POImode that would not be valid on one VSX register is not > > okay. > > I guess the same applies to i?86 DImode living in two gpr regs. Or any > multi-reg pseudo. It certainly shouldn't be dependent on whether we're > dealing with a partial integer mode or not. If some mode can be in GPRs, then taking subregs of it works fine. > > Maybe we are missing some hooks or macros? > > So this problem must be "solved" in some way already. How do we asses > subreg validity? Through recog in the end? No, we ICE. See the PR? (PR96791). Segher