aboutsummaryrefslogtreecommitdiff
path: root/Test/baseResults/spv.460.subgroupEXT.mesh.out
blob: dd3de814210480d38450d991443de5f29226ad03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
spv.460.subgroupEXT.mesh
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 279

                              Capability ClipDistance
                              Capability CullDistance
                              Capability GroupNonUniform
                              Capability GroupNonUniformVote
                              Capability GroupNonUniformArithmetic
                              Capability GroupNonUniformBallot
                              Capability GroupNonUniformShuffle
                              Capability GroupNonUniformShuffleRelative
                              Capability GroupNonUniformClustered
                              Capability GroupNonUniformQuad
                              Capability FragmentShadingRateKHR
                              Capability MeshShadingEXT
                              Extension  "SPV_EXT_mesh_shader"
                              Extension  "SPV_KHR_fragment_shading_rate"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint MeshEXT 4  "main" 35 41 57 109 147 161 162 167 168 171 172 173 174 175
                              ExecutionMode 4 LocalSize 32 1 1
                              ExecutionMode 4 OutputVertices 81
                              ExecutionMode 4 OutputPrimitivesNV 32
                              ExecutionMode 4 OutputTrianglesNV
                              Source GLSL 460
                              SourceExtension  "GL_EXT_mesh_shader"
                              SourceExtension  "GL_KHR_shader_subgroup_arithmetic"
                              SourceExtension  "GL_KHR_shader_subgroup_ballot"
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              SourceExtension  "GL_KHR_shader_subgroup_clustered"
                              SourceExtension  "GL_KHR_shader_subgroup_quad"
                              SourceExtension  "GL_KHR_shader_subgroup_shuffle"
                              SourceExtension  "GL_KHR_shader_subgroup_shuffle_relative"
                              SourceExtension  "GL_KHR_shader_subgroup_vote"
                              Name 4  "main"
                              Name 6  "basic_works("
                              Name 13  "ballot_works(vf4;"
                              Name 12  "f4"
                              Name 16  "vote_works(vf4;"
                              Name 15  "f4"
                              Name 19  "shuffle_works(vf4;"
                              Name 18  "f4"
                              Name 22  "arith_works(vf4;"
                              Name 21  "f4"
                              Name 25  "clustered_works(vf4;"
                              Name 24  "f4"
                              Name 28  "quad_works(vf4;"
                              Name 27  "f4"
                              Name 32  "iid"
                              Name 35  "gl_LocalInvocationID"
                              Name 40  "gid"
                              Name 41  "gl_WorkGroupID"
                              Name 44  "vertexCount"
                              Name 46  "primitiveCount"
                              Name 54  "gl_MeshPerVertexEXT"
                              MemberName 54(gl_MeshPerVertexEXT) 0  "gl_Position"
                              MemberName 54(gl_MeshPerVertexEXT) 1  "gl_PointSize"
                              MemberName 54(gl_MeshPerVertexEXT) 2  "gl_ClipDistance"
                              MemberName 54(gl_MeshPerVertexEXT) 3  "gl_CullDistance"
                              Name 57  "gl_MeshVerticesEXT"
                              Name 106  "gl_MeshPerPrimitiveEXT"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 0  "gl_PrimitiveID"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
                              MemberName 106(gl_MeshPerPrimitiveEXT) 4  "gl_PrimitiveShadingRateEXT"
                              Name 109  "gl_MeshPrimitivesEXT"
                              Name 147  "gl_PrimitiveTriangleIndicesEXT"
                              Name 161  "gl_SubgroupSize"
                              Name 162  "gl_SubgroupInvocationID"
                              Name 167  "gl_NumSubgroups"
                              Name 168  "gl_SubgroupID"
                              Name 171  "gl_SubgroupEqMask"
                              Name 172  "gl_SubgroupGeMask"
                              Name 173  "gl_SubgroupGtMask"
                              Name 174  "gl_SubgroupLeMask"
                              Name 175  "gl_SubgroupLtMask"
                              Name 181  "ballot"
                              Name 218  "ballot"
                              Name 253  "ballot"
                              Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
                              MemberDecorate 54(gl_MeshPerVertexEXT) 0 BuiltIn Position
                              MemberDecorate 54(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
                              MemberDecorate 54(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
                              MemberDecorate 54(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
                              Decorate 54(gl_MeshPerVertexEXT) Block
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
                              MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
                              Decorate 106(gl_MeshPerPrimitiveEXT) Block
                              Decorate 147(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
                              Decorate 161(gl_SubgroupSize) RelaxedPrecision
                              Decorate 161(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 162(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 162(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 167(gl_NumSubgroups) BuiltIn NumSubgroups
                              Decorate 168(gl_SubgroupID) BuiltIn SubgroupId
                              Decorate 171(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
                              Decorate 172(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
                              Decorate 173(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
                              Decorate 174(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
                              Decorate 175(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
                              Decorate 278 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypePointer Function 9(fvec4)
              11:             TypeFunction 2 10(ptr)
              30:             TypeInt 32 0
              31:             TypePointer Function 30(int)
              33:             TypeVector 30(int) 3
              34:             TypePointer Input 33(ivec3)
35(gl_LocalInvocationID):     34(ptr) Variable Input
              36:     30(int) Constant 0
              37:             TypePointer Input 30(int)
41(gl_WorkGroupID):     34(ptr) Variable Input
              45:     30(int) Constant 81
              47:     30(int) Constant 32
              50:     30(int) Constant 4
              51:             TypeArray 8(float) 50
              52:     30(int) Constant 3
              53:             TypeArray 8(float) 52
54(gl_MeshPerVertexEXT):             TypeStruct 9(fvec4) 8(float) 51 53
              55:             TypeArray 54(gl_MeshPerVertexEXT) 45
              56:             TypePointer Output 55
57(gl_MeshVerticesEXT):     56(ptr) Variable Output
              59:             TypeInt 32 1
              60:     59(int) Constant 0
              61:    8(float) Constant 1065353216
              62:    9(fvec4) ConstantComposite 61 61 61 61
              63:             TypePointer Output 9(fvec4)
              66:     59(int) Constant 1
              67:    8(float) Constant 1073741824
              68:             TypePointer Output 8(float)
              71:     59(int) Constant 2
              72:     59(int) Constant 3
              73:    8(float) Constant 1077936128
              76:    8(float) Constant 1082130432
              78:     30(int) Constant 1
              79:     30(int) Constant 264
              80:     30(int) Constant 2
             105:             TypeBool
106(gl_MeshPerPrimitiveEXT):             TypeStruct 59(int) 59(int) 59(int) 105(bool) 59(int)
             107:             TypeArray 106(gl_MeshPerPrimitiveEXT) 47
             108:             TypePointer Output 107
109(gl_MeshPrimitivesEXT):    108(ptr) Variable Output
             111:     59(int) Constant 6
             112:             TypePointer Output 59(int)
             115:     59(int) Constant 7
             118:     59(int) Constant 8
             121:   105(bool) ConstantFalse
             122:             TypePointer Output 105(bool)
             145:             TypeArray 33(ivec3) 47
             146:             TypePointer Output 145
147(gl_PrimitiveTriangleIndicesEXT):    146(ptr) Variable Output
             148:   33(ivec3) ConstantComposite 78 78 78
             149:             TypePointer Output 33(ivec3)
             153:   33(ivec3) ConstantComposite 80 80 80
161(gl_SubgroupSize):     37(ptr) Variable Input
162(gl_SubgroupInvocationID):     37(ptr) Variable Input
             163:     30(int) Constant 3400
             164:     30(int) Constant 72
             165:     30(int) Constant 2056
167(gl_NumSubgroups):     37(ptr) Variable Input
168(gl_SubgroupID):     37(ptr) Variable Input
             169:             TypeVector 30(int) 4
             170:             TypePointer Input 169(ivec4)
171(gl_SubgroupEqMask):    170(ptr) Variable Input
172(gl_SubgroupGeMask):    170(ptr) Variable Input
173(gl_SubgroupGtMask):    170(ptr) Variable Input
174(gl_SubgroupLeMask):    170(ptr) Variable Input
175(gl_SubgroupLtMask):    170(ptr) Variable Input
             180:             TypePointer Function 169(ivec4)
             183:  169(ivec4) ConstantComposite 78 78 78 78
             197:   105(bool) ConstantTrue
             254:     30(int) Constant 85
             255:  169(ivec4) ConstantComposite 254 36 36 36
             278:   33(ivec3) ConstantComposite 47 78 78
         4(main):           2 Function None 3
               5:             Label
         32(iid):     31(ptr) Variable Function
         40(gid):     31(ptr) Variable Function
 44(vertexCount):     31(ptr) Variable Function
46(primitiveCount):     31(ptr) Variable Function
              38:     37(ptr) AccessChain 35(gl_LocalInvocationID) 36
              39:     30(int) Load 38
                              Store 32(iid) 39
              42:     37(ptr) AccessChain 41(gl_WorkGroupID) 36
              43:     30(int) Load 42
                              Store 40(gid) 43
                              Store 44(vertexCount) 45
                              Store 46(primitiveCount) 47
              48:     30(int) Load 44(vertexCount)
              49:     30(int) Load 46(primitiveCount)
                              SetMeshOutputsEXT 48 49
              58:     30(int) Load 32(iid)
              64:     63(ptr) AccessChain 57(gl_MeshVerticesEXT) 58 60
                              Store 64 62
              65:     30(int) Load 32(iid)
              69:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 65 66
                              Store 69 67
              70:     30(int) Load 32(iid)
              74:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 70 71 72
                              Store 74 73
              75:     30(int) Load 32(iid)
              77:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 75 72 71
                              Store 77 76
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
              81:     30(int) Load 32(iid)
              82:     30(int) IAdd 81 78
              83:     30(int) Load 32(iid)
              84:     63(ptr) AccessChain 57(gl_MeshVerticesEXT) 83 60
              85:    9(fvec4) Load 84
              86:     63(ptr) AccessChain 57(gl_MeshVerticesEXT) 82 60
                              Store 86 85
              87:     30(int) Load 32(iid)
              88:     30(int) IAdd 87 78
              89:     30(int) Load 32(iid)
              90:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 89 66
              91:    8(float) Load 90
              92:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 88 66
                              Store 92 91
              93:     30(int) Load 32(iid)
              94:     30(int) IAdd 93 78
              95:     30(int) Load 32(iid)
              96:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 95 71 72
              97:    8(float) Load 96
              98:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 94 71 72
                              Store 98 97
              99:     30(int) Load 32(iid)
             100:     30(int) IAdd 99 78
             101:     30(int) Load 32(iid)
             102:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 101 72 71
             103:    8(float) Load 102
             104:     68(ptr) AccessChain 57(gl_MeshVerticesEXT) 100 72 71
                              Store 104 103
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
             110:     30(int) Load 32(iid)
             113:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 110 60
                              Store 113 111
             114:     30(int) Load 32(iid)
             116:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 114 66
                              Store 116 115
             117:     30(int) Load 32(iid)
             119:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 117 71
                              Store 119 118
             120:     30(int) Load 32(iid)
             123:    122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 120 72
                              Store 123 121
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
             124:     30(int) Load 32(iid)
             125:     30(int) IAdd 124 78
             126:     30(int) Load 32(iid)
             127:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 126 60
             128:     59(int) Load 127
             129:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 125 60
                              Store 129 128
             130:     30(int) Load 32(iid)
             131:     30(int) IAdd 130 78
             132:     30(int) Load 32(iid)
             133:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 132 66
             134:     59(int) Load 133
             135:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 131 66
                              Store 135 134
             136:     30(int) Load 32(iid)
             137:     30(int) IAdd 136 78
             138:     30(int) Load 32(iid)
             139:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 138 71
             140:     59(int) Load 139
             141:    112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 137 71
                              Store 141 140
             142:     30(int) Load 32(iid)
             143:     30(int) IAdd 142 78
             144:    122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 143 72
                              Store 144 121
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
             150:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 60
                              Store 150 148
             151:     30(int) Load 46(primitiveCount)
             152:     30(int) ISub 151 78
             154:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 152
                              Store 154 153
             155:     30(int) Load 40(gid)
             156:     30(int) Load 40(gid)
             157:     30(int) ISub 156 78
             158:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 157
             159:   33(ivec3) Load 158
             160:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 155
                              Store 160 159
                              MemoryBarrier 78 79
                              ControlBarrier 80 80 79
                              Return
                              FunctionEnd
 6(basic_works():           2 Function None 3
               7:             Label
                              ControlBarrier 52 52 163
                              MemoryBarrier 52 163
                              MemoryBarrier 52 164
                              MemoryBarrier 52 165
             166:   105(bool) GroupNonUniformElect 52
                              MemoryBarrier 52 79
                              Return
                              FunctionEnd
13(ballot_works(vf4;):           2 Function None 11
          12(f4):     10(ptr) FunctionParameter
              14:             Label
     181(ballot):    180(ptr) Variable Function
             176:    9(fvec4) Load 12(f4)
             177:    9(fvec4) GroupNonUniformBroadcast 52 176 36
             178:    9(fvec4) Load 12(f4)
             179:    9(fvec4) GroupNonUniformBroadcastFirst 52 178
             182:  169(ivec4) GroupNonUniformBallot 52 121
                              Store 181(ballot) 182
             184:   105(bool) GroupNonUniformInverseBallot 52 183
             185:  169(ivec4) Load 181(ballot)
             186:   105(bool) GroupNonUniformBallotBitExtract 52 185 36
             187:  169(ivec4) Load 181(ballot)
             188:     30(int) GroupNonUniformBallotBitCount 52 Reduce 187
             189:  169(ivec4) Load 181(ballot)
             190:     30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 189
             191:  169(ivec4) Load 181(ballot)
             192:     30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 191
             193:  169(ivec4) Load 181(ballot)
             194:     30(int) GroupNonUniformBallotFindLSB 52 193
             195:  169(ivec4) Load 181(ballot)
             196:     30(int) GroupNonUniformBallotFindMSB 52 195
                              Return
                              FunctionEnd
16(vote_works(vf4;):           2 Function None 11
          15(f4):     10(ptr) FunctionParameter
              17:             Label
             198:   105(bool) GroupNonUniformAll 52 197
             199:   105(bool) GroupNonUniformAny 52 121
             200:    9(fvec4) Load 15(f4)
             201:   105(bool) GroupNonUniformAllEqual 52 200
                              Return
                              FunctionEnd
19(shuffle_works(vf4;):           2 Function None 11
          18(f4):     10(ptr) FunctionParameter
              20:             Label
             202:    9(fvec4) Load 18(f4)
             203:    9(fvec4) GroupNonUniformShuffle 52 202 36
             204:    9(fvec4) Load 18(f4)
             205:    9(fvec4) GroupNonUniformShuffleXor 52 204 78
             206:    9(fvec4) Load 18(f4)
             207:    9(fvec4) GroupNonUniformShuffleUp 52 206 78
             208:    9(fvec4) Load 18(f4)
             209:    9(fvec4) GroupNonUniformShuffleDown 52 208 78
                              Return
                              FunctionEnd
22(arith_works(vf4;):           2 Function None 11
          21(f4):     10(ptr) FunctionParameter
              23:             Label
     218(ballot):    180(ptr) Variable Function
             210:    9(fvec4) Load 21(f4)
             211:    9(fvec4) GroupNonUniformFAdd 52 Reduce 210
             212:    9(fvec4) Load 21(f4)
             213:    9(fvec4) GroupNonUniformFMul 52 Reduce 212
             214:    9(fvec4) Load 21(f4)
             215:    9(fvec4) GroupNonUniformFMin 52 Reduce 214
             216:    9(fvec4) Load 21(f4)
             217:    9(fvec4) GroupNonUniformFMax 52 Reduce 216
             219:  169(ivec4) Load 218(ballot)
             220:  169(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 219
             221:  169(ivec4) Load 218(ballot)
             222:  169(ivec4) GroupNonUniformBitwiseOr 52 Reduce 221
             223:  169(ivec4) Load 218(ballot)
             224:  169(ivec4) GroupNonUniformBitwiseXor 52 Reduce 223
             225:    9(fvec4) Load 21(f4)
             226:    9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 225
             227:    9(fvec4) Load 21(f4)
             228:    9(fvec4) GroupNonUniformFMul 52 InclusiveScan 227
             229:    9(fvec4) Load 21(f4)
             230:    9(fvec4) GroupNonUniformFMin 52 InclusiveScan 229
             231:    9(fvec4) Load 21(f4)
             232:    9(fvec4) GroupNonUniformFMax 52 InclusiveScan 231
             233:  169(ivec4) Load 218(ballot)
             234:  169(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 233
             235:  169(ivec4) Load 218(ballot)
             236:  169(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 235
             237:  169(ivec4) Load 218(ballot)
             238:  169(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 237
             239:    9(fvec4) Load 21(f4)
             240:    9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 239
             241:    9(fvec4) Load 21(f4)
             242:    9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 241
             243:    9(fvec4) Load 21(f4)
             244:    9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 243
             245:    9(fvec4) Load 21(f4)
             246:    9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 245
             247:  169(ivec4) Load 218(ballot)
             248:  169(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 247
             249:  169(ivec4) Load 218(ballot)
             250:  169(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 249
             251:  169(ivec4) Load 218(ballot)
             252:  169(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 251
                              Return
                              FunctionEnd
25(clustered_works(vf4;):           2 Function None 11
          24(f4):     10(ptr) FunctionParameter
              26:             Label
     253(ballot):    180(ptr) Variable Function
                              Store 253(ballot) 255
             256:    9(fvec4) Load 24(f4)
             257:    9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 256 80
             258:    9(fvec4) Load 24(f4)
             259:    9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 258 80
             260:    9(fvec4) Load 24(f4)
             261:    9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 260 80
             262:    9(fvec4) Load 24(f4)
             263:    9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 262 80
             264:  169(ivec4) Load 253(ballot)
             265:  169(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 264 80
             266:  169(ivec4) Load 253(ballot)
             267:  169(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 266 80
             268:  169(ivec4) Load 253(ballot)
             269:  169(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 268 80
                              Return
                              FunctionEnd
28(quad_works(vf4;):           2 Function None 11
          27(f4):     10(ptr) FunctionParameter
              29:             Label
             270:    9(fvec4) Load 27(f4)
             271:    9(fvec4) GroupNonUniformQuadBroadcast 52 270 36
             272:    9(fvec4) Load 27(f4)
             273:    9(fvec4) GroupNonUniformQuadSwap 52 272 36
             274:    9(fvec4) Load 27(f4)
             275:    9(fvec4) GroupNonUniformQuadSwap 52 274 78
             276:    9(fvec4) Load 27(f4)
             277:    9(fvec4) GroupNonUniformQuadSwap 52 276 80
                              Return
                              FunctionEnd