hlsl.structbuffer.incdec.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 70

                              Capability Shader
                              Extension  "SPV_GOOGLE_hlsl_functionality1"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 63 66
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "@main(u1;"
                              Name 11  "pos"
                              Name 16  "result"
                              Name 20  "sbuf_rw_i"
                              MemberName 20(sbuf_rw_i) 0  "@data"
                              Name 22  "sbuf_rw_i"
                              Name 26  "sbuf_rw_d"
                              Name 27  "sbuf_rw_nocounter"
                              Name 33  "c1"
                              Name 34  "sbuf_rw_i@count"
                              MemberName 34(sbuf_rw_i@count) 0  "@count"
                              Name 36  "sbuf_rw_i@count"
                              Name 42  "c2"
                              Name 43  "sbuf_rw_d@count"
                              Name 61  "pos"
                              Name 63  "pos"
                              Name 66  "@entryPointOutput"
                              Name 67  "param"
                              Decorate 19 ArrayStride 16
                              MemberDecorate 20(sbuf_rw_i) 0 Offset 0
                              Decorate 20(sbuf_rw_i) BufferBlock
                              Decorate 22(sbuf_rw_i) DescriptorSet 0
                              Decorate 26(sbuf_rw_d) DescriptorSet 0
                              Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
                              MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
                              Decorate 34(sbuf_rw_i@count) BufferBlock
                              Decorate 36(sbuf_rw_i@count) DescriptorSet 0
                              Decorate 43(sbuf_rw_d@count) DescriptorSet 0
                              Decorate 63(pos) Flat
                              Decorate 63(pos) Location 0
                              DecorateStringGOOGLE 63(pos) DecorationHlslSemanticGOOGLE  "FOO"
                              Decorate 66(@entryPointOutput) Location 0
                              DecorateStringGOOGLE 66(@entryPointOutput) DecorationHlslSemanticGOOGLE  "SV_TARGET0"
                              DecorateId 22(sbuf_rw_i) DecorationHlslCounterBufferGOOGLE 36(sbuf_rw_i@count)
                              DecorateId 26(sbuf_rw_d) DecorationHlslCounterBufferGOOGLE 43(sbuf_rw_d@count)
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypeFunction 9(fvec4) 7(ptr)
              14:             TypeVector 6(int) 4
              15:             TypePointer Function 14(ivec4)
              17:      6(int) Constant 0
              18:   14(ivec4) ConstantComposite 17 17 17 17
              19:             TypeRuntimeArray 14(ivec4)
   20(sbuf_rw_i):             TypeStruct 19
              21:             TypePointer Uniform 20(sbuf_rw_i)
   22(sbuf_rw_i):     21(ptr) Variable Uniform
              23:             TypeInt 32 1
              24:     23(int) Constant 0
              25:     23(int) Constant 7
   26(sbuf_rw_d):     21(ptr) Variable Uniform
27(sbuf_rw_nocounter):     21(ptr) Variable Uniform
              28:     23(int) Constant 5
              29:      6(int) Constant 2
              30:   14(ivec4) ConstantComposite 29 29 29 29
              31:             TypePointer Uniform 14(ivec4)
34(sbuf_rw_i@count):             TypeStruct 23(int)
              35:             TypePointer Uniform 34(sbuf_rw_i@count)
36(sbuf_rw_i@count):     35(ptr) Variable Uniform
              37:             TypePointer Uniform 23(int)
              39:     23(int) Constant 1
              40:      6(int) Constant 1
43(sbuf_rw_d@count):     35(ptr) Variable Uniform
              45:     23(int) Constant 4294967295
              62:             TypePointer Input 6(int)
         63(pos):     62(ptr) Variable Input
              65:             TypePointer Output 9(fvec4)
66(@entryPointOutput):     65(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
         61(pos):      7(ptr) Variable Function
       67(param):      7(ptr) Variable Function
              64:      6(int) Load 63(pos)
                              Store 61(pos) 64
              68:      6(int) Load 61(pos)
                              Store 67(param) 68
              69:    9(fvec4) FunctionCall 12(@main(u1;) 67(param)
                              Store 66(@entryPointOutput) 69
                              Return
                              FunctionEnd
   12(@main(u1;):    9(fvec4) Function None 10
         11(pos):      7(ptr) FunctionParameter
              13:             Label
      16(result):     15(ptr) Variable Function
          33(c1):      7(ptr) Variable Function
          42(c2):      7(ptr) Variable Function
                              Store 16(result) 18
              32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28
                              Store 32 30
              38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24
              41:      6(int) AtomicIAdd 38 40 17 39
                              Store 33(c1) 41
              44:     37(ptr) AccessChain 43(sbuf_rw_d@count) 24
              46:      6(int) AtomicIAdd 44 40 17 45
              47:      6(int) IAdd 46 45
                              Store 42(c2) 47
              48:      7(ptr) AccessChain 16(result) 17
              49:      6(int) Load 48
              50:    8(float) ConvertUToF 49
              51:      7(ptr) AccessChain 16(result) 40
              52:      6(int) Load 51
              53:    8(float) ConvertUToF 52
              54:      6(int) Load 33(c1)
              55:    8(float) ConvertUToF 54
              56:      6(int) Load 42(c2)
              57:    8(float) ConvertUToF 56
              58:    9(fvec4) CompositeConstruct 50 53 55 57
                              ReturnValue 58
                              FunctionEnd
