spv.memoryScopeSemantics.comp
// Module Version 10300
// Generated by (magic number): 8000a
// Id's are bound by 169

                              Capability Shader
                              Capability Int64
                              Capability Int64Atomics
                              Capability StorageImageMultisample
                              Capability VulkanMemoryModelKHR
                              Capability VulkanMemoryModelDeviceScopeKHR
                              Extension  "SPV_KHR_vulkan_memory_model"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical VulkanKHR
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 1 1 1
                              Source GLSL 450
                              SourceExtension  "GL_ARB_gpu_shader_int64"
                              SourceExtension  "GL_KHR_memory_scope_semantics"
                              Name 4  "main"
                              Name 8  "origi"
                              Name 10  "atomi"
                              Name 21  "origu"
                              Name 23  "atomu"
                              Name 24  "value"
                              Name 36  "imagei"
                              Name 46  "imageu"
                              Name 66  "BufferU"
                              MemberName 66(BufferU) 0  "x"
                              Name 68  "bufferu"
                              Name 73  "y"
                              Name 78  "BufferI"
                              MemberName 78(BufferI) 0  "x"
                              Name 80  "bufferi"
                              Name 84  "A"
                              MemberName 84(A) 0  "x"
                              Name 85  "BufferJ"
                              MemberName 85(BufferJ) 0  "a"
                              Name 88  "bufferj"
                              Name 99  "BufferK"
                              MemberName 99(BufferK) 0  "x"
                              Name 101  "bufferk"
                              Name 111  "imagej"
                              Name 123  "samp"
                              Name 134  "atomu64"
                              Name 139  "atomi64"
                              Name 144  "BufferL"
                              MemberName 144(BufferL) 0  "x"
                              Name 146  "bufferl"
                              Name 151  "BufferM"
                              MemberName 151(BufferM) 0  "x"
                              Name 153  "bufferm"
                              Name 165  "imageMS"
                              Decorate 36(imagei) DescriptorSet 0
                              Decorate 36(imagei) Binding 1
                              Decorate 46(imageu) DescriptorSet 0
                              Decorate 46(imageu) Binding 0
                              MemberDecorate 66(BufferU) 0 Offset 0
                              Decorate 66(BufferU) Block
                              Decorate 68(bufferu) DescriptorSet 0
                              Decorate 68(bufferu) Binding 2
                              MemberDecorate 78(BufferI) 0 Offset 0
                              Decorate 78(BufferI) Block
                              Decorate 80(bufferi) DescriptorSet 0
                              Decorate 80(bufferi) Binding 3
                              Decorate 83 ArrayStride 4
                              MemberDecorate 84(A) 0 Offset 0
                              MemberDecorate 85(BufferJ) 0 Offset 0
                              Decorate 85(BufferJ) Block
                              Decorate 88(bufferj) DescriptorSet 0
                              Decorate 88(bufferj) Binding 4
                              MemberDecorate 99(BufferK) 0 Offset 0
                              Decorate 99(BufferK) Block
                              Decorate 101(bufferk) DescriptorSet 0
                              Decorate 101(bufferk) Binding 7
                              Decorate 111(imagej) DescriptorSet 0
                              Decorate 111(imagej) Binding 5
                              Decorate 123(samp) DescriptorSet 0
                              Decorate 123(samp) Binding 6
                              MemberDecorate 144(BufferL) 0 Offset 0
                              Decorate 144(BufferL) Block
                              Decorate 146(bufferl) DescriptorSet 0
                              Decorate 146(bufferl) Binding 8
                              MemberDecorate 151(BufferM) 0 Offset 0
                              Decorate 151(BufferM) Block
                              Decorate 153(bufferm) DescriptorSet 0
                              Decorate 153(bufferm) Binding 9
                              Decorate 165(imageMS) DescriptorSet 0
                              Decorate 165(imageMS) Binding 10
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:             TypePointer Workgroup 6(int)
       10(atomi):      9(ptr) Variable Workgroup
              11:      6(int) Constant 3
              12:      6(int) Constant 1
              13:      6(int) Constant 320
              14:      6(int) Constant 4
              15:             TypeInt 32 0
              16:     15(int) Constant 5
              17:     15(int) Constant 0
              18:     15(int) Constant 324
              20:             TypePointer Function 15(int)
              22:             TypePointer Workgroup 15(int)
       23(atomu):     22(ptr) Variable Workgroup
       24(value):     22(ptr) Variable Workgroup
              26:     15(int) Constant 2
              28:      6(int) Constant 64
              29:      6(int) Constant 2
              30:     15(int) Constant 66
              33:     15(int) Constant 68
              34:             TypeImage 6(int) 2D nonsampled format:R32i
              35:             TypePointer UniformConstant 34
      36(imagei):     35(ptr) Variable UniformConstant
              37:             TypeVector 6(int) 2
              38:      6(int) Constant 0
              39:   37(ivec2) ConstantComposite 38 38
              40:             TypePointer Image 6(int)
              42:     15(int) Constant 32768
              44:             TypeImage 15(int) 2D nonsampled format:R32ui
              45:             TypePointer UniformConstant 44
      46(imageu):     45(ptr) Variable UniformConstant
              47:     15(int) Constant 3
              48:             TypePointer Image 15(int)
              51:     15(int) Constant 4
              53:     15(int) Constant 7
              58:      6(int) Constant 7
              62:     15(int) Constant 10
              64:     15(int) Constant 322
     66(BufferU):             TypeStruct 15(int)
              67:             TypePointer StorageBuffer 66(BufferU)
     68(bufferu):     67(ptr) Variable StorageBuffer
              69:             TypePointer StorageBuffer 15(int)
              71:     15(int) Constant 1
     78(BufferI):             TypeStruct 15(int)
              79:             TypePointer StorageBuffer 78(BufferI)
     80(bufferi):     79(ptr) Variable StorageBuffer
              83:             TypeArray 15(int) 26
           84(A):             TypeStruct 83
     85(BufferJ):             TypeStruct 84(A)
              86:             TypeArray 85(BufferJ) 26
              87:             TypePointer StorageBuffer 86
     88(bufferj):     87(ptr) Variable StorageBuffer
              95:             TypePointer StorageBuffer 84(A)
     99(BufferK):             TypeStruct 15(int)
             100:             TypePointer Uniform 99(BufferK)
    101(bufferk):    100(ptr) Variable Uniform
             102:             TypePointer Uniform 15(int)
             107:             TypeVector 6(int) 4
             109:             TypeArray 34 26
             110:             TypePointer UniformConstant 109
     111(imagej):    110(ptr) Variable UniformConstant
             117:  107(ivec4) ConstantComposite 38 38 38 38
             118:             TypeFloat 32
             119:             TypeImage 118(float) 2D sampled format:Unknown
             120:             TypeSampledImage 119
             121:             TypeArray 120 26
             122:             TypePointer UniformConstant 121
       123(samp):    122(ptr) Variable UniformConstant
             124:             TypePointer UniformConstant 120
             127:             TypeVector 118(float) 2
             128:  118(float) Constant 0
             129:  127(fvec2) ConstantComposite 128 128
             130:             TypeVector 118(float) 4
             132:             TypeInt 64 0
             133:             TypePointer Workgroup 132(int64_t)
    134(atomu64):    133(ptr) Variable Workgroup
             135:132(int64_t) Constant 7 0
             137:             TypeInt 64 1
             138:             TypePointer Workgroup 137(int64_t)
    139(atomi64):    138(ptr) Variable Workgroup
             140:137(int64_t) Constant 10 0
    144(BufferL):             TypeStruct 15(int)
             145:             TypePointer StorageBuffer 144(BufferL)
    146(bufferl):    145(ptr) Variable StorageBuffer
    151(BufferM):             TypeStruct 15(int)
             152:             TypePointer StorageBuffer 151(BufferM)
    153(bufferm):    152(ptr) Variable StorageBuffer
             161:      6(int) Constant 32768
             163:             TypeImage 6(int) 2D multi-sampled nonsampled format:R32i
             164:             TypePointer UniformConstant 163
    165(imageMS):    164(ptr) Variable UniformConstant
             167:      6(int) Constant 4294967289
         4(main):           2 Function None 3
               5:             Label
        8(origi):      7(ptr) Variable Function
       21(origu):     20(ptr) Variable Function
           73(y):     20(ptr) Variable Function
              19:      6(int) AtomicIAdd 10(atomi) 12 18 11
                              Store 8(origi) 19
              25:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
              27:     15(int) AtomicAnd 23(atomu) 16 17 25
                              Store 21(origu) 27
              31:      6(int) AtomicLoad 10(atomi) 12 30
                              Store 8(origi) 31
              32:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
                              AtomicStore 23(atomu) 12 33 32
              41:     40(ptr) ImageTexelPointer 36(imagei) 39 17
              43:      6(int) AtomicLoad 41 12 30
                              Store 8(origi) 43
              49:     48(ptr) ImageTexelPointer 46(imageu) 39 17
              50:     15(int) AtomicIAdd 49 12 30 47
                              Store 21(origu) 50
              52:     48(ptr) ImageTexelPointer 46(imageu) 39 17
                              AtomicStore 52 12 33 51
              54:     15(int) AtomicOr 23(atomu) 12 17 53
                              Store 21(origu) 54
              55:     15(int) AtomicXor 23(atomu) 12 17 53
                              Store 21(origu) 55
              56:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
              57:     15(int) AtomicUMin 23(atomu) 12 17 56
                              Store 21(origu) 57
              59:      6(int) AtomicSMax 10(atomi) 12 17 58
                              Store 8(origi) 59
              60:      6(int) Load 8(origi)
              61:      6(int) AtomicExchange 10(atomi) 12 17 60
                              Store 8(origi) 61
              63:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
              65:     15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62
                              Store 21(origu) 65
              70:     69(ptr) AccessChain 68(bufferu) 38
              72:     15(int) AtomicIAdd 70 12 18 71
                              MemoryBarrier 26 18
                              ControlBarrier 26 26 64
                              ControlBarrier 26 26 17
              74:     69(ptr) AccessChain 68(bufferu) 38
              75:     15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26
                              Store 73(y) 75
              76:     15(int) Load 73(y)
              77:     69(ptr) AccessChain 68(bufferu) 38
                              Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26
              81:     69(ptr) AccessChain 80(bufferi) 38
              82:     15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16
                              Store 73(y) 82
              89:     69(ptr) AccessChain 88(bufferj) 38 38 38 12
              90:     15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
                              Store 73(y) 90
              91:     15(int) Load 73(y)
              92:     69(ptr) AccessChain 80(bufferi) 38
                              Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16
              93:     15(int) Load 73(y)
              94:     69(ptr) AccessChain 88(bufferj) 38 38 38 12
                              Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
              96:     95(ptr) AccessChain 88(bufferj) 12 38
              97:       84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
              98:     95(ptr) AccessChain 88(bufferj) 38 38
                              Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
             103:    102(ptr) AccessChain 101(bufferk) 38
             104:     15(int) Load 103 NonPrivatePointerKHR 
             105:     69(ptr) AccessChain 80(bufferi) 38
                              Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16
             106:          34 Load 36(imagei)
             108:  107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
             112:     35(ptr) AccessChain 111(imagej) 38
             113:          34 Load 112
             114:  107(ivec4) ImageRead 113 39 NonPrivateTexelKHR 
             115:     35(ptr) AccessChain 111(imagej) 12
             116:          34 Load 115
                              ImageWrite 116 39 117 NonPrivateTexelKHR 
             125:    124(ptr) AccessChain 123(samp) 38
             126:         120 Load 125
             131:  130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128
             136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135
                              Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26
             141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
             142:137(int64_t) Bitcast 141
             143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140
             147:     69(ptr) AccessChain 146(bufferl) 38
             148:     15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
                              Store 73(y) 148
             149:     69(ptr) AccessChain 146(bufferl) 38
             150:     15(int) AtomicIAdd 149 16 42 71
             154:     69(ptr) AccessChain 153(bufferm) 38
             155:     15(int) AtomicOr 154 16 42 26
             156:     40(ptr) ImageTexelPointer 36(imagei) 39 17
             157:      6(int) AtomicIAdd 156 16 42 11
             158:     69(ptr) AccessChain 68(bufferu) 38
             159:     15(int) AtomicIAdd 158 12 17 51
             160:     69(ptr) AccessChain 68(bufferu) 38
             162:     15(int) AtomicIAdd 160 12 42 16
             166:     40(ptr) ImageTexelPointer 165(imageMS) 39 12
                              AtomicStore 166 12 33 14
             168:     40(ptr) ImageTexelPointer 36(imagei) 39 17
                              AtomicStore 168 12 33 167
                              Return
                              FunctionEnd
