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

                              Capability Shader
                              Capability Int64
                              Capability CapabilityPhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_storage_buffer_storage_class"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
                              EntryPoint Fragment 4  "main" 16 19
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 8  "blockType"
                              MemberName 8(blockType) 0  "a"
                              MemberName 8(blockType) 1  "b"
                              MemberName 8(blockType) 2  "c"
                              MemberName 8(blockType) 3  "d"
                              MemberName 8(blockType) 4  "e"
                              Name 13  "b1"
                              Name 16  "h"
                              Name 19  "i"
                              Name 34  "b2"
                              Name 37  "b3"
                              Name 46  "j"
                              Name 53  "t2"
                              MemberName 53(t2) 0  "f"
                              MemberName 53(t2) 1  "g"
                              Name 55  "t"
                              MemberDecorate 8(blockType) 0 Offset 0
                              MemberDecorate 8(blockType) 1 Offset 4
                              MemberDecorate 8(blockType) 2 Offset 8
                              MemberDecorate 8(blockType) 3 Offset 12
                              MemberDecorate 8(blockType) 4 Offset 16
                              Decorate 8(blockType) Block
                              Decorate 13(b1) DecorationAliasedPointerEXT
                              Decorate 16(h) Flat
                              Decorate 19(i) Flat
                              Decorate 34(b2) DecorationAliasedPointerEXT
                              Decorate 37(b3) DecorationAliasedPointerEXT
                              MemberDecorate 53(t2) 0 Offset 0
                              MemberDecorate 53(t2) 1 Offset 8
                              Decorate 53(t2) Block
                              Decorate 55(t) DescriptorSet 0
                              Decorate 55(t) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
               7:             TypeInt 32 1
    8(blockType):             TypeStruct 7(int) 7(int) 7(int) 7(int) 7(int)
               6:             TypePointer PhysicalStorageBufferEXT 8(blockType)
               9:             TypeInt 32 0
              10:      9(int) Constant 2
              11:             TypeArray 6(ptr) 10
              12:             TypePointer Function 11
              14:             TypeInt 64 0
              15:             TypePointer Input 14(int64_t)
           16(h):     15(ptr) Variable Input
           19(i):     15(ptr) Variable Input
              23:      7(int) Constant 0
              24:             TypePointer Function 6(ptr)
              27:      7(int) Constant 1
              30:             TypePointer PhysicalStorageBufferEXT 7(int)
              45:             TypePointer Function 14(int64_t)
              50: 14(int64_t) Constant 256 0
          53(t2):             TypeStruct 6(ptr) 6(ptr)
              54:             TypePointer StorageBuffer 53(t2)
           55(t):     54(ptr) Variable StorageBuffer
         4(main):           2 Function None 3
               5:             Label
          13(b1):     12(ptr) Variable Function
          34(b2):     24(ptr) Variable Function
          37(b3):     24(ptr) Variable Function
           46(j):     45(ptr) Variable Function
              17: 14(int64_t) Load 16(h)
              18:      6(ptr) ConvertUToPtr 17
              20: 14(int64_t) Load 19(i)
              21:      6(ptr) ConvertUToPtr 20
              22:          11 CompositeConstruct 18 21
                              Store 13(b1) 22
              25:     24(ptr) AccessChain 13(b1) 23
              26:      6(ptr) Load 25
              28:     24(ptr) AccessChain 13(b1) 27
              29:      6(ptr) Load 28
              31:     30(ptr) AccessChain 29 27
              32:      7(int) Load 31 Aligned 4
              33:     30(ptr) AccessChain 26 23
                              Store 33 32 Aligned 16
              35: 14(int64_t) Load 16(h)
              36:      6(ptr) ConvertUToPtr 35
                              Store 34(b2) 36
              38: 14(int64_t) Load 19(i)
              39:      6(ptr) ConvertUToPtr 38
                              Store 37(b3) 39
              40:      6(ptr) Load 34(b2)
              41:      6(ptr) Load 37(b3)
              42:     30(ptr) AccessChain 41 27
              43:      7(int) Load 42 Aligned 4
              44:     30(ptr) AccessChain 40 23
                              Store 44 43 Aligned 16
              47:      6(ptr) Load 34(b2)
              48: 14(int64_t) ConvertPtrToU 47
                              Store 46(j) 48
              49: 14(int64_t) Load 46(j)
              51: 14(int64_t) IAdd 49 50
              52:      6(ptr) ConvertUToPtr 51
                              Store 34(b2) 52
                              Return
                              FunctionEnd
