native_divide: provide function implementation instead of macro
authorJan Vesely <jan.vesely@rutgers.edu>
Mon, 13 Nov 2017 18:28:56 +0000 (18:28 +0000)
committerJan Vesely <jan.vesely@rutgers.edu>
Mon, 13 Nov 2017 18:28:56 +0000 (18:28 +0000)
Reviewer: Jeroen Ketema
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 318067

libclc/generic/include/clc/math/binary_decl_tt.inc [new file with mode: 0644]
libclc/generic/include/clc/math/native_divide.h
libclc/generic/lib/SOURCES
libclc/generic/lib/math/native_divide.cl [new file with mode: 0644]
libclc/generic/lib/math/native_divide.inc [new file with mode: 0644]

diff --git a/libclc/generic/include/clc/math/binary_decl_tt.inc b/libclc/generic/include/clc/math/binary_decl_tt.inc
new file mode 100644 (file)
index 0000000..3166476
--- /dev/null
@@ -0,0 +1 @@
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, __CLC_GENTYPE b);
index 5c52167..1bc6cf5 100644 (file)
@@ -1 +1,7 @@
-#define native_divide(x, y) ((x) / (y))
+#define __CLC_BODY <clc/math/binary_decl_tt.inc>
+#define __CLC_FUNCTION native_divide
+
+#include <clc/math/gentype.inc>
+
+#undef __CLC_BODY
+#undef __CLC_FUNCTION
index 94ba4c0..355741c 100644 (file)
@@ -120,6 +120,7 @@ math/logb.cl
 math/mad.cl
 math/modf.cl
 math/native_cos.cl
+math/native_divide.cl
 math/native_exp.cl
 math/native_exp10.cl
 math/native_exp2.cl
diff --git a/libclc/generic/lib/math/native_divide.cl b/libclc/generic/lib/math/native_divide.cl
new file mode 100644 (file)
index 0000000..0f34366
--- /dev/null
@@ -0,0 +1,5 @@
+#include <clc/clc.h>
+
+#define __CLC_BODY <native_divide.inc>
+#define __FLOAT_ONLY
+#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/native_divide.inc b/libclc/generic/lib/math/native_divide.inc
new file mode 100644 (file)
index 0000000..836c93d
--- /dev/null
@@ -0,0 +1,3 @@
+_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_divide(__CLC_GENTYPE x, __CLC_GENTYPE y) {
+  return x / y;
+}