blob: ce39819a6e8b44270a0982c022668e1c3c69a3c6 [file] [log] [blame]
spv.subgroupBasic.comp
// Module Version 10300
// Generated by (magic number): 80006
// Id's are bound by 40
Capability Shader
Capability GroupNonUniform
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 14 19 22 25
ExecutionMode 4 LocalSize 8 8 1
Source GLSL 450
SourceExtension "GL_KHR_shader_subgroup_basic"
Name 4 "main"
Name 8 "Buffer"
MemberName 8(Buffer) 0 "a"
Name 10 "data"
Name 14 "gl_SubgroupSize"
Name 19 "gl_SubgroupInvocationID"
Name 22 "gl_NumSubgroups"
Name 25 "gl_SubgroupID"
Decorate 7 ArrayStride 4
MemberDecorate 8(Buffer) 0 Offset 0
Decorate 8(Buffer) BufferBlock
Decorate 10(data) DescriptorSet 0
Decorate 10(data) Binding 0
Decorate 14(gl_SubgroupSize) RelaxedPrecision
Decorate 14(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 15 RelaxedPrecision
Decorate 19(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 19(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 20 RelaxedPrecision
Decorate 22(gl_NumSubgroups) BuiltIn NumSubgroups
Decorate 25(gl_SubgroupID) BuiltIn SubgroupId
Decorate 39 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeRuntimeArray 6(int)
8(Buffer): TypeStruct 7
9: TypePointer Uniform 8(Buffer)
10(data): 9(ptr) Variable Uniform
11: 6(int) Constant 0
12: TypeInt 32 0
13: TypePointer Input 12(int)
14(gl_SubgroupSize): 13(ptr) Variable Input
16: 6(int) Constant 1
17: TypePointer Uniform 6(int)
19(gl_SubgroupInvocationID): 13(ptr) Variable Input
22(gl_NumSubgroups): 13(ptr) Variable Input
25(gl_SubgroupID): 13(ptr) Variable Input
27: TypeBool
28: 12(int) Constant 3
32: 12(int) Constant 3400
33: 12(int) Constant 72
34: 12(int) Constant 264
35: 12(int) Constant 2056
36: TypeVector 12(int) 3
37: 12(int) Constant 8
38: 12(int) Constant 1
39: 36(ivec3) ConstantComposite 37 37 38
4(main): 2 Function None 3
5: Label
15: 12(int) Load 14(gl_SubgroupSize)
18: 17(ptr) AccessChain 10(data) 11 15
Store 18 16
20: 12(int) Load 19(gl_SubgroupInvocationID)
21: 17(ptr) AccessChain 10(data) 11 20
Store 21 16
23: 12(int) Load 22(gl_NumSubgroups)
24: 17(ptr) AccessChain 10(data) 11 23
Store 24 16
26: 12(int) Load 25(gl_SubgroupID)
29: 27(bool) GroupNonUniformElect 28
30: 6(int) Select 29 16 11
31: 17(ptr) AccessChain 10(data) 11 26
Store 31 30
ControlBarrier 28 28 32
MemoryBarrier 28 32
MemoryBarrier 28 33
MemoryBarrier 28 34
MemoryBarrier 28 35
Return
FunctionEnd