1b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//===-- powitf2_test.cpp - Test __powitf2 ---------------------------------===//
2b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//
3b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//                     The LLVM Compiler Infrastructure
4b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//
59ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
69ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
7b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//
8b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//===----------------------------------------------------------------------===//
9b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//
10b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// This file tests __powitf2 for the compiler_rt library.
11b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//
12b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar//===----------------------------------------------------------------------===//
13b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
14b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#if _ARCH_PPC
15b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
16b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#include "int_lib.h"
17b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#include <stdio.h>
18b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#include <math.h>
19b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
20b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar// Returns: a ^ b
21b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
22b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarlong double __powitf2(long double a, si_int b);
23b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
24b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarint test__powitf2(long double a, si_int b, long double expected)
25b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{
26b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    long double x = __powitf2(a, b);
27b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    int correct = (x == expected) && (signbit(x) == signbit(expected));
28b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (!correct)
29b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        printf("error in __powitf2(%Lf, %d) = %Lf, expected %Lf\n",
30b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar               a, b, x, expected);
31b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    return !correct;
32b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}
33b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
34b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif
35b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
36b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbarint main()
37b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar{
38b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#if _ARCH_PPC
39b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 0, 1))
40b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
41b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 0, 1))
42b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
43b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1.5, 0, 1))
44b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
45b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, 0, 1))
46b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
47b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 0, 1))
48b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
49b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
50b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 0, 1))
51b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
52b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-1, 0, 1))
53b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
54b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-1.5, 0, 1))
55b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
56b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, 0, 1))
57b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
58b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 0, 1))
59b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
60b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
61b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 1, 0))
62b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
63b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 2, 0))
64b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
65b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 3, 0))
66b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
67b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 4, 0))
68b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
69b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 0x7FFFFFFE, 0))
70b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
71b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 0x7FFFFFFF, 0))
72b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
73b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
74b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 1, -0.))
75b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
76b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 2, 0))
77b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
78b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 3, -0.))
79b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
80b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 4, 0))
81b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
82b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 0x7FFFFFFE, 0))
83b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
84b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 0x7FFFFFFF, -0.))
85b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
86b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
87b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 1, 1))
88b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
89b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 2, 1))
90b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
91b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 3, 1))
92b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
93b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 4, 1))
94b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
95b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 0x7FFFFFFE, 1))
96b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
97b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 0x7FFFFFFF, 1))
98b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
99b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
100b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 1, INFINITY))
101b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
102b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 2, INFINITY))
103b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
104b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 3, INFINITY))
105b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
106b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 4, INFINITY))
107b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
108b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 0x7FFFFFFE, INFINITY))
109b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
110b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 0x7FFFFFFF, INFINITY))
111b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
112b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
113b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 1, -INFINITY))
114b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
115b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 2, INFINITY))
116b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
117b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 3, -INFINITY))
118b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
119b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 4, INFINITY))
120b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
121b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 0x7FFFFFFE, INFINITY))
122b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
123b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 0x7FFFFFFF, -INFINITY))
124b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
125b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
126b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, -1, INFINITY))
127b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
128b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, -2, INFINITY))
129b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
130b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, -3, INFINITY))
131b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
132b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, -4, INFINITY))
133b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
134b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 0x80000002, INFINITY))
135b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
136b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 0x80000001, INFINITY))
137b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
138b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(0, 0x80000000, INFINITY))
139b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
140b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
141b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., -1, -INFINITY))
142b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
143b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., -2, INFINITY))
144b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
145b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., -3, -INFINITY))
146b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
147b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., -4, INFINITY))
148b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
149b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 0x80000002, INFINITY))
150b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
151b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 0x80000001, -INFINITY))
152b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
153b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-0., 0x80000000, INFINITY))
154b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
155b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
156b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, -1, 1))
157b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
158b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, -2, 1))
159b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
160b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, -3, 1))
161b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
162b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, -4, 1))
163b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
164b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 0x80000002, 1))
165b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
166b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 0x80000001, 1))
167b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
168b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(1, 0x80000000, 1))
169b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
170b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
171b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, -1, 0))
172b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
173b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, -2, 0))
174b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
175b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, -3, 0))
176b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
177b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, -4, 0))
178b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
179b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 0x80000002, 0))
180b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
181b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 0x80000001, 0))
182b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
183b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(INFINITY, 0x80000000, 0))
184b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
185b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
186b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, -1, -0.))
187b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
188b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, -2, 0))
189b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
190b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, -3, -0.))
191b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
192b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, -4, 0))
193b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
194b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 0x80000002, 0))
195b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
196b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 0x80000001, -0.))
197b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
198b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-INFINITY, 0x80000000, 0))
199b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
200b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
201b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, 10, 1024.))
202b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
203b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, 10, 1024.))
204b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
205b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, -10, 1/1024.))
206b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
207b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, -10, 1/1024.))
208b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
209b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
210b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, 19, 524288.))
211b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
212b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, 19, -524288.))
213b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
214b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, -19, 1/524288.))
215b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
216b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, -19, -1/524288.))
217b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
218b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
219b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, 31, 2147483648.))
220b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
221b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, 31, -2147483648.))
222b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
223b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(2, -31, 1/2147483648.))
224b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
225b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    if (test__powitf2(-2, -31, -1/2147483648.))
226b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar        return 1;
227b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar
2287482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
2297482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
230b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar#endif
231b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar    return 0;
232b3a6901e66f55b35aa9e01bcb24134e6a65ea004Daniel Dunbar}
233