spv.bufferhandle1.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 52

                              Capability Shader
                              Capability VulkanMemoryModelKHR
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_storage_buffer_storage_class"
                              Extension  "SPV_KHR_vulkan_memory_model"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 7  "t2"
                              MemberName 7(t2) 0  "f"
                              MemberName 7(t2) 1  "g"
                              Name 13  "blockType"
                              MemberName 13(blockType) 0  "a"
                              MemberName 13(blockType) 1  "b"
                              MemberName 13(blockType) 2  "c"
                              MemberName 13(blockType) 3  "d"
                              MemberName 13(blockType) 4  "e"
                              MemberName 13(blockType) 5  "f"
                              MemberName 13(blockType) 6  "g"
                              Name 15  "t"
                              Name 28  "j"
                              MemberDecorate 7(t2) 0 Offset 0
                              MemberDecorate 7(t2) 1 Offset 8
                              Decorate 7(t2) Block
                              Decorate 11 ArrayStride 4
                              MemberDecorate 13(blockType) 0 Offset 0
                              MemberDecorate 13(blockType) 1 Offset 4
                              MemberDecorate 13(blockType) 2 Offset 8
                              MemberDecorate 13(blockType) 3 Offset 12
                              MemberDecorate 13(blockType) 4 Offset 16
                              MemberDecorate 13(blockType) 5 Offset 32
                              MemberDecorate 13(blockType) 6 Offset 48
                              Decorate 13(blockType) Block
                              Decorate 15(t) DescriptorSet 0
                              Decorate 15(t) Binding 0
                              Decorate 28(j) DecorationAliasedPointerEXT
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
           7(t2):             TypeStruct 6 6
               8:             TypeInt 32 1
               9:             TypeInt 32 0
              10:      9(int) Constant 2
              11:             TypeArray 8(int) 10
              12:             TypeVector 8(int) 4
   13(blockType):             TypeStruct 8(int) 8(int) 8(int) 8(int) 8(int) 11 12(ivec4)
               6:             TypePointer PhysicalStorageBufferEXT 13(blockType)
              14:             TypePointer StorageBuffer 7(t2)
           15(t):     14(ptr) Variable StorageBuffer
              16:      8(int) Constant 0
              17:             TypePointer StorageBuffer 6(ptr)
              20:      8(int) Constant 1
              23:             TypePointer PhysicalStorageBufferEXT 8(int)
              27:             TypePointer Function 6(ptr)
              32:      8(int) Constant 3
              34:      8(int) Constant 2
              40:      8(int) Constant 5
              46:      8(int) Constant 6
              47:      9(int) Constant 1
              50:      9(int) Constant 5
         4(main):           2 Function None 3
               5:             Label
           28(j):     27(ptr) Variable Function
              18:     17(ptr) AccessChain 15(t) 16
              19:      6(ptr) Load 18
              21:     17(ptr) AccessChain 15(t) 20
              22:      6(ptr) Load 21
              24:     23(ptr) AccessChain 22 16
              25:      8(int) Load 24 Aligned 16
              26:     23(ptr) AccessChain 19 20
                              Store 26 25 Aligned 4
              29:     17(ptr) AccessChain 15(t) 16
              30:      6(ptr) Load 29
                              Store 28(j) 30
              31:      6(ptr) Load 28(j)
              33:      6(ptr) Load 28(j)
              35:     23(ptr) AccessChain 33 34
              36:      8(int) Load 35 Aligned 8
              37:     23(ptr) AccessChain 31 32
                              Store 37 36 Aligned 4
              38:      6(ptr) Load 28(j)
              39:      6(ptr) Load 28(j)
              41:     23(ptr) AccessChain 39 40 20
              42:      8(int) Load 41 Aligned 4
              43:     23(ptr) AccessChain 38 32
                              Store 43 42 Aligned 4
              44:      6(ptr) Load 28(j)
              45:      6(ptr) Load 28(j)
              48:     23(ptr) AccessChain 45 46 47
              49:      8(int) Load 48 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 4 50
              51:     23(ptr) AccessChain 44 32
                              Store 51 49 Aligned 4
                              Return
                              FunctionEnd
