hlsl.targetStruct2.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12    Function Parameters: 
0:12      'input' ( in structure{ temp float interp,  temp uint no_interp})
0:12      'po' ( out 4-component vector of float)
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of float)
0:14        o1: direct index for structure ( temp 4-component vector of float)
0:14          'pso' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:14          Constant:
0:14            0 (const int)
0:14        Construct vec4 ( temp 4-component vector of float)
0:14          Convert uint to float ( temp float)
0:14            no_interp: direct index for structure ( temp uint)
0:14              'input' ( in structure{ temp float interp,  temp uint no_interp})
0:14              Constant:
0:14                1 (const int)
0:14          interp: direct index for structure ( temp float)
0:14            'input' ( in structure{ temp float interp,  temp uint no_interp})
0:14            Constant:
0:14              0 (const int)
0:14          Constant:
0:14            0.000000
0:14          Constant:
0:14            1.000000
0:15      move second child to first child ( temp 4-component vector of float)
0:15        o2: direct index for structure ( temp 4-component vector of float)
0:15          'pso' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:15          Constant:
0:15            1 (const int)
0:15        Constant:
0:15          1.000000
0:15          1.000000
0:15          1.000000
0:15          1.000000
0:16      move second child to first child ( temp 4-component vector of float)
0:16        'po' ( out 4-component vector of float)
0:16        Constant:
0:16          0.000000
0:16          0.000000
0:16          0.000000
0:16          0.000000
0:18      Branch: Return with expression
0:18        'pso' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      Sequence
0:12        move second child to first child ( temp float)
0:12          interp: direct index for structure ( temp float)
0:?             'input' ( temp structure{ temp float interp,  temp uint no_interp})
0:12            Constant:
0:12              0 (const int)
0:?           'input.interp' (layout( location=0) in float)
0:12        move second child to first child ( temp uint)
0:12          no_interp: direct index for structure ( temp uint)
0:?             'input' ( temp structure{ temp float interp,  temp uint no_interp})
0:12            Constant:
0:12              1 (const int)
0:?           'input.no_interp' (layout( location=1) flat in uint)
0:12      Sequence
0:12        move second child to first child ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12          'flattenTemp' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12          Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:?             'input' ( temp structure{ temp float interp,  temp uint no_interp})
0:?             'po' ( temp 4-component vector of float)
0:12        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float)
0:12          o1: direct index for structure ( temp 4-component vector of float)
0:12            'flattenTemp' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12            Constant:
0:12              0 (const int)
0:12        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float)
0:12          o2: direct index for structure ( temp 4-component vector of float)
0:12            'flattenTemp' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12            Constant:
0:12              1 (const int)
0:12      move second child to first child ( temp 4-component vector of float)
0:?         'po' (layout( location=0) out 4-component vector of float)
0:?         'po' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float)
0:?     '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float)
0:?     'input.interp' (layout( location=0) in float)
0:?     'input.no_interp' (layout( location=1) flat in uint)
0:?     'po' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12    Function Parameters: 
0:12      'input' ( in structure{ temp float interp,  temp uint no_interp})
0:12      'po' ( out 4-component vector of float)
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of float)
0:14        o1: direct index for structure ( temp 4-component vector of float)
0:14          'pso' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:14          Constant:
0:14            0 (const int)
0:14        Construct vec4 ( temp 4-component vector of float)
0:14          Convert uint to float ( temp float)
0:14            no_interp: direct index for structure ( temp uint)
0:14              'input' ( in structure{ temp float interp,  temp uint no_interp})
0:14              Constant:
0:14                1 (const int)
0:14          interp: direct index for structure ( temp float)
0:14            'input' ( in structure{ temp float interp,  temp uint no_interp})
0:14            Constant:
0:14              0 (const int)
0:14          Constant:
0:14            0.000000
0:14          Constant:
0:14            1.000000
0:15      move second child to first child ( temp 4-component vector of float)
0:15        o2: direct index for structure ( temp 4-component vector of float)
0:15          'pso' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:15          Constant:
0:15            1 (const int)
0:15        Constant:
0:15          1.000000
0:15          1.000000
0:15          1.000000
0:15          1.000000
0:16      move second child to first child ( temp 4-component vector of float)
0:16        'po' ( out 4-component vector of float)
0:16        Constant:
0:16          0.000000
0:16          0.000000
0:16          0.000000
0:16          0.000000
0:18      Branch: Return with expression
0:18        'pso' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      Sequence
0:12        move second child to first child ( temp float)
0:12          interp: direct index for structure ( temp float)
0:?             'input' ( temp structure{ temp float interp,  temp uint no_interp})
0:12            Constant:
0:12              0 (const int)
0:?           'input.interp' (layout( location=0) in float)
0:12        move second child to first child ( temp uint)
0:12          no_interp: direct index for structure ( temp uint)
0:?             'input' ( temp structure{ temp float interp,  temp uint no_interp})
0:12            Constant:
0:12              1 (const int)
0:?           'input.no_interp' (layout( location=1) flat in uint)
0:12      Sequence
0:12        move second child to first child ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12          'flattenTemp' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12          Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:?             'input' ( temp structure{ temp float interp,  temp uint no_interp})
0:?             'po' ( temp 4-component vector of float)
0:12        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float)
0:12          o1: direct index for structure ( temp 4-component vector of float)
0:12            'flattenTemp' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12            Constant:
0:12              0 (const int)
0:12        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float)
0:12          o2: direct index for structure ( temp 4-component vector of float)
0:12            'flattenTemp' ( temp structure{ temp 4-component vector of float o1,  temp 4-component vector of float o2})
0:12            Constant:
0:12              1 (const int)
0:12      move second child to first child ( temp 4-component vector of float)
0:?         'po' (layout( location=0) out 4-component vector of float)
0:?         'po' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float)
0:?     '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float)
0:?     'input.interp' (layout( location=0) in float)
0:?     'input.no_interp' (layout( location=1) flat in uint)
0:?     'po' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 42 46 57 60 63
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PSInput"
                              MemberName 8(PSInput) 0  "interp"
                              MemberName 8(PSInput) 1  "no_interp"
                              Name 12  "PSOutput"
                              MemberName 12(PSOutput) 0  "o1"
                              MemberName 12(PSOutput) 1  "o2"
                              Name 16  "@main(struct-PSInput-f1-u11;vf4;"
                              Name 14  "input"
                              Name 15  "po"
                              Name 19  "pso"
                              Name 40  "input"
                              Name 42  "input.interp"
                              Name 46  "input.no_interp"
                              Name 49  "flattenTemp"
                              Name 50  "po"
                              Name 51  "param"
                              Name 53  "param"
                              Name 57  "@entryPointOutput.o1"
                              Name 60  "@entryPointOutput.o2"
                              Name 63  "po"
                              Decorate 42(input.interp) Location 0
                              Decorate 46(input.no_interp) Flat
                              Decorate 46(input.no_interp) Location 1
                              Decorate 57(@entryPointOutput.o1) Location 2
                              Decorate 60(@entryPointOutput.o2) Location 3
                              Decorate 63(po) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeInt 32 0
      8(PSInput):             TypeStruct 6(float) 7(int)
               9:             TypePointer Function 8(PSInput)
              10:             TypeVector 6(float) 4
              11:             TypePointer Function 10(fvec4)
    12(PSOutput):             TypeStruct 10(fvec4) 10(fvec4)
              13:             TypeFunction 12(PSOutput) 9(ptr) 11(ptr)
              18:             TypePointer Function 12(PSOutput)
              20:             TypeInt 32 1
              21:     20(int) Constant 0
              22:     20(int) Constant 1
              23:             TypePointer Function 7(int)
              27:             TypePointer Function 6(float)
              30:    6(float) Constant 0
              31:    6(float) Constant 1065353216
              34:   10(fvec4) ConstantComposite 31 31 31 31
              36:   10(fvec4) ConstantComposite 30 30 30 30
              41:             TypePointer Input 6(float)
42(input.interp):     41(ptr) Variable Input
              45:             TypePointer Input 7(int)
46(input.no_interp):     45(ptr) Variable Input
              56:             TypePointer Output 10(fvec4)
57(@entryPointOutput.o1):     56(ptr) Variable Output
60(@entryPointOutput.o2):     56(ptr) Variable Output
          63(po):     56(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       40(input):      9(ptr) Variable Function
 49(flattenTemp):     18(ptr) Variable Function
          50(po):     11(ptr) Variable Function
       51(param):      9(ptr) Variable Function
       53(param):     11(ptr) Variable Function
              43:    6(float) Load 42(input.interp)
              44:     27(ptr) AccessChain 40(input) 21
                              Store 44 43
              47:      7(int) Load 46(input.no_interp)
              48:     23(ptr) AccessChain 40(input) 22
                              Store 48 47
              52:  8(PSInput) Load 40(input)
                              Store 51(param) 52
              54:12(PSOutput) FunctionCall 16(@main(struct-PSInput-f1-u11;vf4;) 51(param) 53(param)
              55:   10(fvec4) Load 53(param)
                              Store 50(po) 55
                              Store 49(flattenTemp) 54
              58:     11(ptr) AccessChain 49(flattenTemp) 21
              59:   10(fvec4) Load 58
                              Store 57(@entryPointOutput.o1) 59
              61:     11(ptr) AccessChain 49(flattenTemp) 22
              62:   10(fvec4) Load 61
                              Store 60(@entryPointOutput.o2) 62
              64:   10(fvec4) Load 50(po)
                              Store 63(po) 64
                              Return
                              FunctionEnd
16(@main(struct-PSInput-f1-u11;vf4;):12(PSOutput) Function None 13
       14(input):      9(ptr) FunctionParameter
          15(po):     11(ptr) FunctionParameter
              17:             Label
         19(pso):     18(ptr) Variable Function
              24:     23(ptr) AccessChain 14(input) 22
              25:      7(int) Load 24
              26:    6(float) ConvertUToF 25
              28:     27(ptr) AccessChain 14(input) 21
              29:    6(float) Load 28
              32:   10(fvec4) CompositeConstruct 26 29 30 31
              33:     11(ptr) AccessChain 19(pso) 21
                              Store 33 32
              35:     11(ptr) AccessChain 19(pso) 22
                              Store 35 34
                              Store 15(po) 36
              37:12(PSOutput) Load 19(pso)
                              ReturnValue 37
                              FunctionEnd
