/* { dg-do compile } */ | |
/* { dg-options "-O3" } */ | |
/* { dg-additional-options "-mfma" { target { x86_64-*-* i?86-*-* } } } */ | |
extern double fma (double, double, double); | |
static inline void | |
bar (int i, double *D, double *S) | |
{ | |
while (i-- > 0) | |
{ | |
D[0] = fma (1, S[0], D[0]); | |
D[1] = fma (1, S[1], D[1]); | |
D[2] = fma (1, S[2], D[2]); | |
D[3] = fma (1, S[3], D[3]); | |
D += 4; | |
S += 4; | |
} | |
} | |
void | |
foo (double *d, double *s) | |
{ | |
bar (10, d, s); | |
} | |