spv.atomicAdd.bufferReference.comp
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 188

                              Capability Shader
                              Capability VulkanMemoryModelKHR
                              Capability VulkanMemoryModelDeviceScopeKHR
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_KHR_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 GLCompute 4  "main" 37 81 133
                              ExecutionMode 4 LocalSize 1 1 1
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_EXT_buffer_reference"
                              SourceExtension  "GL_KHR_memory_scope_semantics"
                              SourceExtension  "GL_KHR_shader_subgroup_ballot"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_KHR_shader_subgroup_shuffle"
                              Name 4  "main"
                              Name 8  "pass"
                              Name 10  "skip"
                              Name 13  "sharedSkip"
                              Name 18  "PayloadRef"
                              MemberName 18(PayloadRef) 0  "x"
                              Name 20  "payload"
                              Name 22  "PC"
                              MemberName 22(PC) 0  "payloadref"
                              MemberName 22(PC) 1  "guard"
                              Name 24  "GuardRef"
                              MemberName 24(GuardRef) 0  "x"
                              Name 26  ""
                              Name 34  "globalId"
                              Name 37  "gl_GlobalInvocationID"
                              Name 42  "partnerGlobalId"
                              Name 43  "DIM"
                              Name 44  "NUM_WORKGROUP_EACH_DIM"
                              Name 54  "bufferCoord"
                              Name 66  "partnerBufferCoord"
                              Name 75  "imageCoord"
                              Name 77  "partnerImageCoord"
                              Name 79  "globalId00"
                              Name 81  "gl_WorkGroupID"
                              Name 86  "partnerGlobalId00"
                              Name 95  "bufferCoord00"
                              Name 104  "partnerBufferCoord00"
                              Name 113  "imageCoord00"
                              Name 115  "partnerImageCoord00"
                              Name 133  "gl_LocalInvocationID"
                              Name 163  "r"
                              Name 179  "Fail"
                              MemberName 179(Fail) 0  "x"
                              Name 181  "fail"
                              Decorate 17 ArrayStride 4
                              MemberDecorate 18(PayloadRef) 0 Offset 0
                              Decorate 18(PayloadRef) Block
                              Decorate 20(payload) DecorationAliasedPointerEXT
                              MemberDecorate 22(PC) 0 Offset 0
                              MemberDecorate 22(PC) 1 Offset 8
                              Decorate 22(PC) Block
                              Decorate 23 ArrayStride 4
                              MemberDecorate 24(GuardRef) 0 Offset 0
                              Decorate 24(GuardRef) Block
                              Decorate 37(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
                              Decorate 43(DIM) SpecId 0
                              Decorate 44(NUM_WORKGROUP_EACH_DIM) SpecId 1
                              Decorate 81(gl_WorkGroupID) BuiltIn WorkgroupId
                              Decorate 133(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 178 ArrayStride 4
                              MemberDecorate 179(Fail) 0 Offset 0
                              Decorate 179(Fail) Block
                              Decorate 181(fail) DescriptorSet 0
                              Decorate 181(fail) Binding 2
                              Decorate 185 SpecId 0
                              Decorate 186 SpecId 0
                              Decorate 187 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeBool
               7:             TypePointer Function 6(bool)
               9:     6(bool) ConstantTrue
              11:     6(bool) ConstantFalse
              12:             TypePointer Workgroup 6(bool)
  13(sharedSkip):     12(ptr) Variable Workgroup
              14:             TypeInt 32 0
              15:     14(int) Constant 2
                              TypeForwardPointer 16 PhysicalStorageBufferEXT
              17:             TypeRuntimeArray 14(int)
  18(PayloadRef):             TypeStruct 17
              16:             TypePointer PhysicalStorageBufferEXT 18(PayloadRef)
              19:             TypePointer Function 16(ptr)
                              TypeForwardPointer 21 PhysicalStorageBufferEXT
          22(PC):             TypeStruct 16(ptr) 21
              23:             TypeRuntimeArray 14(int)
    24(GuardRef):             TypeStruct 23
              21:             TypePointer PhysicalStorageBufferEXT 24(GuardRef)
              25:             TypePointer PushConstant 22(PC)
              26:     25(ptr) Variable PushConstant
              27:             TypeInt 32 1
              28:     27(int) Constant 0
              29:             TypePointer PushConstant 16(ptr)
              32:             TypeVector 27(int) 2
              33:             TypePointer Function 32(ivec2)
              35:             TypeVector 14(int) 3
              36:             TypePointer Input 35(ivec3)
37(gl_GlobalInvocationID):     36(ptr) Variable Input
              38:             TypeVector 14(int) 2
         43(DIM):     27(int) SpecConstant 1
44(NUM_WORKGROUP_EACH_DIM):     27(int) SpecConstant 1
              45:     27(int) SpecConstantOp 132 43(DIM) 44(NUM_WORKGROUP_EACH_DIM)
              46:     27(int) Constant 1
              47:     27(int) SpecConstantOp 130 45 46
              48:   32(ivec2) SpecConstantComposite 47 47
              53:             TypePointer Function 14(int)
              55:     14(int) Constant 1
              56:             TypePointer Function 27(int)
              61:     14(int) Constant 0
              80:   32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
81(gl_WorkGroupID):     36(ptr) Variable Input
              87:   32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
              88:     27(int) SpecConstantOp 130 44(NUM_WORKGROUP_EACH_DIM) 46
              89:   32(ivec2) SpecConstantComposite 88 88
             122:             TypePointer PhysicalStorageBufferEXT 14(int)
             125:     27(int) Constant 31
             129:     27(int) Constant 2
             130:     27(int) Constant 320
             131:     27(int) Constant 8200
             132:     14(int) Constant 8520
133(gl_LocalInvocationID):     36(ptr) Variable Input
             136:   38(ivec2) ConstantComposite 61 61
             137:             TypeVector 6(bool) 2
             142:             TypePointer PushConstant 21(ptr)
             147:     27(int) Constant 64
             148:     27(int) Constant 8196
             149:     14(int) Constant 5
             150:     14(int) Constant 8260
             155:     27(int) Constant 16386
             156:     14(int) Constant 16450
             160:     27(int) Constant 16392
             161:     14(int) Constant 16712
             178:             TypeRuntimeArray 14(int)
       179(Fail):             TypeStruct 178
             180:             TypePointer StorageBuffer 179(Fail)
       181(fail):    180(ptr) Variable StorageBuffer
             183:             TypePointer StorageBuffer 14(int)
             185:     14(int) SpecConstant 1
             186:     14(int) SpecConstant 1
             187:   35(ivec3) SpecConstantComposite 185 186 55
         4(main):           2 Function None 3
               5:             Label
         8(pass):      7(ptr) Variable Function
        10(skip):      7(ptr) Variable Function
     20(payload):     19(ptr) Variable Function
    34(globalId):     33(ptr) Variable Function
42(partnerGlobalId):     33(ptr) Variable Function
 54(bufferCoord):     53(ptr) Variable Function
66(partnerBufferCoord):     53(ptr) Variable Function
  75(imageCoord):     33(ptr) Variable Function
77(partnerImageCoord):     33(ptr) Variable Function
  79(globalId00):     33(ptr) Variable Function
86(partnerGlobalId00):     33(ptr) Variable Function
95(bufferCoord00):     53(ptr) Variable Function
104(partnerBufferCoord00):     53(ptr) Variable Function
113(imageCoord00):     33(ptr) Variable Function
115(partnerImageCoord00):     33(ptr) Variable Function
          163(r):     53(ptr) Variable Function
                              Store 8(pass) 9
                              Store 10(skip) 11
                              Store 13(sharedSkip) 11 MakePointerAvailableKHR NonPrivatePointerKHR 15
              30:     29(ptr) AccessChain 26 28
              31:     16(ptr) Load 30
                              Store 20(payload) 31
              39:   35(ivec3) Load 37(gl_GlobalInvocationID)
              40:   38(ivec2) VectorShuffle 39 39 0 1
              41:   32(ivec2) Bitcast 40
                              Store 34(globalId) 41
              49:   35(ivec3) Load 37(gl_GlobalInvocationID)
              50:   38(ivec2) VectorShuffle 49 49 0 1
              51:   32(ivec2) Bitcast 50
              52:   32(ivec2) ISub 48 51
                              Store 42(partnerGlobalId) 52
              57:     56(ptr) AccessChain 34(globalId) 55
              58:     27(int) Load 57
              59:     27(int) IMul 58 43(DIM)
              60:     27(int) IMul 59 44(NUM_WORKGROUP_EACH_DIM)
              62:     56(ptr) AccessChain 34(globalId) 61
              63:     27(int) Load 62
              64:     27(int) IAdd 60 63
              65:     14(int) Bitcast 64
                              Store 54(bufferCoord) 65
              67:     56(ptr) AccessChain 42(partnerGlobalId) 55
              68:     27(int) Load 67
              69:     27(int) IMul 68 43(DIM)
              70:     27(int) IMul 69 44(NUM_WORKGROUP_EACH_DIM)
              71:     56(ptr) AccessChain 42(partnerGlobalId) 61
              72:     27(int) Load 71
              73:     27(int) IAdd 70 72
              74:     14(int) Bitcast 73
                              Store 66(partnerBufferCoord) 74
              76:   32(ivec2) Load 34(globalId)
                              Store 75(imageCoord) 76
              78:   32(ivec2) Load 42(partnerGlobalId)
                              Store 77(partnerImageCoord) 78
              82:   35(ivec3) Load 81(gl_WorkGroupID)
              83:   38(ivec2) VectorShuffle 82 82 0 1
              84:   32(ivec2) Bitcast 83
              85:   32(ivec2) IMul 80 84
                              Store 79(globalId00) 85
              90:   35(ivec3) Load 81(gl_WorkGroupID)
              91:   38(ivec2) VectorShuffle 90 90 0 1
              92:   32(ivec2) Bitcast 91
              93:   32(ivec2) ISub 89 92
              94:   32(ivec2) IMul 87 93
                              Store 86(partnerGlobalId00) 94
              96:     56(ptr) AccessChain 79(globalId00) 55
              97:     27(int) Load 96
              98:     27(int) IMul 97 43(DIM)
              99:     27(int) IMul 98 44(NUM_WORKGROUP_EACH_DIM)
             100:     56(ptr) AccessChain 79(globalId00) 61
             101:     27(int) Load 100
             102:     27(int) IAdd 99 101
             103:     14(int) Bitcast 102
                              Store 95(bufferCoord00) 103
             105:     56(ptr) AccessChain 86(partnerGlobalId00) 55
             106:     27(int) Load 105
             107:     27(int) IMul 106 43(DIM)
             108:     27(int) IMul 107 44(NUM_WORKGROUP_EACH_DIM)
             109:     56(ptr) AccessChain 86(partnerGlobalId00) 61
             110:     27(int) Load 109
             111:     27(int) IAdd 108 110
             112:     14(int) Bitcast 111
                              Store 104(partnerBufferCoord00) 112
             114:   32(ivec2) Load 79(globalId00)
                              Store 113(imageCoord00) 114
             116:   32(ivec2) Load 86(partnerGlobalId00)
                              Store 115(partnerImageCoord00) 116
             117:     16(ptr) Load 20(payload)
             118:     14(int) Load 54(bufferCoord)
             119:     14(int) Load 54(bufferCoord)
             120:     16(ptr) Load 20(payload)
             121:     14(int) Load 66(partnerBufferCoord)
             123:    122(ptr) AccessChain 120 28 121
             124:     14(int) Load 123 Aligned NonPrivatePointerKHR 4
             126:     14(int) ShiftRightLogical 124 125
             127:     14(int) IAdd 119 126
             128:    122(ptr) AccessChain 117 28 118
                              Store 128 127 Aligned NonPrivatePointerKHR 4
                              ControlBarrier 15 15 132
             134:   35(ivec3) Load 133(gl_LocalInvocationID)
             135:   38(ivec2) VectorShuffle 134 134 0 1
             138:  137(bvec2) IEqual 135 136
             139:     6(bool) All 138
                              SelectionMerge 141 None
                              BranchConditional 139 140 141
             140:               Label
             143:    142(ptr)   AccessChain 26 46
             144:     21(ptr)   Load 143
             145:     14(int)   Load 54(bufferCoord)
             146:    122(ptr)   AccessChain 144 28 145
                                AtomicStore 146 46 150 55
             151:    142(ptr)   AccessChain 26 46
             152:     21(ptr)   Load 151
             153:     14(int)   Load 104(partnerBufferCoord00)
             154:    122(ptr)   AccessChain 152 28 153
             157:     14(int)   AtomicLoad 154 46 156
             158:     6(bool)   IEqual 157 61
                                Store 10(skip) 158
             159:     6(bool)   Load 10(skip)
                                Store 13(sharedSkip) 159 MakePointerAvailableKHR NonPrivatePointerKHR 15
                                Branch 141
             141:             Label
                              ControlBarrier 15 15 161
             162:     6(bool) Load 13(sharedSkip) MakePointerVisibleKHR NonPrivatePointerKHR 15
                              Store 10(skip) 162
             164:     16(ptr) Load 20(payload)
             165:     14(int) Load 66(partnerBufferCoord)
             166:    122(ptr) AccessChain 164 28 165
             167:     14(int) Load 166 Aligned NonPrivatePointerKHR 4
                              Store 163(r) 167
             168:     6(bool) Load 10(skip)
             169:     6(bool) LogicalNot 168
                              SelectionMerge 171 None
                              BranchConditional 169 170 171
             170:               Label
             172:     14(int)   Load 163(r)
             173:     14(int)   Load 66(partnerBufferCoord)
             174:     6(bool)   INotEqual 172 173
                                Branch 171
             171:             Label
             175:     6(bool) Phi 169 141 174 170
                              SelectionMerge 177 None
                              BranchConditional 175 176 177
             176:               Label
             182:     14(int)   Load 54(bufferCoord)
             184:    183(ptr)   AccessChain 181(fail) 28 182
                                Store 184 55
                                Branch 177
             177:             Label
                              Return
                              FunctionEnd
