https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87761
--- Comment #12 from Jeffrey A. Law <law at redhat dot com> --- octeon-exts-3 can be fixed with a relatively simple pattern in mips.md or with a bit of code in combine.c. fix-r4000-10.c is more interesting. Hard register propagation does its thing and exposes a bit of dead code. Removing that dead code in turn exposes additional hard register propagation opportunities, which then exposes more dead code. But running those passes in their entirety seems horribly heavyweight for this issue. Particularly since the test goes out of its way to disable lower-subreg. We had another BZ in this cycle where post-reload splitting exposed dead code. So we might be able to make a case for RTL DCE after splitting (or have some gross mips.md patterns to avoid the dead code). That would help some. But to really fix this hard register cprop would have to discover at least the trivial cases where its actions expose dead code, remove the dead code and reprocess the block. I'm still not sure how wise such hacks to hard register cprop would be. I haven't dug into fpr-moves-5.c yet.