(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr40669.c
       1  /* PR middle-end/40669 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -ffast-math" } */
       4  
       5  double _Complex
       6  test (int d, int t, double *x, double *y, double *z, int n,
       7        double _Complex (*fnp) (double))
       8  {
       9    int m = n / 2;
      10    double min = y[t], max = z[t], med = x[m * d + t];
      11    double _Complex result = 0.0;
      12  
      13    if (n == 0)
      14      return 0.0;
      15  
      16    if (min > med)
      17      result += test (d, (t + 1) % d, x + (m + 1) * d, y, z, n - m - 1, fnp);
      18    else if (max < med)
      19      result += test (d, (t + 1) % d, x, y, z, m, fnp);
      20    else
      21      {
      22        result += fnp (y[0] + x[m]);
      23        result += test (d, (t + 1) % d, x + (m + 1) * d, y, z, n - m - 1, fnp);
      24      }
      25    return result;
      26  }