xref: /aosp_15_r20/external/skia/tests/sksl/realistic/GaussianBlur.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %sk_FragColor %vLocalCoord_Stage0
5               OpExecutionMode %main OriginUpperLeft
6               OpName %uniformBuffer "uniformBuffer"
7               OpMemberName %uniformBuffer 0 "sk_RTAdjust"
8               OpMemberName %uniformBuffer 1 "uIncrement_Stage1_c0"
9               OpMemberName %uniformBuffer 2 "uKernel_Stage1_c0"
10               OpMemberName %uniformBuffer 3 "umatrix_Stage1_c0_c0"
11               OpMemberName %uniformBuffer 4 "uborder_Stage1_c0_c0_c0"
12               OpMemberName %uniformBuffer 5 "usubset_Stage1_c0_c0_c0"
13               OpMemberName %uniformBuffer 6 "unorm_Stage1_c0_c0_c0"
14               OpName %sk_FragColor "sk_FragColor"
15               OpName %uTextureSampler_0_Stage1 "uTextureSampler_0_Stage1"
16               OpName %vLocalCoord_Stage0 "vLocalCoord_Stage0"
17               OpName %MatrixEffect_Stage1_c0_c0_h4h4f2 "MatrixEffect_Stage1_c0_c0_h4h4f2"
18               OpName %_1_inCoord "_1_inCoord"
19               OpName %_2_subsetCoord "_2_subsetCoord"
20               OpName %_3_clampedCoord "_3_clampedCoord"
21               OpName %_4_textureColor "_4_textureColor"
22               OpName %_5_snappedX "_5_snappedX"
23               OpName %main "main"
24               OpName %outputColor_Stage0 "outputColor_Stage0"
25               OpName %outputCoverage_Stage0 "outputCoverage_Stage0"
26               OpName %_6_output "_6_output"
27               OpName %_7_coord "_7_coord"
28               OpName %_8_coordSampled "_8_coordSampled"
29               OpName %output_Stage1 "output_Stage1"
30               OpDecorate %_arr_v4float_int_7 ArrayStride 16
31               OpMemberDecorate %uniformBuffer 0 Offset 0
32               OpMemberDecorate %uniformBuffer 1 Offset 16
33               OpMemberDecorate %uniformBuffer 1 RelaxedPrecision
34               OpMemberDecorate %uniformBuffer 2 Offset 32
35               OpMemberDecorate %uniformBuffer 2 RelaxedPrecision
36               OpMemberDecorate %uniformBuffer 3 Offset 144
37               OpMemberDecorate %uniformBuffer 3 ColMajor
38               OpMemberDecorate %uniformBuffer 3 MatrixStride 16
39               OpMemberDecorate %uniformBuffer 4 Offset 192
40               OpMemberDecorate %uniformBuffer 4 RelaxedPrecision
41               OpMemberDecorate %uniformBuffer 5 Offset 208
42               OpMemberDecorate %uniformBuffer 6 Offset 224
43               OpDecorate %uniformBuffer Block
44               OpDecorate %4 Binding 0
45               OpDecorate %4 DescriptorSet 0
46               OpDecorate %sk_FragColor RelaxedPrecision
47               OpDecorate %sk_FragColor Location 0
48               OpDecorate %sk_FragColor Index 0
49               OpDecorate %uTextureSampler_0_Stage1 RelaxedPrecision
50               OpDecorate %uTextureSampler_0_Stage1 Binding 0
51               OpDecorate %uTextureSampler_0_Stage1 DescriptorSet 0
52               OpDecorate %vLocalCoord_Stage0 Location 0
53               OpDecorate %_4_textureColor RelaxedPrecision
54               OpDecorate %60 RelaxedPrecision
55               OpDecorate %91 RelaxedPrecision
56               OpDecorate %92 RelaxedPrecision
57               OpDecorate %outputColor_Stage0 RelaxedPrecision
58               OpDecorate %outputCoverage_Stage0 RelaxedPrecision
59               OpDecorate %_6_output RelaxedPrecision
60               OpDecorate %107 RelaxedPrecision
61               OpDecorate %108 RelaxedPrecision
62               OpDecorate %117 RelaxedPrecision
63               OpDecorate %118 RelaxedPrecision
64               OpDecorate %119 RelaxedPrecision
65               OpDecorate %120 RelaxedPrecision
66               OpDecorate %122 RelaxedPrecision
67               OpDecorate %128 RelaxedPrecision
68               OpDecorate %129 RelaxedPrecision
69               OpDecorate %130 RelaxedPrecision
70               OpDecorate %131 RelaxedPrecision
71               OpDecorate %133 RelaxedPrecision
72               OpDecorate %139 RelaxedPrecision
73               OpDecorate %140 RelaxedPrecision
74               OpDecorate %141 RelaxedPrecision
75               OpDecorate %142 RelaxedPrecision
76               OpDecorate %144 RelaxedPrecision
77               OpDecorate %150 RelaxedPrecision
78               OpDecorate %151 RelaxedPrecision
79               OpDecorate %152 RelaxedPrecision
80               OpDecorate %153 RelaxedPrecision
81               OpDecorate %155 RelaxedPrecision
82               OpDecorate %161 RelaxedPrecision
83               OpDecorate %162 RelaxedPrecision
84               OpDecorate %163 RelaxedPrecision
85               OpDecorate %164 RelaxedPrecision
86               OpDecorate %166 RelaxedPrecision
87               OpDecorate %172 RelaxedPrecision
88               OpDecorate %173 RelaxedPrecision
89               OpDecorate %174 RelaxedPrecision
90               OpDecorate %175 RelaxedPrecision
91               OpDecorate %177 RelaxedPrecision
92               OpDecorate %183 RelaxedPrecision
93               OpDecorate %184 RelaxedPrecision
94               OpDecorate %185 RelaxedPrecision
95               OpDecorate %186 RelaxedPrecision
96               OpDecorate %188 RelaxedPrecision
97               OpDecorate %194 RelaxedPrecision
98               OpDecorate %195 RelaxedPrecision
99               OpDecorate %196 RelaxedPrecision
100               OpDecorate %197 RelaxedPrecision
101               OpDecorate %199 RelaxedPrecision
102               OpDecorate %205 RelaxedPrecision
103               OpDecorate %206 RelaxedPrecision
104               OpDecorate %207 RelaxedPrecision
105               OpDecorate %208 RelaxedPrecision
106               OpDecorate %210 RelaxedPrecision
107               OpDecorate %216 RelaxedPrecision
108               OpDecorate %217 RelaxedPrecision
109               OpDecorate %218 RelaxedPrecision
110               OpDecorate %219 RelaxedPrecision
111               OpDecorate %221 RelaxedPrecision
112               OpDecorate %227 RelaxedPrecision
113               OpDecorate %228 RelaxedPrecision
114               OpDecorate %229 RelaxedPrecision
115               OpDecorate %230 RelaxedPrecision
116               OpDecorate %232 RelaxedPrecision
117               OpDecorate %238 RelaxedPrecision
118               OpDecorate %239 RelaxedPrecision
119               OpDecorate %240 RelaxedPrecision
120               OpDecorate %241 RelaxedPrecision
121               OpDecorate %243 RelaxedPrecision
122               OpDecorate %249 RelaxedPrecision
123               OpDecorate %250 RelaxedPrecision
124               OpDecorate %251 RelaxedPrecision
125               OpDecorate %252 RelaxedPrecision
126               OpDecorate %254 RelaxedPrecision
127               OpDecorate %260 RelaxedPrecision
128               OpDecorate %261 RelaxedPrecision
129               OpDecorate %262 RelaxedPrecision
130               OpDecorate %263 RelaxedPrecision
131               OpDecorate %265 RelaxedPrecision
132               OpDecorate %271 RelaxedPrecision
133               OpDecorate %272 RelaxedPrecision
134               OpDecorate %273 RelaxedPrecision
135               OpDecorate %274 RelaxedPrecision
136               OpDecorate %276 RelaxedPrecision
137               OpDecorate %282 RelaxedPrecision
138               OpDecorate %283 RelaxedPrecision
139               OpDecorate %284 RelaxedPrecision
140               OpDecorate %285 RelaxedPrecision
141               OpDecorate %287 RelaxedPrecision
142               OpDecorate %293 RelaxedPrecision
143               OpDecorate %294 RelaxedPrecision
144               OpDecorate %295 RelaxedPrecision
145               OpDecorate %296 RelaxedPrecision
146               OpDecorate %298 RelaxedPrecision
147               OpDecorate %304 RelaxedPrecision
148               OpDecorate %305 RelaxedPrecision
149               OpDecorate %306 RelaxedPrecision
150               OpDecorate %307 RelaxedPrecision
151               OpDecorate %309 RelaxedPrecision
152               OpDecorate %315 RelaxedPrecision
153               OpDecorate %316 RelaxedPrecision
154               OpDecorate %317 RelaxedPrecision
155               OpDecorate %318 RelaxedPrecision
156               OpDecorate %320 RelaxedPrecision
157               OpDecorate %326 RelaxedPrecision
158               OpDecorate %327 RelaxedPrecision
159               OpDecorate %328 RelaxedPrecision
160               OpDecorate %329 RelaxedPrecision
161               OpDecorate %331 RelaxedPrecision
162               OpDecorate %337 RelaxedPrecision
163               OpDecorate %338 RelaxedPrecision
164               OpDecorate %339 RelaxedPrecision
165               OpDecorate %340 RelaxedPrecision
166               OpDecorate %342 RelaxedPrecision
167               OpDecorate %348 RelaxedPrecision
168               OpDecorate %349 RelaxedPrecision
169               OpDecorate %350 RelaxedPrecision
170               OpDecorate %351 RelaxedPrecision
171               OpDecorate %353 RelaxedPrecision
172               OpDecorate %359 RelaxedPrecision
173               OpDecorate %360 RelaxedPrecision
174               OpDecorate %361 RelaxedPrecision
175               OpDecorate %362 RelaxedPrecision
176               OpDecorate %364 RelaxedPrecision
177               OpDecorate %370 RelaxedPrecision
178               OpDecorate %371 RelaxedPrecision
179               OpDecorate %372 RelaxedPrecision
180               OpDecorate %373 RelaxedPrecision
181               OpDecorate %375 RelaxedPrecision
182               OpDecorate %381 RelaxedPrecision
183               OpDecorate %382 RelaxedPrecision
184               OpDecorate %383 RelaxedPrecision
185               OpDecorate %384 RelaxedPrecision
186               OpDecorate %386 RelaxedPrecision
187               OpDecorate %388 RelaxedPrecision
188               OpDecorate %output_Stage1 RelaxedPrecision
189               OpDecorate %390 RelaxedPrecision
190      %float = OpTypeFloat 32
191    %v4float = OpTypeVector %float 4
192    %v2float = OpTypeVector %float 2
193        %int = OpTypeInt 32 1
194      %int_7 = OpConstant %int 7
195%_arr_v4float_int_7 = OpTypeArray %v4float %int_7
196    %v3float = OpTypeVector %float 3
197%mat3v3float = OpTypeMatrix %v3float 3
198%uniformBuffer = OpTypeStruct %v4float %v2float %_arr_v4float_int_7 %mat3v3float %v4float %v4float %v4float
199%_ptr_Uniform_uniformBuffer = OpTypePointer Uniform %uniformBuffer
200          %4 = OpVariable %_ptr_Uniform_uniformBuffer Uniform
201%_ptr_Output_v4float = OpTypePointer Output %v4float
202%sk_FragColor = OpVariable %_ptr_Output_v4float Output
203         %18 = OpTypeImage %float 2D 0 0 0 1 Unknown
204         %19 = OpTypeSampledImage %18
205%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
206%uTextureSampler_0_Stage1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
207%_ptr_Input_v2float = OpTypePointer Input %v2float
208%vLocalCoord_Stage0 = OpVariable %_ptr_Input_v2float Input
209%_ptr_Function_v4float = OpTypePointer Function %v4float
210%_ptr_Function_v2float = OpTypePointer Function %v2float
211         %25 = OpTypeFunction %v4float %_ptr_Function_v4float %_ptr_Function_v2float
212      %int_3 = OpConstant %int 3
213%_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float
214    %float_1 = OpConstant %float 1
215      %int_6 = OpConstant %int 6
216%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
217%_ptr_Function_float = OpTypePointer Function %float
218      %int_0 = OpConstant %int 0
219      %int_1 = OpConstant %int 1
220%float_0_00100000005 = OpConstant %float 0.00100000005
221  %float_0_5 = OpConstant %float 0.5
222       %bool = OpTypeBool
223       %true = OpConstantTrue %bool
224      %int_5 = OpConstant %int 5
225      %int_4 = OpConstant %int 4
226       %void = OpTypeVoid
227         %94 = OpTypeFunction %void
228         %98 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
229    %float_0 = OpConstant %float 0
230        %101 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
231   %float_12 = OpConstant %float 12
232%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
233        %111 = OpConstantComposite %v2float %float_0 %float_0
234      %int_2 = OpConstant %int 2
235%MatrixEffect_Stage1_c0_c0_h4h4f2 = OpFunction %v4float None %25
236         %26 = OpFunctionParameter %_ptr_Function_v4float
237         %27 = OpFunctionParameter %_ptr_Function_v2float
238         %28 = OpLabel
239 %_1_inCoord = OpVariable %_ptr_Function_v2float Function
240%_2_subsetCoord = OpVariable %_ptr_Function_v2float Function
241%_3_clampedCoord = OpVariable %_ptr_Function_v2float Function
242%_4_textureColor = OpVariable %_ptr_Function_v4float Function
243%_5_snappedX = OpVariable %_ptr_Function_float Function
244         %31 = OpAccessChain %_ptr_Uniform_mat3v3float %4 %int_3
245         %33 = OpLoad %mat3v3float %31
246         %34 = OpLoad %v2float %27
247         %35 = OpCompositeExtract %float %34 0
248         %36 = OpCompositeExtract %float %34 1
249         %38 = OpCompositeConstruct %v3float %35 %36 %float_1
250         %39 = OpMatrixTimesVector %v3float %33 %38
251         %40 = OpVectorShuffle %v2float %39 %39 0 1
252               OpStore %_1_inCoord %40
253         %42 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
254         %44 = OpLoad %v4float %42
255         %45 = OpVectorShuffle %v2float %44 %44 0 1
256         %46 = OpFMul %v2float %40 %45
257               OpStore %_1_inCoord %46
258         %48 = OpCompositeExtract %float %46 0
259         %49 = OpAccessChain %_ptr_Function_float %_2_subsetCoord %int_0
260               OpStore %49 %48
261         %52 = OpLoad %v2float %_1_inCoord
262         %53 = OpCompositeExtract %float %52 1
263         %54 = OpAccessChain %_ptr_Function_float %_2_subsetCoord %int_1
264               OpStore %54 %53
265         %57 = OpLoad %v2float %_2_subsetCoord
266               OpStore %_3_clampedCoord %57
267         %60 = OpLoad %19 %uTextureSampler_0_Stage1
268         %61 = OpAccessChain %_ptr_Uniform_v4float %4 %int_6
269         %62 = OpLoad %v4float %61
270         %63 = OpVectorShuffle %v2float %62 %62 2 3
271         %64 = OpFMul %v2float %57 %63
272         %59 = OpImageSampleImplicitLod %v4float %60 %64
273               OpStore %_4_textureColor %59
274         %67 = OpLoad %v2float %_1_inCoord
275         %68 = OpCompositeExtract %float %67 0
276         %70 = OpFAdd %float %68 %float_0_00100000005
277         %66 = OpExtInst %float %1 Floor %70
278         %72 = OpFAdd %float %66 %float_0_5
279               OpStore %_5_snappedX %72
280         %76 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
281         %77 = OpLoad %v4float %76
282         %78 = OpCompositeExtract %float %77 0
283         %79 = OpFOrdLessThan %bool %72 %78
284               OpSelectionMerge %81 None
285               OpBranchConditional %79 %81 %80
286         %80 = OpLabel
287         %82 = OpAccessChain %_ptr_Uniform_v4float %4 %int_5
288         %83 = OpLoad %v4float %82
289         %84 = OpCompositeExtract %float %83 2
290         %85 = OpFOrdGreaterThan %bool %72 %84
291               OpBranch %81
292         %81 = OpLabel
293         %86 = OpPhi %bool %true %28 %85 %80
294               OpSelectionMerge %88 None
295               OpBranchConditional %86 %87 %88
296         %87 = OpLabel
297         %90 = OpAccessChain %_ptr_Uniform_v4float %4 %int_4
298         %91 = OpLoad %v4float %90
299               OpStore %_4_textureColor %91
300               OpBranch %88
301         %88 = OpLabel
302         %92 = OpLoad %v4float %_4_textureColor
303               OpReturnValue %92
304               OpFunctionEnd
305       %main = OpFunction %void None %94
306         %95 = OpLabel
307%outputColor_Stage0 = OpVariable %_ptr_Function_v4float Function
308%outputCoverage_Stage0 = OpVariable %_ptr_Function_v4float Function
309  %_6_output = OpVariable %_ptr_Function_v4float Function
310   %_7_coord = OpVariable %_ptr_Function_v2float Function
311%_8_coordSampled = OpVariable %_ptr_Function_v2float Function
312        %112 = OpVariable %_ptr_Function_v4float Function
313        %113 = OpVariable %_ptr_Function_v2float Function
314        %124 = OpVariable %_ptr_Function_v4float Function
315        %125 = OpVariable %_ptr_Function_v2float Function
316        %135 = OpVariable %_ptr_Function_v4float Function
317        %136 = OpVariable %_ptr_Function_v2float Function
318        %146 = OpVariable %_ptr_Function_v4float Function
319        %147 = OpVariable %_ptr_Function_v2float Function
320        %157 = OpVariable %_ptr_Function_v4float Function
321        %158 = OpVariable %_ptr_Function_v2float Function
322        %168 = OpVariable %_ptr_Function_v4float Function
323        %169 = OpVariable %_ptr_Function_v2float Function
324        %179 = OpVariable %_ptr_Function_v4float Function
325        %180 = OpVariable %_ptr_Function_v2float Function
326        %190 = OpVariable %_ptr_Function_v4float Function
327        %191 = OpVariable %_ptr_Function_v2float Function
328        %201 = OpVariable %_ptr_Function_v4float Function
329        %202 = OpVariable %_ptr_Function_v2float Function
330        %212 = OpVariable %_ptr_Function_v4float Function
331        %213 = OpVariable %_ptr_Function_v2float Function
332        %223 = OpVariable %_ptr_Function_v4float Function
333        %224 = OpVariable %_ptr_Function_v2float Function
334        %234 = OpVariable %_ptr_Function_v4float Function
335        %235 = OpVariable %_ptr_Function_v2float Function
336        %245 = OpVariable %_ptr_Function_v4float Function
337        %246 = OpVariable %_ptr_Function_v2float Function
338        %256 = OpVariable %_ptr_Function_v4float Function
339        %257 = OpVariable %_ptr_Function_v2float Function
340        %267 = OpVariable %_ptr_Function_v4float Function
341        %268 = OpVariable %_ptr_Function_v2float Function
342        %278 = OpVariable %_ptr_Function_v4float Function
343        %279 = OpVariable %_ptr_Function_v2float Function
344        %289 = OpVariable %_ptr_Function_v4float Function
345        %290 = OpVariable %_ptr_Function_v2float Function
346        %300 = OpVariable %_ptr_Function_v4float Function
347        %301 = OpVariable %_ptr_Function_v2float Function
348        %311 = OpVariable %_ptr_Function_v4float Function
349        %312 = OpVariable %_ptr_Function_v2float Function
350        %322 = OpVariable %_ptr_Function_v4float Function
351        %323 = OpVariable %_ptr_Function_v2float Function
352        %333 = OpVariable %_ptr_Function_v4float Function
353        %334 = OpVariable %_ptr_Function_v2float Function
354        %344 = OpVariable %_ptr_Function_v4float Function
355        %345 = OpVariable %_ptr_Function_v2float Function
356        %355 = OpVariable %_ptr_Function_v4float Function
357        %356 = OpVariable %_ptr_Function_v2float Function
358        %366 = OpVariable %_ptr_Function_v4float Function
359        %367 = OpVariable %_ptr_Function_v2float Function
360        %377 = OpVariable %_ptr_Function_v4float Function
361        %378 = OpVariable %_ptr_Function_v2float Function
362%output_Stage1 = OpVariable %_ptr_Function_v4float Function
363               OpStore %outputColor_Stage0 %98
364               OpStore %outputCoverage_Stage0 %98
365               OpStore %_6_output %101
366        %103 = OpLoad %v2float %vLocalCoord_Stage0
367        %105 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
368        %107 = OpLoad %v2float %105
369        %108 = OpVectorTimesScalar %v2float %107 %float_12
370        %109 = OpFSub %v2float %103 %108
371               OpStore %_7_coord %109
372               OpStore %_8_coordSampled %111
373               OpStore %_8_coordSampled %109
374               OpStore %112 %98
375               OpStore %113 %109
376        %114 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %112 %113
377        %116 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
378        %117 = OpLoad %v4float %116
379        %118 = OpCompositeExtract %float %117 0
380        %119 = OpVectorTimesScalar %v4float %114 %118
381        %120 = OpFAdd %v4float %101 %119
382               OpStore %_6_output %120
383        %121 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
384        %122 = OpLoad %v2float %121
385        %123 = OpFAdd %v2float %109 %122
386               OpStore %_7_coord %123
387               OpStore %_8_coordSampled %123
388               OpStore %124 %98
389               OpStore %125 %123
390        %126 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %124 %125
391        %127 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
392        %128 = OpLoad %v4float %127
393        %129 = OpCompositeExtract %float %128 1
394        %130 = OpVectorTimesScalar %v4float %126 %129
395        %131 = OpFAdd %v4float %120 %130
396               OpStore %_6_output %131
397        %132 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
398        %133 = OpLoad %v2float %132
399        %134 = OpFAdd %v2float %123 %133
400               OpStore %_7_coord %134
401               OpStore %_8_coordSampled %134
402               OpStore %135 %98
403               OpStore %136 %134
404        %137 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %135 %136
405        %138 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
406        %139 = OpLoad %v4float %138
407        %140 = OpCompositeExtract %float %139 2
408        %141 = OpVectorTimesScalar %v4float %137 %140
409        %142 = OpFAdd %v4float %131 %141
410               OpStore %_6_output %142
411        %143 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
412        %144 = OpLoad %v2float %143
413        %145 = OpFAdd %v2float %134 %144
414               OpStore %_7_coord %145
415               OpStore %_8_coordSampled %145
416               OpStore %146 %98
417               OpStore %147 %145
418        %148 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %146 %147
419        %149 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_0
420        %150 = OpLoad %v4float %149
421        %151 = OpCompositeExtract %float %150 3
422        %152 = OpVectorTimesScalar %v4float %148 %151
423        %153 = OpFAdd %v4float %142 %152
424               OpStore %_6_output %153
425        %154 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
426        %155 = OpLoad %v2float %154
427        %156 = OpFAdd %v2float %145 %155
428               OpStore %_7_coord %156
429               OpStore %_8_coordSampled %156
430               OpStore %157 %98
431               OpStore %158 %156
432        %159 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %157 %158
433        %160 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
434        %161 = OpLoad %v4float %160
435        %162 = OpCompositeExtract %float %161 0
436        %163 = OpVectorTimesScalar %v4float %159 %162
437        %164 = OpFAdd %v4float %153 %163
438               OpStore %_6_output %164
439        %165 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
440        %166 = OpLoad %v2float %165
441        %167 = OpFAdd %v2float %156 %166
442               OpStore %_7_coord %167
443               OpStore %_8_coordSampled %167
444               OpStore %168 %98
445               OpStore %169 %167
446        %170 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %168 %169
447        %171 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
448        %172 = OpLoad %v4float %171
449        %173 = OpCompositeExtract %float %172 1
450        %174 = OpVectorTimesScalar %v4float %170 %173
451        %175 = OpFAdd %v4float %164 %174
452               OpStore %_6_output %175
453        %176 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
454        %177 = OpLoad %v2float %176
455        %178 = OpFAdd %v2float %167 %177
456               OpStore %_7_coord %178
457               OpStore %_8_coordSampled %178
458               OpStore %179 %98
459               OpStore %180 %178
460        %181 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %179 %180
461        %182 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
462        %183 = OpLoad %v4float %182
463        %184 = OpCompositeExtract %float %183 2
464        %185 = OpVectorTimesScalar %v4float %181 %184
465        %186 = OpFAdd %v4float %175 %185
466               OpStore %_6_output %186
467        %187 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
468        %188 = OpLoad %v2float %187
469        %189 = OpFAdd %v2float %178 %188
470               OpStore %_7_coord %189
471               OpStore %_8_coordSampled %189
472               OpStore %190 %98
473               OpStore %191 %189
474        %192 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %190 %191
475        %193 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_1
476        %194 = OpLoad %v4float %193
477        %195 = OpCompositeExtract %float %194 3
478        %196 = OpVectorTimesScalar %v4float %192 %195
479        %197 = OpFAdd %v4float %186 %196
480               OpStore %_6_output %197
481        %198 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
482        %199 = OpLoad %v2float %198
483        %200 = OpFAdd %v2float %189 %199
484               OpStore %_7_coord %200
485               OpStore %_8_coordSampled %200
486               OpStore %201 %98
487               OpStore %202 %200
488        %203 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %201 %202
489        %204 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
490        %205 = OpLoad %v4float %204
491        %206 = OpCompositeExtract %float %205 0
492        %207 = OpVectorTimesScalar %v4float %203 %206
493        %208 = OpFAdd %v4float %197 %207
494               OpStore %_6_output %208
495        %209 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
496        %210 = OpLoad %v2float %209
497        %211 = OpFAdd %v2float %200 %210
498               OpStore %_7_coord %211
499               OpStore %_8_coordSampled %211
500               OpStore %212 %98
501               OpStore %213 %211
502        %214 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %212 %213
503        %215 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
504        %216 = OpLoad %v4float %215
505        %217 = OpCompositeExtract %float %216 1
506        %218 = OpVectorTimesScalar %v4float %214 %217
507        %219 = OpFAdd %v4float %208 %218
508               OpStore %_6_output %219
509        %220 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
510        %221 = OpLoad %v2float %220
511        %222 = OpFAdd %v2float %211 %221
512               OpStore %_7_coord %222
513               OpStore %_8_coordSampled %222
514               OpStore %223 %98
515               OpStore %224 %222
516        %225 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %223 %224
517        %226 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
518        %227 = OpLoad %v4float %226
519        %228 = OpCompositeExtract %float %227 2
520        %229 = OpVectorTimesScalar %v4float %225 %228
521        %230 = OpFAdd %v4float %219 %229
522               OpStore %_6_output %230
523        %231 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
524        %232 = OpLoad %v2float %231
525        %233 = OpFAdd %v2float %222 %232
526               OpStore %_7_coord %233
527               OpStore %_8_coordSampled %233
528               OpStore %234 %98
529               OpStore %235 %233
530        %236 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %234 %235
531        %237 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_2
532        %238 = OpLoad %v4float %237
533        %239 = OpCompositeExtract %float %238 3
534        %240 = OpVectorTimesScalar %v4float %236 %239
535        %241 = OpFAdd %v4float %230 %240
536               OpStore %_6_output %241
537        %242 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
538        %243 = OpLoad %v2float %242
539        %244 = OpFAdd %v2float %233 %243
540               OpStore %_7_coord %244
541               OpStore %_8_coordSampled %244
542               OpStore %245 %98
543               OpStore %246 %244
544        %247 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %245 %246
545        %248 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
546        %249 = OpLoad %v4float %248
547        %250 = OpCompositeExtract %float %249 0
548        %251 = OpVectorTimesScalar %v4float %247 %250
549        %252 = OpFAdd %v4float %241 %251
550               OpStore %_6_output %252
551        %253 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
552        %254 = OpLoad %v2float %253
553        %255 = OpFAdd %v2float %244 %254
554               OpStore %_7_coord %255
555               OpStore %_8_coordSampled %255
556               OpStore %256 %98
557               OpStore %257 %255
558        %258 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %256 %257
559        %259 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
560        %260 = OpLoad %v4float %259
561        %261 = OpCompositeExtract %float %260 1
562        %262 = OpVectorTimesScalar %v4float %258 %261
563        %263 = OpFAdd %v4float %252 %262
564               OpStore %_6_output %263
565        %264 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
566        %265 = OpLoad %v2float %264
567        %266 = OpFAdd %v2float %255 %265
568               OpStore %_7_coord %266
569               OpStore %_8_coordSampled %266
570               OpStore %267 %98
571               OpStore %268 %266
572        %269 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %267 %268
573        %270 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
574        %271 = OpLoad %v4float %270
575        %272 = OpCompositeExtract %float %271 2
576        %273 = OpVectorTimesScalar %v4float %269 %272
577        %274 = OpFAdd %v4float %263 %273
578               OpStore %_6_output %274
579        %275 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
580        %276 = OpLoad %v2float %275
581        %277 = OpFAdd %v2float %266 %276
582               OpStore %_7_coord %277
583               OpStore %_8_coordSampled %277
584               OpStore %278 %98
585               OpStore %279 %277
586        %280 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %278 %279
587        %281 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_3
588        %282 = OpLoad %v4float %281
589        %283 = OpCompositeExtract %float %282 3
590        %284 = OpVectorTimesScalar %v4float %280 %283
591        %285 = OpFAdd %v4float %274 %284
592               OpStore %_6_output %285
593        %286 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
594        %287 = OpLoad %v2float %286
595        %288 = OpFAdd %v2float %277 %287
596               OpStore %_7_coord %288
597               OpStore %_8_coordSampled %288
598               OpStore %289 %98
599               OpStore %290 %288
600        %291 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %289 %290
601        %292 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
602        %293 = OpLoad %v4float %292
603        %294 = OpCompositeExtract %float %293 0
604        %295 = OpVectorTimesScalar %v4float %291 %294
605        %296 = OpFAdd %v4float %285 %295
606               OpStore %_6_output %296
607        %297 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
608        %298 = OpLoad %v2float %297
609        %299 = OpFAdd %v2float %288 %298
610               OpStore %_7_coord %299
611               OpStore %_8_coordSampled %299
612               OpStore %300 %98
613               OpStore %301 %299
614        %302 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %300 %301
615        %303 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
616        %304 = OpLoad %v4float %303
617        %305 = OpCompositeExtract %float %304 1
618        %306 = OpVectorTimesScalar %v4float %302 %305
619        %307 = OpFAdd %v4float %296 %306
620               OpStore %_6_output %307
621        %308 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
622        %309 = OpLoad %v2float %308
623        %310 = OpFAdd %v2float %299 %309
624               OpStore %_7_coord %310
625               OpStore %_8_coordSampled %310
626               OpStore %311 %98
627               OpStore %312 %310
628        %313 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %311 %312
629        %314 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
630        %315 = OpLoad %v4float %314
631        %316 = OpCompositeExtract %float %315 2
632        %317 = OpVectorTimesScalar %v4float %313 %316
633        %318 = OpFAdd %v4float %307 %317
634               OpStore %_6_output %318
635        %319 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
636        %320 = OpLoad %v2float %319
637        %321 = OpFAdd %v2float %310 %320
638               OpStore %_7_coord %321
639               OpStore %_8_coordSampled %321
640               OpStore %322 %98
641               OpStore %323 %321
642        %324 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %322 %323
643        %325 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_4
644        %326 = OpLoad %v4float %325
645        %327 = OpCompositeExtract %float %326 3
646        %328 = OpVectorTimesScalar %v4float %324 %327
647        %329 = OpFAdd %v4float %318 %328
648               OpStore %_6_output %329
649        %330 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
650        %331 = OpLoad %v2float %330
651        %332 = OpFAdd %v2float %321 %331
652               OpStore %_7_coord %332
653               OpStore %_8_coordSampled %332
654               OpStore %333 %98
655               OpStore %334 %332
656        %335 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %333 %334
657        %336 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
658        %337 = OpLoad %v4float %336
659        %338 = OpCompositeExtract %float %337 0
660        %339 = OpVectorTimesScalar %v4float %335 %338
661        %340 = OpFAdd %v4float %329 %339
662               OpStore %_6_output %340
663        %341 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
664        %342 = OpLoad %v2float %341
665        %343 = OpFAdd %v2float %332 %342
666               OpStore %_7_coord %343
667               OpStore %_8_coordSampled %343
668               OpStore %344 %98
669               OpStore %345 %343
670        %346 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %344 %345
671        %347 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
672        %348 = OpLoad %v4float %347
673        %349 = OpCompositeExtract %float %348 1
674        %350 = OpVectorTimesScalar %v4float %346 %349
675        %351 = OpFAdd %v4float %340 %350
676               OpStore %_6_output %351
677        %352 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
678        %353 = OpLoad %v2float %352
679        %354 = OpFAdd %v2float %343 %353
680               OpStore %_7_coord %354
681               OpStore %_8_coordSampled %354
682               OpStore %355 %98
683               OpStore %356 %354
684        %357 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %355 %356
685        %358 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
686        %359 = OpLoad %v4float %358
687        %360 = OpCompositeExtract %float %359 2
688        %361 = OpVectorTimesScalar %v4float %357 %360
689        %362 = OpFAdd %v4float %351 %361
690               OpStore %_6_output %362
691        %363 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
692        %364 = OpLoad %v2float %363
693        %365 = OpFAdd %v2float %354 %364
694               OpStore %_7_coord %365
695               OpStore %_8_coordSampled %365
696               OpStore %366 %98
697               OpStore %367 %365
698        %368 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %366 %367
699        %369 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_5
700        %370 = OpLoad %v4float %369
701        %371 = OpCompositeExtract %float %370 3
702        %372 = OpVectorTimesScalar %v4float %368 %371
703        %373 = OpFAdd %v4float %362 %372
704               OpStore %_6_output %373
705        %374 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
706        %375 = OpLoad %v2float %374
707        %376 = OpFAdd %v2float %365 %375
708               OpStore %_7_coord %376
709               OpStore %_8_coordSampled %376
710               OpStore %377 %98
711               OpStore %378 %376
712        %379 = OpFunctionCall %v4float %MatrixEffect_Stage1_c0_c0_h4h4f2 %377 %378
713        %380 = OpAccessChain %_ptr_Uniform_v4float %4 %int_2 %int_6
714        %381 = OpLoad %v4float %380
715        %382 = OpCompositeExtract %float %381 0
716        %383 = OpVectorTimesScalar %v4float %379 %382
717        %384 = OpFAdd %v4float %373 %383
718               OpStore %_6_output %384
719        %385 = OpAccessChain %_ptr_Uniform_v2float %4 %int_1
720        %386 = OpLoad %v2float %385
721        %387 = OpFAdd %v2float %376 %386
722               OpStore %_7_coord %387
723        %388 = OpFMul %v4float %384 %98
724               OpStore %_6_output %388
725               OpStore %output_Stage1 %388
726        %390 = OpFMul %v4float %388 %98
727               OpStore %sk_FragColor %390
728               OpReturn
729               OpFunctionEnd
730