[Libclc-dev] [PATCH] Implement prefetch builtin
Tom Stellard
thomas.stellard at amd.com
Thu Aug 7 09:40:40 PDT 2014
The default implementation is a no-op. Targets should override this
with their own implementations.
---
generic/include/clc/async/prefetch.h | 3 +++
generic/include/clc/async/prefetch.inc | 1 +
generic/include/clc/clc.h | 3 +++
generic/lib/SOURCES | 1 +
generic/lib/async/prefetch.cl | 9 +++++++++
generic/lib/async/prefetch.inc | 1 +
6 files changed, 18 insertions(+)
create mode 100644 generic/include/clc/async/prefetch.h
create mode 100644 generic/include/clc/async/prefetch.inc
create mode 100644 generic/lib/async/prefetch.cl
create mode 100644 generic/lib/async/prefetch.inc
diff --git a/generic/include/clc/async/prefetch.h b/generic/include/clc/async/prefetch.h
new file mode 100644
index 0000000..f64bc20
--- /dev/null
+++ b/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/generic/include/clc/async/prefetch.inc b/generic/include/clc/async/prefetch.inc
new file mode 100644
index 0000000..f817a66
--- /dev/null
+++ b/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/generic/include/clc/clc.h b/generic/include/clc/clc.h
index 60b5a6c..b6adbba 100644
--- a/generic/include/clc/clc.h
+++ b/generic/include/clc/clc.h
@@ -124,6 +124,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/generic/lib/SOURCES b/generic/lib/SOURCES
index 7efe08c..c8eed0c 100644
--- a/generic/lib/SOURCES
+++ b/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/generic/lib/async/prefetch.cl b/generic/lib/async/prefetch.cl
new file mode 100644
index 0000000..45af21b
--- /dev/null
+++ b/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/generic/lib/async/prefetch.inc b/generic/lib/async/prefetch.inc
new file mode 100644
index 0000000..6747e4c
--- /dev/null
+++ b/generic/lib/async/prefetch.inc
@@ -0,0 +1 @@
+_CLC_OVERLOAD _CLC_DEF void prefetch(const global __CLC_GENTYPE *p, size_t num_gentypes) { }
--
1.8.1.5
More information about the Libclc-dev
mailing list