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