1 /* { dg-do compile { target powerpc*-*-* } } */
2 /* { dg-options "-O2" } */
3 /* { dg-final { scan-assembler-not "f(add|sub|mul)" } } */
5 void foo(double *a
, double *b
, double *c
, double *d
)
8 a
[1] = b
[1] - c
[1] * d
[1]; // fneg, fmadd without fast-math
10 a
[3] = -b
[3] - c
[3] * d
[3]; // fneg, fmsub without fast-math
12 a
[5] = -( b
[5] - c
[5] * d
[5]); // fneg, fnmadd without fast-math
14 a
[7] = -(-b
[7] - c
[7] * d
[7]); // fneg, fnmsub without fast-math
15 a
[11] = b
[11] + c
[11] * -d
[11]; // fneg, fmadd without fast-math
16 a
[13] = -b
[13] + c
[13] * -d
[13]; // fneg, fmsub without fast-math
17 a
[15] = -( b
[15] + c
[15] * -d
[15]); // fneg, fnmadd without fast-math
18 a
[17] = -(-b
[17] + c
[17] * -d
[17]); // fneg, fnmsub without fast-math
21 void foos(float *a
, float *b
, float *c
, float *d
)
24 a
[1] = b
[1] - c
[1] * d
[1]; // fneg, fmadd without fast-math
26 a
[3] = -b
[3] - c
[3] * d
[3]; // fneg, fmsub without fast-math
28 a
[5] = -( b
[5] - c
[5] * d
[5]); // fneg, fnmadd without fast-math
30 a
[7] = -(-b
[7] - c
[7] * d
[7]); // fneg, fnmsub without fast-math
31 a
[11] = b
[11] + c
[11] * -d
[11]; // fneg, fmadd without fast-math
32 a
[13] = -b
[13] + c
[13] * -d
[13]; // fneg, fmsub without fast-math
33 a
[15] = -( b
[15] + c
[15] * -d
[15]); // fneg, fnmadd without fast-math
34 a
[17] = -(-b
[17] + c
[17] * -d
[17]); // fneg, fnmsub without fast-math