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

                              Capability Shader
                              Capability Int64
                              Capability PhysicalStorageBufferAddressesEXT
                              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 16(h) Location 0
                              Decorate 19(i) Flat
                              Decorate 19(i) Location 1
                              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
