1 /* { dg-do compile { target powerpc*-*-* } } */
2 /* { dg-options "-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
[2] = -b
[2] + c
[2] * d
[2]; // fmsub
9 a
[4] = -( b
[4] + c
[4] * d
[4]); // fnmadd
10 a
[6] = -(-b
[6] + c
[6] * d
[6]); // fnmsub
11 a
[10] = b
[10] - c
[10] * -d
[10]; // fmadd
12 a
[12] = -b
[12] - c
[12] * -d
[12]; // fmsub
13 a
[14] = -( b
[14] - c
[14] * -d
[14]); // fnmadd
14 a
[16] = -(-b
[16] - c
[16] * -d
[16]); // fnmsub
17 void foos(float *a
, float *b
, float *c
, float *d
)
19 a
[0] = b
[0] + c
[0] * d
[0]; // fmadd
20 a
[2] = -b
[2] + c
[2] * d
[2]; // fmsub
21 a
[4] = -( b
[4] + c
[4] * d
[4]); // fnmadd
22 a
[6] = -(-b
[6] + c
[6] * d
[6]); // fnmsub
23 a
[10] = b
[10] - c
[10] * -d
[10]; // fmadd
24 a
[12] = -b
[12] - c
[12] * -d
[12]; // fmsub
25 a
[14] = -( b
[14] - c
[14] * -d
[14]); // fnmadd
26 a
[16] = -(-b
[16] - c
[16] * -d
[16]); // fnmsub