https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97497
--- Comment #5 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- I think the problem is a disconnect between compute_transp and the code in gcse.c itself. compute_transp considers %r12 to be transparent in all blocks despite the partial clobbers. But whether that's true is context-dependent. I think the fix is to make transp also handle partial clobbers in a conservative way. I don't have a specific suggestion how to do that yet.