HLSL: Non-functional: add vector ? : tests.

This commit is contained in:
John Kessenich
2017-04-11 17:30:08 -06:00
parent 13075c612c
commit 34718204e1
3 changed files with 425 additions and 362 deletions

View File

@@ -2,122 +2,133 @@ hlsl.conditional.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' ( in 4-component vector of float)
0:8 Function Definition: vectorCond( ( temp 4-component vector of float)
0:8 Function Parameters:
0:? Sequence
0:9 Branch: Return with expression
0:9 f4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 2 (const uint)
0:14 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:14 Function Parameters:
0:14 'input' ( in 4-component vector of float)
0:? Sequence
0:15 Sequence
0:15 move second child to first child ( temp int)
0:15 'a' ( temp int)
0:15 Constant:
0:15 5 (const int)
0:16 Sequence
0:16 move second child to first child ( temp int)
0:16 'b' ( temp int)
0:16 Constant:
0:16 6 (const int)
0:17 Sequence
0:17 move second child to first child ( temp int)
0:17 'c' ( temp int)
0:17 Constant:
0:17 7 (const int)
0:18 Sequence
0:18 move second child to first child ( temp int)
0:18 'd' ( temp int)
0:18 Constant:
0:18 7 (const int)
0:19 Sequence
0:19 move second child to first child ( temp 4-component vector of float)
0:19 'ret' ( temp 4-component vector of float)
0:21 add ( temp 4-component vector of float)
0:20 add ( temp 4-component vector of float)
0:19 add ( temp 4-component vector of float)
0:19 vector-scale ( temp 4-component vector of float)
0:19 Convert int to float ( temp float)
0:19 'a' ( temp int)
0:19 'input' ( in 4-component vector of float)
0:20 vector-scale ( temp 4-component vector of float)
0:20 Convert int to float ( temp float)
0:20 'b' ( temp int)
0:20 'input' ( in 4-component vector of float)
0:21 vector-scale ( temp 4-component vector of float)
0:21 Convert int to float ( temp float)
0:21 'c' ( temp int)
0:21 'input' ( in 4-component vector of float)
0:22 vector-scale ( temp 4-component vector of float)
0:22 Convert int to float ( temp float)
0:22 'd' ( temp int)
0:22 'input' ( in 4-component vector of float)
0:24 Comma ( temp int)
0:24 move second child to first child ( temp int)
0:24 'e' ( temp int)
0:24 move second child to first child ( temp int)
0:24 'a' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'b' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'c' ( temp int)
0:24 'd' ( temp int)
0:24 false case
0:24 Constant:
0:24 10 (const int)
0:24 move second child to first child ( temp int)
0:24 'b' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'a' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'd' ( temp int)
0:24 'c' ( temp int)
0:24 false case
0:24 Constant:
0:24 11 (const int)
0:26 move second child to first child ( temp 4-component vector of float)
0:26 'f' ( temp 4-component vector of float)
0:26 Test condition and select ( temp 4-component vector of float)
0:26 Condition
0:26 Compare Less Than ( temp bool)
0:26 direct index ( temp float)
0:26 'ret' ( temp 4-component vector of float)
0:26 Constant:
0:26 0 (const int)
0:26 direct index ( temp float)
0:26 'input' ( in 4-component vector of float)
0:26 Constant:
0:26 1 (const int)
0:26 true case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'c' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:26 false case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'd' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:27 Branch: Return with expression
0:27 add ( temp 4-component vector of float)
0:27 add ( temp 4-component vector of float)
0:27 vector-scale ( temp 4-component vector of float)
0:27 Convert int to float ( temp float)
0:27 'e' ( temp int)
0:27 'ret' ( temp 4-component vector of float)
0:27 'f' ( temp 4-component vector of float)
0:27 Function Call: vectorCond( ( temp 4-component vector of float)
0:14 Function Definition: PixelShaderFunction( ( temp void)
0:14 Function Parameters:
0:? Sequence
0:3 Sequence
0:3 move second child to first child ( temp int)
0:3 'a' ( temp int)
0:3 Constant:
0:3 5 (const int)
0:4 Sequence
0:4 move second child to first child ( temp int)
0:4 'b' ( temp int)
0:4 Constant:
0:4 6 (const int)
0:5 Sequence
0:5 move second child to first child ( temp int)
0:5 'c' ( temp int)
0:5 Constant:
0:5 7 (const int)
0:6 Sequence
0:6 move second child to first child ( temp int)
0:6 'd' ( temp int)
0:6 Constant:
0:6 7 (const int)
0:7 Sequence
0:7 move second child to first child ( temp 4-component vector of float)
0:7 'ret' ( temp 4-component vector of float)
0:9 add ( temp 4-component vector of float)
0:8 add ( temp 4-component vector of float)
0:7 add ( temp 4-component vector of float)
0:7 vector-scale ( temp 4-component vector of float)
0:7 Convert int to float ( temp float)
0:7 'a' ( temp int)
0:7 'input' ( in 4-component vector of float)
0:8 vector-scale ( temp 4-component vector of float)
0:8 Convert int to float ( temp float)
0:8 'b' ( temp int)
0:8 'input' ( in 4-component vector of float)
0:9 vector-scale ( temp 4-component vector of float)
0:9 Convert int to float ( temp float)
0:9 'c' ( temp int)
0:9 'input' ( in 4-component vector of float)
0:10 vector-scale ( temp 4-component vector of float)
0:10 Convert int to float ( temp float)
0:10 'd' ( temp int)
0:10 'input' ( in 4-component vector of float)
0:12 Comma ( temp int)
0:12 move second child to first child ( temp int)
0:12 'e' ( temp int)
0:12 move second child to first child ( temp int)
0:12 'a' ( temp int)
0:12 Test condition and select ( temp int)
0:12 Condition
0:12 Convert int to bool ( temp bool)
0:12 'b' ( temp int)
0:12 true case
0:12 move second child to first child ( temp int)
0:12 'c' ( temp int)
0:12 'd' ( temp int)
0:12 false case
0:12 Constant:
0:12 10 (const int)
0:12 move second child to first child ( temp int)
0:12 'b' ( temp int)
0:12 Test condition and select ( temp int)
0:12 Condition
0:12 Convert int to bool ( temp bool)
0:12 'a' ( temp int)
0:12 true case
0:12 move second child to first child ( temp int)
0:12 'd' ( temp int)
0:12 'c' ( temp int)
0:12 false case
0:12 Constant:
0:12 11 (const int)
0:14 move second child to first child ( temp 4-component vector of float)
0:14 'f' ( temp 4-component vector of float)
0:14 Test condition and select ( temp 4-component vector of float)
0:14 Condition
0:14 Compare Less Than ( temp bool)
0:14 direct index ( temp float)
0:14 'ret' ( temp 4-component vector of float)
0:14 Constant:
0:14 0 (const int)
0:14 direct index ( temp float)
0:14 'input' ( in 4-component vector of float)
0:14 Constant:
0:14 1 (const int)
0:14 true case
0:14 vector-scale ( temp 4-component vector of float)
0:14 Convert int to float ( temp float)
0:14 'c' ( temp int)
0:14 'input' ( in 4-component vector of float)
0:14 false case
0:14 vector-scale ( temp 4-component vector of float)
0:14 Convert int to float ( temp float)
0:14 'd' ( temp int)
0:14 'input' ( in 4-component vector of float)
0:15 Branch: Return with expression
0:15 add ( temp 4-component vector of float)
0:15 vector-scale ( temp 4-component vector of float)
0:15 Convert int to float ( temp float)
0:15 'e' ( temp int)
0:15 'ret' ( temp 4-component vector of float)
0:15 'f' ( temp 4-component vector of float)
0:2 Function Definition: PixelShaderFunction( ( temp void)
0:2 Function Parameters:
0:? Sequence
0:2 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
0:2 move second child to first child ( temp 4-component vector of float)
0:14 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:14 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
@@ -128,282 +139,322 @@ Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:2 Function Parameters:
0:2 'input' ( in 4-component vector of float)
0:8 Function Definition: vectorCond( ( temp 4-component vector of float)
0:8 Function Parameters:
0:? Sequence
0:9 Branch: Return with expression
0:9 f4: direct index for structure ( uniform 4-component vector of float)
0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:9 Constant:
0:9 2 (const uint)
0:14 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:14 Function Parameters:
0:14 'input' ( in 4-component vector of float)
0:? Sequence
0:15 Sequence
0:15 move second child to first child ( temp int)
0:15 'a' ( temp int)
0:15 Constant:
0:15 5 (const int)
0:16 Sequence
0:16 move second child to first child ( temp int)
0:16 'b' ( temp int)
0:16 Constant:
0:16 6 (const int)
0:17 Sequence
0:17 move second child to first child ( temp int)
0:17 'c' ( temp int)
0:17 Constant:
0:17 7 (const int)
0:18 Sequence
0:18 move second child to first child ( temp int)
0:18 'd' ( temp int)
0:18 Constant:
0:18 7 (const int)
0:19 Sequence
0:19 move second child to first child ( temp 4-component vector of float)
0:19 'ret' ( temp 4-component vector of float)
0:21 add ( temp 4-component vector of float)
0:20 add ( temp 4-component vector of float)
0:19 add ( temp 4-component vector of float)
0:19 vector-scale ( temp 4-component vector of float)
0:19 Convert int to float ( temp float)
0:19 'a' ( temp int)
0:19 'input' ( in 4-component vector of float)
0:20 vector-scale ( temp 4-component vector of float)
0:20 Convert int to float ( temp float)
0:20 'b' ( temp int)
0:20 'input' ( in 4-component vector of float)
0:21 vector-scale ( temp 4-component vector of float)
0:21 Convert int to float ( temp float)
0:21 'c' ( temp int)
0:21 'input' ( in 4-component vector of float)
0:22 vector-scale ( temp 4-component vector of float)
0:22 Convert int to float ( temp float)
0:22 'd' ( temp int)
0:22 'input' ( in 4-component vector of float)
0:24 Comma ( temp int)
0:24 move second child to first child ( temp int)
0:24 'e' ( temp int)
0:24 move second child to first child ( temp int)
0:24 'a' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'b' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'c' ( temp int)
0:24 'd' ( temp int)
0:24 false case
0:24 Constant:
0:24 10 (const int)
0:24 move second child to first child ( temp int)
0:24 'b' ( temp int)
0:24 Test condition and select ( temp int)
0:24 Condition
0:24 Convert int to bool ( temp bool)
0:24 'a' ( temp int)
0:24 true case
0:24 move second child to first child ( temp int)
0:24 'd' ( temp int)
0:24 'c' ( temp int)
0:24 false case
0:24 Constant:
0:24 11 (const int)
0:26 move second child to first child ( temp 4-component vector of float)
0:26 'f' ( temp 4-component vector of float)
0:26 Test condition and select ( temp 4-component vector of float)
0:26 Condition
0:26 Compare Less Than ( temp bool)
0:26 direct index ( temp float)
0:26 'ret' ( temp 4-component vector of float)
0:26 Constant:
0:26 0 (const int)
0:26 direct index ( temp float)
0:26 'input' ( in 4-component vector of float)
0:26 Constant:
0:26 1 (const int)
0:26 true case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'c' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:26 false case
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'd' ( temp int)
0:26 'input' ( in 4-component vector of float)
0:27 Branch: Return with expression
0:27 add ( temp 4-component vector of float)
0:27 add ( temp 4-component vector of float)
0:27 vector-scale ( temp 4-component vector of float)
0:27 Convert int to float ( temp float)
0:27 'e' ( temp int)
0:27 'ret' ( temp 4-component vector of float)
0:27 'f' ( temp 4-component vector of float)
0:27 Function Call: vectorCond( ( temp 4-component vector of float)
0:14 Function Definition: PixelShaderFunction( ( temp void)
0:14 Function Parameters:
0:? Sequence
0:3 Sequence
0:3 move second child to first child ( temp int)
0:3 'a' ( temp int)
0:3 Constant:
0:3 5 (const int)
0:4 Sequence
0:4 move second child to first child ( temp int)
0:4 'b' ( temp int)
0:4 Constant:
0:4 6 (const int)
0:5 Sequence
0:5 move second child to first child ( temp int)
0:5 'c' ( temp int)
0:5 Constant:
0:5 7 (const int)
0:6 Sequence
0:6 move second child to first child ( temp int)
0:6 'd' ( temp int)
0:6 Constant:
0:6 7 (const int)
0:7 Sequence
0:7 move second child to first child ( temp 4-component vector of float)
0:7 'ret' ( temp 4-component vector of float)
0:9 add ( temp 4-component vector of float)
0:8 add ( temp 4-component vector of float)
0:7 add ( temp 4-component vector of float)
0:7 vector-scale ( temp 4-component vector of float)
0:7 Convert int to float ( temp float)
0:7 'a' ( temp int)
0:7 'input' ( in 4-component vector of float)
0:8 vector-scale ( temp 4-component vector of float)
0:8 Convert int to float ( temp float)
0:8 'b' ( temp int)
0:8 'input' ( in 4-component vector of float)
0:9 vector-scale ( temp 4-component vector of float)
0:9 Convert int to float ( temp float)
0:9 'c' ( temp int)
0:9 'input' ( in 4-component vector of float)
0:10 vector-scale ( temp 4-component vector of float)
0:10 Convert int to float ( temp float)
0:10 'd' ( temp int)
0:10 'input' ( in 4-component vector of float)
0:12 Comma ( temp int)
0:12 move second child to first child ( temp int)
0:12 'e' ( temp int)
0:12 move second child to first child ( temp int)
0:12 'a' ( temp int)
0:12 Test condition and select ( temp int)
0:12 Condition
0:12 Convert int to bool ( temp bool)
0:12 'b' ( temp int)
0:12 true case
0:12 move second child to first child ( temp int)
0:12 'c' ( temp int)
0:12 'd' ( temp int)
0:12 false case
0:12 Constant:
0:12 10 (const int)
0:12 move second child to first child ( temp int)
0:12 'b' ( temp int)
0:12 Test condition and select ( temp int)
0:12 Condition
0:12 Convert int to bool ( temp bool)
0:12 'a' ( temp int)
0:12 true case
0:12 move second child to first child ( temp int)
0:12 'd' ( temp int)
0:12 'c' ( temp int)
0:12 false case
0:12 Constant:
0:12 11 (const int)
0:14 move second child to first child ( temp 4-component vector of float)
0:14 'f' ( temp 4-component vector of float)
0:14 Test condition and select ( temp 4-component vector of float)
0:14 Condition
0:14 Compare Less Than ( temp bool)
0:14 direct index ( temp float)
0:14 'ret' ( temp 4-component vector of float)
0:14 Constant:
0:14 0 (const int)
0:14 direct index ( temp float)
0:14 'input' ( in 4-component vector of float)
0:14 Constant:
0:14 1 (const int)
0:14 true case
0:14 vector-scale ( temp 4-component vector of float)
0:14 Convert int to float ( temp float)
0:14 'c' ( temp int)
0:14 'input' ( in 4-component vector of float)
0:14 false case
0:14 vector-scale ( temp 4-component vector of float)
0:14 Convert int to float ( temp float)
0:14 'd' ( temp int)
0:14 'input' ( in 4-component vector of float)
0:15 Branch: Return with expression
0:15 add ( temp 4-component vector of float)
0:15 vector-scale ( temp 4-component vector of float)
0:15 Convert int to float ( temp float)
0:15 'e' ( temp int)
0:15 'ret' ( temp 4-component vector of float)
0:15 'f' ( temp 4-component vector of float)
0:2 Function Definition: PixelShaderFunction( ( temp void)
0:2 Function Parameters:
0:? Sequence
0:2 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
0:2 move second child to first child ( temp 4-component vector of float)
0:14 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:14 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 102
// Id's are bound by 116
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 95 98
EntryPoint Fragment 4 "PixelShaderFunction" 109 112
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
Name 11 "@PixelShaderFunction(vf4;"
Name 10 "input"
Name 15 "a"
Name 17 "b"
Name 19 "c"
Name 21 "d"
Name 22 "ret"
Name 42 "e"
Name 64 "f"
Name 93 "input"
Name 95 "input"
Name 98 "@entryPointOutput"
Name 99 "param"
Decorate 95(input) Location 0
Decorate 98(@entryPointOutput) Location 0
Name 9 "vectorCond("
Name 14 "@PixelShaderFunction(vf4;"
Name 13 "input"
Name 16 "$Global"
MemberName 16($Global) 0 "c4"
MemberName 16($Global) 1 "t4"
MemberName 16($Global) 2 "f4"
MemberName 16($Global) 3 "t"
MemberName 16($Global) 4 "f"
Name 18 ""
Name 27 "a"
Name 29 "b"
Name 31 "c"
Name 33 "d"
Name 34 "ret"
Name 54 "e"
Name 76 "f"
Name 107 "input"
Name 109 "input"
Name 112 "@entryPointOutput"
Name 113 "param"
MemberDecorate 16($Global) 0 Offset 0
MemberDecorate 16($Global) 1 Offset 16
MemberDecorate 16($Global) 2 Offset 32
MemberDecorate 16($Global) 3 Offset 48
MemberDecorate 16($Global) 4 Offset 52
Decorate 16($Global) Block
Decorate 18 DescriptorSet 0
Decorate 109(input) Location 0
Decorate 112(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
13: TypeInt 32 1
14: TypePointer Function 13(int)
16: 13(int) Constant 5
18: 13(int) Constant 6
20: 13(int) Constant 7
45: TypeBool
46: TypeInt 32 0
47: 46(int) Constant 0
53: 13(int) Constant 10
62: 13(int) Constant 11
66: TypePointer Function 6(float)
69: 46(int) Constant 1
94: TypePointer Input 7(fvec4)
95(input): 94(ptr) Variable Input
97: TypePointer Output 7(fvec4)
98(@entryPointOutput): 97(ptr) Variable Output
8: TypeFunction 7(fvec4)
11: TypePointer Function 7(fvec4)
12: TypeFunction 7(fvec4) 11(ptr)
16($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 6(float) 6(float)
17: TypePointer Uniform 16($Global)
18: 17(ptr) Variable Uniform
19: TypeInt 32 1
20: 19(int) Constant 2
21: TypePointer Uniform 7(fvec4)
26: TypePointer Function 19(int)
28: 19(int) Constant 5
30: 19(int) Constant 6
32: 19(int) Constant 7
57: TypeBool
58: TypeInt 32 0
59: 58(int) Constant 0
65: 19(int) Constant 10
74: 19(int) Constant 11
78: TypePointer Function 6(float)
81: 58(int) Constant 1
108: TypePointer Input 7(fvec4)
109(input): 108(ptr) Variable Input
111: TypePointer Output 7(fvec4)
112(@entryPointOutput): 111(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
93(input): 8(ptr) Variable Function
99(param): 8(ptr) Variable Function
96: 7(fvec4) Load 95(input)
Store 93(input) 96
100: 7(fvec4) Load 93(input)
Store 99(param) 100
101: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 99(param)
Store 98(@entryPointOutput) 101
107(input): 11(ptr) Variable Function
113(param): 11(ptr) Variable Function
110: 7(fvec4) Load 109(input)
Store 107(input) 110
114: 7(fvec4) Load 107(input)
Store 113(param) 114
115: 7(fvec4) FunctionCall 14(@PixelShaderFunction(vf4;) 113(param)
Store 112(@entryPointOutput) 115
Return
FunctionEnd
11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
12: Label
15(a): 14(ptr) Variable Function
17(b): 14(ptr) Variable Function
19(c): 14(ptr) Variable Function
21(d): 14(ptr) Variable Function
22(ret): 8(ptr) Variable Function
42(e): 14(ptr) Variable Function
43: 14(ptr) Variable Function
55: 14(ptr) Variable Function
64(f): 8(ptr) Variable Function
65: 8(ptr) Variable Function
Store 15(a) 16
Store 17(b) 18
Store 19(c) 20
Store 21(d) 20
23: 13(int) Load 15(a)
24: 6(float) ConvertSToF 23
25: 7(fvec4) Load 10(input)
26: 7(fvec4) VectorTimesScalar 25 24
27: 13(int) Load 17(b)
28: 6(float) ConvertSToF 27
29: 7(fvec4) Load 10(input)
30: 7(fvec4) VectorTimesScalar 29 28
31: 7(fvec4) FAdd 26 30
32: 13(int) Load 19(c)
33: 6(float) ConvertSToF 32
34: 7(fvec4) Load 10(input)
35: 7(fvec4) VectorTimesScalar 34 33
36: 7(fvec4) FAdd 31 35
37: 13(int) Load 21(d)
38: 6(float) ConvertSToF 37
39: 7(fvec4) Load 10(input)
40: 7(fvec4) VectorTimesScalar 39 38
41: 7(fvec4) FAdd 36 40
Store 22(ret) 41
44: 13(int) Load 17(b)
48: 45(bool) INotEqual 44 47
SelectionMerge 50 None
BranchConditional 48 49 52
49: Label
51: 13(int) Load 21(d)
Store 19(c) 51
Store 43 51
Branch 50
52: Label
Store 43 53
Branch 50
50: Label
54: 13(int) Load 43
Store 15(a) 54
Store 42(e) 54
56: 13(int) Load 15(a)
57: 45(bool) INotEqual 56 47
SelectionMerge 59 None
BranchConditional 57 58 61
58: Label
60: 13(int) Load 19(c)
Store 21(d) 60
Store 55 60
Branch 59
61: Label
Store 55 62
Branch 59
59: Label
63: 13(int) Load 55
Store 17(b) 63
67: 66(ptr) AccessChain 22(ret) 47
68: 6(float) Load 67
70: 66(ptr) AccessChain 10(input) 69
71: 6(float) Load 70
72: 45(bool) FOrdLessThan 68 71
SelectionMerge 74 None
BranchConditional 72 73 79
73: Label
75: 13(int) Load 19(c)
76: 6(float) ConvertSToF 75
77: 7(fvec4) Load 10(input)
78: 7(fvec4) VectorTimesScalar 77 76
Store 65 78
Branch 74
79: Label
80: 13(int) Load 21(d)
81: 6(float) ConvertSToF 80
82: 7(fvec4) Load 10(input)
83: 7(fvec4) VectorTimesScalar 82 81
Store 65 83
Branch 74
74: Label
84: 7(fvec4) Load 65
Store 64(f) 84
85: 13(int) Load 42(e)
86: 6(float) ConvertSToF 85
87: 7(fvec4) Load 22(ret)
88: 7(fvec4) VectorTimesScalar 87 86
89: 7(fvec4) Load 64(f)
90: 7(fvec4) FAdd 88 89
ReturnValue 90
9(vectorCond(): 7(fvec4) Function None 8
10: Label
22: 21(ptr) AccessChain 18 20
23: 7(fvec4) Load 22
ReturnValue 23
FunctionEnd
14(@PixelShaderFunction(vf4;): 7(fvec4) Function None 12
13(input): 11(ptr) FunctionParameter
15: Label
27(a): 26(ptr) Variable Function
29(b): 26(ptr) Variable Function
31(c): 26(ptr) Variable Function
33(d): 26(ptr) Variable Function
34(ret): 11(ptr) Variable Function
54(e): 26(ptr) Variable Function
55: 26(ptr) Variable Function
67: 26(ptr) Variable Function
76(f): 11(ptr) Variable Function
77: 11(ptr) Variable Function
Store 27(a) 28
Store 29(b) 30
Store 31(c) 32
Store 33(d) 32
35: 19(int) Load 27(a)
36: 6(float) ConvertSToF 35
37: 7(fvec4) Load 13(input)
38: 7(fvec4) VectorTimesScalar 37 36
39: 19(int) Load 29(b)
40: 6(float) ConvertSToF 39
41: 7(fvec4) Load 13(input)
42: 7(fvec4) VectorTimesScalar 41 40
43: 7(fvec4) FAdd 38 42
44: 19(int) Load 31(c)
45: 6(float) ConvertSToF 44
46: 7(fvec4) Load 13(input)
47: 7(fvec4) VectorTimesScalar 46 45
48: 7(fvec4) FAdd 43 47
49: 19(int) Load 33(d)
50: 6(float) ConvertSToF 49
51: 7(fvec4) Load 13(input)
52: 7(fvec4) VectorTimesScalar 51 50
53: 7(fvec4) FAdd 48 52
Store 34(ret) 53
56: 19(int) Load 29(b)
60: 57(bool) INotEqual 56 59
SelectionMerge 62 None
BranchConditional 60 61 64
61: Label
63: 19(int) Load 33(d)
Store 31(c) 63
Store 55 63
Branch 62
64: Label
Store 55 65
Branch 62
62: Label
66: 19(int) Load 55
Store 27(a) 66
Store 54(e) 66
68: 19(int) Load 27(a)
69: 57(bool) INotEqual 68 59
SelectionMerge 71 None
BranchConditional 69 70 73
70: Label
72: 19(int) Load 31(c)
Store 33(d) 72
Store 67 72
Branch 71
73: Label
Store 67 74
Branch 71
71: Label
75: 19(int) Load 67
Store 29(b) 75
79: 78(ptr) AccessChain 34(ret) 59
80: 6(float) Load 79
82: 78(ptr) AccessChain 13(input) 81
83: 6(float) Load 82
84: 57(bool) FOrdLessThan 80 83
SelectionMerge 86 None
BranchConditional 84 85 91
85: Label
87: 19(int) Load 31(c)
88: 6(float) ConvertSToF 87
89: 7(fvec4) Load 13(input)
90: 7(fvec4) VectorTimesScalar 89 88
Store 77 90
Branch 86
91: Label
92: 19(int) Load 33(d)
93: 6(float) ConvertSToF 92
94: 7(fvec4) Load 13(input)
95: 7(fvec4) VectorTimesScalar 94 93
Store 77 95
Branch 86
86: Label
96: 7(fvec4) Load 77
Store 76(f) 96
97: 19(int) Load 54(e)
98: 6(float) ConvertSToF 97
99: 7(fvec4) Load 34(ret)
100: 7(fvec4) VectorTimesScalar 99 98
101: 7(fvec4) Load 76(f)
102: 7(fvec4) FAdd 100 101
103: 7(fvec4) FunctionCall 9(vectorCond()
104: 7(fvec4) FAdd 102 103
ReturnValue 104
FunctionEnd

View File

@@ -1,3 +1,15 @@
float4 c4;
float4 t4;
float4 f4;
float t;
float f;
float4 vectorCond()
{
return f4; // return (c4 ? t4 : f4) +
// (c4 ? t : f );
}
float4 PixelShaderFunction(float4 input) : COLOR0
{
int a = 1 < 2 ? 3 < 4 ? 5 : 6 : 7;
@@ -12,5 +24,5 @@ float4 PixelShaderFunction(float4 input) : COLOR0
e = a = b ? c = d : 10, b = a ? d = c : 11;
float4 f;
f = ret.x < input.y ? c * input : d * input;
return e * ret + f;
return e * ret + f + vectorCond();
}