https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90263
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Because then you penalize properly maintained targets which do have efficient mempcpy. And even if some targets don't have efficient mempcpy right now, that doesn't mean they can't have it in the future. On the caller side, when not expanded inline, calling mempcpy instead of memcpy is smaller, often requires fewer registers to be live across the call etc.