https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65206
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- For the masked load/store case we could also simply put the "real" memory access in place of the pointer argument. To make that valid GIMPLE we could wrap it inside a fake VIEW_CONVERT_EXPR for example - like one converting to a char[sizeof (ref)], this would make it appear as aggregate. Of course when we inspect the masked load/store we'd have to strip that VIEW_CONVERT_EXPR again. But I don't think it would harm anyone seeing that VIEW_CONVERT_EXPR.