https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82898
Bug ID: 82898 Summary: Aliasing knowledge is not used to replace memmove with memcpy Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: antoshkka at gmail dot com Target Milestone: --- This has been resolved once in Bug 21602 but now the issue appears again: void foo(int* i, const float* f) { __builtin_memmove(i, f, 1024*1024); } Produces assembly: foo(int*, float const*): mov edx, 1048576 jmp memmove <=== Could be memcpy