https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93974
--- Comment #22 from Peter Bergner <bergner at gcc dot gnu.org> --- To be more specific, I have implemented the hook cannot_substitute_mem_equiv_p for rs6000 that rejects these and: altivec addresses. The nice thing about the patch is that it only affects rs6000, whereas a lra-constraints.c or rtlanal.c change could affect everyone. I have confirmed that the test case in Comment #1 compiles and we get the same asm generated as a compiler built with the revision before my patch that caused the ICE. I also confirmed that test case pr93658.c which used to go into an infinite loop in LRA before my previous patch still compiles fine. I'm running the testsuite now to see whether there are any regressions. Whether this is the best long term fix is unknown right now (it could be), but it might be the best thing for GCC 10 with the release so close. I'd rather not revert the fix for PR93658 just to hide this bug again.