if an parameter is nan, then returns another parameter. v2: no need to test nan for integer Signed-off-by: Homer Hsing <homer.x...@intel.com> --- backend/src/ocl_stdlib.tmpl.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/backend/src/ocl_stdlib.tmpl.h b/backend/src/ocl_stdlib.tmpl.h index bff2b1c..d613656 100644 --- a/backend/src/ocl_stdlib.tmpl.h +++ b/backend/src/ocl_stdlib.tmpl.h @@ -1629,7 +1629,6 @@ INLINE_OVERLOADABLE TYPE min(TYPE a, TYPE b) { \ INLINE_OVERLOADABLE TYPE clamp(TYPE v, TYPE l, TYPE u) { \ return max(min(v, u), l); \ } -DECL_MIN_MAX_CLAMP(float) DECL_MIN_MAX_CLAMP(int) DECL_MIN_MAX_CLAMP(short) DECL_MIN_MAX_CLAMP(char) @@ -1639,6 +1638,19 @@ DECL_MIN_MAX_CLAMP(unsigned char) DECL_MIN_MAX_CLAMP(long) DECL_MIN_MAX_CLAMP(ulong) #undef DECL_MIN_MAX_CLAMP +INLINE_OVERLOADABLE float max(float a, float b) { + if(isnan(b)) + return a; + return a > b ? a : b; +} +INLINE_OVERLOADABLE float min(float a, float b) { + if(isnan(b)) + return a; + return a < b ? a : b; +} +INLINE_OVERLOADABLE float clamp(float v, float l, float u) { + return max(min(v, u), l); +} #define BODY \ if (isnan(x) || isinf(x)) { \ -- 1.8.3.2 _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet