1hlsl.flatten.return.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50: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})
60:11    Function Parameters:
70:?     Sequence
80:12      Branch: Return with expression
90:?         Constant:
100:?           1.000000
110:?           1.000000
120:?           1.000000
130:?           1.000000
140:?           2.000000
150:?           3.000000
160:?           4.000000
170: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})
180:16    Function Parameters:
190:?     Sequence
200:17      Branch: Return with expression
210: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})
220:16  Function Definition: main( ( temp void)
230:16    Function Parameters:
240:?     Sequence
250:16      Sequence
260: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})
270: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})
280: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})
290:16        move second child to first child ( temp 4-component vector of float)
300:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
310:16          color: direct index for structure ( temp 4-component vector of float)
320: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})
330:16            Constant:
340:16              0 (const int)
350:16        move second child to first child ( temp float)
360:?           '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
370:16          other_struct_member1: direct index for structure ( temp float)
380: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})
390:16            Constant:
400:16              1 (const int)
410:16        move second child to first child ( temp float)
420:?           '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
430:16          other_struct_member2: direct index for structure ( temp float)
440: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})
450:16            Constant:
460:16              2 (const int)
470:16        move second child to first child ( temp float)
480:?           '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
490:16          other_struct_member3: direct index for structure ( temp float)
500: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})
510:16            Constant:
520:16              3 (const int)
530:?   Linker Objects
540:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
550:?     '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
560:?     '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
570:?     '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
58
59
60Linked fragment stage:
61
62
63Shader version: 500
64gl_FragCoord origin is upper left
650:? Sequence
660: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})
670:11    Function Parameters:
680:?     Sequence
690:12      Branch: Return with expression
700:?         Constant:
710:?           1.000000
720:?           1.000000
730:?           1.000000
740:?           1.000000
750:?           2.000000
760:?           3.000000
770:?           4.000000
780: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})
790:16    Function Parameters:
800:?     Sequence
810:17      Branch: Return with expression
820: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})
830:16  Function Definition: main( ( temp void)
840:16    Function Parameters:
850:?     Sequence
860:16      Sequence
870: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})
880: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})
890: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})
900:16        move second child to first child ( temp 4-component vector of float)
910:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
920:16          color: direct index for structure ( temp 4-component vector of float)
930: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})
940:16            Constant:
950:16              0 (const int)
960:16        move second child to first child ( temp float)
970:?           '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
980:16          other_struct_member1: direct index for structure ( temp float)
990: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})
1000:16            Constant:
1010:16              1 (const int)
1020:16        move second child to first child ( temp float)
1030:?           '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
1040:16          other_struct_member2: direct index for structure ( temp float)
1050: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})
1060:16            Constant:
1070:16              2 (const int)
1080:16        move second child to first child ( temp float)
1090:?           '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
1100:16          other_struct_member3: direct index for structure ( temp float)
1110: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})
1120:16            Constant:
1130:16              3 (const int)
1140:?   Linker Objects
1150:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
1160:?     '@entryPointOutput.other_struct_member1' (layout( location=1) out float)
1170:?     '@entryPointOutput.other_struct_member2' (layout( location=2) out float)
1180:?     '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
119
120// Module Version 10000
121// Generated by (magic number): 80007
122// Id's are bound by 49
123
124                              Capability Shader
125               1:             ExtInstImport  "GLSL.std.450"
126                              MemoryModel Logical GLSL450
127                              EntryPoint Fragment 4  "main" 29 36 41 45
128                              ExecutionMode 4 OriginUpperLeft
129                              Source HLSL 500
130                              Name 4  "main"
131                              Name 8  "PS_OUTPUT"
132                              MemberName 8(PS_OUTPUT) 0  "color"
133                              MemberName 8(PS_OUTPUT) 1  "other_struct_member1"
134                              MemberName 8(PS_OUTPUT) 2  "other_struct_member2"
135                              MemberName 8(PS_OUTPUT) 3  "other_struct_member3"
136                              Name 10  "Func1("
137                              Name 12  "@main("
138                              Name 26  "flattenTemp"
139                              Name 29  "@entryPointOutput.color"
140                              Name 36  "@entryPointOutput.other_struct_member1"
141                              Name 41  "@entryPointOutput.other_struct_member2"
142                              Name 45  "@entryPointOutput.other_struct_member3"
143                              Decorate 29(@entryPointOutput.color) Location 0
144                              Decorate 36(@entryPointOutput.other_struct_member1) Location 1
145                              Decorate 41(@entryPointOutput.other_struct_member2) Location 2
146                              Decorate 45(@entryPointOutput.other_struct_member3) Location 3
147               2:             TypeVoid
148               3:             TypeFunction 2
149               6:             TypeFloat 32
150               7:             TypeVector 6(float) 4
151    8(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float) 6(float) 6(float)
152               9:             TypeFunction 8(PS_OUTPUT)
153              14:    6(float) Constant 1065353216
154              15:    7(fvec4) ConstantComposite 14 14 14 14
155              16:    6(float) Constant 1073741824
156              17:    6(float) Constant 1077936128
157              18:    6(float) Constant 1082130432
158              19:8(PS_OUTPUT) ConstantComposite 15 16 17 18
159              25:             TypePointer Function 8(PS_OUTPUT)
160              28:             TypePointer Output 7(fvec4)
16129(@entryPointOutput.color):     28(ptr) Variable Output
162              30:             TypeInt 32 1
163              31:     30(int) Constant 0
164              32:             TypePointer Function 7(fvec4)
165              35:             TypePointer Output 6(float)
16636(@entryPointOutput.other_struct_member1):     35(ptr) Variable Output
167              37:     30(int) Constant 1
168              38:             TypePointer Function 6(float)
16941(@entryPointOutput.other_struct_member2):     35(ptr) Variable Output
170              42:     30(int) Constant 2
17145(@entryPointOutput.other_struct_member3):     35(ptr) Variable Output
172              46:     30(int) Constant 3
173         4(main):           2 Function None 3
174               5:             Label
175 26(flattenTemp):     25(ptr) Variable Function
176              27:8(PS_OUTPUT) FunctionCall 12(@main()
177                              Store 26(flattenTemp) 27
178              33:     32(ptr) AccessChain 26(flattenTemp) 31
179              34:    7(fvec4) Load 33
180                              Store 29(@entryPointOutput.color) 34
181              39:     38(ptr) AccessChain 26(flattenTemp) 37
182              40:    6(float) Load 39
183                              Store 36(@entryPointOutput.other_struct_member1) 40
184              43:     38(ptr) AccessChain 26(flattenTemp) 42
185              44:    6(float) Load 43
186                              Store 41(@entryPointOutput.other_struct_member2) 44
187              47:     38(ptr) AccessChain 26(flattenTemp) 46
188              48:    6(float) Load 47
189                              Store 45(@entryPointOutput.other_struct_member3) 48
190                              Return
191                              FunctionEnd
192      10(Func1():8(PS_OUTPUT) Function None 9
193              11:             Label
194                              ReturnValue 19
195                              FunctionEnd
196      12(@main():8(PS_OUTPUT) Function None 9
197              13:             Label
198              22:8(PS_OUTPUT) FunctionCall 10(Func1()
199                              ReturnValue 22
200                              FunctionEnd
201