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

                              Capability Shader
                              Capability Int64
                              Capability Int64Atomics
                              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"
                              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
               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
         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
                              Return
                              FunctionEnd
