diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2014-08-20 21:23:03 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2014-08-20 21:23:03 +0000 |
commit | 2ad4243bf784527f3c6e3514d94411332bc1cfae (patch) | |
tree | 22f28c9ed138d525db282de1ca1886f1425e7bab | |
parent | 425c181fb4afd051df9292fe782b8db7251dbdd7 (diff) | |
download | bcm5719-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.h | 3 | ||||
-rw-r--r-- | libclc/generic/include/clc/async/prefetch.inc | 1 | ||||
-rw-r--r-- | libclc/generic/include/clc/clc.h | 3 | ||||
-rw-r--r-- | libclc/generic/lib/SOURCES | 1 | ||||
-rw-r--r-- | libclc/generic/lib/async/prefetch.cl | 9 | ||||
-rw-r--r-- | libclc/generic/lib/async/prefetch.inc | 1 |
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) { } |