https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112830
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Ah, that function does later else if (may_use_call && !might_overlap && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x)) && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y))) { so only emits memcpy for generic address-space.