blob: bea25a83ada9739b508872bf0f439d85e3853404 [file] [log] [blame]
alan-baker227e9782020-06-02 15:35:37 -04001// RUN: clspv %s -o %t.spv -enable-pre=1 -enable-load-pre=1
Kévin Petit23d5f182019-08-13 16:21:29 +01002// RUN: spirv-dis -o %t2.spvasm %t.spv
3// RUN: FileCheck %s < %t2.spvasm
4// RUN: spirv-val --target-env vulkan1.0 %t.spv
5
6// CHECK: OpUndef
7// CHECK-NOT: OpVariable {{.*}} Workgroup %
8// CHECK: OpVariable {{.*}} Workgroup
9// CHECK-NOT: OpVariable {{.*}} Workgroup %
10// CHECK: OpVariable {{.*}} Workgroup
11
12__kernel void
13top_scan(__global uint * isums,
14 const int n,
15 __local uint * lmem)
16{
17 __local int s_seed;
18 s_seed = 0; barrier(CLK_LOCAL_MEM_FENCE);
19
20 int last_thread = (get_local_id(0) < n &&
21 (get_local_id(0)+1) == n) ? 1 : 0;
22
23 for (int d = 0; d < 16; d++)
24 {
25 int idx = get_local_id(0);
26 lmem[idx] = 0;
27 if (last_thread)
28 {
29 s_seed += 42;
30 }
31 barrier(CLK_LOCAL_MEM_FENCE);
32 }
33}
34