1/* Test roundeven.
2   Copyright (C) 1997-2021 Free Software Foundation, Inc.
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
17   <https://www.gnu.org/licenses/>.  */
18
19#include "libm-test-driver.c"
20
21static 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
617static void
618roundeven_test (void)
619{
620  ALL_RM_TEST (roundeven, 1, roundeven_test_data, RUN_TEST_LOOP_f_f, END);
621}
622
623static void
624do_test (void)
625{
626  roundeven_test ();
627}
628
629/*
630 * Local Variables:
631 * mode:c
632 * End:
633 */
634