hlsl.array.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
0:8    Function Parameters: 
0:8      'i' (layout(location=0 ) in int)
0:8      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:?     Sequence
0:10      Sequence
0:10        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10          add (temp 4-component vector of float)
0:10            add (temp 4-component vector of float)
0:10              add (temp 4-component vector of float)
0:10                add (temp 4-component vector of float)
0:10                  add (temp 4-component vector of float)
0:10                    add (temp 4-component vector of float)
0:10                      direct index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        Constant:
0:10                          1 (const int)
0:10                      indirect index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'i' (layout(location=0 ) in int)
0:10                    direct index (layout(location=1 ) temp 4-component vector of float)
0:10                      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                      Constant:
0:10                        2 (const int)
0:10                  indirect index (layout(location=1 ) temp 4-component vector of float)
0:10                    'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                    'i' (layout(location=0 ) in int)
0:10                direct index (temp 4-component vector of float)
0:10                  'b' (temp 10-element array of 4-component vector of float)
0:10                  Constant:
0:10                    5 (const int)
0:10              indirect index (temp 4-component vector of float)
0:10                'b' (temp 10-element array of 4-component vector of float)
0:10                'i' (layout(location=0 ) in int)
0:10            indirect index (temp 4-component vector of float)
0:10              m: direct index for structure (temp 7-element array of 4-component vector of float)
0:10                indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m})
0:10                  s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10                    'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                    Constant:
0:10                      1 (const uint)
0:10                  'i' (layout(location=0 ) in int)
0:10                Constant:
0:10                  0 (const int)
0:10              'i' (layout(location=0 ) in int)
0:10        Branch: Return
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:?     'i' (layout(location=0 ) in int)
0:?     'input' (layout(location=1 ) in 3-element array of 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
0:8    Function Parameters: 
0:8      'i' (layout(location=0 ) in int)
0:8      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:?     Sequence
0:10      Sequence
0:10        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:10          add (temp 4-component vector of float)
0:10            add (temp 4-component vector of float)
0:10              add (temp 4-component vector of float)
0:10                add (temp 4-component vector of float)
0:10                  add (temp 4-component vector of float)
0:10                    add (temp 4-component vector of float)
0:10                      direct index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        Constant:
0:10                          1 (const int)
0:10                      indirect index (layout(offset=0 ) temp 4-component vector of float)
0:10                        a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float)
0:10                          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'i' (layout(location=0 ) in int)
0:10                    direct index (layout(location=1 ) temp 4-component vector of float)
0:10                      'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                      Constant:
0:10                        2 (const int)
0:10                  indirect index (layout(location=1 ) temp 4-component vector of float)
0:10                    'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
0:10                    'i' (layout(location=0 ) in int)
0:10                direct index (temp 4-component vector of float)
0:10                  'b' (temp 10-element array of 4-component vector of float)
0:10                  Constant:
0:10                    5 (const int)
0:10              indirect index (temp 4-component vector of float)
0:10                'b' (temp 10-element array of 4-component vector of float)
0:10                'i' (layout(location=0 ) in int)
0:10            indirect index (temp 4-component vector of float)
0:10              m: direct index for structure (temp 7-element array of 4-component vector of float)
0:10                indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m})
0:10                  s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m})
0:10                    'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:10                    Constant:
0:10                      1 (const uint)
0:10                  'i' (layout(location=0 ) in int)
0:10                Constant:
0:10                  0 (const int)
0:10              'i' (layout(location=0 ) in int)
0:10        Branch: Return
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:?     'i' (layout(location=0 ) in int)
0:?     'input' (layout(location=1 ) in 3-element array of 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 9 28 36
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 9  "@entryPointOutput"
                              Name 15  ""
                              MemberName 15 0  "m"
                              Name 18  "$Global"
                              MemberName 18($Global) 0  "a"
                              MemberName 18($Global) 1  "s"
                              Name 20  ""
                              Name 28  "i"
                              Name 36  "input"
                              Name 49  "b"
                              Decorate 9(@entryPointOutput) Location 0
                              Decorate 12 ArrayStride 16
                              Decorate 14 ArrayStride 16
                              MemberDecorate 15 0 Offset 0
                              Decorate 17 ArrayStride 112
                              MemberDecorate 18($Global) 0 Offset 0
                              MemberDecorate 18($Global) 1 Offset 64
                              Decorate 18($Global) Block
                              Decorate 20 DescriptorSet 0
                              Decorate 28(i) Location 0
                              Decorate 36(input) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Output 7(fvec4)
9(@entryPointOutput):      8(ptr) Variable Output
              10:             TypeInt 32 0
              11:     10(int) Constant 4
              12:             TypeArray 7(fvec4) 11
              13:     10(int) Constant 7
              14:             TypeArray 7(fvec4) 13
              15:             TypeStruct 14
              16:     10(int) Constant 11
              17:             TypeArray 15(struct) 16
     18($Global):             TypeStruct 12 17
              19:             TypePointer Uniform 18($Global)
              20:     19(ptr) Variable Uniform
              21:             TypeInt 32 1
              22:     21(int) Constant 0
              23:     21(int) Constant 1
              24:             TypePointer Uniform 7(fvec4)
              27:             TypePointer Input 21(int)
           28(i):     27(ptr) Variable Input
              33:     10(int) Constant 3
              34:             TypeArray 7(fvec4) 33
              35:             TypePointer Input 34
       36(input):     35(ptr) Variable Input
              37:     21(int) Constant 2
              38:             TypePointer Input 7(fvec4)
              46:     10(int) Constant 10
              47:             TypeArray 7(fvec4) 46
              48:             TypePointer Function 47
              50:     21(int) Constant 5
              51:             TypePointer Function 7(fvec4)
4(PixelShaderFunction):           2 Function None 3
               5:             Label
           49(b):     48(ptr) Variable Function
              25:     24(ptr) AccessChain 20 22 23
              26:    7(fvec4) Load 25
              29:     21(int) Load 28(i)
              30:     24(ptr) AccessChain 20 22 29
              31:    7(fvec4) Load 30
              32:    7(fvec4) FAdd 26 31
              39:     38(ptr) AccessChain 36(input) 37
              40:    7(fvec4) Load 39
              41:    7(fvec4) FAdd 32 40
              42:     21(int) Load 28(i)
              43:     38(ptr) AccessChain 36(input) 42
              44:    7(fvec4) Load 43
              45:    7(fvec4) FAdd 41 44
              52:     51(ptr) AccessChain 49(b) 50
              53:    7(fvec4) Load 52
              54:    7(fvec4) FAdd 45 53
              55:     21(int) Load 28(i)
              56:     51(ptr) AccessChain 49(b) 55
              57:    7(fvec4) Load 56
              58:    7(fvec4) FAdd 54 57
              59:     21(int) Load 28(i)
              60:     21(int) Load 28(i)
              61:     24(ptr) AccessChain 20 23 59 22 60
              62:    7(fvec4) Load 61
              63:    7(fvec4) FAdd 58 62
                              Store 9(@entryPointOutput) 63
                              Return
                              FunctionEnd
