Commit 4bfb32e1 by John Kessenich

Merge branch 'bugfix2' of https://github.com/amdrexu/glslang into amdrexu-bugfix2

parents 31527186 99c4dd16
...@@ -7,7 +7,7 @@ Linked fragment stage: ...@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 478 // Id's are bound by 480
Capability Shader Capability Shader
Capability Float64 Capability Float64
...@@ -23,631 +23,635 @@ Linked fragment stage: ...@@ -23,631 +23,635 @@ Linked fragment stage:
Name 8 "typeCast(" Name 8 "typeCast("
Name 10 "operators(" Name 10 "operators("
Name 12 "builtinFuncs(" Name 12 "builtinFuncs("
Name 16 "i64" Name 16 "u64Max"
Name 24 "Uniforms" Name 20 "i64"
MemberName 24(Uniforms) 0 "index" Name 28 "Uniforms"
Name 26 "" MemberName 28(Uniforms) 0 "index"
Name 33 "indexable" Name 30 ""
Name 38 "u64" Name 37 "indexable"
Name 47 "indexable" Name 41 "u64"
Name 52 "i64v" Name 49 "indexable"
Name 56 "bv" Name 54 "i64v"
Name 65 "u64v" Name 58 "bv"
Name 74 "iv" Name 67 "u64v"
Name 81 "uv" Name 76 "iv"
Name 89 "fv" Name 83 "uv"
Name 95 "dv" Name 91 "fv"
Name 132 "u64v" Name 97 "dv"
Name 137 "i64" Name 134 "u64v"
Name 157 "i" Name 139 "i64"
Name 164 "uv" Name 159 "i"
Name 216 "b" Name 166 "uv"
Name 276 "i64v" Name 218 "b"
Name 279 "i64" Name 278 "i64v"
Name 289 "u64v" Name 281 "i64"
Name 291 "u64" Name 291 "u64v"
Name 363 "dv" Name 293 "u64"
Name 382 "iv" Name 365 "dv"
Name 387 "uv" Name 384 "iv"
Name 391 "bv" Name 389 "uv"
Name 452 "Block" Name 393 "bv"
MemberName 452(Block) 0 "i64v" Name 454 "Block"
MemberName 452(Block) 1 "u64" MemberName 454(Block) 0 "i64v"
Name 454 "block" MemberName 454(Block) 1 "u64"
MemberDecorate 24(Uniforms) 0 Offset 0 Name 456 "block"
Decorate 24(Uniforms) Block MemberDecorate 28(Uniforms) 0 Offset 0
Decorate 26 DescriptorSet 0 Decorate 28(Uniforms) Block
Decorate 26 Binding 0 Decorate 30 DescriptorSet 0
MemberDecorate 452(Block) 0 Offset 0 Decorate 30 Binding 0
MemberDecorate 452(Block) 1 Offset 24 MemberDecorate 454(Block) 0 Offset 0
Decorate 452(Block) Block MemberDecorate 454(Block) 1 Offset 24
Decorate 454(block) DescriptorSet 0 Decorate 454(Block) Block
Decorate 454(block) Binding 1 Decorate 456(block) DescriptorSet 0
Decorate 455 SpecId 100 Decorate 456(block) Binding 1
Decorate 456 SpecId 101 Decorate 457 SpecId 100
Decorate 457 SpecId 102 Decorate 458 SpecId 101
Decorate 458 SpecId 103 Decorate 459 SpecId 102
Decorate 459 SpecId 104 Decorate 460 SpecId 103
Decorate 461 SpecId 104
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
14: TypeInt 64 1 14: TypeInt 64 0
15: TypePointer Function 14(int) 15: TypePointer Private 14(int)
17: TypeInt 32 0 16(u64Max): 15(ptr) Variable Private
18: 17(int) Constant 3 17: 14(int) Constant 4294967295 4294967295
19: TypeArray 14(int) 18 18: TypeInt 64 1
20: 14(int) Constant 4008636143 4008636142 19: TypePointer Function 18(int)
21: 14(int) Constant 4294967295 4294967295 21: TypeInt 32 0
22: 14(int) Constant 0 1 22: 21(int) Constant 3
23: 19 ConstantComposite 20 21 22 23: TypeArray 18(int) 22
24(Uniforms): TypeStruct 17(int) 24: 18(int) Constant 4008636143 4008636142
25: TypePointer Uniform 24(Uniforms) 25: 18(int) Constant 4294967295 4294967295
26: 25(ptr) Variable Uniform 26: 18(int) Constant 0 1
27: TypeInt 32 1 27: 23 ConstantComposite 24 25 26
28: 27(int) Constant 0 28(Uniforms): TypeStruct 21(int)
29: TypePointer Uniform 17(int) 29: TypePointer Uniform 28(Uniforms)
32: TypePointer Function 19 30: 29(ptr) Variable Uniform
36: TypeInt 64 0 31: TypeInt 32 1
37: TypePointer Function 36(int) 32: 31(int) Constant 0
39: TypeArray 36(int) 18 33: TypePointer Uniform 21(int)
40: 36(int) Constant 4294967295 4294967295 36: TypePointer Function 23
41: 36(int) Constant 0 1 40: TypePointer Function 14(int)
42: 36(int) Constant 4294967295 1 42: TypeArray 14(int) 22
43: 39 ConstantComposite 40 41 42 43: 14(int) Constant 0 1
46: TypePointer Function 39 44: 14(int) Constant 4294967295 1
50: TypeVector 14(int) 2 45: 42 ConstantComposite 17 43 44
51: TypePointer Function 50(ivec2) 48: TypePointer Function 42
53: TypeBool 52: TypeVector 18(int) 2
54: TypeVector 53(bool) 2 53: TypePointer Function 52(ivec2)
55: TypePointer Function 54(bvec2) 55: TypeBool
58: 14(int) Constant 0 0 56: TypeVector 55(bool) 2
59: 14(int) Constant 1 0 57: TypePointer Function 56(bvec2)
60: 50(ivec2) ConstantComposite 58 58 60: 18(int) Constant 0 0
61: 50(ivec2) ConstantComposite 59 59 61: 18(int) Constant 1 0
63: TypeVector 36(int) 2 62: 52(ivec2) ConstantComposite 60 60
64: TypePointer Function 63(ivec2) 63: 52(ivec2) ConstantComposite 61 61
67: 36(int) Constant 0 0 65: TypeVector 14(int) 2
68: 36(int) Constant 1 0 66: TypePointer Function 65(ivec2)
69: 63(ivec2) ConstantComposite 67 67 69: 14(int) Constant 0 0
70: 63(ivec2) ConstantComposite 68 68 70: 14(int) Constant 1 0
72: TypeVector 27(int) 2 71: 65(ivec2) ConstantComposite 69 69
73: TypePointer Function 72(ivec2) 72: 65(ivec2) ConstantComposite 70 70
79: TypeVector 17(int) 2 74: TypeVector 31(int) 2
80: TypePointer Function 79(ivec2) 75: TypePointer Function 74(ivec2)
86: TypeFloat 32 81: TypeVector 21(int) 2
87: TypeVector 86(float) 2 82: TypePointer Function 81(ivec2)
88: TypePointer Function 87(fvec2) 88: TypeFloat 32
92: TypeFloat 64 89: TypeVector 88(float) 2
93: TypeVector 92(float) 2 90: TypePointer Function 89(fvec2)
94: TypePointer Function 93(fvec2) 94: TypeFloat 64
130: TypeVector 36(int) 3 95: TypeVector 94(float) 2
131: TypePointer Function 130(ivec3) 96: TypePointer Function 95(fvec2)
134: TypeVector 14(int) 3 132: TypeVector 14(int) 3
156: TypePointer Function 27(int) 133: TypePointer Function 132(ivec3)
162: TypeVector 17(int) 3 136: TypeVector 18(int) 3
163: TypePointer Function 162(ivec3) 158: TypePointer Function 31(int)
197: TypeVector 27(int) 3 164: TypeVector 21(int) 3
200: 17(int) Constant 1 165: TypePointer Function 164(ivec3)
201: TypePointer Function 17(int) 199: TypeVector 31(int) 3
207: 17(int) Constant 2 202: 21(int) Constant 1
215: TypePointer Function 53(bool) 203: TypePointer Function 21(int)
217: 17(int) Constant 0 209: 21(int) Constant 2
287: 50(ivec2) ConstantComposite 21 21 217: TypePointer Function 55(bool)
296: 130(ivec3) ConstantComposite 67 67 67 219: 21(int) Constant 0
338: 53(bool) ConstantTrue 289: 52(ivec2) ConstantComposite 25 25
345: 53(bool) ConstantFalse 298: 132(ivec3) ConstantComposite 69 69 69
346: 54(bvec2) ConstantComposite 345 345 340: 55(bool) ConstantTrue
358: TypeVector 53(bool) 3 347: 55(bool) ConstantFalse
359: 358(bvec3) ConstantComposite 345 345 345 348: 56(bvec2) ConstantComposite 347 347
361: TypeVector 92(float) 3 360: TypeVector 55(bool) 3
362: TypePointer Function 361(fvec3) 361: 360(bvec3) ConstantComposite 347 347 347
367: TypePointer Function 92(float) 363: TypeVector 94(float) 3
378: 27(int) Constant 1 364: TypePointer Function 363(fvec3)
379: 27(int) Constant 2 369: TypePointer Function 94(float)
380: 72(ivec2) ConstantComposite 378 379 380: 31(int) Constant 1
385: 79(ivec2) ConstantComposite 207 18 381: 31(int) Constant 2
390: TypePointer Function 358(bvec3) 382: 74(ivec2) ConstantComposite 380 381
452(Block): TypeStruct 134(ivec3) 36(int) 387: 81(ivec2) ConstantComposite 209 22
453: TypePointer Uniform 452(Block) 392: TypePointer Function 360(bvec3)
454(block): 453(ptr) Variable Uniform 454(Block): TypeStruct 136(ivec3) 14(int)
455: 14(int) SpecConstant 4294967286 4294967295 455: TypePointer Uniform 454(Block)
456: 36(int) SpecConstant 20 0 456(block): 455(ptr) Variable Uniform
457: 27(int) SpecConstant 4294967291 457: 18(int) SpecConstant 4294967286 4294967295
458: 17(int) SpecConstant 4 458: 14(int) SpecConstant 20 0
459: 53(bool) SpecConstantTrue 459: 31(int) SpecConstant 4294967291
460: 53(bool) SpecConstantOp 171 455 67 460: 21(int) SpecConstant 4
461: 53(bool) SpecConstantOp 171 456 67 461: 55(bool) SpecConstantTrue
462: 14(int) SpecConstantOp 169 459 59 58 462: 55(bool) SpecConstantOp 171 457 69
463: 36(int) SpecConstantOp 169 459 68 67 463: 55(bool) SpecConstantOp 171 458 69
464: 27(int) SpecConstantOp 114 455 464: 18(int) SpecConstantOp 169 461 61 60
465: 14(int) SpecConstantOp 114 457 465: 14(int) SpecConstantOp 169 461 70 69
466: 17(int) SpecConstantOp 113 456 466: 31(int) SpecConstantOp 114 457
467: 36(int) SpecConstantOp 113 458 467: 18(int) SpecConstantOp 114 459
468: 14(int) SpecConstantOp 128 456 67 468: 21(int) SpecConstantOp 113 458
469: 36(int) SpecConstantOp 128 455 67 469: 14(int) SpecConstantOp 113 460
470: 17(int) SpecConstantOp 113 456 470: 18(int) SpecConstantOp 128 458 69
471: 27(int) SpecConstantOp 128 470 217 471: 14(int) SpecConstantOp 128 457 69
472: 14(int) SpecConstantOp 114 457 472: 21(int) SpecConstantOp 113 458
473: 36(int) SpecConstantOp 128 472 67 473: 31(int) SpecConstantOp 128 472 219
474: 27(int) SpecConstantOp 114 455 474: 18(int) SpecConstantOp 114 459
475: 17(int) SpecConstantOp 128 474 217 475: 14(int) SpecConstantOp 128 474 69
476: 36(int) SpecConstantOp 113 458 476: 31(int) SpecConstantOp 114 457
477: 14(int) SpecConstantOp 128 476 67 477: 21(int) SpecConstantOp 128 476 219
478: 14(int) SpecConstantOp 113 460
479: 18(int) SpecConstantOp 128 478 69
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Store 16(u64Max) 17
Return Return
FunctionEnd FunctionEnd
6(literal(): 2 Function None 3 6(literal(): 2 Function None 3
7: Label 7: Label
16(i64): 15(ptr) Variable Function 20(i64): 19(ptr) Variable Function
33(indexable): 32(ptr) Variable Function 37(indexable): 36(ptr) Variable Function
38(u64): 37(ptr) Variable Function 41(u64): 40(ptr) Variable Function
47(indexable): 46(ptr) Variable Function 49(indexable): 48(ptr) Variable Function
30: 29(ptr) AccessChain 26 28 34: 33(ptr) AccessChain 30 32
31: 17(int) Load 30 35: 21(int) Load 34
Store 33(indexable) 23 Store 37(indexable) 27
34: 15(ptr) AccessChain 33(indexable) 31 38: 19(ptr) AccessChain 37(indexable) 35
35: 14(int) Load 34 39: 18(int) Load 38
Store 16(i64) 35 Store 20(i64) 39
44: 29(ptr) AccessChain 26 28 46: 33(ptr) AccessChain 30 32
45: 17(int) Load 44 47: 21(int) Load 46
Store 47(indexable) 43 Store 49(indexable) 45
48: 37(ptr) AccessChain 47(indexable) 45 50: 40(ptr) AccessChain 49(indexable) 47
49: 36(int) Load 48 51: 14(int) Load 50
Store 38(u64) 49 Store 41(u64) 51
Return Return
FunctionEnd FunctionEnd
8(typeCast(): 2 Function None 3 8(typeCast(): 2 Function None 3
9: Label 9: Label
52(i64v): 51(ptr) Variable Function 54(i64v): 53(ptr) Variable Function
56(bv): 55(ptr) Variable Function 58(bv): 57(ptr) Variable Function
65(u64v): 64(ptr) Variable Function 67(u64v): 66(ptr) Variable Function
74(iv): 73(ptr) Variable Function 76(iv): 75(ptr) Variable Function
81(uv): 80(ptr) Variable Function 83(uv): 82(ptr) Variable Function
89(fv): 88(ptr) Variable Function 91(fv): 90(ptr) Variable Function
95(dv): 94(ptr) Variable Function 97(dv): 96(ptr) Variable Function
57: 54(bvec2) Load 56(bv) 59: 56(bvec2) Load 58(bv)
62: 50(ivec2) Select 57 61 60 64: 52(ivec2) Select 59 63 62
Store 52(i64v) 62 Store 54(i64v) 64
66: 54(bvec2) Load 56(bv) 68: 56(bvec2) Load 58(bv)
71: 63(ivec2) Select 66 70 69 73: 65(ivec2) Select 68 72 71
Store 65(u64v) 71 Store 67(u64v) 73
75: 72(ivec2) Load 74(iv) 77: 74(ivec2) Load 76(iv)
76: 50(ivec2) SConvert 75 78: 52(ivec2) SConvert 77
Store 52(i64v) 76 Store 54(i64v) 78
77: 50(ivec2) Load 52(i64v) 79: 52(ivec2) Load 54(i64v)
78: 72(ivec2) SConvert 77 80: 74(ivec2) SConvert 79
Store 74(iv) 78 Store 76(iv) 80
82: 79(ivec2) Load 81(uv) 84: 81(ivec2) Load 83(uv)
83: 63(ivec2) UConvert 82 85: 65(ivec2) UConvert 84
Store 65(u64v) 83 Store 67(u64v) 85
84: 63(ivec2) Load 65(u64v) 86: 65(ivec2) Load 67(u64v)
85: 79(ivec2) UConvert 84 87: 81(ivec2) UConvert 86
Store 81(uv) 85 Store 83(uv) 87
90: 50(ivec2) Load 52(i64v) 92: 52(ivec2) Load 54(i64v)
91: 87(fvec2) ConvertSToF 90 93: 89(fvec2) ConvertSToF 92
Store 89(fv) 91 Store 91(fv) 93
96: 50(ivec2) Load 52(i64v) 98: 52(ivec2) Load 54(i64v)
97: 93(fvec2) ConvertSToF 96 99: 95(fvec2) ConvertSToF 98
Store 95(dv) 97 Store 97(dv) 99
98: 63(ivec2) Load 65(u64v) 100: 65(ivec2) Load 67(u64v)
99: 87(fvec2) ConvertUToF 98 101: 89(fvec2) ConvertUToF 100
Store 89(fv) 99 Store 91(fv) 101
100: 63(ivec2) Load 65(u64v) 102: 65(ivec2) Load 67(u64v)
101: 93(fvec2) ConvertUToF 100 103: 95(fvec2) ConvertUToF 102
Store 95(dv) 101 Store 97(dv) 103
102: 87(fvec2) Load 89(fv) 104: 89(fvec2) Load 91(fv)
103: 50(ivec2) ConvertFToS 102 105: 52(ivec2) ConvertFToS 104
Store 52(i64v) 103 Store 54(i64v) 105
104: 93(fvec2) Load 95(dv) 106: 95(fvec2) Load 97(dv)
105: 50(ivec2) ConvertFToS 104 107: 52(ivec2) ConvertFToS 106
Store 52(i64v) 105 Store 54(i64v) 107
106: 87(fvec2) Load 89(fv) 108: 89(fvec2) Load 91(fv)
107: 63(ivec2) ConvertFToU 106 109: 65(ivec2) ConvertFToU 108
Store 65(u64v) 107 Store 67(u64v) 109
108: 93(fvec2) Load 95(dv) 110: 95(fvec2) Load 97(dv)
109: 63(ivec2) ConvertFToU 108 111: 65(ivec2) ConvertFToU 110
Store 65(u64v) 109 Store 67(u64v) 111
110: 50(ivec2) Load 52(i64v) 112: 52(ivec2) Load 54(i64v)
111: 54(bvec2) INotEqual 110 69 113: 56(bvec2) INotEqual 112 71
Store 56(bv) 111 Store 58(bv) 113
112: 63(ivec2) Load 65(u64v) 114: 65(ivec2) Load 67(u64v)
113: 54(bvec2) INotEqual 112 69 115: 56(bvec2) INotEqual 114 71
Store 56(bv) 113 Store 58(bv) 115
114: 50(ivec2) Load 52(i64v) 116: 52(ivec2) Load 54(i64v)
115: 63(ivec2) Bitcast 114 117: 65(ivec2) Bitcast 116
Store 65(u64v) 115 Store 67(u64v) 117
116: 63(ivec2) Load 65(u64v) 118: 65(ivec2) Load 67(u64v)
117: 50(ivec2) Bitcast 116 119: 52(ivec2) Bitcast 118
Store 52(i64v) 117 Store 54(i64v) 119
118: 50(ivec2) Load 52(i64v) 120: 52(ivec2) Load 54(i64v)
119: 72(ivec2) SConvert 118 121: 74(ivec2) SConvert 120
120: 79(ivec2) Bitcast 119 122: 81(ivec2) Bitcast 121
Store 81(uv) 120 Store 83(uv) 122
121: 79(ivec2) Load 81(uv) 123: 81(ivec2) Load 83(uv)
122: 63(ivec2) UConvert 121 124: 65(ivec2) UConvert 123
123: 50(ivec2) Bitcast 122 125: 52(ivec2) Bitcast 124
Store 52(i64v) 123 Store 54(i64v) 125
124: 63(ivec2) Load 65(u64v) 126: 65(ivec2) Load 67(u64v)
125: 79(ivec2) UConvert 124 127: 81(ivec2) UConvert 126
126: 72(ivec2) Bitcast 125 128: 74(ivec2) Bitcast 127
Store 74(iv) 126 Store 76(iv) 128
127: 72(ivec2) Load 74(iv) 129: 74(ivec2) Load 76(iv)
128: 50(ivec2) SConvert 127 130: 52(ivec2) SConvert 129
129: 63(ivec2) Bitcast 128 131: 65(ivec2) Bitcast 130
Store 65(u64v) 129 Store 67(u64v) 131
Return Return
FunctionEnd FunctionEnd
10(operators(): 2 Function None 3 10(operators(): 2 Function None 3
11: Label 11: Label
132(u64v): 131(ptr) Variable Function 134(u64v): 133(ptr) Variable Function
137(i64): 15(ptr) Variable Function 139(i64): 19(ptr) Variable Function
157(i): 156(ptr) Variable Function 159(i): 158(ptr) Variable Function
164(uv): 163(ptr) Variable Function 166(uv): 165(ptr) Variable Function
216(b): 215(ptr) Variable Function 218(b): 217(ptr) Variable Function
133: 130(ivec3) Load 132(u64v) 135: 132(ivec3) Load 134(u64v)
135: 134(ivec3) CompositeConstruct 59 59 59 137: 136(ivec3) CompositeConstruct 61 61 61
136: 130(ivec3) IAdd 133 135 138: 132(ivec3) IAdd 135 137
Store 132(u64v) 136 Store 134(u64v) 138
138: 14(int) Load 137(i64) 140: 18(int) Load 139(i64)
139: 14(int) ISub 138 59 141: 18(int) ISub 140 61
Store 137(i64) 139 Store 139(i64) 141
140: 14(int) Load 137(i64) 142: 18(int) Load 139(i64)
141: 14(int) IAdd 140 59 143: 18(int) IAdd 142 61
Store 137(i64) 141 Store 139(i64) 143
142: 130(ivec3) Load 132(u64v) 144: 132(ivec3) Load 134(u64v)
143: 134(ivec3) CompositeConstruct 59 59 59 145: 136(ivec3) CompositeConstruct 61 61 61
144: 130(ivec3) ISub 142 143 146: 132(ivec3) ISub 144 145
Store 132(u64v) 144 Store 134(u64v) 146
145: 130(ivec3) Load 132(u64v) 147: 132(ivec3) Load 134(u64v)
146: 130(ivec3) Not 145 148: 132(ivec3) Not 147
Store 132(u64v) 146 Store 134(u64v) 148
147: 14(int) Load 137(i64) 149: 18(int) Load 139(i64)
Store 137(i64) 147 Store 139(i64) 149
148: 130(ivec3) Load 132(u64v) 150: 132(ivec3) Load 134(u64v)
149: 130(ivec3) SNegate 148 151: 132(ivec3) SNegate 150
Store 132(u64v) 149 Store 134(u64v) 151
150: 14(int) Load 137(i64) 152: 18(int) Load 139(i64)
151: 14(int) Load 137(i64) 153: 18(int) Load 139(i64)
152: 14(int) IAdd 151 150 154: 18(int) IAdd 153 152
Store 137(i64) 152 Store 139(i64) 154
153: 130(ivec3) Load 132(u64v) 155: 132(ivec3) Load 134(u64v)
154: 130(ivec3) Load 132(u64v) 156: 132(ivec3) Load 134(u64v)
155: 130(ivec3) ISub 154 153 157: 132(ivec3) ISub 156 155
Store 132(u64v) 155 Store 134(u64v) 157
158: 27(int) Load 157(i) 160: 31(int) Load 159(i)
159: 14(int) SConvert 158 161: 18(int) SConvert 160
160: 14(int) Load 137(i64) 162: 18(int) Load 139(i64)
161: 14(int) IMul 160 159 163: 18(int) IMul 162 161
Store 137(i64) 161 Store 139(i64) 163
165: 162(ivec3) Load 164(uv) 167: 164(ivec3) Load 166(uv)
166: 130(ivec3) UConvert 165 168: 132(ivec3) UConvert 167
167: 130(ivec3) Load 132(u64v) 169: 132(ivec3) Load 134(u64v)
168: 130(ivec3) UDiv 167 166 170: 132(ivec3) UDiv 169 168
Store 132(u64v) 168 Store 134(u64v) 170
169: 27(int) Load 157(i) 171: 31(int) Load 159(i)
170: 14(int) SConvert 169 172: 18(int) SConvert 171
171: 36(int) Bitcast 170 173: 14(int) Bitcast 172
172: 130(ivec3) Load 132(u64v) 174: 132(ivec3) Load 134(u64v)
173: 130(ivec3) CompositeConstruct 171 171 171 175: 132(ivec3) CompositeConstruct 173 173 173
174: 130(ivec3) UMod 172 173 176: 132(ivec3) UMod 174 175
Store 132(u64v) 174 Store 134(u64v) 176
175: 130(ivec3) Load 132(u64v) 177: 132(ivec3) Load 134(u64v)
176: 162(ivec3) Load 164(uv) 178: 164(ivec3) Load 166(uv)
177: 130(ivec3) UConvert 176 179: 132(ivec3) UConvert 178
178: 130(ivec3) IAdd 175 177 180: 132(ivec3) IAdd 177 179
Store 132(u64v) 178 Store 134(u64v) 180
179: 14(int) Load 137(i64) 181: 18(int) Load 139(i64)
180: 27(int) Load 157(i) 182: 31(int) Load 159(i)
181: 14(int) SConvert 180 183: 18(int) SConvert 182
182: 14(int) ISub 179 181 184: 18(int) ISub 181 183
Store 137(i64) 182 Store 139(i64) 184
183: 130(ivec3) Load 132(u64v) 185: 132(ivec3) Load 134(u64v)
184: 162(ivec3) Load 164(uv) 186: 164(ivec3) Load 166(uv)
185: 130(ivec3) UConvert 184 187: 132(ivec3) UConvert 186
186: 130(ivec3) IMul 183 185 188: 132(ivec3) IMul 185 187
Store 132(u64v) 186 Store 134(u64v) 188
187: 14(int) Load 137(i64) 189: 18(int) Load 139(i64)
188: 27(int) Load 157(i) 190: 31(int) Load 159(i)
189: 14(int) SConvert 188 191: 18(int) SConvert 190
190: 14(int) IMul 187 189 192: 18(int) IMul 189 191
Store 137(i64) 190 Store 139(i64) 192
191: 14(int) Load 137(i64) 193: 18(int) Load 139(i64)
192: 27(int) Load 157(i) 194: 31(int) Load 159(i)
193: 14(int) SConvert 192 195: 18(int) SConvert 194
194: 14(int) SMod 191 193 196: 18(int) SMod 193 195
Store 137(i64) 194 Store 139(i64) 196
195: 27(int) Load 157(i) 197: 31(int) Load 159(i)
196: 130(ivec3) Load 132(u64v) 198: 132(ivec3) Load 134(u64v)
198: 197(ivec3) CompositeConstruct 195 195 195 200: 199(ivec3) CompositeConstruct 197 197 197
199: 130(ivec3) ShiftLeftLogical 196 198 201: 132(ivec3) ShiftLeftLogical 198 200
Store 132(u64v) 199 Store 134(u64v) 201
202: 201(ptr) AccessChain 164(uv) 200 204: 203(ptr) AccessChain 166(uv) 202
203: 17(int) Load 202 205: 21(int) Load 204
204: 14(int) Load 137(i64) 206: 18(int) Load 139(i64)
205: 14(int) ShiftRightArithmetic 204 203 207: 18(int) ShiftRightArithmetic 206 205
Store 137(i64) 205 Store 139(i64) 207
206: 14(int) Load 137(i64) 208: 18(int) Load 139(i64)
208: 37(ptr) AccessChain 132(u64v) 207 210: 40(ptr) AccessChain 134(u64v) 209
209: 36(int) Load 208 211: 14(int) Load 210
210: 14(int) ShiftLeftLogical 206 209 212: 18(int) ShiftLeftLogical 208 211
Store 137(i64) 210 Store 139(i64) 212
211: 130(ivec3) Load 132(u64v) 213: 132(ivec3) Load 134(u64v)
212: 14(int) Load 137(i64) 214: 18(int) Load 139(i64)
213: 134(ivec3) CompositeConstruct 212 212 212 215: 136(ivec3) CompositeConstruct 214 214 214
214: 130(ivec3) ShiftLeftLogical 211 213 216: 132(ivec3) ShiftLeftLogical 213 215
Store 132(u64v) 214 Store 134(u64v) 216
218: 37(ptr) AccessChain 132(u64v) 217 220: 40(ptr) AccessChain 134(u64v) 219
219: 36(int) Load 218 221: 14(int) Load 220
220: 14(int) Load 137(i64) 222: 18(int) Load 139(i64)
221: 36(int) Bitcast 220 223: 14(int) Bitcast 222
222: 53(bool) INotEqual 219 221 224: 55(bool) INotEqual 221 223
Store 216(b) 222 Store 218(b) 224
223: 14(int) Load 137(i64) 225: 18(int) Load 139(i64)
224: 36(int) Bitcast 223 226: 14(int) Bitcast 225
225: 37(ptr) AccessChain 132(u64v) 217 227: 40(ptr) AccessChain 134(u64v) 219
226: 36(int) Load 225 228: 14(int) Load 227
227: 53(bool) IEqual 224 226 229: 55(bool) IEqual 226 228
Store 216(b) 227 Store 218(b) 229
228: 37(ptr) AccessChain 132(u64v) 217 230: 40(ptr) AccessChain 134(u64v) 219
229: 36(int) Load 228 231: 14(int) Load 230
230: 201(ptr) AccessChain 164(uv) 200 232: 203(ptr) AccessChain 166(uv) 202
231: 17(int) Load 230 233: 21(int) Load 232
232: 36(int) UConvert 231 234: 14(int) UConvert 233
233: 53(bool) UGreaterThan 229 232 235: 55(bool) UGreaterThan 231 234
Store 216(b) 233 Store 218(b) 235
234: 14(int) Load 137(i64) 236: 18(int) Load 139(i64)
235: 27(int) Load 157(i) 237: 31(int) Load 159(i)
236: 14(int) SConvert 235 238: 18(int) SConvert 237
237: 53(bool) SLessThan 234 236 239: 55(bool) SLessThan 236 238
Store 216(b) 237 Store 218(b) 239
238: 37(ptr) AccessChain 132(u64v) 200 240: 40(ptr) AccessChain 134(u64v) 202
239: 36(int) Load 238 241: 14(int) Load 240
240: 201(ptr) AccessChain 164(uv) 217 242: 203(ptr) AccessChain 166(uv) 219
241: 17(int) Load 240 243: 21(int) Load 242
242: 36(int) UConvert 241 244: 14(int) UConvert 243
243: 53(bool) UGreaterThanEqual 239 242 245: 55(bool) UGreaterThanEqual 241 244
Store 216(b) 243 Store 218(b) 245
244: 14(int) Load 137(i64) 246: 18(int) Load 139(i64)
245: 27(int) Load 157(i) 247: 31(int) Load 159(i)
246: 14(int) SConvert 245 248: 18(int) SConvert 247
247: 53(bool) SLessThanEqual 244 246 249: 55(bool) SLessThanEqual 246 248
Store 216(b) 247 Store 218(b) 249
248: 27(int) Load 157(i) 250: 31(int) Load 159(i)
249: 14(int) SConvert 248 251: 18(int) SConvert 250
250: 36(int) Bitcast 249 252: 14(int) Bitcast 251
251: 130(ivec3) Load 132(u64v) 253: 132(ivec3) Load 134(u64v)
252: 130(ivec3) CompositeConstruct 250 250 250 254: 132(ivec3) CompositeConstruct 252 252 252
253: 130(ivec3) BitwiseOr 251 252 255: 132(ivec3) BitwiseOr 253 254
Store 132(u64v) 253 Store 134(u64v) 255
254: 14(int) Load 137(i64) 256: 18(int) Load 139(i64)
255: 27(int) Load 157(i) 257: 31(int) Load 159(i)
256: 14(int) SConvert 255 258: 18(int) SConvert 257
257: 14(int) BitwiseOr 254 256 259: 18(int) BitwiseOr 256 258
Store 137(i64) 257 Store 139(i64) 259
258: 27(int) Load 157(i) 260: 31(int) Load 159(i)
259: 14(int) SConvert 258 261: 18(int) SConvert 260
260: 14(int) Load 137(i64) 262: 18(int) Load 139(i64)
261: 14(int) BitwiseAnd 260 259 263: 18(int) BitwiseAnd 262 261
Store 137(i64) 261 Store 139(i64) 263
262: 130(ivec3) Load 132(u64v) 264: 132(ivec3) Load 134(u64v)
263: 162(ivec3) Load 164(uv) 265: 164(ivec3) Load 166(uv)
264: 130(ivec3) UConvert 263 266: 132(ivec3) UConvert 265
265: 130(ivec3) BitwiseAnd 262 264 267: 132(ivec3) BitwiseAnd 264 266
Store 132(u64v) 265 Store 134(u64v) 267
266: 14(int) Load 137(i64) 268: 18(int) Load 139(i64)
267: 36(int) Bitcast 266 269: 14(int) Bitcast 268
268: 130(ivec3) Load 132(u64v) 270: 132(ivec3) Load 134(u64v)
269: 130(ivec3) CompositeConstruct 267 267 267 271: 132(ivec3) CompositeConstruct 269 269 269
270: 130(ivec3) BitwiseXor 268 269 272: 132(ivec3) BitwiseXor 270 271
Store 132(u64v) 270 Store 134(u64v) 272
271: 130(ivec3) Load 132(u64v) 273: 132(ivec3) Load 134(u64v)
272: 14(int) Load 137(i64) 274: 18(int) Load 139(i64)
273: 36(int) Bitcast 272 275: 14(int) Bitcast 274
274: 130(ivec3) CompositeConstruct 273 273 273 276: 132(ivec3) CompositeConstruct 275 275 275
275: 130(ivec3) BitwiseXor 271 274 277: 132(ivec3) BitwiseXor 273 276
Store 132(u64v) 275 Store 134(u64v) 277
Return Return
FunctionEnd FunctionEnd
12(builtinFuncs(): 2 Function None 3 12(builtinFuncs(): 2 Function None 3
13: Label 13: Label
276(i64v): 51(ptr) Variable Function 278(i64v): 53(ptr) Variable Function
279(i64): 15(ptr) Variable Function 281(i64): 19(ptr) Variable Function
289(u64v): 131(ptr) Variable Function 291(u64v): 133(ptr) Variable Function
291(u64): 37(ptr) Variable Function 293(u64): 40(ptr) Variable Function
363(dv): 362(ptr) Variable Function 365(dv): 364(ptr) Variable Function
382(iv): 73(ptr) Variable Function 384(iv): 75(ptr) Variable Function
387(uv): 80(ptr) Variable Function 389(uv): 82(ptr) Variable Function
391(bv): 390(ptr) Variable Function 393(bv): 392(ptr) Variable Function
277: 50(ivec2) Load 276(i64v) 279: 52(ivec2) Load 278(i64v)
278: 50(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 277 280: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 279
Store 276(i64v) 278 Store 278(i64v) 280
280: 14(int) Load 279(i64) 282: 18(int) Load 281(i64)
281: 14(int) ExtInst 1(GLSL.std.450) 7(SSign) 280 283: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 282
Store 279(i64) 281 Store 281(i64) 283
282: 50(ivec2) Load 276(i64v) 284: 52(ivec2) Load 278(i64v)
283: 14(int) Load 279(i64) 285: 18(int) Load 281(i64)
284: 50(ivec2) CompositeConstruct 283 283 286: 52(ivec2) CompositeConstruct 285 285
285: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 282 284 287: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 284 286
Store 276(i64v) 285 Store 278(i64v) 287
286: 50(ivec2) Load 276(i64v) 288: 52(ivec2) Load 278(i64v)
288: 50(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 286 287 290: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 288 289
Store 276(i64v) 288 Store 278(i64v) 290
290: 130(ivec3) Load 289(u64v) 292: 132(ivec3) Load 291(u64v)
292: 36(int) Load 291(u64) 294: 14(int) Load 293(u64)
293: 130(ivec3) CompositeConstruct 292 292 292 295: 132(ivec3) CompositeConstruct 294 294 294
294: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 290 293 296: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 292 295
Store 289(u64v) 294 Store 291(u64v) 296
295: 130(ivec3) Load 289(u64v) 297: 132(ivec3) Load 291(u64v)
297: 130(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 295 296 299: 132(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 297 298
Store 289(u64v) 297 Store 291(u64v) 299
298: 50(ivec2) Load 276(i64v) 300: 52(ivec2) Load 278(i64v)
299: 14(int) Load 279(i64) 301: 18(int) Load 281(i64)
300: 50(ivec2) CompositeConstruct 299 299 302: 52(ivec2) CompositeConstruct 301 301
301: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 298 300 303: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 300 302
Store 276(i64v) 301 Store 278(i64v) 303
302: 50(ivec2) Load 276(i64v) 304: 52(ivec2) Load 278(i64v)
303: 50(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 302 287 305: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 304 289
Store 276(i64v) 303 Store 278(i64v) 305
304: 130(ivec3) Load 289(u64v) 306: 132(ivec3) Load 291(u64v)
305: 36(int) Load 291(u64) 307: 14(int) Load 293(u64)
306: 130(ivec3) CompositeConstruct 305 305 305 308: 132(ivec3) CompositeConstruct 307 307 307
307: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 304 306 309: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 306 308
Store 289(u64v) 307 Store 291(u64v) 309
308: 130(ivec3) Load 289(u64v) 310: 132(ivec3) Load 291(u64v)
309: 130(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 308 296 311: 132(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 310 298
Store 289(u64v) 309 Store 291(u64v) 311
310: 50(ivec2) Load 276(i64v) 312: 52(ivec2) Load 278(i64v)
311: 14(int) Load 279(i64) 313: 18(int) Load 281(i64)
312: 14(int) SNegate 311 314: 18(int) SNegate 313
313: 14(int) Load 279(i64) 315: 18(int) Load 281(i64)
314: 50(ivec2) CompositeConstruct 312 312 316: 52(ivec2) CompositeConstruct 314 314
315: 50(ivec2) CompositeConstruct 313 313 317: 52(ivec2) CompositeConstruct 315 315
316: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 310 314 315 318: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 312 316 317
Store 276(i64v) 316 Store 278(i64v) 318
317: 50(ivec2) Load 276(i64v) 319: 52(ivec2) Load 278(i64v)
318: 50(ivec2) Load 276(i64v) 320: 52(ivec2) Load 278(i64v)
319: 50(ivec2) SNegate 318 321: 52(ivec2) SNegate 320
320: 50(ivec2) Load 276(i64v) 322: 52(ivec2) Load 278(i64v)
321: 50(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 317 319 320 323: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 319 321 322
Store 276(i64v) 321 Store 278(i64v) 323
322: 130(ivec3) Load 289(u64v) 324: 132(ivec3) Load 291(u64v)
323: 36(int) Load 291(u64) 325: 14(int) Load 293(u64)
324: 36(int) SNegate 323 326: 14(int) SNegate 325
325: 36(int) Load 291(u64) 327: 14(int) Load 293(u64)
326: 130(ivec3) CompositeConstruct 324 324 324 328: 132(ivec3) CompositeConstruct 326 326 326
327: 130(ivec3) CompositeConstruct 325 325 325 329: 132(ivec3) CompositeConstruct 327 327 327
328: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 322 326 327 330: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 324 328 329
Store 289(u64v) 328 Store 291(u64v) 330
329: 130(ivec3) Load 289(u64v) 331: 132(ivec3) Load 291(u64v)
330: 130(ivec3) Load 289(u64v) 332: 132(ivec3) Load 291(u64v)
331: 130(ivec3) SNegate 330 333: 132(ivec3) SNegate 332
332: 130(ivec3) Load 289(u64v) 334: 132(ivec3) Load 291(u64v)
333: 130(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 329 331 332 335: 132(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 331 333 334
Store 289(u64v) 333 Store 291(u64v) 335
334: 15(ptr) AccessChain 276(i64v) 217 336: 19(ptr) AccessChain 278(i64v) 219
335: 14(int) Load 334 337: 18(int) Load 336
336: 15(ptr) AccessChain 276(i64v) 200 338: 19(ptr) AccessChain 278(i64v) 202
337: 14(int) Load 336 339: 18(int) Load 338
339: 14(int) Select 338 337 335 341: 18(int) Select 340 339 337
Store 279(i64) 339 Store 281(i64) 341
340: 14(int) Load 279(i64) 342: 18(int) Load 281(i64)
341: 50(ivec2) CompositeConstruct 340 340 343: 52(ivec2) CompositeConstruct 342 342
342: 14(int) Load 279(i64) 344: 18(int) Load 281(i64)
343: 14(int) SNegate 342 345: 18(int) SNegate 344
344: 50(ivec2) CompositeConstruct 343 343 346: 52(ivec2) CompositeConstruct 345 345
347: 50(ivec2) Select 346 344 341 349: 52(ivec2) Select 348 346 343
Store 276(i64v) 347 Store 278(i64v) 349
348: 37(ptr) AccessChain 289(u64v) 217 350: 40(ptr) AccessChain 291(u64v) 219
349: 36(int) Load 348 351: 14(int) Load 350
350: 37(ptr) AccessChain 289(u64v) 200 352: 40(ptr) AccessChain 291(u64v) 202
351: 36(int) Load 350 353: 14(int) Load 352
352: 36(int) Select 338 351 349 354: 14(int) Select 340 353 351
Store 291(u64) 352 Store 293(u64) 354
353: 36(int) Load 291(u64) 355: 14(int) Load 293(u64)
354: 130(ivec3) CompositeConstruct 353 353 353 356: 132(ivec3) CompositeConstruct 355 355 355
355: 36(int) Load 291(u64) 357: 14(int) Load 293(u64)
356: 36(int) SNegate 355 358: 14(int) SNegate 357
357: 130(ivec3) CompositeConstruct 356 356 356 359: 132(ivec3) CompositeConstruct 358 358 358
360: 130(ivec3) Select 359 357 354 362: 132(ivec3) Select 361 359 356
Store 289(u64v) 360 Store 291(u64v) 362
364: 361(fvec3) Load 363(dv) 366: 363(fvec3) Load 365(dv)
365: 93(fvec2) VectorShuffle 364 364 0 1 367: 95(fvec2) VectorShuffle 366 366 0 1
366: 50(ivec2) Bitcast 365 368: 52(ivec2) Bitcast 367
Store 276(i64v) 366 Store 278(i64v) 368
368: 367(ptr) AccessChain 363(dv) 207 370: 369(ptr) AccessChain 365(dv) 209
369: 92(float) Load 368 371: 94(float) Load 370
370: 36(int) Bitcast 369 372: 14(int) Bitcast 371
371: 37(ptr) AccessChain 289(u64v) 217 373: 40(ptr) AccessChain 291(u64v) 219
Store 371 370 Store 373 372
372: 50(ivec2) Load 276(i64v) 374: 52(ivec2) Load 278(i64v)
373: 93(fvec2) Bitcast 372 375: 95(fvec2) Bitcast 374
374: 361(fvec3) Load 363(dv) 376: 363(fvec3) Load 365(dv)
375: 361(fvec3) VectorShuffle 374 373 3 4 2 377: 363(fvec3) VectorShuffle 376 375 3 4 2
Store 363(dv) 375 Store 365(dv) 377
376: 130(ivec3) Load 289(u64v) 378: 132(ivec3) Load 291(u64v)
377: 361(fvec3) Bitcast 376 379: 363(fvec3) Bitcast 378
Store 363(dv) 377 Store 365(dv) 379
381: 14(int) Bitcast 380 383: 18(int) Bitcast 382
Store 279(i64) 381 Store 281(i64) 383
383: 14(int) Load 279(i64) 385: 18(int) Load 281(i64)
384: 72(ivec2) Bitcast 383 386: 74(ivec2) Bitcast 385
Store 382(iv) 384 Store 384(iv) 386
386: 36(int) Bitcast 385 388: 14(int) Bitcast 387
Store 291(u64) 386 Store 293(u64) 388
388: 36(int) Load 291(u64) 390: 14(int) Load 293(u64)
389: 79(ivec2) Bitcast 388 391: 81(ivec2) Bitcast 390
Store 387(uv) 389 Store 389(uv) 391
392: 130(ivec3) Load 289(u64v) 394: 132(ivec3) Load 291(u64v)
393: 36(int) Load 291(u64) 395: 14(int) Load 293(u64)
394: 130(ivec3) CompositeConstruct 393 393 393 396: 132(ivec3) CompositeConstruct 395 395 395
395: 358(bvec3) ULessThan 392 394 397: 360(bvec3) ULessThan 394 396
Store 391(bv) 395 Store 393(bv) 397
396: 50(ivec2) Load 276(i64v) 398: 52(ivec2) Load 278(i64v)
397: 14(int) Load 279(i64) 399: 18(int) Load 281(i64)
398: 50(ivec2) CompositeConstruct 397 397 400: 52(ivec2) CompositeConstruct 399 399
399: 54(bvec2) SLessThan 396 398 401: 56(bvec2) SLessThan 398 400
400: 358(bvec3) Load 391(bv) 402: 360(bvec3) Load 393(bv)
401: 358(bvec3) VectorShuffle 400 399 3 4 2 403: 360(bvec3) VectorShuffle 402 401 3 4 2
Store 391(bv) 401 Store 393(bv) 403
402: 130(ivec3) Load 289(u64v) 404: 132(ivec3) Load 291(u64v)
403: 36(int) Load 291(u64) 405: 14(int) Load 293(u64)
404: 130(ivec3) CompositeConstruct 403 403 403 406: 132(ivec3) CompositeConstruct 405 405 405
405: 358(bvec3) ULessThanEqual 402 404 407: 360(bvec3) ULessThanEqual 404 406
Store 391(bv) 405 Store 393(bv) 407
406: 50(ivec2) Load 276(i64v) 408: 52(ivec2) Load 278(i64v)
407: 14(int) Load 279(i64) 409: 18(int) Load 281(i64)
408: 50(ivec2) CompositeConstruct 407 407 410: 52(ivec2) CompositeConstruct 409 409
409: 54(bvec2) SLessThanEqual 406 408 411: 56(bvec2) SLessThanEqual 408 410
410: 358(bvec3) Load 391(bv) 412: 360(bvec3) Load 393(bv)
411: 358(bvec3) VectorShuffle 410 409 3 4 2 413: 360(bvec3) VectorShuffle 412 411 3 4 2
Store 391(bv) 411 Store 393(bv) 413
412: 130(ivec3) Load 289(u64v) 414: 132(ivec3) Load 291(u64v)
413: 36(int) Load 291(u64) 415: 14(int) Load 293(u64)
414: 130(ivec3) CompositeConstruct 413 413 413 416: 132(ivec3) CompositeConstruct 415 415 415
415: 358(bvec3) UGreaterThan 412 414 417: 360(bvec3) UGreaterThan 414 416
Store 391(bv) 415 Store 393(bv) 417
416: 50(ivec2) Load 276(i64v) 418: 52(ivec2) Load 278(i64v)
417: 14(int) Load 279(i64) 419: 18(int) Load 281(i64)
418: 50(ivec2) CompositeConstruct 417 417 420: 52(ivec2) CompositeConstruct 419 419
419: 54(bvec2) SGreaterThan 416 418 421: 56(bvec2) SGreaterThan 418 420
420: 358(bvec3) Load 391(bv) 422: 360(bvec3) Load 393(bv)
421: 358(bvec3) VectorShuffle 420 419 3 4 2 423: 360(bvec3) VectorShuffle 422 421 3 4 2
Store 391(bv) 421 Store 393(bv) 423
422: 130(ivec3) Load 289(u64v) 424: 132(ivec3) Load 291(u64v)
423: 36(int) Load 291(u64) 425: 14(int) Load 293(u64)
424: 130(ivec3) CompositeConstruct 423 423 423 426: 132(ivec3) CompositeConstruct 425 425 425
425: 358(bvec3) UGreaterThanEqual 422 424 427: 360(bvec3) UGreaterThanEqual 424 426
Store 391(bv) 425 Store 393(bv) 427
426: 50(ivec2) Load 276(i64v) 428: 52(ivec2) Load 278(i64v)
427: 14(int) Load 279(i64) 429: 18(int) Load 281(i64)
428: 50(ivec2) CompositeConstruct 427 427 430: 52(ivec2) CompositeConstruct 429 429
429: 54(bvec2) SGreaterThanEqual 426 428 431: 56(bvec2) SGreaterThanEqual 428 430
430: 358(bvec3) Load 391(bv) 432: 360(bvec3) Load 393(bv)
431: 358(bvec3) VectorShuffle 430 429 3 4 2 433: 360(bvec3) VectorShuffle 432 431 3 4 2
Store 391(bv) 431 Store 393(bv) 433
432: 130(ivec3) Load 289(u64v) 434: 132(ivec3) Load 291(u64v)
433: 36(int) Load 291(u64) 435: 14(int) Load 293(u64)
434: 130(ivec3) CompositeConstruct 433 433 433 436: 132(ivec3) CompositeConstruct 435 435 435
435: 358(bvec3) IEqual 432 434 437: 360(bvec3) IEqual 434 436
Store 391(bv) 435 Store 393(bv) 437
436: 50(ivec2) Load 276(i64v) 438: 52(ivec2) Load 278(i64v)
437: 14(int) Load 279(i64) 439: 18(int) Load 281(i64)
438: 50(ivec2) CompositeConstruct 437 437 440: 52(ivec2) CompositeConstruct 439 439
439: 54(bvec2) IEqual 436 438 441: 56(bvec2) IEqual 438 440
440: 358(bvec3) Load 391(bv) 442: 360(bvec3) Load 393(bv)
441: 358(bvec3) VectorShuffle 440 439 3 4 2 443: 360(bvec3) VectorShuffle 442 441 3 4 2
Store 391(bv) 441 Store 393(bv) 443
442: 130(ivec3) Load 289(u64v) 444: 132(ivec3) Load 291(u64v)
443: 36(int) Load 291(u64) 445: 14(int) Load 293(u64)
444: 130(ivec3) CompositeConstruct 443 443 443 446: 132(ivec3) CompositeConstruct 445 445 445
445: 358(bvec3) INotEqual 442 444 447: 360(bvec3) INotEqual 444 446
Store 391(bv) 445 Store 393(bv) 447
446: 50(ivec2) Load 276(i64v) 448: 52(ivec2) Load 278(i64v)
447: 14(int) Load 279(i64) 449: 18(int) Load 281(i64)
448: 50(ivec2) CompositeConstruct 447 447 450: 52(ivec2) CompositeConstruct 449 449
449: 54(bvec2) INotEqual 446 448 451: 56(bvec2) INotEqual 448 450
450: 358(bvec3) Load 391(bv) 452: 360(bvec3) Load 393(bv)
451: 358(bvec3) VectorShuffle 450 449 3 4 2 453: 360(bvec3) VectorShuffle 452 451 3 4 2
Store 391(bv) 451 Store 393(bv) 453
Return Return
FunctionEnd FunctionEnd
...@@ -7,12 +7,12 @@ Linked fragment stage: ...@@ -7,12 +7,12 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 207 // Id's are bound by 213
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 15 68 77 200 202 204 EntryPoint Fragment 4 "main" 15 68 77 206 208 210
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source ESSL 310 Source ESSL 310
Name 4 "main" Name 4 "main"
...@@ -33,10 +33,10 @@ Linked fragment stage: ...@@ -33,10 +33,10 @@ Linked fragment stage:
Name 154 "mask2" Name 154 "mask2"
Name 156 "mask3" Name 156 "mask3"
Name 160 "mask4" Name 160 "mask4"
Name 200 "f" Name 206 "f"
Name 202 "v" Name 208 "v"
Name 204 "i" Name 210 "i"
Name 206 "b" Name 212 "b"
Decorate 8(count) RelaxedPrecision Decorate 8(count) RelaxedPrecision
Decorate 12(u) RelaxedPrecision Decorate 12(u) RelaxedPrecision
Decorate 15(t) RelaxedPrecision Decorate 15(t) RelaxedPrecision
...@@ -138,11 +138,13 @@ Linked fragment stage: ...@@ -138,11 +138,13 @@ Linked fragment stage:
Decorate 196 RelaxedPrecision Decorate 196 RelaxedPrecision
Decorate 197 RelaxedPrecision Decorate 197 RelaxedPrecision
Decorate 198 RelaxedPrecision Decorate 198 RelaxedPrecision
Decorate 200(f) RelaxedPrecision Decorate 202 RelaxedPrecision
Decorate 202(v) RelaxedPrecision Decorate 203 RelaxedPrecision
Decorate 202(v) Flat Decorate 206(f) RelaxedPrecision
Decorate 204(i) RelaxedPrecision Decorate 208(v) RelaxedPrecision
Decorate 204(i) Flat Decorate 208(v) Flat
Decorate 210(i) RelaxedPrecision
Decorate 210(i) Flat
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
...@@ -193,14 +195,16 @@ Linked fragment stage: ...@@ -193,14 +195,16 @@ Linked fragment stage:
155: 10(int) Constant 2576 155: 10(int) Constant 2576
158: 6(int) Constant 4 158: 6(int) Constant 4
161: 10(int) Constant 2737 161: 10(int) Constant 2737
199: TypePointer Input 74(float) 199: 10(int) Constant 4294967295
200(f): 199(ptr) Variable Input 200: TypePointer Output 10(int)
201: TypePointer Input 66(ivec4) 205: TypePointer Input 74(float)
202(v): 201(ptr) Variable Input 206(f): 205(ptr) Variable Input
203: TypePointer Input 6(int) 207: TypePointer Input 66(ivec4)
204(i): 203(ptr) Variable Input 208(v): 207(ptr) Variable Input
205: TypePointer Private 22(bool) 209: TypePointer Input 6(int)
206(b): 205(ptr) Variable Private 210(i): 209(ptr) Variable Input
211: TypePointer Private 22(bool)
212(b): 211(ptr) Variable Private
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(count): 7(ptr) Variable Function 8(count): 7(ptr) Variable Function
...@@ -434,5 +438,10 @@ Linked fragment stage: ...@@ -434,5 +438,10 @@ Linked fragment stage:
197: 66(ivec4) Load 68(c) 197: 66(ivec4) Load 68(c)
198: 66(ivec4) IAdd 197 196 198: 66(ivec4) IAdd 197 196
Store 68(c) 198 Store 68(c) 198
201: 200(ptr) AccessChain 68(c) 103
202: 10(int) Load 201
203: 10(int) IAdd 202 199
204: 200(ptr) AccessChain 68(c) 103
Store 204 203
Return Return
FunctionEnd FunctionEnd
...@@ -259,3 +259,6 @@ const uint64_t i_to_u64 = uint64_t(si); ...@@ -259,3 +259,6 @@ const uint64_t i_to_u64 = uint64_t(si);
// uint <-> int64 // uint <-> int64
const uint i64_to_u = uint(si64); const uint i64_to_u = uint(si64);
const int64_t u_to_i64 = int64_t(su); const int64_t u_to_i64 = int64_t(su);
#define UINT64_MAX 18446744073709551615ul
uint64_t u64Max = UINT64_MAX;
...@@ -96,4 +96,7 @@ void main() ...@@ -96,4 +96,7 @@ void main()
count *= 7; // 341413380 count *= 7; // 341413380
c += uvec4(count); c += uvec4(count);
#define UINT_MAX 4294967295u
c.x += UINT_MAX;
} }
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "Overload400-PrecQual.1472" #define GLSLANG_REVISION "Overload400-PrecQual.1474"
#define GLSLANG_DATE "05-Sep-2016" #define GLSLANG_DATE "09-Sep-2016"
...@@ -224,7 +224,6 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) ...@@ -224,7 +224,6 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken)
ppToken->dval = atof(ppToken->name); ppToken->dval = atof(ppToken->name);
break; break;
case PpAtomConstInt: case PpAtomConstInt:
case PpAtomConstUint:
if (len > 0 && tokenText[0] == '0') { if (len > 0 && tokenText[0] == '0') {
if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X'))
ppToken->ival = strtol(ppToken->name, 0, 16); ppToken->ival = strtol(ppToken->name, 0, 16);
...@@ -233,8 +232,16 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) ...@@ -233,8 +232,16 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken)
} else } else
ppToken->ival = atoi(ppToken->name); ppToken->ival = atoi(ppToken->name);
break; break;
case PpAtomConstUint:
if (len > 0 && tokenText[0] == '0') {
if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X'))
ppToken->ival = (int)strtoul(ppToken->name, 0, 16);
else
ppToken->ival = (int)strtoul(ppToken->name, 0, 8);
} else
ppToken->ival = (int)strtoul(ppToken->name, 0, 10);
break;
case PpAtomConstInt64: case PpAtomConstInt64:
case PpAtomConstUint64:
if (len > 0 && tokenText[0] == '0') { if (len > 0 && tokenText[0] == '0') {
if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X'))
ppToken->i64val = strtoll(ppToken->name, nullptr, 16); ppToken->i64val = strtoll(ppToken->name, nullptr, 16);
...@@ -243,6 +250,15 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) ...@@ -243,6 +250,15 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken)
} else } else
ppToken->i64val = atoll(ppToken->name); ppToken->i64val = atoll(ppToken->name);
break; break;
case PpAtomConstUint64:
if (len > 0 && tokenText[0] == '0') {
if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X'))
ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 16);
else
ppToken->i64val = (long long)strtoull(ppToken->name, nullptr, 8);
} else
ppToken->i64val = (long long)strtoull(ppToken->name, 0, 10);
break;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment