File tree Expand file tree Collapse file tree 3 files changed +20
-1
lines changed
libclc/amdgcn-amdhsa/libspirv Expand file tree Collapse file tree 3 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -12,5 +12,6 @@ workitem/get_num_groups.cl
12
12
workitem/get_max_sub_group_size.cl
13
13
workitem/get_num_sub_groups.cl
14
14
workitem/get_sub_group_id.cl
15
+ workitem/get_sub_group_local_id.cl
15
16
workitem/get_sub_group_size.cl
16
17
misc/sub_group_shuffle.cl
Original file line number Diff line number Diff line change @@ -14,7 +14,6 @@ _CLC_DEF _CLC_OVERLOAD uint __spirv_SubgroupId() {
14
14
size_t id_z = __spirv_LocalInvocationId_z ();
15
15
size_t size_x = __spirv_WorkgroupSize_x ();
16
16
size_t size_y = __spirv_WorkgroupSize_y ();
17
- size_t size_z = __spirv_WorkgroupSize_z ();
18
17
uint sg_size = __spirv_SubgroupMaxSize ();
19
18
return (id_z * size_y * size_x + id_y * size_x + id_x ) / sg_size ;
20
19
}
Original file line number Diff line number Diff line change
1
+ //===----------------------------------------------------------------------===//
2
+ //
3
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
9
+ #include <spirv/spirv.h>
10
+
11
+ _CLC_DEF _CLC_OVERLOAD uint __spirv_SubgroupLocalInvocationId () {
12
+ size_t id_x = __spirv_LocalInvocationId_x ();
13
+ size_t id_y = __spirv_LocalInvocationId_y ();
14
+ size_t id_z = __spirv_LocalInvocationId_z ();
15
+ size_t size_x = __spirv_WorkgroupSize_x ();
16
+ size_t size_y = __spirv_WorkgroupSize_y ();
17
+ uint sg_size = __spirv_SubgroupMaxSize ();
18
+ return (id_z * size_y * size_x + id_y * size_x + id_x ) % sg_size ;
19
+ }
You can’t perform that action at this time.
0 commit comments