SPV: Create more access chains addressing a few swizzling issues.

- Fixes #1233
- Treats local bools like anything else
- more consistently deals with a dynamic component selection
This commit is contained in:
John Kessenich 2018-02-05 14:44:14 -07:00
parent 2651ccaec8
commit 5c3eed542d
8 changed files with 764 additions and 716 deletions

View file

@ -6,7 +6,7 @@ spv.types.frag
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 91 93 100 102 109 111 118 120 127 129 136 138 145 147 154 156 160
EntryPoint Fragment 4 "main" 96 98 105 107 114 116 123 125 132 134 141 143 150 152 159 161 165
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
@ -15,47 +15,47 @@ spv.types.frag
Name 12 "i_b"
Name 17 "b2"
Name 19 "u_b2"
Name 22 "i_b2"
Name 35 "b3"
Name 37 "u_b3"
Name 40 "i_b3"
Name 59 "b4"
Name 61 "u_b4"
Name 64 "i_b4"
Name 89 "i"
Name 91 "u_i"
Name 93 "i_i"
Name 98 "i2"
Name 100 "u_i2"
Name 102 "i_i2"
Name 107 "i3"
Name 109 "u_i3"
Name 111 "i_i3"
Name 116 "i4"
Name 118 "u_i4"
Name 120 "i_i4"
Name 125 "f"
Name 127 "u_f"
Name 129 "i_f"
Name 134 "f2"
Name 136 "u_f2"
Name 138 "i_f2"
Name 143 "f3"
Name 145 "u_f3"
Name 147 "i_f3"
Name 152 "f4"
Name 154 "u_f4"
Name 156 "i_f4"
Name 160 "gl_FragColor"
Decorate 91(u_i) Flat
Decorate 93(i_i) Flat
Decorate 100(u_i2) Flat
Decorate 102(i_i2) Flat
Decorate 109(u_i3) Flat
Decorate 111(i_i3) Flat
Decorate 118(u_i4) Flat
Decorate 120(i_i4) Flat
Decorate 160(gl_FragColor) Location 0
Name 24 "i_b2"
Name 38 "b3"
Name 40 "u_b3"
Name 43 "i_b3"
Name 63 "b4"
Name 65 "u_b4"
Name 68 "i_b4"
Name 94 "i"
Name 96 "u_i"
Name 98 "i_i"
Name 103 "i2"
Name 105 "u_i2"
Name 107 "i_i2"
Name 112 "i3"
Name 114 "u_i3"
Name 116 "i_i3"
Name 121 "i4"
Name 123 "u_i4"
Name 125 "i_i4"
Name 130 "f"
Name 132 "u_f"
Name 134 "i_f"
Name 139 "f2"
Name 141 "u_f2"
Name 143 "i_f2"
Name 148 "f3"
Name 150 "u_f3"
Name 152 "i_f3"
Name 157 "f4"
Name 159 "u_f4"
Name 161 "i_f4"
Name 165 "gl_FragColor"
Decorate 96(u_i) Flat
Decorate 98(i_i) Flat
Decorate 105(u_i2) Flat
Decorate 107(i_i2) Flat
Decorate 114(u_i3) Flat
Decorate 116(i_i3) Flat
Decorate 123(u_i4) Flat
Decorate 125(i_i4) Flat
Decorate 165(gl_FragColor) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeBool
@ -67,271 +67,271 @@ spv.types.frag
16: TypePointer Function 15(bvec2)
18: TypePointer Private 15(bvec2)
19(u_b2): 18(ptr) Variable Private
22(i_b2): 18(ptr) Variable Private
33: TypeVector 6(bool) 3
34: TypePointer Function 33(bvec3)
36: TypePointer Private 33(bvec3)
37(u_b3): 36(ptr) Variable Private
40(i_b3): 36(ptr) Variable Private
57: TypeVector 6(bool) 4
58: TypePointer Function 57(bvec4)
60: TypePointer Private 57(bvec4)
61(u_b4): 60(ptr) Variable Private
64(i_b4): 60(ptr) Variable Private
87: TypeInt 32 1
88: TypePointer Function 87(int)
90: TypePointer Input 87(int)
91(u_i): 90(ptr) Variable Input
93(i_i): 90(ptr) Variable Input
96: TypeVector 87(int) 2
97: TypePointer Function 96(ivec2)
99: TypePointer Input 96(ivec2)
100(u_i2): 99(ptr) Variable Input
102(i_i2): 99(ptr) Variable Input
105: TypeVector 87(int) 3
106: TypePointer Function 105(ivec3)
108: TypePointer Input 105(ivec3)
109(u_i3): 108(ptr) Variable Input
111(i_i3): 108(ptr) Variable Input
114: TypeVector 87(int) 4
115: TypePointer Function 114(ivec4)
117: TypePointer Input 114(ivec4)
118(u_i4): 117(ptr) Variable Input
120(i_i4): 117(ptr) Variable Input
123: TypeFloat 32
124: TypePointer Function 123(float)
126: TypePointer Input 123(float)
127(u_f): 126(ptr) Variable Input
129(i_f): 126(ptr) Variable Input
132: TypeVector 123(float) 2
133: TypePointer Function 132(fvec2)
135: TypePointer Input 132(fvec2)
136(u_f2): 135(ptr) Variable Input
138(i_f2): 135(ptr) Variable Input
141: TypeVector 123(float) 3
142: TypePointer Function 141(fvec3)
144: TypePointer Input 141(fvec3)
145(u_f3): 144(ptr) Variable Input
147(i_f3): 144(ptr) Variable Input
150: TypeVector 123(float) 4
151: TypePointer Function 150(fvec4)
153: TypePointer Input 150(fvec4)
154(u_f4): 153(ptr) Variable Input
156(i_f4): 153(ptr) Variable Input
159: TypePointer Output 150(fvec4)
160(gl_FragColor): 159(ptr) Variable Output
193: TypeInt 32 0
194: 193(int) Constant 0
198: 193(int) Constant 1
208: 193(int) Constant 2
221: 193(int) Constant 3
257: 123(float) Constant 1065353216
258: 150(fvec4) ConstantComposite 257 257 257 257
20: TypeInt 32 0
21: 20(int) Constant 0
24(i_b2): 18(ptr) Variable Private
28: 20(int) Constant 1
36: TypeVector 6(bool) 3
37: TypePointer Function 36(bvec3)
39: TypePointer Private 36(bvec3)
40(u_b3): 39(ptr) Variable Private
43(i_b3): 39(ptr) Variable Private
53: 20(int) Constant 2
61: TypeVector 6(bool) 4
62: TypePointer Function 61(bvec4)
64: TypePointer Private 61(bvec4)
65(u_b4): 64(ptr) Variable Private
68(i_b4): 64(ptr) Variable Private
84: 20(int) Constant 3
92: TypeInt 32 1
93: TypePointer Function 92(int)
95: TypePointer Input 92(int)
96(u_i): 95(ptr) Variable Input
98(i_i): 95(ptr) Variable Input
101: TypeVector 92(int) 2
102: TypePointer Function 101(ivec2)
104: TypePointer Input 101(ivec2)
105(u_i2): 104(ptr) Variable Input
107(i_i2): 104(ptr) Variable Input
110: TypeVector 92(int) 3
111: TypePointer Function 110(ivec3)
113: TypePointer Input 110(ivec3)
114(u_i3): 113(ptr) Variable Input
116(i_i3): 113(ptr) Variable Input
119: TypeVector 92(int) 4
120: TypePointer Function 119(ivec4)
122: TypePointer Input 119(ivec4)
123(u_i4): 122(ptr) Variable Input
125(i_i4): 122(ptr) Variable Input
128: TypeFloat 32
129: TypePointer Function 128(float)
131: TypePointer Input 128(float)
132(u_f): 131(ptr) Variable Input
134(i_f): 131(ptr) Variable Input
137: TypeVector 128(float) 2
138: TypePointer Function 137(fvec2)
140: TypePointer Input 137(fvec2)
141(u_f2): 140(ptr) Variable Input
143(i_f2): 140(ptr) Variable Input
146: TypeVector 128(float) 3
147: TypePointer Function 146(fvec3)
149: TypePointer Input 146(fvec3)
150(u_f3): 149(ptr) Variable Input
152(i_f3): 149(ptr) Variable Input
155: TypeVector 128(float) 4
156: TypePointer Function 155(fvec4)
158: TypePointer Input 155(fvec4)
159(u_f4): 158(ptr) Variable Input
161(i_f4): 158(ptr) Variable Input
164: TypePointer Output 155(fvec4)
165(gl_FragColor): 164(ptr) Variable Output
257: 128(float) Constant 1065353216
258: 155(fvec4) ConstantComposite 257 257 257 257
4(main): 2 Function None 3
5: Label
8(b): 7(ptr) Variable Function
17(b2): 16(ptr) Variable Function
35(b3): 34(ptr) Variable Function
59(b4): 58(ptr) Variable Function
89(i): 88(ptr) Variable Function
98(i2): 97(ptr) Variable Function
107(i3): 106(ptr) Variable Function
116(i4): 115(ptr) Variable Function
125(f): 124(ptr) Variable Function
134(f2): 133(ptr) Variable Function
143(f3): 142(ptr) Variable Function
152(f4): 151(ptr) Variable Function
161: 151(ptr) Variable Function
38(b3): 37(ptr) Variable Function
63(b4): 62(ptr) Variable Function
94(i): 93(ptr) Variable Function
103(i2): 102(ptr) Variable Function
112(i3): 111(ptr) Variable Function
121(i4): 120(ptr) Variable Function
130(f): 129(ptr) Variable Function
139(f2): 138(ptr) Variable Function
148(f3): 147(ptr) Variable Function
157(f4): 156(ptr) Variable Function
166: 156(ptr) Variable Function
11: 6(bool) Load 10(u_b)
13: 6(bool) Load 12(i_b)
14: 6(bool) LogicalAnd 11 13
Store 8(b) 14
20: 15(bvec2) Load 19(u_b2)
21: 6(bool) CompositeExtract 20 0
23: 15(bvec2) Load 22(i_b2)
24: 6(bool) CompositeExtract 23 0
25: 6(bool) LogicalAnd 21 24
26: 15(bvec2) Load 19(u_b2)
27: 6(bool) CompositeExtract 26 1
28: 6(bool) LogicalAnd 25 27
29: 15(bvec2) Load 22(i_b2)
30: 6(bool) CompositeExtract 29 1
31: 6(bool) LogicalAnd 28 30
32: 15(bvec2) CompositeConstruct 31 31
Store 17(b2) 32
38: 33(bvec3) Load 37(u_b3)
39: 6(bool) CompositeExtract 38 0
41: 33(bvec3) Load 40(i_b3)
42: 6(bool) CompositeExtract 41 0
43: 6(bool) LogicalAnd 39 42
44: 33(bvec3) Load 37(u_b3)
45: 6(bool) CompositeExtract 44 1
46: 6(bool) LogicalAnd 43 45
47: 33(bvec3) Load 40(i_b3)
48: 6(bool) CompositeExtract 47 1
22: 9(ptr) AccessChain 19(u_b2) 21
23: 6(bool) Load 22
25: 9(ptr) AccessChain 24(i_b2) 21
26: 6(bool) Load 25
27: 6(bool) LogicalAnd 23 26
29: 9(ptr) AccessChain 19(u_b2) 28
30: 6(bool) Load 29
31: 6(bool) LogicalAnd 27 30
32: 9(ptr) AccessChain 24(i_b2) 28
33: 6(bool) Load 32
34: 6(bool) LogicalAnd 31 33
35: 15(bvec2) CompositeConstruct 34 34
Store 17(b2) 35
41: 9(ptr) AccessChain 40(u_b3) 21
42: 6(bool) Load 41
44: 9(ptr) AccessChain 43(i_b3) 21
45: 6(bool) Load 44
46: 6(bool) LogicalAnd 42 45
47: 9(ptr) AccessChain 40(u_b3) 28
48: 6(bool) Load 47
49: 6(bool) LogicalAnd 46 48
50: 33(bvec3) Load 37(u_b3)
51: 6(bool) CompositeExtract 50 2
50: 9(ptr) AccessChain 43(i_b3) 28
51: 6(bool) Load 50
52: 6(bool) LogicalAnd 49 51
53: 33(bvec3) Load 40(i_b3)
54: 6(bool) CompositeExtract 53 2
55: 6(bool) LogicalAnd 52 54
56: 33(bvec3) CompositeConstruct 55 55 55
Store 35(b3) 56
62: 57(bvec4) Load 61(u_b4)
63: 6(bool) CompositeExtract 62 0
65: 57(bvec4) Load 64(i_b4)
66: 6(bool) CompositeExtract 65 0
67: 6(bool) LogicalAnd 63 66
68: 57(bvec4) Load 61(u_b4)
69: 6(bool) CompositeExtract 68 1
70: 6(bool) LogicalAnd 67 69
71: 57(bvec4) Load 64(i_b4)
72: 6(bool) CompositeExtract 71 1
73: 6(bool) LogicalAnd 70 72
74: 57(bvec4) Load 61(u_b4)
75: 6(bool) CompositeExtract 74 2
76: 6(bool) LogicalAnd 73 75
77: 57(bvec4) Load 64(i_b4)
78: 6(bool) CompositeExtract 77 2
79: 6(bool) LogicalAnd 76 78
80: 57(bvec4) Load 61(u_b4)
81: 6(bool) CompositeExtract 80 3
82: 6(bool) LogicalAnd 79 81
83: 57(bvec4) Load 64(i_b4)
84: 6(bool) CompositeExtract 83 3
85: 6(bool) LogicalAnd 82 84
86: 57(bvec4) CompositeConstruct 85 85 85 85
Store 59(b4) 86
92: 87(int) Load 91(u_i)
94: 87(int) Load 93(i_i)
95: 87(int) IAdd 92 94
Store 89(i) 95
101: 96(ivec2) Load 100(u_i2)
103: 96(ivec2) Load 102(i_i2)
104: 96(ivec2) IAdd 101 103
Store 98(i2) 104
110: 105(ivec3) Load 109(u_i3)
112: 105(ivec3) Load 111(i_i3)
113: 105(ivec3) IAdd 110 112
Store 107(i3) 113
119: 114(ivec4) Load 118(u_i4)
121: 114(ivec4) Load 120(i_i4)
122: 114(ivec4) IAdd 119 121
Store 116(i4) 122
128: 123(float) Load 127(u_f)
130: 123(float) Load 129(i_f)
131: 123(float) FAdd 128 130
Store 125(f) 131
137: 132(fvec2) Load 136(u_f2)
139: 132(fvec2) Load 138(i_f2)
140: 132(fvec2) FAdd 137 139
Store 134(f2) 140
146: 141(fvec3) Load 145(u_f3)
148: 141(fvec3) Load 147(i_f3)
149: 141(fvec3) FAdd 146 148
Store 143(f3) 149
155: 150(fvec4) Load 154(u_f4)
157: 150(fvec4) Load 156(i_f4)
158: 150(fvec4) FAdd 155 157
Store 152(f4) 158
162: 6(bool) Load 8(b)
163: 15(bvec2) Load 17(b2)
164: 6(bool) CompositeExtract 163 0
165: 6(bool) LogicalOr 162 164
166: 15(bvec2) Load 17(b2)
167: 6(bool) CompositeExtract 166 1
168: 6(bool) LogicalOr 165 167
169: 33(bvec3) Load 35(b3)
170: 6(bool) CompositeExtract 169 0
171: 6(bool) LogicalOr 168 170
172: 33(bvec3) Load 35(b3)
173: 6(bool) CompositeExtract 172 1
174: 6(bool) LogicalOr 171 173
175: 33(bvec3) Load 35(b3)
176: 6(bool) CompositeExtract 175 2
177: 6(bool) LogicalOr 174 176
178: 57(bvec4) Load 59(b4)
179: 6(bool) CompositeExtract 178 0
180: 6(bool) LogicalOr 177 179
181: 57(bvec4) Load 59(b4)
182: 6(bool) CompositeExtract 181 1
183: 6(bool) LogicalOr 180 182
184: 57(bvec4) Load 59(b4)
185: 6(bool) CompositeExtract 184 2
186: 6(bool) LogicalOr 183 185
187: 57(bvec4) Load 59(b4)
188: 6(bool) CompositeExtract 187 3
189: 6(bool) LogicalOr 186 188
SelectionMerge 191 None
BranchConditional 189 190 256
190: Label
192: 87(int) Load 89(i)
195: 88(ptr) AccessChain 98(i2) 194
196: 87(int) Load 195
197: 87(int) IAdd 192 196
199: 88(ptr) AccessChain 98(i2) 198
200: 87(int) Load 199
201: 87(int) IAdd 197 200
202: 88(ptr) AccessChain 107(i3) 194
203: 87(int) Load 202
204: 87(int) IAdd 201 203
205: 88(ptr) AccessChain 107(i3) 198
206: 87(int) Load 205
207: 87(int) IAdd 204 206
209: 88(ptr) AccessChain 107(i3) 208
210: 87(int) Load 209
211: 87(int) IAdd 207 210
212: 88(ptr) AccessChain 116(i4) 194
213: 87(int) Load 212
214: 87(int) IAdd 211 213
215: 88(ptr) AccessChain 116(i4) 198
216: 87(int) Load 215
217: 87(int) IAdd 214 216
218: 88(ptr) AccessChain 116(i4) 208
219: 87(int) Load 218
220: 87(int) IAdd 217 219
222: 88(ptr) AccessChain 116(i4) 221
223: 87(int) Load 222
224: 87(int) IAdd 220 223
225: 123(float) ConvertSToF 224
226: 123(float) Load 125(f)
227: 123(float) FAdd 225 226
228: 124(ptr) AccessChain 134(f2) 194
229: 123(float) Load 228
230: 123(float) FAdd 227 229
231: 124(ptr) AccessChain 134(f2) 198
232: 123(float) Load 231
233: 123(float) FAdd 230 232
234: 124(ptr) AccessChain 143(f3) 194
235: 123(float) Load 234
236: 123(float) FAdd 233 235
237: 124(ptr) AccessChain 143(f3) 198
238: 123(float) Load 237
239: 123(float) FAdd 236 238
240: 124(ptr) AccessChain 143(f3) 208
241: 123(float) Load 240
242: 123(float) FAdd 239 241
243: 124(ptr) AccessChain 152(f4) 194
244: 123(float) Load 243
245: 123(float) FAdd 242 244
246: 124(ptr) AccessChain 152(f4) 198
247: 123(float) Load 246
248: 123(float) FAdd 245 247
249: 124(ptr) AccessChain 152(f4) 208
250: 123(float) Load 249
251: 123(float) FAdd 248 250
252: 124(ptr) AccessChain 152(f4) 221
253: 123(float) Load 252
254: 123(float) FAdd 251 253
255: 150(fvec4) CompositeConstruct 254 254 254 254
Store 161 255
Branch 191
54: 9(ptr) AccessChain 40(u_b3) 53
55: 6(bool) Load 54
56: 6(bool) LogicalAnd 52 55
57: 9(ptr) AccessChain 43(i_b3) 53
58: 6(bool) Load 57
59: 6(bool) LogicalAnd 56 58
60: 36(bvec3) CompositeConstruct 59 59 59
Store 38(b3) 60
66: 9(ptr) AccessChain 65(u_b4) 21
67: 6(bool) Load 66
69: 9(ptr) AccessChain 68(i_b4) 21
70: 6(bool) Load 69
71: 6(bool) LogicalAnd 67 70
72: 9(ptr) AccessChain 65(u_b4) 28
73: 6(bool) Load 72
74: 6(bool) LogicalAnd 71 73
75: 9(ptr) AccessChain 68(i_b4) 28
76: 6(bool) Load 75
77: 6(bool) LogicalAnd 74 76
78: 9(ptr) AccessChain 65(u_b4) 53
79: 6(bool) Load 78
80: 6(bool) LogicalAnd 77 79
81: 9(ptr) AccessChain 68(i_b4) 53
82: 6(bool) Load 81
83: 6(bool) LogicalAnd 80 82
85: 9(ptr) AccessChain 65(u_b4) 84
86: 6(bool) Load 85
87: 6(bool) LogicalAnd 83 86
88: 9(ptr) AccessChain 68(i_b4) 84
89: 6(bool) Load 88
90: 6(bool) LogicalAnd 87 89
91: 61(bvec4) CompositeConstruct 90 90 90 90
Store 63(b4) 91
97: 92(int) Load 96(u_i)
99: 92(int) Load 98(i_i)
100: 92(int) IAdd 97 99
Store 94(i) 100
106: 101(ivec2) Load 105(u_i2)
108: 101(ivec2) Load 107(i_i2)
109: 101(ivec2) IAdd 106 108
Store 103(i2) 109
115: 110(ivec3) Load 114(u_i3)
117: 110(ivec3) Load 116(i_i3)
118: 110(ivec3) IAdd 115 117
Store 112(i3) 118
124: 119(ivec4) Load 123(u_i4)
126: 119(ivec4) Load 125(i_i4)
127: 119(ivec4) IAdd 124 126
Store 121(i4) 127
133: 128(float) Load 132(u_f)
135: 128(float) Load 134(i_f)
136: 128(float) FAdd 133 135
Store 130(f) 136
142: 137(fvec2) Load 141(u_f2)
144: 137(fvec2) Load 143(i_f2)
145: 137(fvec2) FAdd 142 144
Store 139(f2) 145
151: 146(fvec3) Load 150(u_f3)
153: 146(fvec3) Load 152(i_f3)
154: 146(fvec3) FAdd 151 153
Store 148(f3) 154
160: 155(fvec4) Load 159(u_f4)
162: 155(fvec4) Load 161(i_f4)
163: 155(fvec4) FAdd 160 162
Store 157(f4) 163
167: 6(bool) Load 8(b)
168: 7(ptr) AccessChain 17(b2) 21
169: 6(bool) Load 168
170: 6(bool) LogicalOr 167 169
171: 7(ptr) AccessChain 17(b2) 28
172: 6(bool) Load 171
173: 6(bool) LogicalOr 170 172
174: 7(ptr) AccessChain 38(b3) 21
175: 6(bool) Load 174
176: 6(bool) LogicalOr 173 175
177: 7(ptr) AccessChain 38(b3) 28
178: 6(bool) Load 177
179: 6(bool) LogicalOr 176 178
180: 7(ptr) AccessChain 38(b3) 53
181: 6(bool) Load 180
182: 6(bool) LogicalOr 179 181
183: 7(ptr) AccessChain 63(b4) 21
184: 6(bool) Load 183
185: 6(bool) LogicalOr 182 184
186: 7(ptr) AccessChain 63(b4) 28
187: 6(bool) Load 186
188: 6(bool) LogicalOr 185 187
189: 7(ptr) AccessChain 63(b4) 53
190: 6(bool) Load 189
191: 6(bool) LogicalOr 188 190
192: 7(ptr) AccessChain 63(b4) 84
193: 6(bool) Load 192
194: 6(bool) LogicalOr 191 193
SelectionMerge 196 None
BranchConditional 194 195 256
195: Label
197: 92(int) Load 94(i)
198: 93(ptr) AccessChain 103(i2) 21
199: 92(int) Load 198
200: 92(int) IAdd 197 199
201: 93(ptr) AccessChain 103(i2) 28
202: 92(int) Load 201
203: 92(int) IAdd 200 202
204: 93(ptr) AccessChain 112(i3) 21
205: 92(int) Load 204
206: 92(int) IAdd 203 205
207: 93(ptr) AccessChain 112(i3) 28
208: 92(int) Load 207
209: 92(int) IAdd 206 208
210: 93(ptr) AccessChain 112(i3) 53
211: 92(int) Load 210
212: 92(int) IAdd 209 211
213: 93(ptr) AccessChain 121(i4) 21
214: 92(int) Load 213
215: 92(int) IAdd 212 214
216: 93(ptr) AccessChain 121(i4) 28
217: 92(int) Load 216
218: 92(int) IAdd 215 217
219: 93(ptr) AccessChain 121(i4) 53
220: 92(int) Load 219
221: 92(int) IAdd 218 220
222: 93(ptr) AccessChain 121(i4) 84
223: 92(int) Load 222
224: 92(int) IAdd 221 223
225: 128(float) ConvertSToF 224
226: 128(float) Load 130(f)
227: 128(float) FAdd 225 226
228: 129(ptr) AccessChain 139(f2) 21
229: 128(float) Load 228
230: 128(float) FAdd 227 229
231: 129(ptr) AccessChain 139(f2) 28
232: 128(float) Load 231
233: 128(float) FAdd 230 232
234: 129(ptr) AccessChain 148(f3) 21
235: 128(float) Load 234
236: 128(float) FAdd 233 235
237: 129(ptr) AccessChain 148(f3) 28
238: 128(float) Load 237
239: 128(float) FAdd 236 238
240: 129(ptr) AccessChain 148(f3) 53
241: 128(float) Load 240
242: 128(float) FAdd 239 241
243: 129(ptr) AccessChain 157(f4) 21
244: 128(float) Load 243
245: 128(float) FAdd 242 244
246: 129(ptr) AccessChain 157(f4) 28
247: 128(float) Load 246
248: 128(float) FAdd 245 247
249: 129(ptr) AccessChain 157(f4) 53
250: 128(float) Load 249
251: 128(float) FAdd 248 250
252: 129(ptr) AccessChain 157(f4) 84
253: 128(float) Load 252
254: 128(float) FAdd 251 253
255: 155(fvec4) CompositeConstruct 254 254 254 254
Store 166 255
Branch 196
256: Label
Store 161 258
Branch 191
191: Label
259: 150(fvec4) Load 161
Store 160(gl_FragColor) 259
Store 166 258
Branch 196
196: Label
259: 155(fvec4) Load 166
Store 165(gl_FragColor) 259
Return
FunctionEnd