1 |
349 |
julius |
TestFloat software tests for floating point operations
|
2 |
|
|
|
3 |
|
|
From http://www.jhauser.us/arithmetic/TestFloat.html
|
4 |
|
|
|
5 |
|
|
TestFloat is a program for testing whether a computer's floating-point
|
6 |
|
|
conforms to the IEC/IEEE Standard for Binary Floating-point Arithmetic.
|
7 |
|
|
TestFloat works by comparing the behavior of the machine's floating-point
|
8 |
|
|
with that of the SoftFloat software implementation of floating-point.
|
9 |
|
|
|
10 |
|
|
At present only the single precision floating point capability of the software
|
11 |
|
|
is used to test the OpenRISC's FPU.
|
12 |
|
|
|
13 |
|
|
The main loop of the applications in TestFloat have been modified so they do
|
14 |
|
|
not rely on input when executed, rather are hard-coded to run all the tests
|
15 |
|
|
they possibly can.
|
16 |
|
|
|
17 |
|
|
All of the output functions (fputs, putc, fprintf) have been replaced with
|
18 |
|
|
versions available in the OR1K support C library.
|
19 |
|
|
|
20 |
|
|
The software included here also includes the SoftFloat library, which is
|
21 |
|
|
is required to test the hardware FPU.
|
22 |
|
|
|
23 |
|
|
See http://www.jhauser.us/arithmetic/SoftFloat.html for more information on
|
24 |
|
|
SoftFloat.
|
25 |
|
|
|
26 |
|
|
The or1ksim simulator actually implements its single precision floating point
|
27 |
|
|
using functions from SoftFloat (see the softfloat/ path in the or1ksim project)
|
28 |
|
|
so potentially any non-standard behavior of the floating point unit in or1ksim
|
29 |
|
|
will not be picked up by this test (as TestFloat uses SoftFloat itself to check
|
30 |
|
|
against the hardware/system results.) However, TestFloat comes with a different
|
31 |
|
|
implementation of the IEEE 754 compliant conversion and arithmetic functions to
|
32 |
|
|
test SoftFloat against, hopefully picking up any inconsistencies that exist.
|
33 |
|
|
|
34 |
|
|
Note that the bits64 version of SoftFloat's library is included here. It is
|
35 |
|
|
not a problem for all of the current OR1K GCC implementations to handle 64-bit
|
36 |
|
|
data types.
|
37 |
|
|
|
38 |
|
|
The file layout of SoftFloat and TestFloat, in their distributions, has been
|
39 |
|
|
discarded and all the required files have been included in this path.
|
40 |
|
|
|
41 |
|
|
testfloat is run during the standard check that can be run after compilation.
|
42 |
|
|
By default only the testfloat program will be run (not testsoftfloat).
|
43 |
|
|
testsoftfloat will, actually, be compiled and be under
|
44 |
|
|
testsuite/test-code-or1k/testfloat and can be run from where if desired.
|
45 |
|
|
|
46 |
|
|
|
47 |
|
|
Julius Baxter, August 3 2010
|