https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note looking into how LLVM implements this is almost exactly the same as I have implemented. The memset/memcpy -> memset/memset is exactly the same (though it does work with other things inbetween).