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