blob: 006db8595caf4958c79b4f40b8ab6718ef767a6c [file] [log] [blame]
Georg Brandlfaa9ad22011-03-05 15:06:13 +01001------------------------------------------------------------------------
2-- dqCanonical.decTest -- test decQuad canonical results --
3-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --
4------------------------------------------------------------------------
5-- Please see the document "General Decimal Arithmetic Testcases" --
6-- at http://www2.hursley.ibm.com/decimal for the description of --
7-- these testcases. --
8-- --
9-- These testcases are experimental ('beta' versions), and they --
10-- may contain errors. They are offered on an as-is basis. In --
11-- particular, achieving the same results as the tests here is not --
12-- a guarantee that an implementation complies with any Standard --
13-- or specification. The tests are not exhaustive. --
14-- --
15-- Please send comments, suggestions, and corrections to the author: --
16-- Mike Cowlishaw, IBM Fellow --
17-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
18-- mfc@uk.ibm.com --
19------------------------------------------------------------------------
20version: 2.59
21
22-- This file tests that copy operations leave uncanonical operands
23-- unchanged, and vice versa
24
25-- All operands and results are decQuads.
26extended: 1
27clamp: 1
28precision: 34
29maxExponent: 6144
30minExponent: -6143
31rounding: half_even
32
33-- Uncanonical declets are: abc, where:
34-- a=1,2,3
35-- b=6,7,e,f
36-- c=e,f
37
38-- assert some standard (canonical) values; this tests that FromString
39-- produces canonical results (many more in decimalNN)
40dqcan001 apply 9.999999999999999999999999999999999E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
41dqcan002 apply 0 -> #22080000000000000000000000000000
42dqcan003 apply 1 -> #22080000000000000000000000000001
43dqcan004 apply -1 -> #a2080000000000000000000000000001
44dqcan005 apply Infinity -> #78000000000000000000000000000000
45dqcan006 apply -Infinity -> #f8000000000000000000000000000000
46dqcan007 apply -NaN -> #fc000000000000000000000000000000
47dqcan008 apply -sNaN -> #fe000000000000000000000000000000
48dqcan009 apply NaN999999999999999999999999999999999 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
49dqcan010 apply sNaN999999999999999999999999999999999 -> #7e000ff3fcff3fcff3fcff3fcff3fcff
50decan011 apply 9999999999999999999999999999999999 -> #6e080ff3fcff3fcff3fcff3fcff3fcff
51dqcan012 apply 7.50 -> #220780000000000000000000000003d0
52dqcan013 apply 9.99 -> #220780000000000000000000000000ff
53
54-- Base tests for canonical encodings (individual operator
55-- propagation is tested later)
56
57-- Finites: declets in coefficient
58dqcan021 canonical #77ffcff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
59dqcan022 canonical #77fffff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
60dqcan023 canonical #77ffcffffcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
61dqcan024 canonical #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
62dqcan025 canonical #77ffcff3fcffffcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
63dqcan026 canonical #77ffcff3fcff3ffff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
64dqcan027 canonical #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
65dqcan028 canonical #77ffcff3fcff3fcff3ffff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
66dqcan029 canonical #77ffcff3fcff3fcff3fcffffcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
67dqcan030 canonical #77ffcff3fcff3fcff3fcff3ffff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
68dqcan031 canonical #77ffcff3fcff3fcff3fcff3fcffffcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
69dqcan032 canonical #77ffcff3fcff3fcff3fcff3fcff3ffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
70
71-- NaN: declets in payload
72dqcan061 canonical #7c000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
73dqcan062 canonical #7c000ffffcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
74dqcan063 canonical #7c000ff3ffff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
75dqcan064 canonical #7c000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
76dqcan065 canonical #7c000ff3fcff3ffff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
77dqcan066 canonical #7c000ff3fcff3fcffffcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
78dqcan067 canonical #7c000ff3fcff3fcff3ffff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
79dqcan068 canonical #7c000ff3fcff3fcff3fcffffcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
80dqcan069 canonical #7c000ff3fcff3fcff3fcff3ffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
81dqcan070 canonical #7c000ff3fcff3fcff3fcff3fcffffcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
82dqcan071 canonical #7c000ff3fcff3fcff3fcff3fcff3ffff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
83-- NaN: exponent continuation bits [excluding sNaN selector]
84dqcan081 canonical #7d000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
85dqcan082 canonical #7c800ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
86dqcan083 canonical #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
87dqcan084 canonical #7c200ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
88dqcan085 canonical #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
89dqcan086 canonical #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
90dqcan087 canonical #7c040ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
91dqcan088 canonical #7c020ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
92dqcan089 canonical #7c010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
93dqcan090 canonical #7c008ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
94dqcan091 canonical #7c004ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
95
96-- sNaN: declets in payload
97dqcan101 canonical #7e000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
98dqcan102 canonical #7e000ffffcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
99dqcan103 canonical #7e000ff3ffff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
100dqcan104 canonical #7e000ff3fcffffcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
101dqcan105 canonical #7e000ff3fcff3ffff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
102dqcan106 canonical #7e000ff3fcff3fcffffcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
103dqcan107 canonical #7e000ff3fcff3fcff3ffff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
104dqcan108 canonical #7e000ff3fcff3fcff3fcffffcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
105dqcan109 canonical #7e000ff3fcff3fcff3fcff3ffff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
106dqcan100 canonical #7e000ff3fcff3fcff3fcff3fcffffcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
107dqcan111 canonical #7e000ff3fcff3fcff3fcff3fcff3ffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
108-- sNaN: exponent continuation bits [excluding sNaN selector]
109dqcan121 canonical #7f000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
110dqcan122 canonical #7e800ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
111dqcan123 canonical #7e400ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
112dqcan124 canonical #7e200ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
113dqcan125 canonical #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
114dqcan126 canonical #7e080ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
115dqcan127 canonical #7e040ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
116dqcan128 canonical #7e020ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
117dqcan129 canonical #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
118dqcan130 canonical #7e008ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
119dqcan131 canonical #7e004ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
120
121-- Inf: exponent continuation bits
122dqcan137 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000
123dqcan138 canonical #79000000000000000000000000000000 -> #78000000000000000000000000000000
124dqcan139 canonical #7a000000000000000000000000000000 -> #78000000000000000000000000000000
125dqcan140 canonical #78800000000000000000000000000000 -> #78000000000000000000000000000000
126dqcan141 canonical #78400000000000000000000000000000 -> #78000000000000000000000000000000
127dqcan142 canonical #78200000000000000000000000000000 -> #78000000000000000000000000000000
128dqcan143 canonical #78100000000000000000000000000000 -> #78000000000000000000000000000000
129dqcan144 canonical #78080000000000000000000000000000 -> #78000000000000000000000000000000
130dqcan145 canonical #78040000000000000000000000000000 -> #78000000000000000000000000000000
131dqcan146 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000
132dqcan147 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000
133dqcan148 canonical #78008000000000000000000000000000 -> #78000000000000000000000000000000
134dqcan149 canonical #78004000000000000000000000000000 -> #78000000000000000000000000000000
135
136-- Inf: coefficient continuation bits (first, last, and a few others)
137dqcan150 canonical #78000000000000000000000000000000 -> #78000000000000000000000000000000
138dqcan151 canonical #78020000000000000000000000000000 -> #78000000000000000000000000000000
139dqcan152 canonical #78000000000000000000000000000001 -> #78000000000000000000000000000000
140dqcan153 canonical #78010000000000000000000000000000 -> #78000000000000000000000000000000
141dqcan154 canonical #78002000000000000000000000000000 -> #78000000000000000000000000000000
142dqcan155 canonical #78000800000000000000000000000000 -> #78000000000000000000000000000000
143dqcan156 canonical #78000020000000000000000000000000 -> #78000000000000000000000000000000
144dqcan157 canonical #78000004000000000000000000000000 -> #78000000000000000000000000000000
145dqcan158 canonical #78000000400000000000000000000000 -> #78000000000000000000000000000000
146dqcan159 canonical #78000000080000000000000000000000 -> #78000000000000000000000000000000
147dqcan160 canonical #78000000004000000000000000000000 -> #78000000000000000000000000000000
148dqcan161 canonical #78000000000200000000000000000000 -> #78000000000000000000000000000000
149dqcan162 canonical #78000000000080000000000000000000 -> #78000000000000000000000000000000
150dqcan163 canonical #78000000000002000000000000000000 -> #78000000000000000000000000000000
151dqcan164 canonical #78000000000000400000000000000000 -> #78000000000000000000000000000000
152dqcan165 canonical #78000000000000080000000000000000 -> #78000000000000000000000000000000
153dqcan166 canonical #78000000000000001000000000000000 -> #78000000000000000000000000000000
154dqcan167 canonical #78000000000000000200000000000000 -> #78000000000000000000000000000000
155dqcan168 canonical #78000000000000000080000000000000 -> #78000000000000000000000000000000
156dqcan169 canonical #78000000000000000004000000000000 -> #78000000000000000000000000000000
157dqcan170 canonical #78000000000000000000400000000000 -> #78000000000000000000000000000000
158dqcan171 canonical #78000000000000000000010000000000 -> #78000000000000000000000000000000
159dqcan172 canonical #78000000000000000000002000000000 -> #78000000000000000000000000000000
160dqcan173 canonical #78000000000000000000000400000000 -> #78000000000000000000000000000000
161dqcan174 canonical #78000000000000000000000080000000 -> #78000000000000000000000000000000
162dqcan175 canonical #78000000000000000000000002000000 -> #78000000000000000000000000000000
163dqcan176 canonical #78000000000000000000000000400000 -> #78000000000000000000000000000000
164dqcan177 canonical #78000000000000000000000000020000 -> #78000000000000000000000000000000
165dqcan178 canonical #78000000000000000000000000001000 -> #78000000000000000000000000000000
166dqcan179 canonical #78000000000000000000000000000400 -> #78000000000000000000000000000000
167dqcan180 canonical #78000000000000000000000000000020 -> #78000000000000000000000000000000
168dqcan181 canonical #78000000000000000000000000000008 -> #78000000000000000000000000000000
169
170
171-- Now the operators -- trying to check paths that might fail to
172-- canonicalize propagated operands
173
174----- Add:
175-- Finites: neutral 0
176dqcan202 add 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
177dqcan203 add #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
178-- tiny zero
179dqcan204 add 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
180dqcan205 add #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
181-- tiny non zero
182dqcan206 add -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
183dqcan207 add #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
184-- NaN: declets in payload
185dqcan211 add 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
186dqcan212 add #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
187-- NaN: exponent continuation bits [excluding sNaN selector]
188dqcan213 add 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
189dqcan214 add #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
190-- sNaN: declets in payload
191dqcan215 add 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
192dqcan216 add #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
193-- sNaN: exponent continuation bits [excluding sNaN selector]
194dqcan217 add 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
195dqcan218 add #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
196-- Inf: exponent continuation bits
197dqcan220 add 0 #78010000000000000000000000000000 -> #78000000000000000000000000000000
198dqcan221 add #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
199-- Inf: coefficient continuation bits
200dqcan222 add 0 #78002000000000000000000000000000 -> #78000000000000000000000000000000
201dqcan223 add #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
202dqcan224 add 0 #78000002000000000000000000000000 -> #78000000000000000000000000000000
203dqcan225 add #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
204dqcan226 add 0 #78000000000000000005000000000000 -> #78000000000000000000000000000000
205dqcan227 add #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
206
207----- Class: [does not return encoded]
208
209----- Compare:
210dqcan231 compare -Inf 1 -> #a2080000000000000000000000000001
211dqcan232 compare -Inf -Inf -> #22080000000000000000000000000000
212dqcan233 compare 1 -Inf -> #22080000000000000000000000000001
213dqcan234 compare #7c010ff3fcff3fcff3fcff3ffffffcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
214dqcan235 compare #7e004ff3fcff3fcff3ffffffcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
215
216----- CompareSig:
217dqcan241 comparesig -Inf 1 -> #a2080000000000000000000000000001
218dqcan242 comparesig -Inf -Inf -> #22080000000000000000000000000000
219dqcan243 comparesig 1 -Inf -> #22080000000000000000000000000001
220dqcan244 comparesig #7c400ff3ffff3fcff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
221dqcan245 comparesig #7e050ff3fcfffffff3fcff3fcff3fcff -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
222
223----- Copy: [does not usually canonicalize]
224-- finites
225dqcan250 copy #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
226dqcan251 copy #ee080ff3fcff3ffff3fcff3ffff3fcff -> #ee080ff3fcff3ffff3fcff3ffff3fcff
227-- NaNs
228dqcan252 copy #7c000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
229dqcan253 copy #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
230-- sNaN
231dqcan254 copy #7e003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
232dqcan255 copy #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
233-- Inf
234dqcan258 copy #78002000000000000000000000000000 -> #78002000000000000000000000000000
235dqcan259 copy #78000000000010000000000000100000 -> #78000000000010000000000000100000
236
237----- CopyAbs: [does not usually canonicalize]
238-- finites
239dqcan260 copyabs #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
240dqcan261 copyabs #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
241-- NaNs
242dqcan262 copyabs #fc000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
243dqcan263 copyabs #fc080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
244-- sNaN
245dqcan264 copyabs #fe003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
246dqcan265 copyabs #fe100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
247-- Inf
248dqcan268 copyabs #f8002000000000000000000000000000 -> #78002000000000000000000000000000
249dqcan269 copyabs #f8000000000000700700700000000000 -> #78000000000000700700700000000000
250
251----- CopyNegate: [does not usually canonicalize]
252-- finites
253dqcan270 copynegate #6e080ff3fcff3fcfffffff3fcfffffff -> #ee080ff3fcff3fcfffffff3fcfffffff
254dqcan271 copynegate #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
255-- NaNs
256dqcan272 copynegate #7c000ff3fcffffffffffff3fcff3fcff -> #fc000ff3fcffffffffffff3fcff3fcff
257dqcan273 copynegate #7c080ff3fcff3fcff3fcff3fcff3fcff -> #fc080ff3fcff3fcff3fcff3fcff3fcff
258-- sNaN
259dqcan274 copynegate #7e003ff3fcffffffffffffffcff3fcff -> #fe003ff3fcffffffffffffffcff3fcff
260dqcan275 copynegate #7e100ff3fcff3fcff3fcff3fcff3fcff -> #fe100ff3fcff3fcff3fcff3fcff3fcff
261-- Inf
262dqcan278 copynegate #78002000000000000000000000000000 -> #f8002000000000000000000000000000
263dqcan279 copynegate #78000000000010000000000000100000 -> #f8000000000010000000000000100000
264
265----- CopySign: [does not usually canonicalize]
266-- finites
267dqcan280 copysign #6e080ff3fcff3fcfffffff3fcfffffff -1 -> #ee080ff3fcff3fcfffffff3fcfffffff
268dqcan281 copysign #ee080ff3fcff3ffff3fcff3ffff3fcff 1 -> #6e080ff3fcff3ffff3fcff3ffff3fcff
269-- NaNs
270dqcan282 copysign #7c000ff3fcffffffffffffffcff3fcff -1 -> #fc000ff3fcffffffffffffffcff3fcff
271dqcan283 copysign #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c080ff3fcff3fcff3fcff3fcff3fcff
272-- sNaN
273dqcan284 copysign #7e003ff3fcffffffffffffffcff3fcff -1 -> #fe003ff3fcffffffffffffffcff3fcff
274dqcan285 copysign #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7e100ff3fcff3fcff3fcff3fcff3fcff
275-- Inf
276dqcan288 copysign #78002000000000000000000000000000 -1 -> #f8002000000000000000000000000000
277dqcan289 copysign #78000000000010000000000000100000 1 -> #78000000000010000000000000100000
278
279----- Multiply:
280-- Finites: neutral 0
281dqcan302 multiply 1 #77ffff3fcff3fcff0000000000000000 -> #77ffff3fcff3fcff0000000000000000
282dqcan303 multiply #77fcffffcff3fcff0000000000000000 1 -> #77fccfffcff3fcff0000000000000000
283-- negative
284dqcan306 multiply -1 #77ffff3fcff3fcff0000000000000000 -> #f7ffff3fcff3fcff0000000000000000
285dqcan307 multiply #77fcffffcff3fcff0000000000000000 -1 -> #f7fccfffcff3fcff0000000000000000
286-- NaN: declets in payload
287dqcan311 multiply 1 #7c03ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000
288dqcan312 multiply #7c03ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000
289-- NaN: exponent continuation bits [excluding sNaN selector]
290dqcan313 multiply 1 #7c40ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000
291dqcan314 multiply #7c40ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000
292-- sNaN: declets in payload
293dqcan315 multiply 1 #7e00ffffcff3fcff0000000000000000 -> #7c000fffcff3fcff0000000000000000 Invalid_operation
294dqcan316 multiply #7e00ffffcff3fcff0000000000000000 1 -> #7c000fffcff3fcff0000000000000000 Invalid_operation
295-- sNaN: exponent continuation bits [excluding sNaN selector]
296dqcan317 multiply 1 #7e80ff3fcff3fcff0000000000000000 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
297dqcan318 multiply #7e80ff3fcff3fcff0000000000000000 1 -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
298-- Inf: exponent continuation bits
299dqcan320 multiply 1 #78800000000000000000000000000000 -> #78000000000000000000000000000000
300dqcan321 multiply #78800000000000000000000000000000 1 -> #78000000000000000000000000000000
301-- Inf: coefficient continuation bits
302dqcan322 multiply 1 #78020000000000000000000000000000 -> #78000000000000000000000000000000
303dqcan323 multiply #78020000000000000000000000000000 1 -> #78000000000000000000000000000000
304dqcan324 multiply 1 #78000000000000010000000000000000 -> #78000000000000000000000000000000
305dqcan325 multiply #78000000000000010000000000000000 1 -> #78000000000000000000000000000000
306dqcan326 multiply 1 #78000020000000000000000000000000 -> #78000000000000000000000000000000
307dqcan327 multiply #78000020000000000000000000000000 1 -> #78000000000000000000000000000000
308
309----- Quantize:
310dqcan401 quantize #ee080ff3fcff3fcff3fffffffff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff
311dqcan402 quantize #ee080ff3fffffffffffcff3fcff3fcff 0 -> #ee080ff3fcff3fcff3fcff3fcff3fcff
312dqcan403 quantize #78800000000000000000000000000000 Inf -> #78000000000000000000000000000000
313dqcan404 quantize #78020000000000000000000000000000 -Inf -> #78000000000000000000000000000000
314dqcan410 quantize #7c080ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
315dqcan411 quantize #fc000ff3fcfffffff3fcff3fcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff
316dqcan412 quantize #7e100ff3fcff3fcff3fcff3fcff3fcff 1 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
317dqcan413 quantize #fe000ff3fcff3fcff3ffffffcff3fcff 1 -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
318
319----- Subtract:
320-- Finites: neutral 0
321dqcan502 subtract 0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff
322dqcan503 subtract #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
323-- tiny zero
324dqcan504 subtract 0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Rounded
325dqcan505 subtract #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
326-- tiny non zero
327dqcan506 subtract -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
328dqcan507 subtract #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
329-- NaN: declets in payload
330dqcan511 subtract 0 #7c000ff3fcff3fcff3fcfffffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
331dqcan512 subtract #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
332-- NaN: exponent continuation bits [excluding sNaN selector]
333dqcan513 subtract 0 #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
334dqcan514 subtract #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
335-- sNaN: declets in payload
336dqcan515 subtract 0 #7e000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
337dqcan516 subtract #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
338-- sNaN: exponent continuation bits [excluding sNaN selector]
339dqcan517 subtract 0 #7e500ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
340dqcan518 subtract #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
341-- Inf: exponent continuation bits
342dqcan520 subtract 0 #78010000000000000000000000000000 -> #f8000000000000000000000000000000
343dqcan521 subtract #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
344-- Inf: coefficient continuation bits
345dqcan522 subtract 0 #78002000000000000000000000000000 -> #f8000000000000000000000000000000
346dqcan523 subtract #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
347dqcan524 subtract 0 #78000002000000000000000000000000 -> #f8000000000000000000000000000000
348dqcan525 subtract #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
349dqcan526 subtract 0 #78000000000000000005000000000000 -> #f8000000000000000000000000000000
350dqcan527 subtract #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
351
352----- ToIntegral:
353dqcan601 tointegralx #6e080ff3fdff3fcff3fcff3fcff3fcff -> #6e080ff3fcff3fcff3fcff3fcff3fcff
354dqcan602 tointegralx #ee080ff3fcff3ffff3fcff3fcff3fcff -> #ee080ff3fcff3fcff3fcff3fcff3fcff
355dqcan603 tointegralx #78800000000000000000000000000000 -> #78000000000000000000000000000000
356dqcan604 tointegralx #78020000000000000000000000000000 -> #78000000000000000000000000000000
357dqcan614 tointegralx #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
358dqcan615 tointegralx #fc000ff3fcff3fcff3fcffffcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff
359dqcan616 tointegralx #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
360dqcan617 tointegralx #fe000ff3fcff3fcff3fdff3fcff3fcff -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
361-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
362dqcan618 tointegralx #22080000000000000000000000000fff -> #22080000000000000000000000000cff
363dqcan619 tointegralx #22078000000000000000000000000fff -> #22080000000000000000000000000040 Inexact Rounded
364dqcan620 tointegralx #22074000000000000000000000000fff -> #22080000000000000000000000000004 Inexact Rounded
365dqcan621 tointegralx #22070000000000000000000000000fff -> #22080000000000000000000000000000 Inexact Rounded
366dqcan622 tointegralx #a2080000000000000000000000000fff -> #a2080000000000000000000000000cff
367dqcan623 tointegralx #a2078000000000000000000000000fff -> #a2080000000000000000000000000040 Inexact Rounded
368dqcan624 tointegralx #a2074000000000000000000000000fff -> #a2080000000000000000000000000004 Inexact Rounded
369dqcan625 tointegralx #a2070000000000000000000000000fff -> #a2080000000000000000000000000000 Inexact Rounded
370
371
372