spv.bufferhandle14.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 46

                              Capability Shader
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_KHR_physical_storage_buffer"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 8  "T1"
                              MemberName 8(T1) 0  "i"
                              MemberName 8(T1) 1  "j"
                              MemberName 8(T1) 2  "k"
                              Name 10  "t1"
                              Name 20  "T2"
                              MemberName 20(T2) 0  "i"
                              MemberName 20(T2) 1  "j"
                              MemberName 20(T2) 2  "k"
                              Name 22  "t2"
                              Name 29  "T3"
                              MemberName 29(T3) 0  "i"
                              MemberName 29(T3) 1  "j"
                              MemberName 29(T3) 2  "k"
                              Name 31  "t3"
                              Name 38  "T4"
                              MemberName 38(T4) 0  "i"
                              MemberName 38(T4) 1  "j"
                              MemberName 38(T4) 2  "k"
                              Name 40  "t4"
                              MemberDecorate 8(T1) 0 Offset 0
                              MemberDecorate 8(T1) 1 Offset 4
                              MemberDecorate 8(T1) 2 Offset 8
                              Decorate 8(T1) Block
                              Decorate 10(t1) DecorationAliasedPointerEXT
                              MemberDecorate 20(T2) 0 Offset 0
                              MemberDecorate 20(T2) 1 Offset 4
                              MemberDecorate 20(T2) 2 Offset 8
                              Decorate 20(T2) Block
                              Decorate 22(t2) DecorationAliasedPointerEXT
                              MemberDecorate 29(T3) 0 Offset 0
                              MemberDecorate 29(T3) 1 Offset 4
                              MemberDecorate 29(T3) 2 Offset 8
                              Decorate 29(T3) Block
                              Decorate 31(t3) DecorationAliasedPointerEXT
                              MemberDecorate 38(T4) 0 Offset 0
                              MemberDecorate 38(T4) 1 Offset 4
                              MemberDecorate 38(T4) 2 Offset 8
                              Decorate 38(T4) Block
                              Decorate 40(t4) DecorationAliasedPointerEXT
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
               7:             TypeInt 32 1
           8(T1):             TypeStruct 7(int) 7(int) 7(int)
               6:             TypePointer PhysicalStorageBufferEXT 8(T1)
               9:             TypePointer Function 6(ptr)
              12:      7(int) Constant 0
              14:      7(int) Constant 2
              15:             TypePointer PhysicalStorageBufferEXT 7(int)
                              TypeForwardPointer 19 PhysicalStorageBufferEXT
          20(T2):             TypeStruct 7(int) 7(int) 7(int)
              19:             TypePointer PhysicalStorageBufferEXT 20(T2)
              21:             TypePointer Function 19(ptr)
                              TypeForwardPointer 28 PhysicalStorageBufferEXT
          29(T3):             TypeStruct 7(int) 7(int) 7(int)
              28:             TypePointer PhysicalStorageBufferEXT 29(T3)
              30:             TypePointer Function 28(ptr)
                              TypeForwardPointer 37 PhysicalStorageBufferEXT
          38(T4):             TypeStruct 7(int) 7(int) 7(int)
              37:             TypePointer PhysicalStorageBufferEXT 38(T4)
              39:             TypePointer Function 37(ptr)
         4(main):           2 Function None 3
               5:             Label
          10(t1):      9(ptr) Variable Function
          22(t2):     21(ptr) Variable Function
          31(t3):     30(ptr) Variable Function
          40(t4):     39(ptr) Variable Function
              11:      6(ptr) Load 10(t1)
              13:      6(ptr) Load 10(t1)
              16:     15(ptr) AccessChain 13 14
              17:      7(int) Load 16 Aligned 4
              18:     15(ptr) AccessChain 11 12
                              Store 18 17 Aligned 4
              23:     19(ptr) Load 22(t2)
              24:     19(ptr) Load 22(t2)
              25:     15(ptr) AccessChain 24 14
              26:      7(int) Load 25 Aligned 8
              27:     15(ptr) AccessChain 23 12
                              Store 27 26 Aligned 8
              32:     28(ptr) Load 31(t3)
              33:     28(ptr) Load 31(t3)
              34:     15(ptr) AccessChain 33 14
              35:      7(int) Load 34 Aligned 8
              36:     15(ptr) AccessChain 32 12
                              Store 36 35 Aligned 16
              41:     37(ptr) Load 40(t4)
              42:     37(ptr) Load 40(t4)
              43:     15(ptr) AccessChain 42 14
              44:      7(int) Load 43 Aligned 8
              45:     15(ptr) AccessChain 41 12
                              Store 45 44 Aligned 32
                              Return
                              FunctionEnd
