1spv.subgroupBasic.comp 2// Module Version 10300 3// Generated by (magic number): 80008 4// Id's are bound by 40 5 6 Capability Shader 7 Capability GroupNonUniform 8 1: ExtInstImport "GLSL.std.450" 9 MemoryModel Logical GLSL450 10 EntryPoint GLCompute 4 "main" 14 19 22 25 11 ExecutionMode 4 LocalSize 8 8 1 12 Source GLSL 450 13 SourceExtension "GL_KHR_shader_subgroup_basic" 14 Name 4 "main" 15 Name 8 "Buffer" 16 MemberName 8(Buffer) 0 "a" 17 Name 10 "data" 18 Name 14 "gl_SubgroupSize" 19 Name 19 "gl_SubgroupInvocationID" 20 Name 22 "gl_NumSubgroups" 21 Name 25 "gl_SubgroupID" 22 Decorate 7 ArrayStride 4 23 MemberDecorate 8(Buffer) 0 Offset 0 24 Decorate 8(Buffer) Block 25 Decorate 10(data) DescriptorSet 0 26 Decorate 10(data) Binding 0 27 Decorate 14(gl_SubgroupSize) RelaxedPrecision 28 Decorate 14(gl_SubgroupSize) BuiltIn SubgroupSize 29 Decorate 15 RelaxedPrecision 30 Decorate 19(gl_SubgroupInvocationID) RelaxedPrecision 31 Decorate 19(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId 32 Decorate 20 RelaxedPrecision 33 Decorate 22(gl_NumSubgroups) BuiltIn NumSubgroups 34 Decorate 25(gl_SubgroupID) BuiltIn SubgroupId 35 Decorate 39 BuiltIn WorkgroupSize 36 2: TypeVoid 37 3: TypeFunction 2 38 6: TypeInt 32 1 39 7: TypeRuntimeArray 6(int) 40 8(Buffer): TypeStruct 7 41 9: TypePointer StorageBuffer 8(Buffer) 42 10(data): 9(ptr) Variable StorageBuffer 43 11: 6(int) Constant 0 44 12: TypeInt 32 0 45 13: TypePointer Input 12(int) 4614(gl_SubgroupSize): 13(ptr) Variable Input 47 16: 6(int) Constant 1 48 17: TypePointer StorageBuffer 6(int) 4919(gl_SubgroupInvocationID): 13(ptr) Variable Input 5022(gl_NumSubgroups): 13(ptr) Variable Input 5125(gl_SubgroupID): 13(ptr) Variable Input 52 27: TypeBool 53 28: 12(int) Constant 3 54 32: 12(int) Constant 3400 55 33: 12(int) Constant 72 56 34: 12(int) Constant 264 57 35: 12(int) Constant 2056 58 36: TypeVector 12(int) 3 59 37: 12(int) Constant 8 60 38: 12(int) Constant 1 61 39: 36(ivec3) ConstantComposite 37 37 38 62 4(main): 2 Function None 3 63 5: Label 64 15: 12(int) Load 14(gl_SubgroupSize) 65 18: 17(ptr) AccessChain 10(data) 11 15 66 Store 18 16 67 20: 12(int) Load 19(gl_SubgroupInvocationID) 68 21: 17(ptr) AccessChain 10(data) 11 20 69 Store 21 16 70 23: 12(int) Load 22(gl_NumSubgroups) 71 24: 17(ptr) AccessChain 10(data) 11 23 72 Store 24 16 73 26: 12(int) Load 25(gl_SubgroupID) 74 29: 27(bool) GroupNonUniformElect 28 75 30: 6(int) Select 29 16 11 76 31: 17(ptr) AccessChain 10(data) 11 26 77 Store 31 30 78 ControlBarrier 28 28 32 79 MemoryBarrier 28 32 80 MemoryBarrier 28 33 81 MemoryBarrier 28 34 82 MemoryBarrier 28 35 83 Return 84 FunctionEnd 85