hlsl.flatten.return.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:11  Function Definition: Func1( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:11    Function Parameters: 
0:?     Sequence
0:12      Branch: Return with expression
0:12        Constant:
0:12          1.000000
0:12          1.000000
0:12          1.000000
0:12          1.000000
0:12          2.000000
0:12          3.000000
0:12          4.000000
0:16  Function Definition: @main( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16    Function Parameters: 
0:?     Sequence
0:17      Branch: Return with expression
0:17        Function Call: Func1( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      Sequence
0:16        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16          'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16          Function Call: @main( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
0:16          other_struct_member1: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
0:16          other_struct_member2: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              2 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
0:16          other_struct_member3: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              3 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:?     '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
0:?     '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
0:?     '@entryPointOutput.other_struct_member3' (layout( location=3) out float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:11  Function Definition: Func1( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:11    Function Parameters: 
0:?     Sequence
0:12      Branch: Return with expression
0:12        Constant:
0:12          1.000000
0:12          1.000000
0:12          1.000000
0:12          1.000000
0:12          2.000000
0:12          3.000000
0:12          4.000000
0:16  Function Definition: @main( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16    Function Parameters: 
0:?     Sequence
0:17      Branch: Return with expression
0:17        Function Call: Func1( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      Sequence
0:16        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16          'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16          Function Call: @main( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:16          color: direct index for structure ( temp 4-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
0:16          other_struct_member1: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
0:16          other_struct_member2: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              2 (const int)
0:16        move second child to first child ( temp float)
0:?           '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
0:16          other_struct_member3: direct index for structure ( temp float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
0:16            Constant:
0:16              3 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:?     '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
0:?     '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
0:?     '@entryPointOutput.other_struct_member3' (layout( location=3) out float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 29 36 41 45
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "color"
                              MemberName 8(PS_OUTPUT) 1  "other_struct_member1"
                              MemberName 8(PS_OUTPUT) 2  "other_struct_member2"
                              MemberName 8(PS_OUTPUT) 3  "other_struct_member3"
                              Name 10  "Func1("
                              Name 12  "@main("
                              Name 26  "flattenTemp"
                              Name 29  "@entryPointOutput.color"
                              Name 36  "@entryPointOutput.other_struct_member1"
                              Name 41  "@entryPointOutput.other_struct_member2"
                              Name 45  "@entryPointOutput.other_struct_member3"
                              Decorate 29(@entryPointOutput.color) Location 0
                              Decorate 36(@entryPointOutput.other_struct_member1) Location 1
                              Decorate 41(@entryPointOutput.other_struct_member2) Location 2
                              Decorate 45(@entryPointOutput.other_struct_member3) Location 3
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float) 6(float) 6(float)
               9:             TypeFunction 8(PS_OUTPUT)
              14:    6(float) Constant 1065353216
              15:    7(fvec4) ConstantComposite 14 14 14 14
              16:    6(float) Constant 1073741824
              17:    6(float) Constant 1077936128
              18:    6(float) Constant 1082130432
              19:8(PS_OUTPUT) ConstantComposite 15 16 17 18
              25:             TypePointer Function 8(PS_OUTPUT)
              28:             TypePointer Output 7(fvec4)
29(@entryPointOutput.color):     28(ptr) Variable Output
              30:             TypeInt 32 1
              31:     30(int) Constant 0
              32:             TypePointer Function 7(fvec4)
              35:             TypePointer Output 6(float)
36(@entryPointOutput.other_struct_member1):     35(ptr) Variable Output
              37:     30(int) Constant 1
              38:             TypePointer Function 6(float)
41(@entryPointOutput.other_struct_member2):     35(ptr) Variable Output
              42:     30(int) Constant 2
45(@entryPointOutput.other_struct_member3):     35(ptr) Variable Output
              46:     30(int) Constant 3
         4(main):           2 Function None 3
               5:             Label
 26(flattenTemp):     25(ptr) Variable Function
              27:8(PS_OUTPUT) FunctionCall 12(@main()
                              Store 26(flattenTemp) 27
              33:     32(ptr) AccessChain 26(flattenTemp) 31
              34:    7(fvec4) Load 33
                              Store 29(@entryPointOutput.color) 34
              39:     38(ptr) AccessChain 26(flattenTemp) 37
              40:    6(float) Load 39
                              Store 36(@entryPointOutput.other_struct_member1) 40
              43:     38(ptr) AccessChain 26(flattenTemp) 42
              44:    6(float) Load 43
                              Store 41(@entryPointOutput.other_struct_member2) 44
              47:     38(ptr) AccessChain 26(flattenTemp) 46
              48:    6(float) Load 47
                              Store 45(@entryPointOutput.other_struct_member3) 48
                              Return
                              FunctionEnd
      10(Func1():8(PS_OUTPUT) Function None 9
              11:             Label
                              ReturnValue 19
                              FunctionEnd
      12(@main():8(PS_OUTPUT) Function None 9
              13:             Label
              22:8(PS_OUTPUT) FunctionCall 10(Func1()
                              ReturnValue 22
                              FunctionEnd
