spv.atomicInt64.comp
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 149

                              Capability Shader
                              Capability Int64
                              Capability Int64Atomics
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 16 16 1
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_NV_shader_atomic_int64"
                              Name 4  "main"
                              Name 8  "i64"
                              Name 12  "u64"
                              Name 14  "Buffer"
                              MemberName 14(Buffer) 0  "i64"
                              MemberName 14(Buffer) 1  "u64"
                              Name 16  "buf"
                              Name 84  "Struct"
                              MemberName 84(Struct) 0  "i64"
                              MemberName 84(Struct) 1  "u64"
                              Name 86  "s"
                              MemberDecorate 14(Buffer) 0 Offset 0
                              MemberDecorate 14(Buffer) 1 Offset 8
                              Decorate 14(Buffer) BufferBlock
                              Decorate 16(buf) DescriptorSet 0
                              Decorate 16(buf) Binding 0
                              Decorate 148 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 64 1
               7:             TypePointer Function 6(int64_t)
               9:  6(int64_t) Constant 0 0
              10:             TypeInt 64 0
              11:             TypePointer Function 10(int64_t)
              13: 10(int64_t) Constant 0 0
      14(Buffer):             TypeStruct 6(int64_t) 10(int64_t)
              15:             TypePointer Uniform 14(Buffer)
         16(buf):     15(ptr) Variable Uniform
              17:             TypeInt 32 1
              18:     17(int) Constant 0
              19:             TypePointer Uniform 6(int64_t)
              21:  6(int64_t) Constant 4294967272 4294967295
              22:             TypeInt 32 0
              23:     22(int) Constant 1
              24:     22(int) Constant 0
              28:     17(int) Constant 1
              29:             TypePointer Uniform 10(int64_t)
              31: 10(int64_t) Constant 15 240
      84(Struct):             TypeStruct 6(int64_t) 10(int64_t)
              85:             TypePointer Workgroup 84(Struct)
           86(s):     85(ptr) Variable Workgroup
              87:             TypePointer Workgroup 6(int64_t)
              92:             TypePointer Workgroup 10(int64_t)
             146:             TypeVector 22(int) 3
             147:     22(int) Constant 16
             148:  146(ivec3) ConstantComposite 147 147 23
         4(main):           2 Function None 3
               5:             Label
          8(i64):      7(ptr) Variable Function
         12(u64):     11(ptr) Variable Function
                              Store 8(i64) 9
                              Store 12(u64) 13
              20:     19(ptr) AccessChain 16(buf) 18
              25:  6(int64_t) AtomicSMin 20 23 24 21
              26:  6(int64_t) Load 8(i64)
              27:  6(int64_t) IAdd 26 25
                              Store 8(i64) 27
              30:     29(ptr) AccessChain 16(buf) 28
              32: 10(int64_t) AtomicUMin 30 23 24 31
              33: 10(int64_t) Load 12(u64)
              34: 10(int64_t) IAdd 33 32
                              Store 12(u64) 34
              35:     19(ptr) AccessChain 16(buf) 18
              36:  6(int64_t) AtomicSMax 35 23 24 21
              37:  6(int64_t) Load 8(i64)
              38:  6(int64_t) IAdd 37 36
                              Store 8(i64) 38
              39:     29(ptr) AccessChain 16(buf) 28
              40: 10(int64_t) AtomicUMax 39 23 24 31
              41: 10(int64_t) Load 12(u64)
              42: 10(int64_t) IAdd 41 40
                              Store 12(u64) 42
              43:     19(ptr) AccessChain 16(buf) 18
              44:  6(int64_t) AtomicAnd 43 23 24 21
              45:  6(int64_t) Load 8(i64)
              46:  6(int64_t) IAdd 45 44
                              Store 8(i64) 46
              47:     29(ptr) AccessChain 16(buf) 28
              48: 10(int64_t) AtomicAnd 47 23 24 31
              49: 10(int64_t) Load 12(u64)
              50: 10(int64_t) IAdd 49 48
                              Store 12(u64) 50
              51:     19(ptr) AccessChain 16(buf) 18
              52:  6(int64_t) AtomicOr 51 23 24 21
              53:  6(int64_t) Load 8(i64)
              54:  6(int64_t) IAdd 53 52
                              Store 8(i64) 54
              55:     29(ptr) AccessChain 16(buf) 28
              56: 10(int64_t) AtomicOr 55 23 24 31
              57: 10(int64_t) Load 12(u64)
              58: 10(int64_t) IAdd 57 56
                              Store 12(u64) 58
              59:     19(ptr) AccessChain 16(buf) 18
              60:  6(int64_t) AtomicXor 59 23 24 21
              61:  6(int64_t) Load 8(i64)
              62:  6(int64_t) IAdd 61 60
                              Store 8(i64) 62
              63:     29(ptr) AccessChain 16(buf) 28
              64: 10(int64_t) AtomicXor 63 23 24 31
              65: 10(int64_t) Load 12(u64)
              66: 10(int64_t) IAdd 65 64
                              Store 12(u64) 66
              67:     19(ptr) AccessChain 16(buf) 18
              68:  6(int64_t) AtomicIAdd 67 23 24 21
              69:  6(int64_t) Load 8(i64)
              70:  6(int64_t) IAdd 69 68
                              Store 8(i64) 70
              71:     19(ptr) AccessChain 16(buf) 18
              72:  6(int64_t) AtomicExchange 71 23 24 21
              73:  6(int64_t) Load 8(i64)
              74:  6(int64_t) IAdd 73 72
                              Store 8(i64) 74
              75:     19(ptr) AccessChain 16(buf) 18
              76:  6(int64_t) Load 8(i64)
              77:  6(int64_t) AtomicCompareExchange 75 23 24 24 76 21
              78:  6(int64_t) Load 8(i64)
              79:  6(int64_t) IAdd 78 77
                              Store 8(i64) 79
              80:  6(int64_t) Load 8(i64)
              81:     19(ptr) AccessChain 16(buf) 18
                              Store 81 80
              82: 10(int64_t) Load 12(u64)
              83:     29(ptr) AccessChain 16(buf) 28
                              Store 83 82
                              Store 8(i64) 9
                              Store 12(u64) 13
              88:     87(ptr) AccessChain 86(s) 18
              89:  6(int64_t) AtomicSMin 88 23 24 21
              90:  6(int64_t) Load 8(i64)
              91:  6(int64_t) IAdd 90 89
                              Store 8(i64) 91
              93:     92(ptr) AccessChain 86(s) 28
              94: 10(int64_t) AtomicUMin 93 23 24 31
              95: 10(int64_t) Load 12(u64)
              96: 10(int64_t) IAdd 95 94
                              Store 12(u64) 96
              97:     87(ptr) AccessChain 86(s) 18
              98:  6(int64_t) AtomicSMax 97 23 24 21
              99:  6(int64_t) Load 8(i64)
             100:  6(int64_t) IAdd 99 98
                              Store 8(i64) 100
             101:     92(ptr) AccessChain 86(s) 28
             102: 10(int64_t) AtomicUMax 101 23 24 31
             103: 10(int64_t) Load 12(u64)
             104: 10(int64_t) IAdd 103 102
                              Store 12(u64) 104
             105:     87(ptr) AccessChain 86(s) 18
             106:  6(int64_t) AtomicAnd 105 23 24 21
             107:  6(int64_t) Load 8(i64)
             108:  6(int64_t) IAdd 107 106
                              Store 8(i64) 108
             109:     92(ptr) AccessChain 86(s) 28
             110: 10(int64_t) AtomicAnd 109 23 24 31
             111: 10(int64_t) Load 12(u64)
             112: 10(int64_t) IAdd 111 110
                              Store 12(u64) 112
             113:     87(ptr) AccessChain 86(s) 18
             114:  6(int64_t) AtomicOr 113 23 24 21
             115:  6(int64_t) Load 8(i64)
             116:  6(int64_t) IAdd 115 114
                              Store 8(i64) 116
             117:     92(ptr) AccessChain 86(s) 28
             118: 10(int64_t) AtomicOr 117 23 24 31
             119: 10(int64_t) Load 12(u64)
             120: 10(int64_t) IAdd 119 118
                              Store 12(u64) 120
             121:     87(ptr) AccessChain 86(s) 18
             122:  6(int64_t) AtomicXor 121 23 24 21
             123:  6(int64_t) Load 8(i64)
             124:  6(int64_t) IAdd 123 122
                              Store 8(i64) 124
             125:     92(ptr) AccessChain 86(s) 28
             126: 10(int64_t) AtomicXor 125 23 24 31
             127: 10(int64_t) Load 12(u64)
             128: 10(int64_t) IAdd 127 126
                              Store 12(u64) 128
             129:     87(ptr) AccessChain 86(s) 18
             130:  6(int64_t) AtomicIAdd 129 23 24 21
             131:  6(int64_t) Load 8(i64)
             132:  6(int64_t) IAdd 131 130
                              Store 8(i64) 132
             133:     87(ptr) AccessChain 86(s) 18
             134:  6(int64_t) AtomicExchange 133 23 24 21
             135:  6(int64_t) Load 8(i64)
             136:  6(int64_t) IAdd 135 134
                              Store 8(i64) 136
             137:     87(ptr) AccessChain 86(s) 18
             138:  6(int64_t) Load 8(i64)
             139:  6(int64_t) AtomicCompareExchange 137 23 24 24 138 21
             140:  6(int64_t) Load 8(i64)
             141:  6(int64_t) IAdd 140 139
                              Store 8(i64) 141
             142:  6(int64_t) Load 8(i64)
             143:     87(ptr) AccessChain 86(s) 18
                              Store 143 142
             144: 10(int64_t) Load 12(u64)
             145:     92(ptr) AccessChain 86(s) 28
                              Store 145 144
                              Return
                              FunctionEnd
