1spv.shaderBallot.comp
2// Module Version 10000
3// Generated by (magic number): 80007
4// Id's are bound by 298
5
6                              Capability Shader
7                              Capability Int64
8                              Capability SubgroupBallotKHR
9                              Extension  "SPV_KHR_shader_ballot"
10               1:             ExtInstImport  "GLSL.std.450"
11                              MemoryModel Logical GLSL450
12                              EntryPoint GLCompute 4  "main" 10 12 21 23 26 29 32
13                              ExecutionMode 4 LocalSize 8 8 1
14                              Source GLSL 450
15                              SourceExtension  "GL_ARB_gpu_shader_int64"
16                              SourceExtension  "GL_ARB_shader_ballot"
17                              Name 4  "main"
18                              Name 8  "invocation"
19                              Name 10  "gl_SubGroupInvocationARB"
20                              Name 12  "gl_SubGroupSizeARB"
21                              Name 19  "relMask"
22                              Name 21  "gl_SubGroupEqMaskARB"
23                              Name 23  "gl_SubGroupGeMaskARB"
24                              Name 26  "gl_SubGroupGtMaskARB"
25                              Name 29  "gl_SubGroupLeMaskARB"
26                              Name 32  "gl_SubGroupLtMaskARB"
27                              Name 52  "Buffers"
28                              MemberName 52(Buffers) 0  "f4"
29                              MemberName 52(Buffers) 1  "i4"
30                              MemberName 52(Buffers) 2  "u4"
31                              Name 55  "data"
32                              Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
33                              Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
34                              Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
35                              Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
36                              Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
37                              Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
38                              Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
39                              MemberDecorate 52(Buffers) 0 Offset 0
40                              MemberDecorate 52(Buffers) 1 Offset 16
41                              MemberDecorate 52(Buffers) 2 Offset 32
42                              Decorate 52(Buffers) BufferBlock
43                              Decorate 55(data) DescriptorSet 0
44                              Decorate 55(data) Binding 0
45                              Decorate 297 BuiltIn WorkgroupSize
46               2:             TypeVoid
47               3:             TypeFunction 2
48               6:             TypeInt 32 0
49               7:             TypePointer Function 6(int)
50               9:             TypePointer Input 6(int)
5110(gl_SubGroupInvocationARB):      9(ptr) Variable Input
5212(gl_SubGroupSizeARB):      9(ptr) Variable Input
53              15:      6(int) Constant 4
54              17:             TypeInt 64 0
55              18:             TypePointer Function 17(int64_t)
56              20:             TypePointer Input 17(int64_t)
5721(gl_SubGroupEqMaskARB):     20(ptr) Variable Input
5823(gl_SubGroupGeMaskARB):     20(ptr) Variable Input
5926(gl_SubGroupGtMaskARB):     20(ptr) Variable Input
6029(gl_SubGroupLeMaskARB):     20(ptr) Variable Input
6132(gl_SubGroupLtMaskARB):     20(ptr) Variable Input
62              36:             TypeBool
63              37:    36(bool) ConstantTrue
64              38:             TypeVector 6(int) 4
65              42:             TypeVector 6(int) 2
66              48:             TypeFloat 32
67              49:             TypeVector 48(float) 4
68              50:             TypeInt 32 1
69              51:             TypeVector 50(int) 4
70     52(Buffers):             TypeStruct 49(fvec4) 51(ivec4) 38(ivec4)
71              53:             TypeArray 52(Buffers) 15
72              54:             TypePointer Uniform 53
73        55(data):     54(ptr) Variable Uniform
74              57:     50(int) Constant 0
75              58:      6(int) Constant 0
76              59:             TypePointer Uniform 48(float)
77              66:     50(int) Constant 1
78              67:             TypeVector 48(float) 2
79              68:             TypePointer Uniform 49(fvec4)
80              82:     50(int) Constant 2
81              83:             TypeVector 48(float) 3
82              99:     50(int) Constant 3
83             114:             TypePointer Uniform 50(int)
84             121:             TypeVector 50(int) 2
85             122:             TypePointer Uniform 51(ivec4)
86             136:             TypeVector 50(int) 3
87             166:             TypePointer Uniform 6(int)
88             173:             TypePointer Uniform 38(ivec4)
89             187:             TypeVector 6(int) 3
90             295:      6(int) Constant 8
91             296:      6(int) Constant 1
92             297:  187(ivec3) ConstantComposite 295 295 296
93         4(main):           2 Function None 3
94               5:             Label
95   8(invocation):      7(ptr) Variable Function
96     19(relMask):     18(ptr) Variable Function
97              11:      6(int) Load 10(gl_SubGroupInvocationARB)
98              13:      6(int) Load 12(gl_SubGroupSizeARB)
99              14:      6(int) IAdd 11 13
100              16:      6(int) UMod 14 15
101                              Store 8(invocation) 16
102              22: 17(int64_t) Load 21(gl_SubGroupEqMaskARB)
103              24: 17(int64_t) Load 23(gl_SubGroupGeMaskARB)
104              25: 17(int64_t) IAdd 22 24
105              27: 17(int64_t) Load 26(gl_SubGroupGtMaskARB)
106              28: 17(int64_t) IAdd 25 27
107              30: 17(int64_t) Load 29(gl_SubGroupLeMaskARB)
108              31: 17(int64_t) IAdd 28 30
109              33: 17(int64_t) Load 32(gl_SubGroupLtMaskARB)
110              34: 17(int64_t) IAdd 31 33
111                              Store 19(relMask) 34
112              35: 17(int64_t) Load 19(relMask)
113              39:   38(ivec4) SubgroupBallotKHR 37
114              40:      6(int) CompositeExtract 39 0
115              41:      6(int) CompositeExtract 39 1
116              43:   42(ivec2) CompositeConstruct 40 41
117              44: 17(int64_t) Bitcast 43
118              45:    36(bool) IEqual 35 44
119                              SelectionMerge 47 None
120                              BranchConditional 45 46 216
121              46:               Label
122              56:      6(int)   Load 8(invocation)
123              60:     59(ptr)   AccessChain 55(data) 57 57 58
124              61:   48(float)   Load 60
125              62:      6(int)   Load 8(invocation)
126              63:   48(float)   SubgroupReadInvocationKHR 61 62
127              64:     59(ptr)   AccessChain 55(data) 56 57 58
128                                Store 64 63
129              65:      6(int)   Load 8(invocation)
130              69:     68(ptr)   AccessChain 55(data) 66 57
131              70:   49(fvec4)   Load 69
132              71:   67(fvec2)   VectorShuffle 70 70 0 1
133              72:      6(int)   Load 8(invocation)
134              73:   48(float)   CompositeExtract 71 0
135              74:   48(float)   SubgroupReadInvocationKHR 73 72
136              75:   48(float)   CompositeExtract 71 1
137              76:   48(float)   SubgroupReadInvocationKHR 75 72
138              77:   67(fvec2)   CompositeConstruct 74 76
139              78:     68(ptr)   AccessChain 55(data) 65 57
140              79:   49(fvec4)   Load 78
141              80:   49(fvec4)   VectorShuffle 79 77 4 5 2 3
142                                Store 78 80
143              81:      6(int)   Load 8(invocation)
144              84:     68(ptr)   AccessChain 55(data) 82 57
145              85:   49(fvec4)   Load 84
146              86:   83(fvec3)   VectorShuffle 85 85 0 1 2
147              87:      6(int)   Load 8(invocation)
148              88:   48(float)   CompositeExtract 86 0
149              89:   48(float)   SubgroupReadInvocationKHR 88 87
150              90:   48(float)   CompositeExtract 86 1
151              91:   48(float)   SubgroupReadInvocationKHR 90 87
152              92:   48(float)   CompositeExtract 86 2
153              93:   48(float)   SubgroupReadInvocationKHR 92 87
154              94:   83(fvec3)   CompositeConstruct 89 91 93
155              95:     68(ptr)   AccessChain 55(data) 81 57
156              96:   49(fvec4)   Load 95
157              97:   49(fvec4)   VectorShuffle 96 94 4 5 6 3
158                                Store 95 97
159              98:      6(int)   Load 8(invocation)
160             100:     68(ptr)   AccessChain 55(data) 99 57
161             101:   49(fvec4)   Load 100
162             102:      6(int)   Load 8(invocation)
163             103:   48(float)   CompositeExtract 101 0
164             104:   48(float)   SubgroupReadInvocationKHR 103 102
165             105:   48(float)   CompositeExtract 101 1
166             106:   48(float)   SubgroupReadInvocationKHR 105 102
167             107:   48(float)   CompositeExtract 101 2
168             108:   48(float)   SubgroupReadInvocationKHR 107 102
169             109:   48(float)   CompositeExtract 101 3
170             110:   48(float)   SubgroupReadInvocationKHR 109 102
171             111:   49(fvec4)   CompositeConstruct 104 106 108 110
172             112:     68(ptr)   AccessChain 55(data) 98 57
173                                Store 112 111
174             113:      6(int)   Load 8(invocation)
175             115:    114(ptr)   AccessChain 55(data) 57 66 58
176             116:     50(int)   Load 115
177             117:      6(int)   Load 8(invocation)
178             118:     50(int)   SubgroupReadInvocationKHR 116 117
179             119:    114(ptr)   AccessChain 55(data) 113 66 58
180                                Store 119 118
181             120:      6(int)   Load 8(invocation)
182             123:    122(ptr)   AccessChain 55(data) 66 66
183             124:   51(ivec4)   Load 123
184             125:  121(ivec2)   VectorShuffle 124 124 0 1
185             126:      6(int)   Load 8(invocation)
186             127:     50(int)   CompositeExtract 125 0
187             128:     50(int)   SubgroupReadInvocationKHR 127 126
188             129:     50(int)   CompositeExtract 125 1
189             130:     50(int)   SubgroupReadInvocationKHR 129 126
190             131:  121(ivec2)   CompositeConstruct 128 130
191             132:    122(ptr)   AccessChain 55(data) 120 66
192             133:   51(ivec4)   Load 132
193             134:   51(ivec4)   VectorShuffle 133 131 4 5 2 3
194                                Store 132 134
195             135:      6(int)   Load 8(invocation)
196             137:    122(ptr)   AccessChain 55(data) 82 66
197             138:   51(ivec4)   Load 137
198             139:  136(ivec3)   VectorShuffle 138 138 0 1 2
199             140:      6(int)   Load 8(invocation)
200             141:     50(int)   CompositeExtract 139 0
201             142:     50(int)   SubgroupReadInvocationKHR 141 140
202             143:     50(int)   CompositeExtract 139 1
203             144:     50(int)   SubgroupReadInvocationKHR 143 140
204             145:     50(int)   CompositeExtract 139 2
205             146:     50(int)   SubgroupReadInvocationKHR 145 140
206             147:  136(ivec3)   CompositeConstruct 142 144 146
207             148:    122(ptr)   AccessChain 55(data) 135 66
208             149:   51(ivec4)   Load 148
209             150:   51(ivec4)   VectorShuffle 149 147 4 5 6 3
210                                Store 148 150
211             151:      6(int)   Load 8(invocation)
212             152:    122(ptr)   AccessChain 55(data) 99 66
213             153:   51(ivec4)   Load 152
214             154:      6(int)   Load 8(invocation)
215             155:     50(int)   CompositeExtract 153 0
216             156:     50(int)   SubgroupReadInvocationKHR 155 154
217             157:     50(int)   CompositeExtract 153 1
218             158:     50(int)   SubgroupReadInvocationKHR 157 154
219             159:     50(int)   CompositeExtract 153 2
220             160:     50(int)   SubgroupReadInvocationKHR 159 154
221             161:     50(int)   CompositeExtract 153 3
222             162:     50(int)   SubgroupReadInvocationKHR 161 154
223             163:   51(ivec4)   CompositeConstruct 156 158 160 162
224             164:    122(ptr)   AccessChain 55(data) 151 66
225                                Store 164 163
226             165:      6(int)   Load 8(invocation)
227             167:    166(ptr)   AccessChain 55(data) 57 82 58
228             168:      6(int)   Load 167
229             169:      6(int)   Load 8(invocation)
230             170:      6(int)   SubgroupReadInvocationKHR 168 169
231             171:    166(ptr)   AccessChain 55(data) 165 82 58
232                                Store 171 170
233             172:      6(int)   Load 8(invocation)
234             174:    173(ptr)   AccessChain 55(data) 66 82
235             175:   38(ivec4)   Load 174
236             176:   42(ivec2)   VectorShuffle 175 175 0 1
237             177:      6(int)   Load 8(invocation)
238             178:      6(int)   CompositeExtract 176 0
239             179:      6(int)   SubgroupReadInvocationKHR 178 177
240             180:      6(int)   CompositeExtract 176 1
241             181:      6(int)   SubgroupReadInvocationKHR 180 177
242             182:   42(ivec2)   CompositeConstruct 179 181
243             183:    173(ptr)   AccessChain 55(data) 172 82
244             184:   38(ivec4)   Load 183
245             185:   38(ivec4)   VectorShuffle 184 182 4 5 2 3
246                                Store 183 185
247             186:      6(int)   Load 8(invocation)
248             188:    173(ptr)   AccessChain 55(data) 82 82
249             189:   38(ivec4)   Load 188
250             190:  187(ivec3)   VectorShuffle 189 189 0 1 2
251             191:      6(int)   Load 8(invocation)
252             192:      6(int)   CompositeExtract 190 0
253             193:      6(int)   SubgroupReadInvocationKHR 192 191
254             194:      6(int)   CompositeExtract 190 1
255             195:      6(int)   SubgroupReadInvocationKHR 194 191
256             196:      6(int)   CompositeExtract 190 2
257             197:      6(int)   SubgroupReadInvocationKHR 196 191
258             198:  187(ivec3)   CompositeConstruct 193 195 197
259             199:    173(ptr)   AccessChain 55(data) 186 82
260             200:   38(ivec4)   Load 199
261             201:   38(ivec4)   VectorShuffle 200 198 4 5 6 3
262                                Store 199 201
263             202:      6(int)   Load 8(invocation)
264             203:    173(ptr)   AccessChain 55(data) 99 82
265             204:   38(ivec4)   Load 203
266             205:      6(int)   Load 8(invocation)
267             206:      6(int)   CompositeExtract 204 0
268             207:      6(int)   SubgroupReadInvocationKHR 206 205
269             208:      6(int)   CompositeExtract 204 1
270             209:      6(int)   SubgroupReadInvocationKHR 208 205
271             210:      6(int)   CompositeExtract 204 2
272             211:      6(int)   SubgroupReadInvocationKHR 210 205
273             212:      6(int)   CompositeExtract 204 3
274             213:      6(int)   SubgroupReadInvocationKHR 212 205
275             214:   38(ivec4)   CompositeConstruct 207 209 211 213
276             215:    173(ptr)   AccessChain 55(data) 202 82
277                                Store 215 214
278                                Branch 47
279             216:               Label
280             217:      6(int)   Load 8(invocation)
281             218:     59(ptr)   AccessChain 55(data) 57 57 58
282             219:   48(float)   Load 218
283             220:   48(float)   SubgroupFirstInvocationKHR 219
284             221:     59(ptr)   AccessChain 55(data) 217 57 58
285                                Store 221 220
286             222:      6(int)   Load 8(invocation)
287             223:     68(ptr)   AccessChain 55(data) 66 57
288             224:   49(fvec4)   Load 223
289             225:   67(fvec2)   VectorShuffle 224 224 0 1
290             226:   67(fvec2)   SubgroupFirstInvocationKHR 225
291             227:     68(ptr)   AccessChain 55(data) 222 57
292             228:   49(fvec4)   Load 227
293             229:   49(fvec4)   VectorShuffle 228 226 4 5 2 3
294                                Store 227 229
295             230:      6(int)   Load 8(invocation)
296             231:     68(ptr)   AccessChain 55(data) 82 57
297             232:   49(fvec4)   Load 231
298             233:   83(fvec3)   VectorShuffle 232 232 0 1 2
299             234:   83(fvec3)   SubgroupFirstInvocationKHR 233
300             235:     68(ptr)   AccessChain 55(data) 230 57
301             236:   49(fvec4)   Load 235
302             237:   49(fvec4)   VectorShuffle 236 234 4 5 6 3
303                                Store 235 237
304             238:      6(int)   Load 8(invocation)
305             239:     68(ptr)   AccessChain 55(data) 99 57
306             240:   49(fvec4)   Load 239
307             241:   49(fvec4)   SubgroupFirstInvocationKHR 240
308             242:     68(ptr)   AccessChain 55(data) 238 57
309                                Store 242 241
310             243:      6(int)   Load 8(invocation)
311             244:    114(ptr)   AccessChain 55(data) 57 66 58
312             245:     50(int)   Load 244
313             246:     50(int)   SubgroupFirstInvocationKHR 245
314             247:    114(ptr)   AccessChain 55(data) 243 66 58
315                                Store 247 246
316             248:      6(int)   Load 8(invocation)
317             249:    122(ptr)   AccessChain 55(data) 66 66
318             250:   51(ivec4)   Load 249
319             251:  121(ivec2)   VectorShuffle 250 250 0 1
320             252:  121(ivec2)   SubgroupFirstInvocationKHR 251
321             253:    122(ptr)   AccessChain 55(data) 248 66
322             254:   51(ivec4)   Load 253
323             255:   51(ivec4)   VectorShuffle 254 252 4 5 2 3
324                                Store 253 255
325             256:      6(int)   Load 8(invocation)
326             257:    122(ptr)   AccessChain 55(data) 82 66
327             258:   51(ivec4)   Load 257
328             259:  136(ivec3)   VectorShuffle 258 258 0 1 2
329             260:  136(ivec3)   SubgroupFirstInvocationKHR 259
330             261:    122(ptr)   AccessChain 55(data) 256 66
331             262:   51(ivec4)   Load 261
332             263:   51(ivec4)   VectorShuffle 262 260 4 5 6 3
333                                Store 261 263
334             264:      6(int)   Load 8(invocation)
335             265:    122(ptr)   AccessChain 55(data) 99 66
336             266:   51(ivec4)   Load 265
337             267:   51(ivec4)   SubgroupFirstInvocationKHR 266
338             268:    122(ptr)   AccessChain 55(data) 264 66
339                                Store 268 267
340             269:      6(int)   Load 8(invocation)
341             270:    166(ptr)   AccessChain 55(data) 57 82 58
342             271:      6(int)   Load 270
343             272:      6(int)   SubgroupFirstInvocationKHR 271
344             273:    166(ptr)   AccessChain 55(data) 269 82 58
345                                Store 273 272
346             274:      6(int)   Load 8(invocation)
347             275:    173(ptr)   AccessChain 55(data) 66 82
348             276:   38(ivec4)   Load 275
349             277:   42(ivec2)   VectorShuffle 276 276 0 1
350             278:   42(ivec2)   SubgroupFirstInvocationKHR 277
351             279:    173(ptr)   AccessChain 55(data) 274 82
352             280:   38(ivec4)   Load 279
353             281:   38(ivec4)   VectorShuffle 280 278 4 5 2 3
354                                Store 279 281
355             282:      6(int)   Load 8(invocation)
356             283:    173(ptr)   AccessChain 55(data) 82 82
357             284:   38(ivec4)   Load 283
358             285:  187(ivec3)   VectorShuffle 284 284 0 1 2
359             286:  187(ivec3)   SubgroupFirstInvocationKHR 285
360             287:    173(ptr)   AccessChain 55(data) 282 82
361             288:   38(ivec4)   Load 287
362             289:   38(ivec4)   VectorShuffle 288 286 4 5 6 3
363                                Store 287 289
364             290:      6(int)   Load 8(invocation)
365             291:    173(ptr)   AccessChain 55(data) 99 82
366             292:   38(ivec4)   Load 291
367             293:   38(ivec4)   SubgroupFirstInvocationKHR 292
368             294:    173(ptr)   AccessChain 55(data) 290 82
369                                Store 294 293
370                                Branch 47
371              47:             Label
372                              Return
373                              FunctionEnd
374