glslang/Test/baseResults/spv.subgroupBallot.comp.out
Jeremy Hayes 6d5b40f051 Generate separate stores for partially swizzled memory stores
Full vector and fully specified vector swizzle stores are not affected by this change, only partial swizzles ie swizzles with fewer components than the vector being stored to.

Previously the vector being stored to loaded and any components not specified in the swizzle were used to create a full store to the vector.

While this change generates more SPIR-V instructions, it is necessary for correctness.

Fixes #2518.
2021-07-28 14:55:45 -06:00

576 lines
31 KiB
Plaintext

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