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