glslang/Test/baseResults/spv.subgroupQuad.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

880 lines
45 KiB
Plaintext

spv.subgroupQuad.comp
// Module Version 10300
// Generated by (magic number): 8000a
// Id's are bound by 696
Capability Shader
Capability Float64
Capability GroupNonUniform
Capability GroupNonUniformQuad
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_quad"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 24 "Buffers"
MemberName 24(Buffers) 0 "f4"
MemberName 24(Buffers) 1 "i4"
MemberName 24(Buffers) 2 "u4"
MemberName 24(Buffers) 3 "d4"
Name 27 "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
MemberDecorate 24(Buffers) 0 Offset 0
MemberDecorate 24(Buffers) 1 Offset 16
MemberDecorate 24(Buffers) 2 Offset 32
MemberDecorate 24(Buffers) 3 Offset 64
Decorate 24(Buffers) Block
Decorate 27(data) DescriptorSet 0
Decorate 27(data) Binding 0
Decorate 695 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: TypeFloat 32
18: TypeVector 17(float) 4
19: TypeInt 32 1
20: TypeVector 19(int) 4
21: TypeVector 6(int) 4
22: TypeFloat 64
23: TypeVector 22(float64_t) 4
24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4)
25: TypeArray 24(Buffers) 15
26: TypePointer StorageBuffer 25
27(data): 26(ptr) Variable StorageBuffer
29: 19(int) Constant 0
30: 6(int) Constant 0
31: TypePointer StorageBuffer 17(float)
34: 6(int) Constant 1
35: 6(int) Constant 3
39: 19(int) Constant 1
40: TypeVector 17(float) 2
41: TypePointer StorageBuffer 18(fvec4)
51: 19(int) Constant 2
52: TypeVector 17(float) 3
61: 6(int) Constant 2
65: 19(int) Constant 3
71: TypePointer StorageBuffer 19(int)
77: TypeVector 19(int) 2
78: TypePointer StorageBuffer 20(ivec4)
88: TypeVector 19(int) 3
105: TypePointer StorageBuffer 6(int)
111: TypeVector 6(int) 2
112: TypePointer StorageBuffer 21(ivec4)
122: TypeVector 6(int) 3
139: TypePointer StorageBuffer 22(float64_t)
145: TypeVector 22(float64_t) 2
146: TypePointer StorageBuffer 23(f64vec4)
156: TypeVector 22(float64_t) 3
175: TypeBool
184: 77(ivec2) ConstantComposite 29 29
185: TypeVector 175(bool) 2
188: 77(ivec2) ConstantComposite 39 39
198: 88(ivec3) ConstantComposite 29 29 29
199: TypeVector 175(bool) 3
202: 88(ivec3) ConstantComposite 39 39 39
213: 20(ivec4) ConstantComposite 29 29 29 29
214: TypeVector 175(bool) 4
217: 20(ivec4) ConstantComposite 39 39 39 39
694: 6(int) Constant 8
695: 122(ivec3) ConstantComposite 694 34 34
4(main): 2 Function None 3
5: Label
8(invocation): 7(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
28: 6(int) Load 8(invocation)
32: 31(ptr) AccessChain 27(data) 29 29 30
33: 17(float) Load 32
36: 17(float) GroupNonUniformQuadBroadcast 35 33 34
37: 31(ptr) AccessChain 27(data) 28 29 30
Store 37 36
38: 6(int) Load 8(invocation)
42: 41(ptr) AccessChain 27(data) 39 29
43: 18(fvec4) Load 42
44: 40(fvec2) VectorShuffle 43 43 0 1
45: 40(fvec2) GroupNonUniformQuadBroadcast 35 44 34
46: 31(ptr) AccessChain 27(data) 38 29 30
47: 17(float) CompositeExtract 45 0
Store 46 47
48: 31(ptr) AccessChain 27(data) 38 29 34
49: 17(float) CompositeExtract 45 1
Store 48 49
50: 6(int) Load 8(invocation)
53: 41(ptr) AccessChain 27(data) 51 29
54: 18(fvec4) Load 53
55: 52(fvec3) VectorShuffle 54 54 0 1 2
56: 52(fvec3) GroupNonUniformQuadBroadcast 35 55 34
57: 31(ptr) AccessChain 27(data) 50 29 30
58: 17(float) CompositeExtract 56 0
Store 57 58
59: 31(ptr) AccessChain 27(data) 50 29 34
60: 17(float) CompositeExtract 56 1
Store 59 60
62: 31(ptr) AccessChain 27(data) 50 29 61
63: 17(float) CompositeExtract 56 2
Store 62 63
64: 6(int) Load 8(invocation)
66: 41(ptr) AccessChain 27(data) 65 29
67: 18(fvec4) Load 66
68: 18(fvec4) GroupNonUniformQuadBroadcast 35 67 34
69: 41(ptr) AccessChain 27(data) 64 29
Store 69 68
70: 6(int) Load 8(invocation)
72: 71(ptr) AccessChain 27(data) 29 39 30
73: 19(int) Load 72
74: 19(int) GroupNonUniformQuadBroadcast 35 73 34
75: 71(ptr) AccessChain 27(data) 70 39 30
Store 75 74
76: 6(int) Load 8(invocation)
79: 78(ptr) AccessChain 27(data) 39 39
80: 20(ivec4) Load 79
81: 77(ivec2) VectorShuffle 80 80 0 1
82: 77(ivec2) GroupNonUniformQuadBroadcast 35 81 34
83: 71(ptr) AccessChain 27(data) 76 39 30
84: 19(int) CompositeExtract 82 0
Store 83 84
85: 71(ptr) AccessChain 27(data) 76 39 34
86: 19(int) CompositeExtract 82 1
Store 85 86
87: 6(int) Load 8(invocation)
89: 78(ptr) AccessChain 27(data) 51 39
90: 20(ivec4) Load 89
91: 88(ivec3) VectorShuffle 90 90 0 1 2
92: 88(ivec3) GroupNonUniformQuadBroadcast 35 91 34
93: 71(ptr) AccessChain 27(data) 87 39 30
94: 19(int) CompositeExtract 92 0
Store 93 94
95: 71(ptr) AccessChain 27(data) 87 39 34
96: 19(int) CompositeExtract 92 1
Store 95 96
97: 71(ptr) AccessChain 27(data) 87 39 61
98: 19(int) CompositeExtract 92 2
Store 97 98
99: 6(int) Load 8(invocation)
100: 78(ptr) AccessChain 27(data) 65 39
101: 20(ivec4) Load 100
102: 20(ivec4) GroupNonUniformQuadBroadcast 35 101 34
103: 78(ptr) AccessChain 27(data) 99 39
Store 103 102
104: 6(int) Load 8(invocation)
106: 105(ptr) AccessChain 27(data) 29 51 30
107: 6(int) Load 106
108: 6(int) GroupNonUniformQuadBroadcast 35 107 34
109: 105(ptr) AccessChain 27(data) 104 51 30
Store 109 108
110: 6(int) Load 8(invocation)
113: 112(ptr) AccessChain 27(data) 39 51
114: 21(ivec4) Load 113
115: 111(ivec2) VectorShuffle 114 114 0 1
116: 111(ivec2) GroupNonUniformQuadBroadcast 35 115 34
117: 105(ptr) AccessChain 27(data) 110 51 30
118: 6(int) CompositeExtract 116 0
Store 117 118
119: 105(ptr) AccessChain 27(data) 110 51 34
120: 6(int) CompositeExtract 116 1
Store 119 120
121: 6(int) Load 8(invocation)
123: 112(ptr) AccessChain 27(data) 51 51
124: 21(ivec4) Load 123
125: 122(ivec3) VectorShuffle 124 124 0 1 2
126: 122(ivec3) GroupNonUniformQuadBroadcast 35 125 34
127: 105(ptr) AccessChain 27(data) 121 51 30
128: 6(int) CompositeExtract 126 0
Store 127 128
129: 105(ptr) AccessChain 27(data) 121 51 34
130: 6(int) CompositeExtract 126 1
Store 129 130
131: 105(ptr) AccessChain 27(data) 121 51 61
132: 6(int) CompositeExtract 126 2
Store 131 132
133: 6(int) Load 8(invocation)
134: 112(ptr) AccessChain 27(data) 65 51
135: 21(ivec4) Load 134
136: 21(ivec4) GroupNonUniformQuadBroadcast 35 135 34
137: 112(ptr) AccessChain 27(data) 133 51
Store 137 136
138: 6(int) Load 8(invocation)
140: 139(ptr) AccessChain 27(data) 29 65 30
141:22(float64_t) Load 140
142:22(float64_t) GroupNonUniformQuadBroadcast 35 141 34
143: 139(ptr) AccessChain 27(data) 138 65 30
Store 143 142
144: 6(int) Load 8(invocation)
147: 146(ptr) AccessChain 27(data) 39 65
148: 23(f64vec4) Load 147
149:145(f64vec2) VectorShuffle 148 148 0 1
150:145(f64vec2) GroupNonUniformQuadBroadcast 35 149 34
151: 139(ptr) AccessChain 27(data) 144 65 30
152:22(float64_t) CompositeExtract 150 0
Store 151 152
153: 139(ptr) AccessChain 27(data) 144 65 34
154:22(float64_t) CompositeExtract 150 1
Store 153 154
155: 6(int) Load 8(invocation)
157: 146(ptr) AccessChain 27(data) 51 65
158: 23(f64vec4) Load 157
159:156(f64vec3) VectorShuffle 158 158 0 1 2
160:156(f64vec3) GroupNonUniformQuadBroadcast 35 159 34
161: 139(ptr) AccessChain 27(data) 155 65 30
162:22(float64_t) CompositeExtract 160 0
Store 161 162
163: 139(ptr) AccessChain 27(data) 155 65 34
164:22(float64_t) CompositeExtract 160 1
Store 163 164
165: 139(ptr) AccessChain 27(data) 155 65 61
166:22(float64_t) CompositeExtract 160 2
Store 165 166
167: 6(int) Load 8(invocation)
168: 146(ptr) AccessChain 27(data) 65 65
169: 23(f64vec4) Load 168
170: 23(f64vec4) GroupNonUniformQuadBroadcast 35 169 34
171: 146(ptr) AccessChain 27(data) 167 65
Store 171 170
172: 6(int) Load 8(invocation)
173: 71(ptr) AccessChain 27(data) 29 39 30
174: 19(int) Load 173
176: 175(bool) SLessThan 174 29
177: 175(bool) GroupNonUniformQuadBroadcast 35 176 34
178: 19(int) Select 177 39 29
179: 71(ptr) AccessChain 27(data) 172 39 30
Store 179 178
180: 6(int) Load 8(invocation)
181: 78(ptr) AccessChain 27(data) 39 39
182: 20(ivec4) Load 181
183: 77(ivec2) VectorShuffle 182 182 0 1
186: 185(bvec2) SLessThan 183 184
187: 185(bvec2) GroupNonUniformQuadBroadcast 35 186 34
189: 77(ivec2) Select 187 188 184
190: 71(ptr) AccessChain 27(data) 180 39 30
191: 19(int) CompositeExtract 189 0
Store 190 191
192: 71(ptr) AccessChain 27(data) 180 39 34
193: 19(int) CompositeExtract 189 1
Store 192 193
194: 6(int) Load 8(invocation)
195: 78(ptr) AccessChain 27(data) 39 39
196: 20(ivec4) Load 195
197: 88(ivec3) VectorShuffle 196 196 0 1 2
200: 199(bvec3) SLessThan 197 198
201: 199(bvec3) GroupNonUniformQuadBroadcast 35 200 34
203: 88(ivec3) Select 201 202 198
204: 71(ptr) AccessChain 27(data) 194 39 30
205: 19(int) CompositeExtract 203 0
Store 204 205
206: 71(ptr) AccessChain 27(data) 194 39 34
207: 19(int) CompositeExtract 203 1
Store 206 207
208: 71(ptr) AccessChain 27(data) 194 39 61
209: 19(int) CompositeExtract 203 2
Store 208 209
210: 6(int) Load 8(invocation)
211: 78(ptr) AccessChain 27(data) 39 39
212: 20(ivec4) Load 211
215: 214(bvec4) SLessThan 212 213
216: 214(bvec4) GroupNonUniformQuadBroadcast 35 215 34
218: 20(ivec4) Select 216 217 213
219: 78(ptr) AccessChain 27(data) 210 39
Store 219 218
220: 6(int) Load 8(invocation)
221: 31(ptr) AccessChain 27(data) 29 29 30
222: 17(float) Load 221
223: 17(float) GroupNonUniformQuadSwap 35 222 30
224: 31(ptr) AccessChain 27(data) 220 29 30
Store 224 223
225: 6(int) Load 8(invocation)
226: 41(ptr) AccessChain 27(data) 39 29
227: 18(fvec4) Load 226
228: 40(fvec2) VectorShuffle 227 227 0 1
229: 40(fvec2) GroupNonUniformQuadSwap 35 228 30
230: 31(ptr) AccessChain 27(data) 225 29 30
231: 17(float) CompositeExtract 229 0
Store 230 231
232: 31(ptr) AccessChain 27(data) 225 29 34
233: 17(float) CompositeExtract 229 1
Store 232 233
234: 6(int) Load 8(invocation)
235: 41(ptr) AccessChain 27(data) 51 29
236: 18(fvec4) Load 235
237: 52(fvec3) VectorShuffle 236 236 0 1 2
238: 52(fvec3) GroupNonUniformQuadSwap 35 237 30
239: 31(ptr) AccessChain 27(data) 234 29 30
240: 17(float) CompositeExtract 238 0
Store 239 240
241: 31(ptr) AccessChain 27(data) 234 29 34
242: 17(float) CompositeExtract 238 1
Store 241 242
243: 31(ptr) AccessChain 27(data) 234 29 61
244: 17(float) CompositeExtract 238 2
Store 243 244
245: 6(int) Load 8(invocation)
246: 41(ptr) AccessChain 27(data) 65 29
247: 18(fvec4) Load 246
248: 18(fvec4) GroupNonUniformQuadSwap 35 247 30
249: 41(ptr) AccessChain 27(data) 245 29
Store 249 248
250: 6(int) Load 8(invocation)
251: 71(ptr) AccessChain 27(data) 29 39 30
252: 19(int) Load 251
253: 19(int) GroupNonUniformQuadSwap 35 252 30
254: 71(ptr) AccessChain 27(data) 250 39 30
Store 254 253
255: 6(int) Load 8(invocation)
256: 78(ptr) AccessChain 27(data) 39 39
257: 20(ivec4) Load 256
258: 77(ivec2) VectorShuffle 257 257 0 1
259: 77(ivec2) GroupNonUniformQuadSwap 35 258 30
260: 71(ptr) AccessChain 27(data) 255 39 30
261: 19(int) CompositeExtract 259 0
Store 260 261
262: 71(ptr) AccessChain 27(data) 255 39 34
263: 19(int) CompositeExtract 259 1
Store 262 263
264: 6(int) Load 8(invocation)
265: 78(ptr) AccessChain 27(data) 51 39
266: 20(ivec4) Load 265
267: 88(ivec3) VectorShuffle 266 266 0 1 2
268: 88(ivec3) GroupNonUniformQuadSwap 35 267 30
269: 71(ptr) AccessChain 27(data) 264 39 30
270: 19(int) CompositeExtract 268 0
Store 269 270
271: 71(ptr) AccessChain 27(data) 264 39 34
272: 19(int) CompositeExtract 268 1
Store 271 272
273: 71(ptr) AccessChain 27(data) 264 39 61
274: 19(int) CompositeExtract 268 2
Store 273 274
275: 6(int) Load 8(invocation)
276: 78(ptr) AccessChain 27(data) 65 39
277: 20(ivec4) Load 276
278: 20(ivec4) GroupNonUniformQuadSwap 35 277 30
279: 78(ptr) AccessChain 27(data) 275 39
Store 279 278
280: 6(int) Load 8(invocation)
281: 105(ptr) AccessChain 27(data) 29 51 30
282: 6(int) Load 281
283: 6(int) GroupNonUniformQuadSwap 35 282 30
284: 105(ptr) AccessChain 27(data) 280 51 30
Store 284 283
285: 6(int) Load 8(invocation)
286: 112(ptr) AccessChain 27(data) 39 51
287: 21(ivec4) Load 286
288: 111(ivec2) VectorShuffle 287 287 0 1
289: 111(ivec2) GroupNonUniformQuadSwap 35 288 30
290: 105(ptr) AccessChain 27(data) 285 51 30
291: 6(int) CompositeExtract 289 0
Store 290 291
292: 105(ptr) AccessChain 27(data) 285 51 34
293: 6(int) CompositeExtract 289 1
Store 292 293
294: 6(int) Load 8(invocation)
295: 112(ptr) AccessChain 27(data) 51 51
296: 21(ivec4) Load 295
297: 122(ivec3) VectorShuffle 296 296 0 1 2
298: 122(ivec3) GroupNonUniformQuadSwap 35 297 30
299: 105(ptr) AccessChain 27(data) 294 51 30
300: 6(int) CompositeExtract 298 0
Store 299 300
301: 105(ptr) AccessChain 27(data) 294 51 34
302: 6(int) CompositeExtract 298 1
Store 301 302
303: 105(ptr) AccessChain 27(data) 294 51 61
304: 6(int) CompositeExtract 298 2
Store 303 304
305: 6(int) Load 8(invocation)
306: 112(ptr) AccessChain 27(data) 65 51
307: 21(ivec4) Load 306
308: 21(ivec4) GroupNonUniformQuadSwap 35 307 30
309: 112(ptr) AccessChain 27(data) 305 51
Store 309 308
310: 6(int) Load 8(invocation)
311: 139(ptr) AccessChain 27(data) 29 65 30
312:22(float64_t) Load 311
313:22(float64_t) GroupNonUniformQuadSwap 35 312 30
314: 139(ptr) AccessChain 27(data) 310 65 30
Store 314 313
315: 6(int) Load 8(invocation)
316: 146(ptr) AccessChain 27(data) 39 65
317: 23(f64vec4) Load 316
318:145(f64vec2) VectorShuffle 317 317 0 1
319:145(f64vec2) GroupNonUniformQuadSwap 35 318 30
320: 139(ptr) AccessChain 27(data) 315 65 30
321:22(float64_t) CompositeExtract 319 0
Store 320 321
322: 139(ptr) AccessChain 27(data) 315 65 34
323:22(float64_t) CompositeExtract 319 1
Store 322 323
324: 6(int) Load 8(invocation)
325: 146(ptr) AccessChain 27(data) 51 65
326: 23(f64vec4) Load 325
327:156(f64vec3) VectorShuffle 326 326 0 1 2
328:156(f64vec3) GroupNonUniformQuadSwap 35 327 30
329: 139(ptr) AccessChain 27(data) 324 65 30
330:22(float64_t) CompositeExtract 328 0
Store 329 330
331: 139(ptr) AccessChain 27(data) 324 65 34
332:22(float64_t) CompositeExtract 328 1
Store 331 332
333: 139(ptr) AccessChain 27(data) 324 65 61
334:22(float64_t) CompositeExtract 328 2
Store 333 334
335: 6(int) Load 8(invocation)
336: 146(ptr) AccessChain 27(data) 65 65
337: 23(f64vec4) Load 336
338: 23(f64vec4) GroupNonUniformQuadSwap 35 337 30
339: 146(ptr) AccessChain 27(data) 335 65
Store 339 338
340: 6(int) Load 8(invocation)
341: 71(ptr) AccessChain 27(data) 29 39 30
342: 19(int) Load 341
343: 175(bool) SLessThan 342 29
344: 175(bool) GroupNonUniformQuadSwap 35 343 30
345: 19(int) Select 344 39 29
346: 71(ptr) AccessChain 27(data) 340 39 30
Store 346 345
347: 6(int) Load 8(invocation)
348: 78(ptr) AccessChain 27(data) 39 39
349: 20(ivec4) Load 348
350: 77(ivec2) VectorShuffle 349 349 0 1
351: 185(bvec2) SLessThan 350 184
352: 185(bvec2) GroupNonUniformQuadSwap 35 351 30
353: 77(ivec2) Select 352 188 184
354: 71(ptr) AccessChain 27(data) 347 39 30
355: 19(int) CompositeExtract 353 0
Store 354 355
356: 71(ptr) AccessChain 27(data) 347 39 34
357: 19(int) CompositeExtract 353 1
Store 356 357
358: 6(int) Load 8(invocation)
359: 78(ptr) AccessChain 27(data) 39 39
360: 20(ivec4) Load 359
361: 88(ivec3) VectorShuffle 360 360 0 1 2
362: 199(bvec3) SLessThan 361 198
363: 199(bvec3) GroupNonUniformQuadSwap 35 362 30
364: 88(ivec3) Select 363 202 198
365: 71(ptr) AccessChain 27(data) 358 39 30
366: 19(int) CompositeExtract 364 0
Store 365 366
367: 71(ptr) AccessChain 27(data) 358 39 34
368: 19(int) CompositeExtract 364 1
Store 367 368
369: 71(ptr) AccessChain 27(data) 358 39 61
370: 19(int) CompositeExtract 364 2
Store 369 370
371: 6(int) Load 8(invocation)
372: 78(ptr) AccessChain 27(data) 39 39
373: 20(ivec4) Load 372
374: 214(bvec4) SLessThan 373 213
375: 214(bvec4) GroupNonUniformQuadSwap 35 374 30
376: 20(ivec4) Select 375 217 213
377: 78(ptr) AccessChain 27(data) 371 39
Store 377 376
378: 6(int) Load 8(invocation)
379: 31(ptr) AccessChain 27(data) 29 29 30
380: 17(float) Load 379
381: 17(float) GroupNonUniformQuadSwap 35 380 34
382: 31(ptr) AccessChain 27(data) 378 29 30
Store 382 381
383: 6(int) Load 8(invocation)
384: 41(ptr) AccessChain 27(data) 39 29
385: 18(fvec4) Load 384
386: 40(fvec2) VectorShuffle 385 385 0 1
387: 40(fvec2) GroupNonUniformQuadSwap 35 386 34
388: 31(ptr) AccessChain 27(data) 383 29 30
389: 17(float) CompositeExtract 387 0
Store 388 389
390: 31(ptr) AccessChain 27(data) 383 29 34
391: 17(float) CompositeExtract 387 1
Store 390 391
392: 6(int) Load 8(invocation)
393: 41(ptr) AccessChain 27(data) 51 29
394: 18(fvec4) Load 393
395: 52(fvec3) VectorShuffle 394 394 0 1 2
396: 52(fvec3) GroupNonUniformQuadSwap 35 395 34
397: 31(ptr) AccessChain 27(data) 392 29 30
398: 17(float) CompositeExtract 396 0
Store 397 398
399: 31(ptr) AccessChain 27(data) 392 29 34
400: 17(float) CompositeExtract 396 1
Store 399 400
401: 31(ptr) AccessChain 27(data) 392 29 61
402: 17(float) CompositeExtract 396 2
Store 401 402
403: 6(int) Load 8(invocation)
404: 41(ptr) AccessChain 27(data) 65 29
405: 18(fvec4) Load 404
406: 18(fvec4) GroupNonUniformQuadSwap 35 405 34
407: 41(ptr) AccessChain 27(data) 403 29
Store 407 406
408: 6(int) Load 8(invocation)
409: 71(ptr) AccessChain 27(data) 29 39 30
410: 19(int) Load 409
411: 19(int) GroupNonUniformQuadSwap 35 410 34
412: 71(ptr) AccessChain 27(data) 408 39 30
Store 412 411
413: 6(int) Load 8(invocation)
414: 78(ptr) AccessChain 27(data) 39 39
415: 20(ivec4) Load 414
416: 77(ivec2) VectorShuffle 415 415 0 1
417: 77(ivec2) GroupNonUniformQuadSwap 35 416 34
418: 71(ptr) AccessChain 27(data) 413 39 30
419: 19(int) CompositeExtract 417 0
Store 418 419
420: 71(ptr) AccessChain 27(data) 413 39 34
421: 19(int) CompositeExtract 417 1
Store 420 421
422: 6(int) Load 8(invocation)
423: 78(ptr) AccessChain 27(data) 51 39
424: 20(ivec4) Load 423
425: 88(ivec3) VectorShuffle 424 424 0 1 2
426: 88(ivec3) GroupNonUniformQuadSwap 35 425 34
427: 71(ptr) AccessChain 27(data) 422 39 30
428: 19(int) CompositeExtract 426 0
Store 427 428
429: 71(ptr) AccessChain 27(data) 422 39 34
430: 19(int) CompositeExtract 426 1
Store 429 430
431: 71(ptr) AccessChain 27(data) 422 39 61
432: 19(int) CompositeExtract 426 2
Store 431 432
433: 6(int) Load 8(invocation)
434: 78(ptr) AccessChain 27(data) 65 39
435: 20(ivec4) Load 434
436: 20(ivec4) GroupNonUniformQuadSwap 35 435 34
437: 78(ptr) AccessChain 27(data) 433 39
Store 437 436
438: 6(int) Load 8(invocation)
439: 105(ptr) AccessChain 27(data) 29 51 30
440: 6(int) Load 439
441: 6(int) GroupNonUniformQuadSwap 35 440 34
442: 105(ptr) AccessChain 27(data) 438 51 30
Store 442 441
443: 6(int) Load 8(invocation)
444: 112(ptr) AccessChain 27(data) 39 51
445: 21(ivec4) Load 444
446: 111(ivec2) VectorShuffle 445 445 0 1
447: 111(ivec2) GroupNonUniformQuadSwap 35 446 34
448: 105(ptr) AccessChain 27(data) 443 51 30
449: 6(int) CompositeExtract 447 0
Store 448 449
450: 105(ptr) AccessChain 27(data) 443 51 34
451: 6(int) CompositeExtract 447 1
Store 450 451
452: 6(int) Load 8(invocation)
453: 112(ptr) AccessChain 27(data) 51 51
454: 21(ivec4) Load 453
455: 122(ivec3) VectorShuffle 454 454 0 1 2
456: 122(ivec3) GroupNonUniformQuadSwap 35 455 34
457: 105(ptr) AccessChain 27(data) 452 51 30
458: 6(int) CompositeExtract 456 0
Store 457 458
459: 105(ptr) AccessChain 27(data) 452 51 34
460: 6(int) CompositeExtract 456 1
Store 459 460
461: 105(ptr) AccessChain 27(data) 452 51 61
462: 6(int) CompositeExtract 456 2
Store 461 462
463: 6(int) Load 8(invocation)
464: 112(ptr) AccessChain 27(data) 65 51
465: 21(ivec4) Load 464
466: 21(ivec4) GroupNonUniformQuadSwap 35 465 34
467: 112(ptr) AccessChain 27(data) 463 51
Store 467 466
468: 6(int) Load 8(invocation)
469: 139(ptr) AccessChain 27(data) 29 65 30
470:22(float64_t) Load 469
471:22(float64_t) GroupNonUniformQuadSwap 35 470 34
472: 139(ptr) AccessChain 27(data) 468 65 30
Store 472 471
473: 6(int) Load 8(invocation)
474: 146(ptr) AccessChain 27(data) 39 65
475: 23(f64vec4) Load 474
476:145(f64vec2) VectorShuffle 475 475 0 1
477:145(f64vec2) GroupNonUniformQuadSwap 35 476 34
478: 139(ptr) AccessChain 27(data) 473 65 30
479:22(float64_t) CompositeExtract 477 0
Store 478 479
480: 139(ptr) AccessChain 27(data) 473 65 34
481:22(float64_t) CompositeExtract 477 1
Store 480 481
482: 6(int) Load 8(invocation)
483: 146(ptr) AccessChain 27(data) 51 65
484: 23(f64vec4) Load 483
485:156(f64vec3) VectorShuffle 484 484 0 1 2
486:156(f64vec3) GroupNonUniformQuadSwap 35 485 34
487: 139(ptr) AccessChain 27(data) 482 65 30
488:22(float64_t) CompositeExtract 486 0
Store 487 488
489: 139(ptr) AccessChain 27(data) 482 65 34
490:22(float64_t) CompositeExtract 486 1
Store 489 490
491: 139(ptr) AccessChain 27(data) 482 65 61
492:22(float64_t) CompositeExtract 486 2
Store 491 492
493: 6(int) Load 8(invocation)
494: 146(ptr) AccessChain 27(data) 65 65
495: 23(f64vec4) Load 494
496: 23(f64vec4) GroupNonUniformQuadSwap 35 495 34
497: 146(ptr) AccessChain 27(data) 493 65
Store 497 496
498: 6(int) Load 8(invocation)
499: 71(ptr) AccessChain 27(data) 29 39 30
500: 19(int) Load 499
501: 175(bool) SLessThan 500 29
502: 175(bool) GroupNonUniformQuadSwap 35 501 34
503: 19(int) Select 502 39 29
504: 71(ptr) AccessChain 27(data) 498 39 30
Store 504 503
505: 6(int) Load 8(invocation)
506: 78(ptr) AccessChain 27(data) 39 39
507: 20(ivec4) Load 506
508: 77(ivec2) VectorShuffle 507 507 0 1
509: 185(bvec2) SLessThan 508 184
510: 185(bvec2) GroupNonUniformQuadSwap 35 509 34
511: 77(ivec2) Select 510 188 184
512: 71(ptr) AccessChain 27(data) 505 39 30
513: 19(int) CompositeExtract 511 0
Store 512 513
514: 71(ptr) AccessChain 27(data) 505 39 34
515: 19(int) CompositeExtract 511 1
Store 514 515
516: 6(int) Load 8(invocation)
517: 78(ptr) AccessChain 27(data) 39 39
518: 20(ivec4) Load 517
519: 88(ivec3) VectorShuffle 518 518 0 1 2
520: 199(bvec3) SLessThan 519 198
521: 199(bvec3) GroupNonUniformQuadSwap 35 520 34
522: 88(ivec3) Select 521 202 198
523: 71(ptr) AccessChain 27(data) 516 39 30
524: 19(int) CompositeExtract 522 0
Store 523 524
525: 71(ptr) AccessChain 27(data) 516 39 34
526: 19(int) CompositeExtract 522 1
Store 525 526
527: 71(ptr) AccessChain 27(data) 516 39 61
528: 19(int) CompositeExtract 522 2
Store 527 528
529: 6(int) Load 8(invocation)
530: 78(ptr) AccessChain 27(data) 39 39
531: 20(ivec4) Load 530
532: 214(bvec4) SLessThan 531 213
533: 214(bvec4) GroupNonUniformQuadSwap 35 532 34
534: 20(ivec4) Select 533 217 213
535: 78(ptr) AccessChain 27(data) 529 39
Store 535 534
536: 6(int) Load 8(invocation)
537: 31(ptr) AccessChain 27(data) 29 29 30
538: 17(float) Load 537
539: 17(float) GroupNonUniformQuadSwap 35 538 61
540: 31(ptr) AccessChain 27(data) 536 29 30
Store 540 539
541: 6(int) Load 8(invocation)
542: 41(ptr) AccessChain 27(data) 39 29
543: 18(fvec4) Load 542
544: 40(fvec2) VectorShuffle 543 543 0 1
545: 40(fvec2) GroupNonUniformQuadSwap 35 544 61
546: 31(ptr) AccessChain 27(data) 541 29 30
547: 17(float) CompositeExtract 545 0
Store 546 547
548: 31(ptr) AccessChain 27(data) 541 29 34
549: 17(float) CompositeExtract 545 1
Store 548 549
550: 6(int) Load 8(invocation)
551: 41(ptr) AccessChain 27(data) 51 29
552: 18(fvec4) Load 551
553: 52(fvec3) VectorShuffle 552 552 0 1 2
554: 52(fvec3) GroupNonUniformQuadSwap 35 553 61
555: 31(ptr) AccessChain 27(data) 550 29 30
556: 17(float) CompositeExtract 554 0
Store 555 556
557: 31(ptr) AccessChain 27(data) 550 29 34
558: 17(float) CompositeExtract 554 1
Store 557 558
559: 31(ptr) AccessChain 27(data) 550 29 61
560: 17(float) CompositeExtract 554 2
Store 559 560
561: 6(int) Load 8(invocation)
562: 41(ptr) AccessChain 27(data) 65 29
563: 18(fvec4) Load 562
564: 18(fvec4) GroupNonUniformQuadSwap 35 563 61
565: 41(ptr) AccessChain 27(data) 561 29
Store 565 564
566: 6(int) Load 8(invocation)
567: 71(ptr) AccessChain 27(data) 29 39 30
568: 19(int) Load 567
569: 19(int) GroupNonUniformQuadSwap 35 568 61
570: 71(ptr) AccessChain 27(data) 566 39 30
Store 570 569
571: 6(int) Load 8(invocation)
572: 78(ptr) AccessChain 27(data) 39 39
573: 20(ivec4) Load 572
574: 77(ivec2) VectorShuffle 573 573 0 1
575: 77(ivec2) GroupNonUniformQuadSwap 35 574 61
576: 71(ptr) AccessChain 27(data) 571 39 30
577: 19(int) CompositeExtract 575 0
Store 576 577
578: 71(ptr) AccessChain 27(data) 571 39 34
579: 19(int) CompositeExtract 575 1
Store 578 579
580: 6(int) Load 8(invocation)
581: 78(ptr) AccessChain 27(data) 51 39
582: 20(ivec4) Load 581
583: 88(ivec3) VectorShuffle 582 582 0 1 2
584: 88(ivec3) GroupNonUniformQuadSwap 35 583 61
585: 71(ptr) AccessChain 27(data) 580 39 30
586: 19(int) CompositeExtract 584 0
Store 585 586
587: 71(ptr) AccessChain 27(data) 580 39 34
588: 19(int) CompositeExtract 584 1
Store 587 588
589: 71(ptr) AccessChain 27(data) 580 39 61
590: 19(int) CompositeExtract 584 2
Store 589 590
591: 6(int) Load 8(invocation)
592: 78(ptr) AccessChain 27(data) 65 39
593: 20(ivec4) Load 592
594: 20(ivec4) GroupNonUniformQuadSwap 35 593 61
595: 78(ptr) AccessChain 27(data) 591 39
Store 595 594
596: 6(int) Load 8(invocation)
597: 105(ptr) AccessChain 27(data) 29 51 30
598: 6(int) Load 597
599: 6(int) GroupNonUniformQuadSwap 35 598 61
600: 105(ptr) AccessChain 27(data) 596 51 30
Store 600 599
601: 6(int) Load 8(invocation)
602: 112(ptr) AccessChain 27(data) 39 51
603: 21(ivec4) Load 602
604: 111(ivec2) VectorShuffle 603 603 0 1
605: 111(ivec2) GroupNonUniformQuadSwap 35 604 61
606: 105(ptr) AccessChain 27(data) 601 51 30
607: 6(int) CompositeExtract 605 0
Store 606 607
608: 105(ptr) AccessChain 27(data) 601 51 34
609: 6(int) CompositeExtract 605 1
Store 608 609
610: 6(int) Load 8(invocation)
611: 112(ptr) AccessChain 27(data) 51 51
612: 21(ivec4) Load 611
613: 122(ivec3) VectorShuffle 612 612 0 1 2
614: 122(ivec3) GroupNonUniformQuadSwap 35 613 61
615: 105(ptr) AccessChain 27(data) 610 51 30
616: 6(int) CompositeExtract 614 0
Store 615 616
617: 105(ptr) AccessChain 27(data) 610 51 34
618: 6(int) CompositeExtract 614 1
Store 617 618
619: 105(ptr) AccessChain 27(data) 610 51 61
620: 6(int) CompositeExtract 614 2
Store 619 620
621: 6(int) Load 8(invocation)
622: 112(ptr) AccessChain 27(data) 65 51
623: 21(ivec4) Load 622
624: 21(ivec4) GroupNonUniformQuadSwap 35 623 61
625: 112(ptr) AccessChain 27(data) 621 51
Store 625 624
626: 6(int) Load 8(invocation)
627: 139(ptr) AccessChain 27(data) 29 65 30
628:22(float64_t) Load 627
629:22(float64_t) GroupNonUniformQuadSwap 35 628 61
630: 139(ptr) AccessChain 27(data) 626 65 30
Store 630 629
631: 6(int) Load 8(invocation)
632: 146(ptr) AccessChain 27(data) 39 65
633: 23(f64vec4) Load 632
634:145(f64vec2) VectorShuffle 633 633 0 1
635:145(f64vec2) GroupNonUniformQuadSwap 35 634 61
636: 139(ptr) AccessChain 27(data) 631 65 30
637:22(float64_t) CompositeExtract 635 0
Store 636 637
638: 139(ptr) AccessChain 27(data) 631 65 34
639:22(float64_t) CompositeExtract 635 1
Store 638 639
640: 6(int) Load 8(invocation)
641: 146(ptr) AccessChain 27(data) 51 65
642: 23(f64vec4) Load 641
643:156(f64vec3) VectorShuffle 642 642 0 1 2
644:156(f64vec3) GroupNonUniformQuadSwap 35 643 61
645: 139(ptr) AccessChain 27(data) 640 65 30
646:22(float64_t) CompositeExtract 644 0
Store 645 646
647: 139(ptr) AccessChain 27(data) 640 65 34
648:22(float64_t) CompositeExtract 644 1
Store 647 648
649: 139(ptr) AccessChain 27(data) 640 65 61
650:22(float64_t) CompositeExtract 644 2
Store 649 650
651: 6(int) Load 8(invocation)
652: 146(ptr) AccessChain 27(data) 65 65
653: 23(f64vec4) Load 652
654: 23(f64vec4) GroupNonUniformQuadSwap 35 653 61
655: 146(ptr) AccessChain 27(data) 651 65
Store 655 654
656: 6(int) Load 8(invocation)
657: 71(ptr) AccessChain 27(data) 29 39 30
658: 19(int) Load 657
659: 175(bool) SLessThan 658 29
660: 175(bool) GroupNonUniformQuadSwap 35 659 61
661: 19(int) Select 660 39 29
662: 71(ptr) AccessChain 27(data) 656 39 30
Store 662 661
663: 6(int) Load 8(invocation)
664: 78(ptr) AccessChain 27(data) 39 39
665: 20(ivec4) Load 664
666: 77(ivec2) VectorShuffle 665 665 0 1
667: 185(bvec2) SLessThan 666 184
668: 185(bvec2) GroupNonUniformQuadSwap 35 667 61
669: 77(ivec2) Select 668 188 184
670: 71(ptr) AccessChain 27(data) 663 39 30
671: 19(int) CompositeExtract 669 0
Store 670 671
672: 71(ptr) AccessChain 27(data) 663 39 34
673: 19(int) CompositeExtract 669 1
Store 672 673
674: 6(int) Load 8(invocation)
675: 78(ptr) AccessChain 27(data) 39 39
676: 20(ivec4) Load 675
677: 88(ivec3) VectorShuffle 676 676 0 1 2
678: 199(bvec3) SLessThan 677 198
679: 199(bvec3) GroupNonUniformQuadSwap 35 678 61
680: 88(ivec3) Select 679 202 198
681: 71(ptr) AccessChain 27(data) 674 39 30
682: 19(int) CompositeExtract 680 0
Store 681 682
683: 71(ptr) AccessChain 27(data) 674 39 34
684: 19(int) CompositeExtract 680 1
Store 683 684
685: 71(ptr) AccessChain 27(data) 674 39 61
686: 19(int) CompositeExtract 680 2
Store 685 686
687: 6(int) Load 8(invocation)
688: 78(ptr) AccessChain 27(data) 39 39
689: 20(ivec4) Load 688
690: 214(bvec4) SLessThan 689 213
691: 214(bvec4) GroupNonUniformQuadSwap 35 690 61
692: 20(ivec4) Select 691 217 213
693: 78(ptr) AccessChain 27(data) 687 39
Store 693 692
Return
FunctionEnd