hlsl.noSemantic.functionality1.comp
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 30

                              Capability Shader
                              Extension  "SPV_GOOGLE_hlsl_functionality1"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 1 1 1
                              Source HLSL 500
                              Name 4  "main"
                              Name 6  "@main("
                              Name 11  "Buf"
                              MemberName 11(Buf) 0  "@data"
                              Name 13  "Buf"
                              Name 17  "Buf@count"
                              MemberName 17(Buf@count) 0  "@count"
                              Name 19  "Buf@count"
                              Decorate 10 ArrayStride 16
                              MemberDecorate 11(Buf) 0 Offset 0
                              Decorate 11(Buf) BufferBlock
                              Decorate 13(Buf) DescriptorSet 0
                              Decorate 13(Buf) Binding 0
                              MemberDecorate 17(Buf@count) 0 Offset 0
                              Decorate 17(Buf@count) BufferBlock
                              Decorate 19(Buf@count) DescriptorSet 0
                              Decorate 19(Buf@count) Binding 0
                              DecorateId 13(Buf) DecorationHlslCounterBufferGOOGLE 19(Buf@count)
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypeRuntimeArray 9(fvec4)
         11(Buf):             TypeStruct 10
              12:             TypePointer Uniform 11(Buf)
         13(Buf):     12(ptr) Variable Uniform
              14:             TypeInt 32 1
              15:     14(int) Constant 0
              16:             TypeInt 32 0
   17(Buf@count):             TypeStruct 16(int)
              18:             TypePointer Uniform 17(Buf@count)
   19(Buf@count):     18(ptr) Variable Uniform
              20:             TypePointer Uniform 16(int)
              22:     16(int) Constant 1
              23:     16(int) Constant 0
              25:    8(float) Constant 1065353216
              26:    9(fvec4) ConstantComposite 25 25 25 25
              27:             TypePointer Uniform 9(fvec4)
         4(main):           2 Function None 3
               5:             Label
              29:           2 FunctionCall 6(@main()
                              Return
                              FunctionEnd
       6(@main():           2 Function None 3
               7:             Label
              21:     20(ptr) AccessChain 19(Buf@count) 15
              24:     16(int) AtomicIAdd 21 22 23 22
              28:     27(ptr) AccessChain 13(Buf) 15 24
                              Store 28 26
                              Return
                              FunctionEnd
