summaryrefslogtreecommitdiffstats
path: root/libclc/generic/lib/math
diff options
context:
space:
mode:
authorAaron Watry <awatry@gmail.com>2014-06-16 19:53:59 +0000
committerAaron Watry <awatry@gmail.com>2014-06-16 19:53:59 +0000
commit6af2969a61f8c7a61abc777ce32c3f23dae4758c (patch)
treed95e35b6a6653c7056c3f88f15578aca9179a5df /libclc/generic/lib/math
parentf7f79d2a9405ea7ff5d9eac0a6d4783c8708c448 (diff)
downloadbcm5719-llvm-6af2969a61f8c7a61abc777ce32c3f23dae4758c.tar.gz
bcm5719-llvm-6af2969a61f8c7a61abc777ce32c3f23dae4758c.zip
math: Implement mix builtin
Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Tom Stellard <tom@stellard.net> llvm-svn: 211047
Diffstat (limited to 'libclc/generic/lib/math')
-rw-r--r--libclc/generic/lib/math/mix.cl8
-rw-r--r--libclc/generic/lib/math/mix.inc9
2 files changed, 17 insertions, 0 deletions
diff --git a/libclc/generic/lib/math/mix.cl b/libclc/generic/lib/math/mix.cl
new file mode 100644
index 00000000000..294f332e67f
--- /dev/null
+++ b/libclc/generic/lib/math/mix.cl
@@ -0,0 +1,8 @@
+#include <clc/clc.h>
+
+#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+#endif
+
+#define __CLC_BODY <mix.inc>
+#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/mix.inc b/libclc/generic/lib/math/mix.inc
new file mode 100644
index 00000000000..1e8b936149b
--- /dev/null
+++ b/libclc/generic/lib/math/mix.inc
@@ -0,0 +1,9 @@
+_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mix(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_GENTYPE a) {
+ return mad( y - x, a, x );
+}
+
+#ifndef __CLC_SCALAR
+_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mix(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_SCALAR_GENTYPE a) {
+ return mix(x, y, (__CLC_GENTYPE)a);
+}
+#endif
OpenPOWER on IntegriCloud