https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115336
--- Comment #2 from Robin Dapp <rdapp at gcc dot gnu.org> --- It looks to me as if we're expecting the result of a gather_load to be zero when it's masked out (semantics of mask_gather_load) but for mask_len_gather_load we actually describe it as undefined. Here the mask is all zeros and we OR the result with 1. Because of stale values this doesn't result in 1 but rather garbage. Maybe our mask representation also plays a part but I'm pretty sure zeroing the result before the gather would help.