https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70048
--- Comment #4 from amker at gcc dot gnu.org --- (In reply to ktkachov from comment #3) > Started with r233136. That's why I forced base+offset out of memory reference and kept register scaling in in the first place. I think my statement still holds, that GIMPLE optimizers should be improved to CSE register scaling expression among different memory references, then force base(sp)+offset parts out of memory reference in legitimize_address so that it can be merged. I suspect this case is going to be very inefficient in loop context. Unfortunately GIMPLE optimizers are weak now and r233136 is a workaround to it. I want to revisit slsr sometime after stage4 to fix this issue.