1 /* PR tree-optimization/56424 */
2
3 /* { dg-do compile } */
4 /* { dg-options "-O2 -fexceptions -fnon-call-exceptions" } */
5 /* { dg-require-effective-target exceptions } */
6
7 extern long double cosl (long double);
8 extern long double sinl (long double);
9 extern long double reml (long double, long double);
10
11 long double my_cos (long double arg)
12 {
13 return cosl (arg);
14 }
15
16 long double my_sin (long double arg)
17 {
18 if (__builtin_fabs (arg) < 1.0)
19 return arg;
20
21 return sinl (arg);
22 }
23
24 long double my_cot (long double arg, long double cycle)
25 {
26 long double t = reml (arg, cycle);
27 return my_cos (t) / my_sin (t);
28 }
29
30 long double my_tan (long double arg, long double cycle)
31 {
32 long double t = reml (arg, cycle);
33 return my_sin (t) / my_cos (t);
34 }