]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/builtins-9.c
Update copyright years.
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / builtins-9.c
1 /* Copyright (C) 2003 Free Software Foundation.
2
3 Check that constant folding of built-in math functions doesn't
4 break anything.
5
6 Written by Roger Sayle, 2nd April 2003. */
7
8 /* { dg-do compile } */
9 /* { dg-options "-O2 -ffast-math" } */
10
11 extern double log(double);
12 extern double exp(double);
13 extern double sqrt(double);
14 extern double pow(double,double);
15
16 extern float logf(float);
17 extern float expf(float);
18 extern float sqrtf(float);
19 extern float powf(float,float);
20
21 extern long double logl(long double);
22 extern long double expl(long double);
23 extern long double sqrtl(long double);
24 extern long double powl(long double,long double);
25
26
27 double test1(double x, double y)
28 {
29 return log(pow(x,y));
30 }
31
32 double test2(double x, double y)
33 {
34 return sqrt(pow(x,y));
35 }
36
37 double test3(double x, double y)
38 {
39 return pow(exp(x),y);
40 }
41
42 double test4(double x, double y)
43 {
44 return pow(sqrt(x),y);
45 }
46
47 double test5(double x, double y, double z)
48 {
49 return pow(pow(x,y),z);
50 }
51
52
53 float test1f(float x, float y)
54 {
55 return logf(powf(x,y));
56 }
57
58 float test2f(float x, float y)
59 {
60 return sqrtf(powf(x,y));
61 }
62
63 float test3f(float x, float y)
64 {
65 return powf(expf(x),y);
66 }
67
68 float test4f(float x, float y)
69 {
70 return powf(sqrtf(x),y);
71 }
72
73 float test5f(float x, float y, float z)
74 {
75 return powf(powf(x,y),z);
76 }
77
78
79 long double test1l(long double x, long double y)
80 {
81 return logl(powl(x,y));
82 }
83
84 long double test2l(long double x, long double y)
85 {
86 return sqrtl(powl(x,y));
87 }
88
89 long double test3l(long double x, long double y)
90 {
91 return powl(expl(x),y);
92 }
93
94 long double test4l(long double x, long double y)
95 {
96 return powl(sqrtl(x),y);
97 }
98
99 long double test5l(long double x, long double y, long double z)
100 {
101 return powl(powl(x,y),z);
102 }
103