spv.imageAtomic64.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 28

                              Capability Shader
                              Capability Int64
                              Capability Int64Atomics
                              Capability Int64ImageEXT
                              Extension  "SPV_EXT_shader_image_int64"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 1 1 1
                              Source GLSL 450
                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int64"
                              SourceExtension  "GL_EXT_shader_image_int64"
                              SourceExtension  "GL_KHR_memory_scope_semantics"
                              Name 4  "main"
                              Name 9  "z"
                              Name 14  "ssbo"
                              MemberName 14(ssbo) 0  "y"
                              Name 16  ""
                              Decorate 9(z) DescriptorSet 0
                              Decorate 9(z) Binding 1
                              MemberDecorate 14(ssbo) 0 Offset 0
                              Decorate 14(ssbo) BufferBlock
                              Decorate 16 DescriptorSet 0
                              Decorate 16 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 64 0
               7:             TypeImage 6(int64_t) 2D nonsampled format:R64ui
               8:             TypePointer UniformConstant 7
            9(z):      8(ptr) Variable UniformConstant
              10:             TypeInt 32 1
              11:             TypeVector 10(int) 2
              12:     10(int) Constant 1
              13:   11(ivec2) ConstantComposite 12 12
        14(ssbo):             TypeStruct 6(int64_t)
              15:             TypePointer Uniform 14(ssbo)
              16:     15(ptr) Variable Uniform
              17:     10(int) Constant 0
              18:             TypePointer Uniform 6(int64_t)
              21:     10(int) Constant 2048
              22:             TypeInt 32 0
              23:     22(int) Constant 0
              24:             TypePointer Image 6(int64_t)
              26:     22(int) Constant 1
              27:     22(int) Constant 2048
         4(main):           2 Function None 3
               5:             Label
              19:     18(ptr) AccessChain 16 17
              20:  6(int64_t) Load 19
              25:     24(ptr) ImageTexelPointer 9(z) 13 23
                              AtomicStore 25 12 27 20
                              Return
                              FunctionEnd
