1spv.memoryScopeSemantics.comp
2// Module Version 10300
3// Generated by (magic number): 8000a
4// Id's are bound by 169
5
6                              Capability Shader
7                              Capability Int64
8                              Capability Int64Atomics
9                              Capability StorageImageMultisample
10                              Capability VulkanMemoryModelKHR
11                              Capability VulkanMemoryModelDeviceScopeKHR
12                              Extension  "SPV_KHR_vulkan_memory_model"
13               1:             ExtInstImport  "GLSL.std.450"
14                              MemoryModel Logical VulkanKHR
15                              EntryPoint GLCompute 4  "main"
16                              ExecutionMode 4 LocalSize 1 1 1
17                              Source GLSL 450
18                              SourceExtension  "GL_ARB_gpu_shader_int64"
19                              SourceExtension  "GL_KHR_memory_scope_semantics"
20                              Name 4  "main"
21                              Name 8  "origi"
22                              Name 10  "atomi"
23                              Name 21  "origu"
24                              Name 23  "atomu"
25                              Name 24  "value"
26                              Name 36  "imagei"
27                              Name 46  "imageu"
28                              Name 66  "BufferU"
29                              MemberName 66(BufferU) 0  "x"
30                              Name 68  "bufferu"
31                              Name 73  "y"
32                              Name 78  "BufferI"
33                              MemberName 78(BufferI) 0  "x"
34                              Name 80  "bufferi"
35                              Name 84  "A"
36                              MemberName 84(A) 0  "x"
37                              Name 85  "BufferJ"
38                              MemberName 85(BufferJ) 0  "a"
39                              Name 88  "bufferj"
40                              Name 99  "BufferK"
41                              MemberName 99(BufferK) 0  "x"
42                              Name 101  "bufferk"
43                              Name 111  "imagej"
44                              Name 123  "samp"
45                              Name 134  "atomu64"
46                              Name 139  "atomi64"
47                              Name 144  "BufferL"
48                              MemberName 144(BufferL) 0  "x"
49                              Name 146  "bufferl"
50                              Name 151  "BufferM"
51                              MemberName 151(BufferM) 0  "x"
52                              Name 153  "bufferm"
53                              Name 165  "imageMS"
54                              Decorate 36(imagei) DescriptorSet 0
55                              Decorate 36(imagei) Binding 1
56                              Decorate 46(imageu) DescriptorSet 0
57                              Decorate 46(imageu) Binding 0
58                              MemberDecorate 66(BufferU) 0 Offset 0
59                              Decorate 66(BufferU) Block
60                              Decorate 68(bufferu) DescriptorSet 0
61                              Decorate 68(bufferu) Binding 2
62                              MemberDecorate 78(BufferI) 0 Offset 0
63                              Decorate 78(BufferI) Block
64                              Decorate 80(bufferi) DescriptorSet 0
65                              Decorate 80(bufferi) Binding 3
66                              Decorate 83 ArrayStride 4
67                              MemberDecorate 84(A) 0 Offset 0
68                              MemberDecorate 85(BufferJ) 0 Offset 0
69                              Decorate 85(BufferJ) Block
70                              Decorate 88(bufferj) DescriptorSet 0
71                              Decorate 88(bufferj) Binding 4
72                              MemberDecorate 99(BufferK) 0 Offset 0
73                              Decorate 99(BufferK) Block
74                              Decorate 101(bufferk) DescriptorSet 0
75                              Decorate 101(bufferk) Binding 7
76                              Decorate 111(imagej) DescriptorSet 0
77                              Decorate 111(imagej) Binding 5
78                              Decorate 123(samp) DescriptorSet 0
79                              Decorate 123(samp) Binding 6
80                              MemberDecorate 144(BufferL) 0 Offset 0
81                              Decorate 144(BufferL) Block
82                              Decorate 146(bufferl) DescriptorSet 0
83                              Decorate 146(bufferl) Binding 8
84                              MemberDecorate 151(BufferM) 0 Offset 0
85                              Decorate 151(BufferM) Block
86                              Decorate 153(bufferm) DescriptorSet 0
87                              Decorate 153(bufferm) Binding 9
88                              Decorate 165(imageMS) DescriptorSet 0
89                              Decorate 165(imageMS) Binding 10
90               2:             TypeVoid
91               3:             TypeFunction 2
92               6:             TypeInt 32 1
93               7:             TypePointer Function 6(int)
94               9:             TypePointer Workgroup 6(int)
95       10(atomi):      9(ptr) Variable Workgroup
96              11:      6(int) Constant 3
97              12:      6(int) Constant 1
98              13:      6(int) Constant 320
99              14:      6(int) Constant 4
100              15:             TypeInt 32 0
101              16:     15(int) Constant 5
102              17:     15(int) Constant 0
103              18:     15(int) Constant 324
104              20:             TypePointer Function 15(int)
105              22:             TypePointer Workgroup 15(int)
106       23(atomu):     22(ptr) Variable Workgroup
107       24(value):     22(ptr) Variable Workgroup
108              26:     15(int) Constant 2
109              28:      6(int) Constant 64
110              29:      6(int) Constant 2
111              30:     15(int) Constant 66
112              33:     15(int) Constant 68
113              34:             TypeImage 6(int) 2D nonsampled format:R32i
114              35:             TypePointer UniformConstant 34
115      36(imagei):     35(ptr) Variable UniformConstant
116              37:             TypeVector 6(int) 2
117              38:      6(int) Constant 0
118              39:   37(ivec2) ConstantComposite 38 38
119              40:             TypePointer Image 6(int)
120              42:     15(int) Constant 32768
121              44:             TypeImage 15(int) 2D nonsampled format:R32ui
122              45:             TypePointer UniformConstant 44
123      46(imageu):     45(ptr) Variable UniformConstant
124              47:     15(int) Constant 3
125              48:             TypePointer Image 15(int)
126              51:     15(int) Constant 4
127              53:     15(int) Constant 7
128              58:      6(int) Constant 7
129              62:     15(int) Constant 10
130              64:     15(int) Constant 322
131     66(BufferU):             TypeStruct 15(int)
132              67:             TypePointer StorageBuffer 66(BufferU)
133     68(bufferu):     67(ptr) Variable StorageBuffer
134              69:             TypePointer StorageBuffer 15(int)
135              71:     15(int) Constant 1
136     78(BufferI):             TypeStruct 15(int)
137              79:             TypePointer StorageBuffer 78(BufferI)
138     80(bufferi):     79(ptr) Variable StorageBuffer
139              83:             TypeArray 15(int) 26
140           84(A):             TypeStruct 83
141     85(BufferJ):             TypeStruct 84(A)
142              86:             TypeArray 85(BufferJ) 26
143              87:             TypePointer StorageBuffer 86
144     88(bufferj):     87(ptr) Variable StorageBuffer
145              95:             TypePointer StorageBuffer 84(A)
146     99(BufferK):             TypeStruct 15(int)
147             100:             TypePointer Uniform 99(BufferK)
148    101(bufferk):    100(ptr) Variable Uniform
149             102:             TypePointer Uniform 15(int)
150             107:             TypeVector 6(int) 4
151             109:             TypeArray 34 26
152             110:             TypePointer UniformConstant 109
153     111(imagej):    110(ptr) Variable UniformConstant
154             117:  107(ivec4) ConstantComposite 38 38 38 38
155             118:             TypeFloat 32
156             119:             TypeImage 118(float) 2D sampled format:Unknown
157             120:             TypeSampledImage 119
158             121:             TypeArray 120 26
159             122:             TypePointer UniformConstant 121
160       123(samp):    122(ptr) Variable UniformConstant
161             124:             TypePointer UniformConstant 120
162             127:             TypeVector 118(float) 2
163             128:  118(float) Constant 0
164             129:  127(fvec2) ConstantComposite 128 128
165             130:             TypeVector 118(float) 4
166             132:             TypeInt 64 0
167             133:             TypePointer Workgroup 132(int64_t)
168    134(atomu64):    133(ptr) Variable Workgroup
169             135:132(int64_t) Constant 7 0
170             137:             TypeInt 64 1
171             138:             TypePointer Workgroup 137(int64_t)
172    139(atomi64):    138(ptr) Variable Workgroup
173             140:137(int64_t) Constant 10 0
174    144(BufferL):             TypeStruct 15(int)
175             145:             TypePointer StorageBuffer 144(BufferL)
176    146(bufferl):    145(ptr) Variable StorageBuffer
177    151(BufferM):             TypeStruct 15(int)
178             152:             TypePointer StorageBuffer 151(BufferM)
179    153(bufferm):    152(ptr) Variable StorageBuffer
180             161:      6(int) Constant 32768
181             163:             TypeImage 6(int) 2D multi-sampled nonsampled format:R32i
182             164:             TypePointer UniformConstant 163
183    165(imageMS):    164(ptr) Variable UniformConstant
184             167:      6(int) Constant 4294967289
185         4(main):           2 Function None 3
186               5:             Label
187        8(origi):      7(ptr) Variable Function
188       21(origu):     20(ptr) Variable Function
189           73(y):     20(ptr) Variable Function
190              19:      6(int) AtomicIAdd 10(atomi) 12 18 11
191                              Store 8(origi) 19
192              25:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
193              27:     15(int) AtomicAnd 23(atomu) 16 17 25
194                              Store 21(origu) 27
195              31:      6(int) AtomicLoad 10(atomi) 12 30
196                              Store 8(origi) 31
197              32:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
198                              AtomicStore 23(atomu) 12 33 32
199              41:     40(ptr) ImageTexelPointer 36(imagei) 39 17
200              43:      6(int) AtomicLoad 41 12 30
201                              Store 8(origi) 43
202              49:     48(ptr) ImageTexelPointer 46(imageu) 39 17
203              50:     15(int) AtomicIAdd 49 12 30 47
204                              Store 21(origu) 50
205              52:     48(ptr) ImageTexelPointer 46(imageu) 39 17
206                              AtomicStore 52 12 33 51
207              54:     15(int) AtomicOr 23(atomu) 12 17 53
208                              Store 21(origu) 54
209              55:     15(int) AtomicXor 23(atomu) 12 17 53
210                              Store 21(origu) 55
211              56:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
212              57:     15(int) AtomicUMin 23(atomu) 12 17 56
213                              Store 21(origu) 57
214              59:      6(int) AtomicSMax 10(atomi) 12 17 58
215                              Store 8(origi) 59
216              60:      6(int) Load 8(origi)
217              61:      6(int) AtomicExchange 10(atomi) 12 17 60
218                              Store 8(origi) 61
219              63:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
220              65:     15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62
221                              Store 21(origu) 65
222              70:     69(ptr) AccessChain 68(bufferu) 38
223              72:     15(int) AtomicIAdd 70 12 18 71
224                              MemoryBarrier 26 18
225                              ControlBarrier 26 26 64
226                              ControlBarrier 26 26 17
227              74:     69(ptr) AccessChain 68(bufferu) 38
228              75:     15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26
229                              Store 73(y) 75
230              76:     15(int) Load 73(y)
231              77:     69(ptr) AccessChain 68(bufferu) 38
232                              Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26
233              81:     69(ptr) AccessChain 80(bufferi) 38
234              82:     15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16
235                              Store 73(y) 82
236              89:     69(ptr) AccessChain 88(bufferj) 38 38 38 12
237              90:     15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
238                              Store 73(y) 90
239              91:     15(int) Load 73(y)
240              92:     69(ptr) AccessChain 80(bufferi) 38
241                              Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16
242              93:     15(int) Load 73(y)
243              94:     69(ptr) AccessChain 88(bufferj) 38 38 38 12
244                              Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
245              96:     95(ptr) AccessChain 88(bufferj) 12 38
246              97:       84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
247              98:     95(ptr) AccessChain 88(bufferj) 38 38
248                              Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
249             103:    102(ptr) AccessChain 101(bufferk) 38
250             104:     15(int) Load 103 NonPrivatePointerKHR
251             105:     69(ptr) AccessChain 80(bufferi) 38
252                              Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16
253             106:          34 Load 36(imagei)
254             108:  107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
255             112:     35(ptr) AccessChain 111(imagej) 38
256             113:          34 Load 112
257             114:  107(ivec4) ImageRead 113 39 NonPrivateTexelKHR
258             115:     35(ptr) AccessChain 111(imagej) 12
259             116:          34 Load 115
260                              ImageWrite 116 39 117 NonPrivateTexelKHR
261             125:    124(ptr) AccessChain 123(samp) 38
262             126:         120 Load 125
263             131:  130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128
264             136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135
265                              Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26
266             141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
267             142:137(int64_t) Bitcast 141
268             143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140
269             147:     69(ptr) AccessChain 146(bufferl) 38
270             148:     15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
271                              Store 73(y) 148
272             149:     69(ptr) AccessChain 146(bufferl) 38
273             150:     15(int) AtomicIAdd 149 16 42 71
274             154:     69(ptr) AccessChain 153(bufferm) 38
275             155:     15(int) AtomicOr 154 16 42 26
276             156:     40(ptr) ImageTexelPointer 36(imagei) 39 17
277             157:      6(int) AtomicIAdd 156 16 42 11
278             158:     69(ptr) AccessChain 68(bufferu) 38
279             159:     15(int) AtomicIAdd 158 12 17 51
280             160:     69(ptr) AccessChain 68(bufferu) 38
281             162:     15(int) AtomicIAdd 160 12 42 16
282             166:     40(ptr) ImageTexelPointer 165(imageMS) 39 12
283                              AtomicStore 166 12 33 14
284             168:     40(ptr) ImageTexelPointer 36(imagei) 39 17
285                              AtomicStore 168 12 33 167
286                              Return
287                              FunctionEnd
288