LGTM, thanks.

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Homer Hsing
Sent: Thursday, November 07, 2013 2:55 PM
To: [email protected]
Subject: [Beignet] [PATCH v2] fix builtin function "fract"

v2: return nan for nan, +zero for +inf, -zero for -inf.
Signed-off-by: Homer Hsing <[email protected]>
---
 backend/src/ocl_stdlib.tmpl.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/backend/src/ocl_stdlib.tmpl.h b/backend/src/ocl_stdlib.tmpl.h 
index 154ea44..17b31e7 100644
--- a/backend/src/ocl_stdlib.tmpl.h
+++ b/backend/src/ocl_stdlib.tmpl.h
@@ -1718,7 +1718,14 @@ INLINE_OVERLOADABLE float __gen_ocl_internal_fdim(float 
x, float y) {
   return __gen_ocl_internal_fmax(x, y) - y;  }  #define BODY \
+  if (isnan(x)) { \
+    *p = x; \
+    return x; \
+  } \
   *p = __gen_ocl_internal_floor(x); \
+  if (isinf(x)) { \
+    return x > 0 ? +0. : -0.; \
+  } \
   return __gen_ocl_internal_fmin(x - *p, 0x1.FFFFFep-1F);  INLINE_OVERLOADABLE 
float fract(float x, global float *p) { BODY; }  INLINE_OVERLOADABLE float 
fract(float x, local float *p) { BODY; }
--
1.8.3.2

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to