>> That makes me wonder if there is a latent bug though. Consider pushing >> args to a pure function. Could we then try to CSE the memory reference >> and get it wrong because we haven't accounted for the autoinc? > > Can't know for sure but one would hope something would test for > side_effects_p.
If side_effects_p were checked in all the right places, then our port (which is more liberal at generating auto-inc insns in early passes) wouldn't have cse generate incorrect code, right? Our observation is that it did.