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;
}

Reply via email to