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

                              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  "t4"
                              MemberName 8(t4) 0  "j"
                              MemberName 8(t4) 1  "k"
                              Name 9  "t3"
                              MemberName 9(t3) 0  "h"
                              Name 11  "x"
                              MemberDecorate 8(t4) 0 Offset 0
                              MemberDecorate 8(t4) 1 Offset 8
                              Decorate 8(t4) Block
                              MemberDecorate 9(t3) 0 Offset 0
                              Decorate 9(t3) Block
                              Decorate 11(x) DescriptorSet 1
                              Decorate 11(x) Binding 2
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
                              TypeForwardPointer 7 PhysicalStorageBufferEXT
           8(t4):             TypeStruct 6(int) 7
           9(t3):             TypeStruct 6(int)
               7:             TypePointer PhysicalStorageBufferEXT 9(t3)
              10:             TypePointer Uniform 8(t4)
           11(x):     10(ptr) Variable Uniform
              12:      6(int) Constant 1
              13:             TypePointer Uniform 7(ptr)
              16:      6(int) Constant 0
              17:             TypePointer Uniform 6(int)
              20:             TypePointer PhysicalStorageBufferEXT 6(int)
         4(main):           2 Function None 3
               5:             Label
              14:     13(ptr) AccessChain 11(x) 12
              15:      7(ptr) Load 14
              18:     17(ptr) AccessChain 11(x) 16
              19:      6(int) Load 18
              21:     20(ptr) AccessChain 15 16
                              Store 21 19 Aligned 16
                              Return
                              FunctionEnd
