https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89208
--- Comment #9 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- I would like to suppress the optimization when -ffreestanding, or fno-builtin, is used, but I agree that it will probably stretch -fno-loop-distribute-patterns a bit too much to cover this. OTOH -fno-loop-distribute-patterns was initially the only way we told people how gcc is not generating memcpy from the loop optimization. See the comment in c-family/c-opts.c: "If -ffreestanding, -fno-hosted or -fno-builtin then disable pattern recognition."