https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108608

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
#define N 64
extern double host_du[N][N][N][N];

int
foo (void)
{
  double max_rel_err = -1;
  const double rel_tol = __DBL_EPSILON__;
  for (int n = 0; n < N; n++)
    for (int k = 0; k < N; k++)
      for (int j = 0; j < N; j++)
        for (int i = 1; i < N - 1; i++) {
          const double analytic = 2.0 * (i + 1) * __builtin_pow((j + 2) * (k +
3) * (n + 4), 2.0);
          const double err = host_du[n][k][j][i - 1] - analytic;
          max_rel_err = __builtin_fmax(__builtin_fabs(err / analytic),
max_rel_err);
        }
  return max_rel_err < rel_tol;
}

ICEs too at -O3.

Reply via email to