diff options
author | Benjamin Segovia <benjamin.segovia@intel.com> | 2012-11-07 00:41:20 -0800 |
---|---|---|
committer | Benjamin Segovia <benjamin.segovia@intel.com> | 2012-11-07 00:41:20 -0800 |
commit | bc29f49338fee8d4ce0ddf4489716bafd513733e (patch) | |
tree | 6ba47ca0c607bdc0bb6bc9cf16d40f603e08fd1a /utests/compiler_uint8_copy.cpp | |
parent | 5f0b8da52520480ebe5f95ac6661e704513c0531 (diff) |
Added supports for loads and stores of float8/float16
Diffstat (limited to 'utests/compiler_uint8_copy.cpp')
-rw-r--r-- | utests/compiler_uint8_copy.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/utests/compiler_uint8_copy.cpp b/utests/compiler_uint8_copy.cpp new file mode 100644 index 00000000..25dbd58a --- /dev/null +++ b/utests/compiler_uint8_copy.cpp @@ -0,0 +1,35 @@ +#include "utest_helper.hpp" + +static void compiler_uint8_copy(void) +{ + const size_t n = 128; + + // Setup kernel and buffers. Note that uint8 is aligned on 16 bytes + // according to the OCL specification + OCL_CREATE_KERNEL("compiler_uint8_copy"); + buf_data[0] = (uint32_t*) malloc(sizeof(uint32_t[8]) * n); + for (uint32_t i = 0; i < n; ++i) + for (uint32_t j = 0; j < 8; ++j) + ((uint32_t*)buf_data[0])[8*i+j] = 8*i+j; + + OCL_CREATE_BUFFER(buf[0], CL_MEM_COPY_HOST_PTR, n * sizeof(uint32_t[8]), buf_data[0]); + OCL_CREATE_BUFFER(buf[1], 0, n * sizeof(uint32_t[8]), NULL); + free(buf_data[0]); + buf_data[0] = NULL; + + // Run the kernel + OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]); + OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]); + globals[0] = n; + locals[0] = 16; + OCL_NDRANGE(1); + + // Check result + OCL_MAP_BUFFER(0); + OCL_MAP_BUFFER(1); + for (uint32_t i = 0; i < 8*n; ++i) + OCL_ASSERT(((uint32_t*)buf_data[0])[i] == ((uint32_t*)buf_data[1])[i]); +} + +MAKE_UTEST_FROM_FUNCTION(compiler_uint8_copy); + |