1 /* { dg-options "-O2 -fdump-tree-optimized" } */
4 f1 (float a
, float b
, float c
)
6 return __builtin_fmaf (a
, b
, -c
);
10 f2 (double a
, double b
, double c
)
12 return __builtin_fma (a
, b
, -c
);
16 f3 (float a
, float b
, float c
, float d
, float e
, float *res
)
18 res
[0] = __builtin_fmaf (a
, b
, -e
);
19 res
[1] = __builtin_fmaf (c
, d
, -e
);
23 f4 (double a
, double b
, double c
, double d
, double e
, double *res
)
25 res
[0] = __builtin_fma (a
, b
, -e
);
26 res
[1] = __builtin_fma (c
, d
, -e
);
30 f5 (float a
, float b
, float c
)
32 return -__builtin_fmaf (-a
, b
, c
);
36 f6 (double a
, double b
, double c
)
38 return -__builtin_fma (-a
, b
, c
);
42 f7 (float a
, float b
, float c
)
44 return -__builtin_fmaf (a
, -b
, c
);
48 f8 (double a
, double b
, double c
)
50 return -__builtin_fma (a
, -b
, c
);
53 /* { dg-final { scan-tree-dump-times { = \.FMS \(} 10 "optimized" { target scalar_all_fma } } } */