https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729
--- Comment #35 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Doesn't it still miscompile the #c33 testcase? Say with __attribute__((noinline, noclone)) on baz and int v[2048]; int main () { v[1023] = 5; baz (v, v + 1023, v + 1024, v + 1023); int i; for (i = 0; i < 1024; i++) if (v[i] != 5 * 6 || v[1024 + i] != (i == 1023 ? 5 * 6 : 5) * 9) __builtin_abort (); return 0; } (untested)?