aboutsummaryrefslogtreecommitdiff
path: root/Test/baseResults/spv.460.subgroupEXT.task.out
blob: efe30b75a1a7393d2d1c5d47f44270810ed54ad3 (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
spv.460.subgroupEXT.task
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 243

                              Capability StorageImageWriteWithoutFormat
                              Capability GroupNonUniform
                              Capability GroupNonUniformVote
                              Capability GroupNonUniformArithmetic
                              Capability GroupNonUniformBallot
                              Capability GroupNonUniformShuffle
                              Capability GroupNonUniformShuffleRelative
                              Capability GroupNonUniformClustered
                              Capability GroupNonUniformQuad
                              Capability MeshShadingEXT
                              Extension  "SPV_EXT_mesh_shader"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TaskEXT 4  "main" 35 41 56 61 77 102 123 124 129 130 133 134 135 136 137
                              ExecutionMode 4 LocalSize 32 1 1
                              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  "i"
                              Name 56  "mem"
                              Name 59  "block0"
                              MemberName 59(block0) 0  "uni_value"
                              Name 61  ""
                              Name 77  "uni_image"
                              Name 100  "Task"
                              MemberName 100(Task) 0  "dummy"
                              MemberName 100(Task) 1  "submesh"
                              Name 102  "mytask"
                              Name 123  "gl_SubgroupSize"
                              Name 124  "gl_SubgroupInvocationID"
                              Name 129  "gl_NumSubgroups"
                              Name 130  "gl_SubgroupID"
                              Name 133  "gl_SubgroupEqMask"
                              Name 134  "gl_SubgroupGeMask"
                              Name 135  "gl_SubgroupGtMask"
                              Name 136  "gl_SubgroupLeMask"
                              Name 137  "gl_SubgroupLtMask"
                              Name 143  "ballot"
                              Name 181  "ballot"
                              Name 216  "ballot"
                              Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
                              Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
                              MemberDecorate 59(block0) 0 Offset 0
                              Decorate 59(block0) Block
                              Decorate 61 DescriptorSet 0
                              Decorate 61 Binding 1
                              Decorate 77(uni_image) DescriptorSet 0
                              Decorate 77(uni_image) Binding 0
                              Decorate 77(uni_image) NonReadable
                              Decorate 123(gl_SubgroupSize) RelaxedPrecision
                              Decorate 123(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 124(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 124(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 129(gl_NumSubgroups) BuiltIn NumSubgroups
                              Decorate 130(gl_SubgroupID) BuiltIn SubgroupId
                              Decorate 133(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
                              Decorate 134(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
                              Decorate 135(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
                              Decorate 136(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
                              Decorate 137(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
                              Decorate 242 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
              51:     30(int) Constant 10
              52:             TypeBool
              54:             TypeArray 9(fvec4) 51
              55:             TypePointer Workgroup 54
         56(mem):     55(ptr) Variable Workgroup
      59(block0):             TypeStruct 30(int)
              60:             TypePointer Uniform 59(block0)
              61:     60(ptr) Variable Uniform
              62:             TypeInt 32 1
              63:     62(int) Constant 0
              64:             TypePointer Uniform 30(int)
              70:             TypePointer Workgroup 9(fvec4)
              73:     62(int) Constant 1
              75:             TypeImage 8(float) 2D nonsampled format:Unknown
              76:             TypePointer UniformConstant 75
   77(uni_image):     76(ptr) Variable UniformConstant
              81:             TypeVector 62(int) 2
              91:     30(int) Constant 1
              95:     30(int) Constant 264
              96:     30(int) Constant 2
              97:             TypeVector 8(float) 2
              98:     30(int) Constant 3
              99:             TypeArray 97(fvec2) 98
       100(Task):             TypeStruct 97(fvec2) 99
             101:             TypePointer TaskPayloadWorkgroupEXT 100(Task)
     102(mytask):    101(ptr) Variable TaskPayloadWorkgroupEXT
             103:    8(float) Constant 1106247680
             104:    8(float) Constant 1106771968
             105:   97(fvec2) ConstantComposite 103 104
             106:             TypePointer TaskPayloadWorkgroupEXT 97(fvec2)
             108:    8(float) Constant 1107296256
             109:    8(float) Constant 1107558400
             110:   97(fvec2) ConstantComposite 108 109
             112:    8(float) Constant 1107820544
             113:    8(float) Constant 1108082688
             114:   97(fvec2) ConstantComposite 112 113
             116:     62(int) Constant 2
123(gl_SubgroupSize):     37(ptr) Variable Input
124(gl_SubgroupInvocationID):     37(ptr) Variable Input
             125:     30(int) Constant 3400
             126:     30(int) Constant 72
             127:     30(int) Constant 2056
129(gl_NumSubgroups):     37(ptr) Variable Input
130(gl_SubgroupID):     37(ptr) Variable Input
             131:             TypeVector 30(int) 4
             132:             TypePointer Input 131(ivec4)
133(gl_SubgroupEqMask):    132(ptr) Variable Input
134(gl_SubgroupGeMask):    132(ptr) Variable Input
135(gl_SubgroupGtMask):    132(ptr) Variable Input
136(gl_SubgroupLeMask):    132(ptr) Variable Input
137(gl_SubgroupLtMask):    132(ptr) Variable Input
             142:             TypePointer Function 131(ivec4)
             144:    52(bool) ConstantFalse
             146:  131(ivec4) ConstantComposite 91 91 91 91
             160:    52(bool) ConstantTrue
             217:     30(int) Constant 85
             218:  131(ivec4) ConstantComposite 217 36 36 36
             241:     30(int) Constant 32
             242:   33(ivec3) ConstantComposite 241 91 91
         4(main):           2 Function None 3
               5:             Label
         32(iid):     31(ptr) Variable Function
         40(gid):     31(ptr) Variable Function
           44(i):     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(i) 36
                              Branch 45
              45:             Label
                              LoopMerge 47 48 None
                              Branch 49
              49:             Label
              50:     30(int) Load 44(i)
              53:    52(bool) ULessThan 50 51
                              BranchConditional 53 46 47
              46:               Label
              57:     30(int)   Load 44(i)
              58:     30(int)   Load 44(i)
              65:     64(ptr)   AccessChain 61 63
              66:     30(int)   Load 65
              67:     30(int)   IAdd 58 66
              68:    8(float)   ConvertUToF 67
              69:    9(fvec4)   CompositeConstruct 68 68 68 68
              71:     70(ptr)   AccessChain 56(mem) 57
                                Store 71 69
                                Branch 48
              48:               Label
              72:     30(int)   Load 44(i)
              74:     30(int)   IAdd 72 73
                                Store 44(i) 74
                                Branch 45
              47:             Label
              78:          75 Load 77(uni_image)
              79:     30(int) Load 32(iid)
              80:     62(int) Bitcast 79
              82:   81(ivec2) CompositeConstruct 80 80
              83:     30(int) Load 40(gid)
              84:     70(ptr) AccessChain 56(mem) 83
              85:    9(fvec4) Load 84
                              ImageWrite 78 82 85
              86:          75 Load 77(uni_image)
              87:     30(int) Load 32(iid)
              88:     62(int) Bitcast 87
              89:   81(ivec2) CompositeConstruct 88 88
              90:     30(int) Load 40(gid)
              92:     30(int) IAdd 90 91
              93:     70(ptr) AccessChain 56(mem) 92
              94:    9(fvec4) Load 93
                              ImageWrite 86 89 94
                              MemoryBarrier 91 95
                              ControlBarrier 96 96 95
             107:    106(ptr) AccessChain 102(mytask) 63
                              Store 107 105
             111:    106(ptr) AccessChain 102(mytask) 73 63
                              Store 111 110
             115:    106(ptr) AccessChain 102(mytask) 73 73
                              Store 115 114
             117:     30(int) Load 40(gid)
             118:     30(int) UMod 117 96
             119:    106(ptr) AccessChain 102(mytask) 73 118
             120:   97(fvec2) Load 119
             121:    106(ptr) AccessChain 102(mytask) 73 116
                              Store 121 120
                              MemoryBarrier 91 95
                              ControlBarrier 96 96 95
                              EmitMeshTasksEXT 98 91 91 102(mytask)
                              FunctionEnd
 6(basic_works():           2 Function None 3
               7:             Label
                              ControlBarrier 98 98 125
                              MemoryBarrier 98 125
                              MemoryBarrier 98 126
                              MemoryBarrier 98 127
             128:    52(bool) GroupNonUniformElect 98
                              MemoryBarrier 98 95
                              Return
                              FunctionEnd
13(ballot_works(vf4;):           2 Function None 11
          12(f4):     10(ptr) FunctionParameter
              14:             Label
     143(ballot):    142(ptr) Variable Function
             138:    9(fvec4) Load 12(f4)
             139:    9(fvec4) GroupNonUniformBroadcast 98 138 36
             140:    9(fvec4) Load 12(f4)
             141:    9(fvec4) GroupNonUniformBroadcastFirst 98 140
             145:  131(ivec4) GroupNonUniformBallot 98 144
                              Store 143(ballot) 145
             147:    52(bool) GroupNonUniformInverseBallot 98 146
             148:  131(ivec4) Load 143(ballot)
             149:    52(bool) GroupNonUniformBallotBitExtract 98 148 36
             150:  131(ivec4) Load 143(ballot)
             151:     30(int) GroupNonUniformBallotBitCount 98 Reduce 150
             152:  131(ivec4) Load 143(ballot)
             153:     30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 152
             154:  131(ivec4) Load 143(ballot)
             155:     30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 154
             156:  131(ivec4) Load 143(ballot)
             157:     30(int) GroupNonUniformBallotFindLSB 98 156
             158:  131(ivec4) Load 143(ballot)
             159:     30(int) GroupNonUniformBallotFindMSB 98 158
                              Return
                              FunctionEnd
16(vote_works(vf4;):           2 Function None 11
          15(f4):     10(ptr) FunctionParameter
              17:             Label
             161:    52(bool) GroupNonUniformAll 98 160
             162:    52(bool) GroupNonUniformAny 98 144
             163:    9(fvec4) Load 15(f4)
             164:    52(bool) GroupNonUniformAllEqual 98 163
                              Return
                              FunctionEnd
19(shuffle_works(vf4;):           2 Function None 11
          18(f4):     10(ptr) FunctionParameter
              20:             Label
             165:    9(fvec4) Load 18(f4)
             166:    9(fvec4) GroupNonUniformShuffle 98 165 36
             167:    9(fvec4) Load 18(f4)
             168:    9(fvec4) GroupNonUniformShuffleXor 98 167 91
             169:    9(fvec4) Load 18(f4)
             170:    9(fvec4) GroupNonUniformShuffleUp 98 169 91
             171:    9(fvec4) Load 18(f4)
             172:    9(fvec4) GroupNonUniformShuffleDown 98 171 91
                              Return
                              FunctionEnd
22(arith_works(vf4;):           2 Function None 11
          21(f4):     10(ptr) FunctionParameter
              23:             Label
     181(ballot):    142(ptr) Variable Function
             173:    9(fvec4) Load 21(f4)
             174:    9(fvec4) GroupNonUniformFAdd 98 Reduce 173
             175:    9(fvec4) Load 21(f4)
             176:    9(fvec4) GroupNonUniformFMul 98 Reduce 175
             177:    9(fvec4) Load 21(f4)
             178:    9(fvec4) GroupNonUniformFMin 98 Reduce 177
             179:    9(fvec4) Load 21(f4)
             180:    9(fvec4) GroupNonUniformFMax 98 Reduce 179
             182:  131(ivec4) Load 181(ballot)
             183:  131(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 182
             184:  131(ivec4) Load 181(ballot)
             185:  131(ivec4) GroupNonUniformBitwiseOr 98 Reduce 184
             186:  131(ivec4) Load 181(ballot)
             187:  131(ivec4) GroupNonUniformBitwiseXor 98 Reduce 186
             188:    9(fvec4) Load 21(f4)
             189:    9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 188
             190:    9(fvec4) Load 21(f4)
             191:    9(fvec4) GroupNonUniformFMul 98 InclusiveScan 190
             192:    9(fvec4) Load 21(f4)
             193:    9(fvec4) GroupNonUniformFMin 98 InclusiveScan 192
             194:    9(fvec4) Load 21(f4)
             195:    9(fvec4) GroupNonUniformFMax 98 InclusiveScan 194
             196:  131(ivec4) Load 181(ballot)
             197:  131(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 196
             198:  131(ivec4) Load 181(ballot)
             199:  131(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 198
             200:  131(ivec4) Load 181(ballot)
             201:  131(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 200
             202:    9(fvec4) Load 21(f4)
             203:    9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 202
             204:    9(fvec4) Load 21(f4)
             205:    9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 204
             206:    9(fvec4) Load 21(f4)
             207:    9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 206
             208:    9(fvec4) Load 21(f4)
             209:    9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 208
             210:  131(ivec4) Load 181(ballot)
             211:  131(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 210
             212:  131(ivec4) Load 181(ballot)
             213:  131(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 212
             214:  131(ivec4) Load 181(ballot)
             215:  131(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 214
                              Return
                              FunctionEnd
25(clustered_works(vf4;):           2 Function None 11
          24(f4):     10(ptr) FunctionParameter
              26:             Label
     216(ballot):    142(ptr) Variable Function
                              Store 216(ballot) 218
             219:    9(fvec4) Load 24(f4)
             220:    9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 219 96
             221:    9(fvec4) Load 24(f4)
             222:    9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 221 96
             223:    9(fvec4) Load 24(f4)
             224:    9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 223 96
             225:    9(fvec4) Load 24(f4)
             226:    9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 225 96
             227:  131(ivec4) Load 216(ballot)
             228:  131(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 227 96
             229:  131(ivec4) Load 216(ballot)
             230:  131(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 229 96
             231:  131(ivec4) Load 216(ballot)
             232:  131(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 231 96
                              Return
                              FunctionEnd
28(quad_works(vf4;):           2 Function None 11
          27(f4):     10(ptr) FunctionParameter
              29:             Label
             233:    9(fvec4) Load 27(f4)
             234:    9(fvec4) GroupNonUniformQuadBroadcast 98 233 36
             235:    9(fvec4) Load 27(f4)
             236:    9(fvec4) GroupNonUniformQuadSwap 98 235 36
             237:    9(fvec4) Load 27(f4)
             238:    9(fvec4) GroupNonUniformQuadSwap 98 237 91
             239:    9(fvec4) Load 27(f4)
             240:    9(fvec4) GroupNonUniformQuadSwap 98 239 96
                              Return
                              FunctionEnd