IVGCVSW-4511 Add BFloat16 to RefLayerSupport and unit tests

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Ifaae4d5aac468ba927b2c6a4bf31b8c8522aeb2e
diff --git a/src/armnnUtils/BFloat16.hpp b/src/armnnUtils/BFloat16.hpp
index 5da4da5..16ceb52 100644
--- a/src/armnnUtils/BFloat16.hpp
+++ b/src/armnnUtils/BFloat16.hpp
@@ -27,6 +27,17 @@
         m_Value = Float32ToBFloat16(v).Val();
     }
 
+    operator float() const
+    {
+        return ToFloat32();
+    }
+
+    BFloat16& operator=(const BFloat16& other)
+    {
+        m_Value = other.Val();
+        return *this;
+    }
+
     BFloat16& operator=(float v)
     {
         m_Value = Float32ToBFloat16(v).Val();
@@ -38,11 +49,6 @@
         return m_Value == r.Val();
     }
 
-    bool operator==(const float& r) const
-    {
-        return ToFloat32() == r;
-    }
-
     static BFloat16 Float32ToBFloat16(const float v)
     {
         if (std::isnan(v))