History of Berkeley TestFloat, to Release 3
John R. Hauser
2014 Dec 17
Releases of Berkeley TestFloat parallel those of Berkeley SoftFloat, on which
TestFloat is based.
Each TestFloat release necessarily incorporates all bug fixes from the
corresponding release of SoftFloat.
Release 3 (2014 December)
-
Complete rewrite, funded by the University of California, Berkeley, and
consequently having a different use license than earlier releases.
Visible changes included different names for testable functions and options.
-
Reinstated separate programs for generating test cases
(
testfloat_ver
) and verifying test results
(testfloat_gen
), as alternatives to the all-in-one
testfloat
program (which remained supported).
-
Added support for testing conversions between floating-point and unsigned
integers, both 32-bit and 64-bit.
-
Added support for testing a fused multiply-add operation, for all testable
floating-point formats except 80-bit double-extended-precision.
-
Added support for testing a fifth rounding mode,
near_maxMag
(round to nearest, with ties to maximum magnitude, away from zero).
-
Added
timesoftfloat
(previously found in the Berkeley SoftFloat
package).
Release 2c (2014 December)
-
Improved the wording for the legal restrictions on using TestFloat releases
through 2c (not applicable to Release 3 or later).
There was never a Release 2b.
Release 2a (1998 December)
-
Added support for testing conversions between floating-point and
64-bit signed integers.
-
Improved the Makefiles.
Release 2 (1997 June)
-
Integrated the generation of test cases and the checking of system results into
a single program.
(Before they were separate programs, normally joined by explicit command-line
pipes.)
-
Improved the sequence of test cases.
-
Added support for testing 80-bit double-extended-precision and
128-bit quadruple precision.
-
Made program output more readable, and added new command arguments.
-
Reduced dependence on the quality of the standard
rand
function
for generating test cases.
(Previously naively expected rand
to be able to generate good
random bits for the entire machine word width.)
-
Created
testsoftfloat
, with its own simpler complete software
floating-point (“slowfloat”) for comparison purposes.
-
Made some changes to the source file structure, including renaming
environment.h
to milieu.h
(to avoid confusion with
environment variables).
Release 1a (1996 July)
-
Added the
-tininessbefore
and -tininessafter
options
to control whether tininess should be detected before or after rounding.
Release 1 (1996 July)
-
Original release, based on work done for the International Computer Science
Institute (ICSI) in Berkeley, California.