Build all BF16 routines and declare f64_to_bf16 (#49)

The new BF16 routines were missing from the Makefiles. Adding them
showed bf16_mulAdd fails to build without a f64_to_bf16 declaration.

Signed-off-by: Nadime Barhoumi <nadime@riscv.org>
diff --git a/build/Linux-RISCV64-GCC/Makefile b/build/Linux-RISCV64-GCC/Makefile
index 6403fde..807e987 100644
--- a/build/Linux-RISCV64-GCC/Makefile
+++ b/build/Linux-RISCV64-GCC/Makefile
@@ -181,6 +181,18 @@
   i64_to_f128M$(OBJ) \
   bf16_isSignalingNaN$(OBJ) \
   bf16_to_f32$(OBJ) \
+  bf16_to_f64$(OBJ) \
+  bf16_to_i32$(OBJ) \
+  bf16_to_ui32$(OBJ) \
+  bf16_add$(OBJ) \
+  bf16_sub$(OBJ) \
+  bf16_mul$(OBJ) \
+  bf16_mulAdd$(OBJ) \
+  bf16_div$(OBJ) \
+  bf16_sqrt$(OBJ) \
+  bf16_eq$(OBJ) \
+  bf16_le$(OBJ) \
+  bf16_lt$(OBJ) \
   f16_to_ui32$(OBJ) \
   f16_to_ui64$(OBJ) \
   f16_to_i32$(OBJ) \
diff --git a/build/Linux-x86_64-GCC/Makefile b/build/Linux-x86_64-GCC/Makefile
index 7ae4832..97683a7 100644
--- a/build/Linux-x86_64-GCC/Makefile
+++ b/build/Linux-x86_64-GCC/Makefile
@@ -178,6 +178,18 @@
   i64_to_f128M$(OBJ) \
   bf16_isSignalingNaN$(OBJ) \
   bf16_to_f32$(OBJ) \
+  bf16_to_f64$(OBJ) \
+  bf16_to_i32$(OBJ) \
+  bf16_to_ui32$(OBJ) \
+  bf16_add$(OBJ) \
+  bf16_sub$(OBJ) \
+  bf16_mul$(OBJ) \
+  bf16_mulAdd$(OBJ) \
+  bf16_div$(OBJ) \
+  bf16_sqrt$(OBJ) \
+  bf16_eq$(OBJ) \
+  bf16_le$(OBJ) \
+  bf16_lt$(OBJ) \
   f16_to_ui32$(OBJ) \
   f16_to_ui64$(OBJ) \
   f16_to_i32$(OBJ) \
diff --git a/build/template-FAST_INT64/Makefile b/build/template-FAST_INT64/Makefile
index d5553f6..44d720a 100644
--- a/build/template-FAST_INT64/Makefile
+++ b/build/template-FAST_INT64/Makefile
@@ -177,6 +177,18 @@
   i64_to_f128M$(OBJ) \
   bf16_isSignalingNaN$(OBJ) \
   bf16_to_f32$(OBJ) \
+  bf16_to_f64$(OBJ) \
+  bf16_to_i32$(OBJ) \
+  bf16_to_ui32$(OBJ) \
+  bf16_add$(OBJ) \
+  bf16_sub$(OBJ) \
+  bf16_mul$(OBJ) \
+  bf16_mulAdd$(OBJ) \
+  bf16_div$(OBJ) \
+  bf16_sqrt$(OBJ) \
+  bf16_eq$(OBJ) \
+  bf16_le$(OBJ) \
+  bf16_lt$(OBJ) \
   f16_to_ui32$(OBJ) \
   f16_to_ui64$(OBJ) \
   f16_to_i32$(OBJ) \
diff --git a/source/include/softfloat.h b/source/include/softfloat.h
index 49b55a1..ee73502 100644
--- a/source/include/softfloat.h
+++ b/source/include/softfloat.h
@@ -177,6 +177,7 @@
 float32_t bf16_to_f32( bfloat16_t );
 float64_t bf16_to_f64( bfloat16_t );
 bfloat16_t f32_to_bf16( float32_t );
+bfloat16_t f64_to_bf16( float64_t );
 bfloat16_t bf16_add( bfloat16_t, bfloat16_t );
 bfloat16_t bf16_sub( bfloat16_t, bfloat16_t );
 bfloat16_t bf16_mul( bfloat16_t, bfloat16_t );