spv.storageBuffer.vert
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 31

                              Capability Shader
                              Extension  "SPV_KHR_storage_buffer_storage_class"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 13
                              Source GLSL 450
                              Name 4  "main"
                              Name 11  "gl_PerVertex"
                              MemberName 11(gl_PerVertex) 0  "gl_Position"
                              MemberName 11(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 11(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 11(gl_PerVertex) 3  "gl_CullDistance"
                              Name 13  ""
                              Name 16  "ub"
                              MemberName 16(ub) 0  "a"
                              Name 18  "ubi"
                              Name 22  "bb"
                              MemberName 22(bb) 0  "b"
                              Name 24  "bbi"
                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 11(gl_PerVertex) Block
                              MemberDecorate 16(ub) 0 Offset 0
                              Decorate 16(ub) Block
                              Decorate 18(ubi) DescriptorSet 0
                              MemberDecorate 22(bb) 0 Offset 0
                              Decorate 22(bb) Block
                              Decorate 24(bbi) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeInt 32 0
               9:      8(int) Constant 1
              10:             TypeArray 6(float) 9
11(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10 10
              12:             TypePointer Output 11(gl_PerVertex)
              13:     12(ptr) Variable Output
              14:             TypeInt 32 1
              15:     14(int) Constant 0
          16(ub):             TypeStruct 7(fvec4)
              17:             TypePointer Uniform 16(ub)
         18(ubi):     17(ptr) Variable Uniform
              19:             TypePointer Uniform 7(fvec4)
          22(bb):             TypeStruct 7(fvec4)
              23:             TypePointer StorageBuffer 22(bb)
         24(bbi):     23(ptr) Variable StorageBuffer
              25:             TypePointer StorageBuffer 7(fvec4)
              29:             TypePointer Output 7(fvec4)
         4(main):           2 Function None 3
               5:             Label
              20:     19(ptr) AccessChain 18(ubi) 15
              21:    7(fvec4) Load 20
              26:     25(ptr) AccessChain 24(bbi) 15
              27:    7(fvec4) Load 26
              28:    7(fvec4) FAdd 21 27
              30:     29(ptr) AccessChain 13 15
                              Store 30 28
                              Return
                              FunctionEnd
