diff options
author | Nicolas Brunie <nibrunie@gmail.com> | 2023-08-12 04:13:37 +0200 |
---|---|---|
committer | Nicolas Brunie <nibrunie@gmail.com> | 2023-08-12 04:13:37 +0200 |
commit | 3d0376df7b25ea90ac62b2f89374e7d98ff84f5f (patch) | |
tree | 810eefa56eb5e6ead1c73349d806d2bad53612c8 /source/include | |
parent | 5c06db33fc1e2130f67c045327b0ec949032df1d (diff) | |
download | berkeley-softfloat-3-3d0376df7b25ea90ac62b2f89374e7d98ff84f5f.zip berkeley-softfloat-3-3d0376df7b25ea90ac62b2f89374e7d98ff84f5f.tar.gz berkeley-softfloat-3-3d0376df7b25ea90ac62b2f89374e7d98ff84f5f.tar.bz2 |
adding initial bf16 support
Diffstat (limited to 'source/include')
-rw-r--r-- | source/include/internals.h | 1 | ||||
-rw-r--r-- | source/include/softfloat.h | 7 | ||||
-rw-r--r-- | source/include/softfloat_types.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/source/include/internals.h b/source/include/internals.h index f8eac05..ccd7747 100644 --- a/source/include/internals.h +++ b/source/include/internals.h @@ -43,6 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "softfloat_types.h" union ui16_f16 { uint16_t ui; float16_t f; }; +union ui16_bf16 { uint16_t ui; bfloat16_t f; }; union ui32_f32 { uint32_t ui; float32_t f; }; union ui64_f64 { uint64_t ui; float64_t f; }; diff --git a/source/include/softfloat.h b/source/include/softfloat.h index 9ed17c1..c1757b8 100644 --- a/source/include/softfloat.h +++ b/source/include/softfloat.h @@ -170,6 +170,13 @@ bool f16_lt_quiet( float16_t, float16_t ); bool f16_isSignalingNaN( float16_t ); /*---------------------------------------------------------------------------- +| 16-bit (brain float 16) floating-point operations. +*----------------------------------------------------------------------------*/ +float32_t bf16_to_f32( bfloat16_t ); +bfloat16_t f32_to_bf16( float32_t ); +bool bf16_isSignalingNaN( bfloat16_t ); + +/*---------------------------------------------------------------------------- | 32-bit (single-precision) floating-point operations. *----------------------------------------------------------------------------*/ uint_fast32_t f32_to_ui32( float32_t, uint_fast8_t, bool ); diff --git a/source/include/softfloat_types.h b/source/include/softfloat_types.h index b92d246..25039b5 100644 --- a/source/include/softfloat_types.h +++ b/source/include/softfloat_types.h @@ -48,6 +48,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | (typically 'float' and 'double', and possibly 'long double'). *----------------------------------------------------------------------------*/ typedef struct { uint16_t v; } float16_t; +typedef struct { uint16_t v; } bfloat16_t; typedef struct { uint32_t v; } float32_t; typedef struct { uint64_t v; } float64_t; typedef struct { uint64_t v[2]; } float128_t; |