]>
Commit | Line | Data |
---|---|---|
535536b4 JJ |
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 | } |