1 /* { dg-do compile } */
2 /* { dg-options "-fno-fast-math -ffinite-math-only -mmadd4 isa=4 -mhard-float" } */
3 /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
4 /* { dg-final { scan-assembler "\tnmadd.s\t" } } */
5 /* { dg-final { scan-assembler "\tnmadd.d\t" } } */
6 /* { dg-final { scan-assembler "\tnmsub.s\t" } } */
7 /* { dg-final { scan-assembler "\tnmsub.d\t" } } */
8
9 NOMIPS16 float
10 sub1 (float f, float g, float h)
11 {
12 return -((f * g) + h);
13 }
14
15 NOMIPS16 double
16 sub2 (double f, double g, double h)
17 {
18 return -((f * g) + h);
19 }
20
21 NOMIPS16 float
22 sub3 (float f, float g, float h)
23 {
24 return -((f * g) - h);
25 }
26
27 NOMIPS16 double
28 sub4 (double f, double g, double h)
29 {
30 return -((f * g) - h);
31 }