]>
Commit | Line | Data |
---|---|---|
5cbb5849 | 1 | /* Test roundeven. |
2b778ceb | 2 | Copyright (C) 1997-2021 Free Software Foundation, Inc. |
5cbb5849 JM |
3 | This file is part of the GNU C Library. |
4 | ||
5 | The GNU C Library is free software; you can redistribute it and/or | |
6 | modify it under the terms of the GNU Lesser General Public | |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
9 | ||
10 | The GNU C Library is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | Lesser General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU Lesser General Public | |
16 | License along with the GNU C Library; if not, see | |
5a82c748 | 17 | <https://www.gnu.org/licenses/>. */ |
5cbb5849 | 18 | |
92061bb0 JM |
19 | #include "libm-test-driver.c" |
20 | ||
5cbb5849 JM |
21 | static const struct test_f_f_data roundeven_test_data[] = |
22 | { | |
23 | TEST_f_f (roundeven, plus_zero, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
24 | TEST_f_f (roundeven, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
25 | TEST_f_f (roundeven, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
26 | TEST_f_f (roundeven, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
27 | TEST_f_f (roundeven, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
28 | TEST_f_f (roundeven, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
29 | TEST_f_f (roundeven, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), | |
30 | TEST_f_f (roundeven, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), | |
31 | ||
32 | TEST_f_f (roundeven, min_subnorm_value, 0.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
33 | TEST_f_f (roundeven, min_value, 0.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
34 | TEST_f_f (roundeven, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
35 | TEST_f_f (roundeven, 2, 2, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
36 | TEST_f_f (roundeven, 3, 3, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
37 | TEST_f_f (roundeven, 4, 4, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
38 | TEST_f_f (roundeven, 5, 5, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
39 | TEST_f_f (roundeven, 0x1p23, 0x1p23, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
40 | TEST_f_f (roundeven, 0x1p24, 0x1p24, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
41 | TEST_f_f (roundeven, 0x1p25, 0x1p25, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
42 | TEST_f_f (roundeven, 0x1p52, 0x1p52, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
43 | TEST_f_f (roundeven, 0x1p53, 0x1p53, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
44 | TEST_f_f (roundeven, 0x1p54, 0x1p54, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
45 | TEST_f_f (roundeven, 0x1p63, 0x1p63, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
46 | TEST_f_f (roundeven, 0x1p64, 0x1p64, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
47 | TEST_f_f (roundeven, 0x1p65, 0x1p65, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
48 | TEST_f_f (roundeven, 0x1p105, 0x1p105, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
49 | TEST_f_f (roundeven, 0x1p106, 0x1p106, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
50 | TEST_f_f (roundeven, 0x1p107, 0x1p107, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
51 | TEST_f_f (roundeven, 0x1p112, 0x1p112, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
52 | TEST_f_f (roundeven, 0x1p113, 0x1p113, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
53 | TEST_f_f (roundeven, 0x1p114, 0x1p114, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
54 | TEST_f_f (roundeven, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
55 | TEST_f_f (roundeven, -min_subnorm_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
56 | TEST_f_f (roundeven, -min_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
57 | TEST_f_f (roundeven, -1, -1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
58 | TEST_f_f (roundeven, -2, -2, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
59 | TEST_f_f (roundeven, -3, -3, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
60 | TEST_f_f (roundeven, -4, -4, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
61 | TEST_f_f (roundeven, -5, -5, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
62 | TEST_f_f (roundeven, -0x1p23, -0x1p23, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
63 | TEST_f_f (roundeven, -0x1p24, -0x1p24, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
64 | TEST_f_f (roundeven, -0x1p25, -0x1p25, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
65 | TEST_f_f (roundeven, -0x1p52, -0x1p52, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
66 | TEST_f_f (roundeven, -0x1p53, -0x1p53, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
67 | TEST_f_f (roundeven, -0x1p54, -0x1p54, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
68 | TEST_f_f (roundeven, -0x1p63, -0x1p63, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
69 | TEST_f_f (roundeven, -0x1p64, -0x1p64, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
70 | TEST_f_f (roundeven, -0x1p65, -0x1p65, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
71 | TEST_f_f (roundeven, -0x1p105, -0x1p105, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
72 | TEST_f_f (roundeven, -0x1p106, -0x1p106, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
73 | TEST_f_f (roundeven, -0x1p107, -0x1p107, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
74 | TEST_f_f (roundeven, -0x1p112, -0x1p112, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
75 | TEST_f_f (roundeven, -0x1p113, -0x1p113, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
76 | TEST_f_f (roundeven, -0x1p114, -0x1p114, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
77 | TEST_f_f (roundeven, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
78 | ||
79 | TEST_f_f (roundeven, 0.1, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
80 | TEST_f_f (roundeven, -0.1, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
81 | TEST_f_f (roundeven, 0.2, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
82 | TEST_f_f (roundeven, -0.2, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
83 | TEST_f_f (roundeven, 0.25, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
84 | TEST_f_f (roundeven, -0.25, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
85 | TEST_f_f (roundeven, 0.499, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
86 | TEST_f_f (roundeven, -0.499, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
87 | TEST_f_f (roundeven, 0.5, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
88 | TEST_f_f (roundeven, -0.5, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
89 | TEST_f_f (roundeven, 0.501, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
90 | TEST_f_f (roundeven, -0.501, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
91 | TEST_f_f (roundeven, 0.625, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
92 | TEST_f_f (roundeven, -0.625, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
93 | TEST_f_f (roundeven, 0.75, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
94 | TEST_f_f (roundeven, -0.75, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
95 | TEST_f_f (roundeven, 0.8, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
96 | TEST_f_f (roundeven, -0.8, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
97 | TEST_f_f (roundeven, 1.25, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
98 | TEST_f_f (roundeven, -1.25, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
99 | TEST_f_f (roundeven, 1.499, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
100 | TEST_f_f (roundeven, -1.499, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
101 | TEST_f_f (roundeven, 1.5, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
102 | TEST_f_f (roundeven, -1.5, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
103 | TEST_f_f (roundeven, 1.501, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
104 | TEST_f_f (roundeven, -1.501, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
105 | TEST_f_f (roundeven, 1.75, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
106 | TEST_f_f (roundeven, -1.75, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
107 | TEST_f_f (roundeven, 2.25, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
108 | TEST_f_f (roundeven, -2.25, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
109 | TEST_f_f (roundeven, 2.499, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
110 | TEST_f_f (roundeven, -2.499, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
111 | TEST_f_f (roundeven, 2.5, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
112 | TEST_f_f (roundeven, -2.5, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
113 | TEST_f_f (roundeven, 2.501, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
114 | TEST_f_f (roundeven, -2.501, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
115 | TEST_f_f (roundeven, 2.75, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
116 | TEST_f_f (roundeven, -2.75, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
117 | TEST_f_f (roundeven, 3.25, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
118 | TEST_f_f (roundeven, -3.25, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
119 | TEST_f_f (roundeven, 3.499, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
120 | TEST_f_f (roundeven, -3.499, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
121 | TEST_f_f (roundeven, 3.5, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
122 | TEST_f_f (roundeven, -3.5, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
123 | TEST_f_f (roundeven, 3.501, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
124 | TEST_f_f (roundeven, -3.501, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
125 | TEST_f_f (roundeven, 3.75, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
126 | TEST_f_f (roundeven, -3.75, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
127 | TEST_f_f (roundeven, 4.25, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
128 | TEST_f_f (roundeven, -4.25, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
129 | TEST_f_f (roundeven, 4.499, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
130 | TEST_f_f (roundeven, -4.499, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
131 | TEST_f_f (roundeven, 4.5, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
132 | TEST_f_f (roundeven, -4.5, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
133 | TEST_f_f (roundeven, 4.501, 5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
134 | TEST_f_f (roundeven, -4.501, -5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
135 | TEST_f_f (roundeven, 4.75, 5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
136 | TEST_f_f (roundeven, -4.75, -5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
137 | TEST_f_f (roundeven, 5.25, 5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
138 | TEST_f_f (roundeven, -5.25, -5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
139 | TEST_f_f (roundeven, 5.499, 5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
140 | TEST_f_f (roundeven, -5.499, -5.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
141 | TEST_f_f (roundeven, 5.5, 6.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
142 | TEST_f_f (roundeven, -5.5, -6.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
143 | TEST_f_f (roundeven, 5.501, 6.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
144 | TEST_f_f (roundeven, -5.501, -6.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
145 | TEST_f_f (roundeven, 5.75, 6.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
146 | TEST_f_f (roundeven, -5.75, -6.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
147 | ||
148 | /* 0.5, 1.5, 2.5, 3.5 +/- 1ulp. */ | |
149 | TEST_f_f (roundeven, 0x0.ffffffp-1, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
150 | TEST_f_f (roundeven, -0x0.ffffffp-1, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
151 | TEST_f_f (roundeven, 0x1.000002p-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
152 | TEST_f_f (roundeven, -0x1.000002p-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
153 | TEST_f_f (roundeven, 0x2.fffffcp-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
154 | TEST_f_f (roundeven, -0x2.fffffcp-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
155 | TEST_f_f (roundeven, 0x3.000004p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
156 | TEST_f_f (roundeven, -0x3.000004p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
157 | TEST_f_f (roundeven, 0x4.fffff8p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
158 | TEST_f_f (roundeven, -0x4.fffff8p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
159 | TEST_f_f (roundeven, 0x5.000008p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
160 | TEST_f_f (roundeven, -0x5.000008p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
161 | TEST_f_f (roundeven, 0x6.fffff8p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
162 | TEST_f_f (roundeven, -0x6.fffff8p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
163 | TEST_f_f (roundeven, 0x7.000008p-1, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
164 | TEST_f_f (roundeven, -0x7.000008p-1, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
165 | #if MANT_DIG >= 53 | |
166 | TEST_f_f (roundeven, 0x0.fffffffffffff8p-1, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
167 | TEST_f_f (roundeven, -0x0.fffffffffffff8p-1, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
168 | TEST_f_f (roundeven, 0x1.0000000000001p-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
169 | TEST_f_f (roundeven, -0x1.0000000000001p-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
170 | TEST_f_f (roundeven, 0x2.ffffffffffffep-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
171 | TEST_f_f (roundeven, -0x2.ffffffffffffep-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
172 | TEST_f_f (roundeven, 0x3.0000000000002p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
173 | TEST_f_f (roundeven, -0x3.0000000000002p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
174 | TEST_f_f (roundeven, 0x4.ffffffffffffcp-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
175 | TEST_f_f (roundeven, -0x4.ffffffffffffcp-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
176 | TEST_f_f (roundeven, 0x5.0000000000004p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
177 | TEST_f_f (roundeven, -0x5.0000000000004p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
178 | TEST_f_f (roundeven, 0x6.ffffffffffffcp-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
179 | TEST_f_f (roundeven, -0x6.ffffffffffffcp-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
180 | TEST_f_f (roundeven, 0x7.0000000000004p-1, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
181 | TEST_f_f (roundeven, -0x7.0000000000004p-1, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
182 | #endif | |
183 | #if MANT_DIG >= 64 | |
184 | TEST_f_f (roundeven, 0x0.ffffffffffffffffp-1, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
185 | TEST_f_f (roundeven, -0x0.ffffffffffffffffp-1, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
186 | TEST_f_f (roundeven, 0x1.0000000000000002p-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
187 | TEST_f_f (roundeven, -0x1.0000000000000002p-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
188 | TEST_f_f (roundeven, 0x2.fffffffffffffffcp-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
189 | TEST_f_f (roundeven, -0x2.fffffffffffffffcp-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
190 | TEST_f_f (roundeven, 0x3.0000000000000004p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
191 | TEST_f_f (roundeven, -0x3.0000000000000004p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
192 | TEST_f_f (roundeven, 0x4.fffffffffffffff8p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
193 | TEST_f_f (roundeven, -0x4.fffffffffffffff8p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
194 | TEST_f_f (roundeven, 0x5.0000000000000008p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
195 | TEST_f_f (roundeven, -0x5.0000000000000008p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
196 | TEST_f_f (roundeven, 0x6.fffffffffffffff8p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
197 | TEST_f_f (roundeven, -0x6.fffffffffffffff8p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
198 | TEST_f_f (roundeven, 0x7.0000000000000008p-1, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
199 | TEST_f_f (roundeven, -0x7.0000000000000008p-1, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
200 | #endif | |
201 | #if MANT_DIG >= 106 | |
202 | TEST_f_f (roundeven, 0x0.ffffffffffffffffffffffffffcp-1, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
203 | TEST_f_f (roundeven, -0x0.ffffffffffffffffffffffffffcp-1, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
204 | TEST_f_f (roundeven, 0x1.000000000000000000000000008p-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
205 | TEST_f_f (roundeven, -0x1.000000000000000000000000008p-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
206 | TEST_f_f (roundeven, 0x2.ffffffffffffffffffffffffffp-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
207 | TEST_f_f (roundeven, -0x2.ffffffffffffffffffffffffffp-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
208 | TEST_f_f (roundeven, 0x3.00000000000000000000000001p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
209 | TEST_f_f (roundeven, -0x3.00000000000000000000000001p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
210 | TEST_f_f (roundeven, 0x4.fffffffffffffffffffffffffep-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
211 | TEST_f_f (roundeven, -0x4.fffffffffffffffffffffffffep-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
212 | TEST_f_f (roundeven, 0x5.00000000000000000000000002p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
213 | TEST_f_f (roundeven, -0x5.00000000000000000000000002p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
214 | TEST_f_f (roundeven, 0x6.fffffffffffffffffffffffffep-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
215 | TEST_f_f (roundeven, -0x6.fffffffffffffffffffffffffep-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
216 | TEST_f_f (roundeven, 0x7.00000000000000000000000002p-1, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
217 | TEST_f_f (roundeven, -0x7.00000000000000000000000002p-1, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
218 | #endif | |
219 | #if MANT_DIG >= 113 | |
220 | TEST_f_f (roundeven, 0x0.ffffffffffffffffffffffffffff8p-1, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
221 | TEST_f_f (roundeven, -0x0.ffffffffffffffffffffffffffff8p-1, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
222 | TEST_f_f (roundeven, 0x1.0000000000000000000000000001p-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
223 | TEST_f_f (roundeven, -0x1.0000000000000000000000000001p-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
224 | TEST_f_f (roundeven, 0x2.fffffffffffffffffffffffffffep-1, 1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
225 | TEST_f_f (roundeven, -0x2.fffffffffffffffffffffffffffep-1, -1.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
226 | TEST_f_f (roundeven, 0x3.0000000000000000000000000002p-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
227 | TEST_f_f (roundeven, -0x3.0000000000000000000000000002p-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
228 | TEST_f_f (roundeven, 0x4.fffffffffffffffffffffffffffcp-1, 2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
229 | TEST_f_f (roundeven, -0x4.fffffffffffffffffffffffffffcp-1, -2.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
230 | TEST_f_f (roundeven, 0x5.0000000000000000000000000004p-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
231 | TEST_f_f (roundeven, -0x5.0000000000000000000000000004p-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
232 | TEST_f_f (roundeven, 0x6.fffffffffffffffffffffffffffcp-1, 3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
233 | TEST_f_f (roundeven, -0x6.fffffffffffffffffffffffffffcp-1, -3.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
234 | TEST_f_f (roundeven, 0x7.0000000000000000000000000004p-1, 4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
235 | TEST_f_f (roundeven, -0x7.0000000000000000000000000004p-1, -4.0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
236 | #endif | |
237 | ||
238 | /* 31, 32, 33 fractional bits. */ | |
239 | #if MANT_DIG >= 53 | |
240 | TEST_f_f (roundeven, 0x200000.7ffffffep0, 0x200000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
241 | TEST_f_f (roundeven, -0x200000.7ffffffep0, -0x200000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
242 | TEST_f_f (roundeven, 0x200000.8p0, 0x200000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
243 | TEST_f_f (roundeven, -0x200000.8p0, -0x200000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
244 | TEST_f_f (roundeven, 0x200000.80000002p0, 0x200001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
245 | TEST_f_f (roundeven, -0x200000.80000002p0, -0x200001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
246 | TEST_f_f (roundeven, 0x200001.7ffffffep0, 0x200001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
247 | TEST_f_f (roundeven, -0x200001.7ffffffep0, -0x200001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
248 | TEST_f_f (roundeven, 0x200001.8p0, 0x200002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
249 | TEST_f_f (roundeven, -0x200001.8p0, -0x200002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
250 | TEST_f_f (roundeven, 0x200001.80000002p0, 0x200002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
251 | TEST_f_f (roundeven, -0x200001.80000002p0, -0x200002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
252 | TEST_f_f (roundeven, 0x3fffff.fffffffep0, 0x400000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
253 | TEST_f_f (roundeven, -0x3fffff.fffffffep0, -0x400000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
254 | TEST_f_f (roundeven, 0x100000.7fffffffp0, 0x100000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
255 | TEST_f_f (roundeven, -0x100000.7fffffffp0, -0x100000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
256 | TEST_f_f (roundeven, 0x100000.8p0, 0x100000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
257 | TEST_f_f (roundeven, -0x100000.8p0, -0x100000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
258 | TEST_f_f (roundeven, 0x100000.80000001p0, 0x100001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
259 | TEST_f_f (roundeven, -0x100000.80000001p0, -0x100001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
260 | TEST_f_f (roundeven, 0x100001.7fffffffp0, 0x100001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
261 | TEST_f_f (roundeven, -0x100001.7fffffffp0, -0x100001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
262 | TEST_f_f (roundeven, 0x100001.8p0, 0x100002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
263 | TEST_f_f (roundeven, -0x100001.8p0, -0x100002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
264 | TEST_f_f (roundeven, 0x100001.80000001p0, 0x100002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
265 | TEST_f_f (roundeven, -0x100001.80000001p0, -0x100002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
266 | TEST_f_f (roundeven, 0x1fffff.ffffffffp0, 0x200000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
267 | TEST_f_f (roundeven, -0x1fffff.ffffffffp0, -0x200000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
268 | TEST_f_f (roundeven, 0x80000.7fffffff8p0, 0x80000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
269 | TEST_f_f (roundeven, -0x80000.7fffffff8p0, -0x80000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
270 | TEST_f_f (roundeven, 0x80000.8p0, 0x80000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
271 | TEST_f_f (roundeven, -0x80000.8p0, -0x80000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
272 | TEST_f_f (roundeven, 0x80000.800000008p0, 0x80001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
273 | TEST_f_f (roundeven, -0x80000.800000008p0, -0x80001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
274 | TEST_f_f (roundeven, 0x80001.7fffffff8p0, 0x80001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
275 | TEST_f_f (roundeven, -0x80001.7fffffff8p0, -0x80001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
276 | TEST_f_f (roundeven, 0x80001.8p0, 0x80002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
277 | TEST_f_f (roundeven, -0x80001.8p0, -0x80002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
278 | TEST_f_f (roundeven, 0x80001.800000008p0, 0x80002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
279 | TEST_f_f (roundeven, -0x80001.800000008p0, -0x80002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
280 | TEST_f_f (roundeven, 0xfffff.ffffffff8p0, 0x100000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
281 | TEST_f_f (roundeven, -0xfffff.ffffffff8p0, -0x100000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
282 | #endif | |
283 | #if MANT_DIG >= 64 | |
284 | TEST_f_f (roundeven, 0x100000000.7ffffffep0, 0x100000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
285 | TEST_f_f (roundeven, -0x100000000.7ffffffep0, -0x100000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
286 | TEST_f_f (roundeven, 0x100000000.8p0, 0x100000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
287 | TEST_f_f (roundeven, -0x100000000.8p0, -0x100000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
288 | TEST_f_f (roundeven, 0x100000000.80000002p0, 0x100000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
289 | TEST_f_f (roundeven, -0x100000000.80000002p0, -0x100000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
290 | TEST_f_f (roundeven, 0x100000001.7ffffffep0, 0x100000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
291 | TEST_f_f (roundeven, -0x100000001.7ffffffep0, -0x100000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
292 | TEST_f_f (roundeven, 0x100000001.8p0, 0x100000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
293 | TEST_f_f (roundeven, -0x100000001.8p0, -0x100000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
294 | TEST_f_f (roundeven, 0x100000001.80000002p0, 0x100000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
295 | TEST_f_f (roundeven, -0x100000001.80000002p0, -0x100000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
296 | TEST_f_f (roundeven, 0x1ffffffff.fffffffep0, 0x200000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
297 | TEST_f_f (roundeven, -0x1ffffffff.fffffffep0, -0x200000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
298 | TEST_f_f (roundeven, 0x80000000.7fffffffp0, 0x80000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
299 | TEST_f_f (roundeven, -0x80000000.7fffffffp0, -0x80000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
300 | TEST_f_f (roundeven, 0x80000000.8p0, 0x80000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
301 | TEST_f_f (roundeven, -0x80000000.8p0, -0x80000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
302 | TEST_f_f (roundeven, 0x80000000.80000001p0, 0x80000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
303 | TEST_f_f (roundeven, -0x80000000.80000001p0, -0x80000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
304 | TEST_f_f (roundeven, 0x80000001.7fffffffp0, 0x80000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
305 | TEST_f_f (roundeven, -0x80000001.7fffffffp0, -0x80000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
306 | TEST_f_f (roundeven, 0x80000001.8p0, 0x80000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
307 | TEST_f_f (roundeven, -0x80000001.8p0, -0x80000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
308 | TEST_f_f (roundeven, 0x80000001.80000001p0, 0x80000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
309 | TEST_f_f (roundeven, -0x80000001.80000001p0, -0x80000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
310 | TEST_f_f (roundeven, 0xffffffff.ffffffffp0, 0x100000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
311 | TEST_f_f (roundeven, -0xffffffff.ffffffffp0, -0x100000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
312 | TEST_f_f (roundeven, 0x40000000.7fffffff8p0, 0x40000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
313 | TEST_f_f (roundeven, -0x40000000.7fffffff8p0, -0x40000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
314 | TEST_f_f (roundeven, 0x40000000.8p0, 0x40000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
315 | TEST_f_f (roundeven, -0x40000000.8p0, -0x40000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
316 | TEST_f_f (roundeven, 0x40000000.800000008p0, 0x40000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
317 | TEST_f_f (roundeven, -0x40000000.800000008p0, -0x40000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
318 | TEST_f_f (roundeven, 0x40000001.7fffffff8p0, 0x40000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
319 | TEST_f_f (roundeven, -0x40000001.7fffffff8p0, -0x40000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
320 | TEST_f_f (roundeven, 0x40000001.8p0, 0x40000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
321 | TEST_f_f (roundeven, -0x40000001.8p0, -0x40000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
322 | TEST_f_f (roundeven, 0x40000001.800000008p0, 0x40000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
323 | TEST_f_f (roundeven, -0x40000001.800000008p0, -0x40000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
324 | TEST_f_f (roundeven, 0x7fffffff.ffffffff8p0, 0x80000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
325 | TEST_f_f (roundeven, -0x7fffffff.ffffffff8p0, -0x80000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
326 | #endif | |
327 | #if MANT_DIG >= 106 | |
328 | TEST_f_f (roundeven, 0x4000000000000000000.7ffffffep0, 0x4000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
329 | TEST_f_f (roundeven, -0x4000000000000000000.7ffffffep0, -0x4000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
330 | TEST_f_f (roundeven, 0x4000000000000000000.8p0, 0x4000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
331 | TEST_f_f (roundeven, -0x4000000000000000000.8p0, -0x4000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
332 | TEST_f_f (roundeven, 0x4000000000000000000.80000002p0, 0x4000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
333 | TEST_f_f (roundeven, -0x4000000000000000000.80000002p0, -0x4000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
334 | TEST_f_f (roundeven, 0x4000000000000000001.7ffffffep0, 0x4000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
335 | TEST_f_f (roundeven, -0x4000000000000000001.7ffffffep0, -0x4000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
336 | TEST_f_f (roundeven, 0x4000000000000000001.8p0, 0x4000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
337 | TEST_f_f (roundeven, -0x4000000000000000001.8p0, -0x4000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
338 | TEST_f_f (roundeven, 0x4000000000000000001.80000002p0, 0x4000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
339 | TEST_f_f (roundeven, -0x4000000000000000001.80000002p0, -0x4000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
340 | TEST_f_f (roundeven, 0x7ffffffffffffffffff.fffffffep0, 0x8000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
341 | TEST_f_f (roundeven, -0x7ffffffffffffffffff.fffffffep0, -0x8000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
342 | TEST_f_f (roundeven, 0x2000000000000000000.7fffffffp0, 0x2000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
343 | TEST_f_f (roundeven, -0x2000000000000000000.7fffffffp0, -0x2000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
344 | TEST_f_f (roundeven, 0x2000000000000000000.8p0, 0x2000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
345 | TEST_f_f (roundeven, -0x2000000000000000000.8p0, -0x2000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
346 | TEST_f_f (roundeven, 0x2000000000000000000.80000001p0, 0x2000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
347 | TEST_f_f (roundeven, -0x2000000000000000000.80000001p0, -0x2000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
348 | TEST_f_f (roundeven, 0x2000000000000000001.7fffffffp0, 0x2000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
349 | TEST_f_f (roundeven, -0x2000000000000000001.7fffffffp0, -0x2000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
350 | TEST_f_f (roundeven, 0x2000000000000000001.8p0, 0x2000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
351 | TEST_f_f (roundeven, -0x2000000000000000001.8p0, -0x2000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
352 | TEST_f_f (roundeven, 0x2000000000000000001.80000001p0, 0x2000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
353 | TEST_f_f (roundeven, -0x2000000000000000001.80000001p0, -0x2000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
354 | TEST_f_f (roundeven, 0x3ffffffffffffffffff.ffffffffp0, 0x4000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
355 | TEST_f_f (roundeven, -0x3ffffffffffffffffff.ffffffffp0, -0x4000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
356 | TEST_f_f (roundeven, 0x1000000000000000000.7fffffff8p0, 0x1000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
357 | TEST_f_f (roundeven, -0x1000000000000000000.7fffffff8p0, -0x1000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
358 | TEST_f_f (roundeven, 0x1000000000000000000.8p0, 0x1000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
359 | TEST_f_f (roundeven, -0x1000000000000000000.8p0, -0x1000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
360 | TEST_f_f (roundeven, 0x1000000000000000000.800000008p0, 0x1000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
361 | TEST_f_f (roundeven, -0x1000000000000000000.800000008p0, -0x1000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
362 | TEST_f_f (roundeven, 0x1000000000000000001.7fffffff8p0, 0x1000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
363 | TEST_f_f (roundeven, -0x1000000000000000001.7fffffff8p0, -0x1000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
364 | TEST_f_f (roundeven, 0x1000000000000000001.8p0, 0x1000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
365 | TEST_f_f (roundeven, -0x1000000000000000001.8p0, -0x1000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
366 | TEST_f_f (roundeven, 0x1000000000000000001.800000008p0, 0x1000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
367 | TEST_f_f (roundeven, -0x1000000000000000001.800000008p0, -0x1000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
368 | TEST_f_f (roundeven, 0x1ffffffffffffffffff.ffffffff8p0, 0x2000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
369 | TEST_f_f (roundeven, -0x1ffffffffffffffffff.ffffffff8p0, -0x2000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
370 | #endif | |
371 | #if MANT_DIG >= 113 | |
372 | TEST_f_f (roundeven, 0x200000000000000000000.7ffffffep0, 0x200000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
373 | TEST_f_f (roundeven, -0x200000000000000000000.7ffffffep0, -0x200000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
374 | TEST_f_f (roundeven, 0x200000000000000000000.8p0, 0x200000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
375 | TEST_f_f (roundeven, -0x200000000000000000000.8p0, -0x200000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
376 | TEST_f_f (roundeven, 0x200000000000000000000.80000002p0, 0x200000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
377 | TEST_f_f (roundeven, -0x200000000000000000000.80000002p0, -0x200000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
378 | TEST_f_f (roundeven, 0x200000000000000000001.7ffffffep0, 0x200000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
379 | TEST_f_f (roundeven, -0x200000000000000000001.7ffffffep0, -0x200000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
380 | TEST_f_f (roundeven, 0x200000000000000000001.8p0, 0x200000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
381 | TEST_f_f (roundeven, -0x200000000000000000001.8p0, -0x200000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
382 | TEST_f_f (roundeven, 0x200000000000000000001.80000002p0, 0x200000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
383 | TEST_f_f (roundeven, -0x200000000000000000001.80000002p0, -0x200000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
384 | TEST_f_f (roundeven, 0x3ffffffffffffffffffff.fffffffep0, 0x400000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
385 | TEST_f_f (roundeven, -0x3ffffffffffffffffffff.fffffffep0, -0x400000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
386 | TEST_f_f (roundeven, 0x100000000000000000000.7fffffffp0, 0x100000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
387 | TEST_f_f (roundeven, -0x100000000000000000000.7fffffffp0, -0x100000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
388 | TEST_f_f (roundeven, 0x100000000000000000000.8p0, 0x100000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
389 | TEST_f_f (roundeven, -0x100000000000000000000.8p0, -0x100000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
390 | TEST_f_f (roundeven, 0x100000000000000000000.80000001p0, 0x100000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
391 | TEST_f_f (roundeven, -0x100000000000000000000.80000001p0, -0x100000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
392 | TEST_f_f (roundeven, 0x100000000000000000001.7fffffffp0, 0x100000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
393 | TEST_f_f (roundeven, -0x100000000000000000001.7fffffffp0, -0x100000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
394 | TEST_f_f (roundeven, 0x100000000000000000001.8p0, 0x100000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
395 | TEST_f_f (roundeven, -0x100000000000000000001.8p0, -0x100000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
396 | TEST_f_f (roundeven, 0x100000000000000000001.80000001p0, 0x100000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
397 | TEST_f_f (roundeven, -0x100000000000000000001.80000001p0, -0x100000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
398 | TEST_f_f (roundeven, 0x1ffffffffffffffffffff.ffffffffp0, 0x200000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
399 | TEST_f_f (roundeven, -0x1ffffffffffffffffffff.ffffffffp0, -0x200000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
400 | TEST_f_f (roundeven, 0x80000000000000000000.7fffffff8p0, 0x80000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
401 | TEST_f_f (roundeven, -0x80000000000000000000.7fffffff8p0, -0x80000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
402 | TEST_f_f (roundeven, 0x80000000000000000000.8p0, 0x80000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
403 | TEST_f_f (roundeven, -0x80000000000000000000.8p0, -0x80000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
404 | TEST_f_f (roundeven, 0x80000000000000000000.800000008p0, 0x80000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
405 | TEST_f_f (roundeven, -0x80000000000000000000.800000008p0, -0x80000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
406 | TEST_f_f (roundeven, 0x80000000000000000001.7fffffff8p0, 0x80000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
407 | TEST_f_f (roundeven, -0x80000000000000000001.7fffffff8p0, -0x80000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
408 | TEST_f_f (roundeven, 0x80000000000000000001.8p0, 0x80000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
409 | TEST_f_f (roundeven, -0x80000000000000000001.8p0, -0x80000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
410 | TEST_f_f (roundeven, 0x80000000000000000001.800000008p0, 0x80000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
411 | TEST_f_f (roundeven, -0x80000000000000000001.800000008p0, -0x80000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
412 | TEST_f_f (roundeven, 0xffffffffffffffffffff.ffffffff8p0, 0x100000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
413 | TEST_f_f (roundeven, -0xffffffffffffffffffff.ffffffff8p0, -0x100000000000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
414 | #endif | |
415 | ||
416 | /* 63, 64, 65 fractional bits. */ | |
417 | #if MANT_DIG >= 106 | |
418 | TEST_f_f (roundeven, 0x40000000000.7ffffffffffffffep0, 0x40000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
419 | TEST_f_f (roundeven, -0x40000000000.7ffffffffffffffep0, -0x40000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
420 | TEST_f_f (roundeven, 0x40000000000.8p0, 0x40000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
421 | TEST_f_f (roundeven, -0x40000000000.8p0, -0x40000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
422 | TEST_f_f (roundeven, 0x40000000000.8000000000000002p0, 0x40000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
423 | TEST_f_f (roundeven, -0x40000000000.8000000000000002p0, -0x40000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
424 | TEST_f_f (roundeven, 0x40000000001.7ffffffffffffffep0, 0x40000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
425 | TEST_f_f (roundeven, -0x40000000001.7ffffffffffffffep0, -0x40000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
426 | TEST_f_f (roundeven, 0x40000000001.8p0, 0x40000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
427 | TEST_f_f (roundeven, -0x40000000001.8p0, -0x40000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
428 | TEST_f_f (roundeven, 0x40000000001.8000000000000002p0, 0x40000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
429 | TEST_f_f (roundeven, -0x40000000001.8000000000000002p0, -0x40000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
430 | TEST_f_f (roundeven, 0x7ffffffffff.fffffffffffffffep0, 0x80000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
431 | TEST_f_f (roundeven, -0x7ffffffffff.fffffffffffffffep0, -0x80000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
432 | TEST_f_f (roundeven, 0x20000000000.7fffffffffffffffp0, 0x20000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
433 | TEST_f_f (roundeven, -0x20000000000.7fffffffffffffffp0, -0x20000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
434 | TEST_f_f (roundeven, 0x20000000000.8p0, 0x20000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
435 | TEST_f_f (roundeven, -0x20000000000.8p0, -0x20000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
436 | TEST_f_f (roundeven, 0x20000000000.8000000000000001p0, 0x20000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
437 | TEST_f_f (roundeven, -0x20000000000.8000000000000001p0, -0x20000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
438 | TEST_f_f (roundeven, 0x20000000001.7fffffffffffffffp0, 0x20000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
439 | TEST_f_f (roundeven, -0x20000000001.7fffffffffffffffp0, -0x20000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
440 | TEST_f_f (roundeven, 0x20000000001.8p0, 0x20000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
441 | TEST_f_f (roundeven, -0x20000000001.8p0, -0x20000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
442 | TEST_f_f (roundeven, 0x20000000001.8000000000000001p0, 0x20000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
443 | TEST_f_f (roundeven, -0x20000000001.8000000000000001p0, -0x20000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
444 | TEST_f_f (roundeven, 0x3ffffffffff.ffffffffffffffffp0, 0x40000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
445 | TEST_f_f (roundeven, -0x3ffffffffff.ffffffffffffffffp0, -0x40000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
446 | TEST_f_f (roundeven, 0x10000000000.7fffffffffffffff8p0, 0x10000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
447 | TEST_f_f (roundeven, -0x10000000000.7fffffffffffffff8p0, -0x10000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
448 | TEST_f_f (roundeven, 0x10000000000.8p0, 0x10000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
449 | TEST_f_f (roundeven, -0x10000000000.8p0, -0x10000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
450 | TEST_f_f (roundeven, 0x10000000000.80000000000000008p0, 0x10000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
451 | TEST_f_f (roundeven, -0x10000000000.80000000000000008p0, -0x10000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
452 | TEST_f_f (roundeven, 0x10000000001.7fffffffffffffff8p0, 0x10000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
453 | TEST_f_f (roundeven, -0x10000000001.7fffffffffffffff8p0, -0x10000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
454 | TEST_f_f (roundeven, 0x10000000001.8p0, 0x10000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
455 | TEST_f_f (roundeven, -0x10000000001.8p0, -0x10000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
456 | TEST_f_f (roundeven, 0x10000000001.80000000000000008p0, 0x10000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
457 | TEST_f_f (roundeven, -0x10000000001.80000000000000008p0, -0x10000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
458 | TEST_f_f (roundeven, 0x1ffffffffff.ffffffffffffffff8p0, 0x20000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
459 | TEST_f_f (roundeven, -0x1ffffffffff.ffffffffffffffff8p0, -0x20000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
460 | #endif | |
461 | #if MANT_DIG >= 113 | |
462 | TEST_f_f (roundeven, 0x2000000000000.7ffffffffffffffep0, 0x2000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
463 | TEST_f_f (roundeven, -0x2000000000000.7ffffffffffffffep0, -0x2000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
464 | TEST_f_f (roundeven, 0x2000000000000.8p0, 0x2000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
465 | TEST_f_f (roundeven, -0x2000000000000.8p0, -0x2000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
466 | TEST_f_f (roundeven, 0x2000000000000.8000000000000002p0, 0x2000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
467 | TEST_f_f (roundeven, -0x2000000000000.8000000000000002p0, -0x2000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
468 | TEST_f_f (roundeven, 0x2000000000001.7ffffffffffffffep0, 0x2000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
469 | TEST_f_f (roundeven, -0x2000000000001.7ffffffffffffffep0, -0x2000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
470 | TEST_f_f (roundeven, 0x2000000000001.8p0, 0x2000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
471 | TEST_f_f (roundeven, -0x2000000000001.8p0, -0x2000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
472 | TEST_f_f (roundeven, 0x2000000000001.8000000000000002p0, 0x2000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
473 | TEST_f_f (roundeven, -0x2000000000001.8000000000000002p0, -0x2000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
474 | TEST_f_f (roundeven, 0x3ffffffffffff.fffffffffffffffep0, 0x4000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
475 | TEST_f_f (roundeven, -0x3ffffffffffff.fffffffffffffffep0, -0x4000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
476 | TEST_f_f (roundeven, 0x1000000000000.7fffffffffffffffp0, 0x1000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
477 | TEST_f_f (roundeven, -0x1000000000000.7fffffffffffffffp0, -0x1000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
478 | TEST_f_f (roundeven, 0x1000000000000.8p0, 0x1000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
479 | TEST_f_f (roundeven, -0x1000000000000.8p0, -0x1000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
480 | TEST_f_f (roundeven, 0x1000000000000.8000000000000001p0, 0x1000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
481 | TEST_f_f (roundeven, -0x1000000000000.8000000000000001p0, -0x1000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
482 | TEST_f_f (roundeven, 0x1000000000001.7fffffffffffffffp0, 0x1000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
483 | TEST_f_f (roundeven, -0x1000000000001.7fffffffffffffffp0, -0x1000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
484 | TEST_f_f (roundeven, 0x1000000000001.8p0, 0x1000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
485 | TEST_f_f (roundeven, -0x1000000000001.8p0, -0x1000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
486 | TEST_f_f (roundeven, 0x1000000000001.8000000000000001p0, 0x1000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
487 | TEST_f_f (roundeven, -0x1000000000001.8000000000000001p0, -0x1000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
488 | TEST_f_f (roundeven, 0x1ffffffffffff.ffffffffffffffffp0, 0x2000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
489 | TEST_f_f (roundeven, -0x1ffffffffffff.ffffffffffffffffp0, -0x2000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
490 | TEST_f_f (roundeven, 0x800000000000.7fffffffffffffff8p0, 0x800000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
491 | TEST_f_f (roundeven, -0x800000000000.7fffffffffffffff8p0, -0x800000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
492 | TEST_f_f (roundeven, 0x800000000000.8p0, 0x800000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
493 | TEST_f_f (roundeven, -0x800000000000.8p0, -0x800000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
494 | TEST_f_f (roundeven, 0x800000000000.80000000000000008p0, 0x800000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
495 | TEST_f_f (roundeven, -0x800000000000.80000000000000008p0, -0x800000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
496 | TEST_f_f (roundeven, 0x800000000001.7fffffffffffffff8p0, 0x800000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
497 | TEST_f_f (roundeven, -0x800000000001.7fffffffffffffff8p0, -0x800000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
498 | TEST_f_f (roundeven, 0x800000000001.8p0, 0x800000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
499 | TEST_f_f (roundeven, -0x800000000001.8p0, -0x800000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
500 | TEST_f_f (roundeven, 0x800000000001.80000000000000008p0, 0x800000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
501 | TEST_f_f (roundeven, -0x800000000001.80000000000000008p0, -0x800000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
502 | TEST_f_f (roundeven, 0xffffffffffff.ffffffffffffffff8p0, 0x1000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
503 | TEST_f_f (roundeven, -0xffffffffffff.ffffffffffffffff8p0, -0x1000000000000p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
504 | #endif | |
505 | ||
506 | /* Maximum exponent for noninteger values. */ | |
507 | TEST_f_f (roundeven, 0x800001p-1, 0x800000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
508 | TEST_f_f (roundeven, -0x800001p-1, -0x800000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
509 | TEST_f_f (roundeven, 0x800002p-1, 0x800002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
510 | TEST_f_f (roundeven, -0x800002p-1, -0x800002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
511 | TEST_f_f (roundeven, 0x800003p-1, 0x800004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
512 | TEST_f_f (roundeven, -0x800003p-1, -0x800004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
513 | TEST_f_f (roundeven, 0x800004p-1, 0x800004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
514 | TEST_f_f (roundeven, -0x800004p-1, -0x800004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
515 | TEST_f_f (roundeven, 0x800005p-1, 0x800004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
516 | TEST_f_f (roundeven, -0x800005p-1, -0x800004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
517 | TEST_f_f (roundeven, 0xffffffp-1, 0x1000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
518 | TEST_f_f (roundeven, -0xffffffp-1, -0x1000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
519 | #if MANT_DIG >= 53 | |
520 | TEST_f_f (roundeven, 0x10000000000001p-1, 0x10000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
521 | TEST_f_f (roundeven, -0x10000000000001p-1, -0x10000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
522 | TEST_f_f (roundeven, 0x10000000000002p-1, 0x10000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
523 | TEST_f_f (roundeven, -0x10000000000002p-1, -0x10000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
524 | TEST_f_f (roundeven, 0x10000000000003p-1, 0x10000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
525 | TEST_f_f (roundeven, -0x10000000000003p-1, -0x10000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
526 | TEST_f_f (roundeven, 0x10000000000004p-1, 0x10000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
527 | TEST_f_f (roundeven, -0x10000000000004p-1, -0x10000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
528 | TEST_f_f (roundeven, 0x10000000000005p-1, 0x10000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
529 | TEST_f_f (roundeven, -0x10000000000005p-1, -0x10000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
530 | TEST_f_f (roundeven, 0x1fffffffffffffp-1, 0x20000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
531 | TEST_f_f (roundeven, -0x1fffffffffffffp-1, -0x20000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
532 | #endif | |
533 | #if MANT_DIG >= 64 | |
534 | TEST_f_f (roundeven, 0x8000000000000001p-1, 0x8000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
535 | TEST_f_f (roundeven, -0x8000000000000001p-1, -0x8000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
536 | TEST_f_f (roundeven, 0x8000000000000002p-1, 0x8000000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
537 | TEST_f_f (roundeven, -0x8000000000000002p-1, -0x8000000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
538 | TEST_f_f (roundeven, 0x8000000000000003p-1, 0x8000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
539 | TEST_f_f (roundeven, -0x8000000000000003p-1, -0x8000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
540 | TEST_f_f (roundeven, 0x8000000000000004p-1, 0x8000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
541 | TEST_f_f (roundeven, -0x8000000000000004p-1, -0x8000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
542 | TEST_f_f (roundeven, 0x8000000000000005p-1, 0x8000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
543 | TEST_f_f (roundeven, -0x8000000000000005p-1, -0x8000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
544 | TEST_f_f (roundeven, 0xffffffffffffffffp-1, 0x10000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
545 | TEST_f_f (roundeven, -0xffffffffffffffffp-1, -0x10000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
546 | #endif | |
547 | #if MANT_DIG >= 106 | |
548 | TEST_f_f (roundeven, 0x200000000000000000000000001p-1, 0x200000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
549 | TEST_f_f (roundeven, -0x200000000000000000000000001p-1, -0x200000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
550 | TEST_f_f (roundeven, 0x200000000000000000000000002p-1, 0x200000000000000000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
551 | TEST_f_f (roundeven, -0x200000000000000000000000002p-1, -0x200000000000000000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
552 | TEST_f_f (roundeven, 0x200000000000000000000000003p-1, 0x200000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
553 | TEST_f_f (roundeven, -0x200000000000000000000000003p-1, -0x200000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
554 | TEST_f_f (roundeven, 0x200000000000000000000000004p-1, 0x200000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
555 | TEST_f_f (roundeven, -0x200000000000000000000000004p-1, -0x200000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
556 | TEST_f_f (roundeven, 0x200000000000000000000000005p-1, 0x200000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
557 | TEST_f_f (roundeven, -0x200000000000000000000000005p-1, -0x200000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
558 | TEST_f_f (roundeven, 0x3ffffffffffffffffffffffffffp-1, 0x400000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
559 | TEST_f_f (roundeven, -0x3ffffffffffffffffffffffffffp-1, -0x400000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
560 | #endif | |
561 | #if MANT_DIG >= 113 | |
562 | TEST_f_f (roundeven, 0x10000000000000000000000000001p-1, 0x10000000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
563 | TEST_f_f (roundeven, -0x10000000000000000000000000001p-1, -0x10000000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
564 | TEST_f_f (roundeven, 0x10000000000000000000000000002p-1, 0x10000000000000000000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
565 | TEST_f_f (roundeven, -0x10000000000000000000000000002p-1, -0x10000000000000000000000000002p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
566 | TEST_f_f (roundeven, 0x10000000000000000000000000003p-1, 0x10000000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
567 | TEST_f_f (roundeven, -0x10000000000000000000000000003p-1, -0x10000000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
568 | TEST_f_f (roundeven, 0x10000000000000000000000000004p-1, 0x10000000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
569 | TEST_f_f (roundeven, -0x10000000000000000000000000004p-1, -0x10000000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
570 | TEST_f_f (roundeven, 0x10000000000000000000000000005p-1, 0x10000000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
571 | TEST_f_f (roundeven, -0x10000000000000000000000000005p-1, -0x10000000000000000000000000004p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
572 | TEST_f_f (roundeven, 0x1ffffffffffffffffffffffffffffp-1, 0x20000000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
573 | TEST_f_f (roundeven, -0x1ffffffffffffffffffffffffffffp-1, -0x20000000000000000000000000000p-1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
574 | #endif | |
575 | ||
576 | /* Minimum exponent forcing integer values. */ | |
577 | TEST_f_f (roundeven, 0x800001p0, 0x800001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
578 | TEST_f_f (roundeven, -0x800001p0, -0x800001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
579 | TEST_f_f (roundeven, 0x800002p0, 0x800002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
580 | TEST_f_f (roundeven, -0x800002p0, -0x800002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
581 | TEST_f_f (roundeven, 0x800003p0, 0x800003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
582 | TEST_f_f (roundeven, -0x800003p0, -0x800003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
583 | #if MANT_DIG >= 53 | |
584 | TEST_f_f (roundeven, 0x10000000000001p0, 0x10000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
585 | TEST_f_f (roundeven, -0x10000000000001p0, -0x10000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
586 | TEST_f_f (roundeven, 0x10000000000002p0, 0x10000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
587 | TEST_f_f (roundeven, -0x10000000000002p0, -0x10000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
588 | TEST_f_f (roundeven, 0x10000000000003p0, 0x10000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
589 | TEST_f_f (roundeven, -0x10000000000003p0, -0x10000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
590 | #endif | |
591 | #if MANT_DIG >= 64 | |
592 | TEST_f_f (roundeven, 0x8000000000000001p0, 0x8000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
593 | TEST_f_f (roundeven, -0x8000000000000001p0, -0x8000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
594 | TEST_f_f (roundeven, 0x8000000000000002p0, 0x8000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
595 | TEST_f_f (roundeven, -0x8000000000000002p0, -0x8000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
596 | TEST_f_f (roundeven, 0x8000000000000003p0, 0x8000000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
597 | TEST_f_f (roundeven, -0x8000000000000003p0, -0x8000000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
598 | #endif | |
599 | #if MANT_DIG >= 106 | |
600 | TEST_f_f (roundeven, 0x200000000000000000000000001p0, 0x200000000000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
601 | TEST_f_f (roundeven, -0x200000000000000000000000001p0, -0x200000000000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
602 | TEST_f_f (roundeven, 0x200000000000000000000000002p0, 0x200000000000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
603 | TEST_f_f (roundeven, -0x200000000000000000000000002p0, -0x200000000000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
604 | TEST_f_f (roundeven, 0x200000000000000000000000003p0, 0x200000000000000000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
605 | TEST_f_f (roundeven, -0x200000000000000000000000003p0, -0x200000000000000000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
606 | #endif | |
607 | #if MANT_DIG >= 113 | |
608 | TEST_f_f (roundeven, 0x10000000000000000000000000001p0, 0x10000000000000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
609 | TEST_f_f (roundeven, -0x10000000000000000000000000001p0, -0x10000000000000000000000000001p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
610 | TEST_f_f (roundeven, 0x10000000000000000000000000002p0, 0x10000000000000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
611 | TEST_f_f (roundeven, -0x10000000000000000000000000002p0, -0x10000000000000000000000000002p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
612 | TEST_f_f (roundeven, 0x10000000000000000000000000003p0, 0x10000000000000000000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
613 | TEST_f_f (roundeven, -0x10000000000000000000000000003p0, -0x10000000000000000000000000003p0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), | |
614 | #endif | |
615 | }; | |
616 | ||
617 | static void | |
618 | roundeven_test (void) | |
619 | { | |
620 | ALL_RM_TEST (roundeven, 1, roundeven_test_data, RUN_TEST_LOOP_f_f, END); | |
621 | } | |
622 | ||
92061bb0 JM |
623 | static void |
624 | do_test (void) | |
625 | { | |
626 | roundeven_test (); | |
627 | } | |
628 | ||
5cbb5849 JM |
629 | /* |
630 | * Local Variables: | |
631 | * mode:c | |
632 | * End: | |
633 | */ |