https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100622
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- why is masking not needed? it looks like it is present in both cases, once before the return and once after the add (that could be sunk).