1 /* { dg-do compile { target powerpc*-*-* } } */
2 /* { dg-options "-ffast-math -O2" } */
3 /* { dg-final { scan-assembler-not "f(add|sub|mul|neg)" } } */
5 void foo(double *a
, double *b
, double *c
, double *d
)
7 a
[0] = b
[0] + c
[0] * d
[0]; // fmadd
8 a
[1] = b
[1] - c
[1] * d
[1]; // fnmsub with fast-math
9 a
[2] = -b
[2] + c
[2] * d
[2]; // fmsub
10 a
[3] = -b
[3] - c
[3] * d
[3]; // fnmadd with fast-math
11 a
[4] = -( b
[4] + c
[4] * d
[4]); // fnmadd
12 a
[5] = -( b
[5] - c
[5] * d
[5]); // fmsub with fast-math
13 a
[6] = -(-b
[6] + c
[6] * d
[6]); // fnmsub
14 a
[7] = -(-b
[7] - c
[7] * d
[7]); // fmadd with fast-math
15 a
[10] = b
[10] - c
[10] * -d
[10]; // fmadd
16 a
[11] = b
[11] + c
[11] * -d
[11]; // fnmsub with fast-math
17 a
[12] = -b
[12] - c
[12] * -d
[12]; // fmsub
18 a
[13] = -b
[13] + c
[13] * -d
[13]; // fnmadd with fast-math
19 a
[14] = -( b
[14] - c
[14] * -d
[14]); // fnmadd
20 a
[15] = -( b
[15] + c
[15] * -d
[15]); // fmsub with fast-math
21 a
[16] = -(-b
[16] - c
[16] * -d
[16]); // fnmsub
22 a
[17] = -(-b
[17] + c
[17] * -d
[17]); // fmadd with fast-math
25 void foos(float *a
, float *b
, float *c
, float *d
)
27 a
[0] = b
[0] + c
[0] * d
[0]; // fmadd
28 a
[1] = b
[1] - c
[1] * d
[1]; // fnmsub with fast-math
29 a
[2] = -b
[2] + c
[2] * d
[2]; // fmsub
30 a
[3] = -b
[3] - c
[3] * d
[3]; // fnmadd with fast-math
31 a
[4] = -( b
[4] + c
[4] * d
[4]); // fnmadd
32 a
[5] = -( b
[5] - c
[5] * d
[5]); // fmsub with fast-math
33 a
[6] = -(-b
[6] + c
[6] * d
[6]); // fnmsub
34 a
[7] = -(-b
[7] - c
[7] * d
[7]); // fmadd with fast-math
35 a
[10] = b
[10] - c
[10] * -d
[10]; // fmadd
36 a
[11] = b
[11] + c
[11] * -d
[11]; // fnmsub with fast-math
37 a
[12] = -b
[12] - c
[12] * -d
[12]; // fmsub
38 a
[13] = -b
[13] + c
[13] * -d
[13]; // fnmadd with fast-math
39 a
[14] = -( b
[14] - c
[14] * -d
[14]); // fnmadd
40 a
[15] = -( b
[15] + c
[15] * -d
[15]); // fmsub with fast-math
41 a
[16] = -(-b
[16] - c
[16] * -d
[16]); // fnmsub
42 a
[17] = -(-b
[17] + c
[17] * -d
[17]); // fmadd with fast-math