The base and shift amount need to be integers, but not of the same type.
This fixes #1296 and replaces #1297.
spv.int16.frag
// Module Version 10000
// Generated by (magic number): 80006
-// Id's are bound by 525
+// Id's are bound by 523
Capability Shader
Capability Float16
Name 220 "i"
Name 227 "uv"
Name 243 "i64"
- Name 283 "b"
- Name 345 "i16v"
- Name 348 "i16"
- Name 358 "u16v"
- Name 360 "u16"
- Name 430 "i32"
- Name 433 "i64"
- Name 436 "i16v4"
- Name 439 "u32"
- Name 440 "u16v2"
- Name 444 "u64"
- Name 447 "u16v4"
- Name 459 "bv"
- Name 520 "Block"
- MemberName 520(Block) 0 "i16"
- MemberName 520(Block) 1 "i16v2"
- MemberName 520(Block) 2 "i16v3"
- MemberName 520(Block) 3 "i16v4"
- MemberName 520(Block) 4 "u16"
- MemberName 520(Block) 5 "u16v2"
- MemberName 520(Block) 6 "u16v3"
- MemberName 520(Block) 7 "u16v4"
- Name 522 "block"
- Name 523 "si16"
- Name 524 "su16"
+ Name 281 "b"
+ Name 343 "i16v"
+ Name 346 "i16"
+ Name 356 "u16v"
+ Name 358 "u16"
+ Name 428 "i32"
+ Name 431 "i64"
+ Name 434 "i16v4"
+ Name 437 "u32"
+ Name 438 "u16v2"
+ Name 442 "u64"
+ Name 445 "u16v4"
+ Name 457 "bv"
+ Name 518 "Block"
+ MemberName 518(Block) 0 "i16"
+ MemberName 518(Block) 1 "i16v2"
+ MemberName 518(Block) 2 "i16v3"
+ MemberName 518(Block) 3 "i16v4"
+ MemberName 518(Block) 4 "u16"
+ MemberName 518(Block) 5 "u16v2"
+ MemberName 518(Block) 6 "u16v3"
+ MemberName 518(Block) 7 "u16v4"
+ Name 520 "block"
+ Name 521 "si16"
+ Name 522 "su16"
MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0
Decorate 26 Binding 0
- MemberDecorate 520(Block) 0 Offset 0
- MemberDecorate 520(Block) 1 Offset 4
- MemberDecorate 520(Block) 2 Offset 8
- MemberDecorate 520(Block) 3 Offset 16
- MemberDecorate 520(Block) 4 Offset 24
- MemberDecorate 520(Block) 5 Offset 28
- MemberDecorate 520(Block) 6 Offset 32
- MemberDecorate 520(Block) 7 Offset 40
- Decorate 520(Block) Block
- Decorate 522(block) DescriptorSet 0
- Decorate 522(block) Binding 1
- Decorate 523(si16) SpecId 100
- Decorate 524(su16) SpecId 101
+ MemberDecorate 518(Block) 0 Offset 0
+ MemberDecorate 518(Block) 1 Offset 4
+ MemberDecorate 518(Block) 2 Offset 8
+ MemberDecorate 518(Block) 3 Offset 16
+ MemberDecorate 518(Block) 4 Offset 24
+ MemberDecorate 518(Block) 5 Offset 28
+ MemberDecorate 518(Block) 6 Offset 32
+ MemberDecorate 518(Block) 7 Offset 40
+ Decorate 518(Block) Block
+ Decorate 520(block) DescriptorSet 0
+ Decorate 520(block) Binding 1
+ Decorate 521(si16) SpecId 100
+ Decorate 522(su16) SpecId 101
2: TypeVoid
3: TypeFunction 2
14: TypeInt 16 1
242: TypePointer Function 71(int)
264: 17(int) Constant 1
270: 17(int) Constant 2
- 275: TypeVector 27(int) 3
- 282: TypePointer Function 173(bool)
- 284: 17(int) Constant 0
- 298: TypePointer Function 17(int)
- 356: 52(ivec2) ConstantComposite 21 21
- 365: 193(ivec3) ConstantComposite 184 184 184
- 407: 173(bool) ConstantTrue
- 414: 173(bool) ConstantFalse
- 415: 174(bvec2) ConstantComposite 414 414
- 427: TypeVector 173(bool) 3
- 428: 427(bvec3) ConstantComposite 414 414 414
- 434: TypeVector 14(int) 4
- 435: TypePointer Function 434(ivec4)
- 443: TypePointer Function 77(int)
- 445: TypeVector 36(int) 4
- 446: TypePointer Function 445(ivec4)
- 458: TypePointer Function 427(bvec3)
- 520(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 434(ivec4) 36(int) 57(ivec2) 193(ivec3) 445(ivec4)
- 521: TypePointer Uniform 520(Block)
- 522(block): 521(ptr) Variable Uniform
- 523(si16): 14(int) SpecConstant 4294967286
- 524(su16): 36(int) SpecConstant 20
+ 276: TypeVector 27(int) 3
+ 280: TypePointer Function 173(bool)
+ 282: 17(int) Constant 0
+ 296: TypePointer Function 17(int)
+ 354: 52(ivec2) ConstantComposite 21 21
+ 363: 193(ivec3) ConstantComposite 184 184 184
+ 405: 173(bool) ConstantTrue
+ 412: 173(bool) ConstantFalse
+ 413: 174(bvec2) ConstantComposite 412 412
+ 425: TypeVector 173(bool) 3
+ 426: 425(bvec3) ConstantComposite 412 412 412
+ 432: TypeVector 14(int) 4
+ 433: TypePointer Function 432(ivec4)
+ 441: TypePointer Function 77(int)
+ 443: TypeVector 36(int) 4
+ 444: TypePointer Function 443(ivec4)
+ 456: TypePointer Function 425(bvec3)
+ 518(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 432(ivec4) 36(int) 57(ivec2) 193(ivec3) 443(ivec4)
+ 519: TypePointer Uniform 518(Block)
+ 520(block): 519(ptr) Variable Uniform
+ 521(si16): 14(int) SpecConstant 4294967286
+ 522(su16): 36(int) SpecConstant 20
4(main): 2 Function None 3
5: Label
Return
220(i): 219(ptr) Variable Function
227(uv): 226(ptr) Variable Function
243(i64): 242(ptr) Variable Function
- 283(b): 282(ptr) Variable Function
+ 281(b): 280(ptr) Variable Function
196: 193(ivec3) Load 195(u16v)
198: 197(ivec3) CompositeConstruct 179 179 179
199: 193(ivec3) IAdd 196 198
273: 14(int) ShiftLeftLogical 269 272
Store 200(i16) 273
274: 193(ivec3) Load 195(u16v)
- 276: 275(ivec3) UConvert 274
- 277: 275(ivec3) Bitcast 276
- 278: 27(int) Load 220(i)
- 279: 275(ivec3) CompositeConstruct 278 278 278
- 280: 275(ivec3) ShiftLeftLogical 277 279
- 281: 225(ivec3) Bitcast 280
- Store 227(uv) 281
- 285: 37(ptr) AccessChain 195(u16v) 284
- 286: 36(int) Load 285
- 287: 14(int) Load 200(i16)
- 288: 36(int) Bitcast 287
- 289: 173(bool) INotEqual 286 288
- Store 283(b) 289
- 290: 14(int) Load 200(i16)
- 291: 36(int) Bitcast 290
- 292: 37(ptr) AccessChain 195(u16v) 284
- 293: 36(int) Load 292
- 294: 173(bool) IEqual 291 293
- Store 283(b) 294
- 295: 37(ptr) AccessChain 195(u16v) 284
- 296: 36(int) Load 295
- 297: 17(int) UConvert 296
- 299: 298(ptr) AccessChain 227(uv) 264
- 300: 17(int) Load 299
- 301: 173(bool) UGreaterThan 297 300
- Store 283(b) 301
- 302: 14(int) Load 200(i16)
- 303: 27(int) SConvert 302
- 304: 27(int) Load 220(i)
- 305: 173(bool) SLessThan 303 304
- Store 283(b) 305
- 306: 37(ptr) AccessChain 195(u16v) 264
- 307: 36(int) Load 306
- 308: 17(int) UConvert 307
- 309: 298(ptr) AccessChain 227(uv) 284
- 310: 17(int) Load 309
- 311: 173(bool) UGreaterThanEqual 308 310
- Store 283(b) 311
- 312: 14(int) Load 200(i16)
- 313: 27(int) SConvert 312
- 314: 27(int) Load 220(i)
- 315: 173(bool) SLessThanEqual 313 314
- Store 283(b) 315
- 316: 14(int) Load 200(i16)
- 317: 27(int) SConvert 316
- 318: 17(int) Bitcast 317
- 319: 225(ivec3) Load 227(uv)
- 320: 225(ivec3) CompositeConstruct 318 318 318
- 321: 225(ivec3) BitwiseOr 319 320
- Store 227(uv) 321
- 322: 14(int) Load 200(i16)
- 323: 27(int) SConvert 322
- 324: 27(int) Load 220(i)
- 325: 27(int) BitwiseOr 323 324
- Store 220(i) 325
- 326: 14(int) Load 200(i16)
- 327: 71(int) SConvert 326
- 328: 71(int) Load 243(i64)
- 329: 71(int) BitwiseAnd 328 327
- Store 243(i64) 329
- 330: 193(ivec3) Load 195(u16v)
- 331: 225(ivec3) UConvert 330
- 332: 225(ivec3) Load 227(uv)
- 333: 225(ivec3) BitwiseAnd 331 332
- Store 227(uv) 333
- 334: 14(int) Load 200(i16)
- 335: 27(int) SConvert 334
- 336: 17(int) Bitcast 335
- 337: 225(ivec3) Load 227(uv)
- 338: 225(ivec3) CompositeConstruct 336 336 336
- 339: 225(ivec3) BitwiseXor 337 338
- Store 227(uv) 339
- 340: 193(ivec3) Load 195(u16v)
- 341: 14(int) Load 200(i16)
- 342: 36(int) Bitcast 341
- 343: 193(ivec3) CompositeConstruct 342 342 342
- 344: 193(ivec3) BitwiseXor 340 343
- Store 195(u16v) 344
+ 275: 27(int) Load 220(i)
+ 277: 276(ivec3) CompositeConstruct 275 275 275
+ 278: 193(ivec3) ShiftLeftLogical 274 277
+ 279: 225(ivec3) UConvert 278
+ Store 227(uv) 279
+ 283: 37(ptr) AccessChain 195(u16v) 282
+ 284: 36(int) Load 283
+ 285: 14(int) Load 200(i16)
+ 286: 36(int) Bitcast 285
+ 287: 173(bool) INotEqual 284 286
+ Store 281(b) 287
+ 288: 14(int) Load 200(i16)
+ 289: 36(int) Bitcast 288
+ 290: 37(ptr) AccessChain 195(u16v) 282
+ 291: 36(int) Load 290
+ 292: 173(bool) IEqual 289 291
+ Store 281(b) 292
+ 293: 37(ptr) AccessChain 195(u16v) 282
+ 294: 36(int) Load 293
+ 295: 17(int) UConvert 294
+ 297: 296(ptr) AccessChain 227(uv) 264
+ 298: 17(int) Load 297
+ 299: 173(bool) UGreaterThan 295 298
+ Store 281(b) 299
+ 300: 14(int) Load 200(i16)
+ 301: 27(int) SConvert 300
+ 302: 27(int) Load 220(i)
+ 303: 173(bool) SLessThan 301 302
+ Store 281(b) 303
+ 304: 37(ptr) AccessChain 195(u16v) 264
+ 305: 36(int) Load 304
+ 306: 17(int) UConvert 305
+ 307: 296(ptr) AccessChain 227(uv) 282
+ 308: 17(int) Load 307
+ 309: 173(bool) UGreaterThanEqual 306 308
+ Store 281(b) 309
+ 310: 14(int) Load 200(i16)
+ 311: 27(int) SConvert 310
+ 312: 27(int) Load 220(i)
+ 313: 173(bool) SLessThanEqual 311 312
+ Store 281(b) 313
+ 314: 14(int) Load 200(i16)
+ 315: 27(int) SConvert 314
+ 316: 17(int) Bitcast 315
+ 317: 225(ivec3) Load 227(uv)
+ 318: 225(ivec3) CompositeConstruct 316 316 316
+ 319: 225(ivec3) BitwiseOr 317 318
+ Store 227(uv) 319
+ 320: 14(int) Load 200(i16)
+ 321: 27(int) SConvert 320
+ 322: 27(int) Load 220(i)
+ 323: 27(int) BitwiseOr 321 322
+ Store 220(i) 323
+ 324: 14(int) Load 200(i16)
+ 325: 71(int) SConvert 324
+ 326: 71(int) Load 243(i64)
+ 327: 71(int) BitwiseAnd 326 325
+ Store 243(i64) 327
+ 328: 193(ivec3) Load 195(u16v)
+ 329: 225(ivec3) UConvert 328
+ 330: 225(ivec3) Load 227(uv)
+ 331: 225(ivec3) BitwiseAnd 329 330
+ Store 227(uv) 331
+ 332: 14(int) Load 200(i16)
+ 333: 27(int) SConvert 332
+ 334: 17(int) Bitcast 333
+ 335: 225(ivec3) Load 227(uv)
+ 336: 225(ivec3) CompositeConstruct 334 334 334
+ 337: 225(ivec3) BitwiseXor 335 336
+ Store 227(uv) 337
+ 338: 193(ivec3) Load 195(u16v)
+ 339: 14(int) Load 200(i16)
+ 340: 36(int) Bitcast 339
+ 341: 193(ivec3) CompositeConstruct 340 340 340
+ 342: 193(ivec3) BitwiseXor 338 341
+ Store 195(u16v) 342
Return
FunctionEnd
12(builtinFuncs(): 2 Function None 3
13: Label
- 345(i16v): 53(ptr) Variable Function
- 348(i16): 15(ptr) Variable Function
- 358(u16v): 194(ptr) Variable Function
- 360(u16): 37(ptr) Variable Function
- 430(i32): 219(ptr) Variable Function
- 433(i64): 242(ptr) Variable Function
- 436(i16v4): 435(ptr) Variable Function
- 439(u32): 298(ptr) Variable Function
- 440(u16v2): 58(ptr) Variable Function
- 444(u64): 443(ptr) Variable Function
- 447(u16v4): 446(ptr) Variable Function
- 459(bv): 458(ptr) Variable Function
- 346: 52(ivec2) Load 345(i16v)
- 347: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 346
- Store 345(i16v) 347
- 349: 14(int) Load 348(i16)
- 350: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 349
- Store 348(i16) 350
- 351: 52(ivec2) Load 345(i16v)
- 352: 14(int) Load 348(i16)
- 353: 52(ivec2) CompositeConstruct 352 352
- 354: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 351 353
- Store 345(i16v) 354
- 355: 52(ivec2) Load 345(i16v)
- 357: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 355 356
- Store 345(i16v) 357
- 359: 193(ivec3) Load 358(u16v)
- 361: 36(int) Load 360(u16)
- 362: 193(ivec3) CompositeConstruct 361 361 361
- 363: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 359 362
- Store 358(u16v) 363
- 364: 193(ivec3) Load 358(u16v)
- 366: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 364 365
- Store 358(u16v) 366
- 367: 52(ivec2) Load 345(i16v)
- 368: 14(int) Load 348(i16)
- 369: 52(ivec2) CompositeConstruct 368 368
- 370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 367 369
- Store 345(i16v) 370
- 371: 52(ivec2) Load 345(i16v)
- 372: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 371 356
- Store 345(i16v) 372
- 373: 193(ivec3) Load 358(u16v)
- 374: 36(int) Load 360(u16)
- 375: 193(ivec3) CompositeConstruct 374 374 374
- 376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 373 375
- Store 358(u16v) 376
- 377: 193(ivec3) Load 358(u16v)
- 378: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 377 365
- Store 358(u16v) 378
- 379: 52(ivec2) Load 345(i16v)
- 380: 14(int) Load 348(i16)
- 381: 14(int) SNegate 380
- 382: 14(int) Load 348(i16)
- 383: 52(ivec2) CompositeConstruct 381 381
- 384: 52(ivec2) CompositeConstruct 382 382
- 385: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 383 384
- Store 345(i16v) 385
- 386: 52(ivec2) Load 345(i16v)
- 387: 52(ivec2) Load 345(i16v)
- 388: 52(ivec2) SNegate 387
- 389: 52(ivec2) Load 345(i16v)
- 390: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 386 388 389
- Store 345(i16v) 390
- 391: 193(ivec3) Load 358(u16v)
- 392: 36(int) Load 360(u16)
- 393: 36(int) SNegate 392
- 394: 36(int) Load 360(u16)
- 395: 193(ivec3) CompositeConstruct 393 393 393
- 396: 193(ivec3) CompositeConstruct 394 394 394
- 397: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 395 396
- Store 358(u16v) 397
- 398: 193(ivec3) Load 358(u16v)
- 399: 193(ivec3) Load 358(u16v)
- 400: 193(ivec3) SNegate 399
- 401: 193(ivec3) Load 358(u16v)
- 402: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 398 400 401
- Store 358(u16v) 402
- 403: 15(ptr) AccessChain 345(i16v) 284
+ 343(i16v): 53(ptr) Variable Function
+ 346(i16): 15(ptr) Variable Function
+ 356(u16v): 194(ptr) Variable Function
+ 358(u16): 37(ptr) Variable Function
+ 428(i32): 219(ptr) Variable Function
+ 431(i64): 242(ptr) Variable Function
+ 434(i16v4): 433(ptr) Variable Function
+ 437(u32): 296(ptr) Variable Function
+ 438(u16v2): 58(ptr) Variable Function
+ 442(u64): 441(ptr) Variable Function
+ 445(u16v4): 444(ptr) Variable Function
+ 457(bv): 456(ptr) Variable Function
+ 344: 52(ivec2) Load 343(i16v)
+ 345: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344
+ Store 343(i16v) 345
+ 347: 14(int) Load 346(i16)
+ 348: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 347
+ Store 346(i16) 348
+ 349: 52(ivec2) Load 343(i16v)
+ 350: 14(int) Load 346(i16)
+ 351: 52(ivec2) CompositeConstruct 350 350
+ 352: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351
+ Store 343(i16v) 352
+ 353: 52(ivec2) Load 343(i16v)
+ 355: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354
+ Store 343(i16v) 355
+ 357: 193(ivec3) Load 356(u16v)
+ 359: 36(int) Load 358(u16)
+ 360: 193(ivec3) CompositeConstruct 359 359 359
+ 361: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360
+ Store 356(u16v) 361
+ 362: 193(ivec3) Load 356(u16v)
+ 364: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363
+ Store 356(u16v) 364
+ 365: 52(ivec2) Load 343(i16v)
+ 366: 14(int) Load 346(i16)
+ 367: 52(ivec2) CompositeConstruct 366 366
+ 368: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367
+ Store 343(i16v) 368
+ 369: 52(ivec2) Load 343(i16v)
+ 370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354
+ Store 343(i16v) 370
+ 371: 193(ivec3) Load 356(u16v)
+ 372: 36(int) Load 358(u16)
+ 373: 193(ivec3) CompositeConstruct 372 372 372
+ 374: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373
+ Store 356(u16v) 374
+ 375: 193(ivec3) Load 356(u16v)
+ 376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363
+ Store 356(u16v) 376
+ 377: 52(ivec2) Load 343(i16v)
+ 378: 14(int) Load 346(i16)
+ 379: 14(int) SNegate 378
+ 380: 14(int) Load 346(i16)
+ 381: 52(ivec2) CompositeConstruct 379 379
+ 382: 52(ivec2) CompositeConstruct 380 380
+ 383: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382
+ Store 343(i16v) 383
+ 384: 52(ivec2) Load 343(i16v)
+ 385: 52(ivec2) Load 343(i16v)
+ 386: 52(ivec2) SNegate 385
+ 387: 52(ivec2) Load 343(i16v)
+ 388: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387
+ Store 343(i16v) 388
+ 389: 193(ivec3) Load 356(u16v)
+ 390: 36(int) Load 358(u16)
+ 391: 36(int) SNegate 390
+ 392: 36(int) Load 358(u16)
+ 393: 193(ivec3) CompositeConstruct 391 391 391
+ 394: 193(ivec3) CompositeConstruct 392 392 392
+ 395: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394
+ Store 356(u16v) 395
+ 396: 193(ivec3) Load 356(u16v)
+ 397: 193(ivec3) Load 356(u16v)
+ 398: 193(ivec3) SNegate 397
+ 399: 193(ivec3) Load 356(u16v)
+ 400: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399
+ Store 356(u16v) 400
+ 401: 15(ptr) AccessChain 343(i16v) 282
+ 402: 14(int) Load 401
+ 403: 15(ptr) AccessChain 343(i16v) 264
404: 14(int) Load 403
- 405: 15(ptr) AccessChain 345(i16v) 264
- 406: 14(int) Load 405
- 408: 14(int) Select 407 406 404
- Store 348(i16) 408
- 409: 14(int) Load 348(i16)
- 410: 52(ivec2) CompositeConstruct 409 409
- 411: 14(int) Load 348(i16)
- 412: 14(int) SNegate 411
- 413: 52(ivec2) CompositeConstruct 412 412
- 416: 52(ivec2) Select 415 413 410
- Store 345(i16v) 416
- 417: 37(ptr) AccessChain 358(u16v) 284
+ 406: 14(int) Select 405 404 402
+ Store 346(i16) 406
+ 407: 14(int) Load 346(i16)
+ 408: 52(ivec2) CompositeConstruct 407 407
+ 409: 14(int) Load 346(i16)
+ 410: 14(int) SNegate 409
+ 411: 52(ivec2) CompositeConstruct 410 410
+ 414: 52(ivec2) Select 413 411 408
+ Store 343(i16v) 414
+ 415: 37(ptr) AccessChain 356(u16v) 282
+ 416: 36(int) Load 415
+ 417: 37(ptr) AccessChain 356(u16v) 264
418: 36(int) Load 417
- 419: 37(ptr) AccessChain 358(u16v) 264
- 420: 36(int) Load 419
- 421: 36(int) Select 407 420 418
- Store 360(u16) 421
- 422: 36(int) Load 360(u16)
- 423: 193(ivec3) CompositeConstruct 422 422 422
- 424: 36(int) Load 360(u16)
- 425: 36(int) SNegate 424
- 426: 193(ivec3) CompositeConstruct 425 425 425
- 429: 193(ivec3) Select 428 426 423
- Store 358(u16v) 429
- 431: 52(ivec2) Load 345(i16v)
- 432: 27(int) Bitcast 431
- Store 430(i32) 432
- 437: 434(ivec4) Load 436(i16v4)
- 438: 71(int) Bitcast 437
- Store 433(i64) 438
- 441: 57(ivec2) Load 440(u16v2)
- 442: 17(int) Bitcast 441
- Store 439(u32) 442
- 448: 445(ivec4) Load 447(u16v4)
- 449: 77(int) Bitcast 448
- Store 444(u64) 449
- 450: 27(int) Load 430(i32)
- 451: 52(ivec2) Bitcast 450
- Store 345(i16v) 451
- 452: 71(int) Load 433(i64)
- 453: 434(ivec4) Bitcast 452
- Store 436(i16v4) 453
- 454: 17(int) Load 439(u32)
- 455: 57(ivec2) Bitcast 454
- Store 440(u16v2) 455
- 456: 77(int) Load 444(u64)
- 457: 445(ivec4) Bitcast 456
- Store 447(u16v4) 457
- 460: 193(ivec3) Load 358(u16v)
- 461: 36(int) Load 360(u16)
- 462: 193(ivec3) CompositeConstruct 461 461 461
- 463: 427(bvec3) ULessThan 460 462
- Store 459(bv) 463
- 464: 52(ivec2) Load 345(i16v)
- 465: 14(int) Load 348(i16)
- 466: 52(ivec2) CompositeConstruct 465 465
- 467: 174(bvec2) SLessThan 464 466
- 468: 427(bvec3) Load 459(bv)
- 469: 427(bvec3) VectorShuffle 468 467 3 4 2
- Store 459(bv) 469
- 470: 193(ivec3) Load 358(u16v)
- 471: 36(int) Load 360(u16)
- 472: 193(ivec3) CompositeConstruct 471 471 471
- 473: 427(bvec3) ULessThanEqual 470 472
- Store 459(bv) 473
- 474: 52(ivec2) Load 345(i16v)
- 475: 14(int) Load 348(i16)
- 476: 52(ivec2) CompositeConstruct 475 475
- 477: 174(bvec2) SLessThanEqual 474 476
- 478: 427(bvec3) Load 459(bv)
- 479: 427(bvec3) VectorShuffle 478 477 3 4 2
- Store 459(bv) 479
- 480: 193(ivec3) Load 358(u16v)
- 481: 36(int) Load 360(u16)
- 482: 193(ivec3) CompositeConstruct 481 481 481
- 483: 427(bvec3) UGreaterThan 480 482
- Store 459(bv) 483
- 484: 52(ivec2) Load 345(i16v)
- 485: 14(int) Load 348(i16)
- 486: 52(ivec2) CompositeConstruct 485 485
- 487: 174(bvec2) SGreaterThan 484 486
- 488: 427(bvec3) Load 459(bv)
- 489: 427(bvec3) VectorShuffle 488 487 3 4 2
- Store 459(bv) 489
- 490: 193(ivec3) Load 358(u16v)
- 491: 36(int) Load 360(u16)
- 492: 193(ivec3) CompositeConstruct 491 491 491
- 493: 427(bvec3) UGreaterThanEqual 490 492
- Store 459(bv) 493
- 494: 52(ivec2) Load 345(i16v)
- 495: 14(int) Load 348(i16)
- 496: 52(ivec2) CompositeConstruct 495 495
- 497: 174(bvec2) SGreaterThanEqual 494 496
- 498: 427(bvec3) Load 459(bv)
- 499: 427(bvec3) VectorShuffle 498 497 3 4 2
- Store 459(bv) 499
- 500: 193(ivec3) Load 358(u16v)
- 501: 36(int) Load 360(u16)
- 502: 193(ivec3) CompositeConstruct 501 501 501
- 503: 427(bvec3) IEqual 500 502
- Store 459(bv) 503
- 504: 52(ivec2) Load 345(i16v)
- 505: 14(int) Load 348(i16)
- 506: 52(ivec2) CompositeConstruct 505 505
- 507: 174(bvec2) IEqual 504 506
- 508: 427(bvec3) Load 459(bv)
- 509: 427(bvec3) VectorShuffle 508 507 3 4 2
- Store 459(bv) 509
- 510: 193(ivec3) Load 358(u16v)
- 511: 36(int) Load 360(u16)
- 512: 193(ivec3) CompositeConstruct 511 511 511
- 513: 427(bvec3) INotEqual 510 512
- Store 459(bv) 513
- 514: 52(ivec2) Load 345(i16v)
- 515: 14(int) Load 348(i16)
- 516: 52(ivec2) CompositeConstruct 515 515
- 517: 174(bvec2) INotEqual 514 516
- 518: 427(bvec3) Load 459(bv)
- 519: 427(bvec3) VectorShuffle 518 517 3 4 2
- Store 459(bv) 519
+ 419: 36(int) Select 405 418 416
+ Store 358(u16) 419
+ 420: 36(int) Load 358(u16)
+ 421: 193(ivec3) CompositeConstruct 420 420 420
+ 422: 36(int) Load 358(u16)
+ 423: 36(int) SNegate 422
+ 424: 193(ivec3) CompositeConstruct 423 423 423
+ 427: 193(ivec3) Select 426 424 421
+ Store 356(u16v) 427
+ 429: 52(ivec2) Load 343(i16v)
+ 430: 27(int) Bitcast 429
+ Store 428(i32) 430
+ 435: 432(ivec4) Load 434(i16v4)
+ 436: 71(int) Bitcast 435
+ Store 431(i64) 436
+ 439: 57(ivec2) Load 438(u16v2)
+ 440: 17(int) Bitcast 439
+ Store 437(u32) 440
+ 446: 443(ivec4) Load 445(u16v4)
+ 447: 77(int) Bitcast 446
+ Store 442(u64) 447
+ 448: 27(int) Load 428(i32)
+ 449: 52(ivec2) Bitcast 448
+ Store 343(i16v) 449
+ 450: 71(int) Load 431(i64)
+ 451: 432(ivec4) Bitcast 450
+ Store 434(i16v4) 451
+ 452: 17(int) Load 437(u32)
+ 453: 57(ivec2) Bitcast 452
+ Store 438(u16v2) 453
+ 454: 77(int) Load 442(u64)
+ 455: 443(ivec4) Bitcast 454
+ Store 445(u16v4) 455
+ 458: 193(ivec3) Load 356(u16v)
+ 459: 36(int) Load 358(u16)
+ 460: 193(ivec3) CompositeConstruct 459 459 459
+ 461: 425(bvec3) ULessThan 458 460
+ Store 457(bv) 461
+ 462: 52(ivec2) Load 343(i16v)
+ 463: 14(int) Load 346(i16)
+ 464: 52(ivec2) CompositeConstruct 463 463
+ 465: 174(bvec2) SLessThan 462 464
+ 466: 425(bvec3) Load 457(bv)
+ 467: 425(bvec3) VectorShuffle 466 465 3 4 2
+ Store 457(bv) 467
+ 468: 193(ivec3) Load 356(u16v)
+ 469: 36(int) Load 358(u16)
+ 470: 193(ivec3) CompositeConstruct 469 469 469
+ 471: 425(bvec3) ULessThanEqual 468 470
+ Store 457(bv) 471
+ 472: 52(ivec2) Load 343(i16v)
+ 473: 14(int) Load 346(i16)
+ 474: 52(ivec2) CompositeConstruct 473 473
+ 475: 174(bvec2) SLessThanEqual 472 474
+ 476: 425(bvec3) Load 457(bv)
+ 477: 425(bvec3) VectorShuffle 476 475 3 4 2
+ Store 457(bv) 477
+ 478: 193(ivec3) Load 356(u16v)
+ 479: 36(int) Load 358(u16)
+ 480: 193(ivec3) CompositeConstruct 479 479 479
+ 481: 425(bvec3) UGreaterThan 478 480
+ Store 457(bv) 481
+ 482: 52(ivec2) Load 343(i16v)
+ 483: 14(int) Load 346(i16)
+ 484: 52(ivec2) CompositeConstruct 483 483
+ 485: 174(bvec2) SGreaterThan 482 484
+ 486: 425(bvec3) Load 457(bv)
+ 487: 425(bvec3) VectorShuffle 486 485 3 4 2
+ Store 457(bv) 487
+ 488: 193(ivec3) Load 356(u16v)
+ 489: 36(int) Load 358(u16)
+ 490: 193(ivec3) CompositeConstruct 489 489 489
+ 491: 425(bvec3) UGreaterThanEqual 488 490
+ Store 457(bv) 491
+ 492: 52(ivec2) Load 343(i16v)
+ 493: 14(int) Load 346(i16)
+ 494: 52(ivec2) CompositeConstruct 493 493
+ 495: 174(bvec2) SGreaterThanEqual 492 494
+ 496: 425(bvec3) Load 457(bv)
+ 497: 425(bvec3) VectorShuffle 496 495 3 4 2
+ Store 457(bv) 497
+ 498: 193(ivec3) Load 356(u16v)
+ 499: 36(int) Load 358(u16)
+ 500: 193(ivec3) CompositeConstruct 499 499 499
+ 501: 425(bvec3) IEqual 498 500
+ Store 457(bv) 501
+ 502: 52(ivec2) Load 343(i16v)
+ 503: 14(int) Load 346(i16)
+ 504: 52(ivec2) CompositeConstruct 503 503
+ 505: 174(bvec2) IEqual 502 504
+ 506: 425(bvec3) Load 457(bv)
+ 507: 425(bvec3) VectorShuffle 506 505 3 4 2
+ Store 457(bv) 507
+ 508: 193(ivec3) Load 356(u16v)
+ 509: 36(int) Load 358(u16)
+ 510: 193(ivec3) CompositeConstruct 509 509 509
+ 511: 425(bvec3) INotEqual 508 510
+ Store 457(bv) 511
+ 512: 52(ivec2) Load 343(i16v)
+ 513: 14(int) Load 346(i16)
+ 514: 52(ivec2) CompositeConstruct 513 513
+ 515: 174(bvec2) INotEqual 512 514
+ 516: 425(bvec3) Load 457(bv)
+ 517: 425(bvec3) VectorShuffle 516 515 3 4 2
+ Store 457(bv) 517
Return
FunctionEnd
spv.int32.frag
// Module Version 10300
// Generated by (magic number): 80006
-// Id's are bound by 495
+// Id's are bound by 493
Capability Shader
Capability Float16
Name 210 "i"
Name 214 "uv"
Name 227 "i64"
- Name 262 "b"
- Name 314 "i32v"
- Name 317 "i32"
- Name 327 "u32v"
- Name 329 "u32"
- Name 401 "i8v4"
- Name 404 "i16v2"
- Name 409 "u8v4"
- Name 412 "u16v2"
- Name 415 "i64"
- Name 418 "u32v2"
- Name 420 "u64"
- Name 424 "bv"
- Name 487 "Block"
- MemberName 487(Block) 0 "i32"
- MemberName 487(Block) 1 "i32v2"
- MemberName 487(Block) 2 "i32v3"
- MemberName 487(Block) 3 "i32v4"
- MemberName 487(Block) 4 "u32"
- MemberName 487(Block) 5 "u32v2"
- MemberName 487(Block) 6 "u32v3"
- MemberName 487(Block) 7 "u32v4"
- Name 489 "block"
- Name 490 "si32"
- Name 491 "su32"
- Name 492 "si"
- Name 493 "su"
- Name 494 "sb"
+ Name 260 "b"
+ Name 312 "i32v"
+ Name 315 "i32"
+ Name 325 "u32v"
+ Name 327 "u32"
+ Name 399 "i8v4"
+ Name 402 "i16v2"
+ Name 407 "u8v4"
+ Name 410 "u16v2"
+ Name 413 "i64"
+ Name 416 "u32v2"
+ Name 418 "u64"
+ Name 422 "bv"
+ Name 485 "Block"
+ MemberName 485(Block) 0 "i32"
+ MemberName 485(Block) 1 "i32v2"
+ MemberName 485(Block) 2 "i32v3"
+ MemberName 485(Block) 3 "i32v4"
+ MemberName 485(Block) 4 "u32"
+ MemberName 485(Block) 5 "u32v2"
+ MemberName 485(Block) 6 "u32v3"
+ MemberName 485(Block) 7 "u32v4"
+ Name 487 "block"
+ Name 488 "si32"
+ Name 489 "su32"
+ Name 490 "si"
+ Name 491 "su"
+ Name 492 "sb"
MemberDecorate 27(Uniforms) 0 Offset 0
Decorate 27(Uniforms) Block
Decorate 29 DescriptorSet 0
Decorate 29 Binding 0
- MemberDecorate 487(Block) 0 Offset 0
- MemberDecorate 487(Block) 1 Offset 8
- MemberDecorate 487(Block) 2 Offset 16
- MemberDecorate 487(Block) 3 Offset 32
- MemberDecorate 487(Block) 4 Offset 48
- MemberDecorate 487(Block) 5 Offset 56
- MemberDecorate 487(Block) 6 Offset 64
- MemberDecorate 487(Block) 7 Offset 80
- Decorate 487(Block) Block
- Decorate 489(block) DescriptorSet 0
- Decorate 489(block) Binding 1
- Decorate 490(si32) SpecId 100
- Decorate 491(su32) SpecId 101
- Decorate 492(si) SpecId 102
- Decorate 493(su) SpecId 103
- Decorate 494(sb) SpecId 104
+ MemberDecorate 485(Block) 0 Offset 0
+ MemberDecorate 485(Block) 1 Offset 8
+ MemberDecorate 485(Block) 2 Offset 16
+ MemberDecorate 485(Block) 3 Offset 32
+ MemberDecorate 485(Block) 4 Offset 48
+ MemberDecorate 485(Block) 5 Offset 56
+ MemberDecorate 485(Block) 6 Offset 64
+ MemberDecorate 485(Block) 7 Offset 80
+ Decorate 485(Block) Block
+ Decorate 487(block) DescriptorSet 0
+ Decorate 487(block) Binding 1
+ Decorate 488(si32) SpecId 100
+ Decorate 489(su32) SpecId 101
+ Decorate 490(si) SpecId 102
+ Decorate 491(su) SpecId 103
+ Decorate 492(sb) SpecId 104
2: TypeVoid
3: TypeFunction 2
14: TypeInt 32 0
188: TypeVector 18(int) 3
226: TypePointer Function 57(int)
251: 14(int) Constant 2
- 261: TypePointer Function 165(bool)
- 325: 52(ivec2) ConstantComposite 24 24
- 334: 184(ivec3) ConstantComposite 175 175 175
- 376: 165(bool) ConstantTrue
- 383: 165(bool) ConstantFalse
- 384: 166(bvec2) ConstantComposite 383 383
- 396: TypeVector 165(bool) 3
- 397: 396(bvec3) ConstantComposite 383 383 383
- 399: TypeVector 91(int) 4
- 400: TypePointer Function 399(ivec4)
- 407: TypeVector 120(int) 4
- 408: TypePointer Function 407(ivec4)
- 419: TypePointer Function 63(int)
- 423: TypePointer Function 396(bvec3)
- 485: TypeVector 18(int) 4
- 486: TypeVector 14(int) 4
- 487(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 485(ivec4) 14(int) 49(ivec2) 184(ivec3) 486(ivec4)
- 488: TypePointer Uniform 487(Block)
- 489(block): 488(ptr) Variable Uniform
- 490(si32): 18(int) SpecConstant 4294967286
- 491(su32): 14(int) SpecConstant 20
- 492(si): 18(int) SpecConstant 4294967291
- 493(su): 14(int) SpecConstant 4
- 494(sb): 165(bool) SpecConstantTrue
+ 259: TypePointer Function 165(bool)
+ 323: 52(ivec2) ConstantComposite 24 24
+ 332: 184(ivec3) ConstantComposite 175 175 175
+ 374: 165(bool) ConstantTrue
+ 381: 165(bool) ConstantFalse
+ 382: 166(bvec2) ConstantComposite 381 381
+ 394: TypeVector 165(bool) 3
+ 395: 394(bvec3) ConstantComposite 381 381 381
+ 397: TypeVector 91(int) 4
+ 398: TypePointer Function 397(ivec4)
+ 405: TypeVector 120(int) 4
+ 406: TypePointer Function 405(ivec4)
+ 417: TypePointer Function 63(int)
+ 421: TypePointer Function 394(bvec3)
+ 483: TypeVector 18(int) 4
+ 484: TypeVector 14(int) 4
+ 485(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 483(ivec4) 14(int) 49(ivec2) 184(ivec3) 484(ivec4)
+ 486: TypePointer Uniform 485(Block)
+ 487(block): 486(ptr) Variable Uniform
+ 488(si32): 18(int) SpecConstant 4294967286
+ 489(su32): 14(int) SpecConstant 20
+ 490(si): 18(int) SpecConstant 4294967291
+ 491(su): 14(int) SpecConstant 4
+ 492(sb): 165(bool) SpecConstantTrue
4(main): 2 Function None 3
5: Label
Store 16(u32Max) 17
210(i): 19(ptr) Variable Function
214(uv): 185(ptr) Variable Function
227(i64): 226(ptr) Variable Function
- 262(b): 261(ptr) Variable Function
+ 260(b): 259(ptr) Variable Function
187: 184(ivec3) Load 186(u32v)
189: 188(ivec3) CompositeConstruct 170 170 170
190: 184(ivec3) IAdd 187 189
250: 57(int) Load 227(i64)
252: 38(ptr) AccessChain 186(u32v) 251
253: 14(int) Load 252
- 254: 57(int) UConvert 253
- 255: 57(int) Bitcast 254
- 256: 57(int) ShiftLeftLogical 250 255
- Store 227(i64) 256
- 257: 184(ivec3) Load 186(u32v)
- 258: 18(int) Load 210(i)
- 259: 188(ivec3) CompositeConstruct 258 258 258
- 260: 184(ivec3) ShiftLeftLogical 257 259
- Store 214(uv) 260
- 263: 38(ptr) AccessChain 186(u32v) 175
- 264: 14(int) Load 263
- 265: 18(int) Load 191(i32)
- 266: 14(int) Bitcast 265
- 267: 165(bool) INotEqual 264 266
- Store 262(b) 267
- 268: 18(int) Load 191(i32)
- 269: 14(int) Bitcast 268
- 270: 38(ptr) AccessChain 186(u32v) 175
- 271: 14(int) Load 270
- 272: 165(bool) IEqual 269 271
- Store 262(b) 272
- 273: 38(ptr) AccessChain 186(u32v) 175
+ 254: 57(int) ShiftLeftLogical 250 253
+ Store 227(i64) 254
+ 255: 184(ivec3) Load 186(u32v)
+ 256: 18(int) Load 210(i)
+ 257: 188(ivec3) CompositeConstruct 256 256 256
+ 258: 184(ivec3) ShiftLeftLogical 255 257
+ Store 214(uv) 258
+ 261: 38(ptr) AccessChain 186(u32v) 175
+ 262: 14(int) Load 261
+ 263: 18(int) Load 191(i32)
+ 264: 14(int) Bitcast 263
+ 265: 165(bool) INotEqual 262 264
+ Store 260(b) 265
+ 266: 18(int) Load 191(i32)
+ 267: 14(int) Bitcast 266
+ 268: 38(ptr) AccessChain 186(u32v) 175
+ 269: 14(int) Load 268
+ 270: 165(bool) IEqual 267 269
+ Store 260(b) 270
+ 271: 38(ptr) AccessChain 186(u32v) 175
+ 272: 14(int) Load 271
+ 273: 38(ptr) AccessChain 214(uv) 176
274: 14(int) Load 273
- 275: 38(ptr) AccessChain 214(uv) 176
- 276: 14(int) Load 275
- 277: 165(bool) UGreaterThan 274 276
- Store 262(b) 277
- 278: 18(int) Load 191(i32)
- 279: 18(int) Load 210(i)
- 280: 165(bool) SLessThan 278 279
- Store 262(b) 280
- 281: 38(ptr) AccessChain 186(u32v) 176
+ 275: 165(bool) UGreaterThan 272 274
+ Store 260(b) 275
+ 276: 18(int) Load 191(i32)
+ 277: 18(int) Load 210(i)
+ 278: 165(bool) SLessThan 276 277
+ Store 260(b) 278
+ 279: 38(ptr) AccessChain 186(u32v) 176
+ 280: 14(int) Load 279
+ 281: 38(ptr) AccessChain 214(uv) 175
282: 14(int) Load 281
- 283: 38(ptr) AccessChain 214(uv) 175
- 284: 14(int) Load 283
- 285: 165(bool) UGreaterThanEqual 282 284
- Store 262(b) 285
- 286: 18(int) Load 191(i32)
- 287: 18(int) Load 210(i)
- 288: 165(bool) SLessThanEqual 286 287
- Store 262(b) 288
- 289: 18(int) Load 191(i32)
- 290: 14(int) Bitcast 289
- 291: 184(ivec3) Load 214(uv)
- 292: 184(ivec3) CompositeConstruct 290 290 290
- 293: 184(ivec3) BitwiseOr 291 292
- Store 214(uv) 293
- 294: 18(int) Load 191(i32)
- 295: 18(int) Load 210(i)
- 296: 18(int) BitwiseOr 294 295
- Store 210(i) 296
- 297: 18(int) Load 191(i32)
- 298: 57(int) SConvert 297
- 299: 57(int) Load 227(i64)
- 300: 57(int) BitwiseAnd 299 298
- Store 227(i64) 300
- 301: 184(ivec3) Load 186(u32v)
- 302: 184(ivec3) Load 214(uv)
- 303: 184(ivec3) BitwiseAnd 301 302
- Store 214(uv) 303
- 304: 18(int) Load 191(i32)
- 305: 14(int) Bitcast 304
- 306: 184(ivec3) Load 214(uv)
- 307: 184(ivec3) CompositeConstruct 305 305 305
- 308: 184(ivec3) BitwiseXor 306 307
- Store 214(uv) 308
- 309: 184(ivec3) Load 186(u32v)
- 310: 18(int) Load 191(i32)
- 311: 14(int) Bitcast 310
- 312: 184(ivec3) CompositeConstruct 311 311 311
- 313: 184(ivec3) BitwiseXor 309 312
- Store 186(u32v) 313
+ 283: 165(bool) UGreaterThanEqual 280 282
+ Store 260(b) 283
+ 284: 18(int) Load 191(i32)
+ 285: 18(int) Load 210(i)
+ 286: 165(bool) SLessThanEqual 284 285
+ Store 260(b) 286
+ 287: 18(int) Load 191(i32)
+ 288: 14(int) Bitcast 287
+ 289: 184(ivec3) Load 214(uv)
+ 290: 184(ivec3) CompositeConstruct 288 288 288
+ 291: 184(ivec3) BitwiseOr 289 290
+ Store 214(uv) 291
+ 292: 18(int) Load 191(i32)
+ 293: 18(int) Load 210(i)
+ 294: 18(int) BitwiseOr 292 293
+ Store 210(i) 294
+ 295: 18(int) Load 191(i32)
+ 296: 57(int) SConvert 295
+ 297: 57(int) Load 227(i64)
+ 298: 57(int) BitwiseAnd 297 296
+ Store 227(i64) 298
+ 299: 184(ivec3) Load 186(u32v)
+ 300: 184(ivec3) Load 214(uv)
+ 301: 184(ivec3) BitwiseAnd 299 300
+ Store 214(uv) 301
+ 302: 18(int) Load 191(i32)
+ 303: 14(int) Bitcast 302
+ 304: 184(ivec3) Load 214(uv)
+ 305: 184(ivec3) CompositeConstruct 303 303 303
+ 306: 184(ivec3) BitwiseXor 304 305
+ Store 214(uv) 306
+ 307: 184(ivec3) Load 186(u32v)
+ 308: 18(int) Load 191(i32)
+ 309: 14(int) Bitcast 308
+ 310: 184(ivec3) CompositeConstruct 309 309 309
+ 311: 184(ivec3) BitwiseXor 307 310
+ Store 186(u32v) 311
Return
FunctionEnd
12(builtinFuncs(): 2 Function None 3
13: Label
- 314(i32v): 53(ptr) Variable Function
- 317(i32): 19(ptr) Variable Function
- 327(u32v): 185(ptr) Variable Function
- 329(u32): 38(ptr) Variable Function
- 401(i8v4): 400(ptr) Variable Function
- 404(i16v2): 102(ptr) Variable Function
- 409(u8v4): 408(ptr) Variable Function
- 412(u16v2): 131(ptr) Variable Function
- 415(i64): 226(ptr) Variable Function
- 418(u32v2): 50(ptr) Variable Function
- 420(u64): 419(ptr) Variable Function
- 424(bv): 423(ptr) Variable Function
- 315: 52(ivec2) Load 314(i32v)
- 316: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 315
- Store 314(i32v) 316
- 318: 18(int) Load 317(i32)
- 319: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 318
- Store 317(i32) 319
- 320: 52(ivec2) Load 314(i32v)
- 321: 18(int) Load 317(i32)
- 322: 52(ivec2) CompositeConstruct 321 321
- 323: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 320 322
- Store 314(i32v) 323
- 324: 52(ivec2) Load 314(i32v)
- 326: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 324 325
- Store 314(i32v) 326
- 328: 184(ivec3) Load 327(u32v)
- 330: 14(int) Load 329(u32)
- 331: 184(ivec3) CompositeConstruct 330 330 330
- 332: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 328 331
- Store 327(u32v) 332
- 333: 184(ivec3) Load 327(u32v)
- 335: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 333 334
- Store 327(u32v) 335
- 336: 52(ivec2) Load 314(i32v)
- 337: 18(int) Load 317(i32)
- 338: 52(ivec2) CompositeConstruct 337 337
- 339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 336 338
- Store 314(i32v) 339
- 340: 52(ivec2) Load 314(i32v)
- 341: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 340 325
- Store 314(i32v) 341
- 342: 184(ivec3) Load 327(u32v)
- 343: 14(int) Load 329(u32)
- 344: 184(ivec3) CompositeConstruct 343 343 343
- 345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 342 344
- Store 327(u32v) 345
- 346: 184(ivec3) Load 327(u32v)
- 347: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 346 334
- Store 327(u32v) 347
- 348: 52(ivec2) Load 314(i32v)
- 349: 18(int) Load 317(i32)
- 350: 18(int) SNegate 349
- 351: 18(int) Load 317(i32)
- 352: 52(ivec2) CompositeConstruct 350 350
- 353: 52(ivec2) CompositeConstruct 351 351
- 354: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 348 352 353
- Store 314(i32v) 354
- 355: 52(ivec2) Load 314(i32v)
- 356: 52(ivec2) Load 314(i32v)
- 357: 52(ivec2) SNegate 356
- 358: 52(ivec2) Load 314(i32v)
- 359: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 355 357 358
- Store 314(i32v) 359
- 360: 184(ivec3) Load 327(u32v)
- 361: 14(int) Load 329(u32)
- 362: 14(int) SNegate 361
- 363: 14(int) Load 329(u32)
- 364: 184(ivec3) CompositeConstruct 362 362 362
- 365: 184(ivec3) CompositeConstruct 363 363 363
- 366: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 360 364 365
- Store 327(u32v) 366
- 367: 184(ivec3) Load 327(u32v)
- 368: 184(ivec3) Load 327(u32v)
- 369: 184(ivec3) SNegate 368
- 370: 184(ivec3) Load 327(u32v)
- 371: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 367 369 370
- Store 327(u32v) 371
- 372: 19(ptr) AccessChain 314(i32v) 175
+ 312(i32v): 53(ptr) Variable Function
+ 315(i32): 19(ptr) Variable Function
+ 325(u32v): 185(ptr) Variable Function
+ 327(u32): 38(ptr) Variable Function
+ 399(i8v4): 398(ptr) Variable Function
+ 402(i16v2): 102(ptr) Variable Function
+ 407(u8v4): 406(ptr) Variable Function
+ 410(u16v2): 131(ptr) Variable Function
+ 413(i64): 226(ptr) Variable Function
+ 416(u32v2): 50(ptr) Variable Function
+ 418(u64): 417(ptr) Variable Function
+ 422(bv): 421(ptr) Variable Function
+ 313: 52(ivec2) Load 312(i32v)
+ 314: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 313
+ Store 312(i32v) 314
+ 316: 18(int) Load 315(i32)
+ 317: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 316
+ Store 315(i32) 317
+ 318: 52(ivec2) Load 312(i32v)
+ 319: 18(int) Load 315(i32)
+ 320: 52(ivec2) CompositeConstruct 319 319
+ 321: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 318 320
+ Store 312(i32v) 321
+ 322: 52(ivec2) Load 312(i32v)
+ 324: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 322 323
+ Store 312(i32v) 324
+ 326: 184(ivec3) Load 325(u32v)
+ 328: 14(int) Load 327(u32)
+ 329: 184(ivec3) CompositeConstruct 328 328 328
+ 330: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 326 329
+ Store 325(u32v) 330
+ 331: 184(ivec3) Load 325(u32v)
+ 333: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 331 332
+ Store 325(u32v) 333
+ 334: 52(ivec2) Load 312(i32v)
+ 335: 18(int) Load 315(i32)
+ 336: 52(ivec2) CompositeConstruct 335 335
+ 337: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 334 336
+ Store 312(i32v) 337
+ 338: 52(ivec2) Load 312(i32v)
+ 339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 338 323
+ Store 312(i32v) 339
+ 340: 184(ivec3) Load 325(u32v)
+ 341: 14(int) Load 327(u32)
+ 342: 184(ivec3) CompositeConstruct 341 341 341
+ 343: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 340 342
+ Store 325(u32v) 343
+ 344: 184(ivec3) Load 325(u32v)
+ 345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 344 332
+ Store 325(u32v) 345
+ 346: 52(ivec2) Load 312(i32v)
+ 347: 18(int) Load 315(i32)
+ 348: 18(int) SNegate 347
+ 349: 18(int) Load 315(i32)
+ 350: 52(ivec2) CompositeConstruct 348 348
+ 351: 52(ivec2) CompositeConstruct 349 349
+ 352: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 346 350 351
+ Store 312(i32v) 352
+ 353: 52(ivec2) Load 312(i32v)
+ 354: 52(ivec2) Load 312(i32v)
+ 355: 52(ivec2) SNegate 354
+ 356: 52(ivec2) Load 312(i32v)
+ 357: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 353 355 356
+ Store 312(i32v) 357
+ 358: 184(ivec3) Load 325(u32v)
+ 359: 14(int) Load 327(u32)
+ 360: 14(int) SNegate 359
+ 361: 14(int) Load 327(u32)
+ 362: 184(ivec3) CompositeConstruct 360 360 360
+ 363: 184(ivec3) CompositeConstruct 361 361 361
+ 364: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 358 362 363
+ Store 325(u32v) 364
+ 365: 184(ivec3) Load 325(u32v)
+ 366: 184(ivec3) Load 325(u32v)
+ 367: 184(ivec3) SNegate 366
+ 368: 184(ivec3) Load 325(u32v)
+ 369: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 365 367 368
+ Store 325(u32v) 369
+ 370: 19(ptr) AccessChain 312(i32v) 175
+ 371: 18(int) Load 370
+ 372: 19(ptr) AccessChain 312(i32v) 176
373: 18(int) Load 372
- 374: 19(ptr) AccessChain 314(i32v) 176
- 375: 18(int) Load 374
- 377: 18(int) Select 376 375 373
- Store 317(i32) 377
- 378: 18(int) Load 317(i32)
- 379: 52(ivec2) CompositeConstruct 378 378
- 380: 18(int) Load 317(i32)
- 381: 18(int) SNegate 380
- 382: 52(ivec2) CompositeConstruct 381 381
- 385: 52(ivec2) Select 384 382 379
- Store 314(i32v) 385
- 386: 38(ptr) AccessChain 327(u32v) 175
+ 375: 18(int) Select 374 373 371
+ Store 315(i32) 375
+ 376: 18(int) Load 315(i32)
+ 377: 52(ivec2) CompositeConstruct 376 376
+ 378: 18(int) Load 315(i32)
+ 379: 18(int) SNegate 378
+ 380: 52(ivec2) CompositeConstruct 379 379
+ 383: 52(ivec2) Select 382 380 377
+ Store 312(i32v) 383
+ 384: 38(ptr) AccessChain 325(u32v) 175
+ 385: 14(int) Load 384
+ 386: 38(ptr) AccessChain 325(u32v) 176
387: 14(int) Load 386
- 388: 38(ptr) AccessChain 327(u32v) 176
- 389: 14(int) Load 388
- 390: 14(int) Select 376 389 387
- Store 329(u32) 390
- 391: 14(int) Load 329(u32)
- 392: 184(ivec3) CompositeConstruct 391 391 391
- 393: 14(int) Load 329(u32)
- 394: 14(int) SNegate 393
- 395: 184(ivec3) CompositeConstruct 394 394 394
- 398: 184(ivec3) Select 397 395 392
- Store 327(u32v) 398
- 402: 399(ivec4) Load 401(i8v4)
- 403: 18(int) Bitcast 402
- Store 317(i32) 403
- 405: 101(ivec2) Load 404(i16v2)
- 406: 18(int) Bitcast 405
- Store 317(i32) 406
- 410: 407(ivec4) Load 409(u8v4)
- 411: 14(int) Bitcast 410
- Store 329(u32) 411
- 413: 130(ivec2) Load 412(u16v2)
- 414: 14(int) Bitcast 413
- Store 329(u32) 414
- 416: 57(int) Load 415(i64)
- 417: 52(ivec2) Bitcast 416
- Store 314(i32v) 417
- 421: 63(int) Load 420(u64)
- 422: 49(ivec2) Bitcast 421
- Store 418(u32v2) 422
- 425: 184(ivec3) Load 327(u32v)
- 426: 14(int) Load 329(u32)
- 427: 184(ivec3) CompositeConstruct 426 426 426
- 428: 396(bvec3) ULessThan 425 427
- Store 424(bv) 428
- 429: 52(ivec2) Load 314(i32v)
- 430: 18(int) Load 317(i32)
- 431: 52(ivec2) CompositeConstruct 430 430
- 432: 166(bvec2) SLessThan 429 431
- 433: 396(bvec3) Load 424(bv)
- 434: 396(bvec3) VectorShuffle 433 432 3 4 2
- Store 424(bv) 434
- 435: 184(ivec3) Load 327(u32v)
- 436: 14(int) Load 329(u32)
- 437: 184(ivec3) CompositeConstruct 436 436 436
- 438: 396(bvec3) ULessThanEqual 435 437
- Store 424(bv) 438
- 439: 52(ivec2) Load 314(i32v)
- 440: 18(int) Load 317(i32)
- 441: 52(ivec2) CompositeConstruct 440 440
- 442: 166(bvec2) SLessThanEqual 439 441
- 443: 396(bvec3) Load 424(bv)
- 444: 396(bvec3) VectorShuffle 443 442 3 4 2
- Store 424(bv) 444
- 445: 184(ivec3) Load 327(u32v)
- 446: 14(int) Load 329(u32)
- 447: 184(ivec3) CompositeConstruct 446 446 446
- 448: 396(bvec3) UGreaterThan 445 447
- Store 424(bv) 448
- 449: 52(ivec2) Load 314(i32v)
- 450: 18(int) Load 317(i32)
- 451: 52(ivec2) CompositeConstruct 450 450
- 452: 166(bvec2) SGreaterThan 449 451
- 453: 396(bvec3) Load 424(bv)
- 454: 396(bvec3) VectorShuffle 453 452 3 4 2
- Store 424(bv) 454
- 455: 184(ivec3) Load 327(u32v)
- 456: 14(int) Load 329(u32)
- 457: 184(ivec3) CompositeConstruct 456 456 456
- 458: 396(bvec3) UGreaterThanEqual 455 457
- Store 424(bv) 458
- 459: 52(ivec2) Load 314(i32v)
- 460: 18(int) Load 317(i32)
- 461: 52(ivec2) CompositeConstruct 460 460
- 462: 166(bvec2) SGreaterThanEqual 459 461
- 463: 396(bvec3) Load 424(bv)
- 464: 396(bvec3) VectorShuffle 463 462 3 4 2
- Store 424(bv) 464
- 465: 184(ivec3) Load 327(u32v)
- 466: 14(int) Load 329(u32)
- 467: 184(ivec3) CompositeConstruct 466 466 466
- 468: 396(bvec3) IEqual 465 467
- Store 424(bv) 468
- 469: 52(ivec2) Load 314(i32v)
- 470: 18(int) Load 317(i32)
- 471: 52(ivec2) CompositeConstruct 470 470
- 472: 166(bvec2) IEqual 469 471
- 473: 396(bvec3) Load 424(bv)
- 474: 396(bvec3) VectorShuffle 473 472 3 4 2
- Store 424(bv) 474
- 475: 184(ivec3) Load 327(u32v)
- 476: 14(int) Load 329(u32)
- 477: 184(ivec3) CompositeConstruct 476 476 476
- 478: 396(bvec3) INotEqual 475 477
- Store 424(bv) 478
- 479: 52(ivec2) Load 314(i32v)
- 480: 18(int) Load 317(i32)
- 481: 52(ivec2) CompositeConstruct 480 480
- 482: 166(bvec2) INotEqual 479 481
- 483: 396(bvec3) Load 424(bv)
- 484: 396(bvec3) VectorShuffle 483 482 3 4 2
- Store 424(bv) 484
+ 388: 14(int) Select 374 387 385
+ Store 327(u32) 388
+ 389: 14(int) Load 327(u32)
+ 390: 184(ivec3) CompositeConstruct 389 389 389
+ 391: 14(int) Load 327(u32)
+ 392: 14(int) SNegate 391
+ 393: 184(ivec3) CompositeConstruct 392 392 392
+ 396: 184(ivec3) Select 395 393 390
+ Store 325(u32v) 396
+ 400: 397(ivec4) Load 399(i8v4)
+ 401: 18(int) Bitcast 400
+ Store 315(i32) 401
+ 403: 101(ivec2) Load 402(i16v2)
+ 404: 18(int) Bitcast 403
+ Store 315(i32) 404
+ 408: 405(ivec4) Load 407(u8v4)
+ 409: 14(int) Bitcast 408
+ Store 327(u32) 409
+ 411: 130(ivec2) Load 410(u16v2)
+ 412: 14(int) Bitcast 411
+ Store 327(u32) 412
+ 414: 57(int) Load 413(i64)
+ 415: 52(ivec2) Bitcast 414
+ Store 312(i32v) 415
+ 419: 63(int) Load 418(u64)
+ 420: 49(ivec2) Bitcast 419
+ Store 416(u32v2) 420
+ 423: 184(ivec3) Load 325(u32v)
+ 424: 14(int) Load 327(u32)
+ 425: 184(ivec3) CompositeConstruct 424 424 424
+ 426: 394(bvec3) ULessThan 423 425
+ Store 422(bv) 426
+ 427: 52(ivec2) Load 312(i32v)
+ 428: 18(int) Load 315(i32)
+ 429: 52(ivec2) CompositeConstruct 428 428
+ 430: 166(bvec2) SLessThan 427 429
+ 431: 394(bvec3) Load 422(bv)
+ 432: 394(bvec3) VectorShuffle 431 430 3 4 2
+ Store 422(bv) 432
+ 433: 184(ivec3) Load 325(u32v)
+ 434: 14(int) Load 327(u32)
+ 435: 184(ivec3) CompositeConstruct 434 434 434
+ 436: 394(bvec3) ULessThanEqual 433 435
+ Store 422(bv) 436
+ 437: 52(ivec2) Load 312(i32v)
+ 438: 18(int) Load 315(i32)
+ 439: 52(ivec2) CompositeConstruct 438 438
+ 440: 166(bvec2) SLessThanEqual 437 439
+ 441: 394(bvec3) Load 422(bv)
+ 442: 394(bvec3) VectorShuffle 441 440 3 4 2
+ Store 422(bv) 442
+ 443: 184(ivec3) Load 325(u32v)
+ 444: 14(int) Load 327(u32)
+ 445: 184(ivec3) CompositeConstruct 444 444 444
+ 446: 394(bvec3) UGreaterThan 443 445
+ Store 422(bv) 446
+ 447: 52(ivec2) Load 312(i32v)
+ 448: 18(int) Load 315(i32)
+ 449: 52(ivec2) CompositeConstruct 448 448
+ 450: 166(bvec2) SGreaterThan 447 449
+ 451: 394(bvec3) Load 422(bv)
+ 452: 394(bvec3) VectorShuffle 451 450 3 4 2
+ Store 422(bv) 452
+ 453: 184(ivec3) Load 325(u32v)
+ 454: 14(int) Load 327(u32)
+ 455: 184(ivec3) CompositeConstruct 454 454 454
+ 456: 394(bvec3) UGreaterThanEqual 453 455
+ Store 422(bv) 456
+ 457: 52(ivec2) Load 312(i32v)
+ 458: 18(int) Load 315(i32)
+ 459: 52(ivec2) CompositeConstruct 458 458
+ 460: 166(bvec2) SGreaterThanEqual 457 459
+ 461: 394(bvec3) Load 422(bv)
+ 462: 394(bvec3) VectorShuffle 461 460 3 4 2
+ Store 422(bv) 462
+ 463: 184(ivec3) Load 325(u32v)
+ 464: 14(int) Load 327(u32)
+ 465: 184(ivec3) CompositeConstruct 464 464 464
+ 466: 394(bvec3) IEqual 463 465
+ Store 422(bv) 466
+ 467: 52(ivec2) Load 312(i32v)
+ 468: 18(int) Load 315(i32)
+ 469: 52(ivec2) CompositeConstruct 468 468
+ 470: 166(bvec2) IEqual 467 469
+ 471: 394(bvec3) Load 422(bv)
+ 472: 394(bvec3) VectorShuffle 471 470 3 4 2
+ Store 422(bv) 472
+ 473: 184(ivec3) Load 325(u32v)
+ 474: 14(int) Load 327(u32)
+ 475: 184(ivec3) CompositeConstruct 474 474 474
+ 476: 394(bvec3) INotEqual 473 475
+ Store 422(bv) 476
+ 477: 52(ivec2) Load 312(i32v)
+ 478: 18(int) Load 315(i32)
+ 479: 52(ivec2) CompositeConstruct 478 478
+ 480: 166(bvec2) INotEqual 477 479
+ 481: 394(bvec3) Load 422(bv)
+ 482: 394(bvec3) VectorShuffle 481 480 3 4 2
+ Store 422(bv) 482
Return
FunctionEnd
spv.int64.frag
// Module Version 10000
// Generated by (magic number): 80006
-// Id's are bound by 483
+// Id's are bound by 488
Capability Shader
Capability Float64
Name 139 "i64"
Name 159 "i"
Name 166 "uv"
- 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"
+ Name 226 "b"
+ Name 286 "i64v"
+ Name 289 "i64"
+ Name 299 "u64v"
+ Name 301 "u64"
+ Name 373 "dv"
+ Name 392 "iv"
+ Name 397 "uv"
+ Name 401 "bv"
+ Name 462 "Block"
+ MemberName 462(Block) 0 "i64v"
+ MemberName 462(Block) 1 "u64"
+ Name 464 "block"
+ Name 465 "si64"
+ Name 466 "su64"
+ Name 467 "si"
+ Name 468 "su"
+ Name 469 "sb"
MemberDecorate 28(Uniforms) 0 Offset 0
Decorate 28(Uniforms) Block
Decorate 30 DescriptorSet 0
Decorate 30 Binding 0
- 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
+ MemberDecorate 462(Block) 0 Offset 0
+ MemberDecorate 462(Block) 1 Offset 24
+ Decorate 462(Block) Block
+ Decorate 464(block) DescriptorSet 0
+ Decorate 464(block) Binding 1
+ Decorate 465(si64) SpecId 100
+ Decorate 466(su64) SpecId 101
+ Decorate 467(si) SpecId 102
+ Decorate 468(su) SpecId 103
+ Decorate 469(sb) SpecId 104
2: TypeVoid
3: TypeFunction 2
14: TypeInt 64 0
158: TypePointer Function 31(int)
164: TypeVector 21(int) 3
165: TypePointer Function 164(ivec3)
+ 199: TypeVector 31(int) 3
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
+ 217: 21(int) Constant 2
+ 225: TypePointer Function 55(bool)
+ 227: 21(int) Constant 0
+ 297: 52(ivec2) ConstantComposite 25 25
+ 306: 132(ivec3) ConstantComposite 69 69 69
+ 348: 55(bool) ConstantTrue
+ 355: 55(bool) ConstantFalse
+ 356: 56(bvec2) ConstantComposite 355 355
+ 368: TypeVector 55(bool) 3
+ 369: 368(bvec3) ConstantComposite 355 355 355
+ 371: TypeVector 94(float) 3
+ 372: TypePointer Function 371(fvec3)
+ 377: TypePointer Function 94(float)
+ 388: 31(int) Constant 1
+ 389: 31(int) Constant 2
+ 390: 74(ivec2) ConstantComposite 388 389
+ 395: 81(ivec2) ConstantComposite 217 22
+ 400: TypePointer Function 368(bvec3)
+ 462(Block): TypeStruct 136(ivec3) 14(int)
+ 463: TypePointer Uniform 462(Block)
+ 464(block): 463(ptr) Variable Uniform
+ 465(si64): 18(int) SpecConstant 4294967286 4294967295
+ 466(su64): 14(int) SpecConstant 20 0
+ 467(si): 31(int) SpecConstant 4294967291
+ 468(su): 21(int) SpecConstant 4
+ 469(sb): 55(bool) SpecConstantTrue
+ 470: 55(bool) SpecConstantOp 171 465(si64) 69
+ 471: 55(bool) SpecConstantOp 171 466(su64) 69
+ 472: 18(int) SpecConstantOp 169 469(sb) 61 60
+ 473: 14(int) SpecConstantOp 169 469(sb) 70 69
+ 474: 31(int) SpecConstantOp 114 465(si64)
+ 475: 18(int) SpecConstantOp 114 467(si)
+ 476: 21(int) SpecConstantOp 113 466(su64)
+ 477: 14(int) SpecConstantOp 113 468(su)
+ 478: 18(int) SpecConstantOp 128 466(su64) 69
+ 479: 14(int) SpecConstantOp 128 465(si64) 69
+ 480: 31(int) SpecConstantOp 113 466(su64)
+ 481: 31(int) SpecConstantOp 128 480 227
+ 482: 18(int) SpecConstantOp 114 467(si)
+ 483: 14(int) SpecConstantOp 128 482 69
+ 484: 31(int) SpecConstantOp 114 465(si64)
+ 485: 21(int) SpecConstantOp 128 484 227
+ 486: 18(int) SpecConstantOp 113 468(su)
+ 487: 18(int) SpecConstantOp 128 486 69
4(main): 2 Function None 3
5: Label
Store 16(u64Max) 17
139(i64): 19(ptr) Variable Function
159(i): 158(ptr) Variable Function
166(uv): 165(ptr) Variable Function
- 221(b): 220(ptr) Variable Function
+ 226(b): 225(ptr) Variable Function
135: 132(ivec3) Load 134(u64v)
137: 136(ivec3) CompositeConstruct 61 61 61
138: 132(ivec3) IAdd 135 137
195: 18(int) SConvert 194
196: 18(int) SMod 193 195
Store 139(i64) 196
- 197: 31(int) Load 159(i)
- 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
+ 197: 132(ivec3) Load 134(u64v)
+ 198: 31(int) Load 159(i)
+ 200: 199(ivec3) CompositeConstruct 198 198 198
+ 201: 132(ivec3) ShiftLeftLogical 197 200
+ Store 134(u64v) 201
+ 202: 18(int) Load 139(i64)
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
+ 207: 18(int) ShiftRightArithmetic 202 206
+ Store 139(i64) 207
+ 208: 31(int) Load 159(i)
+ 209: 132(ivec3) Load 134(u64v)
+ 210: 199(ivec3) CompositeConstruct 208 208 208
+ 211: 132(ivec3) ShiftLeftLogical 209 210
+ Store 134(u64v) 211
+ 212: 204(ptr) AccessChain 166(uv) 203
+ 213: 21(int) Load 212
+ 214: 18(int) Load 139(i64)
+ 215: 18(int) ShiftRightArithmetic 214 213
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: 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: 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: 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) 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: 132(ivec3) CompositeConstruct 272 272 272
- 275: 132(ivec3) BitwiseXor 273 274
+ 216: 18(int) Load 139(i64)
+ 218: 40(ptr) AccessChain 134(u64v) 217
+ 219: 14(int) Load 218
+ 220: 18(int) ShiftLeftLogical 216 219
+ Store 139(i64) 220
+ 221: 132(ivec3) Load 134(u64v)
+ 222: 18(int) Load 139(i64)
+ 223: 136(ivec3) CompositeConstruct 222 222 222
+ 224: 132(ivec3) ShiftLeftLogical 221 223
+ Store 134(u64v) 224
+ 228: 40(ptr) AccessChain 134(u64v) 227
+ 229: 14(int) Load 228
+ 230: 18(int) Load 139(i64)
+ 231: 14(int) Bitcast 230
+ 232: 55(bool) INotEqual 229 231
+ Store 226(b) 232
+ 233: 18(int) Load 139(i64)
+ 234: 14(int) Bitcast 233
+ 235: 40(ptr) AccessChain 134(u64v) 227
+ 236: 14(int) Load 235
+ 237: 55(bool) IEqual 234 236
+ Store 226(b) 237
+ 238: 40(ptr) AccessChain 134(u64v) 227
+ 239: 14(int) Load 238
+ 240: 204(ptr) AccessChain 166(uv) 203
+ 241: 21(int) Load 240
+ 242: 14(int) UConvert 241
+ 243: 55(bool) UGreaterThan 239 242
+ Store 226(b) 243
+ 244: 18(int) Load 139(i64)
+ 245: 31(int) Load 159(i)
+ 246: 18(int) SConvert 245
+ 247: 55(bool) SLessThan 244 246
+ Store 226(b) 247
+ 248: 40(ptr) AccessChain 134(u64v) 203
+ 249: 14(int) Load 248
+ 250: 204(ptr) AccessChain 166(uv) 227
+ 251: 21(int) Load 250
+ 252: 14(int) UConvert 251
+ 253: 55(bool) UGreaterThanEqual 249 252
+ Store 226(b) 253
+ 254: 18(int) Load 139(i64)
+ 255: 31(int) Load 159(i)
+ 256: 18(int) SConvert 255
+ 257: 55(bool) SLessThanEqual 254 256
+ Store 226(b) 257
+ 258: 31(int) Load 159(i)
+ 259: 18(int) SConvert 258
+ 260: 14(int) Bitcast 259
+ 261: 132(ivec3) Load 134(u64v)
+ 262: 132(ivec3) CompositeConstruct 260 260 260
+ 263: 132(ivec3) BitwiseOr 261 262
+ Store 134(u64v) 263
+ 264: 18(int) Load 139(i64)
+ 265: 31(int) Load 159(i)
+ 266: 18(int) SConvert 265
+ 267: 18(int) BitwiseOr 264 266
+ Store 139(i64) 267
+ 268: 31(int) Load 159(i)
+ 269: 18(int) SConvert 268
+ 270: 18(int) Load 139(i64)
+ 271: 18(int) BitwiseAnd 270 269
+ Store 139(i64) 271
+ 272: 132(ivec3) Load 134(u64v)
+ 273: 164(ivec3) Load 166(uv)
+ 274: 132(ivec3) UConvert 273
+ 275: 132(ivec3) BitwiseAnd 272 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
+ 276: 18(int) Load 139(i64)
+ 277: 14(int) Bitcast 276
+ 278: 132(ivec3) Load 134(u64v)
+ 279: 132(ivec3) CompositeConstruct 277 277 277
+ 280: 132(ivec3) BitwiseXor 278 279
Store 134(u64v) 280
+ 281: 132(ivec3) Load 134(u64v)
+ 282: 18(int) Load 139(i64)
+ 283: 14(int) Bitcast 282
+ 284: 132(ivec3) CompositeConstruct 283 283 283
+ 285: 132(ivec3) BitwiseXor 281 284
+ Store 134(u64v) 285
Return
FunctionEnd
12(builtinFuncs(): 2 Function None 3
13: Label
- 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
- 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
- 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
+ 286(i64v): 53(ptr) Variable Function
+ 289(i64): 19(ptr) Variable Function
+ 299(u64v): 133(ptr) Variable Function
+ 301(u64): 40(ptr) Variable Function
+ 373(dv): 372(ptr) Variable Function
+ 392(iv): 75(ptr) Variable Function
+ 397(uv): 82(ptr) Variable Function
+ 401(bv): 400(ptr) Variable Function
+ 287: 52(ivec2) Load 286(i64v)
+ 288: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287
+ Store 286(i64v) 288
+ 290: 18(int) Load 289(i64)
+ 291: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 290
+ Store 289(i64) 291
+ 292: 52(ivec2) Load 286(i64v)
+ 293: 18(int) Load 289(i64)
+ 294: 52(ivec2) CompositeConstruct 293 293
+ 295: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 292 294
+ Store 286(i64v) 295
+ 296: 52(ivec2) Load 286(i64v)
+ 298: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 296 297
+ Store 286(i64v) 298
+ 300: 132(ivec3) Load 299(u64v)
+ 302: 14(int) Load 301(u64)
+ 303: 132(ivec3) CompositeConstruct 302 302 302
+ 304: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 300 303
+ Store 299(u64v) 304
+ 305: 132(ivec3) Load 299(u64v)
+ 307: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 305 306
+ Store 299(u64v) 307
+ 308: 52(ivec2) Load 286(i64v)
+ 309: 18(int) Load 289(i64)
+ 310: 52(ivec2) CompositeConstruct 309 309
+ 311: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 308 310
+ Store 286(i64v) 311
+ 312: 52(ivec2) Load 286(i64v)
+ 313: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 312 297
+ Store 286(i64v) 313
+ 314: 132(ivec3) Load 299(u64v)
+ 315: 14(int) Load 301(u64)
+ 316: 132(ivec3) CompositeConstruct 315 315 315
+ 317: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 314 316
+ Store 299(u64v) 317
+ 318: 132(ivec3) Load 299(u64v)
+ 319: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 318 306
+ Store 299(u64v) 319
+ 320: 52(ivec2) Load 286(i64v)
+ 321: 18(int) Load 289(i64)
+ 322: 18(int) SNegate 321
+ 323: 18(int) Load 289(i64)
+ 324: 52(ivec2) CompositeConstruct 322 322
+ 325: 52(ivec2) CompositeConstruct 323 323
+ 326: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 320 324 325
+ Store 286(i64v) 326
+ 327: 52(ivec2) Load 286(i64v)
+ 328: 52(ivec2) Load 286(i64v)
+ 329: 52(ivec2) SNegate 328
+ 330: 52(ivec2) Load 286(i64v)
+ 331: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 327 329 330
+ Store 286(i64v) 331
+ 332: 132(ivec3) Load 299(u64v)
+ 333: 14(int) Load 301(u64)
+ 334: 14(int) SNegate 333
+ 335: 14(int) Load 301(u64)
+ 336: 132(ivec3) CompositeConstruct 334 334 334
+ 337: 132(ivec3) CompositeConstruct 335 335 335
+ 338: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 332 336 337
+ Store 299(u64v) 338
+ 339: 132(ivec3) Load 299(u64v)
+ 340: 132(ivec3) Load 299(u64v)
+ 341: 132(ivec3) SNegate 340
+ 342: 132(ivec3) Load 299(u64v)
+ 343: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 339 341 342
+ Store 299(u64v) 343
+ 344: 19(ptr) AccessChain 286(i64v) 227
+ 345: 18(int) Load 344
+ 346: 19(ptr) AccessChain 286(i64v) 203
+ 347: 18(int) Load 346
+ 349: 18(int) Select 348 347 345
+ Store 289(i64) 349
+ 350: 18(int) Load 289(i64)
+ 351: 52(ivec2) CompositeConstruct 350 350
+ 352: 18(int) Load 289(i64)
+ 353: 18(int) SNegate 352
+ 354: 52(ivec2) CompositeConstruct 353 353
+ 357: 52(ivec2) Select 356 354 351
+ Store 286(i64v) 357
+ 358: 40(ptr) AccessChain 299(u64v) 227
+ 359: 14(int) Load 358
+ 360: 40(ptr) AccessChain 299(u64v) 203
+ 361: 14(int) Load 360
+ 362: 14(int) Select 348 361 359
+ Store 301(u64) 362
+ 363: 14(int) Load 301(u64)
+ 364: 132(ivec3) CompositeConstruct 363 363 363
+ 365: 14(int) Load 301(u64)
+ 366: 14(int) SNegate 365
+ 367: 132(ivec3) CompositeConstruct 366 366 366
+ 370: 132(ivec3) Select 369 367 364
+ Store 299(u64v) 370
+ 374: 371(fvec3) Load 373(dv)
+ 375: 95(fvec2) VectorShuffle 374 374 0 1
+ 376: 52(ivec2) Bitcast 375
+ Store 286(i64v) 376
+ 378: 377(ptr) AccessChain 373(dv) 217
+ 379: 94(float) Load 378
+ 380: 14(int) Bitcast 379
+ 381: 40(ptr) AccessChain 299(u64v) 227
+ Store 381 380
+ 382: 52(ivec2) Load 286(i64v)
+ 383: 95(fvec2) Bitcast 382
+ 384: 371(fvec3) Load 373(dv)
+ 385: 371(fvec3) VectorShuffle 384 383 3 4 2
+ Store 373(dv) 385
+ 386: 132(ivec3) Load 299(u64v)
+ 387: 371(fvec3) Bitcast 386
+ Store 373(dv) 387
+ 391: 18(int) Bitcast 390
+ Store 289(i64) 391
+ 393: 18(int) Load 289(i64)
+ 394: 74(ivec2) Bitcast 393
+ Store 392(iv) 394
+ 396: 14(int) Bitcast 395
+ Store 301(u64) 396
+ 398: 14(int) Load 301(u64)
+ 399: 81(ivec2) Bitcast 398
+ Store 397(uv) 399
+ 402: 132(ivec3) Load 299(u64v)
+ 403: 14(int) Load 301(u64)
+ 404: 132(ivec3) CompositeConstruct 403 403 403
+ 405: 368(bvec3) ULessThan 402 404
+ Store 401(bv) 405
+ 406: 52(ivec2) Load 286(i64v)
+ 407: 18(int) Load 289(i64)
+ 408: 52(ivec2) CompositeConstruct 407 407
+ 409: 56(bvec2) SLessThan 406 408
+ 410: 368(bvec3) Load 401(bv)
+ 411: 368(bvec3) VectorShuffle 410 409 3 4 2
+ Store 401(bv) 411
+ 412: 132(ivec3) Load 299(u64v)
+ 413: 14(int) Load 301(u64)
+ 414: 132(ivec3) CompositeConstruct 413 413 413
+ 415: 368(bvec3) ULessThanEqual 412 414
+ Store 401(bv) 415
+ 416: 52(ivec2) Load 286(i64v)
+ 417: 18(int) Load 289(i64)
+ 418: 52(ivec2) CompositeConstruct 417 417
+ 419: 56(bvec2) SLessThanEqual 416 418
+ 420: 368(bvec3) Load 401(bv)
+ 421: 368(bvec3) VectorShuffle 420 419 3 4 2
+ Store 401(bv) 421
+ 422: 132(ivec3) Load 299(u64v)
+ 423: 14(int) Load 301(u64)
+ 424: 132(ivec3) CompositeConstruct 423 423 423
+ 425: 368(bvec3) UGreaterThan 422 424
+ Store 401(bv) 425
+ 426: 52(ivec2) Load 286(i64v)
+ 427: 18(int) Load 289(i64)
+ 428: 52(ivec2) CompositeConstruct 427 427
+ 429: 56(bvec2) SGreaterThan 426 428
+ 430: 368(bvec3) Load 401(bv)
+ 431: 368(bvec3) VectorShuffle 430 429 3 4 2
+ Store 401(bv) 431
+ 432: 132(ivec3) Load 299(u64v)
+ 433: 14(int) Load 301(u64)
+ 434: 132(ivec3) CompositeConstruct 433 433 433
+ 435: 368(bvec3) UGreaterThanEqual 432 434
+ Store 401(bv) 435
+ 436: 52(ivec2) Load 286(i64v)
+ 437: 18(int) Load 289(i64)
+ 438: 52(ivec2) CompositeConstruct 437 437
+ 439: 56(bvec2) SGreaterThanEqual 436 438
+ 440: 368(bvec3) Load 401(bv)
+ 441: 368(bvec3) VectorShuffle 440 439 3 4 2
+ Store 401(bv) 441
+ 442: 132(ivec3) Load 299(u64v)
+ 443: 14(int) Load 301(u64)
+ 444: 132(ivec3) CompositeConstruct 443 443 443
+ 445: 368(bvec3) IEqual 442 444
+ Store 401(bv) 445
+ 446: 52(ivec2) Load 286(i64v)
+ 447: 18(int) Load 289(i64)
+ 448: 52(ivec2) CompositeConstruct 447 447
+ 449: 56(bvec2) IEqual 446 448
+ 450: 368(bvec3) Load 401(bv)
+ 451: 368(bvec3) VectorShuffle 450 449 3 4 2
+ Store 401(bv) 451
+ 452: 132(ivec3) Load 299(u64v)
+ 453: 14(int) Load 301(u64)
+ 454: 132(ivec3) CompositeConstruct 453 453 453
+ 455: 368(bvec3) INotEqual 452 454
+ Store 401(bv) 455
+ 456: 52(ivec2) Load 286(i64v)
+ 457: 18(int) Load 289(i64)
+ 458: 52(ivec2) CompositeConstruct 457 457
+ 459: 56(bvec2) INotEqual 456 458
+ 460: 368(bvec3) Load 401(bv)
+ 461: 368(bvec3) VectorShuffle 460 459 3 4 2
+ Store 401(bv) 461
Return
FunctionEnd
--- /dev/null
+spv.rankShift.comp
+// Module Version 10000
+// Generated by (magic number): 80006
+// Id's are bound by 33
+
+ Capability Shader
+ Capability Int64
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 54 1 1
+ Source GLSL 450
+ SourceExtension "GL_ARB_gpu_shader_int64"
+ Name 4 "main"
+ Name 8 "result"
+ Name 11 "arg0"
+ Name 15 "arg1"
+ Decorate 11(arg0) Location 4
+ Decorate 15(arg1) Location 5
+ Decorate 32 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 64 0
+ 7: TypePointer Function 6(int)
+ 9: TypeInt 64 1
+ 10: TypePointer UniformConstant 9(int)
+ 11(arg0): 10(ptr) Variable UniformConstant
+ 13: TypeInt 32 0
+ 14: TypePointer UniformConstant 13(int)
+ 15(arg1): 14(ptr) Variable UniformConstant
+ 29: TypeVector 13(int) 3
+ 30: 13(int) Constant 54
+ 31: 13(int) Constant 1
+ 32: 29(ivec3) ConstantComposite 30 31 31
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(result): 7(ptr) Variable Function
+ 12: 9(int) Load 11(arg0)
+ 16: 13(int) Load 15(arg1)
+ 17: 9(int) ShiftLeftLogical 12 16
+ 18: 6(int) Bitcast 17
+ Store 8(result) 18
+ 19: 9(int) Load 11(arg0)
+ 20: 13(int) Load 15(arg1)
+ 21: 9(int) ShiftRightArithmetic 19 20
+ 22: 6(int) Bitcast 21
+ Store 8(result) 22
+ 23: 13(int) Load 15(arg1)
+ 24: 6(int) Load 8(result)
+ 25: 6(int) ShiftLeftLogical 24 23
+ Store 8(result) 25
+ 26: 13(int) Load 15(arg1)
+ 27: 6(int) Load 8(result)
+ 28: 6(int) ShiftRightLogical 27 26
+ Store 8(result) 28
+ Return
+ FunctionEnd
spv.vulkan110.int16.frag
// Module Version 10300
// Generated by (magic number): 80006
-// Id's are bound by 525
+// Id's are bound by 523
Capability Shader
Capability Float16
Name 220 "i"
Name 227 "uv"
Name 243 "i64"
- Name 283 "b"
- Name 345 "i16v"
- Name 348 "i16"
- Name 358 "u16v"
- Name 360 "u16"
- Name 430 "i32"
- Name 433 "i64"
- Name 436 "i16v4"
- Name 439 "u32"
- Name 440 "u16v2"
- Name 444 "u64"
- Name 447 "u16v4"
- Name 459 "bv"
- Name 520 "Block"
- MemberName 520(Block) 0 "i16"
- MemberName 520(Block) 1 "i16v2"
- MemberName 520(Block) 2 "i16v3"
- MemberName 520(Block) 3 "i16v4"
- MemberName 520(Block) 4 "u16"
- MemberName 520(Block) 5 "u16v2"
- MemberName 520(Block) 6 "u16v3"
- MemberName 520(Block) 7 "u16v4"
- Name 522 "block"
- Name 523 "si16"
- Name 524 "su16"
+ Name 281 "b"
+ Name 343 "i16v"
+ Name 346 "i16"
+ Name 356 "u16v"
+ Name 358 "u16"
+ Name 428 "i32"
+ Name 431 "i64"
+ Name 434 "i16v4"
+ Name 437 "u32"
+ Name 438 "u16v2"
+ Name 442 "u64"
+ Name 445 "u16v4"
+ Name 457 "bv"
+ Name 518 "Block"
+ MemberName 518(Block) 0 "i16"
+ MemberName 518(Block) 1 "i16v2"
+ MemberName 518(Block) 2 "i16v3"
+ MemberName 518(Block) 3 "i16v4"
+ MemberName 518(Block) 4 "u16"
+ MemberName 518(Block) 5 "u16v2"
+ MemberName 518(Block) 6 "u16v3"
+ MemberName 518(Block) 7 "u16v4"
+ Name 520 "block"
+ Name 521 "si16"
+ Name 522 "su16"
MemberDecorate 24(Uniforms) 0 Offset 0
Decorate 24(Uniforms) Block
Decorate 26 DescriptorSet 0
Decorate 26 Binding 0
- MemberDecorate 520(Block) 0 Offset 0
- MemberDecorate 520(Block) 1 Offset 4
- MemberDecorate 520(Block) 2 Offset 8
- MemberDecorate 520(Block) 3 Offset 16
- MemberDecorate 520(Block) 4 Offset 24
- MemberDecorate 520(Block) 5 Offset 28
- MemberDecorate 520(Block) 6 Offset 32
- MemberDecorate 520(Block) 7 Offset 40
- Decorate 520(Block) Block
- Decorate 522(block) DescriptorSet 0
- Decorate 522(block) Binding 1
- Decorate 523(si16) SpecId 100
- Decorate 524(su16) SpecId 101
+ MemberDecorate 518(Block) 0 Offset 0
+ MemberDecorate 518(Block) 1 Offset 4
+ MemberDecorate 518(Block) 2 Offset 8
+ MemberDecorate 518(Block) 3 Offset 16
+ MemberDecorate 518(Block) 4 Offset 24
+ MemberDecorate 518(Block) 5 Offset 28
+ MemberDecorate 518(Block) 6 Offset 32
+ MemberDecorate 518(Block) 7 Offset 40
+ Decorate 518(Block) Block
+ Decorate 520(block) DescriptorSet 0
+ Decorate 520(block) Binding 1
+ Decorate 521(si16) SpecId 100
+ Decorate 522(su16) SpecId 101
2: TypeVoid
3: TypeFunction 2
14: TypeInt 16 1
242: TypePointer Function 71(int)
264: 17(int) Constant 1
270: 17(int) Constant 2
- 275: TypeVector 27(int) 3
- 282: TypePointer Function 173(bool)
- 284: 17(int) Constant 0
- 298: TypePointer Function 17(int)
- 356: 52(ivec2) ConstantComposite 21 21
- 365: 193(ivec3) ConstantComposite 184 184 184
- 407: 173(bool) ConstantTrue
- 414: 173(bool) ConstantFalse
- 415: 174(bvec2) ConstantComposite 414 414
- 427: TypeVector 173(bool) 3
- 428: 427(bvec3) ConstantComposite 414 414 414
- 434: TypeVector 14(int) 4
- 435: TypePointer Function 434(ivec4)
- 443: TypePointer Function 77(int)
- 445: TypeVector 36(int) 4
- 446: TypePointer Function 445(ivec4)
- 458: TypePointer Function 427(bvec3)
- 520(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 434(ivec4) 36(int) 57(ivec2) 193(ivec3) 445(ivec4)
- 521: TypePointer Uniform 520(Block)
- 522(block): 521(ptr) Variable Uniform
- 523(si16): 14(int) SpecConstant 4294967286
- 524(su16): 36(int) SpecConstant 20
+ 276: TypeVector 27(int) 3
+ 280: TypePointer Function 173(bool)
+ 282: 17(int) Constant 0
+ 296: TypePointer Function 17(int)
+ 354: 52(ivec2) ConstantComposite 21 21
+ 363: 193(ivec3) ConstantComposite 184 184 184
+ 405: 173(bool) ConstantTrue
+ 412: 173(bool) ConstantFalse
+ 413: 174(bvec2) ConstantComposite 412 412
+ 425: TypeVector 173(bool) 3
+ 426: 425(bvec3) ConstantComposite 412 412 412
+ 432: TypeVector 14(int) 4
+ 433: TypePointer Function 432(ivec4)
+ 441: TypePointer Function 77(int)
+ 443: TypeVector 36(int) 4
+ 444: TypePointer Function 443(ivec4)
+ 456: TypePointer Function 425(bvec3)
+ 518(Block): TypeStruct 14(int) 52(ivec2) 197(ivec3) 432(ivec4) 36(int) 57(ivec2) 193(ivec3) 443(ivec4)
+ 519: TypePointer Uniform 518(Block)
+ 520(block): 519(ptr) Variable Uniform
+ 521(si16): 14(int) SpecConstant 4294967286
+ 522(su16): 36(int) SpecConstant 20
4(main): 2 Function None 3
5: Label
Return
220(i): 219(ptr) Variable Function
227(uv): 226(ptr) Variable Function
243(i64): 242(ptr) Variable Function
- 283(b): 282(ptr) Variable Function
+ 281(b): 280(ptr) Variable Function
196: 193(ivec3) Load 195(u16v)
198: 197(ivec3) CompositeConstruct 179 179 179
199: 193(ivec3) IAdd 196 198
273: 14(int) ShiftLeftLogical 269 272
Store 200(i16) 273
274: 193(ivec3) Load 195(u16v)
- 276: 275(ivec3) UConvert 274
- 277: 275(ivec3) Bitcast 276
- 278: 27(int) Load 220(i)
- 279: 275(ivec3) CompositeConstruct 278 278 278
- 280: 275(ivec3) ShiftLeftLogical 277 279
- 281: 225(ivec3) Bitcast 280
- Store 227(uv) 281
- 285: 37(ptr) AccessChain 195(u16v) 284
- 286: 36(int) Load 285
- 287: 14(int) Load 200(i16)
- 288: 36(int) Bitcast 287
- 289: 173(bool) INotEqual 286 288
- Store 283(b) 289
- 290: 14(int) Load 200(i16)
- 291: 36(int) Bitcast 290
- 292: 37(ptr) AccessChain 195(u16v) 284
- 293: 36(int) Load 292
- 294: 173(bool) IEqual 291 293
- Store 283(b) 294
- 295: 37(ptr) AccessChain 195(u16v) 284
- 296: 36(int) Load 295
- 297: 17(int) UConvert 296
- 299: 298(ptr) AccessChain 227(uv) 264
- 300: 17(int) Load 299
- 301: 173(bool) UGreaterThan 297 300
- Store 283(b) 301
- 302: 14(int) Load 200(i16)
- 303: 27(int) SConvert 302
- 304: 27(int) Load 220(i)
- 305: 173(bool) SLessThan 303 304
- Store 283(b) 305
- 306: 37(ptr) AccessChain 195(u16v) 264
- 307: 36(int) Load 306
- 308: 17(int) UConvert 307
- 309: 298(ptr) AccessChain 227(uv) 284
- 310: 17(int) Load 309
- 311: 173(bool) UGreaterThanEqual 308 310
- Store 283(b) 311
- 312: 14(int) Load 200(i16)
- 313: 27(int) SConvert 312
- 314: 27(int) Load 220(i)
- 315: 173(bool) SLessThanEqual 313 314
- Store 283(b) 315
- 316: 14(int) Load 200(i16)
- 317: 27(int) SConvert 316
- 318: 17(int) Bitcast 317
- 319: 225(ivec3) Load 227(uv)
- 320: 225(ivec3) CompositeConstruct 318 318 318
- 321: 225(ivec3) BitwiseOr 319 320
- Store 227(uv) 321
- 322: 14(int) Load 200(i16)
- 323: 27(int) SConvert 322
- 324: 27(int) Load 220(i)
- 325: 27(int) BitwiseOr 323 324
- Store 220(i) 325
- 326: 14(int) Load 200(i16)
- 327: 71(int) SConvert 326
- 328: 71(int) Load 243(i64)
- 329: 71(int) BitwiseAnd 328 327
- Store 243(i64) 329
- 330: 193(ivec3) Load 195(u16v)
- 331: 225(ivec3) UConvert 330
- 332: 225(ivec3) Load 227(uv)
- 333: 225(ivec3) BitwiseAnd 331 332
- Store 227(uv) 333
- 334: 14(int) Load 200(i16)
- 335: 27(int) SConvert 334
- 336: 17(int) Bitcast 335
- 337: 225(ivec3) Load 227(uv)
- 338: 225(ivec3) CompositeConstruct 336 336 336
- 339: 225(ivec3) BitwiseXor 337 338
- Store 227(uv) 339
- 340: 193(ivec3) Load 195(u16v)
- 341: 14(int) Load 200(i16)
- 342: 36(int) Bitcast 341
- 343: 193(ivec3) CompositeConstruct 342 342 342
- 344: 193(ivec3) BitwiseXor 340 343
- Store 195(u16v) 344
+ 275: 27(int) Load 220(i)
+ 277: 276(ivec3) CompositeConstruct 275 275 275
+ 278: 193(ivec3) ShiftLeftLogical 274 277
+ 279: 225(ivec3) UConvert 278
+ Store 227(uv) 279
+ 283: 37(ptr) AccessChain 195(u16v) 282
+ 284: 36(int) Load 283
+ 285: 14(int) Load 200(i16)
+ 286: 36(int) Bitcast 285
+ 287: 173(bool) INotEqual 284 286
+ Store 281(b) 287
+ 288: 14(int) Load 200(i16)
+ 289: 36(int) Bitcast 288
+ 290: 37(ptr) AccessChain 195(u16v) 282
+ 291: 36(int) Load 290
+ 292: 173(bool) IEqual 289 291
+ Store 281(b) 292
+ 293: 37(ptr) AccessChain 195(u16v) 282
+ 294: 36(int) Load 293
+ 295: 17(int) UConvert 294
+ 297: 296(ptr) AccessChain 227(uv) 264
+ 298: 17(int) Load 297
+ 299: 173(bool) UGreaterThan 295 298
+ Store 281(b) 299
+ 300: 14(int) Load 200(i16)
+ 301: 27(int) SConvert 300
+ 302: 27(int) Load 220(i)
+ 303: 173(bool) SLessThan 301 302
+ Store 281(b) 303
+ 304: 37(ptr) AccessChain 195(u16v) 264
+ 305: 36(int) Load 304
+ 306: 17(int) UConvert 305
+ 307: 296(ptr) AccessChain 227(uv) 282
+ 308: 17(int) Load 307
+ 309: 173(bool) UGreaterThanEqual 306 308
+ Store 281(b) 309
+ 310: 14(int) Load 200(i16)
+ 311: 27(int) SConvert 310
+ 312: 27(int) Load 220(i)
+ 313: 173(bool) SLessThanEqual 311 312
+ Store 281(b) 313
+ 314: 14(int) Load 200(i16)
+ 315: 27(int) SConvert 314
+ 316: 17(int) Bitcast 315
+ 317: 225(ivec3) Load 227(uv)
+ 318: 225(ivec3) CompositeConstruct 316 316 316
+ 319: 225(ivec3) BitwiseOr 317 318
+ Store 227(uv) 319
+ 320: 14(int) Load 200(i16)
+ 321: 27(int) SConvert 320
+ 322: 27(int) Load 220(i)
+ 323: 27(int) BitwiseOr 321 322
+ Store 220(i) 323
+ 324: 14(int) Load 200(i16)
+ 325: 71(int) SConvert 324
+ 326: 71(int) Load 243(i64)
+ 327: 71(int) BitwiseAnd 326 325
+ Store 243(i64) 327
+ 328: 193(ivec3) Load 195(u16v)
+ 329: 225(ivec3) UConvert 328
+ 330: 225(ivec3) Load 227(uv)
+ 331: 225(ivec3) BitwiseAnd 329 330
+ Store 227(uv) 331
+ 332: 14(int) Load 200(i16)
+ 333: 27(int) SConvert 332
+ 334: 17(int) Bitcast 333
+ 335: 225(ivec3) Load 227(uv)
+ 336: 225(ivec3) CompositeConstruct 334 334 334
+ 337: 225(ivec3) BitwiseXor 335 336
+ Store 227(uv) 337
+ 338: 193(ivec3) Load 195(u16v)
+ 339: 14(int) Load 200(i16)
+ 340: 36(int) Bitcast 339
+ 341: 193(ivec3) CompositeConstruct 340 340 340
+ 342: 193(ivec3) BitwiseXor 338 341
+ Store 195(u16v) 342
Return
FunctionEnd
12(builtinFuncs(): 2 Function None 3
13: Label
- 345(i16v): 53(ptr) Variable Function
- 348(i16): 15(ptr) Variable Function
- 358(u16v): 194(ptr) Variable Function
- 360(u16): 37(ptr) Variable Function
- 430(i32): 219(ptr) Variable Function
- 433(i64): 242(ptr) Variable Function
- 436(i16v4): 435(ptr) Variable Function
- 439(u32): 298(ptr) Variable Function
- 440(u16v2): 58(ptr) Variable Function
- 444(u64): 443(ptr) Variable Function
- 447(u16v4): 446(ptr) Variable Function
- 459(bv): 458(ptr) Variable Function
- 346: 52(ivec2) Load 345(i16v)
- 347: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 346
- Store 345(i16v) 347
- 349: 14(int) Load 348(i16)
- 350: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 349
- Store 348(i16) 350
- 351: 52(ivec2) Load 345(i16v)
- 352: 14(int) Load 348(i16)
- 353: 52(ivec2) CompositeConstruct 352 352
- 354: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 351 353
- Store 345(i16v) 354
- 355: 52(ivec2) Load 345(i16v)
- 357: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 355 356
- Store 345(i16v) 357
- 359: 193(ivec3) Load 358(u16v)
- 361: 36(int) Load 360(u16)
- 362: 193(ivec3) CompositeConstruct 361 361 361
- 363: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 359 362
- Store 358(u16v) 363
- 364: 193(ivec3) Load 358(u16v)
- 366: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 364 365
- Store 358(u16v) 366
- 367: 52(ivec2) Load 345(i16v)
- 368: 14(int) Load 348(i16)
- 369: 52(ivec2) CompositeConstruct 368 368
- 370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 367 369
- Store 345(i16v) 370
- 371: 52(ivec2) Load 345(i16v)
- 372: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 371 356
- Store 345(i16v) 372
- 373: 193(ivec3) Load 358(u16v)
- 374: 36(int) Load 360(u16)
- 375: 193(ivec3) CompositeConstruct 374 374 374
- 376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 373 375
- Store 358(u16v) 376
- 377: 193(ivec3) Load 358(u16v)
- 378: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 377 365
- Store 358(u16v) 378
- 379: 52(ivec2) Load 345(i16v)
- 380: 14(int) Load 348(i16)
- 381: 14(int) SNegate 380
- 382: 14(int) Load 348(i16)
- 383: 52(ivec2) CompositeConstruct 381 381
- 384: 52(ivec2) CompositeConstruct 382 382
- 385: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 383 384
- Store 345(i16v) 385
- 386: 52(ivec2) Load 345(i16v)
- 387: 52(ivec2) Load 345(i16v)
- 388: 52(ivec2) SNegate 387
- 389: 52(ivec2) Load 345(i16v)
- 390: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 386 388 389
- Store 345(i16v) 390
- 391: 193(ivec3) Load 358(u16v)
- 392: 36(int) Load 360(u16)
- 393: 36(int) SNegate 392
- 394: 36(int) Load 360(u16)
- 395: 193(ivec3) CompositeConstruct 393 393 393
- 396: 193(ivec3) CompositeConstruct 394 394 394
- 397: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 395 396
- Store 358(u16v) 397
- 398: 193(ivec3) Load 358(u16v)
- 399: 193(ivec3) Load 358(u16v)
- 400: 193(ivec3) SNegate 399
- 401: 193(ivec3) Load 358(u16v)
- 402: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 398 400 401
- Store 358(u16v) 402
- 403: 15(ptr) AccessChain 345(i16v) 284
+ 343(i16v): 53(ptr) Variable Function
+ 346(i16): 15(ptr) Variable Function
+ 356(u16v): 194(ptr) Variable Function
+ 358(u16): 37(ptr) Variable Function
+ 428(i32): 219(ptr) Variable Function
+ 431(i64): 242(ptr) Variable Function
+ 434(i16v4): 433(ptr) Variable Function
+ 437(u32): 296(ptr) Variable Function
+ 438(u16v2): 58(ptr) Variable Function
+ 442(u64): 441(ptr) Variable Function
+ 445(u16v4): 444(ptr) Variable Function
+ 457(bv): 456(ptr) Variable Function
+ 344: 52(ivec2) Load 343(i16v)
+ 345: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344
+ Store 343(i16v) 345
+ 347: 14(int) Load 346(i16)
+ 348: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 347
+ Store 346(i16) 348
+ 349: 52(ivec2) Load 343(i16v)
+ 350: 14(int) Load 346(i16)
+ 351: 52(ivec2) CompositeConstruct 350 350
+ 352: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351
+ Store 343(i16v) 352
+ 353: 52(ivec2) Load 343(i16v)
+ 355: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354
+ Store 343(i16v) 355
+ 357: 193(ivec3) Load 356(u16v)
+ 359: 36(int) Load 358(u16)
+ 360: 193(ivec3) CompositeConstruct 359 359 359
+ 361: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360
+ Store 356(u16v) 361
+ 362: 193(ivec3) Load 356(u16v)
+ 364: 193(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363
+ Store 356(u16v) 364
+ 365: 52(ivec2) Load 343(i16v)
+ 366: 14(int) Load 346(i16)
+ 367: 52(ivec2) CompositeConstruct 366 366
+ 368: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367
+ Store 343(i16v) 368
+ 369: 52(ivec2) Load 343(i16v)
+ 370: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354
+ Store 343(i16v) 370
+ 371: 193(ivec3) Load 356(u16v)
+ 372: 36(int) Load 358(u16)
+ 373: 193(ivec3) CompositeConstruct 372 372 372
+ 374: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373
+ Store 356(u16v) 374
+ 375: 193(ivec3) Load 356(u16v)
+ 376: 193(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363
+ Store 356(u16v) 376
+ 377: 52(ivec2) Load 343(i16v)
+ 378: 14(int) Load 346(i16)
+ 379: 14(int) SNegate 378
+ 380: 14(int) Load 346(i16)
+ 381: 52(ivec2) CompositeConstruct 379 379
+ 382: 52(ivec2) CompositeConstruct 380 380
+ 383: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382
+ Store 343(i16v) 383
+ 384: 52(ivec2) Load 343(i16v)
+ 385: 52(ivec2) Load 343(i16v)
+ 386: 52(ivec2) SNegate 385
+ 387: 52(ivec2) Load 343(i16v)
+ 388: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387
+ Store 343(i16v) 388
+ 389: 193(ivec3) Load 356(u16v)
+ 390: 36(int) Load 358(u16)
+ 391: 36(int) SNegate 390
+ 392: 36(int) Load 358(u16)
+ 393: 193(ivec3) CompositeConstruct 391 391 391
+ 394: 193(ivec3) CompositeConstruct 392 392 392
+ 395: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394
+ Store 356(u16v) 395
+ 396: 193(ivec3) Load 356(u16v)
+ 397: 193(ivec3) Load 356(u16v)
+ 398: 193(ivec3) SNegate 397
+ 399: 193(ivec3) Load 356(u16v)
+ 400: 193(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399
+ Store 356(u16v) 400
+ 401: 15(ptr) AccessChain 343(i16v) 282
+ 402: 14(int) Load 401
+ 403: 15(ptr) AccessChain 343(i16v) 264
404: 14(int) Load 403
- 405: 15(ptr) AccessChain 345(i16v) 264
- 406: 14(int) Load 405
- 408: 14(int) Select 407 406 404
- Store 348(i16) 408
- 409: 14(int) Load 348(i16)
- 410: 52(ivec2) CompositeConstruct 409 409
- 411: 14(int) Load 348(i16)
- 412: 14(int) SNegate 411
- 413: 52(ivec2) CompositeConstruct 412 412
- 416: 52(ivec2) Select 415 413 410
- Store 345(i16v) 416
- 417: 37(ptr) AccessChain 358(u16v) 284
+ 406: 14(int) Select 405 404 402
+ Store 346(i16) 406
+ 407: 14(int) Load 346(i16)
+ 408: 52(ivec2) CompositeConstruct 407 407
+ 409: 14(int) Load 346(i16)
+ 410: 14(int) SNegate 409
+ 411: 52(ivec2) CompositeConstruct 410 410
+ 414: 52(ivec2) Select 413 411 408
+ Store 343(i16v) 414
+ 415: 37(ptr) AccessChain 356(u16v) 282
+ 416: 36(int) Load 415
+ 417: 37(ptr) AccessChain 356(u16v) 264
418: 36(int) Load 417
- 419: 37(ptr) AccessChain 358(u16v) 264
- 420: 36(int) Load 419
- 421: 36(int) Select 407 420 418
- Store 360(u16) 421
- 422: 36(int) Load 360(u16)
- 423: 193(ivec3) CompositeConstruct 422 422 422
- 424: 36(int) Load 360(u16)
- 425: 36(int) SNegate 424
- 426: 193(ivec3) CompositeConstruct 425 425 425
- 429: 193(ivec3) Select 428 426 423
- Store 358(u16v) 429
- 431: 52(ivec2) Load 345(i16v)
- 432: 27(int) Bitcast 431
- Store 430(i32) 432
- 437: 434(ivec4) Load 436(i16v4)
- 438: 71(int) Bitcast 437
- Store 433(i64) 438
- 441: 57(ivec2) Load 440(u16v2)
- 442: 17(int) Bitcast 441
- Store 439(u32) 442
- 448: 445(ivec4) Load 447(u16v4)
- 449: 77(int) Bitcast 448
- Store 444(u64) 449
- 450: 27(int) Load 430(i32)
- 451: 52(ivec2) Bitcast 450
- Store 345(i16v) 451
- 452: 71(int) Load 433(i64)
- 453: 434(ivec4) Bitcast 452
- Store 436(i16v4) 453
- 454: 17(int) Load 439(u32)
- 455: 57(ivec2) Bitcast 454
- Store 440(u16v2) 455
- 456: 77(int) Load 444(u64)
- 457: 445(ivec4) Bitcast 456
- Store 447(u16v4) 457
- 460: 193(ivec3) Load 358(u16v)
- 461: 36(int) Load 360(u16)
- 462: 193(ivec3) CompositeConstruct 461 461 461
- 463: 427(bvec3) ULessThan 460 462
- Store 459(bv) 463
- 464: 52(ivec2) Load 345(i16v)
- 465: 14(int) Load 348(i16)
- 466: 52(ivec2) CompositeConstruct 465 465
- 467: 174(bvec2) SLessThan 464 466
- 468: 427(bvec3) Load 459(bv)
- 469: 427(bvec3) VectorShuffle 468 467 3 4 2
- Store 459(bv) 469
- 470: 193(ivec3) Load 358(u16v)
- 471: 36(int) Load 360(u16)
- 472: 193(ivec3) CompositeConstruct 471 471 471
- 473: 427(bvec3) ULessThanEqual 470 472
- Store 459(bv) 473
- 474: 52(ivec2) Load 345(i16v)
- 475: 14(int) Load 348(i16)
- 476: 52(ivec2) CompositeConstruct 475 475
- 477: 174(bvec2) SLessThanEqual 474 476
- 478: 427(bvec3) Load 459(bv)
- 479: 427(bvec3) VectorShuffle 478 477 3 4 2
- Store 459(bv) 479
- 480: 193(ivec3) Load 358(u16v)
- 481: 36(int) Load 360(u16)
- 482: 193(ivec3) CompositeConstruct 481 481 481
- 483: 427(bvec3) UGreaterThan 480 482
- Store 459(bv) 483
- 484: 52(ivec2) Load 345(i16v)
- 485: 14(int) Load 348(i16)
- 486: 52(ivec2) CompositeConstruct 485 485
- 487: 174(bvec2) SGreaterThan 484 486
- 488: 427(bvec3) Load 459(bv)
- 489: 427(bvec3) VectorShuffle 488 487 3 4 2
- Store 459(bv) 489
- 490: 193(ivec3) Load 358(u16v)
- 491: 36(int) Load 360(u16)
- 492: 193(ivec3) CompositeConstruct 491 491 491
- 493: 427(bvec3) UGreaterThanEqual 490 492
- Store 459(bv) 493
- 494: 52(ivec2) Load 345(i16v)
- 495: 14(int) Load 348(i16)
- 496: 52(ivec2) CompositeConstruct 495 495
- 497: 174(bvec2) SGreaterThanEqual 494 496
- 498: 427(bvec3) Load 459(bv)
- 499: 427(bvec3) VectorShuffle 498 497 3 4 2
- Store 459(bv) 499
- 500: 193(ivec3) Load 358(u16v)
- 501: 36(int) Load 360(u16)
- 502: 193(ivec3) CompositeConstruct 501 501 501
- 503: 427(bvec3) IEqual 500 502
- Store 459(bv) 503
- 504: 52(ivec2) Load 345(i16v)
- 505: 14(int) Load 348(i16)
- 506: 52(ivec2) CompositeConstruct 505 505
- 507: 174(bvec2) IEqual 504 506
- 508: 427(bvec3) Load 459(bv)
- 509: 427(bvec3) VectorShuffle 508 507 3 4 2
- Store 459(bv) 509
- 510: 193(ivec3) Load 358(u16v)
- 511: 36(int) Load 360(u16)
- 512: 193(ivec3) CompositeConstruct 511 511 511
- 513: 427(bvec3) INotEqual 510 512
- Store 459(bv) 513
- 514: 52(ivec2) Load 345(i16v)
- 515: 14(int) Load 348(i16)
- 516: 52(ivec2) CompositeConstruct 515 515
- 517: 174(bvec2) INotEqual 514 516
- 518: 427(bvec3) Load 459(bv)
- 519: 427(bvec3) VectorShuffle 518 517 3 4 2
- Store 459(bv) 519
+ 419: 36(int) Select 405 418 416
+ Store 358(u16) 419
+ 420: 36(int) Load 358(u16)
+ 421: 193(ivec3) CompositeConstruct 420 420 420
+ 422: 36(int) Load 358(u16)
+ 423: 36(int) SNegate 422
+ 424: 193(ivec3) CompositeConstruct 423 423 423
+ 427: 193(ivec3) Select 426 424 421
+ Store 356(u16v) 427
+ 429: 52(ivec2) Load 343(i16v)
+ 430: 27(int) Bitcast 429
+ Store 428(i32) 430
+ 435: 432(ivec4) Load 434(i16v4)
+ 436: 71(int) Bitcast 435
+ Store 431(i64) 436
+ 439: 57(ivec2) Load 438(u16v2)
+ 440: 17(int) Bitcast 439
+ Store 437(u32) 440
+ 446: 443(ivec4) Load 445(u16v4)
+ 447: 77(int) Bitcast 446
+ Store 442(u64) 447
+ 448: 27(int) Load 428(i32)
+ 449: 52(ivec2) Bitcast 448
+ Store 343(i16v) 449
+ 450: 71(int) Load 431(i64)
+ 451: 432(ivec4) Bitcast 450
+ Store 434(i16v4) 451
+ 452: 17(int) Load 437(u32)
+ 453: 57(ivec2) Bitcast 452
+ Store 438(u16v2) 453
+ 454: 77(int) Load 442(u64)
+ 455: 443(ivec4) Bitcast 454
+ Store 445(u16v4) 455
+ 458: 193(ivec3) Load 356(u16v)
+ 459: 36(int) Load 358(u16)
+ 460: 193(ivec3) CompositeConstruct 459 459 459
+ 461: 425(bvec3) ULessThan 458 460
+ Store 457(bv) 461
+ 462: 52(ivec2) Load 343(i16v)
+ 463: 14(int) Load 346(i16)
+ 464: 52(ivec2) CompositeConstruct 463 463
+ 465: 174(bvec2) SLessThan 462 464
+ 466: 425(bvec3) Load 457(bv)
+ 467: 425(bvec3) VectorShuffle 466 465 3 4 2
+ Store 457(bv) 467
+ 468: 193(ivec3) Load 356(u16v)
+ 469: 36(int) Load 358(u16)
+ 470: 193(ivec3) CompositeConstruct 469 469 469
+ 471: 425(bvec3) ULessThanEqual 468 470
+ Store 457(bv) 471
+ 472: 52(ivec2) Load 343(i16v)
+ 473: 14(int) Load 346(i16)
+ 474: 52(ivec2) CompositeConstruct 473 473
+ 475: 174(bvec2) SLessThanEqual 472 474
+ 476: 425(bvec3) Load 457(bv)
+ 477: 425(bvec3) VectorShuffle 476 475 3 4 2
+ Store 457(bv) 477
+ 478: 193(ivec3) Load 356(u16v)
+ 479: 36(int) Load 358(u16)
+ 480: 193(ivec3) CompositeConstruct 479 479 479
+ 481: 425(bvec3) UGreaterThan 478 480
+ Store 457(bv) 481
+ 482: 52(ivec2) Load 343(i16v)
+ 483: 14(int) Load 346(i16)
+ 484: 52(ivec2) CompositeConstruct 483 483
+ 485: 174(bvec2) SGreaterThan 482 484
+ 486: 425(bvec3) Load 457(bv)
+ 487: 425(bvec3) VectorShuffle 486 485 3 4 2
+ Store 457(bv) 487
+ 488: 193(ivec3) Load 356(u16v)
+ 489: 36(int) Load 358(u16)
+ 490: 193(ivec3) CompositeConstruct 489 489 489
+ 491: 425(bvec3) UGreaterThanEqual 488 490
+ Store 457(bv) 491
+ 492: 52(ivec2) Load 343(i16v)
+ 493: 14(int) Load 346(i16)
+ 494: 52(ivec2) CompositeConstruct 493 493
+ 495: 174(bvec2) SGreaterThanEqual 492 494
+ 496: 425(bvec3) Load 457(bv)
+ 497: 425(bvec3) VectorShuffle 496 495 3 4 2
+ Store 457(bv) 497
+ 498: 193(ivec3) Load 356(u16v)
+ 499: 36(int) Load 358(u16)
+ 500: 193(ivec3) CompositeConstruct 499 499 499
+ 501: 425(bvec3) IEqual 498 500
+ Store 457(bv) 501
+ 502: 52(ivec2) Load 343(i16v)
+ 503: 14(int) Load 346(i16)
+ 504: 52(ivec2) CompositeConstruct 503 503
+ 505: 174(bvec2) IEqual 502 504
+ 506: 425(bvec3) Load 457(bv)
+ 507: 425(bvec3) VectorShuffle 506 505 3 4 2
+ Store 457(bv) 507
+ 508: 193(ivec3) Load 356(u16v)
+ 509: 36(int) Load 358(u16)
+ 510: 193(ivec3) CompositeConstruct 509 509 509
+ 511: 425(bvec3) INotEqual 508 510
+ Store 457(bv) 511
+ 512: 52(ivec2) Load 343(i16v)
+ 513: 14(int) Load 346(i16)
+ 514: 52(ivec2) CompositeConstruct 513 513
+ 515: 174(bvec2) INotEqual 512 514
+ 516: 425(bvec3) Load 457(bv)
+ 517: 425(bvec3) VectorShuffle 516 515 3 4 2
+ Store 457(bv) 517
Return
FunctionEnd
i64 = i64 % i;\r
\r
// Shift\r
+ u64v = u64v << i;\r
+ i64 = i64 >> uv.y;\r
u64v <<= i;\r
i64 >>= uv.y;\r
\r
--- /dev/null
+#version 450\r
+#extension GL_ARB_gpu_shader_int64 : require\r
+\r
+layout(local_size_x = 54) in;\r
+\r
+layout(location=4) uniform int64_t arg0;\r
+layout(location=5) uniform uint arg1;\r
+\r
+void main()\r
+{\r
+ uint64_t result = arg0 << arg1;\r
+ result = arg0 >> arg1;\r
+ result <<= arg1;\r
+ result >>= arg1;\r
+}
\ No newline at end of file
auto promoteTo = std::make_tuple(EbtNumTypes, EbtNumTypes);
- TBasicType type0 = node0->getType().getBasicType();
- TBasicType type1 = node1->getType().getBasicType();
-
switch (op) {
//
// List all the binary ops that can implicitly convert one operand to the other's type;
case EOpSequence: // used by ?:
- if (type0 == type1)
+ if (node0->getBasicType() == node1->getBasicType())
return std::make_tuple(node0, node1);
- promoteTo = getConversionDestinatonType(type0, type1, op);
+ promoteTo = getConversionDestinatonType(node0->getBasicType(), node1->getBasicType(), op);
if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes)
return std::make_tuple(nullptr, nullptr);
return std::make_tuple(node0, node1);
break;
- // Shifts can have mixed types as long as they are integer and of the same rank,
- // without converting.
+ // There are no conversions needed for GLSL; the shift amount just needs to be an
+ // integer type, as does the base.
+ // HLSL can promote bools to ints to make this work.
case EOpLeftShift:
case EOpRightShift:
- if (node0->getType() == node1->getType())
- return std::make_tuple(node0, node1);
-
- if (isTypeInt(type0) && isTypeInt(type1)) {
- if (getTypeRank(type0) == getTypeRank(type1)) {
+ if (source == EShSourceHlsl) {
+ TBasicType node0BasicType = node0->getBasicType();
+ if (node0BasicType == EbtBool)
+ node0BasicType = EbtInt;
+ if (node1->getBasicType() == EbtBool)
+ promoteTo = std::make_tuple(node0BasicType, EbtInt);
+ else
+ promoteTo = std::make_tuple(node0BasicType, node1->getBasicType());
+ } else {
+ if (isTypeInt(node0->getBasicType()) && isTypeInt(node1->getBasicType()))
return std::make_tuple(node0, node1);
- } else {
- promoteTo = getConversionDestinatonType(type0, type1, op);
- if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes)
- return std::make_tuple(nullptr, nullptr);
- }
- } else
- return std::make_tuple(nullptr, nullptr);
+ else
+ return std::make_tuple(nullptr, nullptr);
+ }
break;
default:
if (type.getBasicType() == node->getType().getBasicType())
return node;
- if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op))
+ if (canImplicitlyPromote(node->getBasicType(), type.getBasicType(), op))
promoteTo = type.getBasicType();
else
return nullptr;
break;
- // Shifts can have mixed types as long as they are integer and of the same rank,
- // without converting.
- // It's the left operand's type that determines the resulting type, so no issue
- // with assign shift ops either.
+ // For GLSL, there are no conversions needed; the shift amount just needs to be an
+ // integer type, as do the base/result.
+ // HLSL can convert the shift from a bool to an int.
case EOpLeftShiftAssign:
case EOpRightShiftAssign:
{
- TBasicType type0 = type.getBasicType();
- TBasicType type1 = node->getType().getBasicType();
-
- if (source == EShSourceHlsl && node->getType().getBasicType() == EbtBool) {
- promoteTo = type0;
- } else {
- if (isTypeInt(type0) && isTypeInt(type1)) {
- if (getTypeRank(type0) == getTypeRank(type1)) {
- return node;
- } else {
- if (canImplicitlyPromote(type1, type0, op))
- promoteTo = type0;
- else
- return nullptr;
- }
- } else
+ if (source == EShSourceHlsl && node->getType().getBasicType() == EbtBool)
+ promoteTo = type.getBasicType();
+ else {
+ if (isTypeInt(type.getBasicType()) && isTypeInt(node->getBasicType()))
+ return node;
+ else
return nullptr;
}
break;
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float32) ||
extensionRequested(E_GL_KHX_shader_explicit_arithmetic_types_float64);
- if(explicitTypesEnabled)
- {
-
+ if(explicitTypesEnabled) {
// integral promotions
if (isIntegralPromotion(from, to)) {
return true;
"spv.460.comp",
"spv.atomic.comp",
"spv.glFragColor.frag",
+ "spv.rankShift.comp",
"spv.specConst.vert",
"spv.OVR_multiview.vert",
})),