HLSL: Non-functional: add vector ? : tests.
authorJohn Kessenich <cepheus@frii.com>
Tue, 11 Apr 2017 23:30:08 +0000 (17:30 -0600)
committerJohn Kessenich <cepheus@frii.com>
Tue, 11 Apr 2017 23:31:28 +0000 (17:31 -0600)
Test/baseResults/hlsl.conditional.frag.out
Test/hlsl.conditional.frag
glslang/Include/revision.h

index 4028cad..193c788 100755 (executable)
@@ -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
index 128c593..8efef35 100644 (file)
@@ -1,3 +1,15 @@
+float4 c4;\r
+float4 t4;\r
+float4 f4;\r
+float t;\r
+float f;\r
+
+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();
 }
index 8620e53..1c081d0 100644 (file)
@@ -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"