summaryrefslogtreecommitdiff
path: root/kernels/compiler_global_memory_barrier.cl
blob: 99bb9403d40c33a3d2ca5ad164805a4a1694743c (plain)
1
2
3
4
5
6
7
__kernel void compiler_global_memory_barrier(__global int *dst, __global int *src) {
  src[get_local_size(0) * (2 * get_group_id(0)) + get_local_id(0)] = get_local_id(0);
  src[get_local_size(0) * (2 * get_group_id(0) + 1) + get_local_id(0)] = get_local_id(0);
  barrier(CLK_GLOBAL_MEM_FENCE);
  dst[get_local_size(0) * (2 * get_group_id(0)) + get_local_id(0)] = src[get_local_size(0) * 2 * get_group_id(0) + get_local_size(0) - (get_local_id(0) + 1)];
  dst[get_local_size(0) * (2 * get_group_id(0) + 1) + get_local_id(0)] = src[get_local_size(0) * (2 * get_group_id(0) + 1) + get_local_size(0) - (get_local_id(0) + 1)];
}