@@@ fltfmt wip
[mLib] / utils / t / fltfmt.tests
index bf85107..840f514 100644 (file)
@@ -225,6 +225,31 @@ err = INEXACT
 
 [encf64]
 
+;; NaN conversions
+
+f = QNAN
+m = #empty
+z = 7ff80000 00000000
+
+f = SNAN
+m = #empty
+z = 7ff00000 00000001
+err = INEXACT
+
+f = SNAN
+m = 00000000 00002000
+z = 7ff00000 00000001
+
+f = SNAN
+m = 00000000 00001fff
+z = 7ff00000 00000001
+err = INEXACT
+
+f = SNAN
+m = 00000000 00000000 00000001
+z = 7ff00000 00000001
+err = INEXACT
+
 ;; Check NaN truncation.
 
 errmask = 0
@@ -418,7 +443,7 @@ z = -0.625
 f = 0
 e = 3
 m = c90fdb00
-z = 6.2831854820251465
+z = 6.2831853
 
 @assume = stdc-nan
 f = QNAN
@@ -467,7 +492,7 @@ err = INEXACT
 @assume = ieee
 x = #nan
 f = QNAN
-m = 00000000 ; maybe
+;; m = ... something
 err = OK
 
 [encdbl]
@@ -508,6 +533,7 @@ err = INEXACT
 f = QNAN
 m = #empty
 z = #nan
+err = OK
 
 [decdbl]
 
@@ -545,7 +571,88 @@ err = INEXACT
 @assume = ieee
 x = #nan
 f = QNAN
-m = 00000000 00000000 ; maybe
+;; m = ... something
 err = OK
 
 ;;;--------------------------------------------------------------------------
+;;; Direct conversions.
+
+[f32btoflt]
+
+x = 00000000
+z = 0.0
+
+@assume = negz
+x = 80000000
+z = -0.0
+
+@assume = inf
+x = 7f800000
+z = #+inf
+
+@assume = inf
+x = ff800000
+z = #-inf
+
+@assume = stdc-nan | ieee
+x = 7fc00000
+z = #nan
+
+@assume = stdc-nan | ieee
+x = 7fa00000
+z = #nan
+
+x = 3f800000
+z = 1.0
+
+@assume = prec24
+x = 40c90fdb
+z = 6.2831853
+
+[f32ltoflt]
+
+x = 10c12549
+z = 678929
+
+[flttof32b]
+
+x = 678929
+z = 4925c110
+
+@assume = prec24
+x = 6.2831853
+z = 40c90fdb
+
+[flttof32l]
+
+x = 678929
+z = 10c12549
+
+[dbltof64b]
+
+x = 0.0
+z = 00000000 00000000
+
+x = -2964135146
+z = c1e615a3 9d400000
+
+@assume = prec53
+x = 6.283185307179586
+z = 401921fb 54442d18
+
+[dbltof64l]
+
+x = -2964135146
+z = 0000409d a315e6c1
+
+[f64btodbl]
+
+x = c1e615a3 9d400000
+z = -2964135146
+
+[f64ltodbl]
+
+x = 0000409d a315e6c1
+z = -2964135146
+
+;;;--------------------------------------------------------------------------