https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81803
mpf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #42075|0 |1 is obsolete| | --- Comment #14 from mpf at gcc dot gnu.org --- Created attachment 42498 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42498&action=edit Updated fix I'm really sorry for my lack of work on this. Too much going on in day to day work for quite a while now. (In reply to Eric Botcazou from comment #13) > > I can't say that I am 100% convinced yet with my thinking here but I've > > attached an updated version of the original patch with some changes: > > > > * Incorporated Eric's feedback on the original patch to check > > GET_MODE_PRECISION instead of GET_MODE_SIZE for comparing whether a mode is > > strictly narrower > > * Limited the test to word sized inner modes or smaller > > * Limited the test to OP_OUT or OP_INOUT as I can't see any reason why it > > would matter if we do a narrower input reload > > I'm not convinced for the 3rd restriction though, as push_reload treats the > IN and OUT cases exactly the same wrt WORD_REGISTER_OPERATIONS. I don't think the restriction is required for functional correctness but I thought we may as well take advantage of a narrower load in the OP_IN case if we could get away with it. The patch has a serious bug that I started testing but failed to report here. The bracketing was wrong by one level, an updated version is attached.