OSDN Git Service

* gcc.dg/torture/pr26565.c: Expect warning on packed field for
[pf3gnuchains/gcc-fork.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