[Beignet] [PATCH 2/7] Utest: Add as_float as_uint helper function

Xiuli Pan xiuli.pan at intel.com
Fri Jul 22 03:14:49 UTC 2016


From: Pan Xiuli <xiuli.pan at intel.com>

These functions are used with half float convert funcitons.

Signed-off-by: Pan Xiuli <xiuli.pan at intel.com>
---
 utests/utest_helper.cpp | 10 ++++++++++
 utests/utest_helper.hpp |  7 +++++++
 2 files changed, 17 insertions(+)

diff --git a/utests/utest_helper.cpp b/utests/utest_helper.cpp
index 3078a2f..c1c1318 100644
--- a/utests/utest_helper.cpp
+++ b/utests/utest_helper.cpp
@@ -1044,3 +1044,13 @@ uint16_t __float_to_half(uint32_t x)
   bits += m & 1;
   return bits;
 }
+uint32_t as_uint(float f) {
+  union uint32_cast _tmp;
+  _tmp._float = f;
+  return _tmp._uint;
+}
+float as_float(uint32_t i) {
+  union uint32_cast _tmp;
+  _tmp._uint = i;
+  return _tmp._float;
+}
diff --git a/utests/utest_helper.hpp b/utests/utest_helper.hpp
index 561c2c4..5f2fea6 100644
--- a/utests/utest_helper.hpp
+++ b/utests/utest_helper.hpp
@@ -52,6 +52,11 @@ extern EGLContext  eglContext;
 extern EGLSurface  eglSurface;
 #endif
 
+union uint32_cast {
+  uint32_t _uint;
+  float _float;
+};
+
 #define OCL_THROW_ERROR(FN, STATUS) \
   do { \
     char msg[2048]; \
@@ -306,4 +311,6 @@ extern int cl_check_half(void);
 /* Helper function for half type numbers */
 extern uint32_t __half_to_float(uint16_t h, bool* isInf = NULL, bool* infSign = NULL);
 extern uint16_t __float_to_half(uint32_t x);
+extern float as_float(uint32_t i);
+extern uint32_t as_uint(float f);
 #endif /* __UTEST_HELPER_HPP__ */
-- 
2.5.0



More information about the Beignet mailing list