https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65206
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 34882 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34882&action=edit hack just for the masked load/store case Incomplete special-casing for the masked load/store case. We need to mark the masked load/store IFN calls somehow to mark the forwarding as valid. A "real" fix would "duplicate" dr->indices to always have an alternate analysis for *&dr->ref in case dr->ref is not a pointer evolution. We could then pick the one with compatible dr->indices.base_object. Of course that may still not handle all cases, if the ptr evolution is not enough (like for having a[2][j] vs. *(&a[3][j])). But at least it could help in some general cases.