From fe7c045753172f3fccddecc163ed4ed5345c5dfe Mon Sep 17 00:00:00 2001 From: Jan Vesely Date: Wed, 15 Nov 2017 04:10:39 +0000 Subject: [PATCH] math: Implement minmag Reviewer: Aaron Watry Signed-off-by: Jan Vesely llvm-svn: 318265 --- libclc/generic/include/clc/clc.h | 1 + libclc/generic/include/clc/math/minmag.h | 7 +++++++ libclc/generic/lib/SOURCES | 1 + libclc/generic/lib/math/minmag.cl | 4 ++++ libclc/generic/lib/math/minmag.inc | 4 ++++ 5 files changed, 17 insertions(+) create mode 100644 libclc/generic/include/clc/math/minmag.h create mode 100644 libclc/generic/lib/math/minmag.cl create mode 100644 libclc/generic/lib/math/minmag.inc diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index d4ab289..465ee14 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -84,6 +84,7 @@ #include #include #include +#include #include #include #include diff --git a/libclc/generic/include/clc/math/minmag.h b/libclc/generic/include/clc/math/minmag.h new file mode 100644 index 0000000..1183ac1 --- /dev/null +++ b/libclc/generic/include/clc/math/minmag.h @@ -0,0 +1,7 @@ +#define __CLC_BODY +#define __CLC_FUNCTION minmag + +#include + +#undef __CLC_BODY +#undef __CLC_FUNCTION diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES index 0320d29..f5840ee 100644 --- a/libclc/generic/lib/SOURCES +++ b/libclc/generic/lib/SOURCES @@ -119,6 +119,7 @@ math/log2.cl math/logb.cl math/mad.cl math/maxmag.cl +math/minmag.cl math/modf.cl math/native_cos.cl math/native_divide.cl diff --git a/libclc/generic/lib/math/minmag.cl b/libclc/generic/lib/math/minmag.cl new file mode 100644 index 0000000..1c815fc --- /dev/null +++ b/libclc/generic/lib/math/minmag.cl @@ -0,0 +1,4 @@ +#include + +#define __CLC_BODY +#include diff --git a/libclc/generic/lib/math/minmag.inc b/libclc/generic/lib/math/minmag.inc new file mode 100644 index 0000000..097822c --- /dev/null +++ b/libclc/generic/lib/math/minmag.inc @@ -0,0 +1,4 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE minmag(__CLC_GENTYPE x, __CLC_GENTYPE y) { + const __CLC_GENTYPE res = select(y, x, isless(fabs(x), fabs(y))); + return select(res, fmin(x, y), isnan(x) | isnan(y) | isequal(fabs(x), fabs(y))); +} -- 2.7.4