diff options
author | Jan Vesely <jan.vesely@rutgers.edu> | 2017-10-25 16:49:22 +0000 |
---|---|---|
committer | Jan Vesely <jan.vesely@rutgers.edu> | 2017-10-25 16:49:22 +0000 |
commit | 47e093da9b48260e6f030fc21a96ef03b4a1fec5 (patch) | |
tree | 9b8410be2a7a2f25bbb121050916679947b70a69 | |
parent | 9fedbb9d8e0c43cead1dbb5ae5877ee02a18ea3d (diff) | |
download | llvm-47e093da9b48260e6f030fc21a96ef03b4a1fec5.zip llvm-47e093da9b48260e6f030fc21a96ef03b4a1fec5.tar.gz llvm-47e093da9b48260e6f030fc21a96ef03b4a1fec5.tar.bz2 |
math: Implement native_log10
Use llvm instrinsic by default
Provide amdgpu workaround
v2: drop old amd copyrights
Reviewer: Aaron Watry
Reviewed-by: Vedran Miletić <vedran@miletic.net>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 316588
-rw-r--r-- | libclc/amdgpu/lib/SOURCES | 1 | ||||
-rw-r--r-- | libclc/amdgpu/lib/math/native_log10.cl | 5 | ||||
-rw-r--r-- | libclc/amdgpu/lib/math/native_log10.inc | 3 | ||||
-rw-r--r-- | libclc/generic/include/clc/clc.h | 1 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/native_log10.h | 5 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/native_log10.inc | 1 | ||||
-rw-r--r-- | libclc/generic/lib/SOURCES | 1 | ||||
-rw-r--r-- | libclc/generic/lib/math/native_log10.cl | 10 | ||||
-rw-r--r-- | libclc/generic/lib/math/native_log10.inc | 3 |
9 files changed, 30 insertions, 0 deletions
diff --git a/libclc/amdgpu/lib/SOURCES b/libclc/amdgpu/lib/SOURCES index 8cbe1d4..59d8b22 100644 --- a/libclc/amdgpu/lib/SOURCES +++ b/libclc/amdgpu/lib/SOURCES @@ -1,3 +1,4 @@ math/native_log.cl +math/native_log10.cl math/nextafter.cl math/sqrt.cl diff --git a/libclc/amdgpu/lib/math/native_log10.cl b/libclc/amdgpu/lib/math/native_log10.cl new file mode 100644 index 0000000..2e7c11e --- /dev/null +++ b/libclc/amdgpu/lib/math/native_log10.cl @@ -0,0 +1,5 @@ +#include <clc/clc.h> + +#define __CLC_BODY <native_log10.inc> +#define __FLOAT_ONLY +#include <clc/math/gentype.inc> diff --git a/libclc/amdgpu/lib/math/native_log10.inc b/libclc/amdgpu/lib/math/native_log10.inc new file mode 100644 index 0000000..96b1a0a --- /dev/null +++ b/libclc/amdgpu/lib/math/native_log10.inc @@ -0,0 +1,3 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_log10(__CLC_GENTYPE val) { + return native_log2(val) * (M_LN2_F / M_LN10_F); +} diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index 3701336..5d64751 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -104,6 +104,7 @@ #include <clc/math/native_exp10.h> #include <clc/math/native_exp2.h> #include <clc/math/native_log.h> +#include <clc/math/native_log10.h> #include <clc/math/native_log2.h> #include <clc/math/native_powr.h> #include <clc/math/native_recip.h> diff --git a/libclc/generic/include/clc/math/native_log10.h b/libclc/generic/include/clc/math/native_log10.h new file mode 100644 index 0000000..b877efd --- /dev/null +++ b/libclc/generic/include/clc/math/native_log10.h @@ -0,0 +1,5 @@ +#define __CLC_BODY <clc/math/native_log10.inc> +#define __FLOAT_ONLY +#include <clc/math/gentype.inc> +#undef __CLC_BODY +#undef __FLOAT_ONLY diff --git a/libclc/generic/include/clc/math/native_log10.inc b/libclc/generic/include/clc/math/native_log10.inc new file mode 100644 index 0000000..ce5a994 --- /dev/null +++ b/libclc/generic/include/clc/math/native_log10.inc @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE native_log10(__CLC_GENTYPE a); diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES index ededcdb..7f09f9a 100644 --- a/libclc/generic/lib/SOURCES +++ b/libclc/generic/lib/SOURCES @@ -120,6 +120,7 @@ math/logb.cl math/mad.cl math/modf.cl math/native_log.cl +math/native_log10.cl math/native_log2.cl math/tables.cl math/clc_nextafter.cl diff --git a/libclc/generic/lib/math/native_log10.cl b/libclc/generic/lib/math/native_log10.cl new file mode 100644 index 0000000..9741daa --- /dev/null +++ b/libclc/generic/lib/math/native_log10.cl @@ -0,0 +1,10 @@ +#include <clc/clc.h> + +#define __CLC_FUNCTION __clc_native_log10 +#define __CLC_INTRINSIC "llvm.log10" +#undef cl_khr_fp64 +#include <clc/math/unary_intrin.inc> + +#define __CLC_BODY <native_log10.inc> +#define __FLOAT_ONLY +#include <clc/math/gentype.inc> diff --git a/libclc/generic/lib/math/native_log10.inc b/libclc/generic/lib/math/native_log10.inc new file mode 100644 index 0000000..a2f3d1a --- /dev/null +++ b/libclc/generic/lib/math/native_log10.inc @@ -0,0 +1,3 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_log10(__CLC_GENTYPE val) { + return __clc_native_log10(val); +} |