diff options
Diffstat (limited to 'src/core/cpu/kernel.cpp')
-rw-r--r-- | src/core/cpu/kernel.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/cpu/kernel.cpp b/src/core/cpu/kernel.cpp index 49e4dcc..b89aafa 100644 --- a/src/core/cpu/kernel.cpp +++ b/src/core/cpu/kernel.cpp @@ -588,17 +588,19 @@ void *CPUKernelWorkGroup::callArgs(std::vector<void *> &locals_to_free) { case Kernel::Arg::Buffer: { - MemObject *buffer = *(MemObject **)arg->data(); - if (arg->file() == Kernel::Arg::Local) { // Alloc a buffer and pass it to the kernel - void *local_buffer = std::malloc(arg->allocAtKernelRuntime()); + // align for type double16 size. + void *local_buffer = NULL; + int retval = posix_memalign(&local_buffer, 128, arg->allocAtKernelRuntime()); locals_to_free.push_back(local_buffer); *(void **)target = local_buffer; } else { + MemObject *buffer = *(MemObject **)arg->data(); + if (!buffer) { // We can do that, just send NULL |