1spv.shaderBallot.comp
2// Module Version 10000
3// Generated by (magic number): 8000a
4// Id's are bound by 397
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 22 29 36 43 50
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 22  "gl_SubGroupEqMaskARB"
23                              Name 29  "gl_SubGroupGeMaskARB"
24                              Name 36  "gl_SubGroupGtMaskARB"
25                              Name 43  "gl_SubGroupLeMaskARB"
26                              Name 50  "gl_SubGroupLtMaskARB"
27                              Name 72  "Buffers"
28                              MemberName 72(Buffers) 0  "f4"
29                              MemberName 72(Buffers) 1  "i4"
30                              MemberName 72(Buffers) 2  "u4"
31                              Name 75  "data"
32                              Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId
33                              Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize
34                              Decorate 22(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR
35                              Decorate 29(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR
36                              Decorate 36(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR
37                              Decorate 43(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR
38                              Decorate 50(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR
39                              MemberDecorate 72(Buffers) 0 Offset 0
40                              MemberDecorate 72(Buffers) 1 Offset 16
41                              MemberDecorate 72(Buffers) 2 Offset 32
42                              Decorate 72(Buffers) BufferBlock
43                              Decorate 75(data) DescriptorSet 0
44                              Decorate 75(data) Binding 0
45                              Decorate 396 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:             TypeVector 6(int) 4
57              21:             TypePointer Input 20(ivec4)
5822(gl_SubGroupEqMaskARB):     21(ptr) Variable Input
59              26:             TypeVector 6(int) 2
6029(gl_SubGroupGeMaskARB):     21(ptr) Variable Input
6136(gl_SubGroupGtMaskARB):     21(ptr) Variable Input
6243(gl_SubGroupLeMaskARB):     21(ptr) Variable Input
6350(gl_SubGroupLtMaskARB):     21(ptr) Variable Input
64              58:             TypeBool
65              59:    58(bool) ConstantTrue
66              68:             TypeFloat 32
67              69:             TypeVector 68(float) 4
68              70:             TypeInt 32 1
69              71:             TypeVector 70(int) 4
70     72(Buffers):             TypeStruct 69(fvec4) 71(ivec4) 20(ivec4)
71              73:             TypeArray 72(Buffers) 15
72              74:             TypePointer Uniform 73
73        75(data):     74(ptr) Variable Uniform
74              77:     70(int) Constant 0
75              78:      6(int) Constant 0
76              79:             TypePointer Uniform 68(float)
77              86:     70(int) Constant 1
78              87:             TypeVector 68(float) 2
79              88:             TypePointer Uniform 69(fvec4)
80             100:      6(int) Constant 1
81             104:     70(int) Constant 2
82             105:             TypeVector 68(float) 3
83             121:      6(int) Constant 2
84             125:     70(int) Constant 3
85             140:             TypePointer Uniform 70(int)
86             147:             TypeVector 70(int) 2
87             148:             TypePointer Uniform 71(ivec4)
88             163:             TypeVector 70(int) 3
89             196:             TypePointer Uniform 6(int)
90             203:             TypePointer Uniform 20(ivec4)
91             218:             TypeVector 6(int) 3
92             395:      6(int) Constant 8
93             396:  218(ivec3) ConstantComposite 395 395 100
94         4(main):           2 Function None 3
95               5:             Label
96   8(invocation):      7(ptr) Variable Function
97     19(relMask):     18(ptr) Variable Function
98              11:      6(int) Load 10(gl_SubGroupInvocationARB)
99              13:      6(int) Load 12(gl_SubGroupSizeARB)
100              14:      6(int) IAdd 11 13
101              16:      6(int) UMod 14 15
102                              Store 8(invocation) 16
103              23:   20(ivec4) Load 22(gl_SubGroupEqMaskARB)
104              24:      6(int) CompositeExtract 23 0
105              25:      6(int) CompositeExtract 23 1
106              27:   26(ivec2) CompositeConstruct 24 25
107              28: 17(int64_t) Bitcast 27
108              30:   20(ivec4) Load 29(gl_SubGroupGeMaskARB)
109              31:      6(int) CompositeExtract 30 0
110              32:      6(int) CompositeExtract 30 1
111              33:   26(ivec2) CompositeConstruct 31 32
112              34: 17(int64_t) Bitcast 33
113              35: 17(int64_t) IAdd 28 34
114              37:   20(ivec4) Load 36(gl_SubGroupGtMaskARB)
115              38:      6(int) CompositeExtract 37 0
116              39:      6(int) CompositeExtract 37 1
117              40:   26(ivec2) CompositeConstruct 38 39
118              41: 17(int64_t) Bitcast 40
119              42: 17(int64_t) IAdd 35 41
120              44:   20(ivec4) Load 43(gl_SubGroupLeMaskARB)
121              45:      6(int) CompositeExtract 44 0
122              46:      6(int) CompositeExtract 44 1
123              47:   26(ivec2) CompositeConstruct 45 46
124              48: 17(int64_t) Bitcast 47
125              49: 17(int64_t) IAdd 42 48
126              51:   20(ivec4) Load 50(gl_SubGroupLtMaskARB)
127              52:      6(int) CompositeExtract 51 0
128              53:      6(int) CompositeExtract 51 1
129              54:   26(ivec2) CompositeConstruct 52 53
130              55: 17(int64_t) Bitcast 54
131              56: 17(int64_t) IAdd 49 55
132                              Store 19(relMask) 56
133              57: 17(int64_t) Load 19(relMask)
134              60:   20(ivec4) SubgroupBallotKHR 59
135              61:      6(int) CompositeExtract 60 0
136              62:      6(int) CompositeExtract 60 1
137              63:   26(ivec2) CompositeConstruct 61 62
138              64: 17(int64_t) Bitcast 63
139              65:    58(bool) IEqual 57 64
140                              SelectionMerge 67 None
141                              BranchConditional 65 66 250
142              66:               Label
143              76:      6(int)   Load 8(invocation)
144              80:     79(ptr)   AccessChain 75(data) 77 77 78
145              81:   68(float)   Load 80
146              82:      6(int)   Load 8(invocation)
147              83:   68(float)   SubgroupReadInvocationKHR 81 82
148              84:     79(ptr)   AccessChain 75(data) 76 77 78
149                                Store 84 83
150              85:      6(int)   Load 8(invocation)
151              89:     88(ptr)   AccessChain 75(data) 86 77
152              90:   69(fvec4)   Load 89
153              91:   87(fvec2)   VectorShuffle 90 90 0 1
154              92:      6(int)   Load 8(invocation)
155              93:   68(float)   CompositeExtract 91 0
156              94:   68(float)   SubgroupReadInvocationKHR 93 92
157              95:   68(float)   CompositeExtract 91 1
158              96:   68(float)   SubgroupReadInvocationKHR 95 92
159              97:   87(fvec2)   CompositeConstruct 94 96
160              98:     79(ptr)   AccessChain 75(data) 85 77 78
161              99:   68(float)   CompositeExtract 97 0
162                                Store 98 99
163             101:     79(ptr)   AccessChain 75(data) 85 77 100
164             102:   68(float)   CompositeExtract 97 1
165                                Store 101 102
166             103:      6(int)   Load 8(invocation)
167             106:     88(ptr)   AccessChain 75(data) 104 77
168             107:   69(fvec4)   Load 106
169             108:  105(fvec3)   VectorShuffle 107 107 0 1 2
170             109:      6(int)   Load 8(invocation)
171             110:   68(float)   CompositeExtract 108 0
172             111:   68(float)   SubgroupReadInvocationKHR 110 109
173             112:   68(float)   CompositeExtract 108 1
174             113:   68(float)   SubgroupReadInvocationKHR 112 109
175             114:   68(float)   CompositeExtract 108 2
176             115:   68(float)   SubgroupReadInvocationKHR 114 109
177             116:  105(fvec3)   CompositeConstruct 111 113 115
178             117:     79(ptr)   AccessChain 75(data) 103 77 78
179             118:   68(float)   CompositeExtract 116 0
180                                Store 117 118
181             119:     79(ptr)   AccessChain 75(data) 103 77 100
182             120:   68(float)   CompositeExtract 116 1
183                                Store 119 120
184             122:     79(ptr)   AccessChain 75(data) 103 77 121
185             123:   68(float)   CompositeExtract 116 2
186                                Store 122 123
187             124:      6(int)   Load 8(invocation)
188             126:     88(ptr)   AccessChain 75(data) 125 77
189             127:   69(fvec4)   Load 126
190             128:      6(int)   Load 8(invocation)
191             129:   68(float)   CompositeExtract 127 0
192             130:   68(float)   SubgroupReadInvocationKHR 129 128
193             131:   68(float)   CompositeExtract 127 1
194             132:   68(float)   SubgroupReadInvocationKHR 131 128
195             133:   68(float)   CompositeExtract 127 2
196             134:   68(float)   SubgroupReadInvocationKHR 133 128
197             135:   68(float)   CompositeExtract 127 3
198             136:   68(float)   SubgroupReadInvocationKHR 135 128
199             137:   69(fvec4)   CompositeConstruct 130 132 134 136
200             138:     88(ptr)   AccessChain 75(data) 124 77
201                                Store 138 137
202             139:      6(int)   Load 8(invocation)
203             141:    140(ptr)   AccessChain 75(data) 77 86 78
204             142:     70(int)   Load 141
205             143:      6(int)   Load 8(invocation)
206             144:     70(int)   SubgroupReadInvocationKHR 142 143
207             145:    140(ptr)   AccessChain 75(data) 139 86 78
208                                Store 145 144
209             146:      6(int)   Load 8(invocation)
210             149:    148(ptr)   AccessChain 75(data) 86 86
211             150:   71(ivec4)   Load 149
212             151:  147(ivec2)   VectorShuffle 150 150 0 1
213             152:      6(int)   Load 8(invocation)
214             153:     70(int)   CompositeExtract 151 0
215             154:     70(int)   SubgroupReadInvocationKHR 153 152
216             155:     70(int)   CompositeExtract 151 1
217             156:     70(int)   SubgroupReadInvocationKHR 155 152
218             157:  147(ivec2)   CompositeConstruct 154 156
219             158:    140(ptr)   AccessChain 75(data) 146 86 78
220             159:     70(int)   CompositeExtract 157 0
221                                Store 158 159
222             160:    140(ptr)   AccessChain 75(data) 146 86 100
223             161:     70(int)   CompositeExtract 157 1
224                                Store 160 161
225             162:      6(int)   Load 8(invocation)
226             164:    148(ptr)   AccessChain 75(data) 104 86
227             165:   71(ivec4)   Load 164
228             166:  163(ivec3)   VectorShuffle 165 165 0 1 2
229             167:      6(int)   Load 8(invocation)
230             168:     70(int)   CompositeExtract 166 0
231             169:     70(int)   SubgroupReadInvocationKHR 168 167
232             170:     70(int)   CompositeExtract 166 1
233             171:     70(int)   SubgroupReadInvocationKHR 170 167
234             172:     70(int)   CompositeExtract 166 2
235             173:     70(int)   SubgroupReadInvocationKHR 172 167
236             174:  163(ivec3)   CompositeConstruct 169 171 173
237             175:    140(ptr)   AccessChain 75(data) 162 86 78
238             176:     70(int)   CompositeExtract 174 0
239                                Store 175 176
240             177:    140(ptr)   AccessChain 75(data) 162 86 100
241             178:     70(int)   CompositeExtract 174 1
242                                Store 177 178
243             179:    140(ptr)   AccessChain 75(data) 162 86 121
244             180:     70(int)   CompositeExtract 174 2
245                                Store 179 180
246             181:      6(int)   Load 8(invocation)
247             182:    148(ptr)   AccessChain 75(data) 125 86
248             183:   71(ivec4)   Load 182
249             184:      6(int)   Load 8(invocation)
250             185:     70(int)   CompositeExtract 183 0
251             186:     70(int)   SubgroupReadInvocationKHR 185 184
252             187:     70(int)   CompositeExtract 183 1
253             188:     70(int)   SubgroupReadInvocationKHR 187 184
254             189:     70(int)   CompositeExtract 183 2
255             190:     70(int)   SubgroupReadInvocationKHR 189 184
256             191:     70(int)   CompositeExtract 183 3
257             192:     70(int)   SubgroupReadInvocationKHR 191 184
258             193:   71(ivec4)   CompositeConstruct 186 188 190 192
259             194:    148(ptr)   AccessChain 75(data) 181 86
260                                Store 194 193
261             195:      6(int)   Load 8(invocation)
262             197:    196(ptr)   AccessChain 75(data) 77 104 78
263             198:      6(int)   Load 197
264             199:      6(int)   Load 8(invocation)
265             200:      6(int)   SubgroupReadInvocationKHR 198 199
266             201:    196(ptr)   AccessChain 75(data) 195 104 78
267                                Store 201 200
268             202:      6(int)   Load 8(invocation)
269             204:    203(ptr)   AccessChain 75(data) 86 104
270             205:   20(ivec4)   Load 204
271             206:   26(ivec2)   VectorShuffle 205 205 0 1
272             207:      6(int)   Load 8(invocation)
273             208:      6(int)   CompositeExtract 206 0
274             209:      6(int)   SubgroupReadInvocationKHR 208 207
275             210:      6(int)   CompositeExtract 206 1
276             211:      6(int)   SubgroupReadInvocationKHR 210 207
277             212:   26(ivec2)   CompositeConstruct 209 211
278             213:    196(ptr)   AccessChain 75(data) 202 104 78
279             214:      6(int)   CompositeExtract 212 0
280                                Store 213 214
281             215:    196(ptr)   AccessChain 75(data) 202 104 100
282             216:      6(int)   CompositeExtract 212 1
283                                Store 215 216
284             217:      6(int)   Load 8(invocation)
285             219:    203(ptr)   AccessChain 75(data) 104 104
286             220:   20(ivec4)   Load 219
287             221:  218(ivec3)   VectorShuffle 220 220 0 1 2
288             222:      6(int)   Load 8(invocation)
289             223:      6(int)   CompositeExtract 221 0
290             224:      6(int)   SubgroupReadInvocationKHR 223 222
291             225:      6(int)   CompositeExtract 221 1
292             226:      6(int)   SubgroupReadInvocationKHR 225 222
293             227:      6(int)   CompositeExtract 221 2
294             228:      6(int)   SubgroupReadInvocationKHR 227 222
295             229:  218(ivec3)   CompositeConstruct 224 226 228
296             230:    196(ptr)   AccessChain 75(data) 217 104 78
297             231:      6(int)   CompositeExtract 229 0
298                                Store 230 231
299             232:    196(ptr)   AccessChain 75(data) 217 104 100
300             233:      6(int)   CompositeExtract 229 1
301                                Store 232 233
302             234:    196(ptr)   AccessChain 75(data) 217 104 121
303             235:      6(int)   CompositeExtract 229 2
304                                Store 234 235
305             236:      6(int)   Load 8(invocation)
306             237:    203(ptr)   AccessChain 75(data) 125 104
307             238:   20(ivec4)   Load 237
308             239:      6(int)   Load 8(invocation)
309             240:      6(int)   CompositeExtract 238 0
310             241:      6(int)   SubgroupReadInvocationKHR 240 239
311             242:      6(int)   CompositeExtract 238 1
312             243:      6(int)   SubgroupReadInvocationKHR 242 239
313             244:      6(int)   CompositeExtract 238 2
314             245:      6(int)   SubgroupReadInvocationKHR 244 239
315             246:      6(int)   CompositeExtract 238 3
316             247:      6(int)   SubgroupReadInvocationKHR 246 239
317             248:   20(ivec4)   CompositeConstruct 241 243 245 247
318             249:    203(ptr)   AccessChain 75(data) 236 104
319                                Store 249 248
320                                Branch 67
321             250:               Label
322             251:      6(int)   Load 8(invocation)
323             252:     79(ptr)   AccessChain 75(data) 77 77 78
324             253:   68(float)   Load 252
325             254:   68(float)   SubgroupFirstInvocationKHR 253
326             255:     79(ptr)   AccessChain 75(data) 251 77 78
327                                Store 255 254
328             256:      6(int)   Load 8(invocation)
329             257:     88(ptr)   AccessChain 75(data) 86 77
330             258:   69(fvec4)   Load 257
331             259:   87(fvec2)   VectorShuffle 258 258 0 1
332             260:   68(float)   CompositeExtract 259 0
333             261:   68(float)   SubgroupFirstInvocationKHR 260
334             262:   68(float)   CompositeExtract 259 1
335             263:   68(float)   SubgroupFirstInvocationKHR 262
336             264:   87(fvec2)   CompositeConstruct 261 263
337             265:     79(ptr)   AccessChain 75(data) 256 77 78
338             266:   68(float)   CompositeExtract 264 0
339                                Store 265 266
340             267:     79(ptr)   AccessChain 75(data) 256 77 100
341             268:   68(float)   CompositeExtract 264 1
342                                Store 267 268
343             269:      6(int)   Load 8(invocation)
344             270:     88(ptr)   AccessChain 75(data) 104 77
345             271:   69(fvec4)   Load 270
346             272:  105(fvec3)   VectorShuffle 271 271 0 1 2
347             273:   68(float)   CompositeExtract 272 0
348             274:   68(float)   SubgroupFirstInvocationKHR 273
349             275:   68(float)   CompositeExtract 272 1
350             276:   68(float)   SubgroupFirstInvocationKHR 275
351             277:   68(float)   CompositeExtract 272 2
352             278:   68(float)   SubgroupFirstInvocationKHR 277
353             279:  105(fvec3)   CompositeConstruct 274 276 278
354             280:     79(ptr)   AccessChain 75(data) 269 77 78
355             281:   68(float)   CompositeExtract 279 0
356                                Store 280 281
357             282:     79(ptr)   AccessChain 75(data) 269 77 100
358             283:   68(float)   CompositeExtract 279 1
359                                Store 282 283
360             284:     79(ptr)   AccessChain 75(data) 269 77 121
361             285:   68(float)   CompositeExtract 279 2
362                                Store 284 285
363             286:      6(int)   Load 8(invocation)
364             287:     88(ptr)   AccessChain 75(data) 125 77
365             288:   69(fvec4)   Load 287
366             289:   68(float)   CompositeExtract 288 0
367             290:   68(float)   SubgroupFirstInvocationKHR 289
368             291:   68(float)   CompositeExtract 288 1
369             292:   68(float)   SubgroupFirstInvocationKHR 291
370             293:   68(float)   CompositeExtract 288 2
371             294:   68(float)   SubgroupFirstInvocationKHR 293
372             295:   68(float)   CompositeExtract 288 3
373             296:   68(float)   SubgroupFirstInvocationKHR 295
374             297:   69(fvec4)   CompositeConstruct 290 292 294 296
375             298:     88(ptr)   AccessChain 75(data) 286 77
376                                Store 298 297
377             299:      6(int)   Load 8(invocation)
378             300:    140(ptr)   AccessChain 75(data) 77 86 78
379             301:     70(int)   Load 300
380             302:     70(int)   SubgroupFirstInvocationKHR 301
381             303:    140(ptr)   AccessChain 75(data) 299 86 78
382                                Store 303 302
383             304:      6(int)   Load 8(invocation)
384             305:    148(ptr)   AccessChain 75(data) 86 86
385             306:   71(ivec4)   Load 305
386             307:  147(ivec2)   VectorShuffle 306 306 0 1
387             308:     70(int)   CompositeExtract 307 0
388             309:     70(int)   SubgroupFirstInvocationKHR 308
389             310:     70(int)   CompositeExtract 307 1
390             311:     70(int)   SubgroupFirstInvocationKHR 310
391             312:  147(ivec2)   CompositeConstruct 309 311
392             313:    140(ptr)   AccessChain 75(data) 304 86 78
393             314:     70(int)   CompositeExtract 312 0
394                                Store 313 314
395             315:    140(ptr)   AccessChain 75(data) 304 86 100
396             316:     70(int)   CompositeExtract 312 1
397                                Store 315 316
398             317:      6(int)   Load 8(invocation)
399             318:    148(ptr)   AccessChain 75(data) 104 86
400             319:   71(ivec4)   Load 318
401             320:  163(ivec3)   VectorShuffle 319 319 0 1 2
402             321:     70(int)   CompositeExtract 320 0
403             322:     70(int)   SubgroupFirstInvocationKHR 321
404             323:     70(int)   CompositeExtract 320 1
405             324:     70(int)   SubgroupFirstInvocationKHR 323
406             325:     70(int)   CompositeExtract 320 2
407             326:     70(int)   SubgroupFirstInvocationKHR 325
408             327:  163(ivec3)   CompositeConstruct 322 324 326
409             328:    140(ptr)   AccessChain 75(data) 317 86 78
410             329:     70(int)   CompositeExtract 327 0
411                                Store 328 329
412             330:    140(ptr)   AccessChain 75(data) 317 86 100
413             331:     70(int)   CompositeExtract 327 1
414                                Store 330 331
415             332:    140(ptr)   AccessChain 75(data) 317 86 121
416             333:     70(int)   CompositeExtract 327 2
417                                Store 332 333
418             334:      6(int)   Load 8(invocation)
419             335:    148(ptr)   AccessChain 75(data) 125 86
420             336:   71(ivec4)   Load 335
421             337:     70(int)   CompositeExtract 336 0
422             338:     70(int)   SubgroupFirstInvocationKHR 337
423             339:     70(int)   CompositeExtract 336 1
424             340:     70(int)   SubgroupFirstInvocationKHR 339
425             341:     70(int)   CompositeExtract 336 2
426             342:     70(int)   SubgroupFirstInvocationKHR 341
427             343:     70(int)   CompositeExtract 336 3
428             344:     70(int)   SubgroupFirstInvocationKHR 343
429             345:   71(ivec4)   CompositeConstruct 338 340 342 344
430             346:    148(ptr)   AccessChain 75(data) 334 86
431                                Store 346 345
432             347:      6(int)   Load 8(invocation)
433             348:    196(ptr)   AccessChain 75(data) 77 104 78
434             349:      6(int)   Load 348
435             350:      6(int)   SubgroupFirstInvocationKHR 349
436             351:    196(ptr)   AccessChain 75(data) 347 104 78
437                                Store 351 350
438             352:      6(int)   Load 8(invocation)
439             353:    203(ptr)   AccessChain 75(data) 86 104
440             354:   20(ivec4)   Load 353
441             355:   26(ivec2)   VectorShuffle 354 354 0 1
442             356:      6(int)   CompositeExtract 355 0
443             357:      6(int)   SubgroupFirstInvocationKHR 356
444             358:      6(int)   CompositeExtract 355 1
445             359:      6(int)   SubgroupFirstInvocationKHR 358
446             360:   26(ivec2)   CompositeConstruct 357 359
447             361:    196(ptr)   AccessChain 75(data) 352 104 78
448             362:      6(int)   CompositeExtract 360 0
449                                Store 361 362
450             363:    196(ptr)   AccessChain 75(data) 352 104 100
451             364:      6(int)   CompositeExtract 360 1
452                                Store 363 364
453             365:      6(int)   Load 8(invocation)
454             366:    203(ptr)   AccessChain 75(data) 104 104
455             367:   20(ivec4)   Load 366
456             368:  218(ivec3)   VectorShuffle 367 367 0 1 2
457             369:      6(int)   CompositeExtract 368 0
458             370:      6(int)   SubgroupFirstInvocationKHR 369
459             371:      6(int)   CompositeExtract 368 1
460             372:      6(int)   SubgroupFirstInvocationKHR 371
461             373:      6(int)   CompositeExtract 368 2
462             374:      6(int)   SubgroupFirstInvocationKHR 373
463             375:  218(ivec3)   CompositeConstruct 370 372 374
464             376:    196(ptr)   AccessChain 75(data) 365 104 78
465             377:      6(int)   CompositeExtract 375 0
466                                Store 376 377
467             378:    196(ptr)   AccessChain 75(data) 365 104 100
468             379:      6(int)   CompositeExtract 375 1
469                                Store 378 379
470             380:    196(ptr)   AccessChain 75(data) 365 104 121
471             381:      6(int)   CompositeExtract 375 2
472                                Store 380 381
473             382:      6(int)   Load 8(invocation)
474             383:    203(ptr)   AccessChain 75(data) 125 104
475             384:   20(ivec4)   Load 383
476             385:      6(int)   CompositeExtract 384 0
477             386:      6(int)   SubgroupFirstInvocationKHR 385
478             387:      6(int)   CompositeExtract 384 1
479             388:      6(int)   SubgroupFirstInvocationKHR 387
480             389:      6(int)   CompositeExtract 384 2
481             390:      6(int)   SubgroupFirstInvocationKHR 389
482             391:      6(int)   CompositeExtract 384 3
483             392:      6(int)   SubgroupFirstInvocationKHR 391
484             393:   20(ivec4)   CompositeConstruct 386 388 390 392
485             394:    203(ptr)   AccessChain 75(data) 382 104
486                                Store 394 393
487                                Branch 67
488              67:             Label
489                              Return
490                              FunctionEnd
491