glslang/Test/baseResults/hlsl.precedence2.frag.out
John Kessenich 7dc630f3da HLSL: Flatten a return struct from an entry point and assign locations after flattening.
Locations now get assigned in order, but skipping built-ins, which can be
done post flattening.
2016-09-16 01:44:43 -06:00

128 lines
5.2 KiB
Plaintext
Executable File

hlsl.precedence2.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
0:7 Function Parameters:
0:7 'a1' (layout(location=0 ) in int)
0:7 'a2' (layout(location=1 ) in int)
0:7 'a3' (layout(location=2 ) in int)
0:7 'a4' (layout(location=3 ) in int)
0:? Sequence
0:8 Sequence
0:8 move second child to first child (temp int)
0:? '@entryPointOutput' (layout(location=0 ) out int)
0:8 add (temp int)
0:8 left-shift (temp int)
0:8 add (temp int)
0:8 component-wise multiply (temp int)
0:8 'a1' (layout(location=0 ) in int)
0:8 'a2' (layout(location=1 ) in int)
0:8 'a3' (layout(location=2 ) in int)
0:8 'a4' (layout(location=3 ) in int)
0:8 left-shift (temp int)
0:8 'a1' (layout(location=0 ) in int)
0:8 add (temp int)
0:8 'a2' (layout(location=1 ) in int)
0:8 component-wise multiply (temp int)
0:8 'a3' (layout(location=2 ) in int)
0:8 'a4' (layout(location=3 ) in int)
0:8 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out int)
0:? 'a1' (layout(location=0 ) in int)
0:? 'a2' (layout(location=1 ) in int)
0:? 'a3' (layout(location=2 ) in int)
0:? 'a4' (layout(location=3 ) in int)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
0:7 Function Parameters:
0:7 'a1' (layout(location=0 ) in int)
0:7 'a2' (layout(location=1 ) in int)
0:7 'a3' (layout(location=2 ) in int)
0:7 'a4' (layout(location=3 ) in int)
0:? Sequence
0:8 Sequence
0:8 move second child to first child (temp int)
0:? '@entryPointOutput' (layout(location=0 ) out int)
0:8 add (temp int)
0:8 left-shift (temp int)
0:8 add (temp int)
0:8 component-wise multiply (temp int)
0:8 'a1' (layout(location=0 ) in int)
0:8 'a2' (layout(location=1 ) in int)
0:8 'a3' (layout(location=2 ) in int)
0:8 'a4' (layout(location=3 ) in int)
0:8 left-shift (temp int)
0:8 'a1' (layout(location=0 ) in int)
0:8 add (temp int)
0:8 'a2' (layout(location=1 ) in int)
0:8 component-wise multiply (temp int)
0:8 'a3' (layout(location=2 ) in int)
0:8 'a4' (layout(location=3 ) in int)
0:8 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out int)
0:? 'a1' (layout(location=0 ) in int)
0:? 'a2' (layout(location=1 ) in int)
0:? 'a3' (layout(location=2 ) in int)
0:? 'a4' (layout(location=3 ) in int)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 30
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 8 10 12 15 18
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 8 "@entryPointOutput"
Name 10 "a1"
Name 12 "a2"
Name 15 "a3"
Name 18 "a4"
Decorate 8(@entryPointOutput) Location 0
Decorate 10(a1) Location 0
Decorate 12(a2) Location 1
Decorate 15(a3) Location 2
Decorate 18(a4) Location 3
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Output 6(int)
8(@entryPointOutput): 7(ptr) Variable Output
9: TypePointer Input 6(int)
10(a1): 9(ptr) Variable Input
12(a2): 9(ptr) Variable Input
15(a3): 9(ptr) Variable Input
18(a4): 9(ptr) Variable Input
4(PixelShaderFunction): 2 Function None 3
5: Label
11: 6(int) Load 10(a1)
13: 6(int) Load 12(a2)
14: 6(int) IMul 11 13
16: 6(int) Load 15(a3)
17: 6(int) IAdd 14 16
19: 6(int) Load 18(a4)
20: 6(int) ShiftLeftLogical 17 19
21: 6(int) Load 10(a1)
22: 6(int) Load 12(a2)
23: 6(int) Load 15(a3)
24: 6(int) Load 18(a4)
25: 6(int) IMul 23 24
26: 6(int) IAdd 22 25
27: 6(int) ShiftLeftLogical 21 26
28: 6(int) IAdd 20 27
Store 8(@entryPointOutput) 28
Return
FunctionEnd