OpenCL example5 { [x] = 0; [y] = 0; } P0 (global int* x, local atomic_int* y) { *x = 42; atomic_store_explicit(y, 1, memory_order_release, memory_scope_work_group); } P1 (global int* x, local atomic_int* y) { int r = -1; if (atomic_load_explicit(y, memory_order_acquire, memory_scope_work_group) == 1) r = *x; } scopeTree (device (work_group P0 P1)) exists (1:r = 0)