/* { dg-options "-O2 -floop-nest-optimize" } */ void foo(int N, float *x, float *X) { float sum = 0.; for (int n = 0; n < N; ++n) sum += x[n]; X[0] = sum; for (unsigned int k = 1; k < N; ++k) { sum = 0.; for (int n = 0; n < N; ++n) sum += x[n] * ((float)(3.14159265358979323846 * (n + .5) * k / N)); X[k] = sum; } }