hlsl.array.flatten.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
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): 80007
// Id's are bound by 143

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