https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59984
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, so SCCVN only can forward constant addresses (because variable ones wouldn't fit in the same refs vector without "inserting" ops). See vn_reference_maybe_forwprop_address. It's also required so that we can re-materialize the expression in PRE for example and not wind up with invalid access paths there (similar to the reason why forwprop doesn't do this transform). I think it might be possible to teach SCCVN to do this, but it might be not trivial.