add built-in function "isordered", "isunordered"
authorHomer Hsing <homer.xing@intel.com>
Mon, 29 Jul 2013 02:25:18 +0000 (10:25 +0800)
committerZhigang Gong <zhigang.gong@linux.intel.com>
Mon, 29 Jul 2013 05:12:28 +0000 (13:12 +0800)
Signed-off-by: Homer Hsing <homer.xing@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
backend/src/ocl_stdlib.tmpl.h

index 1bf9fdc..d42d19b 100644 (file)
@@ -204,6 +204,8 @@ INLINE_OVERLOADABLE int isfinite(float x) { return __builtin_isfinite(x); }
 INLINE_OVERLOADABLE int isinf(float x) { return __builtin_isinf(x); }
 INLINE_OVERLOADABLE int isnan(float x) { return __builtin_isnan(x); }
 INLINE_OVERLOADABLE int isnormal(float x) { return __builtin_isnormal(x); }
+INLINE_OVERLOADABLE int isordered(float x, float y) { return isequal(x, x) && isequal(y, y); }
+INLINE_OVERLOADABLE int isunordered(float x, float y) { return isnan(x) || isnan(y); }
 INLINE_OVERLOADABLE int signbit(float x) { return __builtin_signbit(x); }
 
 #define DEC1(type) INLINE_OVERLOADABLE int any(type a) { return a<0; }