1beb71f4bbf1fe87f2aefdd3e414c2b530a4dad5
[platform/upstream/glslang.git] / Test / baseResults / hlsl.array.flatten.frag.out
1 hlsl.array.flatten.frag
2 Shader version: 450
3 gl_FragCoord origin is upper left
4 0:? Sequence
5 0:17  Function Definition: TestFn1( ( temp 4-component vector of float)
6 0:17    Function Parameters: 
7 0:?     Sequence
8 0:18      Branch: Return with expression
9 0:18        texture ( temp 4-component vector of float)
10 0:18          Construct combined texture-sampler ( temp sampler1D)
11 0:?             'g_tex[1]' ( uniform texture1D)
12 0:?             'g_samp[1]' ( uniform sampler)
13 0:18          Constant:
14 0:18            0.200000
15 0:22  Function Definition: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
16 0:22    Function Parameters: 
17 0:22      'l_tex' ( in 3-element array of texture1D)
18 0:22      'l_samp' ( in 3-element array of sampler)
19 0:?     Sequence
20 0:23      Branch: Return with expression
21 0:23        texture ( temp 4-component vector of float)
22 0:23          Construct combined texture-sampler ( temp sampler1D)
23 0:23            direct index ( temp texture1D)
24 0:23              'l_tex' ( in 3-element array of texture1D)
25 0:23              Constant:
26 0:23                2 (const int)
27 0:23            direct index ( temp sampler)
28 0:23              'l_samp' ( in 3-element array of sampler)
29 0:23              Constant:
30 0:23                2 (const int)
31 0:23          Constant:
32 0:23            0.200000
33 0:26  Sequence
34 0:26    move second child to first child ( temp 5-element array of int)
35 0:26      'not_flattened_a' ( global 5-element array of int)
36 0:26      Constant:
37 0:26        1 (const int)
38 0:26        2 (const int)
39 0:26        3 (const int)
40 0:26        4 (const int)
41 0:26        5 (const int)
42 0:31  Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
43 0:31    Function Parameters: 
44 0:31      'ps_output' ( out structure{ temp 4-component vector of float color})
45 0:?     Sequence
46 0:33      Sequence
47 0:33        Sequence
48 0:33          move second child to first child ( temp sampler)
49 0:33            direct index ( temp sampler)
50 0:33              'local_sampler_array' ( temp 3-element array of sampler)
51 0:33              Constant:
52 0:33                0 (const int)
53 0:?             'g_samp[0]' ( uniform sampler)
54 0:33          move second child to first child ( temp sampler)
55 0:33            direct index ( temp sampler)
56 0:33              'local_sampler_array' ( temp 3-element array of sampler)
57 0:33              Constant:
58 0:33                1 (const int)
59 0:?             'g_samp[1]' ( uniform sampler)
60 0:33          move second child to first child ( temp sampler)
61 0:33            direct index ( temp sampler)
62 0:33              'local_sampler_array' ( temp 3-element array of sampler)
63 0:33              Constant:
64 0:33                2 (const int)
65 0:?             'g_samp[2]' ( uniform sampler)
66 0:34      Sequence
67 0:34        Sequence
68 0:34          move second child to first child ( temp texture1D)
69 0:34            direct index ( temp texture1D)
70 0:34              'local_texture_array' ( temp 3-element array of texture1D)
71 0:34              Constant:
72 0:34                0 (const int)
73 0:?             'g_tex[0]' ( uniform texture1D)
74 0:34          move second child to first child ( temp texture1D)
75 0:34            direct index ( temp texture1D)
76 0:34              'local_texture_array' ( temp 3-element array of texture1D)
77 0:34              Constant:
78 0:34                1 (const int)
79 0:?             'g_tex[1]' ( uniform texture1D)
80 0:34          move second child to first child ( temp texture1D)
81 0:34            direct index ( temp texture1D)
82 0:34              'local_texture_array' ( temp 3-element array of texture1D)
83 0:34              Constant:
84 0:34                2 (const int)
85 0:?             'g_tex[2]' ( uniform texture1D)
86 0:35      Sequence
87 0:35        move second child to first child ( temp 4-element array of float)
88 0:35          'local_float_array' ( temp 4-element array of float)
89 0:35          g_floats: direct index for structure ( uniform 4-element array of float)
90 0:35            'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit,  uniform 4-element array of float g_floats})
91 0:35            Constant:
92 0:35              2 (const uint)
93 0:37      move second child to first child ( temp 4-component vector of float)
94 0:37        color: direct index for structure ( temp 4-component vector of float)
95 0:37          'ps_output' ( out structure{ temp 4-component vector of float color})
96 0:37          Constant:
97 0:37            0 (const int)
98 0:37        add ( temp 4-component vector of float)
99 0:37          Function Call: TestFn1( ( temp 4-component vector of float)
100 0:37          Function Call: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
101 0:37            Comma ( temp 3-element array of texture1D)
102 0:37              Sequence
103 0:37                move second child to first child ( temp texture1D)
104 0:37                  direct index ( temp texture1D)
105 0:37                    'aggShadow' ( temp 3-element array of texture1D)
106 0:37                    Constant:
107 0:37                      0 (const int)
108 0:?                   'g_tex[0]' ( uniform texture1D)
109 0:37                move second child to first child ( temp texture1D)
110 0:37                  direct index ( temp texture1D)
111 0:37                    'aggShadow' ( temp 3-element array of texture1D)
112 0:37                    Constant:
113 0:37                      1 (const int)
114 0:?                   'g_tex[1]' ( uniform texture1D)
115 0:37                move second child to first child ( temp texture1D)
116 0:37                  direct index ( temp texture1D)
117 0:37                    'aggShadow' ( temp 3-element array of texture1D)
118 0:37                    Constant:
119 0:37                      2 (const int)
120 0:?                   'g_tex[2]' ( uniform texture1D)
121 0:37              'aggShadow' ( temp 3-element array of texture1D)
122 0:37            Comma ( temp 3-element array of sampler)
123 0:37              Sequence
124 0:37                move second child to first child ( temp sampler)
125 0:37                  direct index ( temp sampler)
126 0:37                    'aggShadow' ( temp 3-element array of sampler)
127 0:37                    Constant:
128 0:37                      0 (const int)
129 0:?                   'g_samp[0]' ( uniform sampler)
130 0:37                move second child to first child ( temp sampler)
131 0:37                  direct index ( temp sampler)
132 0:37                    'aggShadow' ( temp 3-element array of sampler)
133 0:37                    Constant:
134 0:37                      1 (const int)
135 0:?                   'g_samp[1]' ( uniform sampler)
136 0:37                move second child to first child ( temp sampler)
137 0:37                  direct index ( temp sampler)
138 0:37                    'aggShadow' ( temp 3-element array of sampler)
139 0:37                    Constant:
140 0:37                      2 (const int)
141 0:?                   'g_samp[2]' ( uniform sampler)
142 0:37              'aggShadow' ( temp 3-element array of sampler)
143 0:31  Function Definition: main( ( temp void)
144 0:31    Function Parameters: 
145 0:?     Sequence
146 0:31      Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
147 0:?         'ps_output' ( temp structure{ temp 4-component vector of float color})
148 0:31      Sequence
149 0:31        move second child to first child ( temp 4-component vector of float)
150 0:?           'color' (layout( location=0) out 4-component vector of float)
151 0:31          color: direct index for structure ( temp 4-component vector of float)
152 0:?             'ps_output' ( temp structure{ temp 4-component vector of float color})
153 0:31            Constant:
154 0:31              0 (const int)
155 0:?   Linker Objects
156 0:?     'g_tex[0]' ( uniform texture1D)
157 0:?     'g_tex[1]' ( uniform texture1D)
158 0:?     'g_tex[2]' ( uniform texture1D)
159 0:?     'g_tex_explicit[0]' (layout( binding=1) uniform texture1D)
160 0:?     'g_tex_explicit[1]' (layout( binding=2) uniform texture1D)
161 0:?     'g_tex_explicit[2]' (layout( binding=3) uniform texture1D)
162 0:?     'g_samp[0]' ( uniform sampler)
163 0:?     'g_samp[1]' ( uniform sampler)
164 0:?     'g_samp[2]' ( uniform sampler)
165 0:?     'g_samp_explicit[0]' (layout( binding=5) uniform sampler)
166 0:?     'g_samp_explicit[1]' (layout( binding=6) uniform sampler)
167 0:?     'g_samp_explicit[2]' (layout( binding=7) uniform sampler)
168 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit,  uniform 4-element array of float g_floats})
169 0:?     'not_flattened_a' ( global 5-element array of int)
170 0:?     'color' (layout( location=0) out 4-component vector of float)
171
172
173 Linked fragment stage:
174
175
176 Shader version: 450
177 gl_FragCoord origin is upper left
178 0:? Sequence
179 0:17  Function Definition: TestFn1( ( temp 4-component vector of float)
180 0:17    Function Parameters: 
181 0:?     Sequence
182 0:18      Branch: Return with expression
183 0:18        texture ( temp 4-component vector of float)
184 0:18          Construct combined texture-sampler ( temp sampler1D)
185 0:?             'g_tex[1]' ( uniform texture1D)
186 0:?             'g_samp[1]' ( uniform sampler)
187 0:18          Constant:
188 0:18            0.200000
189 0:22  Function Definition: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
190 0:22    Function Parameters: 
191 0:22      'l_tex' ( in 3-element array of texture1D)
192 0:22      'l_samp' ( in 3-element array of sampler)
193 0:?     Sequence
194 0:23      Branch: Return with expression
195 0:23        texture ( temp 4-component vector of float)
196 0:23          Construct combined texture-sampler ( temp sampler1D)
197 0:23            direct index ( temp texture1D)
198 0:23              'l_tex' ( in 3-element array of texture1D)
199 0:23              Constant:
200 0:23                2 (const int)
201 0:23            direct index ( temp sampler)
202 0:23              'l_samp' ( in 3-element array of sampler)
203 0:23              Constant:
204 0:23                2 (const int)
205 0:23          Constant:
206 0:23            0.200000
207 0:26  Sequence
208 0:26    move second child to first child ( temp 5-element array of int)
209 0:26      'not_flattened_a' ( global 5-element array of int)
210 0:26      Constant:
211 0:26        1 (const int)
212 0:26        2 (const int)
213 0:26        3 (const int)
214 0:26        4 (const int)
215 0:26        5 (const int)
216 0:31  Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
217 0:31    Function Parameters: 
218 0:31      'ps_output' ( out structure{ temp 4-component vector of float color})
219 0:?     Sequence
220 0:33      Sequence
221 0:33        Sequence
222 0:33          move second child to first child ( temp sampler)
223 0:33            direct index ( temp sampler)
224 0:33              'local_sampler_array' ( temp 3-element array of sampler)
225 0:33              Constant:
226 0:33                0 (const int)
227 0:?             'g_samp[0]' ( uniform sampler)
228 0:33          move second child to first child ( temp sampler)
229 0:33            direct index ( temp sampler)
230 0:33              'local_sampler_array' ( temp 3-element array of sampler)
231 0:33              Constant:
232 0:33                1 (const int)
233 0:?             'g_samp[1]' ( uniform sampler)
234 0:33          move second child to first child ( temp sampler)
235 0:33            direct index ( temp sampler)
236 0:33              'local_sampler_array' ( temp 3-element array of sampler)
237 0:33              Constant:
238 0:33                2 (const int)
239 0:?             'g_samp[2]' ( uniform sampler)
240 0:34      Sequence
241 0:34        Sequence
242 0:34          move second child to first child ( temp texture1D)
243 0:34            direct index ( temp texture1D)
244 0:34              'local_texture_array' ( temp 3-element array of texture1D)
245 0:34              Constant:
246 0:34                0 (const int)
247 0:?             'g_tex[0]' ( uniform texture1D)
248 0:34          move second child to first child ( temp texture1D)
249 0:34            direct index ( temp texture1D)
250 0:34              'local_texture_array' ( temp 3-element array of texture1D)
251 0:34              Constant:
252 0:34                1 (const int)
253 0:?             'g_tex[1]' ( uniform texture1D)
254 0:34          move second child to first child ( temp texture1D)
255 0:34            direct index ( temp texture1D)
256 0:34              'local_texture_array' ( temp 3-element array of texture1D)
257 0:34              Constant:
258 0:34                2 (const int)
259 0:?             'g_tex[2]' ( uniform texture1D)
260 0:35      Sequence
261 0:35        move second child to first child ( temp 4-element array of float)
262 0:35          'local_float_array' ( temp 4-element array of float)
263 0:35          g_floats: direct index for structure ( uniform 4-element array of float)
264 0:35            'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit,  uniform 4-element array of float g_floats})
265 0:35            Constant:
266 0:35              2 (const uint)
267 0:37      move second child to first child ( temp 4-component vector of float)
268 0:37        color: direct index for structure ( temp 4-component vector of float)
269 0:37          'ps_output' ( out structure{ temp 4-component vector of float color})
270 0:37          Constant:
271 0:37            0 (const int)
272 0:37        add ( temp 4-component vector of float)
273 0:37          Function Call: TestFn1( ( temp 4-component vector of float)
274 0:37          Function Call: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
275 0:37            Comma ( temp 3-element array of texture1D)
276 0:37              Sequence
277 0:37                move second child to first child ( temp texture1D)
278 0:37                  direct index ( temp texture1D)
279 0:37                    'aggShadow' ( temp 3-element array of texture1D)
280 0:37                    Constant:
281 0:37                      0 (const int)
282 0:?                   'g_tex[0]' ( uniform texture1D)
283 0:37                move second child to first child ( temp texture1D)
284 0:37                  direct index ( temp texture1D)
285 0:37                    'aggShadow' ( temp 3-element array of texture1D)
286 0:37                    Constant:
287 0:37                      1 (const int)
288 0:?                   'g_tex[1]' ( uniform texture1D)
289 0:37                move second child to first child ( temp texture1D)
290 0:37                  direct index ( temp texture1D)
291 0:37                    'aggShadow' ( temp 3-element array of texture1D)
292 0:37                    Constant:
293 0:37                      2 (const int)
294 0:?                   'g_tex[2]' ( uniform texture1D)
295 0:37              'aggShadow' ( temp 3-element array of texture1D)
296 0:37            Comma ( temp 3-element array of sampler)
297 0:37              Sequence
298 0:37                move second child to first child ( temp sampler)
299 0:37                  direct index ( temp sampler)
300 0:37                    'aggShadow' ( temp 3-element array of sampler)
301 0:37                    Constant:
302 0:37                      0 (const int)
303 0:?                   'g_samp[0]' ( uniform sampler)
304 0:37                move second child to first child ( temp sampler)
305 0:37                  direct index ( temp sampler)
306 0:37                    'aggShadow' ( temp 3-element array of sampler)
307 0:37                    Constant:
308 0:37                      1 (const int)
309 0:?                   'g_samp[1]' ( uniform sampler)
310 0:37                move second child to first child ( temp sampler)
311 0:37                  direct index ( temp sampler)
312 0:37                    'aggShadow' ( temp 3-element array of sampler)
313 0:37                    Constant:
314 0:37                      2 (const int)
315 0:?                   'g_samp[2]' ( uniform sampler)
316 0:37              'aggShadow' ( temp 3-element array of sampler)
317 0:31  Function Definition: main( ( temp void)
318 0:31    Function Parameters: 
319 0:?     Sequence
320 0:31      Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
321 0:?         'ps_output' ( temp structure{ temp 4-component vector of float color})
322 0:31      Sequence
323 0:31        move second child to first child ( temp 4-component vector of float)
324 0:?           'color' (layout( location=0) out 4-component vector of float)
325 0:31          color: direct index for structure ( temp 4-component vector of float)
326 0:?             'ps_output' ( temp structure{ temp 4-component vector of float color})
327 0:31            Constant:
328 0:31              0 (const int)
329 0:?   Linker Objects
330 0:?     'g_tex[0]' ( uniform texture1D)
331 0:?     'g_tex[1]' ( uniform texture1D)
332 0:?     'g_tex[2]' ( uniform texture1D)
333 0:?     'g_tex_explicit[0]' (layout( binding=1) uniform texture1D)
334 0:?     'g_tex_explicit[1]' (layout( binding=2) uniform texture1D)
335 0:?     'g_tex_explicit[2]' (layout( binding=3) uniform texture1D)
336 0:?     'g_samp[0]' ( uniform sampler)
337 0:?     'g_samp[1]' ( uniform sampler)
338 0:?     'g_samp[2]' ( uniform sampler)
339 0:?     'g_samp_explicit[0]' (layout( binding=5) uniform sampler)
340 0:?     'g_samp_explicit[1]' (layout( binding=6) uniform sampler)
341 0:?     'g_samp_explicit[2]' (layout( binding=7) uniform sampler)
342 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 3X3 matrix of float g_mats, layout( binding=10) uniform 4-element array of 3X3 matrix of float g_mats_explicit,  uniform 4-element array of float g_floats})
343 0:?     'not_flattened_a' ( global 5-element array of int)
344 0:?     'color' (layout( location=0) out 4-component vector of float)
345
346 // Module Version 10000
347 // Generated by (magic number): 80001
348 // Id's are bound by 137
349
350                               Capability Shader
351                               Capability Sampled1D
352                1:             ExtInstImport  "GLSL.std.450"
353                               MemoryModel Logical GLSL450
354                               EntryPoint Fragment 4  "main" 128
355                               ExecutionMode 4 OriginUpperLeft
356                               Name 4  "main"
357                               Name 9  "TestFn1("
358                               Name 22  "TestFn2(t11[3];p1[3];"
359                               Name 20  "l_tex"
360                               Name 21  "l_samp"
361                               Name 24  "PS_OUTPUT"
362                               MemberName 24(PS_OUTPUT) 0  "color"
363                               Name 28  "@main(struct-PS_OUTPUT-vf41;"
364                               Name 27  "ps_output"
365                               Name 34  "not_flattened_a"
366                               Name 42  "g_tex[1]"
367                               Name 45  "g_samp[1]"
368                               Name 61  "local_sampler_array"
369                               Name 63  "g_samp[0]"
370                               Name 68  "g_samp[2]"
371                               Name 71  "local_texture_array"
372                               Name 72  "g_tex[0]"
373                               Name 77  "g_tex[2]"
374                               Name 83  "local_float_array"
375                               Name 89  "$Global"
376                               MemberName 89($Global) 0  "g_mats"
377                               MemberName 89($Global) 1  "g_mats_explicit"
378                               MemberName 89($Global) 2  "g_floats"
379                               Name 91  ""
380                               Name 105  "aggShadow"
381                               Name 112  "aggShadow"
382                               Name 123  "ps_output"
383                               Name 124  "param"
384                               Name 128  "color"
385                               Name 131  "g_tex_explicit[0]"
386                               Name 132  "g_tex_explicit[1]"
387                               Name 133  "g_tex_explicit[2]"
388                               Name 134  "g_samp_explicit[0]"
389                               Name 135  "g_samp_explicit[1]"
390                               Name 136  "g_samp_explicit[2]"
391                               Decorate 42(g_tex[1]) DescriptorSet 0
392                               Decorate 45(g_samp[1]) DescriptorSet 0
393                               Decorate 63(g_samp[0]) DescriptorSet 0
394                               Decorate 68(g_samp[2]) DescriptorSet 0
395                               Decorate 72(g_tex[0]) DescriptorSet 0
396                               Decorate 77(g_tex[2]) DescriptorSet 0
397                               Decorate 86 ArrayStride 48
398                               Decorate 87 ArrayStride 48
399                               Decorate 88 ArrayStride 16
400                               MemberDecorate 89($Global) 0 RowMajor
401                               MemberDecorate 89($Global) 0 Offset 0
402                               MemberDecorate 89($Global) 0 MatrixStride 16
403                               MemberDecorate 89($Global) 1 RowMajor
404                               MemberDecorate 89($Global) 1 Offset 192
405                               MemberDecorate 89($Global) 1 MatrixStride 16
406                               MemberDecorate 89($Global) 2 Offset 384
407                               Decorate 89($Global) Block
408                               Decorate 91 DescriptorSet 0
409                               Decorate 128(color) Location 0
410                               Decorate 131(g_tex_explicit[0]) DescriptorSet 0
411                               Decorate 131(g_tex_explicit[0]) Binding 1
412                               Decorate 132(g_tex_explicit[1]) DescriptorSet 0
413                               Decorate 132(g_tex_explicit[1]) Binding 2
414                               Decorate 133(g_tex_explicit[2]) DescriptorSet 0
415                               Decorate 133(g_tex_explicit[2]) Binding 3
416                               Decorate 134(g_samp_explicit[0]) DescriptorSet 0
417                               Decorate 134(g_samp_explicit[0]) Binding 5
418                               Decorate 135(g_samp_explicit[1]) DescriptorSet 0
419                               Decorate 135(g_samp_explicit[1]) Binding 6
420                               Decorate 136(g_samp_explicit[2]) DescriptorSet 0
421                               Decorate 136(g_samp_explicit[2]) Binding 7
422                2:             TypeVoid
423                3:             TypeFunction 2
424                6:             TypeFloat 32
425                7:             TypeVector 6(float) 4
426                8:             TypeFunction 7(fvec4)
427               11:             TypeImage 6(float) 1D sampled format:Unknown
428               12:             TypeInt 32 0
429               13:     12(int) Constant 3
430               14:             TypeArray 11 13
431               15:             TypePointer UniformConstant 14
432               16:             TypeSampler
433               17:             TypeArray 16 13
434               18:             TypePointer UniformConstant 17
435               19:             TypeFunction 7(fvec4) 15(ptr) 18(ptr)
436    24(PS_OUTPUT):             TypeStruct 7(fvec4)
437               25:             TypePointer Function 24(PS_OUTPUT)
438               26:             TypeFunction 2 25(ptr)
439               30:             TypeInt 32 1
440               31:     12(int) Constant 5
441               32:             TypeArray 30(int) 31
442               33:             TypePointer Private 32
443 34(not_flattened_a):     33(ptr) Variable Private
444               35:     30(int) Constant 1
445               36:     30(int) Constant 2
446               37:     30(int) Constant 3
447               38:     30(int) Constant 4
448               39:     30(int) Constant 5
449               40:          32 ConstantComposite 35 36 37 38 39
450               41:             TypePointer UniformConstant 11
451     42(g_tex[1]):     41(ptr) Variable UniformConstant
452               44:             TypePointer UniformConstant 16
453    45(g_samp[1]):     44(ptr) Variable UniformConstant
454               47:             TypeSampledImage 11
455               49:    6(float) Constant 1045220557
456 61(local_sampler_array):     18(ptr) Variable UniformConstant
457               62:     30(int) Constant 0
458    63(g_samp[0]):     44(ptr) Variable UniformConstant
459    68(g_samp[2]):     44(ptr) Variable UniformConstant
460 71(local_texture_array):     15(ptr) Variable UniformConstant
461     72(g_tex[0]):     41(ptr) Variable UniformConstant
462     77(g_tex[2]):     41(ptr) Variable UniformConstant
463               80:     12(int) Constant 4
464               81:             TypeArray 6(float) 80
465               82:             TypePointer Function 81
466               84:             TypeVector 6(float) 3
467               85:             TypeMatrix 84(fvec3) 3
468               86:             TypeArray 85 80
469               87:             TypeArray 85 80
470               88:             TypeArray 6(float) 80
471      89($Global):             TypeStruct 86 87 88
472               90:             TypePointer Uniform 89($Global)
473               91:     90(ptr) Variable Uniform
474               92:             TypePointer Uniform 88
475               96:             TypePointer Function 6(float)
476   105(aggShadow):     15(ptr) Variable UniformConstant
477   112(aggShadow):     18(ptr) Variable UniformConstant
478              121:             TypePointer Function 7(fvec4)
479              127:             TypePointer Output 7(fvec4)
480       128(color):    127(ptr) Variable Output
481 131(g_tex_explicit[0]):     41(ptr) Variable UniformConstant
482 132(g_tex_explicit[1]):     41(ptr) Variable UniformConstant
483 133(g_tex_explicit[2]):     41(ptr) Variable UniformConstant
484 134(g_samp_explicit[0]):     44(ptr) Variable UniformConstant
485 135(g_samp_explicit[1]):     44(ptr) Variable UniformConstant
486 136(g_samp_explicit[2]):     44(ptr) Variable UniformConstant
487          4(main):           2 Function None 3
488                5:             Label
489   123(ps_output):     25(ptr) Variable Function
490       124(param):     25(ptr) Variable Function
491                               Store 34(not_flattened_a) 40
492              125:           2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 124(param)
493              126:24(PS_OUTPUT) Load 124(param)
494                               Store 123(ps_output) 126
495              129:    121(ptr) AccessChain 123(ps_output) 62
496              130:    7(fvec4) Load 129
497                               Store 128(color) 130
498                               Return
499                               FunctionEnd
500      9(TestFn1():    7(fvec4) Function None 8
501               10:             Label
502               43:          11 Load 42(g_tex[1])
503               46:          16 Load 45(g_samp[1])
504               48:          47 SampledImage 43 46
505               50:    7(fvec4) ImageSampleImplicitLod 48 49
506                               ReturnValue 50
507                               FunctionEnd
508 22(TestFn2(t11[3];p1[3];):    7(fvec4) Function None 19
509        20(l_tex):     15(ptr) FunctionParameter
510       21(l_samp):     18(ptr) FunctionParameter
511               23:             Label
512               53:     41(ptr) AccessChain 20(l_tex) 36
513               54:          11 Load 53
514               55:     44(ptr) AccessChain 21(l_samp) 36
515               56:          16 Load 55
516               57:          47 SampledImage 54 56
517               58:    7(fvec4) ImageSampleImplicitLod 57 49
518                               ReturnValue 58
519                               FunctionEnd
520 28(@main(struct-PS_OUTPUT-vf41;):           2 Function None 26
521    27(ps_output):     25(ptr) FunctionParameter
522               29:             Label
523 83(local_float_array):     82(ptr) Variable Function
524               64:          16 Load 63(g_samp[0])
525               65:     44(ptr) AccessChain 61(local_sampler_array) 62
526                               Store 65 64
527               66:          16 Load 45(g_samp[1])
528               67:     44(ptr) AccessChain 61(local_sampler_array) 35
529                               Store 67 66
530               69:          16 Load 68(g_samp[2])
531               70:     44(ptr) AccessChain 61(local_sampler_array) 36
532                               Store 70 69
533               73:          11 Load 72(g_tex[0])
534               74:     41(ptr) AccessChain 71(local_texture_array) 62
535                               Store 74 73
536               75:          11 Load 42(g_tex[1])
537               76:     41(ptr) AccessChain 71(local_texture_array) 35
538                               Store 76 75
539               78:          11 Load 77(g_tex[2])
540               79:     41(ptr) AccessChain 71(local_texture_array) 36
541                               Store 79 78
542               93:     92(ptr) AccessChain 91 36
543               94:          88 Load 93
544               95:    6(float) CompositeExtract 94 0
545               97:     96(ptr) AccessChain 83(local_float_array) 62
546                               Store 97 95
547               98:    6(float) CompositeExtract 94 1
548               99:     96(ptr) AccessChain 83(local_float_array) 35
549                               Store 99 98
550              100:    6(float) CompositeExtract 94 2
551              101:     96(ptr) AccessChain 83(local_float_array) 36
552                               Store 101 100
553              102:    6(float) CompositeExtract 94 3
554              103:     96(ptr) AccessChain 83(local_float_array) 37
555                               Store 103 102
556              104:    7(fvec4) FunctionCall 9(TestFn1()
557              106:          11 Load 72(g_tex[0])
558              107:     41(ptr) AccessChain 105(aggShadow) 62
559                               Store 107 106
560              108:          11 Load 42(g_tex[1])
561              109:     41(ptr) AccessChain 105(aggShadow) 35
562                               Store 109 108
563              110:          11 Load 77(g_tex[2])
564              111:     41(ptr) AccessChain 105(aggShadow) 36
565                               Store 111 110
566              113:          16 Load 63(g_samp[0])
567              114:     44(ptr) AccessChain 112(aggShadow) 62
568                               Store 114 113
569              115:          16 Load 45(g_samp[1])
570              116:     44(ptr) AccessChain 112(aggShadow) 35
571                               Store 116 115
572              117:          16 Load 68(g_samp[2])
573              118:     44(ptr) AccessChain 112(aggShadow) 36
574                               Store 118 117
575              119:    7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 105(aggShadow) 112(aggShadow)
576              120:    7(fvec4) FAdd 104 119
577              122:    121(ptr) AccessChain 27(ps_output) 62
578                               Store 122 120
579                               Return
580                               FunctionEnd