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

                              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" 19
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_EXT_buffer_reference"
                              Name 4  "main"
                              Name 7  "t2"
                              MemberName 7(t2) 0  "f"
                              Name 10  "blockType"
                              MemberName 10(blockType) 0  "x"
                              Name 12  "t"
                              Name 19  "i"
                              Name 28  "b"
                              Name 34  "b2"
                              MemberDecorate 7(t2) 0 Offset 0
                              Decorate 7(t2) Block
                              Decorate 9 ArrayStride 4
                              MemberDecorate 10(blockType) 0 Offset 0
                              Decorate 10(blockType) Block
                              Decorate 12(t) DescriptorSet 0
                              Decorate 12(t) Binding 0
                              Decorate 19(i) Flat
                              Decorate 19(i) Location 0
                              Decorate 28(b) DecorationAliasedPointerEXT
                              Decorate 34(b2) DecorationAliasedPointerEXT
               2:             TypeVoid
               3:             TypeFunction 2
                              TypeForwardPointer 6 PhysicalStorageBufferEXT
           7(t2):             TypeStruct 6
               8:             TypeInt 32 0
               9:             TypeRuntimeArray 8(int)
   10(blockType):             TypeStruct 9
               6:             TypePointer PhysicalStorageBufferEXT 10(blockType)
              11:             TypePointer StorageBuffer 7(t2)
           12(t):     11(ptr) Variable StorageBuffer
              13:             TypeInt 32 1
              14:     13(int) Constant 0
              15:             TypePointer StorageBuffer 6(ptr)
              18:             TypePointer Input 8(int)
           19(i):     18(ptr) Variable Input
              21:             TypePointer PhysicalStorageBufferEXT 8(int)
              23:      8(int) Constant 1
              24:      8(int) Constant 5
              25:      8(int) Constant 0
              27:             TypePointer Function 6(ptr)
              32:      8(int) Constant 2
              38:      8(int) Constant 3
         4(main):           2 Function None 3
               5:             Label
           28(b):     27(ptr) Variable Function
          34(b2):     27(ptr) Variable Function
              16:     15(ptr) AccessChain 12(t) 14
              17:      6(ptr) Load 16
              20:      8(int) Load 19(i)
              22:     21(ptr) AccessChain 17 14 20
              26:      8(int) AtomicIAdd 22 24 25 23
              29:     15(ptr) AccessChain 12(t) 14
              30:      6(ptr) Load 29
                              Store 28(b) 30
              31:      6(ptr) Load 28(b)
              33:     21(ptr) AccessChain 31 14 14
                              Store 33 32 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 4 24
              35:     15(ptr) AccessChain 12(t) 14
              36:      6(ptr) Load 35
                              Store 34(b2) 36 Volatile 
              37:      6(ptr) Load 34(b2) Volatile 
              39:     21(ptr) AccessChain 37 14 14
                              Store 39 38 Volatile Aligned MakePointerAvailableKHR NonPrivatePointerKHR 4 24
                              Return
                              FunctionEnd
