From: John Kessenich Date: Tue, 11 Apr 2017 23:30:08 +0000 (-0600) Subject: HLSL: Non-functional: add vector ? : tests. X-Git-Tag: upstream/11.4.0~1205 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34718204e18b0e7c646dc4c8bc53fae2e33bcde4;p=platform%2Fupstream%2Fglslang.git HLSL: Non-functional: add vector ? : tests. --- diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index 4028cad..193c788 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -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: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: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: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:? '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: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: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:2 move second child to first child ( temp 4-component vector of float) +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:14 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 + 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 - 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 + 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 - 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 + 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 diff --git a/Test/hlsl.conditional.frag b/Test/hlsl.conditional.frag index 128c593..8efef35 100644 --- a/Test/hlsl.conditional.frag +++ b/Test/hlsl.conditional.frag @@ -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(); } diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 8620e53..1c081d0 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1990" +#define GLSLANG_REVISION "Overload400-PrecQual.1992" #define GLSLANG_DATE "11-Apr-2017"