| <HTML> | |
| <HEAD> | |
| <TITLE>Berkeley TestFloat History</TITLE> | |
| </HEAD> | |
| <BODY> | |
| <H1>History of Berkeley TestFloat, to Release 3c</H1> | |
| <P> | |
| John R. Hauser<BR> | |
| 2017 February 10<BR> | |
| </P> | |
| <P> | |
| Releases of Berkeley TestFloat normally parallel those of Berkeley SoftFloat, | |
| on which TestFloat is based. | |
| Each TestFloat release necessarily incorporates all bug fixes from the | |
| corresponding release of SoftFloat. | |
| </P> | |
| <H3>Release 3c (2017 February)</H3> | |
| <UL> | |
| <LI> | |
| Added support for testing rounding mode <CODE>odd</CODE> (jamming). | |
| <LI> | |
| Made support for testing <NOBR>64-bit</NOBR> double-precistion floating-point | |
| be subject to macro <CODE>FLOAT64</CODE> (akin to macros <CODE>FLOAT16</CODE>, | |
| <CODE>EXTFLOAT80</CODE>, and <CODE>FLOAT128</CODE> from before). | |
| <LI> | |
| Fixed some bugs that caused compilation to fail with certain combinations of | |
| option macro settings. | |
| <LI> | |
| Corrected the types of two internal variables to be <CODE>sig_atomic_t</CODE> | |
| instead of <CODE>bool</CODE>. | |
| <LI> | |
| Improved the formatting of some error reports (concerning where lines are | |
| broken when they exceed 79 characters in length). | |
| </UL> | |
| <H3>Release 3b (2016 July)</H3> | |
| <UL> | |
| <LI> | |
| Added the ability to test the common <NOBR>16-bit</NOBR> | |
| “half-precision” floating-point format. | |
| <LI> | |
| Added a <CODE>-seed</CODE> option to programs <CODE>testfloat_gen</CODE>, | |
| <CODE>testfloat</CODE>, and <CODE>testsoftfloat</CODE> for setting the seed for | |
| the pseudo-random number generator used to generate test cases. | |
| <LI> | |
| Where a specific choice is needed for how tininess is detected on underflow, | |
| changed the default to be the detection of tininess after rounding | |
| (<CODE>-tininessafter</CODE>) instead of before rounding | |
| (<CODE>-tininessbefore</CODE>). | |
| <LI> | |
| Modified the format of reported discrepancies to show the signs of | |
| floating-point values using <CODE>+</CODE> and <CODE>-</CODE> characters. | |
| <LI> | |
| Documented the use of the <CODE>INLINE</CODE> macro, and fixed the sources for | |
| the case that function inlining is not supported by the C compiler. | |
| <LI> | |
| Documented the possible need to define macro <CODE>THREAD_LOCAL</CODE> to match | |
| how the SoftFloat library was built. | |
| <LI> | |
| Modified the provided Makefiles to allow some options to be overridden from the | |
| <CODE>make</CODE> command. | |
| </UL> | |
| <H3>Release 3a (2015 October)</H3> | |
| <UL> | |
| <LI> | |
| Replaced the license text supplied by the University of California, Berkeley, | |
| and fixed some minor build problems. | |
| </UL> | |
| <H3>Release 3 (2015 February)</H3> | |
| <UL> | |
| <LI> | |
| 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 command | |
| options. | |
| <LI> | |
| Reinstated separate programs for generating test cases | |
| (<CODE>testfloat_ver</CODE>) and verifying test results | |
| (<CODE>testfloat_gen</CODE>), as alternatives to the all-in-one | |
| <CODE>testfloat</CODE> program (which remained supported). | |
| <LI> | |
| Added support for testing conversions between floating-point and unsigned | |
| integers, both <NOBR>32-bit</NOBR> and <NOBR>64-bit</NOBR>. | |
| <LI> | |
| Added support for testing a fused multiply-add operation, for all testable | |
| floating-point formats except <NOBR>80-bit</NOBR> double-extended-precision. | |
| <LI> | |
| Added support for testing a fifth rounding mode, <CODE>near_maxMag</CODE> | |
| (round to nearest, with ties to maximum magnitude, away from zero). | |
| <LI> | |
| Added <CODE>timesoftfloat</CODE> (previously found in the Berkeley SoftFloat | |
| package). | |
| </UL> | |
| <H3>Release 2c (2015 January)</H3> | |
| <UL> | |
| <LI> | |
| Fixed mistakes affecting some <NOBR>64-bit</NOBR> processors. | |
| <LI> | |
| Made minor updates to the documentation, including improved wording for the | |
| legal restrictions on using TestFloat releases <NOBR>through 2c</NOBR> (not | |
| applicable to <NOBR>Release 3</NOBR> or later). | |
| </UL> | |
| <P> | |
| There was never a <NOBR>Release 2b</NOBR>. | |
| </P> | |
| <H3>Release 2a (1998 December)</H3> | |
| <UL> | |
| <LI> | |
| Added support for testing conversions between floating-point and | |
| <NOBR>64-bit</NOBR> signed integers. | |
| <LI> | |
| Improved the Makefiles. | |
| </UL> | |
| <H3>Release 2 (1997 June)</H3> | |
| <UL> | |
| <LI> | |
| 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.) | |
| <LI> | |
| Improved the sequence of test cases. | |
| <LI> | |
| Added support for testing <NOBR>80-bit</NOBR> double-extended-precision and | |
| <NOBR>128-bit</NOBR> quadruple precision. | |
| <LI> | |
| Made program output more readable, and added new command arguments. | |
| <LI> | |
| Reduced dependence on the quality of the standard <CODE>rand</CODE> function | |
| for generating test cases. | |
| (Previously naively expected <CODE>rand</CODE> to be able to generate good | |
| random bits for the entire machine word width.) | |
| <LI> | |
| Created <CODE>testsoftfloat</CODE>, with its own simpler complete software | |
| floating-point (“slowfloat”) for comparison purposes. | |
| <LI> | |
| Made some changes to the source file structure, including renaming | |
| <CODE>environment.h</CODE> to <CODE>milieu.h</CODE> (to avoid confusion with | |
| environment variables). | |
| </UL> | |
| <H3>Release 1a (1996 July)</H3> | |
| <UL> | |
| <LI> | |
| Added the <CODE>-tininessbefore</CODE> and <CODE>-tininessafter</CODE> options | |
| to control whether tininess should be detected before or after rounding. | |
| </UL> | |
| <H3>Release 1 (1996 July)</H3> | |
| <UL> | |
| <LI> | |
| Original release. | |
| </UL> | |
| </BODY> | |