summaryrefslogtreecommitdiff
path: root/utests/compiler_local_memory_barrier_2.cpp
diff options
context:
space:
mode:
authorYang Rong <rong.r.yang@intel.com>2013-06-18 17:31:10 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2013-06-18 17:33:50 +0800
commitc43b8c22d1753b243037656715edc0d8ed2f0ad2 (patch)
treef1661bbb859b407e809f47d9c206eea33912b725 /utests/compiler_local_memory_barrier_2.cpp
parent7b326851ab83b153ebbc976096bfa2147066d6b7 (diff)
downloadbeignet-c43b8c22d1753b243037656715edc0d8ed2f0ad2.tar.gz
utests: Add a new local memory barrier case
We fail this case right now, disalbe it. And need more work to check the root cause. Change the local memory barrier can pass it, but it doesn't comply with BSPEC which says SLM doesn't need a memory fence. Signed-off-by: Yang Rong <rong.r.yang@intel.com> Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'utests/compiler_local_memory_barrier_2.cpp')
-rw-r--r--utests/compiler_local_memory_barrier_2.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/utests/compiler_local_memory_barrier_2.cpp b/utests/compiler_local_memory_barrier_2.cpp
new file mode 100644
index 00000000..d670654e
--- /dev/null
+++ b/utests/compiler_local_memory_barrier_2.cpp
@@ -0,0 +1,29 @@
+#include "utest_helper.hpp"
+
+static void compiler_global_memory_barrier(void)
+{
+ const size_t n = 16*1024;
+
+ globals[0] = n/2;
+ locals[0] = 32;
+
+ // Setup kernel and buffers
+ OCL_CREATE_KERNEL("compiler_local_memory_barrier_2");
+ OCL_CREATE_BUFFER(buf[0], 0, n * sizeof(uint32_t), NULL);
+ //OCL_CREATE_BUFFER(buf[1], 0, n * sizeof(uint32_t), NULL);
+ OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+ OCL_SET_ARG(1, locals[0] * 2 * sizeof(uint32_t), NULL);
+
+ // Run the kernel
+ OCL_NDRANGE(1);
+ OCL_MAP_BUFFER(0);
+
+ // Check results
+ uint32_t *dst = (uint32_t*)buf_data[0];
+ for (uint32_t i = 0; i < n; i+=locals[0])
+ for (uint32_t j = 0; j < locals[0]; ++j)
+ OCL_ASSERT(dst[i+j] == locals[0] - 1 -j);
+ OCL_UNMAP_BUFFER(0);
+}
+
+MAKE_UTEST_FROM_FUNCTION(compiler_global_memory_barrier);