aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2017-10-25 16:49:22 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2017-10-25 16:49:22 +0000
commit47e093da9b48260e6f030fc21a96ef03b4a1fec5 (patch)
tree9b8410be2a7a2f25bbb121050916679947b70a69
parent9fedbb9d8e0c43cead1dbb5ae5877ee02a18ea3d (diff)
downloadllvm-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/SOURCES1
-rw-r--r--libclc/amdgpu/lib/math/native_log10.cl5
-rw-r--r--libclc/amdgpu/lib/math/native_log10.inc3
-rw-r--r--libclc/generic/include/clc/clc.h1
-rw-r--r--libclc/generic/include/clc/math/native_log10.h5
-rw-r--r--libclc/generic/include/clc/math/native_log10.inc1
-rw-r--r--libclc/generic/lib/SOURCES1
-rw-r--r--libclc/generic/lib/math/native_log10.cl10
-rw-r--r--libclc/generic/lib/math/native_log10.inc3
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);
+}