1/* Verify that 387 fsincos instruction is generated.  */
2/* { dg-do compile } */
3/* { dg-require-effective-target ilp32 } */
4/* { dg-options "-O -funsafe-math-optimizations -march=i686" } */
5
6extern double sin (double);
7extern double cos (double);
8extern void sincos (double, double *, double *);
9
10double f1(double x)
11{
12  double s, c;
13  sincos (x, &s, &c);
14  return s + c;
15}
16
17double f2(double x)
18{
19  double s, c, tmp;
20  sincos (x, &s, &tmp);
21  c = cos (x);
22  return s + c;
23}
24
25double f3(double x)
26{
27  double s, c, tmp;
28  sincos (x, &tmp, &c);
29  s = sin (x);
30  return s + c;
31}
32
33/* { dg-final { scan-assembler "fsincos" } } */
34/* { dg-final { scan-assembler-not "fsin " } } */
35/* { dg-final { scan-assembler-not "fcos" } } */
36/* { dg-final { scan-assembler-not "call" } } */
37