spv.bufferhandle9.frag
// Module Version 10000
// Generated by (magic number): 80008
// 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 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
