Add basic BF16 routines (#45)

* Improve bf16_to_f32 performance

Signed-off-by: Andrew Waterman <andrew@sifive.com>

* Add basic BF16 routines

These are implemented so as to make them more-or-less obviously correct
(with the exception of the FMA, which is a bit more subtle, because of
double rounding).  As such, they are implemented by widening into formats
with existing native support, then rounding back to BF16.  The hope is
that optimized, functionally equivalent variants will eventually supplant
these.

Signed-off-by: Andrew Waterman <andrew@sifive.com>

---------

Signed-off-by: Andrew Waterman <andrew@sifive.com>
14 files changed
tree: 9aa7444c7cd9ba701cedae371321915a3ccf9317
  1. .github/
  2. build/
  3. doc/
  4. source/
  5. .gitignore
  6. COPYING.txt
  7. README.html
  8. README.md
  9. README.txt
README.md

Package Overview for Berkeley SoftFloat Release 3e

John R. Hauser
2018 January 20

Berkeley SoftFloat is a software implementation of binary floating-point that conforms to the IEEE Standard for Floating-Point Arithmetic. SoftFloat is distributed in the form of C source code. Building the SoftFloat sources generates a library file (typically softfloat.a or libsoftfloat.a) containing the floating-point subroutines.

The SoftFloat package is documented in the following files in the doc subdirectory:

Other files in the package comprise the source code for SoftFloat.