hlsl.array.flatten.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:17  Function Definition: TestFn1( ( temp 4-component vector of float)
0:17    Function Parameters: 
0:?     Sequence
0:18      Branch: Return with expression
0:18        texture ( temp 4-component vector of float)
0:18          Construct combined texture-sampler ( temp sampler1D)
0:?             'g_tex[1]' ( uniform texture1D)
0:?             'g_samp[1]' ( uniform sampler)
0:18          Constant:
0:18            0.200000
0:22  Function Definition: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
0:22    Function Parameters: 
0:22      'l_tex' ( in 3-element array of texture1D)
0:22      'l_samp' ( in 3-element array of sampler)
0:?     Sequence
0:23      Branch: Return with expression
0:23        texture ( temp 4-component vector of float)
0:23          Construct combined texture-sampler ( temp sampler1D)
0:23            direct index ( temp texture1D)
0:23              'l_tex' ( in 3-element array of texture1D)
0:23              Constant:
0:23                2 (const int)
0:23            direct index ( temp sampler)
0:23              'l_samp' ( in 3-element array of sampler)
0:23              Constant:
0:23                2 (const int)
0:23          Constant:
0:23            0.200000
0:26  Sequence
0:26    move second child to first child ( temp 5-element array of int)
0:26      'not_flattened_a' ( global 5-element array of int)
0:26      Constant:
0:26        1 (const int)
0:26        2 (const int)
0:26        3 (const int)
0:26        4 (const int)
0:26        5 (const int)
0:31  Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:31    Function Parameters: 
0:31      'ps_output' ( out structure{ temp 4-component vector of float color})
0:?     Sequence
0:33      Sequence
0:33        Sequence
0:33          move second child to first child ( temp sampler)
0:33            direct index ( temp sampler)
0:33              'local_sampler_array' ( temp 3-element array of sampler)
0:33              Constant:
0:33                0 (const int)
0:?             'g_samp[0]' ( uniform sampler)
0:33          move second child to first child ( temp sampler)
0:33            direct index ( temp sampler)
0:33              'local_sampler_array' ( temp 3-element array of sampler)
0:33              Constant:
0:33                1 (const int)
0:?             'g_samp[1]' ( uniform sampler)
0:33          move second child to first child ( temp sampler)
0:33            direct index ( temp sampler)
0:33              'local_sampler_array' ( temp 3-element array of sampler)
0:33              Constant:
0:33                2 (const int)
0:?             'g_samp[2]' ( uniform sampler)
0:34      Sequence
0:34        Sequence
0:34          move second child to first child ( temp texture1D)
0:34            direct index ( temp texture1D)
0:34              'local_texture_array' ( temp 3-element array of texture1D)
0:34              Constant:
0:34                0 (const int)
0:?             'g_tex[0]' ( uniform texture1D)
0:34          move second child to first child ( temp texture1D)
0:34            direct index ( temp texture1D)
0:34              'local_texture_array' ( temp 3-element array of texture1D)
0:34              Constant:
0:34                1 (const int)
0:?             'g_tex[1]' ( uniform texture1D)
0:34          move second child to first child ( temp texture1D)
0:34            direct index ( temp texture1D)
0:34              'local_texture_array' ( temp 3-element array of texture1D)
0:34              Constant:
0:34                2 (const int)
0:?             'g_tex[2]' ( uniform texture1D)
0:35      Sequence
0:35        move second child to first child ( temp 4-element array of float)
0:35          'local_float_array' ( temp 4-element array of float)
0:35          g_floats: direct index for structure ( uniform 4-element array of float)
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})
0:35            Constant:
0:35              2 (const uint)
0:37      move second child to first child ( temp 4-component vector of float)
0:37        color: direct index for structure ( temp 4-component vector of float)
0:37          'ps_output' ( out structure{ temp 4-component vector of float color})
0:37          Constant:
0:37            0 (const int)
0:37        add ( temp 4-component vector of float)
0:37          Function Call: TestFn1( ( temp 4-component vector of float)
0:37          Function Call: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
0:37            Comma ( temp 3-element array of texture1D)
0:37              Sequence
0:37                move second child to first child ( temp texture1D)
0:37                  direct index ( temp texture1D)
0:37                    'aggShadow' ( temp 3-element array of texture1D)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_tex[0]' ( uniform texture1D)
0:37                move second child to first child ( temp texture1D)
0:37                  direct index ( temp texture1D)
0:37                    'aggShadow' ( temp 3-element array of texture1D)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_tex[1]' ( uniform texture1D)
0:37                move second child to first child ( temp texture1D)
0:37                  direct index ( temp texture1D)
0:37                    'aggShadow' ( temp 3-element array of texture1D)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_tex[2]' ( uniform texture1D)
0:37              'aggShadow' ( temp 3-element array of texture1D)
0:37            Comma ( temp 3-element array of sampler)
0:37              Sequence
0:37                move second child to first child ( temp sampler)
0:37                  direct index ( temp sampler)
0:37                    'aggShadow' ( temp 3-element array of sampler)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_samp[0]' ( uniform sampler)
0:37                move second child to first child ( temp sampler)
0:37                  direct index ( temp sampler)
0:37                    'aggShadow' ( temp 3-element array of sampler)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_samp[1]' ( uniform sampler)
0:37                move second child to first child ( temp sampler)
0:37                  direct index ( temp sampler)
0:37                    'aggShadow' ( temp 3-element array of sampler)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_samp[2]' ( uniform sampler)
0:37              'aggShadow' ( temp 3-element array of sampler)
0:31  Function Definition: main( ( temp void)
0:31    Function Parameters: 
0:?     Sequence
0:31      Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:?         'ps_output' ( temp structure{ temp 4-component vector of float color})
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:?           'ps_output.color' (layout( location=0) out 4-component vector of float)
0:31          color: direct index for structure ( temp 4-component vector of float)
0:?             'ps_output' ( temp structure{ temp 4-component vector of float color})
0:31            Constant:
0:31              0 (const int)
0:?   Linker Objects
0:?     'g_tex[0]' ( uniform texture1D)
0:?     'g_tex[1]' ( uniform texture1D)
0:?     'g_tex[2]' ( uniform texture1D)
0:?     'g_tex_explicit[0]' (layout( binding=1) uniform texture1D)
0:?     'g_tex_explicit[1]' (layout( binding=2) uniform texture1D)
0:?     'g_tex_explicit[2]' (layout( binding=3) uniform texture1D)
0:?     'g_samp[0]' ( uniform sampler)
0:?     'g_samp[1]' ( uniform sampler)
0:?     'g_samp[2]' ( uniform sampler)
0:?     'g_samp_explicit[0]' (layout( binding=5) uniform sampler)
0:?     'g_samp_explicit[1]' (layout( binding=6) uniform sampler)
0:?     'g_samp_explicit[2]' (layout( binding=7) uniform sampler)
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})
0:?     'not_flattened_a' ( global 5-element array of int)
0:?     'ps_output.color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:17  Function Definition: TestFn1( ( temp 4-component vector of float)
0:17    Function Parameters: 
0:?     Sequence
0:18      Branch: Return with expression
0:18        texture ( temp 4-component vector of float)
0:18          Construct combined texture-sampler ( temp sampler1D)
0:?             'g_tex[1]' ( uniform texture1D)
0:?             'g_samp[1]' ( uniform sampler)
0:18          Constant:
0:18            0.200000
0:22  Function Definition: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
0:22    Function Parameters: 
0:22      'l_tex' ( in 3-element array of texture1D)
0:22      'l_samp' ( in 3-element array of sampler)
0:?     Sequence
0:23      Branch: Return with expression
0:23        texture ( temp 4-component vector of float)
0:23          Construct combined texture-sampler ( temp sampler1D)
0:23            direct index ( temp texture1D)
0:23              'l_tex' ( in 3-element array of texture1D)
0:23              Constant:
0:23                2 (const int)
0:23            direct index ( temp sampler)
0:23              'l_samp' ( in 3-element array of sampler)
0:23              Constant:
0:23                2 (const int)
0:23          Constant:
0:23            0.200000
0:26  Sequence
0:26    move second child to first child ( temp 5-element array of int)
0:26      'not_flattened_a' ( global 5-element array of int)
0:26      Constant:
0:26        1 (const int)
0:26        2 (const int)
0:26        3 (const int)
0:26        4 (const int)
0:26        5 (const int)
0:31  Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:31    Function Parameters: 
0:31      'ps_output' ( out structure{ temp 4-component vector of float color})
0:?     Sequence
0:33      Sequence
0:33        Sequence
0:33          move second child to first child ( temp sampler)
0:33            direct index ( temp sampler)
0:33              'local_sampler_array' ( temp 3-element array of sampler)
0:33              Constant:
0:33                0 (const int)
0:?             'g_samp[0]' ( uniform sampler)
0:33          move second child to first child ( temp sampler)
0:33            direct index ( temp sampler)
0:33              'local_sampler_array' ( temp 3-element array of sampler)
0:33              Constant:
0:33                1 (const int)
0:?             'g_samp[1]' ( uniform sampler)
0:33          move second child to first child ( temp sampler)
0:33            direct index ( temp sampler)
0:33              'local_sampler_array' ( temp 3-element array of sampler)
0:33              Constant:
0:33                2 (const int)
0:?             'g_samp[2]' ( uniform sampler)
0:34      Sequence
0:34        Sequence
0:34          move second child to first child ( temp texture1D)
0:34            direct index ( temp texture1D)
0:34              'local_texture_array' ( temp 3-element array of texture1D)
0:34              Constant:
0:34                0 (const int)
0:?             'g_tex[0]' ( uniform texture1D)
0:34          move second child to first child ( temp texture1D)
0:34            direct index ( temp texture1D)
0:34              'local_texture_array' ( temp 3-element array of texture1D)
0:34              Constant:
0:34                1 (const int)
0:?             'g_tex[1]' ( uniform texture1D)
0:34          move second child to first child ( temp texture1D)
0:34            direct index ( temp texture1D)
0:34              'local_texture_array' ( temp 3-element array of texture1D)
0:34              Constant:
0:34                2 (const int)
0:?             'g_tex[2]' ( uniform texture1D)
0:35      Sequence
0:35        move second child to first child ( temp 4-element array of float)
0:35          'local_float_array' ( temp 4-element array of float)
0:35          g_floats: direct index for structure ( uniform 4-element array of float)
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})
0:35            Constant:
0:35              2 (const uint)
0:37      move second child to first child ( temp 4-component vector of float)
0:37        color: direct index for structure ( temp 4-component vector of float)
0:37          'ps_output' ( out structure{ temp 4-component vector of float color})
0:37          Constant:
0:37            0 (const int)
0:37        add ( temp 4-component vector of float)
0:37          Function Call: TestFn1( ( temp 4-component vector of float)
0:37          Function Call: TestFn2(t11[3];p1[3]; ( temp 4-component vector of float)
0:37            Comma ( temp 3-element array of texture1D)
0:37              Sequence
0:37                move second child to first child ( temp texture1D)
0:37                  direct index ( temp texture1D)
0:37                    'aggShadow' ( temp 3-element array of texture1D)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_tex[0]' ( uniform texture1D)
0:37                move second child to first child ( temp texture1D)
0:37                  direct index ( temp texture1D)
0:37                    'aggShadow' ( temp 3-element array of texture1D)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_tex[1]' ( uniform texture1D)
0:37                move second child to first child ( temp texture1D)
0:37                  direct index ( temp texture1D)
0:37                    'aggShadow' ( temp 3-element array of texture1D)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_tex[2]' ( uniform texture1D)
0:37              'aggShadow' ( temp 3-element array of texture1D)
0:37            Comma ( temp 3-element array of sampler)
0:37              Sequence
0:37                move second child to first child ( temp sampler)
0:37                  direct index ( temp sampler)
0:37                    'aggShadow' ( temp 3-element array of sampler)
0:37                    Constant:
0:37                      0 (const int)
0:?                   'g_samp[0]' ( uniform sampler)
0:37                move second child to first child ( temp sampler)
0:37                  direct index ( temp sampler)
0:37                    'aggShadow' ( temp 3-element array of sampler)
0:37                    Constant:
0:37                      1 (const int)
0:?                   'g_samp[1]' ( uniform sampler)
0:37                move second child to first child ( temp sampler)
0:37                  direct index ( temp sampler)
0:37                    'aggShadow' ( temp 3-element array of sampler)
0:37                    Constant:
0:37                      2 (const int)
0:?                   'g_samp[2]' ( uniform sampler)
0:37              'aggShadow' ( temp 3-element array of sampler)
0:31  Function Definition: main( ( temp void)
0:31    Function Parameters: 
0:?     Sequence
0:31      Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:?         'ps_output' ( temp structure{ temp 4-component vector of float color})
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of float)
0:?           'ps_output.color' (layout( location=0) out 4-component vector of float)
0:31          color: direct index for structure ( temp 4-component vector of float)
0:?             'ps_output' ( temp structure{ temp 4-component vector of float color})
0:31            Constant:
0:31              0 (const int)
0:?   Linker Objects
0:?     'g_tex[0]' ( uniform texture1D)
0:?     'g_tex[1]' ( uniform texture1D)
0:?     'g_tex[2]' ( uniform texture1D)
0:?     'g_tex_explicit[0]' (layout( binding=1) uniform texture1D)
0:?     'g_tex_explicit[1]' (layout( binding=2) uniform texture1D)
0:?     'g_tex_explicit[2]' (layout( binding=3) uniform texture1D)
0:?     'g_samp[0]' ( uniform sampler)
0:?     'g_samp[1]' ( uniform sampler)
0:?     'g_samp[2]' ( uniform sampler)
0:?     'g_samp_explicit[0]' (layout( binding=5) uniform sampler)
0:?     'g_samp_explicit[1]' (layout( binding=6) uniform sampler)
0:?     'g_samp_explicit[2]' (layout( binding=7) uniform sampler)
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})
0:?     'not_flattened_a' ( global 5-element array of int)
0:?     'ps_output.color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 137

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 128
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "TestFn1("
                              Name 22  "TestFn2(t11[3];p1[3];"
                              Name 20  "l_tex"
                              Name 21  "l_samp"
                              Name 24  "PS_OUTPUT"
                              MemberName 24(PS_OUTPUT) 0  "color"
                              Name 28  "@main(struct-PS_OUTPUT-vf41;"
                              Name 27  "ps_output"
                              Name 34  "not_flattened_a"
                              Name 42  "g_tex[1]"
                              Name 45  "g_samp[1]"
                              Name 61  "local_sampler_array"
                              Name 63  "g_samp[0]"
                              Name 68  "g_samp[2]"
                              Name 71  "local_texture_array"
                              Name 72  "g_tex[0]"
                              Name 77  "g_tex[2]"
                              Name 83  "local_float_array"
                              Name 89  "$Global"
                              MemberName 89($Global) 0  "g_mats"
                              MemberName 89($Global) 1  "g_mats_explicit"
                              MemberName 89($Global) 2  "g_floats"
                              Name 91  ""
                              Name 105  "aggShadow"
                              Name 112  "aggShadow"
                              Name 123  "ps_output"
                              Name 124  "param"
                              Name 128  "ps_output.color"
                              Name 131  "g_tex_explicit[0]"
                              Name 132  "g_tex_explicit[1]"
                              Name 133  "g_tex_explicit[2]"
                              Name 134  "g_samp_explicit[0]"
                              Name 135  "g_samp_explicit[1]"
                              Name 136  "g_samp_explicit[2]"
                              Decorate 42(g_tex[1]) DescriptorSet 0
                              Decorate 45(g_samp[1]) DescriptorSet 0
                              Decorate 63(g_samp[0]) DescriptorSet 0
                              Decorate 68(g_samp[2]) DescriptorSet 0
                              Decorate 72(g_tex[0]) DescriptorSet 0
                              Decorate 77(g_tex[2]) DescriptorSet 0
                              Decorate 86 ArrayStride 48
                              Decorate 87 ArrayStride 48
                              Decorate 88 ArrayStride 16
                              MemberDecorate 89($Global) 0 RowMajor
                              MemberDecorate 89($Global) 0 Offset 0
                              MemberDecorate 89($Global) 0 MatrixStride 16
                              MemberDecorate 89($Global) 1 RowMajor
                              MemberDecorate 89($Global) 1 Offset 192
                              MemberDecorate 89($Global) 1 MatrixStride 16
                              MemberDecorate 89($Global) 2 Offset 384
                              Decorate 89($Global) Block
                              Decorate 91 DescriptorSet 0
                              Decorate 128(ps_output.color) Location 0
                              Decorate 131(g_tex_explicit[0]) DescriptorSet 0
                              Decorate 131(g_tex_explicit[0]) Binding 1
                              Decorate 132(g_tex_explicit[1]) DescriptorSet 0
                              Decorate 132(g_tex_explicit[1]) Binding 2
                              Decorate 133(g_tex_explicit[2]) DescriptorSet 0
                              Decorate 133(g_tex_explicit[2]) Binding 3
                              Decorate 134(g_samp_explicit[0]) DescriptorSet 0
                              Decorate 134(g_samp_explicit[0]) Binding 5
                              Decorate 135(g_samp_explicit[1]) DescriptorSet 0
                              Decorate 135(g_samp_explicit[1]) Binding 6
                              Decorate 136(g_samp_explicit[2]) DescriptorSet 0
                              Decorate 136(g_samp_explicit[2]) Binding 7
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeImage 6(float) 1D sampled format:Unknown
              12:             TypeInt 32 0
              13:     12(int) Constant 3
              14:             TypeArray 11 13
              15:             TypePointer UniformConstant 14
              16:             TypeSampler
              17:             TypeArray 16 13
              18:             TypePointer UniformConstant 17
              19:             TypeFunction 7(fvec4) 15(ptr) 18(ptr)
   24(PS_OUTPUT):             TypeStruct 7(fvec4)
              25:             TypePointer Function 24(PS_OUTPUT)
              26:             TypeFunction 2 25(ptr)
              30:             TypeInt 32 1
              31:     12(int) Constant 5
              32:             TypeArray 30(int) 31
              33:             TypePointer Private 32
34(not_flattened_a):     33(ptr) Variable Private
              35:     30(int) Constant 1
              36:     30(int) Constant 2
              37:     30(int) Constant 3
              38:     30(int) Constant 4
              39:     30(int) Constant 5
              40:          32 ConstantComposite 35 36 37 38 39
              41:             TypePointer UniformConstant 11
    42(g_tex[1]):     41(ptr) Variable UniformConstant
              44:             TypePointer UniformConstant 16
   45(g_samp[1]):     44(ptr) Variable UniformConstant
              47:             TypeSampledImage 11
              49:    6(float) Constant 1045220557
61(local_sampler_array):     18(ptr) Variable UniformConstant
              62:     30(int) Constant 0
   63(g_samp[0]):     44(ptr) Variable UniformConstant
   68(g_samp[2]):     44(ptr) Variable UniformConstant
71(local_texture_array):     15(ptr) Variable UniformConstant
    72(g_tex[0]):     41(ptr) Variable UniformConstant
    77(g_tex[2]):     41(ptr) Variable UniformConstant
              80:     12(int) Constant 4
              81:             TypeArray 6(float) 80
              82:             TypePointer Function 81
              84:             TypeVector 6(float) 3
              85:             TypeMatrix 84(fvec3) 3
              86:             TypeArray 85 80
              87:             TypeArray 85 80
              88:             TypeArray 6(float) 80
     89($Global):             TypeStruct 86 87 88
              90:             TypePointer Uniform 89($Global)
              91:     90(ptr) Variable Uniform
              92:             TypePointer Uniform 88
              96:             TypePointer Function 6(float)
  105(aggShadow):     15(ptr) Variable UniformConstant
  112(aggShadow):     18(ptr) Variable UniformConstant
             121:             TypePointer Function 7(fvec4)
             127:             TypePointer Output 7(fvec4)
128(ps_output.color):    127(ptr) Variable Output
131(g_tex_explicit[0]):     41(ptr) Variable UniformConstant
132(g_tex_explicit[1]):     41(ptr) Variable UniformConstant
133(g_tex_explicit[2]):     41(ptr) Variable UniformConstant
134(g_samp_explicit[0]):     44(ptr) Variable UniformConstant
135(g_samp_explicit[1]):     44(ptr) Variable UniformConstant
136(g_samp_explicit[2]):     44(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
  123(ps_output):     25(ptr) Variable Function
      124(param):     25(ptr) Variable Function
                              Store 34(not_flattened_a) 40
             125:           2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 124(param)
             126:24(PS_OUTPUT) Load 124(param)
                              Store 123(ps_output) 126
             129:    121(ptr) AccessChain 123(ps_output) 62
             130:    7(fvec4) Load 129
                              Store 128(ps_output.color) 130
                              Return
                              FunctionEnd
     9(TestFn1():    7(fvec4) Function None 8
              10:             Label
              43:          11 Load 42(g_tex[1])
              46:          16 Load 45(g_samp[1])
              48:          47 SampledImage 43 46
              50:    7(fvec4) ImageSampleImplicitLod 48 49
                              ReturnValue 50
                              FunctionEnd
22(TestFn2(t11[3];p1[3];):    7(fvec4) Function None 19
       20(l_tex):     15(ptr) FunctionParameter
      21(l_samp):     18(ptr) FunctionParameter
              23:             Label
              53:     41(ptr) AccessChain 20(l_tex) 36
              54:          11 Load 53
              55:     44(ptr) AccessChain 21(l_samp) 36
              56:          16 Load 55
              57:          47 SampledImage 54 56
              58:    7(fvec4) ImageSampleImplicitLod 57 49
                              ReturnValue 58
                              FunctionEnd
28(@main(struct-PS_OUTPUT-vf41;):           2 Function None 26
   27(ps_output):     25(ptr) FunctionParameter
              29:             Label
83(local_float_array):     82(ptr) Variable Function
              64:          16 Load 63(g_samp[0])
              65:     44(ptr) AccessChain 61(local_sampler_array) 62
                              Store 65 64
              66:          16 Load 45(g_samp[1])
              67:     44(ptr) AccessChain 61(local_sampler_array) 35
                              Store 67 66
              69:          16 Load 68(g_samp[2])
              70:     44(ptr) AccessChain 61(local_sampler_array) 36
                              Store 70 69
              73:          11 Load 72(g_tex[0])
              74:     41(ptr) AccessChain 71(local_texture_array) 62
                              Store 74 73
              75:          11 Load 42(g_tex[1])
              76:     41(ptr) AccessChain 71(local_texture_array) 35
                              Store 76 75
              78:          11 Load 77(g_tex[2])
              79:     41(ptr) AccessChain 71(local_texture_array) 36
                              Store 79 78
              93:     92(ptr) AccessChain 91 36
              94:          88 Load 93
              95:    6(float) CompositeExtract 94 0
              97:     96(ptr) AccessChain 83(local_float_array) 62
                              Store 97 95
              98:    6(float) CompositeExtract 94 1
              99:     96(ptr) AccessChain 83(local_float_array) 35
                              Store 99 98
             100:    6(float) CompositeExtract 94 2
             101:     96(ptr) AccessChain 83(local_float_array) 36
                              Store 101 100
             102:    6(float) CompositeExtract 94 3
             103:     96(ptr) AccessChain 83(local_float_array) 37
                              Store 103 102
             104:    7(fvec4) FunctionCall 9(TestFn1()
             106:          11 Load 72(g_tex[0])
             107:     41(ptr) AccessChain 105(aggShadow) 62
                              Store 107 106
             108:          11 Load 42(g_tex[1])
             109:     41(ptr) AccessChain 105(aggShadow) 35
                              Store 109 108
             110:          11 Load 77(g_tex[2])
             111:     41(ptr) AccessChain 105(aggShadow) 36
                              Store 111 110
             113:          16 Load 63(g_samp[0])
             114:     44(ptr) AccessChain 112(aggShadow) 62
                              Store 114 113
             115:          16 Load 45(g_samp[1])
             116:     44(ptr) AccessChain 112(aggShadow) 35
                              Store 116 115
             117:          16 Load 68(g_samp[2])
             118:     44(ptr) AccessChain 112(aggShadow) 36
                              Store 118 117
             119:    7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 105(aggShadow) 112(aggShadow)
             120:    7(fvec4) FAdd 104 119
             122:    121(ptr) AccessChain 27(ps_output) 62
                              Store 122 120
                              Return
                              FunctionEnd
