17db96d56Sopenharmony_ci------------------------------------------------------------------------
27db96d56Sopenharmony_ci-- dqCanonical.decTest -- test decQuad canonical results              --
37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
47db96d56Sopenharmony_ci------------------------------------------------------------------------
57db96d56Sopenharmony_ci-- Please see the document "General Decimal Arithmetic Testcases"     --
67db96d56Sopenharmony_ci-- at http://www2.hursley.ibm.com/decimal for the description of      --
77db96d56Sopenharmony_ci-- these testcases.                                                   --
87db96d56Sopenharmony_ci--                                                                    --
97db96d56Sopenharmony_ci-- These testcases are experimental ('beta' versions), and they       --
107db96d56Sopenharmony_ci-- may contain errors.  They are offered on an as-is basis.  In       --
117db96d56Sopenharmony_ci-- particular, achieving the same results as the tests here is not    --
127db96d56Sopenharmony_ci-- a guarantee that an implementation complies with any Standard      --
137db96d56Sopenharmony_ci-- or specification.  The tests are not exhaustive.                   --
147db96d56Sopenharmony_ci--                                                                    --
157db96d56Sopenharmony_ci-- Please send comments, suggestions, and corrections to the author:  --
167db96d56Sopenharmony_ci--   Mike Cowlishaw, IBM Fellow                                       --
177db96d56Sopenharmony_ci--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
187db96d56Sopenharmony_ci--   mfc@uk.ibm.com                                                   --
197db96d56Sopenharmony_ci------------------------------------------------------------------------
207db96d56Sopenharmony_civersion: 2.59
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci-- This file tests that copy operations leave uncanonical operands
237db96d56Sopenharmony_ci-- unchanged, and vice versa
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci-- All operands and results are decQuads.
267db96d56Sopenharmony_ciextended:    1
277db96d56Sopenharmony_ciclamp:       1
287db96d56Sopenharmony_ciprecision:   34
297db96d56Sopenharmony_cimaxExponent: 6144
307db96d56Sopenharmony_ciminExponent: -6143
317db96d56Sopenharmony_cirounding:    half_even
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci-- Uncanonical declets are: abc, where:
347db96d56Sopenharmony_ci--   a=1,2,3
357db96d56Sopenharmony_ci--   b=6,7,e,f
367db96d56Sopenharmony_ci--   c=e,f
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci-- assert some standard (canonical) values; this tests that FromString
397db96d56Sopenharmony_ci-- produces canonical results (many more in decimalNN)
407db96d56Sopenharmony_cidqcan001 apply 9.999999999999999999999999999999999E+6144  -> #77ffcff3fcff3fcff3fcff3fcff3fcff
417db96d56Sopenharmony_cidqcan002 apply 0                      -> #22080000000000000000000000000000
427db96d56Sopenharmony_cidqcan003 apply 1                      -> #22080000000000000000000000000001
437db96d56Sopenharmony_cidqcan004 apply -1                     -> #a2080000000000000000000000000001
447db96d56Sopenharmony_cidqcan005 apply Infinity               -> #78000000000000000000000000000000
457db96d56Sopenharmony_cidqcan006 apply -Infinity              -> #f8000000000000000000000000000000
467db96d56Sopenharmony_cidqcan007 apply -NaN                   -> #fc000000000000000000000000000000
477db96d56Sopenharmony_cidqcan008 apply -sNaN                  -> #fe000000000000000000000000000000
487db96d56Sopenharmony_cidqcan009 apply  NaN999999999999999999999999999999999  -> #7c000ff3fcff3fcff3fcff3fcff3fcff
497db96d56Sopenharmony_cidqcan010 apply sNaN999999999999999999999999999999999  -> #7e000ff3fcff3fcff3fcff3fcff3fcff
507db96d56Sopenharmony_cidecan011 apply  9999999999999999999999999999999999    -> #6e080ff3fcff3fcff3fcff3fcff3fcff
517db96d56Sopenharmony_cidqcan012 apply 7.50                                   -> #220780000000000000000000000003d0
527db96d56Sopenharmony_cidqcan013 apply 9.99                                   -> #220780000000000000000000000000ff
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci-- Base tests for canonical encodings (individual operator
557db96d56Sopenharmony_ci-- propagation is tested later)
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_ci-- Finites: declets in coefficient
587db96d56Sopenharmony_cidqcan021 canonical  #77ffcff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
597db96d56Sopenharmony_cidqcan022 canonical  #77fffff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
607db96d56Sopenharmony_cidqcan023 canonical  #77ffcffffcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
617db96d56Sopenharmony_cidqcan024 canonical  #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
627db96d56Sopenharmony_cidqcan025 canonical  #77ffcff3fcffffcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
637db96d56Sopenharmony_cidqcan026 canonical  #77ffcff3fcff3ffff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
647db96d56Sopenharmony_cidqcan027 canonical  #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
657db96d56Sopenharmony_cidqcan028 canonical  #77ffcff3fcff3fcff3ffff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
667db96d56Sopenharmony_cidqcan029 canonical  #77ffcff3fcff3fcff3fcffffcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
677db96d56Sopenharmony_cidqcan030 canonical  #77ffcff3fcff3fcff3fcff3ffff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
687db96d56Sopenharmony_cidqcan031 canonical  #77ffcff3fcff3fcff3fcff3fcffffcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
697db96d56Sopenharmony_cidqcan032 canonical  #77ffcff3fcff3fcff3fcff3fcff3ffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci-- NaN: declets in payload
727db96d56Sopenharmony_cidqcan061 canonical  #7c000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
737db96d56Sopenharmony_cidqcan062 canonical  #7c000ffffcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
747db96d56Sopenharmony_cidqcan063 canonical  #7c000ff3ffff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
757db96d56Sopenharmony_cidqcan064 canonical  #7c000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
767db96d56Sopenharmony_cidqcan065 canonical  #7c000ff3fcff3ffff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
777db96d56Sopenharmony_cidqcan066 canonical  #7c000ff3fcff3fcffffcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
787db96d56Sopenharmony_cidqcan067 canonical  #7c000ff3fcff3fcff3ffff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
797db96d56Sopenharmony_cidqcan068 canonical  #7c000ff3fcff3fcff3fcffffcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
807db96d56Sopenharmony_cidqcan069 canonical  #7c000ff3fcff3fcff3fcff3ffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
817db96d56Sopenharmony_cidqcan070 canonical  #7c000ff3fcff3fcff3fcff3fcffffcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
827db96d56Sopenharmony_cidqcan071 canonical  #7c000ff3fcff3fcff3fcff3fcff3ffff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
837db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
847db96d56Sopenharmony_cidqcan081 canonical  #7d000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
857db96d56Sopenharmony_cidqcan082 canonical  #7c800ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
867db96d56Sopenharmony_cidqcan083 canonical  #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
877db96d56Sopenharmony_cidqcan084 canonical  #7c200ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
887db96d56Sopenharmony_cidqcan085 canonical  #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
897db96d56Sopenharmony_cidqcan086 canonical  #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
907db96d56Sopenharmony_cidqcan087 canonical  #7c040ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
917db96d56Sopenharmony_cidqcan088 canonical  #7c020ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
927db96d56Sopenharmony_cidqcan089 canonical  #7c010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
937db96d56Sopenharmony_cidqcan090 canonical  #7c008ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
947db96d56Sopenharmony_cidqcan091 canonical  #7c004ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
957db96d56Sopenharmony_ci
967db96d56Sopenharmony_ci-- sNaN: declets in payload
977db96d56Sopenharmony_cidqcan101 canonical  #7e000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
987db96d56Sopenharmony_cidqcan102 canonical  #7e000ffffcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
997db96d56Sopenharmony_cidqcan103 canonical  #7e000ff3ffff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1007db96d56Sopenharmony_cidqcan104 canonical  #7e000ff3fcffffcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1017db96d56Sopenharmony_cidqcan105 canonical  #7e000ff3fcff3ffff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1027db96d56Sopenharmony_cidqcan106 canonical  #7e000ff3fcff3fcffffcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1037db96d56Sopenharmony_cidqcan107 canonical  #7e000ff3fcff3fcff3ffff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1047db96d56Sopenharmony_cidqcan108 canonical  #7e000ff3fcff3fcff3fcffffcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1057db96d56Sopenharmony_cidqcan109 canonical  #7e000ff3fcff3fcff3fcff3ffff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1067db96d56Sopenharmony_cidqcan100 canonical  #7e000ff3fcff3fcff3fcff3fcffffcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1077db96d56Sopenharmony_cidqcan111 canonical  #7e000ff3fcff3fcff3fcff3fcff3ffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1087db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
1097db96d56Sopenharmony_cidqcan121 canonical  #7f000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1107db96d56Sopenharmony_cidqcan122 canonical  #7e800ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1117db96d56Sopenharmony_cidqcan123 canonical  #7e400ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1127db96d56Sopenharmony_cidqcan124 canonical  #7e200ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1137db96d56Sopenharmony_cidqcan125 canonical  #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1147db96d56Sopenharmony_cidqcan126 canonical  #7e080ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1157db96d56Sopenharmony_cidqcan127 canonical  #7e040ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1167db96d56Sopenharmony_cidqcan128 canonical  #7e020ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1177db96d56Sopenharmony_cidqcan129 canonical  #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1187db96d56Sopenharmony_cidqcan130 canonical  #7e008ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1197db96d56Sopenharmony_cidqcan131 canonical  #7e004ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
1207db96d56Sopenharmony_ci
1217db96d56Sopenharmony_ci-- Inf: exponent continuation bits
1227db96d56Sopenharmony_cidqcan137 canonical  #78000000000000000000000000000000 -> #78000000000000000000000000000000
1237db96d56Sopenharmony_cidqcan138 canonical  #79000000000000000000000000000000 -> #78000000000000000000000000000000
1247db96d56Sopenharmony_cidqcan139 canonical  #7a000000000000000000000000000000 -> #78000000000000000000000000000000
1257db96d56Sopenharmony_cidqcan140 canonical  #78800000000000000000000000000000 -> #78000000000000000000000000000000
1267db96d56Sopenharmony_cidqcan141 canonical  #78400000000000000000000000000000 -> #78000000000000000000000000000000
1277db96d56Sopenharmony_cidqcan142 canonical  #78200000000000000000000000000000 -> #78000000000000000000000000000000
1287db96d56Sopenharmony_cidqcan143 canonical  #78100000000000000000000000000000 -> #78000000000000000000000000000000
1297db96d56Sopenharmony_cidqcan144 canonical  #78080000000000000000000000000000 -> #78000000000000000000000000000000
1307db96d56Sopenharmony_cidqcan145 canonical  #78040000000000000000000000000000 -> #78000000000000000000000000000000
1317db96d56Sopenharmony_cidqcan146 canonical  #78020000000000000000000000000000 -> #78000000000000000000000000000000
1327db96d56Sopenharmony_cidqcan147 canonical  #78010000000000000000000000000000 -> #78000000000000000000000000000000
1337db96d56Sopenharmony_cidqcan148 canonical  #78008000000000000000000000000000 -> #78000000000000000000000000000000
1347db96d56Sopenharmony_cidqcan149 canonical  #78004000000000000000000000000000 -> #78000000000000000000000000000000
1357db96d56Sopenharmony_ci
1367db96d56Sopenharmony_ci-- Inf: coefficient continuation bits (first, last, and a few others)
1377db96d56Sopenharmony_cidqcan150 canonical  #78000000000000000000000000000000 -> #78000000000000000000000000000000
1387db96d56Sopenharmony_cidqcan151 canonical  #78020000000000000000000000000000 -> #78000000000000000000000000000000
1397db96d56Sopenharmony_cidqcan152 canonical  #78000000000000000000000000000001 -> #78000000000000000000000000000000
1407db96d56Sopenharmony_cidqcan153 canonical  #78010000000000000000000000000000 -> #78000000000000000000000000000000
1417db96d56Sopenharmony_cidqcan154 canonical  #78002000000000000000000000000000 -> #78000000000000000000000000000000
1427db96d56Sopenharmony_cidqcan155 canonical  #78000800000000000000000000000000 -> #78000000000000000000000000000000
1437db96d56Sopenharmony_cidqcan156 canonical  #78000020000000000000000000000000 -> #78000000000000000000000000000000
1447db96d56Sopenharmony_cidqcan157 canonical  #78000004000000000000000000000000 -> #78000000000000000000000000000000
1457db96d56Sopenharmony_cidqcan158 canonical  #78000000400000000000000000000000 -> #78000000000000000000000000000000
1467db96d56Sopenharmony_cidqcan159 canonical  #78000000080000000000000000000000 -> #78000000000000000000000000000000
1477db96d56Sopenharmony_cidqcan160 canonical  #78000000004000000000000000000000 -> #78000000000000000000000000000000
1487db96d56Sopenharmony_cidqcan161 canonical  #78000000000200000000000000000000 -> #78000000000000000000000000000000
1497db96d56Sopenharmony_cidqcan162 canonical  #78000000000080000000000000000000 -> #78000000000000000000000000000000
1507db96d56Sopenharmony_cidqcan163 canonical  #78000000000002000000000000000000 -> #78000000000000000000000000000000
1517db96d56Sopenharmony_cidqcan164 canonical  #78000000000000400000000000000000 -> #78000000000000000000000000000000
1527db96d56Sopenharmony_cidqcan165 canonical  #78000000000000080000000000000000 -> #78000000000000000000000000000000
1537db96d56Sopenharmony_cidqcan166 canonical  #78000000000000001000000000000000 -> #78000000000000000000000000000000
1547db96d56Sopenharmony_cidqcan167 canonical  #78000000000000000200000000000000 -> #78000000000000000000000000000000
1557db96d56Sopenharmony_cidqcan168 canonical  #78000000000000000080000000000000 -> #78000000000000000000000000000000
1567db96d56Sopenharmony_cidqcan169 canonical  #78000000000000000004000000000000 -> #78000000000000000000000000000000
1577db96d56Sopenharmony_cidqcan170 canonical  #78000000000000000000400000000000 -> #78000000000000000000000000000000
1587db96d56Sopenharmony_cidqcan171 canonical  #78000000000000000000010000000000 -> #78000000000000000000000000000000
1597db96d56Sopenharmony_cidqcan172 canonical  #78000000000000000000002000000000 -> #78000000000000000000000000000000
1607db96d56Sopenharmony_cidqcan173 canonical  #78000000000000000000000400000000 -> #78000000000000000000000000000000
1617db96d56Sopenharmony_cidqcan174 canonical  #78000000000000000000000080000000 -> #78000000000000000000000000000000
1627db96d56Sopenharmony_cidqcan175 canonical  #78000000000000000000000002000000 -> #78000000000000000000000000000000
1637db96d56Sopenharmony_cidqcan176 canonical  #78000000000000000000000000400000 -> #78000000000000000000000000000000
1647db96d56Sopenharmony_cidqcan177 canonical  #78000000000000000000000000020000 -> #78000000000000000000000000000000
1657db96d56Sopenharmony_cidqcan178 canonical  #78000000000000000000000000001000 -> #78000000000000000000000000000000
1667db96d56Sopenharmony_cidqcan179 canonical  #78000000000000000000000000000400 -> #78000000000000000000000000000000
1677db96d56Sopenharmony_cidqcan180 canonical  #78000000000000000000000000000020 -> #78000000000000000000000000000000
1687db96d56Sopenharmony_cidqcan181 canonical  #78000000000000000000000000000008 -> #78000000000000000000000000000000
1697db96d56Sopenharmony_ci
1707db96d56Sopenharmony_ci
1717db96d56Sopenharmony_ci-- Now the operators -- trying to check paths that might fail to
1727db96d56Sopenharmony_ci-- canonicalize propagated operands
1737db96d56Sopenharmony_ci
1747db96d56Sopenharmony_ci----- Add:
1757db96d56Sopenharmony_ci-- Finites: neutral 0
1767db96d56Sopenharmony_cidqcan202 add  0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff         -> #77ffcff3fcff3fcff3fcff3fcff3fcff
1777db96d56Sopenharmony_cidqcan203 add          #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
1787db96d56Sopenharmony_ci-- tiny zero
1797db96d56Sopenharmony_cidqcan204 add  0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff         -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
1807db96d56Sopenharmony_cidqcan205 add          #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
1817db96d56Sopenharmony_ci-- tiny non zero
1827db96d56Sopenharmony_cidqcan206 add -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff          -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
1837db96d56Sopenharmony_cidqcan207 add          #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
1847db96d56Sopenharmony_ci-- NaN: declets in payload
1857db96d56Sopenharmony_cidqcan211 add  0  #7c000ff3fcff3fcff3fcfffffff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
1867db96d56Sopenharmony_cidqcan212 add     #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
1877db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
1887db96d56Sopenharmony_cidqcan213 add  0  #7c400ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
1897db96d56Sopenharmony_cidqcan214 add     #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
1907db96d56Sopenharmony_ci-- sNaN: declets in payload
1917db96d56Sopenharmony_cidqcan215 add  0  #7e000ff3fcffffcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
1927db96d56Sopenharmony_cidqcan216 add     #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
1937db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
1947db96d56Sopenharmony_cidqcan217 add  0  #7e500ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
1957db96d56Sopenharmony_cidqcan218 add     #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
1967db96d56Sopenharmony_ci-- Inf: exponent continuation bits
1977db96d56Sopenharmony_cidqcan220 add  0  #78010000000000000000000000000000   -> #78000000000000000000000000000000
1987db96d56Sopenharmony_cidqcan221 add     #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
1997db96d56Sopenharmony_ci-- Inf: coefficient continuation bits
2007db96d56Sopenharmony_cidqcan222 add  0  #78002000000000000000000000000000   -> #78000000000000000000000000000000
2017db96d56Sopenharmony_cidqcan223 add     #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
2027db96d56Sopenharmony_cidqcan224 add  0  #78000002000000000000000000000000   -> #78000000000000000000000000000000
2037db96d56Sopenharmony_cidqcan225 add     #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
2047db96d56Sopenharmony_cidqcan226 add  0  #78000000000000000005000000000000   -> #78000000000000000000000000000000
2057db96d56Sopenharmony_cidqcan227 add     #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
2067db96d56Sopenharmony_ci
2077db96d56Sopenharmony_ci----- Class: [does not return encoded]
2087db96d56Sopenharmony_ci
2097db96d56Sopenharmony_ci----- Compare:
2107db96d56Sopenharmony_cidqcan231 compare -Inf   1     ->  #a2080000000000000000000000000001
2117db96d56Sopenharmony_cidqcan232 compare -Inf  -Inf   ->  #22080000000000000000000000000000
2127db96d56Sopenharmony_cidqcan233 compare  1    -Inf   ->  #22080000000000000000000000000001
2137db96d56Sopenharmony_cidqcan234 compare  #7c010ff3fcff3fcff3fcff3ffffffcff     -1000  -> #7c000ff3fcff3fcff3fcff3fcff3fcff
2147db96d56Sopenharmony_cidqcan235 compare  #7e004ff3fcff3fcff3ffffffcff3fcff     -1000  -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
2157db96d56Sopenharmony_ci
2167db96d56Sopenharmony_ci----- CompareSig:
2177db96d56Sopenharmony_cidqcan241 comparesig -Inf   1     ->  #a2080000000000000000000000000001
2187db96d56Sopenharmony_cidqcan242 comparesig -Inf  -Inf   ->  #22080000000000000000000000000000
2197db96d56Sopenharmony_cidqcan243 comparesig  1    -Inf   ->  #22080000000000000000000000000001
2207db96d56Sopenharmony_cidqcan244 comparesig  #7c400ff3ffff3fcff3fcff3fcff3fcff   -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
2217db96d56Sopenharmony_cidqcan245 comparesig  #7e050ff3fcfffffff3fcff3fcff3fcff   -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
2227db96d56Sopenharmony_ci
2237db96d56Sopenharmony_ci----- Copy: [does not usually canonicalize]
2247db96d56Sopenharmony_ci-- finites
2257db96d56Sopenharmony_cidqcan250 copy  #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
2267db96d56Sopenharmony_cidqcan251 copy  #ee080ff3fcff3ffff3fcff3ffff3fcff -> #ee080ff3fcff3ffff3fcff3ffff3fcff
2277db96d56Sopenharmony_ci-- NaNs
2287db96d56Sopenharmony_cidqcan252 copy  #7c000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
2297db96d56Sopenharmony_cidqcan253 copy  #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
2307db96d56Sopenharmony_ci-- sNaN
2317db96d56Sopenharmony_cidqcan254 copy  #7e003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
2327db96d56Sopenharmony_cidqcan255 copy  #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
2337db96d56Sopenharmony_ci-- Inf
2347db96d56Sopenharmony_cidqcan258 copy  #78002000000000000000000000000000 -> #78002000000000000000000000000000
2357db96d56Sopenharmony_cidqcan259 copy  #78000000000010000000000000100000 -> #78000000000010000000000000100000
2367db96d56Sopenharmony_ci
2377db96d56Sopenharmony_ci----- CopyAbs: [does not usually canonicalize]
2387db96d56Sopenharmony_ci-- finites
2397db96d56Sopenharmony_cidqcan260 copyabs  #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
2407db96d56Sopenharmony_cidqcan261 copyabs  #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
2417db96d56Sopenharmony_ci-- NaNs
2427db96d56Sopenharmony_cidqcan262 copyabs  #fc000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
2437db96d56Sopenharmony_cidqcan263 copyabs  #fc080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
2447db96d56Sopenharmony_ci-- sNaN
2457db96d56Sopenharmony_cidqcan264 copyabs  #fe003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
2467db96d56Sopenharmony_cidqcan265 copyabs  #fe100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
2477db96d56Sopenharmony_ci-- Inf
2487db96d56Sopenharmony_cidqcan268 copyabs  #f8002000000000000000000000000000 -> #78002000000000000000000000000000
2497db96d56Sopenharmony_cidqcan269 copyabs  #f8000000000000700700700000000000 -> #78000000000000700700700000000000
2507db96d56Sopenharmony_ci
2517db96d56Sopenharmony_ci----- CopyNegate: [does not usually canonicalize]
2527db96d56Sopenharmony_ci-- finites
2537db96d56Sopenharmony_cidqcan270 copynegate  #6e080ff3fcff3fcfffffff3fcfffffff -> #ee080ff3fcff3fcfffffff3fcfffffff
2547db96d56Sopenharmony_cidqcan271 copynegate  #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
2557db96d56Sopenharmony_ci-- NaNs
2567db96d56Sopenharmony_cidqcan272 copynegate  #7c000ff3fcffffffffffff3fcff3fcff -> #fc000ff3fcffffffffffff3fcff3fcff
2577db96d56Sopenharmony_cidqcan273 copynegate  #7c080ff3fcff3fcff3fcff3fcff3fcff -> #fc080ff3fcff3fcff3fcff3fcff3fcff
2587db96d56Sopenharmony_ci-- sNaN
2597db96d56Sopenharmony_cidqcan274 copynegate  #7e003ff3fcffffffffffffffcff3fcff -> #fe003ff3fcffffffffffffffcff3fcff
2607db96d56Sopenharmony_cidqcan275 copynegate  #7e100ff3fcff3fcff3fcff3fcff3fcff -> #fe100ff3fcff3fcff3fcff3fcff3fcff
2617db96d56Sopenharmony_ci-- Inf
2627db96d56Sopenharmony_cidqcan278 copynegate  #78002000000000000000000000000000 -> #f8002000000000000000000000000000
2637db96d56Sopenharmony_cidqcan279 copynegate  #78000000000010000000000000100000 -> #f8000000000010000000000000100000
2647db96d56Sopenharmony_ci
2657db96d56Sopenharmony_ci----- CopySign: [does not usually canonicalize]
2667db96d56Sopenharmony_ci-- finites
2677db96d56Sopenharmony_cidqcan280 copysign  #6e080ff3fcff3fcfffffff3fcfffffff -1 -> #ee080ff3fcff3fcfffffff3fcfffffff
2687db96d56Sopenharmony_cidqcan281 copysign  #ee080ff3fcff3ffff3fcff3ffff3fcff  1 -> #6e080ff3fcff3ffff3fcff3ffff3fcff
2697db96d56Sopenharmony_ci-- NaNs
2707db96d56Sopenharmony_cidqcan282 copysign  #7c000ff3fcffffffffffffffcff3fcff -1 -> #fc000ff3fcffffffffffffffcff3fcff
2717db96d56Sopenharmony_cidqcan283 copysign  #7c080ff3fcff3fcff3fcff3fcff3fcff  1 -> #7c080ff3fcff3fcff3fcff3fcff3fcff
2727db96d56Sopenharmony_ci-- sNaN
2737db96d56Sopenharmony_cidqcan284 copysign  #7e003ff3fcffffffffffffffcff3fcff -1 -> #fe003ff3fcffffffffffffffcff3fcff
2747db96d56Sopenharmony_cidqcan285 copysign  #7e100ff3fcff3fcff3fcff3fcff3fcff  1 -> #7e100ff3fcff3fcff3fcff3fcff3fcff
2757db96d56Sopenharmony_ci-- Inf
2767db96d56Sopenharmony_cidqcan288 copysign  #78002000000000000000000000000000 -1 -> #f8002000000000000000000000000000
2777db96d56Sopenharmony_cidqcan289 copysign  #78000000000010000000000000100000  1 -> #78000000000010000000000000100000
2787db96d56Sopenharmony_ci
2797db96d56Sopenharmony_ci----- Multiply:
2807db96d56Sopenharmony_ci-- Finites: neutral 0
2817db96d56Sopenharmony_cidqcan302 multiply  1  #77ffff3fcff3fcff0000000000000000               -> #77ffff3fcff3fcff0000000000000000
2827db96d56Sopenharmony_cidqcan303 multiply     #77fcffffcff3fcff0000000000000000 1             -> #77fccfffcff3fcff0000000000000000
2837db96d56Sopenharmony_ci-- negative
2847db96d56Sopenharmony_cidqcan306 multiply -1  #77ffff3fcff3fcff0000000000000000               -> #f7ffff3fcff3fcff0000000000000000
2857db96d56Sopenharmony_cidqcan307 multiply     #77fcffffcff3fcff0000000000000000 -1            -> #f7fccfffcff3fcff0000000000000000
2867db96d56Sopenharmony_ci-- NaN: declets in payload
2877db96d56Sopenharmony_cidqcan311 multiply  1  #7c03ff3fcff3fcff0000000000000000               -> #7c003f3fcff3fcff0000000000000000
2887db96d56Sopenharmony_cidqcan312 multiply     #7c03ff3fcff3fcff0000000000000000 1             -> #7c003f3fcff3fcff0000000000000000
2897db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
2907db96d56Sopenharmony_cidqcan313 multiply  1  #7c40ff3fcff3fcff0000000000000000               -> #7c003f3fcff3fcff0000000000000000
2917db96d56Sopenharmony_cidqcan314 multiply     #7c40ff3fcff3fcff0000000000000000 1             -> #7c003f3fcff3fcff0000000000000000
2927db96d56Sopenharmony_ci-- sNaN: declets in payload
2937db96d56Sopenharmony_cidqcan315 multiply  1  #7e00ffffcff3fcff0000000000000000               -> #7c000fffcff3fcff0000000000000000 Invalid_operation
2947db96d56Sopenharmony_cidqcan316 multiply     #7e00ffffcff3fcff0000000000000000 1             -> #7c000fffcff3fcff0000000000000000 Invalid_operation
2957db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
2967db96d56Sopenharmony_cidqcan317 multiply  1  #7e80ff3fcff3fcff0000000000000000               -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
2977db96d56Sopenharmony_cidqcan318 multiply     #7e80ff3fcff3fcff0000000000000000 1             -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
2987db96d56Sopenharmony_ci-- Inf: exponent continuation bits
2997db96d56Sopenharmony_cidqcan320 multiply  1  #78800000000000000000000000000000               -> #78000000000000000000000000000000
3007db96d56Sopenharmony_cidqcan321 multiply     #78800000000000000000000000000000 1             -> #78000000000000000000000000000000
3017db96d56Sopenharmony_ci-- Inf: coefficient continuation bits
3027db96d56Sopenharmony_cidqcan322 multiply  1  #78020000000000000000000000000000               -> #78000000000000000000000000000000
3037db96d56Sopenharmony_cidqcan323 multiply     #78020000000000000000000000000000 1             -> #78000000000000000000000000000000
3047db96d56Sopenharmony_cidqcan324 multiply  1  #78000000000000010000000000000000               -> #78000000000000000000000000000000
3057db96d56Sopenharmony_cidqcan325 multiply     #78000000000000010000000000000000 1             -> #78000000000000000000000000000000
3067db96d56Sopenharmony_cidqcan326 multiply  1  #78000020000000000000000000000000               -> #78000000000000000000000000000000
3077db96d56Sopenharmony_cidqcan327 multiply     #78000020000000000000000000000000 1             -> #78000000000000000000000000000000
3087db96d56Sopenharmony_ci
3097db96d56Sopenharmony_ci----- Quantize:
3107db96d56Sopenharmony_cidqcan401 quantize  #ee080ff3fcff3fcff3fffffffff3fcff 0    -> #ee080ff3fcff3fcff3fcff3fcff3fcff
3117db96d56Sopenharmony_cidqcan402 quantize  #ee080ff3fffffffffffcff3fcff3fcff 0    -> #ee080ff3fcff3fcff3fcff3fcff3fcff
3127db96d56Sopenharmony_cidqcan403 quantize  #78800000000000000000000000000000 Inf  -> #78000000000000000000000000000000
3137db96d56Sopenharmony_cidqcan404 quantize  #78020000000000000000000000000000 -Inf -> #78000000000000000000000000000000
3147db96d56Sopenharmony_cidqcan410 quantize  #7c080ff3fcff3fcff3fcff3fcff3fcff  1   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
3157db96d56Sopenharmony_cidqcan411 quantize  #fc000ff3fcfffffff3fcff3fcff3fcff  1   -> #fc000ff3fcff3fcff3fcff3fcff3fcff
3167db96d56Sopenharmony_cidqcan412 quantize  #7e100ff3fcff3fcff3fcff3fcff3fcff  1   -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
3177db96d56Sopenharmony_cidqcan413 quantize  #fe000ff3fcff3fcff3ffffffcff3fcff  1   -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
3187db96d56Sopenharmony_ci
3197db96d56Sopenharmony_ci----- Subtract:
3207db96d56Sopenharmony_ci-- Finites: neutral 0
3217db96d56Sopenharmony_cidqcan502 subtract  0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff         -> #f7ffcff3fcff3fcff3fcff3fcff3fcff
3227db96d56Sopenharmony_cidqcan503 subtract          #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
3237db96d56Sopenharmony_ci-- tiny zero
3247db96d56Sopenharmony_cidqcan504 subtract  0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff         -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Rounded
3257db96d56Sopenharmony_cidqcan505 subtract          #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
3267db96d56Sopenharmony_ci-- tiny non zero
3277db96d56Sopenharmony_cidqcan506 subtract -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff          -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
3287db96d56Sopenharmony_cidqcan507 subtract          #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
3297db96d56Sopenharmony_ci-- NaN: declets in payload
3307db96d56Sopenharmony_cidqcan511 subtract  0  #7c000ff3fcff3fcff3fcfffffff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
3317db96d56Sopenharmony_cidqcan512 subtract     #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
3327db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
3337db96d56Sopenharmony_cidqcan513 subtract  0  #7c400ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
3347db96d56Sopenharmony_cidqcan514 subtract     #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
3357db96d56Sopenharmony_ci-- sNaN: declets in payload
3367db96d56Sopenharmony_cidqcan515 subtract  0  #7e000ff3fcffffcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
3377db96d56Sopenharmony_cidqcan516 subtract     #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
3387db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
3397db96d56Sopenharmony_cidqcan517 subtract  0  #7e500ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
3407db96d56Sopenharmony_cidqcan518 subtract     #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
3417db96d56Sopenharmony_ci-- Inf: exponent continuation bits
3427db96d56Sopenharmony_cidqcan520 subtract  0  #78010000000000000000000000000000   -> #f8000000000000000000000000000000
3437db96d56Sopenharmony_cidqcan521 subtract     #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
3447db96d56Sopenharmony_ci-- Inf: coefficient continuation bits
3457db96d56Sopenharmony_cidqcan522 subtract  0  #78002000000000000000000000000000   -> #f8000000000000000000000000000000
3467db96d56Sopenharmony_cidqcan523 subtract     #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
3477db96d56Sopenharmony_cidqcan524 subtract  0  #78000002000000000000000000000000   -> #f8000000000000000000000000000000
3487db96d56Sopenharmony_cidqcan525 subtract     #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
3497db96d56Sopenharmony_cidqcan526 subtract  0  #78000000000000000005000000000000   -> #f8000000000000000000000000000000
3507db96d56Sopenharmony_cidqcan527 subtract     #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
3517db96d56Sopenharmony_ci
3527db96d56Sopenharmony_ci----- ToIntegral:
3537db96d56Sopenharmony_cidqcan601 tointegralx  #6e080ff3fdff3fcff3fcff3fcff3fcff  -> #6e080ff3fcff3fcff3fcff3fcff3fcff
3547db96d56Sopenharmony_cidqcan602 tointegralx  #ee080ff3fcff3ffff3fcff3fcff3fcff  -> #ee080ff3fcff3fcff3fcff3fcff3fcff
3557db96d56Sopenharmony_cidqcan603 tointegralx  #78800000000000000000000000000000  -> #78000000000000000000000000000000
3567db96d56Sopenharmony_cidqcan604 tointegralx  #78020000000000000000000000000000  -> #78000000000000000000000000000000
3577db96d56Sopenharmony_cidqcan614 tointegralx  #7c100ff3fcff3fcff3fcff3fcff3fcff  -> #7c000ff3fcff3fcff3fcff3fcff3fcff
3587db96d56Sopenharmony_cidqcan615 tointegralx  #fc000ff3fcff3fcff3fcffffcff3fcff  -> #fc000ff3fcff3fcff3fcff3fcff3fcff
3597db96d56Sopenharmony_cidqcan616 tointegralx  #7e010ff3fcff3fcff3fcff3fcff3fcff  -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
3607db96d56Sopenharmony_cidqcan617 tointegralx  #fe000ff3fcff3fcff3fdff3fcff3fcff  -> #fc000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
3617db96d56Sopenharmony_ci-- uncanonical 3999, 39.99, 3.99, 0.399,                  and negatives
3627db96d56Sopenharmony_cidqcan618 tointegralx  #22080000000000000000000000000fff  -> #22080000000000000000000000000cff
3637db96d56Sopenharmony_cidqcan619 tointegralx  #22078000000000000000000000000fff  -> #22080000000000000000000000000040  Inexact Rounded
3647db96d56Sopenharmony_cidqcan620 tointegralx  #22074000000000000000000000000fff  -> #22080000000000000000000000000004  Inexact Rounded
3657db96d56Sopenharmony_cidqcan621 tointegralx  #22070000000000000000000000000fff  -> #22080000000000000000000000000000  Inexact Rounded
3667db96d56Sopenharmony_cidqcan622 tointegralx  #a2080000000000000000000000000fff  -> #a2080000000000000000000000000cff
3677db96d56Sopenharmony_cidqcan623 tointegralx  #a2078000000000000000000000000fff  -> #a2080000000000000000000000000040  Inexact Rounded
3687db96d56Sopenharmony_cidqcan624 tointegralx  #a2074000000000000000000000000fff  -> #a2080000000000000000000000000004  Inexact Rounded
3697db96d56Sopenharmony_cidqcan625 tointegralx  #a2070000000000000000000000000fff  -> #a2080000000000000000000000000000  Inexact Rounded
3707db96d56Sopenharmony_ci
3717db96d56Sopenharmony_ci
3727db96d56Sopenharmony_ci
373