diff options
author | Jan Vesely <jan.vesely@rutgers.edu> | 2017-11-15 04:10:39 +0000 |
---|---|---|
committer | Jan Vesely <jan.vesely@rutgers.edu> | 2017-11-15 04:10:39 +0000 |
commit | fe7c045753172f3fccddecc163ed4ed5345c5dfe (patch) | |
tree | acb4a832d7f32ef6035c43bd98bac07e10c782fb /libclc | |
parent | 7ba243cc3de1cc83f013daa1b84d74f51158d406 (diff) | |
download | bcm5719-llvm-fe7c045753172f3fccddecc163ed4ed5345c5dfe.tar.gz bcm5719-llvm-fe7c045753172f3fccddecc163ed4ed5345c5dfe.zip |
math: Implement minmag
Reviewer: Aaron Watry
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 318265
Diffstat (limited to 'libclc')
-rw-r--r-- | libclc/generic/include/clc/clc.h | 1 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/minmag.h | 7 | ||||
-rw-r--r-- | libclc/generic/lib/SOURCES | 1 | ||||
-rw-r--r-- | libclc/generic/lib/math/minmag.cl | 4 | ||||
-rw-r--r-- | libclc/generic/lib/math/minmag.inc | 4 |
5 files changed, 17 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index d4ab289ccc9..465ee14296b 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -84,6 +84,7 @@ #include <clc/math/logb.h> #include <clc/math/mad.h> #include <clc/math/maxmag.h> +#include <clc/math/minmag.h> #include <clc/math/modf.h> #include <clc/math/nextafter.h> #include <clc/math/pow.h> diff --git a/libclc/generic/include/clc/math/minmag.h b/libclc/generic/include/clc/math/minmag.h new file mode 100644 index 00000000000..1183ac1d7f3 --- /dev/null +++ b/libclc/generic/include/clc/math/minmag.h @@ -0,0 +1,7 @@ +#define __CLC_BODY <clc/math/binary_decl_tt.inc> +#define __CLC_FUNCTION minmag + +#include <clc/math/gentype.inc> + +#undef __CLC_BODY +#undef __CLC_FUNCTION diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES index 0320d293a9e..f5840eef551 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 00000000000..1c815fc9b0d --- /dev/null +++ b/libclc/generic/lib/math/minmag.cl @@ -0,0 +1,4 @@ +#include <clc/clc.h> + +#define __CLC_BODY <minmag.inc> +#include <clc/math/gentype.inc> diff --git a/libclc/generic/lib/math/minmag.inc b/libclc/generic/lib/math/minmag.inc new file mode 100644 index 00000000000..097822c6502 --- /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))); +} |