glslang/Test/baseResults/hlsl.conditional.frag.out
John Kessenich b5e739c20e HLSL: Fix boolean conversion bug and add more tests for ?:.
Null-conversion needs the right sized vectors to kick out with matching types.
2017-04-11 20:21:45 -06:00

687 lines
35 KiB
Plaintext
Executable File

hlsl.conditional.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: vectorCond( ( temp 4-component vector of float)
0:8 Function Parameters:
0:? Sequence
0:11 Branch: Return with expression
0:10 add ( temp 4-component vector of float)
0:9 add ( temp 4-component vector of float)
0:9 mix ( temp 4-component vector of float)
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:9 t4: 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 1 (const uint)
0:9 Convert float to bool ( temp 4-component vector of bool)
0:9 c4: 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 0 (const uint)
0:10 mix ( temp 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 f: direct index for structure ( uniform float)
0:10 '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:10 Constant:
0:10 4 (const uint)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 t: direct index for structure ( uniform float)
0:10 '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:10 Constant:
0:10 3 (const uint)
0:10 Convert float to bool ( temp 4-component vector of bool)
0:10 c4: direct index for structure ( uniform 4-component vector of float)
0:10 '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:10 Constant:
0:10 0 (const uint)
0:11 mix ( temp 4-component vector of float)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 2 (const uint)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 1 (const uint)
0:11 Compare Less Than ( temp 4-component vector of bool)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 1 (const uint)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 2 (const uint)
0:15 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:15 Function Parameters:
0:15 'cnd' ( in 2-component vector of bool)
0:15 'src0' ( in 2-component vector of float)
0:15 'src1' ( in 2-component vector of float)
0:? Sequence
0:16 Branch: Return with expression
0:16 mix ( temp 2-component vector of float)
0:16 'src1' ( in 2-component vector of float)
0:16 'src0' ( in 2-component vector of float)
0:16 'cnd' ( in 2-component vector of bool)
0:20 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:20 Function Parameters:
0:20 'input' ( in 4-component vector of float)
0:? Sequence
0:21 Sequence
0:21 move second child to first child ( temp int)
0:21 'a' ( temp int)
0:21 Constant:
0:21 5 (const int)
0:22 Sequence
0:22 move second child to first child ( temp int)
0:22 'b' ( temp int)
0:22 Constant:
0:22 6 (const int)
0:23 Sequence
0:23 move second child to first child ( temp int)
0:23 'c' ( temp int)
0:23 Constant:
0:23 7 (const int)
0:24 Sequence
0:24 move second child to first child ( temp int)
0:24 'd' ( temp int)
0:24 Constant:
0:24 7 (const int)
0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'ret' ( temp 4-component vector of float)
0:27 add ( temp 4-component vector of float)
0:26 add ( temp 4-component vector of float)
0:25 add ( temp 4-component vector of float)
0:25 vector-scale ( temp 4-component vector of float)
0:25 Convert int to float ( temp float)
0:25 'a' ( temp int)
0:25 'input' ( in 4-component vector of float)
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'b' ( temp int)
0:26 'input' ( in 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 'c' ( temp int)
0:27 'input' ( in 4-component vector of float)
0:28 vector-scale ( temp 4-component vector of float)
0:28 Convert int to float ( temp float)
0:28 'd' ( temp int)
0:28 'input' ( in 4-component vector of float)
0:30 Comma ( temp int)
0:30 move second child to first child ( temp int)
0:30 'e' ( temp int)
0:30 move second child to first child ( temp int)
0:30 'a' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'b' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'c' ( temp int)
0:30 'd' ( temp int)
0:30 false case
0:30 Constant:
0:30 10 (const int)
0:30 move second child to first child ( temp int)
0:30 'b' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'a' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'd' ( temp int)
0:30 'c' ( temp int)
0:30 false case
0:30 Constant:
0:30 11 (const int)
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'f' ( temp 4-component vector of float)
0:32 Test condition and select ( temp 4-component vector of float)
0:32 Condition
0:32 Compare Less Than ( temp bool)
0:32 direct index ( temp float)
0:32 'ret' ( temp 4-component vector of float)
0:32 Constant:
0:32 0 (const int)
0:32 direct index ( temp float)
0:32 'input' ( in 4-component vector of float)
0:32 Constant:
0:32 1 (const int)
0:32 true case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'c' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:32 false case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'd' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:34 Branch: Return with expression
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 vector-scale ( temp 4-component vector of float)
0:33 Convert int to float ( temp float)
0:33 'e' ( temp int)
0:33 'ret' ( temp 4-component vector of float)
0:33 'f' ( temp 4-component vector of float)
0:33 Function Call: vectorCond( ( temp 4-component vector of float)
0:? Construct vec4 ( temp 4-component vector of float)
0:34 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:? Constant:
0:? true (const bool)
0:? false (const bool)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? Constant:
0:? 3.000000
0:? 4.000000
0:34 Constant:
0:34 10.000000
0:34 Constant:
0:34 10.000000
0:20 Function Definition: PixelShaderFunction( ( temp void)
0:20 Function Parameters:
0:? Sequence
0:20 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:20 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:20 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)
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8 Function Definition: vectorCond( ( temp 4-component vector of float)
0:8 Function Parameters:
0:? Sequence
0:11 Branch: Return with expression
0:10 add ( temp 4-component vector of float)
0:9 add ( temp 4-component vector of float)
0:9 mix ( temp 4-component vector of float)
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:9 t4: 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 1 (const uint)
0:9 Convert float to bool ( temp 4-component vector of bool)
0:9 c4: 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 0 (const uint)
0:10 mix ( temp 4-component vector of float)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 f: direct index for structure ( uniform float)
0:10 '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:10 Constant:
0:10 4 (const uint)
0:10 Construct vec4 ( temp 4-component vector of float)
0:10 t: direct index for structure ( uniform float)
0:10 '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:10 Constant:
0:10 3 (const uint)
0:10 Convert float to bool ( temp 4-component vector of bool)
0:10 c4: direct index for structure ( uniform 4-component vector of float)
0:10 '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:10 Constant:
0:10 0 (const uint)
0:11 mix ( temp 4-component vector of float)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 2 (const uint)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 1 (const uint)
0:11 Compare Less Than ( temp 4-component vector of bool)
0:11 t4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 1 (const uint)
0:11 f4: direct index for structure ( uniform 4-component vector of float)
0:11 '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:11 Constant:
0:11 2 (const uint)
0:15 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:15 Function Parameters:
0:15 'cnd' ( in 2-component vector of bool)
0:15 'src0' ( in 2-component vector of float)
0:15 'src1' ( in 2-component vector of float)
0:? Sequence
0:16 Branch: Return with expression
0:16 mix ( temp 2-component vector of float)
0:16 'src1' ( in 2-component vector of float)
0:16 'src0' ( in 2-component vector of float)
0:16 'cnd' ( in 2-component vector of bool)
0:20 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:20 Function Parameters:
0:20 'input' ( in 4-component vector of float)
0:? Sequence
0:21 Sequence
0:21 move second child to first child ( temp int)
0:21 'a' ( temp int)
0:21 Constant:
0:21 5 (const int)
0:22 Sequence
0:22 move second child to first child ( temp int)
0:22 'b' ( temp int)
0:22 Constant:
0:22 6 (const int)
0:23 Sequence
0:23 move second child to first child ( temp int)
0:23 'c' ( temp int)
0:23 Constant:
0:23 7 (const int)
0:24 Sequence
0:24 move second child to first child ( temp int)
0:24 'd' ( temp int)
0:24 Constant:
0:24 7 (const int)
0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'ret' ( temp 4-component vector of float)
0:27 add ( temp 4-component vector of float)
0:26 add ( temp 4-component vector of float)
0:25 add ( temp 4-component vector of float)
0:25 vector-scale ( temp 4-component vector of float)
0:25 Convert int to float ( temp float)
0:25 'a' ( temp int)
0:25 'input' ( in 4-component vector of float)
0:26 vector-scale ( temp 4-component vector of float)
0:26 Convert int to float ( temp float)
0:26 'b' ( temp int)
0:26 'input' ( in 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 'c' ( temp int)
0:27 'input' ( in 4-component vector of float)
0:28 vector-scale ( temp 4-component vector of float)
0:28 Convert int to float ( temp float)
0:28 'd' ( temp int)
0:28 'input' ( in 4-component vector of float)
0:30 Comma ( temp int)
0:30 move second child to first child ( temp int)
0:30 'e' ( temp int)
0:30 move second child to first child ( temp int)
0:30 'a' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'b' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'c' ( temp int)
0:30 'd' ( temp int)
0:30 false case
0:30 Constant:
0:30 10 (const int)
0:30 move second child to first child ( temp int)
0:30 'b' ( temp int)
0:30 Test condition and select ( temp int)
0:30 Condition
0:30 Convert int to bool ( temp bool)
0:30 'a' ( temp int)
0:30 true case
0:30 move second child to first child ( temp int)
0:30 'd' ( temp int)
0:30 'c' ( temp int)
0:30 false case
0:30 Constant:
0:30 11 (const int)
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'f' ( temp 4-component vector of float)
0:32 Test condition and select ( temp 4-component vector of float)
0:32 Condition
0:32 Compare Less Than ( temp bool)
0:32 direct index ( temp float)
0:32 'ret' ( temp 4-component vector of float)
0:32 Constant:
0:32 0 (const int)
0:32 direct index ( temp float)
0:32 'input' ( in 4-component vector of float)
0:32 Constant:
0:32 1 (const int)
0:32 true case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'c' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:32 false case
0:32 vector-scale ( temp 4-component vector of float)
0:32 Convert int to float ( temp float)
0:32 'd' ( temp int)
0:32 'input' ( in 4-component vector of float)
0:34 Branch: Return with expression
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 add ( temp 4-component vector of float)
0:33 vector-scale ( temp 4-component vector of float)
0:33 Convert int to float ( temp float)
0:33 'e' ( temp int)
0:33 'ret' ( temp 4-component vector of float)
0:33 'f' ( temp 4-component vector of float)
0:33 Function Call: vectorCond( ( temp 4-component vector of float)
0:? Construct vec4 ( temp 4-component vector of float)
0:34 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float)
0:? Constant:
0:? true (const bool)
0:? false (const bool)
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? Constant:
0:? 3.000000
0:? 4.000000
0:34 Constant:
0:34 10.000000
0:34 Constant:
0:34 10.000000
0:20 Function Definition: PixelShaderFunction( ( temp void)
0:20 Function Parameters:
0:? Sequence
0:20 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:20 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:20 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 186
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 179 182
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
Name 9 "vectorCond("
Name 20 "fbSelect(vb2;vf2;vf2;"
Name 17 "cnd"
Name 18 "src0"
Name 19 "src1"
Name 25 "@PixelShaderFunction(vf4;"
Name 24 "input"
Name 27 "$Global"
MemberName 27($Global) 0 "c4"
MemberName 27($Global) 1 "t4"
MemberName 27($Global) 2 "f4"
MemberName 27($Global) 3 "t"
MemberName 27($Global) 4 "f"
Name 29 ""
Name 80 "a"
Name 82 "b"
Name 84 "c"
Name 86 "d"
Name 87 "ret"
Name 107 "e"
Name 128 "f"
Name 166 "param"
Name 167 "param"
Name 168 "param"
Name 177 "input"
Name 179 "input"
Name 182 "@entryPointOutput"
Name 183 "param"
MemberDecorate 27($Global) 0 Offset 0
MemberDecorate 27($Global) 1 Offset 16
MemberDecorate 27($Global) 2 Offset 32
MemberDecorate 27($Global) 3 Offset 48
MemberDecorate 27($Global) 4 Offset 52
Decorate 27($Global) Block
Decorate 29 DescriptorSet 0
Decorate 179(input) Location 0
Decorate 182(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypeBool
12: TypeVector 11(bool) 2
13: TypePointer Function 12(bvec2)
14: TypeVector 6(float) 2
15: TypePointer Function 14(fvec2)
16: TypeFunction 14(fvec2) 13(ptr) 15(ptr) 15(ptr)
22: TypePointer Function 7(fvec4)
23: TypeFunction 7(fvec4) 22(ptr)
27($Global): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 6(float) 6(float)
28: TypePointer Uniform 27($Global)
29: 28(ptr) Variable Uniform
30: TypeInt 32 1
31: 30(int) Constant 2
32: TypePointer Uniform 7(fvec4)
35: 30(int) Constant 1
38: 30(int) Constant 0
41: TypeVector 11(bool) 4
42: 6(float) Constant 0
43: 7(fvec4) ConstantComposite 42 42 42 42
46: 30(int) Constant 4
47: TypePointer Uniform 6(float)
51: 30(int) Constant 3
79: TypePointer Function 30(int)
81: 30(int) Constant 5
83: 30(int) Constant 6
85: 30(int) Constant 7
110: TypeInt 32 0
111: 110(int) Constant 0
117: 30(int) Constant 10
126: 30(int) Constant 11
130: TypePointer Function 6(float)
133: 110(int) Constant 1
157: 11(bool) ConstantTrue
158: 11(bool) ConstantFalse
159: 12(bvec2) ConstantComposite 157 158
160: 6(float) Constant 1065353216
161: 6(float) Constant 1073741824
162: 14(fvec2) ConstantComposite 160 161
163: 6(float) Constant 1077936128
164: 6(float) Constant 1082130432
165: 14(fvec2) ConstantComposite 163 164
170: 6(float) Constant 1092616192
178: TypePointer Input 7(fvec4)
179(input): 178(ptr) Variable Input
181: TypePointer Output 7(fvec4)
182(@entryPointOutput): 181(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
177(input): 22(ptr) Variable Function
183(param): 22(ptr) Variable Function
180: 7(fvec4) Load 179(input)
Store 177(input) 180
184: 7(fvec4) Load 177(input)
Store 183(param) 184
185: 7(fvec4) FunctionCall 25(@PixelShaderFunction(vf4;) 183(param)
Store 182(@entryPointOutput) 185
Return
FunctionEnd
9(vectorCond(): 7(fvec4) Function None 8
10: Label
33: 32(ptr) AccessChain 29 31
34: 7(fvec4) Load 33
36: 32(ptr) AccessChain 29 35
37: 7(fvec4) Load 36
39: 32(ptr) AccessChain 29 38
40: 7(fvec4) Load 39
44: 41(bvec4) FOrdNotEqual 40 43
45: 7(fvec4) Select 44 37 34
48: 47(ptr) AccessChain 29 46
49: 6(float) Load 48
50: 7(fvec4) CompositeConstruct 49 49 49 49
52: 47(ptr) AccessChain 29 51
53: 6(float) Load 52
54: 7(fvec4) CompositeConstruct 53 53 53 53
55: 32(ptr) AccessChain 29 38
56: 7(fvec4) Load 55
57: 41(bvec4) FOrdNotEqual 56 43
58: 7(fvec4) Select 57 54 50
59: 7(fvec4) FAdd 45 58
60: 32(ptr) AccessChain 29 31
61: 7(fvec4) Load 60
62: 32(ptr) AccessChain 29 35
63: 7(fvec4) Load 62
64: 32(ptr) AccessChain 29 35
65: 7(fvec4) Load 64
66: 32(ptr) AccessChain 29 31
67: 7(fvec4) Load 66
68: 41(bvec4) FOrdLessThan 65 67
69: 7(fvec4) Select 68 63 61
70: 7(fvec4) FAdd 59 69
ReturnValue 70
FunctionEnd
20(fbSelect(vb2;vf2;vf2;): 14(fvec2) Function None 16
17(cnd): 13(ptr) FunctionParameter
18(src0): 15(ptr) FunctionParameter
19(src1): 15(ptr) FunctionParameter
21: Label
73: 14(fvec2) Load 19(src1)
74: 14(fvec2) Load 18(src0)
75: 12(bvec2) Load 17(cnd)
76: 14(fvec2) Select 75 74 73
ReturnValue 76
FunctionEnd
25(@PixelShaderFunction(vf4;): 7(fvec4) Function None 23
24(input): 22(ptr) FunctionParameter
26: Label
80(a): 79(ptr) Variable Function
82(b): 79(ptr) Variable Function
84(c): 79(ptr) Variable Function
86(d): 79(ptr) Variable Function
87(ret): 22(ptr) Variable Function
107(e): 79(ptr) Variable Function
108: 79(ptr) Variable Function
119: 79(ptr) Variable Function
128(f): 22(ptr) Variable Function
129: 22(ptr) Variable Function
166(param): 13(ptr) Variable Function
167(param): 15(ptr) Variable Function
168(param): 15(ptr) Variable Function
Store 80(a) 81
Store 82(b) 83
Store 84(c) 85
Store 86(d) 85
88: 30(int) Load 80(a)
89: 6(float) ConvertSToF 88
90: 7(fvec4) Load 24(input)
91: 7(fvec4) VectorTimesScalar 90 89
92: 30(int) Load 82(b)
93: 6(float) ConvertSToF 92
94: 7(fvec4) Load 24(input)
95: 7(fvec4) VectorTimesScalar 94 93
96: 7(fvec4) FAdd 91 95
97: 30(int) Load 84(c)
98: 6(float) ConvertSToF 97
99: 7(fvec4) Load 24(input)
100: 7(fvec4) VectorTimesScalar 99 98
101: 7(fvec4) FAdd 96 100
102: 30(int) Load 86(d)
103: 6(float) ConvertSToF 102
104: 7(fvec4) Load 24(input)
105: 7(fvec4) VectorTimesScalar 104 103
106: 7(fvec4) FAdd 101 105
Store 87(ret) 106
109: 30(int) Load 82(b)
112: 11(bool) INotEqual 109 111
SelectionMerge 114 None
BranchConditional 112 113 116
113: Label
115: 30(int) Load 86(d)
Store 84(c) 115
Store 108 115
Branch 114
116: Label
Store 108 117
Branch 114
114: Label
118: 30(int) Load 108
Store 80(a) 118
Store 107(e) 118
120: 30(int) Load 80(a)
121: 11(bool) INotEqual 120 111
SelectionMerge 123 None
BranchConditional 121 122 125
122: Label
124: 30(int) Load 84(c)
Store 86(d) 124
Store 119 124
Branch 123
125: Label
Store 119 126
Branch 123
123: Label
127: 30(int) Load 119
Store 82(b) 127
131: 130(ptr) AccessChain 87(ret) 111
132: 6(float) Load 131
134: 130(ptr) AccessChain 24(input) 133
135: 6(float) Load 134
136: 11(bool) FOrdLessThan 132 135
SelectionMerge 138 None
BranchConditional 136 137 143
137: Label
139: 30(int) Load 84(c)
140: 6(float) ConvertSToF 139
141: 7(fvec4) Load 24(input)
142: 7(fvec4) VectorTimesScalar 141 140
Store 129 142
Branch 138
143: Label
144: 30(int) Load 86(d)
145: 6(float) ConvertSToF 144
146: 7(fvec4) Load 24(input)
147: 7(fvec4) VectorTimesScalar 146 145
Store 129 147
Branch 138
138: Label
148: 7(fvec4) Load 129
Store 128(f) 148
149: 30(int) Load 107(e)
150: 6(float) ConvertSToF 149
151: 7(fvec4) Load 87(ret)
152: 7(fvec4) VectorTimesScalar 151 150
153: 7(fvec4) Load 128(f)
154: 7(fvec4) FAdd 152 153
155: 7(fvec4) FunctionCall 9(vectorCond()
156: 7(fvec4) FAdd 154 155
Store 166(param) 159
Store 167(param) 162
Store 168(param) 165
169: 14(fvec2) FunctionCall 20(fbSelect(vb2;vf2;vf2;) 166(param) 167(param) 168(param)
171: 6(float) CompositeExtract 169 0
172: 6(float) CompositeExtract 169 1
173: 7(fvec4) CompositeConstruct 171 172 170 170
174: 7(fvec4) FAdd 156 173
ReturnValue 174
FunctionEnd