SPV: Implement Vulkan 1.1 features and extensions.

This commit is contained in:
John Kessenich 2018-03-06 16:12:04 -07:00
parent b2ae1d0521
commit 66011cb2c2
121 changed files with 51726 additions and 7500 deletions

View file

@ -1,7 +1,7 @@
spv.int64.frag
// Module Version 10000
// Generated by (magic number): 80005
// Id's are bound by 480
// Id's are bound by 483
Capability Shader
Capability Float64
@ -12,6 +12,7 @@ spv.int64.frag
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_ARB_gpu_shader_int64"
SourceExtension "GL_KHX_shader_explicit_arithmetic_types_int64"
Name 4 "main"
Name 6 "literal("
Name 8 "typeCast("
@ -36,38 +37,38 @@ spv.int64.frag
Name 139 "i64"
Name 159 "i"
Name 166 "uv"
Name 218 "b"
Name 278 "i64v"
Name 281 "i64"
Name 291 "u64v"
Name 293 "u64"
Name 365 "dv"
Name 384 "iv"
Name 389 "uv"
Name 393 "bv"
Name 454 "Block"
MemberName 454(Block) 0 "i64v"
MemberName 454(Block) 1 "u64"
Name 456 "block"
Name 457 "si64"
Name 458 "su64"
Name 459 "si"
Name 460 "su"
Name 461 "sb"
Name 221 "b"
Name 281 "i64v"
Name 284 "i64"
Name 294 "u64v"
Name 296 "u64"
Name 368 "dv"
Name 387 "iv"
Name 392 "uv"
Name 396 "bv"
Name 457 "Block"
MemberName 457(Block) 0 "i64v"
MemberName 457(Block) 1 "u64"
Name 459 "block"
Name 460 "si64"
Name 461 "su64"
Name 462 "si"
Name 463 "su"
Name 464 "sb"
MemberDecorate 28(Uniforms) 0 Offset 0
Decorate 28(Uniforms) Block
Decorate 30 DescriptorSet 0
Decorate 30 Binding 0
MemberDecorate 454(Block) 0 Offset 0
MemberDecorate 454(Block) 1 Offset 24
Decorate 454(Block) Block
Decorate 456(block) DescriptorSet 0
Decorate 456(block) Binding 1
Decorate 457(si64) SpecId 100
Decorate 458(su64) SpecId 101
Decorate 459(si) SpecId 102
Decorate 460(su) SpecId 103
Decorate 461(sb) SpecId 104
MemberDecorate 457(Block) 0 Offset 0
MemberDecorate 457(Block) 1 Offset 24
Decorate 457(Block) Block
Decorate 459(block) DescriptorSet 0
Decorate 459(block) Binding 1
Decorate 460(si64) SpecId 100
Decorate 461(su64) SpecId 101
Decorate 462(si) SpecId 102
Decorate 463(su) SpecId 103
Decorate 464(sb) SpecId 104
2: TypeVoid
3: TypeFunction 2
14: TypeInt 64 0
@ -127,53 +128,52 @@ spv.int64.frag
158: TypePointer Function 31(int)
164: TypeVector 21(int) 3
165: TypePointer Function 164(ivec3)
199: TypeVector 31(int) 3
202: 21(int) Constant 1
203: TypePointer Function 21(int)
209: 21(int) Constant 2
217: TypePointer Function 55(bool)
219: 21(int) Constant 0
289: 52(ivec2) ConstantComposite 25 25
298: 132(ivec3) ConstantComposite 69 69 69
340: 55(bool) ConstantTrue
347: 55(bool) ConstantFalse
348: 56(bvec2) ConstantComposite 347 347
360: TypeVector 55(bool) 3
361: 360(bvec3) ConstantComposite 347 347 347
363: TypeVector 94(float) 3
364: TypePointer Function 363(fvec3)
369: TypePointer Function 94(float)
380: 31(int) Constant 1
381: 31(int) Constant 2
382: 74(ivec2) ConstantComposite 380 381
387: 81(ivec2) ConstantComposite 209 22
392: TypePointer Function 360(bvec3)
454(Block): TypeStruct 136(ivec3) 14(int)
455: TypePointer Uniform 454(Block)
456(block): 455(ptr) Variable Uniform
457(si64): 18(int) SpecConstant 4294967286 4294967295
458(su64): 14(int) SpecConstant 20 0
459(si): 31(int) SpecConstant 4294967291
460(su): 21(int) SpecConstant 4
461(sb): 55(bool) SpecConstantTrue
462: 55(bool) SpecConstantOp 171 457(si64) 69
463: 55(bool) SpecConstantOp 171 458(su64) 69
464: 18(int) SpecConstantOp 169 461(sb) 61 60
465: 14(int) SpecConstantOp 169 461(sb) 70 69
466: 31(int) SpecConstantOp 114 457(si64)
467: 18(int) SpecConstantOp 114 459(si)
468: 21(int) SpecConstantOp 113 458(su64)
469: 14(int) SpecConstantOp 113 460(su)
470: 18(int) SpecConstantOp 128 458(su64) 69
471: 14(int) SpecConstantOp 128 457(si64) 69
472: 21(int) SpecConstantOp 113 458(su64)
473: 31(int) SpecConstantOp 128 472 219
474: 18(int) SpecConstantOp 114 459(si)
475: 14(int) SpecConstantOp 128 474 69
476: 31(int) SpecConstantOp 114 457(si64)
477: 21(int) SpecConstantOp 128 476 219
478: 14(int) SpecConstantOp 113 460(su)
479: 18(int) SpecConstantOp 128 478 69
203: 21(int) Constant 1
204: TypePointer Function 21(int)
212: 21(int) Constant 2
220: TypePointer Function 55(bool)
222: 21(int) Constant 0
292: 52(ivec2) ConstantComposite 25 25
301: 132(ivec3) ConstantComposite 69 69 69
343: 55(bool) ConstantTrue
350: 55(bool) ConstantFalse
351: 56(bvec2) ConstantComposite 350 350
363: TypeVector 55(bool) 3
364: 363(bvec3) ConstantComposite 350 350 350
366: TypeVector 94(float) 3
367: TypePointer Function 366(fvec3)
372: TypePointer Function 94(float)
383: 31(int) Constant 1
384: 31(int) Constant 2
385: 74(ivec2) ConstantComposite 383 384
390: 81(ivec2) ConstantComposite 212 22
395: TypePointer Function 363(bvec3)
457(Block): TypeStruct 136(ivec3) 14(int)
458: TypePointer Uniform 457(Block)
459(block): 458(ptr) Variable Uniform
460(si64): 18(int) SpecConstant 4294967286 4294967295
461(su64): 14(int) SpecConstant 20 0
462(si): 31(int) SpecConstant 4294967291
463(su): 21(int) SpecConstant 4
464(sb): 55(bool) SpecConstantTrue
465: 55(bool) SpecConstantOp 171 460(si64) 69
466: 55(bool) SpecConstantOp 171 461(su64) 69
467: 18(int) SpecConstantOp 169 464(sb) 61 60
468: 14(int) SpecConstantOp 169 464(sb) 70 69
469: 31(int) SpecConstantOp 114 460(si64)
470: 18(int) SpecConstantOp 114 462(si)
471: 21(int) SpecConstantOp 113 461(su64)
472: 14(int) SpecConstantOp 113 463(su)
473: 18(int) SpecConstantOp 128 461(su64) 69
474: 14(int) SpecConstantOp 128 460(si64) 69
475: 31(int) SpecConstantOp 113 461(su64)
476: 31(int) SpecConstantOp 128 475 222
477: 18(int) SpecConstantOp 114 462(si)
478: 14(int) SpecConstantOp 128 477 69
479: 31(int) SpecConstantOp 114 460(si64)
480: 21(int) SpecConstantOp 128 479 222
481: 18(int) SpecConstantOp 113 463(su)
482: 18(int) SpecConstantOp 128 481 69
4(main): 2 Function None 3
5: Label
Store 16(u64Max) 17
@ -267,11 +267,11 @@ spv.int64.frag
122: 81(ivec2) Bitcast 121
Store 83(uv) 122
123: 81(ivec2) Load 83(uv)
124: 65(ivec2) UConvert 123
124: 52(ivec2) UConvert 123
125: 52(ivec2) Bitcast 124
Store 54(i64v) 125
126: 65(ivec2) Load 67(u64v)
127: 81(ivec2) UConvert 126
127: 74(ivec2) UConvert 126
128: 74(ivec2) Bitcast 127
Store 76(iv) 128
129: 74(ivec2) Load 76(iv)
@ -286,7 +286,7 @@ spv.int64.frag
139(i64): 19(ptr) Variable Function
159(i): 158(ptr) Variable Function
166(uv): 165(ptr) Variable Function
218(b): 217(ptr) Variable Function
221(b): 220(ptr) Variable Function
135: 132(ivec3) Load 134(u64v)
137: 136(ivec3) CompositeConstruct 61 61 61
138: 132(ivec3) IAdd 135 137
@ -360,297 +360,301 @@ spv.int64.frag
196: 18(int) SMod 193 195
Store 139(i64) 196
197: 31(int) Load 159(i)
198: 132(ivec3) Load 134(u64v)
200: 199(ivec3) CompositeConstruct 197 197 197
201: 132(ivec3) ShiftLeftLogical 198 200
Store 134(u64v) 201
204: 203(ptr) AccessChain 166(uv) 202
205: 21(int) Load 204
206: 18(int) Load 139(i64)
207: 18(int) ShiftRightArithmetic 206 205
Store 139(i64) 207
208: 18(int) Load 139(i64)
210: 40(ptr) AccessChain 134(u64v) 209
211: 14(int) Load 210
212: 18(int) ShiftLeftLogical 208 211
Store 139(i64) 212
213: 132(ivec3) Load 134(u64v)
214: 18(int) Load 139(i64)
215: 136(ivec3) CompositeConstruct 214 214 214
216: 132(ivec3) ShiftLeftLogical 213 215
Store 134(u64v) 216
220: 40(ptr) AccessChain 134(u64v) 219
221: 14(int) Load 220
222: 18(int) Load 139(i64)
223: 14(int) Bitcast 222
224: 55(bool) INotEqual 221 223
Store 218(b) 224
198: 18(int) SConvert 197
199: 14(int) Bitcast 198
200: 132(ivec3) Load 134(u64v)
201: 132(ivec3) CompositeConstruct 199 199 199
202: 132(ivec3) ShiftLeftLogical 200 201
Store 134(u64v) 202
205: 204(ptr) AccessChain 166(uv) 203
206: 21(int) Load 205
207: 18(int) UConvert 206
208: 18(int) Bitcast 207
209: 18(int) Load 139(i64)
210: 18(int) ShiftRightArithmetic 209 208
Store 139(i64) 210
211: 18(int) Load 139(i64)
213: 40(ptr) AccessChain 134(u64v) 212
214: 14(int) Load 213
215: 18(int) ShiftLeftLogical 211 214
Store 139(i64) 215
216: 132(ivec3) Load 134(u64v)
217: 18(int) Load 139(i64)
218: 136(ivec3) CompositeConstruct 217 217 217
219: 132(ivec3) ShiftLeftLogical 216 218
Store 134(u64v) 219
223: 40(ptr) AccessChain 134(u64v) 222
224: 14(int) Load 223
225: 18(int) Load 139(i64)
226: 14(int) Bitcast 225
227: 40(ptr) AccessChain 134(u64v) 219
228: 14(int) Load 227
229: 55(bool) IEqual 226 228
Store 218(b) 229
230: 40(ptr) AccessChain 134(u64v) 219
227: 55(bool) INotEqual 224 226
Store 221(b) 227
228: 18(int) Load 139(i64)
229: 14(int) Bitcast 228
230: 40(ptr) AccessChain 134(u64v) 222
231: 14(int) Load 230
232: 203(ptr) AccessChain 166(uv) 202
233: 21(int) Load 232
234: 14(int) UConvert 233
235: 55(bool) UGreaterThan 231 234
Store 218(b) 235
236: 18(int) Load 139(i64)
237: 31(int) Load 159(i)
238: 18(int) SConvert 237
239: 55(bool) SLessThan 236 238
Store 218(b) 239
240: 40(ptr) AccessChain 134(u64v) 202
241: 14(int) Load 240
242: 203(ptr) AccessChain 166(uv) 219
243: 21(int) Load 242
244: 14(int) UConvert 243
245: 55(bool) UGreaterThanEqual 241 244
Store 218(b) 245
246: 18(int) Load 139(i64)
247: 31(int) Load 159(i)
248: 18(int) SConvert 247
249: 55(bool) SLessThanEqual 246 248
Store 218(b) 249
232: 55(bool) IEqual 229 231
Store 221(b) 232
233: 40(ptr) AccessChain 134(u64v) 222
234: 14(int) Load 233
235: 204(ptr) AccessChain 166(uv) 203
236: 21(int) Load 235
237: 14(int) UConvert 236
238: 55(bool) UGreaterThan 234 237
Store 221(b) 238
239: 18(int) Load 139(i64)
240: 31(int) Load 159(i)
241: 18(int) SConvert 240
242: 55(bool) SLessThan 239 241
Store 221(b) 242
243: 40(ptr) AccessChain 134(u64v) 203
244: 14(int) Load 243
245: 204(ptr) AccessChain 166(uv) 222
246: 21(int) Load 245
247: 14(int) UConvert 246
248: 55(bool) UGreaterThanEqual 244 247
Store 221(b) 248
249: 18(int) Load 139(i64)
250: 31(int) Load 159(i)
251: 18(int) SConvert 250
252: 14(int) Bitcast 251
253: 132(ivec3) Load 134(u64v)
254: 132(ivec3) CompositeConstruct 252 252 252
255: 132(ivec3) BitwiseOr 253 254
Store 134(u64v) 255
256: 18(int) Load 139(i64)
257: 31(int) Load 159(i)
258: 18(int) SConvert 257
259: 18(int) BitwiseOr 256 258
Store 139(i64) 259
252: 55(bool) SLessThanEqual 249 251
Store 221(b) 252
253: 31(int) Load 159(i)
254: 18(int) SConvert 253
255: 14(int) Bitcast 254
256: 132(ivec3) Load 134(u64v)
257: 132(ivec3) CompositeConstruct 255 255 255
258: 132(ivec3) BitwiseOr 256 257
Store 134(u64v) 258
259: 18(int) Load 139(i64)
260: 31(int) Load 159(i)
261: 18(int) SConvert 260
262: 18(int) Load 139(i64)
263: 18(int) BitwiseAnd 262 261
Store 139(i64) 263
264: 132(ivec3) Load 134(u64v)
265: 164(ivec3) Load 166(uv)
266: 132(ivec3) UConvert 265
267: 132(ivec3) BitwiseAnd 264 266
Store 134(u64v) 267
268: 18(int) Load 139(i64)
269: 14(int) Bitcast 268
270: 132(ivec3) Load 134(u64v)
271: 132(ivec3) CompositeConstruct 269 269 269
272: 132(ivec3) BitwiseXor 270 271
Store 134(u64v) 272
262: 18(int) BitwiseOr 259 261
Store 139(i64) 262
263: 31(int) Load 159(i)
264: 18(int) SConvert 263
265: 18(int) Load 139(i64)
266: 18(int) BitwiseAnd 265 264
Store 139(i64) 266
267: 132(ivec3) Load 134(u64v)
268: 164(ivec3) Load 166(uv)
269: 132(ivec3) UConvert 268
270: 132(ivec3) BitwiseAnd 267 269
Store 134(u64v) 270
271: 18(int) Load 139(i64)
272: 14(int) Bitcast 271
273: 132(ivec3) Load 134(u64v)
274: 18(int) Load 139(i64)
275: 14(int) Bitcast 274
276: 132(ivec3) CompositeConstruct 275 275 275
277: 132(ivec3) BitwiseXor 273 276
Store 134(u64v) 277
274: 132(ivec3) CompositeConstruct 272 272 272
275: 132(ivec3) BitwiseXor 273 274
Store 134(u64v) 275
276: 132(ivec3) Load 134(u64v)
277: 18(int) Load 139(i64)
278: 14(int) Bitcast 277
279: 132(ivec3) CompositeConstruct 278 278 278
280: 132(ivec3) BitwiseXor 276 279
Store 134(u64v) 280
Return
FunctionEnd
12(builtinFuncs(): 2 Function None 3
13: Label
278(i64v): 53(ptr) Variable Function
281(i64): 19(ptr) Variable Function
291(u64v): 133(ptr) Variable Function
293(u64): 40(ptr) Variable Function
365(dv): 364(ptr) Variable Function
384(iv): 75(ptr) Variable Function
389(uv): 82(ptr) Variable Function
393(bv): 392(ptr) Variable Function
279: 52(ivec2) Load 278(i64v)
280: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 279
Store 278(i64v) 280
282: 18(int) Load 281(i64)
283: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 282
Store 281(i64) 283
284: 52(ivec2) Load 278(i64v)
285: 18(int) Load 281(i64)
286: 52(ivec2) CompositeConstruct 285 285
287: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 284 286
Store 278(i64v) 287
288: 52(ivec2) Load 278(i64v)
290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 288 289
Store 278(i64v) 290
292: 132(ivec3) Load 291(u64v)
294: 14(int) Load 293(u64)
295: 132(ivec3) CompositeConstruct 294 294 294
296: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 292 295
Store 291(u64v) 296
297: 132(ivec3) Load 291(u64v)
299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 297 298
Store 291(u64v) 299
300: 52(ivec2) Load 278(i64v)
301: 18(int) Load 281(i64)
302: 52(ivec2) CompositeConstruct 301 301
303: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 300 302
Store 278(i64v) 303
304: 52(ivec2) Load 278(i64v)
305: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 304 289
Store 278(i64v) 305
306: 132(ivec3) Load 291(u64v)
307: 14(int) Load 293(u64)
308: 132(ivec3) CompositeConstruct 307 307 307
309: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 306 308
Store 291(u64v) 309
310: 132(ivec3) Load 291(u64v)
311: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 310 298
Store 291(u64v) 311
312: 52(ivec2) Load 278(i64v)
313: 18(int) Load 281(i64)
314: 18(int) SNegate 313
315: 18(int) Load 281(i64)
316: 52(ivec2) CompositeConstruct 314 314
317: 52(ivec2) CompositeConstruct 315 315
318: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 312 316 317
Store 278(i64v) 318
319: 52(ivec2) Load 278(i64v)
320: 52(ivec2) Load 278(i64v)
321: 52(ivec2) SNegate 320
322: 52(ivec2) Load 278(i64v)
323: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 319 321 322
Store 278(i64v) 323
324: 132(ivec3) Load 291(u64v)
325: 14(int) Load 293(u64)
326: 14(int) SNegate 325
327: 14(int) Load 293(u64)
328: 132(ivec3) CompositeConstruct 326 326 326
329: 132(ivec3) CompositeConstruct 327 327 327
330: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 324 328 329
Store 291(u64v) 330
331: 132(ivec3) Load 291(u64v)
332: 132(ivec3) Load 291(u64v)
333: 132(ivec3) SNegate 332
334: 132(ivec3) Load 291(u64v)
335: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 331 333 334
Store 291(u64v) 335
336: 19(ptr) AccessChain 278(i64v) 219
337: 18(int) Load 336
338: 19(ptr) AccessChain 278(i64v) 202
339: 18(int) Load 338
341: 18(int) Select 340 339 337
Store 281(i64) 341
342: 18(int) Load 281(i64)
343: 52(ivec2) CompositeConstruct 342 342
344: 18(int) Load 281(i64)
345: 18(int) SNegate 344
281(i64v): 53(ptr) Variable Function
284(i64): 19(ptr) Variable Function
294(u64v): 133(ptr) Variable Function
296(u64): 40(ptr) Variable Function
368(dv): 367(ptr) Variable Function
387(iv): 75(ptr) Variable Function
392(uv): 82(ptr) Variable Function
396(bv): 395(ptr) Variable Function
282: 52(ivec2) Load 281(i64v)
283: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 282
Store 281(i64v) 283
285: 18(int) Load 284(i64)
286: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 285
Store 284(i64) 286
287: 52(ivec2) Load 281(i64v)
288: 18(int) Load 284(i64)
289: 52(ivec2) CompositeConstruct 288 288
290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 287 289
Store 281(i64v) 290
291: 52(ivec2) Load 281(i64v)
293: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 291 292
Store 281(i64v) 293
295: 132(ivec3) Load 294(u64v)
297: 14(int) Load 296(u64)
298: 132(ivec3) CompositeConstruct 297 297 297
299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 295 298
Store 294(u64v) 299
300: 132(ivec3) Load 294(u64v)
302: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 300 301
Store 294(u64v) 302
303: 52(ivec2) Load 281(i64v)
304: 18(int) Load 284(i64)
305: 52(ivec2) CompositeConstruct 304 304
306: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 303 305
Store 281(i64v) 306
307: 52(ivec2) Load 281(i64v)
308: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 307 292
Store 281(i64v) 308
309: 132(ivec3) Load 294(u64v)
310: 14(int) Load 296(u64)
311: 132(ivec3) CompositeConstruct 310 310 310
312: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 309 311
Store 294(u64v) 312
313: 132(ivec3) Load 294(u64v)
314: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 313 301
Store 294(u64v) 314
315: 52(ivec2) Load 281(i64v)
316: 18(int) Load 284(i64)
317: 18(int) SNegate 316
318: 18(int) Load 284(i64)
319: 52(ivec2) CompositeConstruct 317 317
320: 52(ivec2) CompositeConstruct 318 318
321: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 315 319 320
Store 281(i64v) 321
322: 52(ivec2) Load 281(i64v)
323: 52(ivec2) Load 281(i64v)
324: 52(ivec2) SNegate 323
325: 52(ivec2) Load 281(i64v)
326: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 322 324 325
Store 281(i64v) 326
327: 132(ivec3) Load 294(u64v)
328: 14(int) Load 296(u64)
329: 14(int) SNegate 328
330: 14(int) Load 296(u64)
331: 132(ivec3) CompositeConstruct 329 329 329
332: 132(ivec3) CompositeConstruct 330 330 330
333: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 327 331 332
Store 294(u64v) 333
334: 132(ivec3) Load 294(u64v)
335: 132(ivec3) Load 294(u64v)
336: 132(ivec3) SNegate 335
337: 132(ivec3) Load 294(u64v)
338: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 334 336 337
Store 294(u64v) 338
339: 19(ptr) AccessChain 281(i64v) 222
340: 18(int) Load 339
341: 19(ptr) AccessChain 281(i64v) 203
342: 18(int) Load 341
344: 18(int) Select 343 342 340
Store 284(i64) 344
345: 18(int) Load 284(i64)
346: 52(ivec2) CompositeConstruct 345 345
349: 52(ivec2) Select 348 346 343
Store 278(i64v) 349
350: 40(ptr) AccessChain 291(u64v) 219
351: 14(int) Load 350
352: 40(ptr) AccessChain 291(u64v) 202
353: 14(int) Load 352
354: 14(int) Select 340 353 351
Store 293(u64) 354
355: 14(int) Load 293(u64)
356: 132(ivec3) CompositeConstruct 355 355 355
357: 14(int) Load 293(u64)
358: 14(int) SNegate 357
347: 18(int) Load 284(i64)
348: 18(int) SNegate 347
349: 52(ivec2) CompositeConstruct 348 348
352: 52(ivec2) Select 351 349 346
Store 281(i64v) 352
353: 40(ptr) AccessChain 294(u64v) 222
354: 14(int) Load 353
355: 40(ptr) AccessChain 294(u64v) 203
356: 14(int) Load 355
357: 14(int) Select 343 356 354
Store 296(u64) 357
358: 14(int) Load 296(u64)
359: 132(ivec3) CompositeConstruct 358 358 358
362: 132(ivec3) Select 361 359 356
Store 291(u64v) 362
366: 363(fvec3) Load 365(dv)
367: 95(fvec2) VectorShuffle 366 366 0 1
368: 52(ivec2) Bitcast 367
Store 278(i64v) 368
370: 369(ptr) AccessChain 365(dv) 209
371: 94(float) Load 370
372: 14(int) Bitcast 371
373: 40(ptr) AccessChain 291(u64v) 219
Store 373 372
374: 52(ivec2) Load 278(i64v)
375: 95(fvec2) Bitcast 374
376: 363(fvec3) Load 365(dv)
377: 363(fvec3) VectorShuffle 376 375 3 4 2
Store 365(dv) 377
378: 132(ivec3) Load 291(u64v)
379: 363(fvec3) Bitcast 378
Store 365(dv) 379
383: 18(int) Bitcast 382
Store 281(i64) 383
385: 18(int) Load 281(i64)
386: 74(ivec2) Bitcast 385
Store 384(iv) 386
388: 14(int) Bitcast 387
Store 293(u64) 388
390: 14(int) Load 293(u64)
391: 81(ivec2) Bitcast 390
Store 389(uv) 391
394: 132(ivec3) Load 291(u64v)
395: 14(int) Load 293(u64)
396: 132(ivec3) CompositeConstruct 395 395 395
397: 360(bvec3) ULessThan 394 396
Store 393(bv) 397
398: 52(ivec2) Load 278(i64v)
399: 18(int) Load 281(i64)
400: 52(ivec2) CompositeConstruct 399 399
401: 56(bvec2) SLessThan 398 400
402: 360(bvec3) Load 393(bv)
403: 360(bvec3) VectorShuffle 402 401 3 4 2
Store 393(bv) 403
404: 132(ivec3) Load 291(u64v)
405: 14(int) Load 293(u64)
406: 132(ivec3) CompositeConstruct 405 405 405
407: 360(bvec3) ULessThanEqual 404 406
Store 393(bv) 407
408: 52(ivec2) Load 278(i64v)
409: 18(int) Load 281(i64)
410: 52(ivec2) CompositeConstruct 409 409
411: 56(bvec2) SLessThanEqual 408 410
412: 360(bvec3) Load 393(bv)
413: 360(bvec3) VectorShuffle 412 411 3 4 2
Store 393(bv) 413
414: 132(ivec3) Load 291(u64v)
415: 14(int) Load 293(u64)
416: 132(ivec3) CompositeConstruct 415 415 415
417: 360(bvec3) UGreaterThan 414 416
Store 393(bv) 417
418: 52(ivec2) Load 278(i64v)
419: 18(int) Load 281(i64)
420: 52(ivec2) CompositeConstruct 419 419
421: 56(bvec2) SGreaterThan 418 420
422: 360(bvec3) Load 393(bv)
423: 360(bvec3) VectorShuffle 422 421 3 4 2
Store 393(bv) 423
424: 132(ivec3) Load 291(u64v)
425: 14(int) Load 293(u64)
426: 132(ivec3) CompositeConstruct 425 425 425
427: 360(bvec3) UGreaterThanEqual 424 426
Store 393(bv) 427
428: 52(ivec2) Load 278(i64v)
429: 18(int) Load 281(i64)
430: 52(ivec2) CompositeConstruct 429 429
431: 56(bvec2) SGreaterThanEqual 428 430
432: 360(bvec3) Load 393(bv)
433: 360(bvec3) VectorShuffle 432 431 3 4 2
Store 393(bv) 433
434: 132(ivec3) Load 291(u64v)
435: 14(int) Load 293(u64)
436: 132(ivec3) CompositeConstruct 435 435 435
437: 360(bvec3) IEqual 434 436
Store 393(bv) 437
438: 52(ivec2) Load 278(i64v)
439: 18(int) Load 281(i64)
440: 52(ivec2) CompositeConstruct 439 439
441: 56(bvec2) IEqual 438 440
442: 360(bvec3) Load 393(bv)
443: 360(bvec3) VectorShuffle 442 441 3 4 2
Store 393(bv) 443
444: 132(ivec3) Load 291(u64v)
445: 14(int) Load 293(u64)
446: 132(ivec3) CompositeConstruct 445 445 445
447: 360(bvec3) INotEqual 444 446
Store 393(bv) 447
448: 52(ivec2) Load 278(i64v)
449: 18(int) Load 281(i64)
450: 52(ivec2) CompositeConstruct 449 449
451: 56(bvec2) INotEqual 448 450
452: 360(bvec3) Load 393(bv)
453: 360(bvec3) VectorShuffle 452 451 3 4 2
Store 393(bv) 453
360: 14(int) Load 296(u64)
361: 14(int) SNegate 360
362: 132(ivec3) CompositeConstruct 361 361 361
365: 132(ivec3) Select 364 362 359
Store 294(u64v) 365
369: 366(fvec3) Load 368(dv)
370: 95(fvec2) VectorShuffle 369 369 0 1
371: 52(ivec2) Bitcast 370
Store 281(i64v) 371
373: 372(ptr) AccessChain 368(dv) 212
374: 94(float) Load 373
375: 14(int) Bitcast 374
376: 40(ptr) AccessChain 294(u64v) 222
Store 376 375
377: 52(ivec2) Load 281(i64v)
378: 95(fvec2) Bitcast 377
379: 366(fvec3) Load 368(dv)
380: 366(fvec3) VectorShuffle 379 378 3 4 2
Store 368(dv) 380
381: 132(ivec3) Load 294(u64v)
382: 366(fvec3) Bitcast 381
Store 368(dv) 382
386: 18(int) Bitcast 385
Store 284(i64) 386
388: 18(int) Load 284(i64)
389: 74(ivec2) Bitcast 388
Store 387(iv) 389
391: 14(int) Bitcast 390
Store 296(u64) 391
393: 14(int) Load 296(u64)
394: 81(ivec2) Bitcast 393
Store 392(uv) 394
397: 132(ivec3) Load 294(u64v)
398: 14(int) Load 296(u64)
399: 132(ivec3) CompositeConstruct 398 398 398
400: 363(bvec3) ULessThan 397 399
Store 396(bv) 400
401: 52(ivec2) Load 281(i64v)
402: 18(int) Load 284(i64)
403: 52(ivec2) CompositeConstruct 402 402
404: 56(bvec2) SLessThan 401 403
405: 363(bvec3) Load 396(bv)
406: 363(bvec3) VectorShuffle 405 404 3 4 2
Store 396(bv) 406
407: 132(ivec3) Load 294(u64v)
408: 14(int) Load 296(u64)
409: 132(ivec3) CompositeConstruct 408 408 408
410: 363(bvec3) ULessThanEqual 407 409
Store 396(bv) 410
411: 52(ivec2) Load 281(i64v)
412: 18(int) Load 284(i64)
413: 52(ivec2) CompositeConstruct 412 412
414: 56(bvec2) SLessThanEqual 411 413
415: 363(bvec3) Load 396(bv)
416: 363(bvec3) VectorShuffle 415 414 3 4 2
Store 396(bv) 416
417: 132(ivec3) Load 294(u64v)
418: 14(int) Load 296(u64)
419: 132(ivec3) CompositeConstruct 418 418 418
420: 363(bvec3) UGreaterThan 417 419
Store 396(bv) 420
421: 52(ivec2) Load 281(i64v)
422: 18(int) Load 284(i64)
423: 52(ivec2) CompositeConstruct 422 422
424: 56(bvec2) SGreaterThan 421 423
425: 363(bvec3) Load 396(bv)
426: 363(bvec3) VectorShuffle 425 424 3 4 2
Store 396(bv) 426
427: 132(ivec3) Load 294(u64v)
428: 14(int) Load 296(u64)
429: 132(ivec3) CompositeConstruct 428 428 428
430: 363(bvec3) UGreaterThanEqual 427 429
Store 396(bv) 430
431: 52(ivec2) Load 281(i64v)
432: 18(int) Load 284(i64)
433: 52(ivec2) CompositeConstruct 432 432
434: 56(bvec2) SGreaterThanEqual 431 433
435: 363(bvec3) Load 396(bv)
436: 363(bvec3) VectorShuffle 435 434 3 4 2
Store 396(bv) 436
437: 132(ivec3) Load 294(u64v)
438: 14(int) Load 296(u64)
439: 132(ivec3) CompositeConstruct 438 438 438
440: 363(bvec3) IEqual 437 439
Store 396(bv) 440
441: 52(ivec2) Load 281(i64v)
442: 18(int) Load 284(i64)
443: 52(ivec2) CompositeConstruct 442 442
444: 56(bvec2) IEqual 441 443
445: 363(bvec3) Load 396(bv)
446: 363(bvec3) VectorShuffle 445 444 3 4 2
Store 396(bv) 446
447: 132(ivec3) Load 294(u64v)
448: 14(int) Load 296(u64)
449: 132(ivec3) CompositeConstruct 448 448 448
450: 363(bvec3) INotEqual 447 449
Store 396(bv) 450
451: 52(ivec2) Load 281(i64v)
452: 18(int) Load 284(i64)
453: 52(ivec2) CompositeConstruct 452 452
454: 56(bvec2) INotEqual 451 453
455: 363(bvec3) Load 396(bv)
456: 363(bvec3) VectorShuffle 455 454 3 4 2
Store 396(bv) 456
Return
FunctionEnd