https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114027
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- int __attribute__((noipa)) foo (int *f, int n) { int res = 0; for (int i = 0; i < n; ++i) { if (f[2*i]) res = 2; if (f[2*i+1]) res = -2; } return res; } int f[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }; int main () { if (foo (f, 16) != 2) __builtin_abort (); return 0; }