/* { dg-additional-options "-ffast-math" } */ double _Complex __attribute__((noipa)) foo (double _Complex acc, const double _Complex *x, const double _Complex* y, int N) { for (int c = 0; c < N; ++c) acc -= x[c] * y[c]; return acc; } int main() { static const double _Complex y[] = { 1, 2, }; static const double _Complex x[] = { 1, 3, }; double _Complex ref = foo (0, x, y, 2); if (__builtin_creal (ref) != -7.) __builtin_abort (); return 0; }