simplify Sel lowering code
[libfirm] / ir / tv / IeeeCC754 / BasicOp / testsets / divide
1 !! This file contains precision and range independent test vectors for
2 !! the operation divide (/). The first character in each
3 !! test vector refers to the origin of the test vector
4 !!
5 !! 2:  Jerome Coonen Version <2>
6 !! 3:  Jerome Coonen Version <3>
7 !!      @Phdthesis{
8 !!              author = {Coonen, J.T.},
9 !!              title  = {Contributions to a proposed standard for binary
10 !!                 floating-point arithmetic},
11 !!              school = {University of California, Berkeley},
12 !!              year   = {1984}}
13 !!
14 !! H:  precision independent encoding of UCB/<H>ough test vector
15 !!      @Unpublished{
16 !!             author = {David G. Hough and others},
17 !!             title  = {{UCBTEST}, a suite of programs for testing certain
18 !!                difficult cases of {IEEE} 754 floating-point arithmetic},
19 !!             year   = {1988},
20 !!             note   = {Restricted public domain software from
21 !!                http://netlib.bell-labs.com/netlib/fp/index.html}}
22 !!
23 !! A:  Verdonk-Cuyt-Verschaeren (University of <A>ntwerp)
24 !!      @Article{
25 !!             author  = {Verdonk, B. and Cuyt, A. and Verschaeren, D.},
26 !!             title   = {A precision- and range-independent tool for testing
27 !!                       floating-point arithmetic {I}: basic operations,
28 !!                       square root and remainder},
29 !!             journal = {ACM TOMS},
30 !!             volume  = {27},
31 !!             number  = {1},
32 !!             pages   = {92-118},
33 !!             year    = {2001}}
34 !!             note  = {Under revision}}
35 !!
36 !! This file is part of the tool IeeeCC754 or IEEE 754 Compliance Checker.
37 !! It is a precision and range independent tool to test whether
38 !! an implementation of floating-point arithmetic (in hardware or
39 !! software) is compliant with the principles of the IEEE 754-854
40 !! floating-point standards. You can find out more about the testing
41 !! tool IeeeCC754 and the syntax and semantics of the test vectors
42 !! at
43 !!            http://win-www.uia.ac.be/u/cant/ieeecc754.html
44 !!
45 !! Last updated:
46 !!              $Date$
47 !!
48 !! Contact:
49 !!      Brigitte.Verdonk@ua.ac.be
50 !!      Department of Mathematics and Computer Science
51 !!      University of Antwerp (UIA)
52 !!      Universiteitsplein 1
53 !!      B2610 Antwerp, BELGIUM
54 !!
55 !! Medium size numbers
56 2/         ALL     1p15    1p5      OK    1p10
57 A/         ALL     -1p15    -1p5    OK    1p10
58 2/         ALL     1p15    -1p5     OK    -1p10
59 2/         ALL     -1p15   1p5      OK    -1p10
60 2/         ALL     1p120   1p20     OK    1p100
61 A/         ALL     -1p120   -1p20   OK    1p100
62 2/         ALL     -1p120  1p20     OK    -1p100
63 2/         ALL     1p120   -1p20    OK    -1p100
64 2/         ALL     1p63    1p23     OK    1p40
65 A/         ALL     -1p63    -1p23   OK    1p40
66 A/         ALL     -1p63    1p23    OK    -1p40
67 A/         ALL     1p63    -1p23    OK    -1p40
68 2/         ALL     1p47    1p13     OK      1p34
69 A/         ALL     -1p47    -1p13   OK    1p34
70 A/         ALL     -1p47    1p13    OK    -1p34
71 A/         ALL     1p47    -1p13    OK    -1p34
72 !! divisions by 10
73 A/      ALL     40      10      OK      4
74 A/      ALL     -40     -10     OK      4
75 A/      ALL     -40     10      OK      -4
76 A/      ALL     40      -10     OK      -4
77 2/         ALL     32760   10       OK    3276
78 2/         ALL     10000   10       OK    1000
79 2/         ALL     10000   100      OK    100
80 2/         ALL     10000   1000     OK    10
81
82 !! / 1
83 2/       ALL   1   1    OK   1
84 2/       ALL   -1  -1   OK   1
85 A/       ALL   1   -1   OK   -1
86 2/       ALL   -1   1   OK   -1
87 2/       ALL   2   1    OK   2
88 2/       ALL   -2   -1  OK   2
89 2/       ALL   -2   1   OK   -2
90 2/       ALL   2   -1   OK   -2
91 2/       ALL   Td1  1   OK   Td1
92 2/       ALL   Td1  -1  OK   -Td1
93 A/       ALL   0i1   1    OK   0i1
94 A/       ALL   -0i1   -1  OK   0i1
95 A/       ALL   -0i1   1   OK   -0i1
96 A/       ALL   0i1   -1   OK   -0i1
97 !! / 2
98 2/       ALL   Hm1       2       OK       Hm2
99 2/       ALL   Hm1       -2       OK   -Hm2
100 2/       ALL   -Hm1d1   2   OK   -Hm2d1
101 2/       ALL   Hm1d3   -2   OK   -Hm2d3
102 2/       ALL   Hd1       -2       OK   -Hm1d1
103 2/       ALL   8   2   OK   4
104 A/       ALL   -8   -2   OK   4
105 2/       ALL   -8   2   OK   -4
106 A/       ALL   8   -2   OK   -4
107 2/       ALL   Tp1       -2       OK   -T
108 2/       ALL   Tp1i3   -2   OK   -Ti3
109 2/       ALL   Tp1i1   -2   OK   -Ti1
110 2/       ALL     Tp1d2  2      OK       Td1
111 A/       ALL   0i(1)1   2   OK  0i(2)1
112 A/       ALL   -0i(1)1   -2   OK   0i(2)1
113 A/       ALL   -0i(1)1   2   OK   -0i(2)1
114 A/       ALL   0i(1)1   -2   OK   -0i(2)1
115 A/       ALL   0i2   2    OK   0i1
116 A/       ALL   -0i2   -2   OK   0i1
117 A/       ALL   -0i2   2   OK   -0i1
118 A/       ALL   0i2   -2   OK   -0i1
119 2/       ALL   Hd1       Hm1d1   OK       2
120 2/       ALL   -Hm1i1   Hm2i1   OK       -2
121 2/       ALL   Hm1i3   -Hm2i3   OK       -2
122 2/       ALL   Tp1       T       OK       2
123 2/       ALL   -Tp1i1   Ti1       OK   -2
124 2/       ALL   Tp1i1   Ti1       OK       2
125 2/       ALL   Tp1i3   -Ti3       OK   -2
126 2/       ALL   -Tp1i5   Ti5       OK   -2
127 A/       ALL   0i(1)1   0i(2)1   OK     2
128 A/       ALL   -0i(1)1   -0i(2)1   OK   2
129 A/       ALL   -0i(1)1   0i(2)1   OK    -2
130 A/       ALL   0i(1)1   -0i(2)1   OK    -2
131 A/       ALL   0i2      0i1     OK      2
132 A/       ALL   -0i2     -0i1    OK      2
133 A/       ALL   0i2      -0i1    OK      -2
134 A/       ALL   -0i2     0i1     OK      -2
135 !! * 2
136 A/      ALL     3       1m1     OK      6
137 A/      ALL     -3      -1m1    OK      6
138 A/      ALL     -3      1m1     OK      -6
139 A/      ALL     3       -1m1    OK      -6
140 2/          ALL     Td1   1m1   OK        Tp1d2
141 A/          ALL     -Td1   -1m1 OK        Tp1d2
142 A/          ALL     -Td1   1m1  OK        -Tp1d2
143 A/          ALL     Td1   -1m1  OK        -Tp1d2
144 2/          ALL     0i1   1m1   OK        0i2
145 A/          ALL     -0i1   -1m1 OK        0i2
146 2/          ALL     -0i1   1m1  OK        -0i2
147 A/          ALL     0i1   -1m1  OK        -0i2
148 A/      ALL     3       6       OK      1m1
149 A/      ALL     -3      -6      OK      1m1
150 A/      ALL     -3      6       OK      -1m1
151 A/      ALL     3       -6      OK      -1m1
152 A/          ALL     Td1   Tp1d2         OK      1m1
153 A/          ALL     -Td1  -Tp1d2        OK      1m1
154 A/          ALL     -Td1  Tp1d2         OK      -1m1
155 A/          ALL     Td1   -Tp1d2        OK      -1m1
156 2/          ALL     0i1   0i2   OK      1m1
157 A/          ALL     -0i1  0i2   OK      -1m1
158 A/          ALL     -0i1  -0i2  OK      1m1
159 A/          ALL     0i1   -0i2  OK      -1m1
160 !! * 2^k
161 A/      ALL     3       1m9     OK      3p9
162 A/      ALL     -3      -1m9    OK      3p9
163 A/      ALL     -3      1m9     OK      -3p9
164 A/      ALL     3       -1m9    OK      -3p9
165 2/          ALL     Td1   1m9   OK         Tp9d2
166 A/          ALL     -Td1   -1m9   OK       Tp9d2
167 A/          ALL     -Td1   1m9   OK         -Tp9d2
168 A/          ALL     Td1   -1m9   OK         -Tp9d2
169 2/          ALL     0i1   1m3   OK               0i8
170 A/          ALL     -0i1   -1m3   OK         0i8
171 A/          ALL     -0i1   1m3   OK         -0i8
172 A/          ALL     0i1   -1m3   OK         -0i8
173 A/      ALL     3       3p9     OK      1m9
174 A/      ALL     -3      3p9     OK      -1m9
175 A/      ALL     -3      -3p9    OK      1m9
176 A/      ALL     3       -3p9    OK      -1m9
177 A/          ALL     Td1   Tp9d2         OK      1m9
178 A/          ALL     -Td1  Tp9d2         OK      -1m9
179 A/          ALL     -Td1  -Tp9d2        OK      1m9
180 A/          ALL     Td1   -Tp9d2        OK      -1m9
181 A/          ALL     0i1   0i8   OK      1m3
182 A/          ALL     -0i1  0i8   OK      -1m3
183 A/          ALL     -0i1  -0i8  OK      1m3
184 A/          ALL     0i1   -0i8  OK      -1m3
185 !! / 3
186 2/       ALL   9   3     OK    3
187 2/       ALL   -9  -3    OK    3
188 A/       ALL   -9   3    OK   -3
189 A/       ALL   9   -3    OK   -3
190 A/       ALL   6   3   OK       2
191 2/       ALL   -6   -3   OK       2
192 A/       ALL   6   -3   OK       -2
193 A/       ALL   -6   3   OK       -2
194 !! /4
195 2/       ALL   Hd3       4       OK       Hm2d3
196 2/       ALL   Hd3       -4       OK   -Hm2d3
197 2/       ALL   -Hd3       4       OK   -Hm2d3
198 2/       ALL   -Hd3       -4   OK   Hm2d3
199 A/       ALL   0i(1)1   4   OK  0i(3)1
200 A/       ALL   -0i(1)1   -4   OK   0i(3)1
201 A/       ALL   -0i(1)1   4   OK   -0i(3)1
202 A/       ALL   0i(1)1   -4   OK   -0i(3)1
203 A/       ALL   0i4   4   OK     0i1
204 A/       ALL   -0i4   -4   OK   0i1
205 A/       ALL   -0i4   4   OK   -0i1
206 A/       ALL   0i4   -4   OK   -0i1
207 2/       ALL   Hd1       Hm2d1   OK       4
208 2/       ALL   -Hd1       Hm2d1   OK   -4
209 2/       ALL   Hd1       -Hm2d1   OK   -4
210 2/       ALL   -Hd1       -Hm2d1   OK   4
211 A/       ALL   0i(1)1   0i(3)1   OK     4
212 A/       ALL   -0i(1)1   -0i(3)1   OK   4
213 A/       ALL   -0i(1)1   0i(3)1   OK    -4
214 A/       ALL   0i(1)1   -0i(3)1   OK    -4
215 A/       ALL   0i4      0i1     OK      4
216 A/       ALL   -0i4     -0i1    OK      4
217 A/       ALL   0i4      -0i1    OK      -4
218 A/       ALL   -0i4     0i1     OK      -4
219
220 !! equal operands
221 2/       ALL   5   5    OK   1
222 A/       ALL   -5   -5  OK   1
223 A/       ALL   5   -5   OK   -1
224 A/       ALL  -5   5   OK   -1
225 A/       ALL   3   3   OK       1
226 A/       ALL   -3   -3   OK       1
227 A/       ALL   -3   3   OK       -1
228 2/       ALL   3   -3   OK       -1
229 A/       ALL   7   7   OK       1
230 A/       ALL   -7   -7   OK       1
231 A/       ALL   7   -7   OK       -1
232 2/       ALL   -7   7   OK       -1
233 A/       ALL   0i1   0i1    OK   1
234 A/       ALL   -0i1   -0i1  OK   1
235 A/       ALL   0i1   -0i1   OK   -1
236 A/       ALL  -0i1   0i1   OK   -1
237 2/       ALL     0i9   9    OK       0i1
238 2/       ALL     0i9  -9    OK      -0i1
239
240 !! special representations
241 !! zero versus zero
242 2/       ALL   0   0   i   Q
243 2/       ALL   -0   0   i   -Q
244 2/       ALL   0   -0   i   -Q
245 2/       ALL   -0   -0   i       Q
246 !! zero versus denormal
247 ! 0 / denormalized -> 0.
248 2/       ALL   0   0i1   OK       0
249 2/       ALL   -0   0i3   OK   -0
250 2/       ALL   0   -0i2   OK   -0
251 2/       ALL   -0   -0i4   OK   0
252 2/       ALL   0   Td1   OK       0
253 2/       ALL   -0   Td1   OK   -0
254 2/       ALL   0   -Td1   OK   -0
255 2/       ALL   -0   -Td1   OK   0
256 ! Denormalized * 0 -> Inf, DivBy0
257 2/       ALL   0i1       0       z       H
258 2/       ALL   -0i3       0       z       -H
259 2/       ALL   0i2       -0       z       -H
260 2/       ALL   -0i4       -0   z   H
261 2/       ALL   Td1       0       z       H
262 2/       ALL   -Td1       0       z       -H
263 2/       ALL   Td1       -0       z       -H
264 2/       ALL   -Td1       -0   z   H
265 !! zero versus normal
266 ! 0 / small_integer -> 0.
267 2/       ALL   0   1   OK   0
268 2/       ALL   -0   2   OK       -0
269 2/       ALL   0   -3   OK       -0
270 2/       ALL   -0   -4   OK       0
271 2/       ALL   0   5   OK   0
272 2/       ALL   -0   6   OK       -0
273 2/       ALL   0   -7   OK       -0
274 2/       ALL   -0   -8   OK       0
275 ! Small_int / 0 -> Inf with DivBy0.
276 2/       ALL   1   0   z   H
277 2/       ALL   -2   0   z   -H
278 2/       ALL   3   -0   z   -H
279 2/       ALL   -4   -0   z       H
280 2/       ALL   5   0   z   H
281 2/       ALL   -6   0   z   -H
282 2/       ALL   7   -0   z   -H
283 2/       ALL   -8   -0   z       H
284 ! 0 / huge -> 0.
285 2/       ALL   0   Hm1   OK       0
286 2/       ALL   -0   Hm2   OK   -0
287 2/       ALL   0   -Hm1   OK   -0
288 2/       ALL   -0   -Hm2   OK   0
289 2/       ALL   0   Hm1d1   OK   0
290 2/       ALL   -0   Hm2d1   OK   -0
291 2/       ALL   0   -Hm2d1   OK   -0
292 2/       ALL   -0   -Hm1d1       OK       0
293 ! Huge / 0 -> Inf with DivBy0.
294 2/       ALL   Hm1       0       z       H
295 2/       ALL   -Hm2       0       z       -H
296 2/       ALL   Hm1       -0       z       -H
297 2/       ALL   -Hm2       -0   z   H
298 2/       ALL   Hm1d1   0   z   H
299 2/       ALL   -Hm2d1   0   z   -H
300 2/       ALL   Hm2d1   -0   z   -H
301 2/       ALL   -Hm1d1   -0       z       H
302 ! 0 / tiny -> 0.
303 2/       ALL   0   T   OK   0
304 2/       ALL   -0   Tp1   OK   -0
305 2/       ALL   0   -Tp1   OK   -0
306 2/       ALL   -0   -T   OK       0
307 2/       ALL   0   Tp1d1   OK   0
308 2/       ALL   -0   Ti1   OK   -0
309 2/       ALL   0   -Ti1   OK   -0
310 2/       ALL   -0   -Tp1d1       OK       0
311 ! Tiny / 0 -> Inf with DivBy0.
312 2/       ALL   T   0   z   H
313 2/       ALL   -Tp1       0       z       -H
314 2/       ALL   Tp1       -0       z       -H
315 2/       ALL   -T   -0   z       H
316 2/       ALL   Tp1d1   0   z   H
317 2/       ALL   -Ti1       0       z       -H
318 2/       ALL   Ti1       -0       z       -H
319 2/       ALL   -Tp1d1   -0       z       H
320 !! zero versus infinity
321 ! Inf / 0 --> Inf with no problem.
322 2/       ALL   H   0   OK   H
323 2/       ALL   -H   0   OK       -H
324 2/       ALL   H   -0   OK       -H
325 2/       ALL   -H   -0   OK       H
326 ! 0 / Inf --> 0 with no problem.
327 2/       ALL   0   H    OK      0
328 2/       ALL   -0   H   OK       -0
329 2/       ALL   0   -H   OK       -0
330 2/       ALL   -0   -H   OK       0
331 !! zero versus NaN
332 2/          ALL     Q       0       OK      Q
333 2/          ALL     Q       -0      OK      Q
334 2/          ALL     0       Q       OK      Q
335 2/          ALL     -0      Q       OK      Q
336 !2/          ALL     S       0       i       Q
337 !2/          ALL     S       -0      i       Q
338 !2/          ALL     0       S       i       Q
339 !2/          ALL     -0      S       i       Q
340 !! infinity versus infinity
341 2/       ALL   H   H   i   Q
342 2/       ALL   -H   H   i   -Q
343 2/       ALL   H   -H   i   -Q
344 2/       ALL   -H   -H   i       Q
345 !! infinity versus denormal
346 ! Inf / denormalized -> Inf.
347 2/       ALL   H   0i1   OK       H
348 2/       ALL   -H   0i3   OK   -H
349 2/       ALL   H   -0i2   OK   -H
350 2/       ALL   -H   -0i4   OK   H
351 2/       ALL   H   Td1   OK       H
352 2/       ALL   -H   Td1   OK   -H
353 2/       ALL   H   -Td1   OK   -H
354 2/       ALL   -H   -Td1   OK   H
355 ! Denorm / Inf -> 0.
356 2/       ALL   0i1       H       OK       0
357 2/       ALL   -0i3       H       OK   -0
358 2/       ALL   0i2       -H       OK   -0
359 2/       ALL   -0i4       -H   OK   0
360 2/       ALL   Td1       H       OK       0
361 2/       ALL   -Td1       H       OK   -0
362 2/       ALL   Td1       -H       OK   -0
363 2/       ALL   -Td1       -H   OK   0
364 !! infinity versus normal
365 ! Inf / small_integer -> Inf.
366 2/       ALL   H   1   OK   H
367 2/       ALL   -H   2   OK       -H
368 2/       ALL   H   -3   OK       -H
369 2/       ALL   -H   -4   OK       H
370 2/       ALL   H   5   OK   H
371 2/       ALL   -H   6   OK       -H
372 2/       ALL   H   -7   OK       -H
373 2/       ALL   -H   -8   OK       H
374 ! Small_int / Inf -> 0.
375 2/       ALL   1   H   OK   0
376 2/       ALL   -2   H   OK       -0
377 2/       ALL   3   -H   OK       -0
378 2/       ALL   -4   -H   OK       0
379 2/       ALL   5   H   OK   0
380 2/       ALL   -6   H   OK       -0
381 2/       ALL   7   -H   OK       -0
382 2/       ALL   -8   -H   OK       0
383 ! Huge / Inf -> 0.
384 2/       ALL   Hm1       H       OK       0
385 2/       ALL   -Hm2       H       OK   -0
386 2/       ALL   Hm1       -H       OK   -0
387 2/       ALL   -Hm2       -H   OK   0
388 2/       ALL   Hm1d1   H   OK   0
389 2/       ALL   -Hm2d1   H   OK   -0
390 2/       ALL   Hd1       -H       OK   -0
391 2/       ALL   -Hd1       -H   OK   0
392 ! Inf / huge -> Inf.
393 2/       ALL   H   Hm1   OK       H
394 2/       ALL   -H   Hm2   OK   -H
395 2/       ALL   H   -Hm1   OK   -H
396 2/       ALL   -H   -Hm2   OK   H
397 2/       ALL   H   Hm1d1   OK   H
398 2/       ALL   H   -Hm2d1   OK   -H
399 2/       ALL   H   -Hd1   OK   -H
400 2/       ALL   -H   -Hd1   OK   H
401 ! Inf / tiny -> Inf.
402 2/       ALL   H   T   OK   H
403 2/       ALL   -H   Tp1   OK   -H
404 2/       ALL   H   -Tp1   OK   -H
405 2/       ALL   -H   -T   OK       H
406 2/       ALL   H   Tp1d1   OK   H
407 2/       ALL   -H   Ti1   OK   -H
408 2/       ALL   H   -Ti1   OK   -H
409 2/       ALL   -H   -Tp1d1       OK       H
410 ! Tiny / Inf -> 0.
411 2/       ALL   T   H   OK   0
412 2/       ALL   -Tp1       H       OK   -0
413 2/       ALL   Tp1       -H       OK   -0
414 2/       ALL   -T   -H   OK       0
415 2/       ALL   Tp1d1   H   OK   0
416 2/       ALL   -Ti1       H       OK   -0
417 2/       ALL   Ti1       -H       OK   -0
418 2/       ALL   -Tp1d1   -H       OK       0
419 !! infinity versus NaN
420 2/          ALL     Q       H      OK      Q
421 2/          ALL     Q       -H     OK      Q
422 2/          ALL     H      Q       OK      Q
423 2/          ALL     -H     Q       OK      Q
424 !2/          ALL     S       H      i       Q
425 !2/          ALL     S       -H     i       Q
426 !2/          ALL     H      S       i       Q
427 !2/          ALL     -H     S       i       Q
428 !! NaN versus NaN
429 2/          ALL     Q       Q       OK      Q
430 !2/          ALL     Q       S       i       Q
431 !2/          ALL     S       Q       i       Q
432 !2/          ALL     S       S       i       Q
433 !! NaN versus denormal
434 2/          ALL     Td1  Q               OK              Q
435 2/          ALL     -Td1 Q               OK              Q
436 2/          ALL     Q       Td1  OK              Q
437 2/          ALL     Q       -Td1 OK              Q
438 2/          ALL     Q       0i1   OK      Q
439 2/          ALL     Q       -0i1  OK      Q
440 2/          ALL     0i1   Q               OK      Q
441 2/          ALL     -0i1  Q               OK      Q
442 !2/          ALL     Td1  S               i               Q
443 !2/          ALL     -Td1 S               i               Q
444 !2/          ALL     S       Td1  i               Q
445 !2/          ALL     S       -Td1 i               Q
446 !2/          ALL     S       0i1   i               Q
447 !2/          ALL     S       -0i1  i               Q
448 !2/          ALL     0i1   S               i               Q
449 !2/          ALL     -0i1  S               i               Q
450 !! NaN versus normal
451 2/          ALL     Q       1       OK      Q
452 2/          ALL     Q       -1      OK      Q
453 2/          ALL     1       Q       OK      Q
454 2/          ALL     -1      Q       OK      Q
455 2/          ALL     Q       Hd1  OK              Q
456 2/          ALL     Q       -Hd1 OK              Q
457 2/          ALL     Hd1  Q               OK              Q
458 2/          ALL     -Hd1 Q               OK              Q
459 !2/          ALL     S       1       i       Q
460 !2/          ALL     S       -1      i       Q
461 !2/          ALL     1       S       i       Q
462 !2/          ALL     -1      S       i       Q
463 !2/          ALL     S       Hd1  i               Q
464 !2/          ALL     S       -Hd1 i               Q
465 !2/          ALL     Hd1  S               i               Q
466 !2/          ALL     -Hd1 S               i               Q
467
468 !! exceptions
469 !! invalid and divide by zero, see special representations
470 !! inexact, overflow
471 !! exp. Z >= U
472 2/          =>      Hm1          1m1    xo          H
473 2/          0<      Hm1          1m1    xo          Hd1
474 2/          =>      -Hm1         -1m1   xo          H
475 2/          0<      -Hm1         -1m1   xo          Hd1
476 2/          =<      Hm1          -1m1   xo          -H
477 2/          =<      -Hm1         1m1    xo          -H
478 2/          0>      Hm1          -1m1   xo          -Hd1
479 2/          0>      -Hm1         1m1    xo          -Hd1
480 2/          =>      Hm9          Tp9    xo      H
481 2/          0<      Hm9          Tp9    xo      Hd1
482 2/          =>      Hd1         0i1     xo          H
483 2/          0<      Hd1         0i1     xo          Hd1
484 2/          =>      Hm1          Td1    xo          H
485 2/          0<      Hm1          Td1    xo          Hd1
486 2/          =>      Hd1         1d1     xo          H
487 2/          0<      Hd1         1d1     xo          Hd1
488 !! Result = Max. normal, round or sticky bit <> 0
489 !! This combination is not possible
490 !! inexact, underflow
491 !! X - Y <= -B-t
492 !! Z = 0.0...0, round bit = 0
493 A/      =0<     T       2pt     xu      0
494 A/      >       T       2pt     xu      0i1
495 A/      =0<     -T      -2pt    xu      0
496 A/      >       -T      -2pt    xu      0i1
497 A/      =0>     T       -2pt    xu      -0
498 A/      <       T       -2pt    xu      -0i1
499 A/      =0>     -T      2pt     xu      -0
500 A/      <       -T      2pt     xu      -0i1
501 !! denormal
502 A/      =0<     0i1     4       xu      0
503 A/      >       0i1     4       xu      0i1
504 A/      =0<     -0i1    -4      xu      0
505 A/      >       -0i1    -4      xu      0i1
506 A/      =0>     0i1     -4      xu      -0
507 A/      <       0i1     -4      xu      -0i1
508 A/      =0>     -0i1    4       xu      -0
509 A/      <       -0i1    4       xu      -0i1
510 ! Tiny / huge -> underflow.
511 2/          =<0     0i1   Hd1  xu          0
512 2/          >       0i1   Hd1  xu          0i1
513 2/          =<0     -0i1  -Hd1  xu          0
514 2/          >       -0i1  -Hd1  xu          0i1
515 2/          =0>     0i1   -Hd1 xu          -0
516 2/          <       0i1   -Hd1 xu          -0i1
517 2/          =0>     -0i1   Hd1 xu          -0
518 2/          <       -0i1   Hd1 xu          -0i1
519 !! X - Y = -B-t+1, round bit = 1, sticky bit = 1
520 A/      0<      Tp1d1   1pt     xu      0
521 A/      =>      Tp1d1   1pt     xu      0i1
522 A/      0<      -Tp1d1  -1pt    xu      0
523 A/      =>      -Tp1d1  -1pt    xu      0i1
524 A/      0>      -Tp1d1  1pt     xu      -0
525 A/      =<      -Tp1d1  1pt     xu      -0i1
526 A/      0>      Tp1d1   -1pt    xu      -0
527 A/      =<      Tp1d1   -1pt    xu      -0i1
528 !! denormal
529 A/      0<      Td1     1ptm1   xu      0
530 A/      =>      Td1     1ptm1   xu      0i1
531 A/      0<      -Td1    -1ptm1  xu      0
532 A/      =>      -Td1    -1ptm1  xu      0i1
533 A/      0>      -Td1    1ptm1   xu      -0
534 A/      =<      -Td1    1ptm1   xu      -0i1
535 A/      0>      Td1     -1ptm1  xu      -0
536 A/      =<      Td1     -1ptm1  xu      -0i1
537 !! X - Y = -B-t+1, round bit = 1, sticky bits = 0
538 A/      0<      3mB     1pt     xu      0
539 A/      =>      3mB     1pt     xu      0i1
540 A/      0<      -3mB    -1pt    xu      0
541 A/      =>      -3mB    -1pt    xu      0i1
542 A/      0>      -3mB    1pt     xu      -0
543 A/      =<      -3mB    1pt     xu      -0i1
544 A/      0>      3mB     -1pt    xu      -0
545 A/      =<      3mB     -1pt    xu      -0i1
546 !! denormal
547 A/      0<      0i3     4       xu      0
548 A/      =>      0i3     4       xu      0i1
549 A/      0<      -0i3    -4      xu      0
550 A/      =>      -0i3    -4      xu      0i1
551 A/      0>      -0i3    4       xu      -0
552 A/      =<      -0i3    4       xu      -0i1
553 A/      0>      0i3     -4      xu      -0
554 A/      =<      0i3     -4      xu      -0i1
555 !! X - Y = -B-t+1, round bit = 1, sticky bits = 1
556 A/      0<      5mBm1   1pt     xu      0
557 A/      =>      5mBm1   1pt     xu      0i1
558 A/      0<      -5mBm1  -1pt    xu      0
559 A/      =>      -5mBm1  -1pt    xu      0i1
560 A/      0>      -5mBm1  1pt     xu      -0
561 A/      =<      -5mBm1  1pt     xu      -0i1
562 A/      0>      5mBm1   -1pt    xu      -0
563 A/      =<      5mBm1   -1pt    xu      -0i1
564 !! denormal
565 A/      0<      0i5     8       xu      0
566 A/      =>      0i5     8       xu      0i1
567 A/      0<      -0i5    -8      xu      0
568 A/      =>      -0i5    -8      xu      0i1
569 A/      0>      -0i5    8       xu      -0
570 A/      =<      -0i5    8       xu      -0i1
571 A/      0>      0i5     -8      xu      -0
572 A/      =<      0i5     -8      xu      -0i1
573 !! X - Y = -B-t+1, round bit = 1, sticky bit = 0, round to even
574 A/      =0<     T       1pt     xu      0
575 A/      >       T       1pt     xu      0i1
576 A/      =0<     -T      -1pt    xu      0
577 A/      >       -T      -1pt    xu      0i1
578 A/      =0>     -T      1pt     xu      -0
579 A/      <       -T      1pt     xu      -0i1
580 A/      =0>     T       -1pt    xu      -0
581 A/      <       T       -1pt    xu      -0i1
582 !! denormal
583 2/      =0<     0i1     2       xu      0
584 2/      >       0i1     2       xu      0i1
585 2/      =0<     -0i1    -2      xu      0
586 2/      >       -0i1    -2      xu      0i1
587 2/      =0>     -0i1    2       xu      -0
588 2/      <       -0i1    2       xu      -0i1
589 2/      =0>     0i1     -2      xu      -0
590 2/      <       0i1     -2      xu      -0i1
591 !! X - Y = -B-t+2, round bit = 1, sticky bit = 0, round to even
592 A/      0<      Tp1i(1)1        1pt     xu      0i1
593 A/      =>      Tp1i(1)1        1pt     xu      0i2
594 A/      0<      -Tp1i(1)1       -1pt    xu      0i1
595 A/      =>      -Tp1i(1)1       -1pt    xu      0i2
596 A/      0>      -Tp1i(1)1       1pt     xu      -0i1
597 A/      =<      -Tp1i(1)1       1pt     xu      -0i2
598 A/      0>      Tp1i(1)1        -1pt    xu      -0i1
599 A/      =<      Tp1i(1)1        -1pt    xu      -0i2
600 !! denormal
601 A/      0<      0i3     2       xu      0i1
602 A/      =>      0i3     2       xu      0i2
603 A/      0<      -0i3    -2      xu      0i1
604 A/      =>      -0i3    -2      xu      0i2
605 A/      0>      -0i3    2       xu      -0i1
606 A/      =<      -0i3    2       xu      -0i2
607 A/      0>      0i3     -2      xu      -0i1
608 A/      =<      0i3     -2      xu      -0i2
609 !! exp. Z = -B + denormalization loss => inexactness
610 A/      =0<     Tp1d3   2       xu      Td2
611 A/      >       Tp1d3   2       xu      Td1
612 A/      =0<     -Tp1d3  -2      xu      Td2
613 A/      >       -Tp1d3  -2      xu      Td1
614 A/      =0>     -Tp1d3  2       xu      -Td2
615 A/      <       -Tp1d3  2       xu      -Td1
616 A/      =0>     Tp1d3   -2      xu      -Td2
617 A/      <       Tp1d3   -2      xu      -Td1
618 A/      0<=     Ti(3)7i3       1p2i(1)1    xu  0i(4)5
619 A/      >       Ti(3)7i3       1p2i(1)1    xu  0i(4)5i1
620 A/      0<      Ti(3)7i3       1pti(1)1    xu  0
621 A/      >=      Ti(3)7i3       1pti(1)1    xu  0i1
622 !! denormal
623 A/      0<      Td1     2       xu      0i(1)1d1
624 A/      =>      Td1     2       xu      0i(1)1
625 A/      0<      -Td1    -2      xu      0i(1)1d1
626 A/      =>      -Td1    -2      xu      0i(1)1
627 A/      0>      -Td1    2       xu      -0i(1)1d1
628 A/      =<      -Td1    2       xu      -0i(1)1
629 A/      0>      Td1     -2      xu      -0i(1)1d1
630 A/      =<      Td1     -2      xu      -0i(1)1
631 !! exp. Z = -B + inexactness, no denormalization loss
632 2/      =0<     T       1i1     xv      Td1
633 2/      >       T       1i1     xu      T
634 A/      =0<     -T      -1i1    xv      Td1
635 A/      >       -T      -1i1    xu      T
636 2/      =0>     -T      1i1     xv      -Td1
637 2/      <       -T      1i1     xu      -T
638 A/      =0>     T       -1i1    xv      -Td1
639 A/      <       T       -1i1    xu      -T
640 2/          <=0     Ti1     1i2     xv      Td1
641 2/          >       Ti1     1i2     xu      T
642 2/          <=0     Ti2     1i6     xv      Td4
643 !! denormal
644 2/      =0<     Td1     1i1     xv      Td2
645 A/      >       Td1     1i1     xu      Td1
646 A/      =0<     -Td1    -1i1    xv      Td2
647 A/      >       -Td1    -1i1    xu      Td1
648 A/      =0>     -Td1    1i1     xv      -Td2
649 A/      <       -Td1    1i1     xu      -Td1
650 A/      =0>     Td1     -1i1    xv      -Td2
651 A/      <       Td1     -1i1    xu      -Td1
652 2/          >=      Td2     1d2     xv      Td1
653 2/          >=      Td9     1d2     xv      Td8
654 2/          <=      -Td8    1d2     xv      -Td7
655 2/          <=0     Td1     1i2     xv      Td3
656 2/          >       Td1     1i2     xu      Td2
657 !! exp. Z = -B + tininess after rounding
658 A/          >       Ti(1)1d1     3m1     xu      T
659 A/          =       Ti(1)1d1     3m1     xu      Td1
660 A/          0<      Ti(1)1d1     3m1     xv      Td1
661 A/          <       -Ti(1)1d1    3m1     xu      -T
662 A/          =       -Ti(1)1d1    3m1     xu      -Td1
663 A/          0>      -Ti(1)1d1    3m1     xv      -Td1
664 A/          =>       1d1         Hm2     xu      T
665 A/          <0       1d1         Hm2     xu      Td1
666 A/          =<       -1d1        Hm2     xu      -T
667 A/          >0       -1d1        Hm2     xu      -Td1
668 !! tininess before and after rounding
669 !! as though the exponent range were unbounded
670 2/      0<      Tp1d1   2       xu      Td1
671 2/      =>      Tp1d1   2       xu      T
672 A/      0<      -Tp1d1  -2      xu      Td1
673 A/      =>      -Tp1d1  -2      xu      T
674 A/      0>      -Tp1d1  2       xu      -Td1
675 A/      =<      -Tp1d1  2       xu      -T
676 2/      0>      Tp1d1   -2      xu      -Td1
677 A/      =<      Tp1d1   -2      xu      -T
678 !! inexact, see rounding properties below
679
680 !! exact rounding
681 !! round bit = 0, sticky bit = 1 => inexact, round down
682 ! Tricky divides based on power series expansions
683 ! 1 / (1 + Nulp+) --> 1 - (2Nulp-) + tiny.
684 2/       =0<     1       1i1   x   1d2
685 2/       >       1       1i1   x   1d1
686 2/       =0<     -1      -1i1   x   1d2
687 2/       >       -1      -1i1   x   1d1
688 2/       =0>     -1       1i1   x   -1d2
689 2/       <       -1       1i1   x   -1d1
690 2/       =0>     1      -1i1   x   -1d2
691 2/       <       1      -1i1   x   -1d1
692 2/       =0<     1       1i2   x   1d4
693 2/       >       1       1i2   x   1d3
694 2/       =       1       1i3   x   1d6
695 2/       0       1       1i3   x   1d6
696 2/       <       1       1i3   x   1d6
697 2/       >       1       1i3   x   1d5
698 2/       =       1       1i4   x   1d8
699 2/       0       1       1i4   x   1d8
700 2/       <       1       1i4   x   1d8
701 2/       >       1       1i4   x   1d7
702 ! 1 / (1 - Nu-) --> 1 + (Q/2 u+) + tiny.
703 2/       =       1       1d2   x   1i1
704 2/       0       1       1d2   x   1i1
705 2/       <       1       1d2   x   1i1
706 2/       >       1       1d2   x   1i2
707 2/       =       1       1d4   x   1i2
708 2/       0       1       1d4   x   1i2
709 2/       <       1       1d4   x   1i2
710 2/       >       1       1d4   x   1i3
711 2/       =       1       1d8   x   1i4
712 2/       0       1       1d8   x   1i4
713 2/       <       1       1d8   x   1i4
714 2/       >       1       1d8   x   1i5
715 ! (1 + Mulp+) / (1 + Qulp+) -->
716 ! Case M < Q: (1 + 2Mulp-) * (1 - 2Qulp- + (2Qulp-)^2 - tiny) -->
717 ! 1 - 2(Q-M)ulp- + 4(QQ-MQ)(ulp-)^2 + tiny -->
718 ! 1 - 2(Q-M)ulp- + tiny.
719 ! M + Q = 3.
720 2/       =       1i1   1i2       x       1d2
721 2/       0       1i1   1i2       x       1d2
722 2/       <       1i1   1i2       x       1d2
723 2/       >       1i1   1i2       x       1d1
724 ! M + Q = 4.
725 2/       =       1i1   1i3       x       1d4
726 2/       0       1i1   1i3       x       1d4
727 2/       <       1i1   1i3       x       1d4
728 2/       >       1i1   1i3       x       1d3
729 ! M + Q = 5.
730 2/       =       1i2   1i3       x       1d2
731 2/       0       1i2   1i3       x       1d2
732 2/       <       1i2   1i3       x       1d2
733 2/       >       1i2   1i3       x       1d1
734 ! M + Q = 11.
735 2/       =       1i4   1i7       x       1d6
736 2/       0       1i4   1i7       x       1d6
737 2/       <       1i4   1i7       x       1d6
738 2/       >       1i4   1i7       x       1d5
739 ! M + Q = 14.
740 2/       =       1i6   1i8       x       1d4
741 2/       0       1i6   1i8       x       1d4
742 2/       <       1i6   1i8       x       1d4
743 2/       >       1i6   1i8       x       1d3
744 ! (1 - Mulp-) / (1 - Qulp-) -->
745 ! Case M < Q: (1 - (M/2)ulp+) * (1 + (Q/2)ulp+ + ((Q/2)ulp+)^2 + tiny) -->
746 ! 1 + ((Q-M)/2)ulp+ + (QQ-MQ)/4(ulp+)^2 + tiny -->
747 ! 1 + (Q-M)/2ulp+ + tiny.
748 ! M + Q = 4.
749 2/       =       1d1   1d3       x       1i1
750 2/       0       1d1   1d3       x       1i1
751 2/       <       1d1   1d3       x       1i1
752 2/       >       1d1   1d3       x       1i2
753 ! M + Q = 6.
754 2/       =       1d2   1d4       x       1i1
755 2/       0       1d2   1d4       x       1i1
756 2/       <       1d2   1d4       x       1i1
757 2/       >       1d2   1d4       x       1i2
758 ! M + Q = 8.
759 2/       =       1d1   1d7       x       1i3
760 2/       0       1d1   1d7       x       1i3
761 2/       <       1d1   1d7       x       1i3
762 2/       >       1d1   1d7       x       1i4
763 ! M + Q = 10.
764 2/       =       1d3   1d7       x       1i2
765 2/       0       1d3   1d7       x       1i2
766 2/       <       1d3   1d7       x       1i2
767 2/       >       1d3   1d7       x       1i3
768 ! M + Q = 12.
769 2/       =       1d5   1d7       x       1i1
770 2/       0       1d5   1d7       x       1i1
771 2/       <       1d5   1d7       x       1i1
772 2/       >       1d5   1d7       x       1i2
773 ! (1 + Mulp+) / (1 - Qulp-) -->
774 ! (1 + Mulp+) * (1 + (Q/2)ulp+ + ((Q/2)ulp+)^2 + tiny) -->
775 ! 1 + (M + Q/2)ulp+ + tiny.
776 ! M + Q = 3.
777 2/       =       1i1   1d2       x       1i2
778 2/       0       1i1   1d2       x       1i2
779 2/       <       1i1   1d2       x       1i2
780 2/       >       1i1   1d2       x       1i3
781 ! M + Q = 4.
782 2/       =       1i2   1d2       x       1i3
783 2/       0       1i2   1d2       x       1i3
784 2/       <       1i2   1d2       x       1i3
785 2/       >       1i2   1d2       x       1i4
786 ! M + Q = 5.
787 2/       =       1i3   1d2       x       1i4
788 2/       0       1i3   1d2       x       1i4
789 2/       <       1i3   1d2       x       1i4
790 2/       >       1i3   1d2       x       1i5
791 ! M + Q = 6.
792 2/       =       1i2   1d4       x       1i4
793 2/       0       1i2   1d4       x       1i4
794 2/       <       1i2   1d4       x       1i4
795 2/       >       1i2   1d4       x       1i5
796 2/       =       1i4   1d2       x       1i5
797 2/       0       1i4   1d2       x       1i5
798 2/       <       1i4   1d2       x       1i5
799 2/       >       1i4   1d2       x       1i6
800 ! (1 - Mulp-) / (1 + Qulp+) -->
801 ! (1 - Mulp-) * (1 - 2Qulp- + (2Qulp-)^2 - tiny) -->
802 ! 1 - (M + 2Q)ulp- + tiny.
803 ! M + Q = 2.
804 2/       =       1d1   1i1       x       1d3
805 2/       0       1d1   1i1       x       1d3
806 2/       <       1d1   1i1       x       1d3
807 2/       >       1d1   1i1       x       1d2
808 ! M + Q = 3.
809 2/       =       1d2   1i1       x       1d4
810 2/       0       1d2   1i1       x       1d4
811 2/       <       1d2   1i1       x       1d4
812 2/       >       1d2   1i1       x       1d3
813 2/       =       1d1   1i2       x       1d5
814 2/       0       1d1   1i2       x       1d5
815 2/       <       1d1   1i2       x       1d5
816 2/       >       1d1   1i2       x       1d4
817 ! M + Q = 4.
818 2/       =       1d3   1i1       x       1d5
819 2/       0       1d3   1i1       x       1d5
820 2/       <       1d3   1i1       x       1d5
821 2/       >       1d3   1i1       x       1d4
822 2/       =       1d1   1i3       x       1d7
823 2/       0       1d1   1i3       x       1d7
824 2/       <       1d1   1i3       x       1d7
825 2/       >       1d1   1i3       x       1d6
826 2/       =       1d2   1i2       x       1d6
827 2/       0       1d2   1i2       x       1d6
828 2/       <       1d2   1i2       x       1d6
829 2/       >       1d2   1i2       x       1d5
830 ! M + Q = 5.
831 2/       =       1d4   1i1       x       1d6
832 2/       0       1d4   1i1       x       1d6
833 2/       <       1d4   1i1       x       1d6
834 2/       >       1d4   1i1       x       1d5
835 2/       =       1d1   1i4       x       1d9
836 2/       0       1d1   1i4       x       1d9
837 2/       <       1d1   1i4       x       1d9
838 2/       >       1d1   1i4       x       1d8
839 2/       =       1d3   1i2       x       1d7
840 2/       0       1d3   1i2       x       1d7
841 2/       <       1d3   1i2       x       1d7
842 2/       >       1d3   1i2       x       1d6
843 2/       =       1d2   1i3       x       1d8
844 2/       0       1d2   1i3       x       1d8
845 2/       <       1d2   1i3       x       1d8
846 2/       >       1d2   1i3       x       1d7
847 ! A few tricky cases.
848 A/      =0<     -1d4    -1i1    x       1d6
849 A/      >       -1d4    -1i1    x       1d5
850 A/      =0>     -1d4    1i1     x       -1d6
851 A/      <       -1d4    1i1     x       -1d5
852 A/      =0>     1d4     -1i1    x       -1d6
853 A/      <       1d4     -1i1    x       -1d5
854 !! 3ff7ffff ffffffff 3feffff fffffffe 3ff80000 00000000
855 H/      0<      3m1d1   1d2     x       3m1
856 H/      =>      3m1d1   1d2     x       3m1i1
857 A/      0<      -3m1d1  -1d2    x       3m1
858 A/      =>      -3m1d1  -1d2    x       3m1i1
859 A/      0>      -3m1d1  1d2     x       -3m1
860 A/      =<      -3m1d1  1d2     x       -3m1i1
861 A/      0>      3m1d1   -1d2    x       -3m1
862 A/      =<      3m1d1   -1d2    x       -3m1i1
863 !! denormal
864 A/      =0<     0i(1)1  Ti1     x       1m1d2
865 A/      >       0i(1)1  Ti1     x       1m1d1
866 A/      =0<     -0i(1)1 -Ti1    x       1m1d2
867 A/      >       -0i(1)1 -Ti1    x       1m1d1
868 A/      =0>     -0i(1)1 Ti1     x       -1m1d2
869 A/      <       -0i(1)1 Ti1     x       -1m1d1
870 A/      =0>     0i(1)1  -Ti1    x       -1m1d2
871 A/      <       0i(1)1  -Ti1    x       -1m1d1
872 !! round bit = 0, sticky bit = 10 => inexact, round down
873 !! This combination is not possible
874 !! round bit = 0, sticky bit = 1 => inexact, round down
875 A/      =0<     3i2     1i1     x       3
876 A/      >       3i2     1i1     x       3i1
877 A/      =0<     -3i2    -1i1    x       3
878 A/      >       -3i2    -1i1    x       3i1
879 A/      =0>     3i2     -1i1    x       -3
880 A/      <       3i2     -1i1    x       -3i1
881 A/      =0>     -3i2    1i1     x       -3
882 A/      <       -3i2    1i1     x       -3i1
883 !! denormal
884 A/      =0<     0i(2)3i1        Ti1     x       3m2
885 A/      >       0i(2)3i1        Ti1     x       3m2i1
886 A/      =0<     -0i(2)3i1       -Ti1    x       3m2
887 A/      >       -0i(2)3i1       -Ti1    x       3m2i1
888 A/      =0>     0i(2)3i1        -Ti1    x       -3m2
889 A/      <       0i(2)3i1        -Ti1    x       -3m2i1
890 A/      =0>     -0i(2)3i1       Ti1     x       -3m2
891 A/      <       -0i(2)3i1       Ti1     x       -3m2i1
892 !! round bit = 1, sticky bit = 0 => inexact, round up
893 !! This combination is not possible
894 !! round bit = 1, sticky bit = 1 => inexact, round up
895 ! 1 / (1 - Qu-) --> 1 + (Q/2 u+) + tiny.
896 2/       =       1       1d3   x   1i2
897 2/       0       1       1d3   x   1i1
898 2/       <       1       1d3   x   1i1
899 2/       >       1       1d3   x   1i2
900 2/       =       1       1d5   x   1i3
901 2/       0       1       1d5   x   1i2
902 2/       <       1       1d5   x   1i2
903 2/       >       1       1d5   x   1i3
904 2/       =       1       1d9   x   1i5
905 2/       0       1       1d9   x   1i4
906 2/       <       1       1d9   x   1i4
907 2/       >       1       1d9   x   1i5
908 ! 1 / (1 - Qu-) --> 1 + (Q/2 u+) + tiny.
909 2/       =>       1       1d1   x   1i1
910 2/       0<       1       1d1   x   1
911 2/       =>       -1      -1d1   x   1i1
912 2/       0<       -1      -1d1   x   1
913 2/       =<       -1      1d1   x   -1i1
914 2/       0>       -1      1d1   x   -1
915 2/       =<       1      -1d1   x   -1i1
916 2/       0>       1      -1d1   x   -1
917 ! (1 - Mulp-) / (1 - Qulp-) -->
918 ! Case M < Q: (1 - (M/2)ulp+) * (1 + (Q/2)ulp+ + ((Q/2)ulp+)^2 + tiny) -->
919 ! 1 + ((Q-M)/2)ulp+ + (QQ-MQ)/4(ulp+)^2 + tiny -->
920 ! 1 + (Q-M)/2ulp+ + tiny.
921 ! M + Q = 3.
922 2/       =       1d1   1d2       x       1i1
923 2/       0       1d1   1d2       x       1
924 2/       <       1d1   1d2       x       1
925 2/       >       1d1   1d2       x       1i1
926 ! M + Q = 5.
927 2/       =       1d2   1d3       x       1i1
928 2/       0       1d2   1d3       x       1
929 2/       <       1d2   1d3       x       1
930 2/       >       1d2   1d3       x       1i1
931 2/       =       1d1   1d4       x       1i2
932 2/       0       1d1   1d4       x       1i1
933 2/       <       1d1   1d4       x       1i1
934 2/       >       1d1   1d4       x       1i2
935 ! M + Q = 7.
936 2/       =       1d3   1d4       x       1i1
937 2/       0       1d3   1d4       x       1
938 2/       <       1d3   1d4       x       1
939 2/       >       1d3   1d4       x       1i1
940 ! M + Q = 9.
941 2/       =       1d2   1d7       x       1i3
942 2/       0       1d2   1d7       x       1i2
943 2/       <       1d2   1d7       x       1i2
944 2/       >       1d2   1d7       x       1i3
945 ! M + Q = 11.
946 2/       =       1d4   1d7       x       1i2
947 2/       0       1d4   1d7       x       1i1
948 2/       <       1d4   1d7       x       1i1
949 2/       >       1d4   1d7       x       1i2
950 ! M + Q = 13.
951 2/       =       1d6   1d7       x       1i1
952 2/       0       1d6   1d7       x       1
953 2/       <       1d6   1d7       x       1
954 2/       >       1d6   1d7       x       1i1
955 ! (1 + Mulp+) / (1 - Qulp-) -->
956 ! (1 + Mulp+) * (1 + (Q/2)ulp+ + ((Q/2)ulp+)^2 + tiny) -->
957 ! 1 + (M + Q/2)ulp+ + tiny.
958 ! M + Q = 2.
959 2/       =       1i1   1d1       x       1i2
960 2/       0       1i1   1d1       x       1i1
961 2/       <       1i1   1d1       x       1i1
962 2/       >       1i1   1d1       x       1i2
963 ! M + Q = 3.
964 2/       =       1i2   1d1       x       1i3
965 2/       0       1i2   1d1       x       1i2
966 2/       <       1i2   1d1       x       1i2
967 2/       >       1i2   1d1       x       1i3
968 ! M + Q = 4.
969 2/       =       1i1   1d3       x       1i3
970 2/       0       1i1   1d3       x       1i2
971 2/       <       1i1   1d3       x       1i2
972 2/       >       1i1   1d3       x       1i3
973 2/       =       1i3   1d1       x       1i4
974 2/       0       1i3   1d1       x       1i3
975 2/       <       1i3   1d1       x       1i3
976 2/       >       1i3   1d1       x       1i4
977 ! M + Q = 5.
978 2/       =       1i2   1d3       x       1i4
979 2/       0       1i2   1d3       x       1i3
980 2/       <       1i2   1d3       x       1i3
981 2/       >       1i2   1d3       x       1i4
982 ! M + Q = 6.
983 2/       =       1i3   1d3       x       1i5
984 2/       0       1i3   1d3       x       1i4
985 2/       <       1i3   1d3       x       1i4
986 2/       >       1i3   1d3       x       1i5
987 2/       =       1i1   1d5       x       1i4
988 2/       0       1i1   1d5       x       1i3
989 2/       <       1i1   1d5       x       1i3
990 2/       >       1i1   1d5       x       1i4
991 2/       =       1i5   1d1       x       1i6
992 2/       0       1i5   1d1       x       1i5
993 2/       <       1i5   1d1       x       1i5
994 2/       >       1i5   1d1       x       1i6
995 !! denormal
996 A/      =>      0i(1)1  Tp1d1   x       1m2i1
997 A/      0<      0i(1)1  Tp1d1   x       1m2
998 A/      =>      -0i(1)1 -Tp1d1  x       1m2i1
999 A/      0<      -0i(1)1 -Tp1d1  x       1m2
1000 A/      =<      -0i(1)1 Tp1d1   x       -1m2i1
1001 A/      0>      -0i(1)1 Tp1d1   x       -1m2
1002 A/      =<      0i(1)1  -Tp1d1  x       -1m2i1
1003 A/      0>      0i(1)1  -Tp1d1  x       -1m2
1004 !! 3ff80000 00000001 3ff00000 00000001 3ff7ffff ffffffff
1005 H/      =>      3m1i1   1i1     x       3m1
1006 H/      0<      3m1i1   1i1     x       3m1d1
1007 A/      =>      -3m1i1  -1i1    x       3m1
1008 A/      0<      -3m1i1  -1i1    x       3m1d1
1009 A/      =<      -3m1i1  1i1     x       -3m1
1010 A/      0>      -3m1i1  1i1     x       -3m1d1
1011 A/      =<      3m1i1   -1i1    x       -3m1
1012 A/      0>      3m1i1   -1i1    x       -3m1d1
1013 !! round bit = 1, sticky bit = 1 => inexact, round up
1014 ! (1 + Mu+) / (1 + Qu+) -->
1015 ! Case M > Q: (1 + Mu+) * (1 - Qu+ + (Qu+)^2 - tiny) -->
1016 ! 1 + (M-Q)u+ - (MQ-QQ)(u+)^2 + tiny -->
1017 ! 1 + (M-Q)u+ - tiny.
1018 ! M + Q = 3.
1019 2/       =>       1i2   1i1       x       1i1
1020 2/       0<       1i2   1i1       x       1
1021 2/       =>       -1i2   -1i1      x       1i1
1022 2/       0<       -1i2   -1i1      x       1
1023 2/       =<       -1i2   1i1       x       -1i1
1024 2/       0>       -1i2   1i1       x       -1
1025 2/       =<       1i2   -1i1       x       -1i1
1026 2/       0>       1i2   -1i1       x       -1
1027 ! M + Q = 4.
1028 2/       =       1i3   1i1       x       1i2
1029 2/       0       1i3   1i1       x       1i1
1030 2/       <       1i3   1i1       x       1i1
1031 2/       >       1i3   1i1       x       1i2
1032 ! M + Q = 5.
1033 2/       =       1i4   1i1       x       1i3
1034 2/       0       1i4   1i1       x       1i2
1035 2/       <       1i4   1i1       x       1i2
1036 2/       >       1i4   1i1       x       1i3
1037 ! M + Q = 9.
1038 2/       =       1i7   1i2       x       1i5
1039 2/       0       1i7   1i2       x       1i4
1040 2/       <       1i7   1i2       x       1i4
1041 2/       >       1i7   1i2       x       1i5
1042 ! Q = 17.
1043 2/       =       1i9   1i8       x       1i1
1044 2/       0       1i9   1i8       x       1
1045 2/       <       1i9   1i8       x       1
1046 2/       >       1i9   1i8       x       1i1
1047 ! (1 - Mulp-) / (1 - Qulp-) -->
1048 ! Case M > Q: (1 - Mulp-) * (1 + Qulp- + (Qulp-)^2 + tiny) -->
1049 ! 1 - (M-Q)ulp- - (MQ-QQ)(ulp-)^2 + tiny -->
1050 ! 1 - (M-Q)ulp- - tiny.
1051 ! M + Q = 3.
1052 2/       =       1d2   1d1       x       1d1
1053 2/       0       1d2   1d1       x       1d2
1054 2/       <       1d2   1d1       x       1d2
1055 2/       >       1d2   1d1       x       1d1
1056 ! M + Q = 4.
1057 2/       =       1d3   1d1       x       1d2
1058 2/       0       1d3   1d1       x       1d3
1059 2/       <       1d3   1d1       x       1d3
1060 2/       >       1d3   1d1       x       1d2
1061 ! M + Q = 5.
1062 2/       =       1d3   1d2       x       1d1
1063 2/       0       1d3   1d2       x       1d2
1064 2/       <       1d3   1d2       x       1d2
1065 2/       >       1d3   1d2       x       1d1
1066 2/       =       1d4   1d1       x       1d3
1067 2/       0       1d4   1d1       x       1d4
1068 2/       <       1d4   1d1       x       1d4
1069 2/       >       1d4   1d1       x       1d3
1070 ! M + Q = 6.
1071 2/       =       1d4   1d2       x       1d2
1072 2/       0       1d4   1d2       x       1d3
1073 2/       <       1d4   1d2       x       1d3
1074 2/       >       1d4   1d2       x       1d2
1075 ! M + Q = 7.
1076 2/       =       1d4   1d3       x       1d1
1077 2/       0       1d4   1d3       x       1d2
1078 2/       <       1d4   1d3       x       1d2
1079 2/       >       1d4   1d3       x       1d1
1080 ! M + Q = 11.
1081 2/       =       1d8   1d3       x       1d5
1082 2/       0       1d8   1d3       x       1d6
1083 2/       <       1d8   1d3       x       1d6
1084 2/       >       1d8   1d3       x       1d5
1085 2/       =       1d9   1d2       x       1d7
1086 2/       0       1d9   1d2       x       1d8
1087 2/       <       1d9   1d2       x       1d8
1088 2/       >       1d9   1d2       x       1d7
1089 ! M + Q = 12.
1090 2/       =       1d8   1d4       x       1d4
1091 2/       0       1d8   1d4       x       1d5
1092 2/       <       1d8   1d4       x       1d5
1093 2/       >       1d8   1d4       x       1d4
1094 ! M + Q = 14.
1095 2/       =       1d9   1d5       x       1d4
1096 2/       0       1d9   1d5       x       1d5
1097 2/       <       1d9   1d5       x       1d5
1098 2/       >       1d9   1d5       x       1d4
1099 !! denormal
1100 A/      =>      Td2     Tp1d1   x       1m1d3
1101 A/      0<      Td2     Tp1d1   x       1m1d4
1102 A/      =>      -Td2    -Tp1d1  x       1m1d3
1103 A/      0<      -Td2    -Tp1d1  x       1m1d4
1104 A/      =<      -Td2    Tp1d1   x       -1m1d3
1105 A/      0>      -Td2    Tp1d1   x       -1m1d4
1106 A/      =<      Td2     -Tp1d1  x       -1m1d3
1107 A/      0>      Td2     -Tp1d1  x       -1m1d4