static double identity[4][4] = {{1, 0, 0, 0},
                                {0, 1, 0, 0},
                                {0, 0, 1, 0},
                                {0, 0, 0, 1}};
static double expected[4][4] = {{1, 0, 0, 0},
                                {0, 0, 0, 0},
                                {0, 0, 0, 0},
                                {0, 0, 0, 0}};

static void __attribute__((noinline,noclone))
kernel(double A[4][4])
{
  double tmp[4][4];
  for (int j = 0; j < 4; j++)
    for (int k = 0; k < 4; k++)
      tmp[j][k] = identity[j][0] * identity[j][k];
  for (int j = 0; j < 4; j++ )
    for (int k = 0; k < 4; k++)
      A[j][k] = tmp[j][k];
}

int main(void)
{
  double A[4][4] = {{0.0}};
  kernel(A);
  for ( int i = 0; i < 4; i++ )
    for ( int j = 0; j < 4; j++ )
      if (A[i][j] != expected[i][j])
	__builtin_abort ();
  return 0;
}
