https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109184
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Reduced testcase: typedef __UINT64_TYPE__ uint64_t; static uint64_t g_1731[7][1] = {{0xF75EE82FC4736923LL},{0UL}, {0xF75EE82FC4736923LL},{0UL}, {0xF75EE82FC4736923LL},{0UL}, {0xF75EE82FC4736923LL}}; static int g_149; static unsigned short g_1179; void __attribute__((noipa)) foo () { uint64_t l_1930[5]; int l_1719, l_1721; int i; for (i = 0; i < 5; i++) l_1930[i] = 0x623D9EDB6316A7CDLL; for (g_149 = 0; (g_149 > (-15)); g_149--) for (l_1719 = 4; (l_1719 >= 1); l_1719 -= 1) for (l_1721 = 0; (l_1721 >= 0); l_1721 -= 1) for (g_1179 = 0; (g_1179 <= 4); g_1179 += 1) g_1731[(l_1719 + 1)][l_1721] &= ((0x26L & (((--l_1930[g_1179]) + 0xFC07342370A5FE25LL)))); } int main() { foo (); /* f75ee82fc4736923 0 2 0 0 0 f75ee82fc4736923 */ if (g_1731[0][0] != 0xF75EE82FC4736923LL || g_1731[2][0] != 2 || g_1731[4][0] != 0 || g_1731[6][0] != 0xF75EE82FC4736923LL) __builtin_abort (); return 0; }