https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67391
--- Comment #3 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- (In reply to Oleg Endo from comment #1) > Kaz, do you have any memory of the extra checks? Isn't it enough to just > accept the addsi3 pattern as "rC = rA + {rB|imm}" and insert the reg-reg > copy after register allocation via split2, as it's already done? Why are > the reg overlap checks needed during matching of the patterns? Ugh, those checks look just wrong and I can't remind why I've added them. 33707 didn't do that and checked overlapping at the split condition only. Perhaps I mixed up the final patch with the one of test codes to collect CSiBE results. You can install the above patch as the rather obvious one, though I'm running "make -k check" on sh4-unknown-linux-gnu. Sorry for adding that thinko.