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

                              Capability Shader
                              Capability CapabilityPhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_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
