1 /* { dg-do run } */
2 /* { dg-options "-fno-inline -Os" } */
3 
4 void abort(void);
5 
6 
powif(float x,int n)7 float powif(float x, int n)
8 {
9   return __builtin_powif(x, n);
10 }
11 
powi(double x,int n)12 double powi(double x, int n)
13 {
14   return __builtin_powi(x, n);
15 }
16 
powil(long double x,int n)17 long double powil(long double x, int n)
18 {
19   return __builtin_powil(x, n);
20 }
21 
22 
powcif(float x)23 float powcif(float x)
24 {
25   return __builtin_powif(x, 5);
26 }
27 
powci(double x)28 double powci(double x)
29 {
30   return __builtin_powi(x, 5);
31 }
32 
powcil(long double x)33 long double powcil(long double x)
34 {
35   return __builtin_powil(x, 5);
36 }
37 
38 
powicf(int n)39 float powicf(int n)
40 {
41   return __builtin_powif(2.0, n);
42 }
43 
powic(int n)44 double powic(int n)
45 {
46   return __builtin_powi(2.0, n);
47 }
48 
powicl(int n)49 long double powicl(int n)
50 {
51   return __builtin_powil(2.0, n);
52 }
53 
54 
main()55 int main()
56 {
57   if (__builtin_powi(1.0, 5) != 1.0)
58     abort();
59   if (__builtin_powif(1.0, 5) != 1.0)
60     abort();
61   if (__builtin_powil(1.0, 5) != 1.0)
62     abort();
63   if (powci(1.0) != 1.0)
64     abort();
65   if (powcif(1.0) != 1.0)
66     abort();
67   if (powcil(1.0) != 1.0)
68     abort();
69   if (powi(1.0, -5) != 1.0)
70     abort();
71   if (powif(1.0, -5) != 1.0)
72     abort();
73   if (powil(1.0, -5) != 1.0)
74     abort();
75   if (powic(1) != 2.0)
76     abort();
77   if (powicf(1) != 2.0)
78     abort();
79   if (powicl(1) != 2.0)
80     abort();
81   return 0;
82 }
83