summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-08-20 21:23:03 +0000
committerTom Stellard <thomas.stellard@amd.com>2014-08-20 21:23:03 +0000
commit2ad4243bf784527f3c6e3514d94411332bc1cfae (patch)
tree22f28c9ed138d525db282de1ca1886f1425e7bab
parent425c181fb4afd051df9292fe782b8db7251dbdd7 (diff)
downloadbcm5719-llvm-2ad4243bf784527f3c6e3514d94411332bc1cfae.tar.gz
bcm5719-llvm-2ad4243bf784527f3c6e3514d94411332bc1cfae.zip
Implement prefetch builtin
The default implementation is a no-op. Targets should override this with their own implementations. llvm-svn: 216127
-rw-r--r--libclc/generic/include/clc/async/prefetch.h3
-rw-r--r--libclc/generic/include/clc/async/prefetch.inc1
-rw-r--r--libclc/generic/include/clc/clc.h3
-rw-r--r--libclc/generic/lib/SOURCES1
-rw-r--r--libclc/generic/lib/async/prefetch.cl9
-rw-r--r--libclc/generic/lib/async/prefetch.inc1
6 files changed, 18 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/async/prefetch.h b/libclc/generic/include/clc/async/prefetch.h
new file mode 100644
index 00000000000..f64bc2045de
--- /dev/null
+++ b/libclc/generic/include/clc/async/prefetch.h
@@ -0,0 +1,3 @@
+#define __CLC_BODY <clc/async/prefetch.inc>
+#include <clc/async/gentype.inc>
+#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/async/prefetch.inc b/libclc/generic/include/clc/async/prefetch.inc
new file mode 100644
index 00000000000..f817a66c249
--- /dev/null
+++ b/libclc/generic/include/clc/async/prefetch.inc
@@ -0,0 +1 @@
+_CLC_OVERLOAD _CLC_DECL void prefetch(const global __CLC_GENTYPE *p, size_t num_gentypes);
diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h
index 9815c56e3b5..84b25ac77f0 100644
--- a/libclc/generic/include/clc/clc.h
+++ b/libclc/generic/include/clc/clc.h
@@ -126,6 +126,9 @@
#include <clc/synchronization/cl_mem_fence_flags.h>
#include <clc/synchronization/barrier.h>
+/* 6.11.10 Async Copy and Prefetch Functions */
+#include <clc/async/prefetch.h>
+
/* 6.11.11 Atomic Functions */
#include <clc/atomic/atomic_add.h>
#include <clc/atomic/atomic_dec.h>
diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES
index 13076616d44..21fc7ca796a 100644
--- a/libclc/generic/lib/SOURCES
+++ b/libclc/generic/lib/SOURCES
@@ -1,3 +1,4 @@
+async/prefetch.cl
atomic/atomic_impl.ll
cl_khr_global_int32_base_atomics/atom_add.cl
cl_khr_global_int32_base_atomics/atom_dec.cl
diff --git a/libclc/generic/lib/async/prefetch.cl b/libclc/generic/lib/async/prefetch.cl
new file mode 100644
index 00000000000..45af21b4d9f
--- /dev/null
+++ b/libclc/generic/lib/async/prefetch.cl
@@ -0,0 +1,9 @@
+#include <clc/clc.h>
+
+#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+#endif
+
+#define __CLC_BODY <prefetch.inc>
+#include <clc/async/gentype.inc>
+#undef __CLC_BODY
diff --git a/libclc/generic/lib/async/prefetch.inc b/libclc/generic/lib/async/prefetch.inc
new file mode 100644
index 00000000000..6747e4cf581
--- /dev/null
+++ b/libclc/generic/lib/async/prefetch.inc
@@ -0,0 +1 @@
+_CLC_OVERLOAD _CLC_DEF void prefetch(const global __CLC_GENTYPE *p, size_t num_gentypes) { }
OpenPOWER on IntegriCloud